[hidden] { display: none !important; }
button, select, input { font-family: var(--font-tw); }
button, summary, select, a { touch-action: manipulation; }
button:focus-visible, select:focus-visible, input:focus-visible, summary:focus-visible, a:focus-visible, .token:focus-visible { outline: 3px solid var(--indigo-soft); outline-offset: 3px; }
select { max-width: 100%; padding: .4rem; border: 1px solid var(--rule); background: var(--card-bg); color: var(--ink); border-radius: 3px; }
#error { margin: .5rem 0; }
.token { cursor: pointer; }
.token:hover { transform: none; }
.token.selected { outline: 2px solid var(--indigo); }
#pagination { display: flex; align-items: center; justify-content: center; gap: .75rem; margin-top: 1rem; flex-wrap: wrap; }
.keyboard-note, .batch-tools p { font-size: .75rem; color: var(--ink-soft); }
.batch-tools { margin-top: 1rem; border-top: 1px solid var(--rule); padding-top: .75rem; }
.batch-tools input { display: block; max-width: 100%; margin: .5rem 0; }
.batch-tools button { margin: .25rem; }
#word-tooltip { position: absolute; z-index: 20; max-width: min(22rem, calc(100vw - 1rem)); background: var(--card-bg); color: var(--ink); border: 1px solid var(--rule); border-radius: 4px; padding: .5rem .7rem; font-size: .85rem; line-height: 1.5; box-shadow: 0 2px 10px rgba(42,38,32,.18); font-family: var(--font-tw); pointer-events: none; overflow-wrap: anywhere; }
#word-tooltip .tt-gloss { margin-top: .3rem; padding-top: .3rem; border-top: 1px solid var(--rule); color: var(--ink-soft); }
@media (max-width: 30rem) {
  body { padding: 1rem .75rem 2rem; }
  .eyebrow { font-size: .7rem; letter-spacing: .06em; }
  h1 { font-size: 1.45rem; line-height: 1.5; }
  .lede { font-size: .9rem; margin-bottom: 1rem; }
  section.panel { padding: 1rem; margin-bottom: 1rem; }
  textarea { min-height: 6rem; padding: .65rem; font-size: 1rem; }
  .controls { margin-top: .75rem; gap: .6rem; }
  .controls:not(.toggles) { flex-direction: row; flex-wrap: wrap; }
  .controls:not(.toggles) > div { flex-basis: 100%; }
  .legend { gap: .35rem; }
  .keyboard-note { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
/* 帳號導覽與管理對話框 */
.account-nav { display:flex; flex-wrap:wrap; align-items:center; gap:0.8rem; margin-bottom:1.4rem; }
.account-nav a { color:var(--indigo); }
.account-nav .copy-btn { margin:0; }
#nav-user { margin-left:auto; }
dialog { color:var(--ink); background:var(--card-bg); border:1px solid var(--rule); border-radius:8px; padding:1.5rem; max-width:min(42rem,95vw); max-height:90vh; overflow:auto; font-family:var(--font-tw); }
dialog::backdrop { background:rgba(0,0,0,.35); }
dialog form > label { display:block; margin:.6rem 0; }
dialog input:not([type=checkbox]), dialog select { font:inherit; padding:.3rem; max-width:100%; }
dialog small { display:block; color:var(--ink-soft); }
.users-table-wrap { overflow-x:auto; }
#users-dialog table { width:100%; border-collapse:collapse; }
#users-dialog th, #users-dialog td { text-align:left; padding:.4rem; border-bottom:1px solid var(--rule); white-space:nowrap; }
#account-error, #users-error { color:var(--seal); }
#advanced-features { display:block; border:1px solid var(--rule); border-radius:3px; margin:1.2rem 0 0; padding:.5rem 1rem .8rem; }
#advanced-features legend { display:block; padding:0 .4rem; font-size:.85rem; font-style:italic; color:var(--ink-soft); letter-spacing:.08em; }
#advanced-features .toggle { align-items:flex-start; }
#advanced-features .toggle input { margin:.35rem 0 0; flex-shrink:0; }
#advanced-features .toggle span { color:var(--ink); line-height:1.6; }
#advanced-features small { display:block; font-size:.78rem; color:var(--ink-soft); }

/* 分頁與批次處理 */
.account-nav .tab { padding:.35rem .9rem; border:1px solid var(--rule); border-radius:3px; text-decoration:none; background:var(--card-bg); }
.account-nav .tab[aria-current="page"] { background:var(--indigo); color:var(--paper); border-color:var(--indigo); }
.batch-card h2 { margin:0 0 .5rem; font-size:1.15rem; letter-spacing:.06em; }
.batch-card .hint { font-size:.85rem; color:var(--ink-soft); margin:.3rem 0 1rem; line-height:1.7; }
.batch-card code { font-family:var(--font-tailo); background:var(--paper-2); padding:0 .3rem; border-radius:2px; }
.drop-zone { display:flex; flex-direction:column; align-items:center; gap:.3rem; padding:1.4rem 1rem; border:2px dashed var(--rule); border-radius:6px; background:#fffef9; cursor:pointer; text-align:center; }
.drop-zone:hover, .drop-zone.over { border-color:var(--indigo-soft); background:#f4f6fb; }
.drop-zone input[type=file] { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.drop-zone:focus-within { outline:3px solid var(--indigo-soft); outline-offset:3px; }
.drop-title { font-weight:700; color:var(--indigo); }
.drop-sub { font-size:.82rem; color:var(--ink-soft); }
.file-list { list-style:none; margin:.8rem 0 0; padding:0; max-height:14rem; overflow:auto; font-size:.85rem; }
.file-list li { display:flex; gap:.6rem; padding:.25rem .5rem; border-bottom:1px solid var(--rule); }
.file-list .st { margin-left:auto; white-space:nowrap; color:var(--ink-soft); }
.file-list li.skip { color:#7a705c; text-decoration:line-through; }
.file-list li.skip .st { text-decoration:none; }
.file-list li.err .st { color:var(--seal); }
.file-list li.done .st { color:var(--jade); }
#batch-progress { width:100%; margin-top:.8rem; accent-color:var(--indigo); }
