/* ===== Variables: Lime (light, default) ===== */
:root,[data-theme="lime"] {
  --bg:#f6f9f2;--bg-s:#ffffff;--bg-h:#eef4e8;--bg-a:#e4edda;--bg-sel:#eaf2e2;--bg-dng:#fce4e4;
  --tx:#000000;--tx-d:#6b7268;--tx-b:#000000;
  --table-font-size:13px;
  --table-font-family:-apple-system,'Segoe UI',system-ui,sans-serif;
  --editor-font-size:14px;
  --editor-font-family:'Cascadia Code','Fira Code','JetBrains Mono','Consolas',monospace;
  --ui-font-size:13px;
  --ui-font-family:-apple-system,'Segoe UI',system-ui,sans-serif;
  --ac:#6b8f4a;--ac-h:#8ba866;--dng:#e05060;--ok:#5a8f3a;--wrn:#d4940a;
  --bd:#c8d4c0;--bd-l:#b8c8b0;--sb:#c0ccb8;--sb-h:#aab8a0;
  --tg:#5a7f3a;--sh:#c5e8b0;--sh-t:#2f352b;--fl:rgba(107,143,74,.12);--ms:rgba(0,0,0,.18);
  --tag-bpt-bg:#dcfce7;--tag-bpt-fg:#166534;
  --tag-ept-bg:#fee2e2;--tag-ept-fg:#991b1b;
  --tag-ph-bg:#ecfccb;--tag-ph-fg:#3f6212;
  --tag-it-bg:#d9f99d;--tag-it-fg:#365314;
  --edit-glow:rgba(107,143,74,.2);
  --tb-h:48px;--side-w:300px;
  --font-mono:'Cascadia Code','Fira Code','JetBrains Mono','Consolas',monospace;
  --font-ui:-apple-system,'Segoe UI',system-ui,sans-serif;--r:6px;
  --qa-btn-from:#6b8f4a;--qa-btn-to:#c8a830;--qa-btn-shadow:rgba(107,143,74,.3);
  --btn-a:#c8d8a0;--btn-b:#e0e8b8;
}

/* ===== Dark (Catppuccin Mocha) ===== */
[data-theme="dark"] {
  --bg:#1e1e2e;--bg-s:#181825;--bg-h:#313244;--bg-a:#45475a;--bg-sel:#2a2a3c;--bg-dng:#45273a;
  --tx:#cdd6f4;--tx-d:#a6adc8;--tx-b:#ffffff;
  --ac:#89b4fa;--ac-h:#b4d0fb;--dng:#f38ba8;--ok:#a6e3a1;--wrn:#f9e2af;
  --bd:#45475a;--bd-l:#585b70;--sb:#585b70;--sb-h:#6c7086;
  --tg:#74c7ec;--sh:#a6e3a1;--sh-t:#1e1e2e;--fl:rgba(137,180,250,.18);--ms:rgba(0,0,0,.6);
  --tag-bpt-bg:#1e3a5f;--tag-bpt-fg:#89b4fa;
  --tag-ept-bg:#5f1e2e;--tag-ept-fg:#f38ba8;
  --tag-ph-bg:#1e3a5f;--tag-ph-fg:#74c7ec;
  --tag-it-bg:#3a1e5f;--tag-it-fg:#cba6f7;
  --edit-glow:rgba(137,180,250,.3);
  --qa-btn-from:#89b4fa;--qa-btn-to:#f38ba8;--qa-btn-shadow:rgba(137,180,250,.3);
  --btn-a:#45475a;--btn-b:#585b70;
}

/* ===== Violet / Сиреневая (light) ===== */
[data-theme="violet"] {
  --bg:#faf6fc;--bg-s:#ffffff;--bg-h:#f0e8f5;--bg-a:#e8ddf0;--bg-sel:#f0e5f8;--bg-dng:#fce4e4;
  --tx:#000000;--tx-d:#7a6888;--tx-b:#000000;
  --ac:#7c3aed;--ac-h:#9f67ff;--dng:#d04060;--ok:#4a9f5a;--wrn:#c08020;
  --bd:#d8c8e8;--bd-l:#c8b8d8;--sb:#c8b8d8;--sb-h:#b8a0cc;
  --tg:#7c3aed;--sh:#d8c0f0;--sh-t:#2e2438;--fl:rgba(124,58,237,.12);--ms:rgba(0,0,0,.18);
  --tag-bpt-bg:#ede0f8;--tag-bpt-fg:#5a2d8a;
  --tag-ept-bg:#fde2e2;--tag-ept-fg:#991b1b;
  --tag-ph-bg:#e0e8f8;--tag-ph-fg:#2a4080;
  --tag-it-bg:#e8ddf0;--tag-it-fg:#5a2d8a;
  --edit-glow:rgba(124,58,237,.25);
  --qa-btn-from:#7c3aed;--qa-btn-to:#5ca0d8;--qa-btn-shadow:rgba(124,58,237,.3);
  --btn-a:#e0d8f0;--btn-b:#d0e0f0;
}

/* ===== Blue / Синяя (light) ===== */
[data-theme="blue"] {
  --bg:#f2f6fc;--bg-s:#ffffff;--bg-h:#e4eef8;--bg-a:#d8e4f0;--bg-sel:#e0ecf8;--bg-dng:#fce4e4;
  --tx:#000000;--tx-d:#5a7088;--tx-b:#000000;
  --ac:#3070c0;--ac-h:#4080d8;--dng:#d04060;--ok:#3a8f4a;--wrn:#b88020;
  --bd:#c0d0e0;--bd-l:#b0c0d0;--sb:#b0c0d0;--sb-h:#98b0c8;
  --tg:#3070c0;--sh:#b0d8f8;--sh-t:#1a2838;--fl:rgba(48,112,192,.12);--ms:rgba(0,0,0,.18);
  --tag-bpt-bg:#dbeafe;--tag-bpt-fg:#1e40af;
  --tag-ept-bg:#fee2e2;--tag-ept-fg:#991b1b;
  --tag-ph-bg:#e0f2fe;--tag-ph-fg:#075985;
  --tag-it-bg:#d8e4f0;--tag-it-fg:#1e3a5f;
  --edit-glow:rgba(48,112,192,.2);
  --qa-btn-from:#3070c0;--qa-btn-to:#d060a0;--qa-btn-shadow:rgba(48,112,192,.3);
  --btn-a:#d0dce8;--btn-b:#d0c8e8;
}

/* ===== Contrast / Контрастная (light, high-contrast) ===== */
[data-theme="contrast"] {
  --bg:#ffffff;--bg-s:#ffffff;--bg-h:#f0f0f0;--bg-a:#e4e4e4;--bg-sel:#e8f0e8;--bg-dng:#ffe0e0;
  --tx:#000000;--tx-d:#444444;--tx-b:#000000;
  --ac:#005522;--ac-h:#007733;--dng:#cc0000;--ok:#006622;--wrn:#886600;
  --bd:#888888;--bd-l:#999999;--sb:#999999;--sb-h:#777777;
  --tg:#005522;--sh:#a0d8a0;--sh-t:#000000;--fl:rgba(0,85,34,.12);--ms:rgba(0,0,0,.18);
  --tag-bpt-bg:#c8f0d0;--tag-bpt-fg:#004420;
  --tag-ept-bg:#f0c8c8;--tag-ept-fg:#8b0000;
  --tag-ph-bg:#c8e0f0;--tag-ph-fg:#003366;
  --tag-it-bg:#e0e0c0;--tag-it-fg:#555500;
  --edit-glow:rgba(0,85,34,.25);
  --qa-btn-from:#005522;--qa-btn-to:#886600;--qa-btn-shadow:rgba(0,85,34,.3);
  --btn-a:#d0d0d0;--btn-b:#c0c8b8;
}

/* ===== Table row overrides per theme ===== */
[data-theme="lime"] #tuTable tbody tr:nth-child(even){background:#f2f6ed}
[data-theme="lime"] #tuTable tbody tr:nth-child(odd){background:#ffffff}
[data-theme="lime"] #tuTable tr.row-selected{background:#e0ecd5}
[data-theme="lime"] tr.inline-editing-row{background:#e8f2e0!important}

[data-theme="dark"] #tuTable tbody tr:nth-child(even){background:#262637}
[data-theme="dark"] #tuTable tbody tr:nth-child(odd){background:#1e1e2e}
[data-theme="dark"] #tuTable tr.row-selected{background:#2a2a3c}
[data-theme="dark"] tr.inline-editing-row{background:#2a2a3c!important}

[data-theme="violet"] #tuTable tbody tr:nth-child(even){background:#f4eef8}
[data-theme="violet"] #tuTable tbody tr:nth-child(odd){background:#ffffff}
[data-theme="violet"] #tuTable tr.row-selected{background:#e8ddf0}
[data-theme="violet"] tr.inline-editing-row{background:#ecddf5!important}

[data-theme="blue"] #tuTable tbody tr:nth-child(even){background:#e8f0f8}
[data-theme="blue"] #tuTable tbody tr:nth-child(odd){background:#ffffff}
[data-theme="blue"] #tuTable tr.row-selected{background:#d8e4f0}
[data-theme="blue"] tr.inline-editing-row{background:#dce8f4!important}

[data-theme="contrast"] #tuTable tbody tr:nth-child(even){background:#f0f0f0}
[data-theme="contrast"] #tuTable tbody tr:nth-child(odd){background:#ffffff}
[data-theme="contrast"] #tuTable tr.row-selected{background:#d0e8d0}
[data-theme="contrast"] tr.inline-editing-row{background:#d8eed8!important}

/* ===== Reset ===== */
*{margin:0;padding:0;box-sizing:border-box}
html,body{margin:0;padding:0;height:100%;overflow:hidden}
body{font-family:var(--font-ui);font-size:14px;color:var(--tx);background:var(--bg);display:flex;flex-direction:column}
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--sb);border-radius:4px}
::-webkit-scrollbar-thumb:hover{background:var(--sb-h)}

/* ===== Toolbar ===== */
#toolbar{height:var(--tb-h);background:var(--bg-s);border-bottom:1px solid var(--bd);display:flex;align-items:center;padding:0 12px;gap:6px;flex-shrink:0;z-index:15;font-size:var(--ui-font-size);font-family:var(--ui-font-family);overflow:visible}
.toolbar-left,.toolbar-right{display:flex;align-items:center;gap:4px}
.toolbar-center{flex:1;text-align:center}
.separator{width:1px;height:24px;background:var(--bd);margin:0 4px}
#toolbar button{background:var(--bg-s);color:var(--tx);border:1px solid var(--bd);border-radius:12px;padding:6px 10px;cursor:pointer;font-size:var(--ui-font-size);white-space:nowrap;transition:all .15s;font-weight:500;display:flex;align-items:center;gap:6px}
#toolbar button svg{opacity:0.9}
#toolbar button:hover:not(:disabled){background:var(--ac);border-color:var(--ac-h);color:#fff;transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,.12)}
#toolbar button:hover:not(:disabled) svg{opacity:1}

/* Recent files */
.open-btn-wrap{display:flex;align-items:center;gap:4px;position:relative}
.open-btn-wrap>#btnOpen{border-radius:12px}
.recent-toggle-btn{background:var(--bg-s);color:var(--tx);border:1px solid var(--bd);border-radius:12px;padding:6px 6px;cursor:pointer;font-size:11px;font-weight:700;transition:all .15s;display:flex;align-items:center}
.recent-toggle-btn:hover:not(:disabled){background:linear-gradient(180deg,var(--ac) 0%,var(--ac-h) 100%);color:#fff}
.recent-toggle-btn:disabled{opacity:.35;cursor:default}
.recent-dropdown{position:absolute;top:calc(100% + 4px);left:0;background:var(--bg-s);border:1px solid var(--bd);border-radius:12px;box-shadow:0 4px 16px rgba(0,0,0,.3);z-index:300;min-width:340px;max-width:400px;display:none;padding:0;overflow:hidden}
.recent-dropdown.show{display:block}
.recent-header{padding:10px 12px 6px;font-size:12px;font-weight:700;color:var(--ac);border-bottom:1px solid var(--bd)}
.recent-list{max-height:300px;overflow-y:auto;padding:4px 0}
.recent-empty{padding:16px 12px;text-align:center;color:var(--tx-d);font-size:12px}
.recent-item{display:flex;align-items:center;padding:8px 12px;cursor:pointer;transition:background .15s;gap:8px}
.recent-item:hover{background:var(--bg-h)}
.recent-item-info{flex:1;min-width:0}
.recent-item-name{font-size:12px;font-weight:600;color:var(--tx);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.recent-item-meta{font-size:10px;color:var(--tx-d);margin-top:2px}
.recent-item-del{background:none;border:none;color:var(--tx-d);cursor:pointer;font-size:14px;padding:4px 6px;border-radius:6px;flex-shrink:0;opacity:0;transition:all .15s}
.recent-item:hover .recent-item-del{opacity:1}
.recent-item-del:hover{color:var(--wrn);background:var(--bg-h)}
.recent-footer{padding:6px 12px;border-top:1px solid var(--bd);text-align:center}
.recent-clear-btn{background:none;border:1px solid var(--bd);color:var(--tx-d);border-radius:8px;padding:4px 12px;font-size:11px;cursor:pointer;transition:all .15s}
.recent-clear-btn:hover{color:var(--wrn);border-color:var(--wrn)}
#toolbar button:disabled{opacity:.35;cursor:default}
/* #btnTheme removed */
.qa-btn-group{display:flex;align-items:center;gap:6px;position:relative}
.qa-progress-popup{position:absolute;top:calc(100% + 4px);left:0;width:360px;z-index:300}
.file-name{color:var(--tx-d);font-size:var(--ui-font-size);font-style:italic}
.stats-panel-inline{position:relative;cursor:pointer}
.stats-badge{background:linear-gradient(180deg,var(--ac) 0%,var(--ac-h) 100%);color:#fff;padding:3px 10px;border-radius:12px;font-size:var(--ui-font-size);font-weight:600;cursor:pointer}
.stats-badge:hover{background:linear-gradient(180deg,var(--ac-h) 0%,var(--ac) 100%)}
.stats-dropdown{position:absolute;top:100%;right:0;background:var(--bg-s);border:1px solid var(--bd);border-radius:var(--r);box-shadow:0 4px 12px rgba(0,0,0,.3);z-index:50;min-width:200px;padding:12px;display:none;font-size:12px;color:var(--tx-d);pointer-events:none}
.stats-dropdown.show{display:block;pointer-events:auto}
.stats-dropdown p{margin:2px 0}
.modified-badge{color:var(--wrn);font-size:var(--ui-font-size);font-weight:700}

/* Theme select in toolbar */
#themeSelect{
  background:linear-gradient(180deg,var(--btn-a) 0%,var(--btn-b) 100%);color:var(--tx);border:1px solid var(--bd);border-radius:12px;
  padding:4px 8px;font-size:var(--ui-font-size);font-family:var(--ui-font-family);
  cursor:pointer;transition:all .15s;font-weight:500;outline:none;
}
#themeSelect:hover{border-color:var(--ac);background:linear-gradient(180deg,var(--ac) 0%,var(--ac-h) 100%);color:#fff}
#themeSelect:focus{border-color:var(--ac);box-shadow:0 0 0 2px var(--edit-glow)}
#themeSelect option{background:var(--bg-s);color:var(--tx)}

/* Edit mode toggle */
.edit-mode-toggle{display:flex;border:1px solid var(--bd);border-radius:12px;overflow:hidden}
.mode-btn{background:var(--bg)!important;border:none!important;border-radius:0!important;padding:4px 10px!important;font-size:12px!important;color:var(--tx-d)!important;cursor:pointer;transition:all .15s}
.mode-btn.active{background:linear-gradient(180deg,var(--ac) 0%,var(--ac-h) 100%)!important;color:#fff!important;font-weight:600}
.mode-btn:hover:not(.active){background:linear-gradient(180deg,var(--btn-a) 0%,var(--btn-b) 100%)!important;color:var(--tx)!important}

/* Spellcheck button */
.spellcheck-btn{background:linear-gradient(180deg,var(--btn-a) 0%,var(--btn-b) 100%);color:var(--tx);border:1px solid var(--bd);border-radius:12px;padding:5px 12px;cursor:pointer;font-size:12px;transition:all .15s;white-space:nowrap;font-weight:500}
.spellcheck-btn:hover:not(:disabled){background:linear-gradient(180deg,var(--ac) 0%,var(--ac-h) 100%);border-color:var(--ac);color:#fff;transform:translateY(-1px)}
.spellcheck-btn[data-enabled="true"]{background:linear-gradient(180deg,var(--ac) 0%,var(--ac-h) 100%);border-color:var(--ac);color:#fff;font-weight:600}
.spellcheck-btn[data-enabled="false"]{color:var(--tx-d)}

/* Settings dropdown */
.settings-dropdown{position:absolute;top:var(--tb-h);right:12px;background:var(--bg-s);border:1px solid var(--bd);border-radius:0 0 12px 12px;box-shadow:0 4px 12px rgba(0,0,0,.3);z-index:50;min-width:280px;max-height:400px;overflow-y:auto;pointer-events:none}
.settings-dropdown.show{pointer-events:auto}
.settings-section{padding:12px;border-bottom:1px solid var(--bd)}
.settings-section:last-child{border-bottom:none}
.settings-section h3{font-size:13px;color:var(--ac);margin-bottom:8px;font-weight:600}

/* ===== Layout ===== */
#mainLayout{flex:1;display:flex;overflow:hidden}

/* ===== Side Panel ===== */
#sidePanel{width:var(--side-w);min-width:240px;max-width:480px;background:var(--bg-s);border-right:1px solid var(--bd);overflow-y:auto;flex-shrink:0;transition:margin-left .25s;font-size:var(--ui-font-size);font-family:var(--ui-font-family);display:none}
#sidePanel.collapsed{margin-left:calc(-1 * var(--side-w))}
.panel-section{padding:12px;border-bottom:1px solid var(--bd)}
.panel-section h3{font-size:var(--ui-font-size);color:var(--ac);margin-bottom:8px;font-weight:600}

.batch-ops{display:flex;flex-direction:column;gap:4px}
.batch-action-select{background:linear-gradient(180deg,var(--btn-a) 0%,var(--btn-b) 100%);color:var(--tx);border:1px solid var(--bd);border-radius:12px;padding:6px 10px;cursor:pointer;font-size:13px;transition:all .15s;width:100%}
.batch-action-select:hover{border-color:var(--ac)}
.batch-action-select:focus{outline:none;border-color:var(--ac);box-shadow:0 0 0 2px var(--edit-glow)}
.batch-action-select option{background:var(--bg-s);color:var(--tx)}
.batch-execute-btn{background:linear-gradient(180deg,var(--ac) 0%,var(--ac-h) 100%);color:#fff;border:none;border-radius:12px;padding:7px 14px;cursor:pointer;font-size:13px;font-weight:600;transition:all .15s;margin-top:4px}
.batch-execute-btn:hover:not(:disabled){background:linear-gradient(180deg,var(--ac-h) 0%,var(--ac) 100%);transform:translateY(-1px)}
.batch-execute-btn:disabled{opacity:.35;cursor:default}

.clean-ops{display:flex;flex-direction:column;gap:5px}
.clean-ops label{font-size:12px;color:var(--tx-d);display:flex;align-items:center;gap:5px;cursor:pointer}
.clean-ops button{background:linear-gradient(180deg,var(--btn-a) 0%,var(--btn-b) 100%);color:var(--tx);border:1px solid var(--bd);border-radius:12px;padding:6px 12px;cursor:pointer;font-size:13px;text-align:left;transition:all .15s;margin-top:4px;font-weight:500}
.clean-ops button:hover:not(:disabled){border-color:var(--ac);background:linear-gradient(180deg,var(--ac) 0%,var(--ac-h) 100%);color:#fff;transform:translateY(-1px)}
.clean-ops button:disabled{opacity:.35;cursor:default}

.stats-panel{font-size:12px;color:var(--tx-d)}
.stats-panel p{margin:2px 0}
.stat-val{color:var(--tx-b);font-weight:600}

/* Font settings */
.font-settings{display:flex;flex-direction:column;gap:10px}
.font-settings label{font-size:12px;color:var(--tx-d);display:flex;align-items:center;gap:8px}
.font-settings label span:first-child{min-width:100px}
.font-settings input[type="range"]{flex:1;cursor:pointer}
.font-settings select{flex:1;padding:4px 8px;border:1px solid var(--bd);border-radius:12px;background:linear-gradient(180deg,var(--btn-a) 0%,var(--btn-b) 100%);color:var(--tx);cursor:pointer;font-size:12px}
.font-settings select:focus{outline:none;border-color:var(--ac)}
#fontSizeValue{min-width:40px;text-align:right;font-weight:600;color:var(--ac)}
.font-apply-options{display:flex;gap:12px;margin-top:4px}
.font-apply-options label{font-size:11px;color:var(--tx-d);display:flex;align-items:center;gap:6px;cursor:pointer}
.apply-font-btn{background:linear-gradient(180deg,var(--ac) 0%,var(--ac-h) 100%);color:#fff;border:none;border-radius:12px;padding:7px 14px;cursor:pointer;font-size:12px;font-weight:600;transition:all .15s;margin-top:8px}
.apply-font-btn:hover{background:linear-gradient(180deg,var(--ac-h) 0%,var(--ac) 100%);transform:translateY(-1px)}
.qa-run-btn{background:linear-gradient(135deg,var(--qa-btn-from) 0%,var(--qa-btn-to) 100%);color:#fff;border:none;border-radius:12px;padding:8px 16px;cursor:pointer;font-size:13px;font-weight:600;transition:all .15s;margin-top:8px;box-shadow:0 4px 15px var(--qa-btn-shadow)}
.qa-run-btn:hover{background:linear-gradient(135deg,var(--qa-btn-to) 0%,var(--qa-btn-from) 100%);transform:translateY(-2px);box-shadow:0 6px 20px var(--qa-btn-shadow)}

/* ===== Resize ===== */
#resizeHandle{width:5px;cursor:col-resize;background:transparent;transition:background .2s;flex-shrink:0}
#resizeHandle:hover,#resizeHandle.active{background:var(--ac)}

/* ===== Content ===== */
#contentArea{flex:1;overflow:hidden;display:flex;flex-direction:column}

/* ===== Search Bar ===== */
#searchBar{display:flex;align-items:flex-start;background:var(--bg-s);border-bottom:2px solid var(--bd);padding:8px 0;flex-shrink:0;position:relative;z-index:10;overflow:visible}
.sb-col{padding:0 4px;overflow:visible}
.sb-src,.sb-tgt{padding:0 8px;overflow:visible}
.sb-check{width:36px;display:flex;align-items:center;justify-content:center;padding-top:8px;flex-shrink:0}
.sb-num{width:40px;flex-shrink:0}
.sb-src,.sb-tgt{flex:1;min-width:0}
.sb-refresh{width:auto;flex-shrink:0;display:flex;align-items:center;padding:0}
.refresh-search-btn{margin-top:0;background:var(--bg-s);color:var(--tx);border:1px solid var(--bd);border-radius:12px;padding:0;cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center;width:38px;height:38px;box-sizing:border-box;flex-shrink:0}
.refresh-search-btn:hover{background:var(--ac);color:#fff}
.sb-find-replace-btn{flex-shrink:0;display:flex;align-items:center}
.find-replace-inline-btn{margin-top:0;background:var(--bg-s);color:var(--tx);border:1px solid var(--bd);border-radius:12px;padding:0 12px;cursor:pointer;transition:all .15s;display:flex;align-items:center;gap:4px;font-size:13px;font-weight:500;white-space:nowrap;height:38px;box-sizing:border-box}
.find-replace-inline-btn:hover{background:var(--ac);color:#fff}
.find-replace-inline-btn svg{opacity:.9}
.sb-filter{width:140px;flex-shrink:0}
.sb-quick-clean{width:100px;flex-shrink:0;position:relative;overflow:visible}
.sb-clean{width:220px;flex-shrink:0}
.sb-ctx{width:15%;flex-shrink:0}
.sb-acts{width:70px;flex-shrink:0}
#searchBar input[type="text"]{width:100%;background:var(--bg-s);color:var(--tx);border:1px solid var(--bd);border-radius:12px;padding:10px 12px;font-size:13px;transition:border-color .15s;min-height:38px;box-sizing:border-box}
#searchBar input[type="text"]:focus{outline:none;border-color:var(--ac);box-shadow:0 0 0 2px var(--edit-glow)}
.quick-filter-select{width:100%;color:var(--tx);border:1px solid var(--bd);border-radius:12px;padding:0 28px 0 12px;font-size:13px;transition:border-color .15s;cursor:pointer;height:38px;box-sizing:border-box;appearance:none;-webkit-appearance:none;-moz-appearance:none;background-color:var(--bg-s);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;background-size:14px}
.quick-filter-select:hover{border-color:var(--ac);background-color:var(--ac);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");color:#fff}
.quick-filter-select:focus{outline:none;border-color:var(--ac);box-shadow:0 0 0 2px var(--edit-glow)}
.quick-filter-select option{background:var(--bg-s);color:var(--tx)}
.sb-opts{display:flex;gap:10px;margin-top:4px;flex-wrap:wrap}
.sb-opts label{font-size:11px;color:var(--tx-d);display:flex;align-items:center;gap:3px;cursor:pointer;user-select:none;white-space:nowrap}
.sb-opts label:hover{color:var(--tx)}
.sb-opts input[type="checkbox"]{width:13px;height:13px}

/* Clean buttons in search bar */
.clean-ops-inline{display:flex;gap:8px;padding-top:8px}
.clean-btn{background:linear-gradient(180deg,var(--btn-a) 0%,var(--btn-b) 100%);color:var(--tx);border:1px solid var(--bd);border-radius:12px;padding:6px 12px;cursor:pointer;font-size:12px;transition:all .15s;white-space:nowrap;flex:1;font-weight:500}
.clean-btn:hover:not(:disabled){border-color:var(--ac);background:var(--ac);color:#fff;transform:translateY(-1px)}

/* Quick clean button */
.quick-clean-btn{background:var(--bg-s);color:var(--tx);border:1px solid var(--bd);border-radius:12px;padding:0 12px;cursor:pointer;font-size:13px;font-weight:500;transition:all .15s;white-space:nowrap;width:100%;height:38px;box-sizing:border-box}
.quick-clean-btn:hover{border-color:var(--ac);background:var(--ac);color:#fff}
.quick-clean-dropdown{position:absolute;top:calc(100% + 4px);left:0;background:var(--bg-s);border:1px solid var(--bd);border-radius:12px;box-shadow:0 4px 12px rgba(0,0,0,.3);z-index:200;min-width:180px;display:none;padding:4px 0}
.quick-clean-dropdown.show{display:block}
.quick-clean-option{padding:6px 12px;font-size:12px;color:var(--tx);cursor:pointer;transition:background .15s}
.quick-clean-option:hover{background:var(--bg-h);color:var(--ac)}
.quick-clean-option:first-child{border-radius:12px 12px 0 0}
.quick-clean-option:last-child{border-radius:0 0 12px 12px}

/* QA error type filter */
.sb-qa-type-filter{width:130px;flex-shrink:0;position:relative;overflow:visible}
.qa-type-filter-btn{background:var(--bg-s);color:var(--tx);border:1px solid var(--bd);border-radius:12px;padding:0 12px;cursor:pointer;font-size:13px;font-weight:500;transition:all .15s;white-space:nowrap;width:100%;height:38px;box-sizing:border-box;text-overflow:ellipsis;overflow:hidden}
.qa-type-filter-btn:hover:not(:disabled){border-color:var(--ac);background:linear-gradient(180deg,var(--ac) 0%,var(--ac-h) 100%);color:#fff;transform:translateY(-1px)}
.qa-type-filter-btn:disabled{opacity:.5;cursor:default}
.qa-type-filter-btn.active{background:var(--ac);color:#fff;border-color:var(--ac);font-weight:600}
.qa-type-dropdown{position:absolute;top:calc(100% + 4px);left:0;background:var(--bg-s);border:1px solid var(--bd);border-radius:12px;box-shadow:0 4px 12px rgba(0,0,0,.3);z-index:200;min-width:240px;display:none;padding:4px 0}
.qa-type-dropdown.show{display:block}
.qa-type-option{padding:6px 12px;font-size:12px;color:var(--tx);cursor:pointer;transition:background .15s}
.qa-type-option:hover{background:var(--bg-h);color:var(--ac)}
.qa-type-option:first-child{border-radius:12px 12px 0 0}
.qa-type-option:last-child{border-radius:0 0 12px 12px}
.qa-type-sep{height:1px;background:var(--bd);margin:4px 8px}
.clean-btn:disabled{opacity:.35;cursor:default}

/* Clean options dropdown */
.clean-options-dropdown{position:absolute;top:100%;left:0;background:var(--bg-s);border:1px solid var(--bd);border-radius:12px;box-shadow:0 4px 12px rgba(0,0,0,.3);z-index:100;min-width:200px;padding:8px;display:none}
.clean-options-dropdown.show{display:block}
.clean-options-dropdown label{font-size:12px;color:var(--tx-d);display:flex;align-items:center;gap:5px;cursor:pointer;padding:4px 0}
.clean-options-dropdown label:hover{color:var(--tx)}
.clean-options-dropdown input[type="checkbox"]{width:13px;height:13px}

/* ===== Tag Markers ===== */
.tm-tag{
  display:inline-flex;align-items:center;justify-content:center;
  font-size:10px;font-weight:700;line-height:1;
  padding:2px 5px;margin:0 4px;
  vertical-align:+3px;user-select:none;white-space:nowrap;
  text-align:center;
  box-shadow:0 0 0 1px rgba(0,0,0,0.15);
}

/* Opening tag — semicircle on left */
.tm-open{
  background:var(--tag-bg);color:var(--tag-fg);
  border-radius:999px 3px 3px 999px;
}

/* Closing tag — semicircle on right */
.tm-close{
  background:var(--tag-bg);color:var(--tag-fg);
  border-radius:3px 999px 999px 3px;
}

/* Placeholder — pill shape */
.tm-ph{background:var(--tag-ph-bg);color:var(--tag-ph-fg);border-radius:12px}

/* Isolated tag — rounded */
.tm-it{background:var(--tag-it-bg);color:var(--tag-it-fg);border-radius:12px}

/* Tag icon styling */
.tag-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:10px;
  height:10px;
  border:1px solid currentColor;
  border-radius:50%;
  opacity:0.7;
}

/* In editing mode — tags are slightly larger */
.cell-editing .tm-tag{
  font-size:11px;padding:2px 5px;cursor:default;
}

/* Tag legend */
.tag-legend{
  position:fixed;bottom:12px;left:50%;transform:translateX(-50%);
  background:var(--bg-s);border:1px solid var(--bd);border-radius:12px;
  padding:6px 14px;font-size:12px;color:var(--tx-d);display:flex;align-items:center;gap:8px;z-index:50;
  box-shadow:0 4px 12px var(--ms);white-space:nowrap;
}

/* ===== QA Dropdown ===== */
.qa-dropdown{
  position:absolute;top:var(--tb-h);right:120px;
  background:var(--bg-s);border:1px solid var(--bd);border-radius:0 0 12px 12px;
  box-shadow:0 4px 16px rgba(0,0,0,.3);z-index:60;
  min-width:33vw;max-width:33vw;
  max-height:calc(100vh - var(--tb-h) - 16px);
  overflow-y:auto;
  pointer-events:none;
  -webkit-overflow-scrolling:touch;
}
.qa-dropdown.show{pointer-events:auto}
.qa-checks{padding:10px 12px 6px}
.qa-header{font-size:13px;font-weight:600;color:var(--ac);margin-bottom:8px;display:flex;justify-content:space-between;align-items:center}
.qa-checks-columns{display:grid;grid-template-columns:1fr 1fr;gap:8px 16px}
.qa-column{display:flex;flex-direction:column;gap:2px}
.qa-group-title{font-size:11px;font-weight:700;padding:4px 0 2px;margin-bottom:2px;border-bottom:1px solid var(--bd)}
.qa-toggle-btn{background:none;border:1px solid var(--bd);border-radius:12px;color:var(--tx-d);font-size:11px;padding:4px 10px;cursor:pointer;white-space:nowrap}
.qa-toggle-btn:hover{border-color:var(--ac);color:var(--ac)}
.qa-actions-row{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 12px 4px}
.qa-actions-row .qa-toggle-btn{flex:0 0 auto}
.qa-actions-row .qa-run-btn{flex:1;margin:0!important}
.qa-speller-row{display:flex;align-items:center;gap:4px;padding:6px 12px 2px;flex-wrap:wrap}
.qa-speller-label{font-size:11px;color:var(--tx-d);margin-right:2px}
.qa-speller-btn{background:var(--bg);border:1px solid var(--bd);border-radius:12px;color:var(--tx-d);font-size:10px;padding:2px 7px;cursor:pointer;transition:all .15s}
.qa-speller-btn:hover{border-color:var(--ac);color:var(--ac)}
.qa-speller-btn.active{background:var(--ac);color:#fff;border-color:var(--ac);font-weight:600}

/* QA rules section */
.qa-rules-section{border-top:1px solid var(--bd);padding:8px 12px 4px}
.qa-rules-header{font-size:12px;font-weight:600;color:var(--ac);margin-bottom:6px}
.qa-rules-section label{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--tx-d);padding:3px 0;cursor:pointer}
.qa-rules-section label:hover{color:var(--tx)}
.qa-rules-section input[type="checkbox"]{width:14px;height:14px}
.qa-speller-label{font-size:11px;color:var(--tx-d);margin-right:2px}
.qa-speller-btn{background:var(--bg);border:1px solid var(--bd);border-radius:12px;color:var(--tx-d);font-size:10px;padding:4px 10px;cursor:pointer;transition:all .15s}
.qa-speller-btn:hover{border-color:var(--ac);color:var(--ac)}
.qa-speller-btn.active{background:var(--ac);color:#fff;border-color:var(--ac);font-weight:600}
.qa-speller-hint{font-size:10px;color:var(--tx-d);padding:2px 12px 4px;line-height:1.4}
.qa-lang-row{display:flex;align-items:center;gap:6px;padding:4px 12px 6px;flex-wrap:wrap}
.qa-lang-row select{background:var(--bg);border:1px solid var(--bd);border-radius:8px;color:var(--tx);font-size:11px;padding:2px 8px;cursor:pointer;outline:none;flex:1;min-width:120px}
.qa-lang-row select:focus{border-color:var(--ac)}
.qa-speller-hint code{background:var(--bg-h);padding:1px 4px;border-radius:3px;font-size:10px}
.qa-checks label{
  display:flex;align-items:center;gap:6px;
  font-size:12px;color:var(--tx-d);padding:3px 0;cursor:pointer;
}
.qa-checks label:hover{color:var(--tx)}
.qa-checks input[type="checkbox"]{width:14px;height:14px}

.qa-results{border-top:1px solid var(--bd);padding:8px 12px}
.qa-result-header{font-size:12px;color:var(--tx-d);padding:4px 0 8px}
.qa-result-header strong{color:var(--wrn);font-size:14px}
.qa-summary{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.qa-stat{font-size:11px;color:var(--tx-d);background:var(--bg-h);padding:2px 8px;border-radius:12px}
.qa-stat strong{color:var(--wrn)}
.qa-loading{font-size:12px;color:var(--tx-d);text-align:center;padding:16px 0}
.qa-progress-box{padding:6px 10px;background:var(--bg-s);border:1px solid var(--bd);border-radius:10px;box-shadow:0 4px 12px rgba(0,0,0,.25);margin-top:4px}
.qa-progress-bar-wrap{width:100%;height:8px;background:var(--bg-h);border-radius:4px;overflow:hidden}
.qa-progress-bar{height:100%;background:var(--ac);border-radius:4px;transition:width .15s ease}
.qa-progress-row{display:flex;align-items:center;justify-content:space-between;margin-top:6px;gap:8px}
.qa-progress-row span{font-size:11px;color:var(--tx-d);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.qa-progress-time{font-size:11px;color:var(--ac);font-weight:600;flex-shrink:0;margin-left:auto}
.qa-cancel-btn{background:none;border:1px solid var(--bd);color:var(--tx-d);border-radius:6px;padding:2px 10px;font-size:11px;cursor:pointer;white-space:nowrap;flex-shrink:0}
.qa-cancel-btn:hover{background:var(--bg-h);color:var(--wrn);border-color:var(--wrn)}
.qa-api-warn{font-size:11px;color:var(--wrn);background:rgba(249,226,175,.1);border:1px solid var(--wrn);border-radius:12px;padding:8px 10px;margin-top:8px;line-height:1.5}

/* ===== Table ===== */
/* Find & Replace panel */
.find-replace-panel{background:var(--bg-s);border-bottom:2px solid var(--ac);padding:10px 16px;flex-shrink:0;position:relative;z-index:11}
.fr-row{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}
.fr-field{display:flex;flex-direction:column;gap:3px;min-width:200px;flex:1}
.fr-field label{font-size:11px;color:var(--tx-d);font-weight:600}
.fr-field input{background:var(--bg-s);color:var(--tx);border:1px solid var(--bd);border-radius:12px;padding:8px 12px;font-size:13px;transition:border-color .15s}
.fr-field input:focus{outline:none;border-color:var(--ac);box-shadow:0 0 0 2px var(--edit-glow)}
.fr-opts{display:flex;flex-wrap:wrap;gap:2px 10px;padding-bottom:4px}
.fr-opts label{font-size:12px;color:var(--tx-d);white-space:nowrap;cursor:pointer}
.fr-opts label:has(input:disabled){opacity:.4;cursor:not-allowed}
.fr-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.fr-btn{background:linear-gradient(180deg,var(--btn-a) 0%,var(--btn-b) 100%);color:var(--tx);border:1px solid var(--bd);border-radius:12px;padding:7px 14px;cursor:pointer;font-size:12px;font-weight:600;transition:all .15s;white-space:nowrap}
.fr-btn:hover{background:linear-gradient(180deg,var(--ac) 0%,var(--ac-h) 100%);color:#fff;transform:translateY(-1px)}
.fr-btn-primary{background:linear-gradient(180deg,var(--ac) 0%,var(--ac-h) 100%);color:#fff;border-color:var(--ac)}
.fr-btn-primary:hover{background:linear-gradient(180deg,var(--ac-h) 0%,var(--ac) 100%)}
.fr-btn-danger{border-color:var(--dng)}
.fr-btn-danger:hover{background:linear-gradient(180deg,var(--dng) 0%,#e87070 100%);border-color:var(--dng);color:#fff}
.fr-status{font-size:12px;color:var(--tx-d);min-width:80px}
.fr-close{background:none;border:none;cursor:pointer;font-size:18px;color:var(--tx-d);padding:4px 8px;border-radius:8px;transition:all .15s}
.fr-close:hover{background:var(--bg-dng);color:var(--dng)}

#tableContainer{flex:1;overflow:auto}
.vspacer td{padding:0!important;border:none!important;line-height:0;font-size:0;background:transparent}
#tuTable{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;position:relative;z-index:1}
#tuTable thead{position:sticky;top:0;z-index:20;background:var(--bg-s)}
#tuTable thead tr{background:var(--bg-s)}
#tuTable tbody{pointer-events:auto}
#tuTable th{background:var(--bg-s);border-bottom:2px solid var(--bd);padding:6px 10px;text-align:left;font-size:12px;font-weight:600;color:var(--tx-d);text-transform:uppercase;letter-spacing:.5px;user-select:none;box-shadow:0 2px 0 var(--bg-s)}
#tuTable th[data-sort]{cursor:pointer}
#tuTable th[data-sort]:hover{color:var(--ac)}
.sort-btn{background:none;border:none;cursor:pointer;font-size:14px;padding:4px 6px;color:var(--tx);transition:all .15s}
.sort-btn:hover{color:var(--ac);background:var(--bg-a)}
.sort-btn.active{color:var(--ac);font-weight:700}
#tuTable thead th.col-acts{white-space:nowrap;background:var(--bg-s);overflow:hidden;position:relative;z-index:21}
.col-check{width:36px;text-align:center!important}
.col-num{width:50px;text-align:center!important;font-size:11px;overflow:visible!important;text-overflow:unset!important}
.col-src{width:50%}
.col-tgt{width:50%}
.col-acts{width:140px;text-align:center!important}
.col-ctx{display:none}
#tuTable th.col-src{text-align:center}
#tuTable th.col-tgt{text-align:center}
#thSrcLang,#thTgtLang{font-weight:400;font-size:11px;opacity:.6;margin-left:4px}
#tuTable td{padding:5px 20px;border-bottom:1px solid var(--bd);vertical-align:top;font-size:var(--table-font-size);font-family:var(--table-font-family);line-height:1.5;overflow:hidden;text-overflow:ellipsis}
#tuTable td.col-acts{overflow:hidden;vertical-align:middle}
#tuTable tbody tr:nth-child(even){background:#f2f6ed}
#tuTable tbody tr:nth-child(odd){background:#ffffff}
#tuTable tr:hover{background:var(--bg-h)}
#tuTable tr.row-selected td{background:var(--bg-sel)}
#tuTable tr.row-selected td:first-child{border:2px solid var(--ac);border-right:none;border-top-left-radius:8px;border-bottom-left-radius:8px}
#tuTable tr.row-selected td:last-child{border:2px solid var(--ac);border-left:none;border-top-right-radius:8px;border-bottom-right-radius:8px}
#tuTable tr.row-selected td:not(:first-child):not(:last-child){border:2px solid var(--ac);border-left:none;border-right:none}
.col-check,.col-num{vertical-align:middle;text-align:center}

/* Segment display */
.seg-text{overflow:hidden;word-break:break-word;cursor:pointer;line-height:1.5;transition:all .15s;display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical}

/* Search highlight */
.search-hl{background:var(--sh);color:var(--sh-t);padding:0 2px;border-radius:3px}

/* Hidden characters */
.hid-char{font-size:0.85em;vertical-align:super;line-height:1;cursor:help;border-radius:2px;padding:0 1px;font-weight:600}
.hid-nbsp{color:#c08420;background:#fdf6e3}
.hid-zwsp{color:#e05050;background:#fdeaea}
.hid-zwnj{color:#a040d0;background:#f3eaff}
.hid-zwj{color:#a040d0;background:#f3eaff}
.hid-bom{color:#e06030;background:#fef0e8}
.hid-shy{color:#b06020;background:#fdf0e0}
.hid-tab{color:#4080c0;background:#e8f0fd}
.hid-dspace{color:#b07020;background:#fdf6e3}
.ctx-preview{color:var(--tx-d);font-size:11px;max-height:40px;overflow:hidden}
.empty-state{text-align:center!important;color:var(--tx-d);padding:60px 20px!important;font-size:16px}

/* Spelling errors */
::spelling-error{
  text-decoration-line:underline;
  text-decoration-style:solid;
  text-decoration-color:var(--dng);
  text-decoration-thickness:2px;
  opacity:0.6;
}

/* QA error underlines — different colors per error type */
.qa-err-lang{
  text-decoration-line:underline;text-decoration-style:solid;
  text-decoration-color:#b07adf;text-decoration-thickness:2px;text-underline-offset:2px;
}
.qa-err-punct{
  text-decoration-line:underline;text-decoration-style:wavy;
  text-decoration-color:#d4940a;text-decoration-thickness:1.5px;text-underline-offset:2px;
}
.qa-err-numbers{
  text-decoration-line:underline;text-decoration-style:dashed;
  text-decoration-color:#3070c0;text-decoration-thickness:1.5px;text-underline-offset:2px;
}
.qa-err-empty{
  text-decoration-line:underline;text-decoration-style:solid;
  text-decoration-color:#888;text-decoration-thickness:1.5px;text-underline-offset:2px;
}
.qa-err-identical{
  text-decoration-line:underline;text-decoration-style:dotted;
  text-decoration-color:#b07adf;text-decoration-thickness:2px;text-underline-offset:2px;
}
.qa-err-tags{
  text-decoration-line:underline;text-decoration-style:dashed;
  text-decoration-color:#6b8f4a;text-decoration-thickness:1.5px;text-underline-offset:2px;
}
.qa-err-length{
  text-decoration-line:underline;text-decoration-style:wavy;
  text-decoration-color:#c08020;text-decoration-thickness:1.5px;text-underline-offset:2px;
}
.qa-err-spelling{
  text-decoration-line:underline;text-decoration-style:solid;
  text-decoration-color:#e04060;text-decoration-thickness:2px;text-underline-offset:2px;
}
.qa-err-grammar{
  text-decoration-line:underline;text-decoration-style:wavy;
  text-decoration-color:#3070c0;text-decoration-thickness:1.5px;text-underline-offset:2px;
}
.qa-err-yo{
  text-decoration-line:underline;text-decoration-style:dotted;
  text-decoration-color:#8b5cc8;text-decoration-thickness:2px;text-underline-offset:2px;
}
.qa-err-case{
  text-decoration-line:underline;text-decoration-style:dotted;
  text-decoration-color:#c08020;text-decoration-thickness:2px;text-underline-offset:2px;
}

/* Row actions */
.row-actions{display:flex;gap:6px;justify-content:center;position:relative;z-index:10;pointer-events:auto}
.row-btn{background:none;border:1px solid transparent;border-radius:8px;padding:4px 6px;cursor:pointer;font-size:14px;color:var(--tx);transition:all .2s;position:relative;z-index:10;pointer-events:auto;display:flex;align-items:center;justify-content:center;min-width:28px;min-height:28px}
.row-btn svg{display:block;transition:transform .2s;opacity:0.9}
.row-btn:hover{background:var(--bg-a);border-color:var(--bd);transform:scale(1.05)}
.row-btn.edit-btn:hover{color:var(--ac)}
.row-btn.delete-btn:hover{color:var(--dng);background:var(--bg-dng);border-color:var(--dng)}
.row-btn.delete-btn:hover svg{transform:scale(1.1)}

/* QA tooltip on row */
/* Edited segment badge */
.col-tgt{position:relative}
.edited-badge{position:absolute;top:4px;right:4px;color:var(--ac);opacity:.55;pointer-events:none}

.has-qa-errors{position:relative}
.qa-tip{
  display:none;position:absolute;left:0;top:100%;z-index:100;
  background:var(--bg-s);border:1px solid var(--dng);border-radius:10px;
  box-shadow:0 6px 20px rgba(0,0,0,.25);min-width:260px;max-width:400px;
  padding:10px 14px;font-size:12px;line-height:1.5;color:var(--tx);
  pointer-events:none;
}
.has-qa-errors:hover .qa-tip{display:block}
.qa-tip-title{font-weight:700;color:var(--dng);margin-bottom:6px;font-size:13px}
.qa-tip-item{padding:3px 0;color:var(--tx-d);border-bottom:1px solid var(--bd)}
.qa-tip-item:last-child{border-bottom:none}

/* ===== INLINE EDITING ===== */
tr.inline-editing-row{background:var(--bg-sel)!important}
tr.inline-editing-row td{border-color:var(--ac);padding:4px 16px 2px 16px}

.cell-editing{
  position:relative;overflow:visible!important;
  z-index:10;
}
.cell-editing .seg-text{
  max-height:none;-webkit-line-clamp:unset;-webkit-box-orient:unset;display:block;cursor:text;
  outline:none;border:2px solid var(--ac);border-radius:12px;
  padding:12px 16px;min-height:80px;
  background:var(--bg);
  box-shadow:0 8px 24px var(--edit-glow),0 4px 12px rgba(0,0,0,.15);
  word-break:break-word;line-height:1.6;
  font-size:var(--table-font-size);font-family:var(--table-font-family);
  box-sizing:border-box;
  margin:-4px -12px;
  margin-top:14px;
  margin-bottom:18px;
  transform:scale(1.015);
  transition:all .2s cubic-bezier(.25,.46,.45,.94);
  animation:cellPop .25s ease-out;
}
.cell-editing .seg-text:focus{
  box-shadow:0 12px 32px var(--edit-glow),0 6px 16px rgba(0,0,0,.2);
  transform:scale(1.02);
}
@keyframes cellPop{
  0%{transform:scale(1);box-shadow:0 0 12px var(--edit-glow)}
  50%{transform:scale(1.025);box-shadow:0 16px 40px var(--edit-glow),0 8px 20px rgba(0,0,0,.2)}
  100%{transform:scale(1.015);box-shadow:0 8px 24px var(--edit-glow),0 4px 12px rgba(0,0,0,.15)}
}

/* Spinning icon for QA refresh button */
@keyframes spin360{to{transform:rotate(360deg)}}
.spin-icon{animation:spin360 .8s linear infinite;display:inline-block;vertical-align:middle}
/* Inline edit buttons in actions column */
.row-actions-inline{
  flex-direction:column!important;
  align-items:stretch!important;
  gap:5px!important;
}
.inline-btn{
  background:none;border:1px solid var(--bd-l);border-radius:12px;
  padding:5px 10px;cursor:pointer;font-size:12px;transition:all .25s;font-weight:500;
  text-align:center;white-space:nowrap;letter-spacing:.3px;
}
.inline-btn.btn-ctx{
  background:linear-gradient(135deg,rgba(30,80,160,.85),rgba(90,155,230,.45));
  color:#fff;border-color:rgba(48,112,192,.2);font-weight:700;font-size:13px;
  text-shadow:0 1px 2px rgba(0,0,0,.35);
}
.inline-btn.btn-ctx:hover{
  background:linear-gradient(135deg,rgba(20,60,140,.95),rgba(110,175,245,.55));
  border-color:rgba(48,112,192,.4);transform:translateY(-1px);
  box-shadow:0 2px 10px rgba(48,112,192,.25);
}
.inline-btn.btn-save{
  background:linear-gradient(135deg,rgba(100,180,50,.85),rgba(150,220,90,.48));
  color:#fff;border-color:rgba(100,180,50,.2);font-weight:700;font-size:13px;
  text-shadow:0 1px 2px rgba(0,0,0,.35);
}
.inline-btn.btn-save:hover{
  background:linear-gradient(135deg,rgba(80,160,35,.95),rgba(170,235,110,.58));
  border-color:rgba(100,180,50,.4);transform:translateY(-1px);
  box-shadow:0 2px 10px rgba(100,180,50,.25);
}
.inline-btn.btn-cancel{
  background:linear-gradient(135deg,rgba(150,40,35,.85),rgba(210,90,80,.45));
  color:#fff;border-color:rgba(180,60,50,.2);font-weight:700;font-size:13px;
  text-shadow:0 1px 2px rgba(0,0,0,.35);
}
.inline-btn.btn-cancel:hover{
  background:linear-gradient(135deg,rgba(130,30,25,.95),rgba(230,110,100,.55));
  border-color:rgba(180,60,50,.4);transform:translateY(-1px);
  box-shadow:0 2px 10px rgba(180,60,50,.25);
}

/* ===== Modal ===== */
.modal{position:fixed;inset:0;z-index:200;display:none;align-items:center;justify-content:center}
.modal.visible{display:flex}
.modal-backdrop{position:absolute;inset:0;background:var(--ms);z-index:0}
.modal-content{position:relative;z-index:1;background:var(--bg-s);border:1px solid var(--bd);border-radius:12px;width:700px;max-width:90vw;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 20px 60px var(--ms)}
.modal-sm{width:450px}
.modal-md{width:750px}
.modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--bd)}
.modal-header h2{font-size:16px;font-weight:600}
.modal-close{background:none;border:none;color:var(--tx-d);font-size:18px;cursor:pointer;padding:4px 8px;border-radius:12px;z-index:2;position:relative}
.modal-close:hover{background:var(--bg-a);color:var(--tx)}
.modal-body{padding:14px 20px;overflow-y:auto;flex:1}
.modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:12px 20px;border-top:1px solid var(--bd)}
.modal-footer button{padding:8px 18px;border-radius:12px;border:1px solid var(--bd);background:var(--bg);color:var(--tx);cursor:pointer;font-size:13px;transition:all .15s;font-weight:500}
.modal-footer button:hover{background:var(--ac);border-color:var(--ac);color:#fff;transform:translateY(-1px)}
.modal-footer button.primary{background:var(--ac);color:#fff;border-color:var(--ac);font-weight:600}
.modal-footer button.primary:hover{background:var(--ac-h)}
.modal-footer button.danger{color:var(--dng);border-color:var(--dng)}
.modal-footer button.danger:hover{background:var(--bg-dng)}

.edit-field{margin-bottom:12px}
.edit-field label{display:block;font-size:12px;color:var(--tx-d);margin-bottom:4px;font-weight:600;text-transform:uppercase}
.edit-field textarea{width:100%;background:var(--bg);color:var(--tx);border:1px solid var(--bd);border-radius:12px;padding:8px 10px;font-size:var(--editor-font-size);font-family:var(--editor-font-family);line-height:1.5;resize:vertical}
.edit-field textarea:focus{outline:none;border-color:var(--ac)}
.edit-field textarea[readonly]{color:var(--tx-d);background:var(--bg-h)}

/* Preview with visual tags in modal */
.edit-preview{
  background:var(--bg);border:1px solid var(--bd);border-radius:12px;
  padding:8px 10px;margin-bottom:6px;min-height:32px;
  font-size:14px;line-height:1.6;word-break:break-word;
  max-height:80px;overflow-y:auto;
}

/* ===== Toast ===== */
#toastContainer{position:fixed;bottom:20px;right:20px;z-index:200;display:flex;flex-direction:column;gap:8px}
/* Context menu — add to dictionary */
.ctx-menu{
  position:fixed;z-index:300;background:var(--bg-s);border:1px solid var(--bd);
  border-radius:10px;box-shadow:0 6px 20px rgba(0,0,0,.25);padding:4px 0;min-width:200px;
}
.ctx-menu button{
  display:block;width:100%;text-align:left;background:none;border:none;
  padding:8px 14px;font-size:13px;color:var(--tx);cursor:pointer;
  font-family:var(--font-ui);transition:all .1s;
}
.ctx-menu button:hover{background:var(--ac);color:#fff}

/* Dictionary section in Settings */
.dict-section{margin-top:8px}
.dict-words{max-height:120px;overflow-y:auto;display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.dict-word{
  display:inline-flex;align-items:center;gap:4px;
  background:var(--bg-h);border:1px solid var(--bd);border-radius:8px;
  padding:2px 8px;font-size:11px;color:var(--tx-d);
}
.dict-word button{
  background:none;border:none;color:var(--tx-d);cursor:pointer;font-size:13px;
  padding:0 2px;line-height:1;opacity:.5;transition:opacity .15s;
}
.dict-word button:hover{opacity:1;color:var(--dng)}
.dict-empty{font-size:11px;color:var(--tx-d);font-style:italic}
.dict-clear-btn{
  background:none;border:1px solid var(--bd);border-radius:8px;
  padding:3px 10px;font-size:11px;color:var(--tx-d);cursor:pointer;margin-top:6px;
  transition:all .15s;
}
.dict-clear-btn:hover{border-color:var(--dng);color:var(--dng)}

.toast{background:var(--bg-s);border:1px solid var(--bd);border-radius:12px;padding:10px 16px;font-size:13px;color:var(--tx);box-shadow:0 4px 12px var(--ms);animation:slideIn .25s ease-out;min-width:250px}
.toast.success{border-left:3px solid var(--ok)}
.toast.error{border-left:3px solid var(--dng)}
.toast.info{border-left:3px solid var(--ac)}
.toast.warning{border-left:3px solid var(--wrn)}
@keyframes slideIn{from{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}

input[type="checkbox"]{accent-color:var(--ac);width:16px;height:16px;cursor:pointer}

/* Context modal styles */
.context-field{margin-bottom:16px}
.context-field label{display:block;font-size:12px;color:var(--tx-d);margin-bottom:6px;font-weight:600}
.context-full{background:var(--bg);border:1px solid var(--bd);border-radius:12px;padding:18px 20px;font-size:16px;color:var(--tx);line-height:1.8;max-height:400px;overflow-y:auto}
.context-seg-highlight{background:rgba(107,143,74,.15);border-radius:6px;padding:2px 6px;color:var(--tx-b);font-weight:500;border:1px solid rgba(107,143,74,.3)}

@media(max-width:900px){
  #sidePanel{width:240px;min-width:200px}
  .sb-ctx{display:none}
}
