@layer t2.plugin {
/* Path: T2Editor/plugin/table/table.css */
/* Rationale: table 선택자는 플러그인 루트 아래로 제한하고 공개 본문 표현이 필요하면 css/content.css도 함께 수정한다. */

/* 표면의 안쪽 여백은 공통 모달 규격(--t2-u2)이 소유한다. 여기서 24px 로 다시
   적으면 발치 밴드가 어긋난다 — 밴드는 표면 여백만큼 좌우로 번져 나가도록
   -u2 음수 마진을 쓰는데, 그 값이 여백과 달라지면 밴드가 표면 밖으로 삐져나가
   잘린다(재 보니 좌우 각 17.7px). 폭도 격자가 정한다. */
.t2-table-editor-modal { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, system-ui; }
/* margin 은 적지 않는다 — 타이틀 행은 공식 격자가 밴드로 그리고, 그 밴드가
   표면의 인셋을 음수 마진으로 되돌려 좌우 끝까지 닿는다. 여기서 다시 적으면
   t2.plugin 이 t2.product 를 이겨 번짐이 죽고, 헤어라인만 본문 폭으로 줄어든
 채 제목이 본문보다 1/2u 더 들여쓰인다(푸터는 번지고 있어 비대칭이 눈에 띈다). */
.t2-table-editor-modal h3 { font-size: 22px; letter-spacing: -.02em; }
.t2-table-size-selector { display: flex; gap: var(--t2-s6); margin-bottom: var(--t2-s6); padding-block: var(--t2-s5); align-items: flex-start; border-bottom: 1px solid var(--t2-line); }
.t2-table-size-inputs { flex: 1; }
.t2-table-input-group { margin-bottom: var(--t2-s4); }
.t2-table-input-group label { display: block; margin-bottom: var(--t2-s2); font-size: 14px; color: var(--t2-ink-muted); font-weight: 500; }
.t2-table-editor-modal .t2-input-with-controls { display: flex; align-items: center; gap: var(--t2-s2); border-radius: var(--t2-radius-field) var(--t2-radius-field) 0 0; padding: 0; border: 0; border-bottom: 1px solid var(--t2-line-strong); }
.t2-table-editor-modal .t2-input-with-controls input { width: 60px; text-align: center; padding: var(--t2-s2) 0; border: none; background: transparent; font-size: 16px; color: var(--t2-product-ink); font-weight: 500; }
.t2-table-editor-modal .t2-input-with-controls input:focus { outline: none; }
.t2-table-editor-modal .t2-table-control-btn { display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; border: 0; background: transparent; color: var(--t2-ink-muted); cursor: pointer; transition: color var(--t2-motion-fast), background-color var(--t2-motion-fast); }
.t2-table-editor-modal .t2-table-control-btn .material-icons { font-size: 18px; }
.t2-table-preview-container { width: 160px; height: 160px; overflow: hidden; border-radius: var(--t2-radius-control); border: 1px solid var(--t2-line); display: flex; align-items: center; justify-content: center; padding: var(--t2-s2); }
.t2-preview-table { border-collapse: separate; border-spacing: 0; border-radius: var(--t2-radius-control); overflow: hidden; }
/* [BUG-FIX] 이전에는 미리보기를 매 입력마다 통째로 재생성(replaceChildren)하고
   transform:scale() 로 축소했다. 이제는 같은 <table>/<tr>/<td> 를 재사용하며
   실제 픽셀 크기(width/height)를 조절하므로, width/height 에 transition 을 걸면
   행/열 수를 바꿀 때 미리보기가 뚝뚝 끊기지 않고 부드럽게 커지고 줄어든다. */
.t2-preview-table th, .t2-preview-table td { border: 1px solid var(--t2-inset); transition: width .15s ease, height .15s ease, background-color .15s ease; }
.t2-table-style-options { padding: 0; margin-bottom: var(--t2-s6); }
.t2-table-editor-modal .t2-table-style-option { display: flex; align-items: center; margin-bottom: var(--t2-s3); }
.t2-table-editor-modal .t2-table-style-option:last-child { margin-bottom: 0; }
.t2-table-editor-modal .t2-table-style-option label { font-size: 14px; color: var(--t2-ink-muted); font-weight: 500; width: 120px; flex-shrink: 0; }
.t2-table-editor-modal .t2-table-style-option select { flex: 1; padding: var(--t2-s2) var(--t2-s3); border-radius: var(--t2-radius-field) var(--t2-radius-field) 0 0; border: 0; border-bottom: 1px solid var(--t2-line-strong); background-color: transparent; font-size: 14px; color: var(--t2-ink); -webkit-appearance: none; appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 12px center; padding-right: var(--t2-s8); }
.t2-table-editor-modal .t2-table-style-option select:focus { outline: none; }
.t2-table-editor-modal .t2-table-style-option select:focus-visible { outline: 1px solid var(--t2-plugin-product, var(--t2-product)); outline-offset: 1px; }
.t2-table-editor-modal .t2-custom-width-container { display: flex; align-items: center; margin-left: var(--t2-s3); }
.t2-table-editor-modal .t2-custom-width-container input { width: 60px; padding: var(--t2-s2) var(--t2-s3); border-radius: var(--t2-radius-control); border: 1px solid var(--t2-inset); font-size: 14px; text-align: right; }
.t2-table-editor-modal .t2-custom-width-container input:focus { outline: none; }
.t2-table-editor-modal .t2-custom-width-container input:focus-visible { outline: 1px solid var(--t2-plugin-product, var(--t2-product)); outline-offset: 1px; }
.t2-table-editor-modal .t2-custom-width-container span { margin-left: var(--t2-s1); color: var(--t2-ink-muted); }
.t2-table-warning { display: flex; align-items: center; gap: var(--t2-s2); color: var(--t2-warning); margin-top: var(--t2-s3); font-size: 13px; background: rgba(245,158,11,.1); padding: var(--t2-s2) var(--t2-s3); border-radius: var(--t2-radius-control); }
.t2-table-editor-modal .t2-btn-group { display: flex; justify-content: flex-end; gap: var(--t2-s3); }
.t2-table-editor-modal .t2-btn { padding: var(--t2-s2) var(--t2-s4); font-size: 14px; font-weight: 500; transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, opacity 0.2s ease, transform 0.2s ease; cursor: pointer; border: none; }
.t2-table-editor-modal .t2-btn[data-action="cancel"]:hover { background: var(--t2-inset); }
.t2-table-editor-modal .t2-btn[data-action="insert"] { box-shadow: 0 1px 2px var(--t2-plugin-product-soft, rgba(53,111,192,.08)); }
.t2-table-editor-modal .t2-btn[data-action="insert"]:hover { background: var(--t2-product-wash); }

.t2-table { width: 100%; border-collapse: separate; border-spacing: 0; margin: var(--t2-s4) 0; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; border-radius: var(--t2-radius-island); overflow: hidden; }
.t2-table th, .t2-table td { border: 1px solid var(--t2-inset); padding: var(--t2-s2) var(--t2-s3); vertical-align: top; position: relative; }
.t2-table th { background-color: var(--t2-product-wash); text-align: left; border-bottom: 1px solid var(--t2-product-wash); }
.t2-table tr:last-child td:first-child { border-bottom-left-radius: var(--t2-radius-island); }
.t2-table tr:last-child td:last-child { border-bottom-right-radius: var(--t2-radius-island); }
.t2-table tr:hover { background-color: color-mix(in srgb, var(--t2-plugin-product) 3%, transparent); }
.t2-table td:hover, .t2-table th:hover { background-color: color-mix(in srgb, var(--t2-plugin-product) 6%, transparent); }
.t2-table-wrapper { position: relative; margin: var(--t2-s6) 0; padding: var(--t2-s2); border-radius: var(--t2-radius-island); background-color: var(--t2-plugin-surface, var(--t2-surface)); transition: box-shadow 0.2s ease; }
.t2-table-wrapper:hover { box-shadow: 0 4px 12px rgba(0,0,0,.06); }
.t2-table-controls:not(.t2-content-block__slot) { position: absolute; top: -50px; right: 10px; display: flex; align-items: center; z-index: 99999; opacity: 0; transform: translateY(10px); transition: color 0.3s ease, background-color 0.3s ease, border-color 0.3s ease, opacity 0.3s ease, transform 0.3s ease; white-space: nowrap; overflow-x: auto; overflow-y: hidden; max-width: calc(100vw - 20px); height: auto; }
.t2-table-wrapper:hover .t2-table-controls:not(.t2-content-block__slot),
.t2-table-wrapper:focus-within .t2-table-controls:not(.t2-content-block__slot) { opacity: 1; transform: translateY(0); }
.t2-table-control-btn:disabled { opacity: .38; cursor: not-allowed; box-shadow: none; }
.t2-table-control-btn.t2-cell-range-mode { background:var(--t2-plugin-product, var(--t2-product)); color:#fff; box-shadow:0 0 0 2px var(--t2-plugin-product-soft, rgba(53,111,192,.08)); }
.t2-table td.t2-table-cell-selected,
.t2-table th.t2-table-cell-selected { background-color:var(--t2-product-wash); box-shadow:inset 0 0 0 2px var(--t2-plugin-product, var(--t2-product)); z-index:2; }
.t2-table.t2-table-range-selecting td,
.t2-table.t2-table-range-selecting th { cursor:cell; }
.t2-table-delete-btn { width: 28px; height: 28px; padding: 0; display: flex; align-items: center; justify-content: center; margin-left: var(--t2-s1); color: var(--t2-ink-muted); border-radius: 50%; background: rgba(239,68,68,.1); border: none; cursor: pointer; transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, opacity 0.2s ease, transform 0.2s ease; }
.t2-table-delete-btn:hover { background: rgba(239,68,68,.2); }
.t2-table-scroll-wrapper { max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; border-radius: var(--t2-radius-island); background: var(--t2-plugin-surface, var(--t2-surface)); margin: 0; padding: 0; }
.t2-table td:focus, .t2-table th:focus { outline: 1px solid var(--t2-plugin-product, var(--t2-product)); outline-offset: -2px; z-index: 1; box-shadow: 0 0 0 1px var(--t2-plugin-product-soft, rgba(53,111,192,.08)); }
.t2-table th:after, .t2-table td:after { content: ""; position: absolute; right: 0; top: 0; bottom: 0; width: 5px; cursor: col-resize; background: rgba(0,0,0,0); transition: background 0.2s ease; }
.t2-table th:hover:after, .t2-table td:hover:after { background: var(--t2-plugin-product-soft, rgba(53,111,192,.08)); }
.t2-table-download-btn { position: absolute; bottom: -15px; right: -7.5px; padding: var(--t2-s2); display: flex; align-items: center; justify-content: center; border-radius: var(--t2-radius-control); background: var(--t2-plugin-surface, var(--t2-surface)); border: 1px solid var(--t2-inset); color: var(--t2-plugin-product, var(--t2-product)); cursor: pointer; box-shadow: 0 2px 6px rgba(0,0,0,.1); transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, opacity 0.2s ease, transform 0.2s ease; opacity: 0; transform: translateY(5px); }
.t2-table-wrapper:hover .t2-table-download-btn,
.t2-table-wrapper:focus-within .t2-table-download-btn { opacity: 1; transform: translateY(0); }
.t2-table-download-btn:hover { background: var(--t2-product-wash); border-color: var(--t2-plugin-product, var(--t2-product)); color: var(--t2-plugin-product, var(--t2-product)); }
.t2-table-download-btn .material-icons { font-size: 25px; }

@media (hover: none), (pointer: coarse) {
  .t2-table-controls:not(.t2-content-block__slot), .t2-table-download-btn { opacity: 1; transform: none; }
  .t2-table-control-btn, .t2-table-delete-btn, .t2-table-download-btn { min-width: 44px; min-height: 44px; }
  .t2-table-delete-btn { width: 44px; height: 44px; border-radius: var(--t2-radius-control); }
  .t2-table-download-btn { padding: var(--t2-s2); }
}

/* 슬롯에 편입된 버튼은 플러그인이 혼자 쓰던 절대 배치를 버린다.
   다만 static 으로 되돌리면 안 된다 — 프레임워크의 44px 히트 영역은
   `__control--button::before { position:absolute; inset:-9px }` 이고, 그
   기준 상자는 버튼 자신이 만든다. static 이면 기준이 슬롯으로 올라가
   버튼 하나의 히트 영역이 슬롯 전체(309×56px)로 부풀어 같은 슬롯의
   앞선 형제들을 전부 삼킨다 — 표의 add/remove-col·row·merge 5개가
   눌리지 않던 원인이다(#51). 되돌릴 값은 product 레이어가 선언한
   relative 다. 위치 계산은 inset:auto 가 이미 무력화한다. */
.t2-table-wrapper .t2-content-block__control.t2-table-download-btn,
.t2-table-wrapper .t2-content-block__control.t2-table-delete-btn,
.t2-table-wrapper .t2-content-block__control.t2-table-control-btn {
    position: relative;
    inset: auto;
    opacity: 1;
    transform: none;
    margin: 0;
}

/* Dark Mode */
html[data-t2editor-theme="dark"] .t2-table-editor-modal { background-color: var(--t2-floating); color: var(--t2-ink); box-shadow: var(--t2-shadow-modal); border-color: var(--t2-line); }
html[data-t2editor-theme="dark"] .t2-table-editor-modal h3 { color: var(--t2-ink); }
html[data-t2editor-theme="dark"] .t2-table { background-color: var(--t2-surface); color: var(--t2-ink); box-shadow: 0 2px 8px rgba(0,0,0,.38); }
/* table.js의 과거 문서에는 border/background 인라인 스타일이 남아 있다.
   색상만 !important로 재정의해 사용자가 고른 solid/dashed/dotted 형태는 보존한다. */
html[data-t2editor-theme="dark"] .t2-table th,
html[data-t2editor-theme="dark"] .t2-table td { border-color: var(--t2-line); }
html[data-t2editor-theme="dark"] .t2-table th { background-color: var(--t2-surface); color: var(--t2-ink); border-bottom-color: var(--t2-product); }
html[data-t2editor-theme="dark"] .t2-table tr:hover { background-color: rgba(56,132,208,.12); }
html[data-t2editor-theme="dark"] .t2-table td:hover,
html[data-t2editor-theme="dark"] .t2-table th:hover { background-color: var(--t2-surface); }
html[data-t2editor-theme="dark"] .t2-table-wrapper { background-color: var(--t2-surface); border: 1px solid var(--t2-ink-muted); box-shadow: 0 4px 12px rgba(0,0,0,.24); }
html[data-t2editor-theme="dark"] .t2-table-controls:not(.t2-content-block__slot) { background-color: var(--t2-surface); box-shadow: 0 4px 12px rgba(0,0,0,.3); color: var(--t2-ink); }
html[data-t2editor-theme="dark"] .t2-table-control-btn { background-color: var(--t2-surface); box-shadow: 0 1px 3px rgba(0,0,0,.2); color: var(--t2-ink-muted); }
html[data-t2editor-theme="dark"] .t2-table-control-btn:hover { background-color: var(--t2-surface); color: var(--t2-ink); }
html[data-t2editor-theme="dark"] .t2-table-control-btn:disabled { background-color:var(--t2-surface); color:var(--t2-ink-faint); }
html[data-t2editor-theme="dark"] .t2-table-control-btn.t2-cell-range-mode { background:var(--t2-plugin-product, var(--t2-product)); color:#fff; }
html[data-t2editor-theme="dark"] .t2-table td.t2-table-cell-selected,
html[data-t2editor-theme="dark"] .t2-table th.t2-table-cell-selected { background-color:var(--t2-surface); box-shadow:inset 0 0 0 2px var(--t2-product); }
html[data-t2editor-theme="dark"] .t2-table-delete-btn { background-color: rgba(239,68,68,.2); color: var(--t2-danger); }
html[data-t2editor-theme="dark"] .t2-table-delete-btn:hover { background-color: rgba(239,68,68,.3); }
html[data-t2editor-theme="dark"] .t2-table-scroll-wrapper { background-color: var(--t2-surface); }
html[data-t2editor-theme="dark"] .t2-table td:focus, html[data-t2editor-theme="dark"] .t2-table th:focus { outline-color: var(--t2-plugin-product, var(--t2-product)); }
html[data-t2editor-theme="dark"] .t2-table th:hover:after,
html[data-t2editor-theme="dark"] .t2-table td:hover:after { background: rgba(77,166,255,.35); }
html[data-t2editor-theme="dark"] .t2-table-download-btn { background:var(--t2-product-wash); border-color:var(--t2-line); color:var(--t2-product); box-shadow:0 2px 8px rgba(0,0,0,.35); }
html[data-t2editor-theme="dark"] .t2-table-download-btn:hover { background:var(--t2-product-wash); border-color:var(--t2-product); color:var(--t2-product); }
html[data-t2editor-theme="dark"] .t2-table-style-options { background-color: var(--t2-surface); border-color: var(--t2-line); }
html[data-t2editor-theme="dark"] .t2-table-style-option label { color: var(--t2-ink); }
html[data-t2editor-theme="dark"] .t2-table-style-option select { background-color: var(--t2-surface); border-color: var(--t2-line); color: var(--t2-ink); }
html[data-t2editor-theme="dark"] .t2-table-preview-container { background-color: var(--t2-surface); border-color: var(--t2-line); }
html[data-t2editor-theme="dark"] .t2-preview-table th { background-color: var(--t2-surface); }
html[data-t2editor-theme="dark"] .t2-preview-table th, html[data-t2editor-theme="dark"] .t2-preview-table td { border-color: var(--t2-line); }
html[data-t2editor-theme="dark"] .t2-table-input-group label { color:var(--t2-ink); }
html[data-t2editor-theme="dark"] .t2-table-editor-modal .t2-input-with-controls { background:var(--t2-surface); border-color:var(--t2-line); }
html[data-t2editor-theme="dark"] .t2-input-with-controls input,
html[data-t2editor-theme="dark"] .t2-custom-width-value,
html[data-t2editor-theme="dark"] .t2-table-editor-modal .t2-custom-width-container input { background-color: var(--t2-surface); border-color: var(--t2-line); color: var(--t2-ink); }

/* T2Editor Coding-Agent Rule: Write only concise, high-value comments. Preserve "Path: T2Editor/..." comments; update them when files move—never delete them. */

/* T2Editor /law official plugin design alignment */
/* Shared --t2-plugin-* tokens are owned by css/t2-foundation.css. */
.t2-dsc-service-brand {

  letter-spacing: -0.01em;
}
.t2-product-brand { white-space: nowrap; }

.t2-table-editor-modal { color: var(--t2-plugin-text); background: var(--t2-plugin-surface); border: 1px solid var(--t2-plugin-border); border-radius: var(--t2-plugin-radius-surface); box-shadow: var(--t2-plugin-shadow); }
.t2-table-editor-modal h3 { color: var(--t2-plugin-text); font-weight: 800; }
.t2-table-size-selector, .t2-table-style-options { background: var(--t2-plugin-surface-muted); border: 1px solid var(--t2-plugin-border); border-radius: var(--t2-plugin-radius-island); }
.t2-table-editor-modal .t2-input-with-controls, .t2-table-editor-modal select, .t2-table-editor-modal .t2-custom-width-container input { background: var(--t2-plugin-surface); border-color: var(--t2-plugin-border); color: var(--t2-plugin-text); }
.t2-table-editor-modal .t2-input-with-controls input, .t2-table-editor-modal select, .t2-table-editor-modal .t2-custom-width-container input { min-height: 44px; }
.t2-table-editor-modal .t2-table-control-btn, .t2-table-editor-modal .t2-btn { min-width: 44px; min-height: 44px; border-radius: var(--t2-plugin-radius-control); box-shadow: none; }
.t2-table-editor-modal .t2-table-control-btn:hover { color: var(--t2-plugin-product); background: var(--t2-plugin-product-soft); }
.t2-table-editor-modal select:focus-visible, .t2-table-editor-modal input:focus-visible { outline: 1px solid var(--t2-plugin-product); outline-offset: 2px; }
.t2-table-preview-container { background: var(--t2-plugin-surface-raised); border-color: var(--t2-plugin-border); }
.t2-preview-table { box-shadow: none; }
.t2-preview-table th, .t2-preview-table td { border-color: var(--t2-plugin-border); }
.t2-preview-table th { background: var(--t2-plugin-surface-muted); color: var(--t2-plugin-text); }
.t2-table-editor-modal .t2-btn[data-action="insert"] { color: var(--t2-plugin-on-action); background: var(--t2-plugin-action); font-weight: 750; }
.t2-table-editor-modal .t2-btn[data-action="cancel"] { color: var(--t2-plugin-text); background: var(--t2-plugin-surface-muted); border: 1px solid var(--t2-plugin-border); }
.t2-table { color: var(--t2-plugin-text); background: var(--t2-plugin-surface); border-color: var(--t2-plugin-border); box-shadow: none; }
.t2-table th { background: var(--t2-plugin-surface-muted); color: var(--t2-plugin-text); font-weight: 800; }
.t2-table th, .t2-table td { border-color: var(--t2-plugin-border); }
.t2-table-cell-selected, .t2-table-range-selecting { box-shadow: inset 0 0 0 2px var(--t2-plugin-product); background: var(--t2-plugin-product-soft); }
@media (max-width: 640px) {
  .t2-table-editor-modal input, .t2-table-editor-modal select { font-size: 16px; } /* [iOS⚠️] */

  /* The edit and destructive islands cannot share one narrow top row.
     올리는 거리는 섬 한 줄의 예약치 그대로다 — 64px 리터럴은 그 값과 우연히
     같았을 뿐이라 예약치가 움직이면 어긋난다. 그리고 위쪽 변이 두 줄이 되었다는
     사실은 여기서만 알 수 있으므로 계약 레이어에 신호로 넘긴다(그러지 않으면
     예약이 한 줄뿐이라 올라간 섬이 앞 문단과 툴바를 덮는다). */
  .t2-editor .t2-table-wrapper { --t2-block-island-rows-top: 2; }
  .t2-editor .t2-table-wrapper .t2-content-block__slot--top-start {
    bottom: calc(100% + var(--t2-block-island-reserve));
  }

  .t2-editor .t2-table-wrapper .t2-content-block__slot--top-start .t2-content-block__group-label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
  }
}

/* =========================================================================
   T2Editor /law 706 — plugin scroll and native-control hardening
   ========================================================================= */
:is([class^="t2-table-"], [class*=" t2-table-"], [class^="t2-input-"], [class*=" t2-input-"]) {
  max-width: 100%;
}
:is(:is([class^="t2-table-"], [class*=" t2-table-"], [class^="t2-input-"], [class*=" t2-input-"]) :is(button, input, textarea, select), button[class^="t2-table-"], button[class*=" t2-table-"], input[class^="t2-table-"], input[class*=" t2-table-"], textarea[class^="t2-table-"], textarea[class*=" t2-table-"], select[class^="t2-table-"], select[class*=" t2-table-"], button[class^="t2-input-"], button[class*=" t2-input-"], input[class^="t2-input-"], input[class*=" t2-input-"], textarea[class^="t2-input-"], textarea[class*=" t2-input-"], select[class^="t2-input-"], select[class*=" t2-input-"]) {
  font: inherit;
  -webkit-tap-highlight-color: transparent;
}
:is(:is([class^="t2-table-"], [class*=" t2-table-"], [class^="t2-input-"], [class*=" t2-input-"]) button, button[class^="t2-table-"], button[class*=" t2-table-"], button[class^="t2-input-"], button[class*=" t2-input-"]) {
  -webkit-appearance: none;
  appearance: none;
}
:is(:is([class^="t2-table-"], [class*=" t2-table-"], [class^="t2-input-"], [class*=" t2-input-"]) :is(input:not([type]), input[type="text"], input[type="search"], input[type="email"], input[type="url"], input[type="tel"], input[type="number"], input[type="password"], textarea, select), input:not([type])[class^="t2-table-"], input:not([type])[class*=" t2-table-"], input[type="text"][class^="t2-table-"], input[type="text"][class*=" t2-table-"], input[type="search"][class^="t2-table-"], input[type="search"][class*=" t2-table-"], input[type="email"][class^="t2-table-"], input[type="email"][class*=" t2-table-"], input[type="url"][class^="t2-table-"], input[type="url"][class*=" t2-table-"], input[type="tel"][class^="t2-table-"], input[type="tel"][class*=" t2-table-"], input[type="number"][class^="t2-table-"], input[type="number"][class*=" t2-table-"], input[type="password"][class^="t2-table-"], input[type="password"][class*=" t2-table-"], textarea[class^="t2-table-"], textarea[class*=" t2-table-"], select[class^="t2-table-"], select[class*=" t2-table-"], input:not([type])[class^="t2-input-"], input:not([type])[class*=" t2-input-"], input[type="text"][class^="t2-input-"], input[type="text"][class*=" t2-input-"], input[type="search"][class^="t2-input-"], input[type="search"][class*=" t2-input-"], input[type="email"][class^="t2-input-"], input[type="email"][class*=" t2-input-"], input[type="url"][class^="t2-input-"], input[type="url"][class*=" t2-input-"], input[type="tel"][class^="t2-input-"], input[type="tel"][class*=" t2-input-"], input[type="number"][class^="t2-input-"], input[type="number"][class*=" t2-input-"], input[type="password"][class^="t2-input-"], input[type="password"][class*=" t2-input-"], textarea[class^="t2-input-"], textarea[class*=" t2-input-"], select[class^="t2-input-"], select[class*=" t2-input-"]) {
  -webkit-appearance: none;
  appearance: none;
  box-shadow: none;
}
:is(:is([class^="t2-table-"], [class*=" t2-table-"], [class^="t2-input-"], [class*=" t2-input-"]) :is(button, input, textarea, select), button[class^="t2-table-"], button[class*=" t2-table-"], input[class^="t2-table-"], input[class*=" t2-table-"], textarea[class^="t2-table-"], textarea[class*=" t2-table-"], select[class^="t2-table-"], select[class*=" t2-table-"], button[class^="t2-input-"], button[class*=" t2-input-"], input[class^="t2-input-"], input[class*=" t2-input-"], textarea[class^="t2-input-"], textarea[class*=" t2-input-"], select[class^="t2-input-"], select[class*=" t2-input-"]):focus {
  outline: none;
}
:is(:is([class^="t2-table-"], [class*=" t2-table-"], [class^="t2-input-"], [class*=" t2-input-"]) :is(button, input, textarea, select), button[class^="t2-table-"], button[class*=" t2-table-"], input[class^="t2-table-"], input[class*=" t2-table-"], textarea[class^="t2-table-"], textarea[class*=" t2-table-"], select[class^="t2-table-"], select[class*=" t2-table-"], button[class^="t2-input-"], button[class*=" t2-input-"], input[class^="t2-input-"], input[class*=" t2-input-"], textarea[class^="t2-input-"], textarea[class*=" t2-input-"], select[class^="t2-input-"], select[class*=" t2-input-"]):focus-visible {
  outline: 1px solid var(--t2-plugin-product, var(--t2-product));
  outline-offset: 2px;

}

.t2-table-controls,
.t2-table-scroll-wrapper {
  max-width: 100%;
  overflow-y: hidden;
  overscroll-behavior-x: contain;
  overscroll-behavior-y: none;
  touch-action: pan-x pinch-zoom;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.t2-table-controls::-webkit-scrollbar,
.t2-table-scroll-wrapper::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}

/* T2Editor /law 706 — plugin select indicator after native appearance reset */
:is(:is([class^="t2-table-"], [class*=" t2-table-"], [class^="t2-input-"], [class*=" t2-input-"]) select, select[class^="t2-table-"], select[class*=" t2-table-"], select[class^="t2-input-"], select[class*=" t2-input-"]):not([multiple]):not([size]) {
  padding-inline-end: max(32px, 2.25em);
  background: var(--t2-surface);
  background-position:
    calc(100% - 14px) calc(50% - 1px),
    calc(100% - 9px) calc(50% - 1px);
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
}
/* Custom drag surfaces own pointer movement and must not trigger native text/image selection. */
:where([data-t2-drag-surface], [draggable="true"], input[type="range"], [role="slider"],
  [class*="drag-handle"], [class*="resize-handle"], [class*="resizer"],
  [class*="crop-handle"], [class*="trim-handle"], [class*="seek-bar"],
  [class*="slider-thumb"], [class*="range-thumb"]) {
  -webkit-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
}
:where([data-t2-drag-surface], [draggable="true"], input[type="range"], [role="slider"],
  [class*="drag-handle"], [class*="resize-handle"], [class*="resizer"],
  [class*="crop-handle"], [class*="trim-handle"], [class*="seek-bar"],
  [class*="slider-thumb"], [class*="range-thumb"]) img {
  -webkit-user-drag: none;
  user-drag: none;
  pointer-events: none;
}
html.t2-drag-selection-active, html.t2-drag-selection-active body {
  -webkit-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
}

}
