:root{--bg-app: #eef0f5;--navy-1: #0e2a5e;--navy-2: #16356f;--navy-3: #1e428c;--sidebar-bg: #fafbfd;--panel-bg: #f4f7fc;--sidebar-border: #e7eaf1;--content-bg: #ffffff;--border: #e2e6f0;--border-soft: #eef0f5;--text: #1c2238;--text-dim: #5a6275;--text-faint: #9aa0b0;--accent: #2563eb;--accent-strong: #1d4ed8;--accent-deep: #1e3a8a;--accent-soft: #e9eefb;--accent-ring: #c4d2f1;--row-alt: #f8fafc;--row-hover: #f4f7fd;--ok: #059669;--ok-dot: #10b981;--ok-soft: #e7f7f0;--danger: #dc2626;--danger-soft: #fdecec;--mono: "IBM Plex Mono", "Cascadia Code", Consolas, monospace;--radius: 12px;--radius-sm: 9px;--radius-lg: 16px;--shadow-sm: 0 1px 2px rgba(20, 30, 60, .06);--shadow-md: 0 6px 20px rgba(20, 30, 60, .09);--shadow-lg: 0 18px 42px rgba(20, 30, 60, .16);font-family:IBM Plex Sans,IBM Plex Sans Arabic,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px;color:var(--text)}*{box-sizing:border-box}html,body,#root{height:100%;overflow:hidden}body{margin:0;overflow:hidden;background:var(--bg-app);color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.app{display:flex;flex-direction:column;height:100%;overflow:hidden}.rec-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9997;display:flex;align-items:center;justify-content:center;padding:24px;background:#0a0c1480;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.rec-modal{width:100%;max-width:400px;background:var(--content-bg);border:1px solid var(--border-soft);border-radius:14px;box-shadow:var(--shadow-lg);overflow:hidden}.rec-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border-soft)}.rec-title{font-weight:700;color:var(--text)}.rec-x{border:none;background:transparent;color:var(--text-dim);cursor:pointer;display:inline-flex;padding:4px;border-radius:6px}.rec-x:hover{background:var(--row-hover);color:var(--text)}.rec-body{display:flex;flex-direction:column;align-items:center;gap:14px;padding:24px 20px 22px}.rec-error{align-self:stretch;padding:8px 12px;border-radius:8px;background:#dc26261f;color:#dc2626;font-size:13px;text-align:center}.rec-dot{display:inline-flex;align-items:center;justify-content:center;width:58px;height:58px;border-radius:50%;background:var(--sidebar-bg);color:var(--text-dim)}.rec-dot.live{background:#dc262624;color:#dc2626;animation:rec-pulse 1.3s ease-in-out infinite}@keyframes rec-pulse{0%,to{box-shadow:0 0 #dc262659}50%{box-shadow:0 0 0 10px #dc262600}}.rec-timer{font-size:28px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--text)}.rec-count{display:inline-flex;align-items:center;justify-content:center;width:58px;height:58px;border-radius:50%;background:var(--accent-soft);color:var(--accent-strong);font-size:30px;font-weight:800;font-variant-numeric:tabular-nums}.rec-meter-row{width:100%;display:flex;flex-direction:column;align-items:center;gap:5px}.rec-meter{width:100%;height:8px;border-radius:4px;background:var(--border);overflow:hidden}.rec-meter-fill{height:100%;background:linear-gradient(90deg,#22c55e,#eab308 70%,#ef4444);transition:width .06s linear}.rec-meter.clip .rec-meter-fill{background:#ef4444}.rec-clip{font-size:12px;font-weight:700;color:#ef4444}.rec-timerline{display:flex;align-items:baseline;gap:8px}.rec-total{font-size:14px;color:var(--text-faint);font-variant-numeric:tabular-nums}.rec-wave{width:100%;height:78px;border-radius:8px;background:var(--sidebar-bg);border:1px solid var(--border-soft)}.rec-wave.seekable{cursor:pointer}.rec-help{font-size:12px;color:var(--text-dim);text-align:center}.rec-record-big{width:76px;height:76px;border:none;border-radius:50%;background:#ef4444;color:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 6px 20px #ef444466;transition:transform .1s,box-shadow .15s,background .15s}.rec-record-big:hover{background:#dc2626;transform:scale(1.04)}.rec-record-big:active{transform:scale(.97)}.rec-hint{font-size:13px;color:var(--text-dim);margin-top:-6px}.rec-timer-lg{font-size:22px;color:var(--text-dim)}.rec-recdot{width:9px;height:9px;border-radius:50%;background:#ef4444;display:inline-block;margin-right:3px;animation:rec-blink 1s steps(2,start) infinite}@keyframes rec-blink{50%{opacity:.25}}.rec-transport{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:2px}.rec-ctrl{width:46px;height:46px;border:1px solid var(--border-soft);border-radius:50%;background:var(--content-bg);color:var(--text);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s,transform .1s,border-color .15s}.rec-ctrl:hover{border-color:var(--accent);background:var(--row-hover)}.rec-ctrl:active{transform:scale(.94)}.rec-ctrl.record{width:56px;height:56px;border:none;background:#ef4444;color:#fff;box-shadow:0 4px 14px #ef444466}.rec-ctrl.record:hover{background:#dc2626}.rec-ctrl.stop{color:#dc2626}.rec-ctrl.stop:hover{border-color:#dc2626}.rec-name{width:100%;border:1px solid var(--border-soft);border-radius:8px;background:var(--content-bg);color:var(--text);font-family:inherit;font-size:13.5px;padding:8px 12px}.rec-name:focus{outline:none;border-color:var(--accent)}.rec-quality{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-dim)}.rec-quality select{flex:1;border:1px solid var(--border-soft);border-radius:8px;background:var(--content-bg);color:var(--text);font-family:inherit;font-size:13px;padding:7px 9px;cursor:pointer}.rec-preview{width:100%}.rec-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:4px}.rec-btn{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;border:1px solid var(--border-soft);border-radius:9px;background:var(--content-bg);color:var(--text);font-family:inherit;font-size:13.5px;font-weight:600;cursor:pointer}.rec-btn:hover{border-color:var(--accent)}.rec-btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.rec-btn.primary:hover{filter:brightness(1.08)}.rec-btn.danger{background:#dc2626;border-color:#dc2626;color:#fff}.rec-btn.ghost{color:var(--text-dim)}.warm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9998;pointer-events:none;mix-blend-mode:multiply;background:#ff8c1a}.warm-overlay[data-level="1"]{opacity:.18}.warm-overlay[data-level="2"]{opacity:.34}.topbar{flex-shrink:0;height:62px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 20px;background:linear-gradient(100deg,var(--navy-1),var(--navy-2) 60%,var(--navy-3));color:#fff;z-index:10}.brand{display:flex;align-items:center;gap:12px}.brand-logo{display:block;border-radius:9px;object-fit:cover}.brand-name{font-family:Space Grotesk,system-ui,sans-serif;font-size:20px;font-weight:700;letter-spacing:.05em}.brand-accent{color:#7fb0ff}.brand-divider{width:1px;height:20px;background:#ffffff42;margin:0 4px}.brand-tagline{font-size:13px;color:#fffc}.tb-btn{display:flex;align-items:center;gap:7px;height:36px;padding:0 14px;border-radius:var(--radius-sm);border:1px solid rgba(255,255,255,.18);background:#ffffff14;color:#dbe4f3;font-size:13.5px;font-weight:600;font-family:inherit;cursor:pointer;white-space:nowrap;transition:background .12s,border-color .12s,color .12s}.tb-btn:hover{background:#ffffff29;border-color:#ffffff52;color:#fff}.tb-btn:active{transform:translateY(1px)}.lang-btn{font-weight:700;letter-spacing:.04em}.about-btn,.tb-btn.icon-only{width:36px;padding:0;justify-content:center}.tb-btn svg{stroke-width:2.1;shape-rendering:geometricPrecision}.topbar-groups{display:flex;align-items:center;gap:26px}.tb-group{display:flex;align-items:center;gap:6px}.topbar-groups .tb-btn.icon-only svg,.topbar-groups .about-btn svg{width:18px;height:18px}.about-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:20px;background:#0e183273;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.about-card{position:relative;width:min(380px,92vw);max-height:88vh;overflow-y:auto;background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:30px 28px 26px;text-align:center}.about-cards{display:flex;align-items:flex-start;justify-content:center;gap:16px;max-width:100%;flex-wrap:wrap}.shortcuts-card{position:relative;width:min(440px,94vw);max-height:88vh;overflow-y:auto;background:var(--panel-bg, var(--content-bg));color:var(--text);border:1px solid var(--border-soft);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:24px 24px 20px}.shortcuts-head{font-weight:700;font-size:16px;margin-bottom:16px;color:var(--text)}.shortcuts-list{display:flex;flex-direction:column;gap:2px}.shortcuts-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 6px;border-radius:8px}.shortcuts-row:nth-child(odd){background:var(--row-hover)}.shortcuts-label{font-size:13.5px;color:var(--text)}.shortcuts-keys{display:inline-flex;gap:4px;flex-shrink:0}.shortcuts-kbd{font-family:inherit;font-size:11.5px;font-weight:600;min-width:22px;text-align:center;padding:2px 7px;border:1px solid var(--border-soft);border-bottom-width:2px;border-radius:6px;background:var(--content-bg);color:var(--text-dim)}.shortcuts-note{margin-top:14px;font-size:12px;color:var(--text-faint);line-height:1.5}.ws-card{position:relative;width:min(460px,94vw);max-height:88vh;overflow-y:auto;background:var(--panel-bg, var(--content-bg));color:var(--text);border:1px solid var(--border-soft);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:24px 24px 20px}.ws-head{font-weight:700;font-size:16px;margin-bottom:14px}.ws-save{display:flex;gap:8px;margin-bottom:16px}.ws-input{flex:1;min-width:0;padding:8px 11px;border:1px solid var(--border-soft);border-radius:8px;background:var(--content-bg);color:var(--text);font-family:inherit;font-size:13px;outline:none}.ws-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.ws-save-btn{flex-shrink:0;padding:8px 14px;border:1px solid var(--accent-deep, var(--accent));background:var(--accent-deep, var(--accent));color:#fff;border-radius:8px;font-family:inherit;font-size:13px;font-weight:600;cursor:pointer}.ws-save-btn:hover:not(:disabled){background:var(--accent-strong)}.ws-save-btn:disabled{opacity:.4;cursor:default}.ws-empty{padding:20px 8px;text-align:center;color:var(--text-faint);font-size:13px}.ws-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.ws-item{display:flex;align-items:stretch;gap:6px;border-radius:9px}.ws-item:hover{background:var(--row-hover)}.ws-item-main{flex:1;min-width:0;text-align:left;border:0;background:transparent;cursor:pointer;padding:9px 10px;border-radius:9px;display:flex;flex-direction:column;gap:2px}.ws-name{font-weight:600;font-size:14px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ws-meta{font-size:11.5px;color:var(--text-dim)}.ws-del{flex-shrink:0;width:36px;border:0;background:transparent;color:var(--text-faint);border-radius:9px;cursor:pointer}.ws-del:hover{color:#dc2626;background:var(--accent-soft)}.ws-note{margin-top:16px;font-size:11.5px;color:var(--text-faint);line-height:1.5}.cd-card{position:relative;width:min(560px,94vw);max-height:86vh;display:flex;flex-direction:column;background:var(--panel-bg, var(--content-bg));color:var(--text);border:1px solid var(--border-soft);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:20px 22px 16px}.cd-head{display:flex;align-items:center;gap:10px;margin-bottom:12px;padding-right:28px}.cd-col{font-weight:700;font-size:15px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cd-tag{flex-shrink:0;font-size:10px;font-weight:700;color:var(--accent-strong);background:var(--accent-soft);padding:1px 7px;border-radius:5px}.cd-copy{margin-inline-start:auto;flex-shrink:0}.cd-body{flex:1;min-height:0;overflow:auto;border:1px solid var(--border-soft);border-radius:9px;background:var(--content-bg);padding:12px 14px}.cd-text{margin:0;font-family:var(--mono);font-size:12.5px;line-height:1.6;color:var(--text);white-space:pre-wrap;word-break:break-word}.cd-json{font-family:var(--mono);font-size:12.5px}.cd-img{display:block;max-width:100%;max-height:60vh;margin:0 auto;border-radius:6px}.cd-blob{font-family:var(--mono);font-size:13px;color:var(--text-dim);text-align:center;padding:20px}.cd-meta{margin-top:8px;font-size:11.5px;color:var(--text-faint);text-align:right}.about-card-formats{text-align:left;padding-top:26px}.about-formats-head{font-size:15px;font-weight:700;color:var(--text);margin-bottom:6px}.about-intro{margin:0 0 14px;font-size:12.5px;line-height:1.5;color:var(--text-dim)}.about-formats{text-align:left}.about-fmt{display:flex;flex-direction:column;gap:1px;margin-bottom:9px}.about-fmt-label{font-size:12px;font-weight:600;color:var(--text)}.about-fmt-exts{font-size:11.5px;color:var(--text-dim);font-family:var(--mono);word-break:break-word}.about-close{position:absolute;top:12px;right:12px;display:grid;place-items:center;width:28px;height:28px;border:none;border-radius:7px;background:transparent;color:var(--text-faint);cursor:pointer}.about-close:hover{background:var(--sidebar-bg);color:var(--text)}.about-logo{margin-bottom:12px;border-radius:16px;object-fit:cover}.about-name{font-family:Space Grotesk,system-ui,sans-serif;font-size:26px;font-weight:700;letter-spacing:.04em;color:var(--navy-2)}.about-tagline{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--text-faint);margin-top:4px}.about-rows{margin-top:22px;border-top:1px solid var(--border-soft);padding-top:18px;display:flex;flex-direction:column;gap:14px;text-align:left}.about-row{display:flex;align-items:baseline;gap:12px}.about-role{flex:none;width:110px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint)}.about-val{font-size:14px;font-weight:600;color:var(--text);display:flex;flex-direction:column}.about-sub{font-size:12px;font-weight:500;color:var(--text-dim)}.about-copyright{margin-top:18px;padding-top:14px;border-top:1px solid var(--border-soft);text-align:center;font-size:12px;color:var(--text-faint)}.url-bar{flex-shrink:0;display:flex;align-items:center;gap:10px;padding:10px 20px;background:var(--sidebar-bg);border-bottom:1px solid var(--border)}.url-input{flex:1;min-width:0;height:34px;padding:0 12px;border:1px solid var(--border);border-radius:9px;font-size:13px;font-family:inherit;background:#fff}.url-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.url-go{flex-shrink:0;height:34px;padding:0 16px;border:none;border-radius:9px;background:var(--accent-deep);color:#fff;font-size:13px;font-weight:600;font-family:inherit;cursor:pointer}.url-go:hover:not(:disabled){background:#1d3578}.url-go:disabled{opacity:.5;cursor:default}.url-error{flex-shrink:0;font-size:12px;color:var(--danger);max-width:40%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@keyframes spin{to{transform:rotate(360deg)}}:root[data-theme=dark]{--bg-app: #0e1320;--sidebar-bg: #151b2b;--panel-bg: #141a29;--content-bg: #1a2132;--border: #2b3450;--border-soft: #232c40;--text: #e7eaf3;--text-dim: #a7afc4;--text-faint: #6f7890;--accent: #5b8cff;--accent-strong: #86a9ff;--accent-deep: #2b53b5;--accent-soft: #1e2a4a;--accent-ring: #38456e;--row-alt: #1e2536;--row-hover: #232c44;--ok: #34d399;--ok-soft: #123226;--danger: #f87171;--danger-soft: #3a1f22;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 6px 20px rgba(0, 0, 0, .45);--shadow-lg: 0 18px 42px rgba(0, 0, 0, .55)}[data-theme=dark] .file-list li:hover,[data-theme=dark] .file-list li.active,[data-theme=dark] .file-tab,[data-theme=dark] .action-btn,[data-theme=dark] .main-close,[data-theme=dark] .seg,[data-theme=dark] .tool-btn,[data-theme=dark] .csv2-btn,[data-theme=dark] .csv2-search,[data-theme=dark] .csv2-colsmenu,[data-theme=dark] .csv2-filterin,[data-theme=dark] .pdf-pagein,[data-theme=dark] .pdf-find,[data-theme=dark] .pdf-find-input,[data-theme=dark] .pdf-ic:hover:not(:disabled),[data-theme=dark] .pdf-toolbar button,[data-theme=dark] .sheet-tabs button,[data-theme=dark] .url-input,[data-theme=dark] .field-input,[data-theme=dark] .about-card,[data-theme=dark] .audio-card{background:#232c42;color:var(--text);border-color:var(--border)}[data-theme=dark] .csv2-search input,[data-theme=dark] .url-input,[data-theme=dark] .pdf-pagein,[data-theme=dark] .pdf-find-input,[data-theme=dark] .csv2-filterin{color:var(--text)}[data-theme=dark] .text-content,[data-theme=dark] .code-lines,[data-theme=dark] .xml-viewer,[data-theme=dark] .json-viewer,[data-theme=dark] .xml-text,[data-theme=dark] .csv-table td,[data-theme=dark] .csv2-table tbody td{color:#d6dcec}[data-theme=dark] .csv2-table thead th,[data-theme=dark] .csv-table thead th{background:#202840;color:var(--text)}[data-theme=dark] .csv2-table tbody td{border-bottom-color:var(--border-soft)}[data-theme=dark] .csv-table th,[data-theme=dark] .csv-table td{border-color:var(--border)}[data-theme=dark] .csv2-table tbody tr:hover,[data-theme=dark] .csv-table tbody tr:hover{background:var(--row-hover)}[data-theme=dark] .pdf-stage{background:#0c111c}[data-theme=dark] .cell-pill,[data-theme=dark] .cell-json{background:#2a3450;color:var(--text-dim)}[data-theme=dark] .empty-icon{background:radial-gradient(circle at 50% 35%,#232c42,var(--accent-soft))}[data-theme=dark] .image-stage{background:repeating-conic-gradient(#222a3c,#222a3c 25%,#1a2132 0%,#1a2132 50%) 50% / 22px 22px}[data-theme=dark] .xml-tag,[data-theme=dark] .json-key,[data-theme=dark] .kv-key{color:#7aa2ff}[data-theme=dark] .json-string,[data-theme=dark] .xml-attr-value{color:#6ee7a8}[data-theme=dark] .json-number,[data-theme=dark] .xml-attr-name{color:#fbbf6b}.body{flex:1;display:flex;overflow:hidden}.sidebar{width:286px;flex-shrink:0;background:var(--panel-bg);display:flex;flex-direction:column;padding:16px 12px;gap:10px;margin:14px 0 14px 14px;border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow:hidden}.sidebar-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--text-faint);padding:0 8px;display:flex;align-items:center;gap:8px}.sidebar-title .count{background:var(--accent-soft);color:var(--accent-strong);border-radius:20px;padding:1px 8px;font-size:11px;font-weight:700}.sidebar-tools{margin-inline-start:auto;display:flex;align-items:center;gap:6px}.tool-btn{display:grid;place-items:center;width:26px;height:26px;border:1px solid var(--border);border-radius:7px;background:#fff;color:var(--text-faint);cursor:pointer;transition:background .12s,color .12s,border-color .12s}.tool-btn:hover{color:var(--accent-strong);border-color:var(--accent-ring)}.tool-btn.on{background:var(--accent-soft);color:var(--accent-strong);border-color:var(--accent-ring)}.clear-btn{display:flex;align-items:center;gap:5px;border:none;background:transparent;color:var(--text-faint);padding:2px 4px;font-size:12px;font-weight:500;font-family:inherit;letter-spacing:0;text-transform:none;cursor:pointer;transition:color .12s}.clear-btn:hover{color:var(--danger)}.file-groups{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:8px}.file-group-head{display:flex;align-items:center;gap:8px;width:100%;padding:6px 8px 4px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);border:0;background:transparent;border-radius:7px;cursor:pointer;font-family:inherit}.file-group-head:hover{background:var(--row-hover);color:var(--text)}.group-caret{flex-shrink:0;color:var(--text-faint);transition:transform .12s}.group-caret.open{transform:rotate(90deg)}.group-badge{flex-shrink:0;width:40px;height:40px;border-radius:9px;display:grid;place-items:center;color:#fff;font-size:11px;font-weight:700}.group-badge.sm{font-size:9px}.group-count{margin-inline-start:auto;background:var(--accent-soft);color:var(--accent-strong);border-radius:20px;padding:0 7px;font-size:10px}.file-group .file-list{flex:none}.sidebar-empty{color:var(--text-faint);font-size:13px;padding:6px 8px;margin:0}.file-list{list-style:none;margin:0;padding:0;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:5px}.file-list li{padding:10px;border-radius:10px;cursor:pointer;display:flex;align-items:center;gap:15px;border:1px solid transparent;position:relative;transition:background .13s,border-color .13s,box-shadow .13s}.file-list li:hover{background:#eef1f8}.file-list li.active{background:#fff;border-color:var(--accent-ring);box-shadow:0 1px 2px #2563eb1a}.file-list li.active:before{content:"";position:absolute;left:0;top:9px;bottom:9px;width:3px;border-radius:3px;background:#1e40af}.file-badge{flex-shrink:0;width:34px;height:34px;border-radius:8px;display:grid;place-items:center;color:#fff;font-size:9px;font-weight:700;letter-spacing:.02em}.file-badge.sm{font-size:8px}.file-thumb{flex-shrink:0;width:34px;height:34px;border-radius:8px;object-fit:cover;background:var(--row-hover);border:1px solid var(--border-soft)}.file-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.file-name{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-meta{font-size:11px;color:var(--text-dim)}.file-close{flex-shrink:0;width:20px;height:20px;line-height:1;padding:0;border:none;border-radius:6px;background:transparent;color:var(--text-faint);font-size:17px;cursor:pointer;opacity:0;transition:opacity .12s,background .12s,color .12s}.file-list li:hover .file-close,.file-list li.active .file-close{opacity:1}.file-close:hover{background:var(--danger-soft);color:var(--danger)}.file-pin{flex-shrink:0;display:grid;place-items:center;width:20px;height:20px;padding:0;border:none;border-radius:6px;background:transparent;color:var(--text-faint);cursor:pointer;opacity:0;transition:opacity .13s,color .13s,background .13s}.file-list li:hover .file-pin,.file-list li.active .file-pin{opacity:1}.file-pin:hover{background:var(--accent-soft);color:var(--accent-strong)}.file-pin.on{opacity:1;color:var(--accent)}.file-list li.pinned{background:linear-gradient(90deg,var(--accent-soft),transparent 60%)}.file-list li.pinned.active{background:#fff}.file-list li.no-badge{padding-left:24px}.main{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative;background:var(--content-bg);margin:14px;border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:var(--shadow-md)}.main.dragging:after{content:attr(data-drop);position:absolute;top:12px;right:12px;bottom:12px;left:12px;border:2px dashed var(--accent);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:600;color:var(--accent-strong);background:#5b6cf60f;pointer-events:none}.file-tabs{flex-shrink:0;display:flex;align-items:center;gap:4px;padding:8px 10px 0;overflow-x:auto;border-bottom:1px solid var(--border-soft);background:var(--sidebar-bg)}.file-tab{display:flex;align-items:center;gap:7px;flex-shrink:0;max-width:220px;height:34px;padding:0 10px;border:1px solid var(--border);border-bottom:none;border-radius:9px 9px 0 0;background:transparent;color:var(--text-dim);font-size:13px;font-family:inherit;cursor:pointer}.file-tab:hover{background:var(--content-bg)}.file-tab.active{background:var(--content-bg);color:var(--text);font-weight:600;box-shadow:inset 0 -2px 0 var(--accent)}.file-tab-badge{flex-shrink:0;width:20px;height:20px;border-radius:5px;display:grid;place-items:center;color:#fff;font-size:7.5px;font-weight:700}.file-tab-badge.sm{font-size:6.5px}.file-tab-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-tab-close{flex-shrink:0;display:grid;place-items:center;width:18px;height:18px;border-radius:5px;font-size:15px;color:var(--text-faint)}.file-tab-close:hover{background:var(--danger-soft);color:var(--danger)}.main-header{display:flex;align-items:center;gap:13px;padding:16px 22px 14px;border-bottom:1px solid var(--border-soft)}.main-icon{flex-shrink:0;width:40px;height:40px;border-radius:10px;display:grid;place-items:center;color:#fff;font-size:12px;font-weight:700;letter-spacing:.02em}.main-icon.sm{font-size:10px}.main-head-text{min-width:0}.main-title-row{display:flex;align-items:center;gap:9px}.main-copy{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;border-radius:6px;background:transparent;color:var(--text-faint);cursor:pointer;transition:background .15s,color .15s}.main-copy:hover{background:var(--row-hover);color:var(--text)}.main-copy.done{color:var(--accent-strong)}.main-title{font-weight:700;font-size:17px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:text}.main-title-input{font-family:inherit;font-weight:700;font-size:17px;color:var(--text);background:var(--content-bg);border:1px solid var(--accent);border-radius:6px;padding:2px 8px;min-width:180px;max-width:420px;outline:none}.main-badge{flex-shrink:0;font-size:10.5px;background:var(--accent-soft);color:#1e40af;padding:2px 8px;border-radius:6px;font-weight:700;letter-spacing:.05em}.main-submeta{display:block;font-size:12.5px;color:var(--text-faint);margin-top:2px}.main-actions{margin-inline-start:auto;display:flex;align-items:center;gap:8px}.action-btn{display:flex;align-items:center;gap:7px;height:34px;padding:0 13px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--text-dim);font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;white-space:nowrap;transition:background .12s,border-color .12s,color .12s}.action-btn:hover{background:var(--accent-soft);border-color:var(--accent-ring);color:var(--accent-strong)}.main-close{display:grid;place-items:center;width:34px;height:34px;padding:0;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--text-faint);cursor:pointer;transition:background .12s,color .12s,border-color .12s}.main-close:hover{background:var(--danger-soft);color:var(--danger);border-color:#f3bcbc}.viewer-host{flex:1;overflow:auto}.empty-state{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--text-dim);gap:6px;overflow-y:auto;padding:20px 12px}.empty-state>:first-child{margin-top:auto}.empty-state>:last-child{margin-bottom:auto}.empty-icon{width:132px;height:132px;border-radius:50%;display:grid;place-items:center;font-size:62px;background:radial-gradient(circle at 50% 35%,#fff,var(--accent-soft));border:1px solid var(--border);box-shadow:var(--shadow-md);margin-bottom:20px}.empty-state h2{color:var(--text);margin:4px 0 0;font-weight:700;font-size:40px}.empty-state p{font-size:21px}.empty-state p.empty-types{font-size:17px;margin-top:26px;line-height:1.85;color:var(--text-faint)}.empty-new{display:inline-flex;align-items:center;gap:8px;margin-top:18px;padding:9px 18px;border:1px solid var(--accent);background:var(--accent);color:#fff;border-radius:10px;font-size:15px;font-weight:600;cursor:pointer}.empty-new:hover{background:var(--accent-strong)}.empty-actions{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap;justify-content:center}.empty-actions .empty-new{margin-top:0}.empty-new.ghost{background:transparent;color:var(--accent-strong);border-color:var(--border)}.empty-new.ghost:hover{background:var(--row-hover)}.recent{margin-top:34px;width:min(560px,92%);text-align:left;background:var(--content-bg);border:1px solid var(--border);border-radius:14px;padding:12px 12px 14px;box-shadow:0 6px 20px #1421470f}.recent-head{display:flex;align-items:center;gap:8px;padding:2px 6px 10px;color:var(--text-dim);font-size:13px;font-weight:700;letter-spacing:.02em;text-transform:uppercase}.recent-head svg{color:var(--accent)}.recent-clear{margin-inline-start:auto;border:1px solid var(--border);background:transparent;color:var(--text-dim);border-radius:8px;padding:4px 10px;font-size:11px;font-weight:600;text-transform:none;letter-spacing:0;cursor:pointer}.recent-clear:hover{border-color:var(--danger, #dc2626);color:var(--danger, #dc2626)}.recent-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.recent-home .recent-list{max-height:42vh;overflow-y:auto}.recent-li{display:flex;align-items:center;border-radius:10px}.recent-li:hover{background:var(--accent-soft)}.recent-item{flex:1;min-width:0;display:flex;align-items:center;gap:11px;background:transparent;border:0;padding:9px 8px 9px 10px;cursor:pointer;text-align:left;color:inherit}.recent-badge{flex:none;width:34px;height:34px;border-radius:9px;color:#fff;font-size:12px;font-weight:800;display:grid;place-items:center;letter-spacing:.02em}.recent-badge.sm{font-size:9.5px}.recent-info{min-width:0;display:flex;flex-direction:column;gap:2px}.recent-name{font-size:14.5px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recent-meta{font-size:12px;color:var(--text-faint)}.recent-remove{flex:none;width:26px;height:26px;margin-right:6px;border:0;background:transparent;color:var(--text-faint);border-radius:7px;font-size:19px;line-height:1;cursor:pointer;opacity:0;transition:opacity .12s}.recent-li:hover .recent-remove{opacity:1}.recent-remove:hover{background:var(--danger, #dc2626);color:#fff}.recent-error{margin:10px 6px 2px;font-size:12.5px;color:var(--danger, #dc2626)}.recent-empty{margin:6px 8px 4px;font-size:13px;color:var(--text-faint)}.recent-nav{position:relative;display:inline-flex}.recent-count{position:absolute;top:-4px;right:-4px;min-width:15px;height:15px;padding:0 3px;border-radius:8px;background:var(--accent);color:#fff;font-size:9.5px;font-weight:800;line-height:15px;text-align:center;box-shadow:0 0 0 2px var(--navy-1, #0e2a5e)}.recent-pop-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40}.recent-pop{position:fixed;top:64px;right:12px;left:auto;z-index:41;background:var(--content-bg);border:1px solid var(--border);border-radius:14px;box-shadow:0 14px 40px #0e1a3a38;animation:recent-pop-in .12s ease-out}@keyframes recent-pop-in{0%{opacity:0;transform:translateY(-6px)}}.lang-nav{position:relative;display:inline-flex}.lang-menu{position:fixed;top:64px;right:12px;left:auto;z-index:41;min-width:170px;padding:6px;background:var(--content-bg);border:1px solid var(--border);border-radius:12px;box-shadow:0 14px 40px #0e1a3a38;animation:recent-pop-in .12s ease-out;display:flex;flex-direction:column;gap:2px}.lang-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:0;background:transparent;color:var(--text);font-family:inherit;font-size:13.5px;padding:8px 10px;border-radius:8px;cursor:pointer}.lang-item:hover{background:var(--row-hover)}.lang-item.active{background:var(--accent-soft);color:var(--accent-strong);font-weight:600}.lang-code{flex-shrink:0;min-width:26px;text-align:center;font-size:10px;font-weight:700;padding:2px 5px;border-radius:5px;background:var(--row-hover);color:var(--text-dim)}.lang-item.active .lang-code{background:var(--accent);color:#fff}.recent.recent-menu{margin-top:0;width:360px;max-width:88vw;border:0;box-shadow:none;background:transparent;padding:8px}.recent.recent-menu .recent-list{max-height:min(60vh,440px);overflow-y:auto}@media(max-width:560px){.recent-pop{right:auto;left:50%;transform:translate(-50%)}}.viewer-loading,.viewer-error,.viewer-notice{padding:12px 18px;font-size:13px}.viewer-error{color:var(--danger)}.viewer-notice{color:var(--text-dim);border-bottom:1px solid var(--border-soft);background:var(--sidebar-bg)}.viewer-crash{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:6px;padding:32px;color:var(--text-dim)}.viewer-crash svg{color:var(--danger);margin-bottom:6px}.viewer-crash h3{margin:0;font-size:19px;color:var(--text)}.viewer-crash-file{margin:0;font-size:14px;font-weight:600;color:var(--text-dim);word-break:break-all}.viewer-crash-hint{margin:2px 0 10px;font-size:13.5px;color:var(--text-faint);max-width:460px;line-height:1.6}.viewer-crash-detail{margin:0;max-width:min(560px,90%);max-height:140px;overflow:auto;padding:8px 12px;border-radius:8px;background:var(--danger-soft);color:var(--danger);font-family:var(--mono);font-size:12px;text-align:left;white-space:pre-wrap;word-break:break-word}.text-content{margin:0;padding:16px 18px;font-family:Cascadia Code,Consolas,monospace;font-size:13px;line-height:1.5;white-space:pre-wrap;word-break:break-word;color:#243140}.txt-editor{display:flex;flex-direction:column;height:100%;min-height:0}.txt-bar{display:flex;align-items:center;gap:8px;padding:7px 10px;border-bottom:1px solid var(--border);background:var(--sidebar-bg);flex:none}.txt-save{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--accent);background:var(--accent);color:#fff;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer}.txt-save:hover:not(:disabled){background:var(--accent-strong)}.txt-save:disabled{opacity:.45;cursor:default}.txt-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border:1px solid var(--border);background:var(--content-bg);color:var(--text-dim);border-radius:8px;font-size:13px;font-weight:600;cursor:pointer}.txt-btn:hover{border-color:var(--accent-ring);color:var(--text)}.txt-btn.on{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.txt-spacer{flex:1}.txt-flash{font-size:12.5px;font-weight:600;color:var(--ok)}.txt-dirty{font-size:12.5px;font-weight:600;color:var(--accent-strong)}.txt-info{font-size:12px;color:var(--text-faint);font-variant-numeric:tabular-nums}.txt-find{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:7px 10px;border-bottom:1px solid var(--border);background:var(--content-bg);flex:none}.txt-find-in{min-width:130px;padding:5px 9px;border:1px solid var(--border);border-radius:7px;background:var(--bg-app);color:var(--text);font-size:13px}.txt-find-in:focus{outline:none;border-color:var(--accent)}.txt-find-count{font-size:12px;color:var(--text-faint);font-variant-numeric:tabular-nums;min-width:52px;text-align:center}.txt-find-ic{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid transparent;background:transparent;color:var(--text-dim);border-radius:7px;cursor:pointer}.txt-find-ic:hover:not(:disabled){background:var(--accent-soft);color:var(--accent-strong)}.txt-find-ic:disabled{opacity:.4;cursor:default}.txt-find-ic.on{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.txt-case{font-size:12px;font-weight:700}.txt-find-btn{padding:5px 11px;border:1px solid var(--border);background:var(--content-bg);color:var(--text-dim);border-radius:7px;font-size:12.5px;font-weight:600;cursor:pointer}.txt-find-btn:hover:not(:disabled){border-color:var(--accent-ring);color:var(--text)}.txt-find-btn:disabled{opacity:.4;cursor:default}.txt-body{flex:1;min-height:0;display:flex;overflow:hidden;font-family:var(--mono);font-size:13px;line-height:1.55}.txt-filtered{flex:1;min-height:0;overflow:auto;font-family:var(--mono);font-size:13px;line-height:1.6;padding:6px 0}.txt-fline{display:flex;gap:12px;padding:1px 14px;cursor:pointer;white-space:pre-wrap;word-break:break-word}.txt-fline:hover{background:var(--row-hover)}.txt-fnum{flex-shrink:0;min-width:42px;text-align:right;color:var(--text-faint);-webkit-user-select:none;user-select:none}.txt-ftext{flex:1;min-width:0;color:var(--text)}.txt-ftext a{color:var(--accent-strong);text-decoration:underline}.txt-ftext a:hover{color:var(--accent)}.txt-fnone{padding:20px 16px;color:var(--text-faint);font-family:inherit}.txt-gutter{flex:none;overflow:hidden;text-align:right;padding:12px 10px 12px 14px;color:var(--text-faint);background:var(--sidebar-bg);border-right:1px solid var(--border);-webkit-user-select:none;user-select:none}.txt-gutter span{display:block}.txt-editarea{position:relative;flex:1;min-width:0;overflow:hidden;background:var(--content-bg)}.txt-highlights{position:absolute;top:0;right:0;bottom:0;left:0;padding:12px 16px;margin:0;overflow:hidden;pointer-events:none;color:transparent;font-family:inherit;font-size:inherit;line-height:inherit;white-space:pre;-moz-tab-size:2;tab-size:2;z-index:1}.txt-body.wrap .txt-highlights{white-space:pre-wrap;word-break:break-word}.txt-highlights .txt-hl{background:#ffd50080;border-radius:2px}.txt-highlights .txt-hl.cur{background:#ff9100d9}.txt-area{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;width:100%;height:100%;box-sizing:border-box;resize:none;border:0;outline:none;padding:12px 16px;margin:0;background:transparent;color:var(--text);caret-color:var(--text);font-family:inherit;font-size:inherit;line-height:inherit;white-space:pre;overflow:auto;-moz-tab-size:2;tab-size:2}.txt-body.wrap .txt-area{white-space:pre-wrap;word-break:break-word}.txt-preview{flex:1;min-height:0;overflow:auto;margin:0;padding:12px 16px;background:var(--content-bg);color:var(--text);font-family:inherit;font-size:inherit;line-height:inherit;white-space:pre-wrap;word-break:break-word;-moz-tab-size:2;tab-size:2;-webkit-user-select:text;user-select:text}.txt-preview a{color:var(--accent-strong);text-decoration:underline}.code-view{display:flex;align-items:stretch;font-family:Cascadia Code,Consolas,monospace;font-size:13px;line-height:1.55}.code-gutter{display:flex;flex-direction:column;text-align:right;padding:12px 10px 12px 14px;color:var(--text-faint);background:var(--sidebar-bg);border-right:1px solid var(--border);-webkit-user-select:none;user-select:none;white-space:pre}.code-lines{margin:0;padding:12px 18px;white-space:pre;overflow-x:auto;flex:1;color:#243140}:root[data-theme=dark] .code-lines{color:var(--text)}.code-scroll{flex:1;min-height:0;overflow:auto}.code-lang{margin-inline-start:auto;font-size:12px;font-weight:600;color:var(--text-dim)}.hljs-comment,.hljs-quote{color:#8a93a6;font-style:italic}.hljs-keyword,.hljs-selector-tag,.hljs-literal,.hljs-doctag,.hljs-name{color:#a626a4}.hljs-string,.hljs-regexp,.hljs-addition,.hljs-meta-string{color:#0a7d3c}.hljs-number,.hljs-symbol,.hljs-bullet,.hljs-link{color:#b45309}.hljs-title,.hljs-section,.hljs-title.function_,.hljs-title.class_{color:#1d4ed8}.hljs-attr,.hljs-attribute,.hljs-variable,.hljs-template-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#0e7490}.hljs-type,.hljs-built_in,.hljs-builtin-name,.hljs-class .hljs-title{color:#b91c1c}.hljs-meta,.hljs-meta .hljs-keyword{color:#6b7280}.hljs-deletion{color:#b91c1c}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}:root[data-theme=dark] .hljs-comment,:root[data-theme=dark] .hljs-quote{color:#7c869c}:root[data-theme=dark] .hljs-keyword,:root[data-theme=dark] .hljs-selector-tag,:root[data-theme=dark] .hljs-literal,:root[data-theme=dark] .hljs-doctag,:root[data-theme=dark] .hljs-name{color:#d98cf0}:root[data-theme=dark] .hljs-string,:root[data-theme=dark] .hljs-regexp,:root[data-theme=dark] .hljs-addition,:root[data-theme=dark] .hljs-meta-string{color:#6ee7a0}:root[data-theme=dark] .hljs-number,:root[data-theme=dark] .hljs-symbol,:root[data-theme=dark] .hljs-bullet,:root[data-theme=dark] .hljs-link{color:#fbbf24}:root[data-theme=dark] .hljs-title,:root[data-theme=dark] .hljs-section,:root[data-theme=dark] .hljs-title.function_,:root[data-theme=dark] .hljs-title.class_{color:#7fb0ff}:root[data-theme=dark] .hljs-attr,:root[data-theme=dark] .hljs-attribute,:root[data-theme=dark] .hljs-variable,:root[data-theme=dark] .hljs-template-variable,:root[data-theme=dark] .hljs-selector-attr,:root[data-theme=dark] .hljs-selector-class,:root[data-theme=dark] .hljs-selector-id{color:#67e8f9}:root[data-theme=dark] .hljs-type,:root[data-theme=dark] .hljs-built_in,:root[data-theme=dark] .hljs-builtin-name,:root[data-theme=dark] .hljs-class .hljs-title{color:#fca5a5}:root[data-theme=dark] .hljs-meta,:root[data-theme=dark] .hljs-meta .hljs-keyword{color:#9aa3b5}.xml-viewer{padding:12px 6px;font-family:Cascadia Code,Consolas,monospace;font-size:13px;line-height:1.65;color:#243140}.xml-line{display:flex;align-items:baseline;white-space:pre-wrap;word-break:break-word;border-radius:5px;padding:1px 0}.xml-clickable{cursor:pointer}.xml-clickable:hover{background:var(--accent-soft)}.xml-toggle,.xml-gutter{flex-shrink:0;width:14px;display:inline-block;text-align:center;color:var(--accent);margin-right:2px;-webkit-user-select:none;user-select:none}.xml-gutter{color:transparent}.xml-tag{color:#2563eb;font-weight:600}.xml-attr-name{color:#b45309}.xml-attr-value{color:#15803d}.xml-punct{color:#94a3b8}.xml-text{color:#243140}.xml-comment{color:#94a3b8;font-style:italic}.xml-cdata,.xml-pi{color:#7c3aed}.xml-collapsed{color:var(--text-dim);padding:0 4px}.html-viewer{display:flex;flex-direction:column;height:100%}.edit-wrap{display:flex;flex-direction:column;height:100%;min-height:0}.edit-wrap>.viewer-toolbar{flex:none}.edit-wrap>.xml-viewer,.edit-wrap>.json-viewer,.edit-wrap>.json-wrap{flex:1;min-height:0;overflow:auto}.edit-wrap>.txt-editor,.edit-wrap>.csv2{flex:1;min-height:0;height:auto}.edit-wrap>.html-preview{flex:1;min-height:0}.viewer-toolbar{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--border-soft);background:var(--sidebar-bg)}.ndjson-info{margin-inline-start:auto;font-size:12px;color:var(--text-dim)}.ndjson-errors{color:var(--danger)}.seg{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;background:#fff;box-shadow:var(--shadow-sm)}.seg button{border:none;background:transparent;padding:7px 16px;font-size:13px;font-weight:500;cursor:pointer;color:var(--text-dim);transition:background .12s,color .12s}.seg button+button{border-left:1px solid var(--border)}.seg button:hover:not(.active){background:var(--accent-soft);color:var(--accent-strong)}.seg button.active{background:var(--accent);color:#fff;font-weight:600}.html-viewer .xml-viewer{flex:1;overflow:auto}.html-preview{flex:1;width:100%;border:none;background:#fff}.pptx-viewer{display:flex;flex-direction:column;height:100%;min-height:0}.pptx-body{flex:1;min-height:0;display:flex;overflow:hidden}.pptx-stage{flex:1;min-width:0;min-height:0;overflow:auto;position:relative;background:#e8ebf3;display:flex;flex-direction:column;align-items:center;gap:22px;padding:24px}[data-theme=dark] .pptx-stage{background:#0c111c}.pptx-thumbs{flex:none;overflow-y:auto;background:var(--sidebar-bg);border-right:1px solid var(--border);padding:12px 10px;display:flex;flex-direction:column;gap:10px}.pptx-thumb{position:relative;border:2px solid transparent;background:transparent;padding:0;cursor:pointer;border-radius:4px;line-height:0}.pptx-thumb:hover{border-color:var(--accent-ring)}.pptx-thumb.active{border-color:var(--accent)}.pptx-thumb .pptx-slide{box-shadow:none}.pptx-thumb-num{position:absolute;bottom:3px;left:4px;font-size:10px;font-weight:700;color:#fff;background:#14214799;padding:0 5px;border-radius:8px;line-height:1.5}.pptx-slide-holder,.pptx-slide-wrap{position:relative;flex:none}.pptx-slide{position:absolute;top:0;left:0;transform-origin:top left;background:#fff;box-shadow:var(--shadow-lg);border-radius:2px;overflow:hidden;color:#1a1a1a;font-family:IBM Plex Sans,Calibri,Arial,sans-serif}.pptx-text{display:flex;flex-direction:column;overflow:hidden;box-sizing:border-box;padding:4px 6px}.pptx-text.title{font-size:40px;font-weight:700}.pptx-text:not(.title){font-size:18px}.pptx-p{margin:0 0 2px;line-height:1.15;white-space:pre-wrap;word-break:break-word}.pptx-bullet{display:inline-block;width:14px;margin-left:-14px;color:inherit}.pptx-img{object-fit:contain}.pptx-slide-num{position:absolute;bottom:-18px;right:2px;font-size:11px;color:var(--text-faint);font-variant-numeric:tabular-nums}.pptx-present{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;background:#0b0d12;display:flex;align-items:center;justify-content:center}.pptx-present-stage{position:relative;cursor:pointer}.pptx-present-stage .pptx-slide{box-shadow:0 10px 50px #0009}.pptx-present-bar{position:fixed;bottom:18px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;background:#141822d1;border:1px solid rgba(255,255,255,.12);opacity:.25;transition:opacity .15s}.pptx-present:hover .pptx-present-bar{opacity:1}.pptx-present-bar .pdf-ic{color:#e7eaf3}.pptx-present-bar .pdf-ic:hover:not(:disabled){background:#ffffff24}.pptx-present-count{color:#e7eaf3;font-size:13px;font-variant-numeric:tabular-nums;padding:0 6px;min-width:54px;text-align:center}.cv-menu{position:relative;display:inline-flex}.cv-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40}.cv-pop{position:absolute;top:calc(100% + 6px);right:0;z-index:41;min-width:150px;background:var(--content-bg);border:1px solid var(--border);border-radius:12px;box-shadow:0 12px 34px #0e1a3a33;padding:6px;animation:recent-pop-in .12s ease-out}.cv-head{padding:4px 8px 6px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--text-faint)}.cv-item{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;border:none;background:transparent;padding:8px 10px;border-radius:8px;cursor:pointer;font-size:13.5px;font-weight:600;color:var(--text)}.cv-item:hover:not(:disabled){background:var(--accent-soft);color:var(--accent-strong)}.cv-item:disabled{opacity:.5;cursor:default}.cv-ext{font-family:var(--mono);font-size:11px;color:var(--text-faint)}.cv-err{margin:4px 6px 2px;font-size:12px;color:var(--danger)}.cv-progress{display:flex;align-items:center;gap:8px;margin:6px 8px 2px;font-size:12px;color:var(--text-dim)}.cv-spinner{width:13px;height:13px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}.info-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:210;background:#0e1a3a6b;display:flex;align-items:center;justify-content:center;padding:20px}.info-card{position:relative;width:min(560px,96vw);max-height:88vh;overflow:auto;background:var(--content-bg);border-radius:16px;box-shadow:0 20px 60px #0e1a3a59;padding:22px 24px 26px}.info-close{position:absolute;top:14px;right:14px;width:30px;height:30px;border:none;background:transparent;color:var(--text-dim);border-radius:8px;cursor:pointer}.info-close:hover{background:var(--danger-soft);color:var(--danger)}.info-title{margin:0;font-size:20px;color:var(--text)}.info-file{margin:2px 0 16px;font-size:13px;color:var(--text-dim);word-break:break-all}.info-group{margin-bottom:16px}.info-grouptitle{margin:0 0 6px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--accent)}.info-table{width:100%;border-collapse:collapse;font-size:13.5px}.info-table th{text-align:left;font-weight:600;color:var(--text-dim);padding:5px 12px 5px 0;white-space:nowrap;vertical-align:top;width:40%}.info-table td{padding:5px 0;color:var(--text);word-break:break-word}.info-table tr+tr th,.info-table tr+tr td{border-top:1px solid var(--border-soft)}.info-table a{color:var(--accent)}.cmp-view{display:flex;flex-direction:column;height:100%;min-height:0}.cmp-bar{display:flex;align-items:center;gap:10px;padding:9px 14px;border-bottom:1px solid var(--border);background:var(--sidebar-bg);flex:none}.cmp-sel{max-width:34%;padding:6px 10px;border:1px solid var(--border);border-radius:8px;background:var(--content-bg);color:var(--text);font-size:13px;font-weight:600}.cmp-vs{color:var(--text-faint);font-size:16px}.cmp-spacer{flex:1}.cmp-stats{display:inline-flex;gap:10px;font-size:13px;font-weight:700;font-variant-numeric:tabular-nums}.cmp-add{color:var(--ok)}.cmp-del{color:var(--danger)}.cmp-identical{font-size:13px;font-weight:600;color:var(--ok)}.cmp-close{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:none;background:transparent;color:var(--text-dim);border-radius:8px;cursor:pointer}.cmp-close:hover{background:var(--danger-soft);color:var(--danger)}.cmp-scroll{flex:1;min-height:0;overflow:auto;background:var(--content-bg)}.cmp-table{border-collapse:collapse;width:100%;font-family:var(--mono);font-size:12.5px;line-height:1.55;table-layout:fixed}.cmp-num{width:46px;padding:1px 8px;text-align:right;color:var(--text-faint);background:var(--sidebar-bg);border-right:1px solid var(--border-soft);-webkit-user-select:none;user-select:none;font-variant-numeric:tabular-nums;vertical-align:top}.cmp-cell{width:calc(50% - 46px);padding:1px 10px;white-space:pre-wrap;word-break:break-word;color:var(--text);vertical-align:top}.cmp-cell.left{border-right:2px solid var(--border)}.cmp-row.del .cmp-cell.left{background:#dc262624}.cmp-row.add .cmp-cell.right{background:#05966929}.cmp-row.mod .cmp-cell.left{background:#dc26261a}.cmp-row.mod .cmp-cell.right{background:#0596691f}.arc-viewer{display:flex;flex-direction:column;height:100%;min-height:0}.arc-bar{display:flex;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid var(--border);background:var(--sidebar-bg);flex:none}.arc-count{font-size:12.5px;color:var(--text-dim);font-variant-numeric:tabular-nums}.arc-spacer{flex:1}.arc-mapbtn,.arc-tab{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border:1px solid var(--border);background:var(--content-bg);color:var(--accent-strong);border-radius:8px;font-size:12.5px;font-weight:600;cursor:pointer}.arc-mapbtn:hover,.arc-tab:hover{border-color:var(--accent)}.arc-dl{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid var(--border);background:var(--content-bg);color:var(--text-dim);border-radius:8px;cursor:pointer}.arc-dl:hover{border-color:var(--accent);color:var(--accent)}.arc-body{flex:1;min-height:0;display:flex;overflow:hidden}.arc-tree{flex:none;overflow:auto;padding:8px 4px 8px 0;background:var(--sidebar-bg);border-right:1px solid var(--border)}.arc-row{display:flex;align-items:center;gap:7px;width:100%;border:none;background:transparent;padding:5px 8px;cursor:pointer;text-align:left;color:var(--text);font-size:13px;border-radius:6px}.arc-row:hover{background:var(--accent-soft)}.arc-file.active{background:var(--accent-soft);box-shadow:inset 2px 0 0 var(--accent)}.arc-caret{flex:none;color:var(--text-faint);transition:transform .12s}.arc-caret.open{transform:rotate(90deg)}.arc-ic{flex:none;color:var(--accent)}.arc-folder .arc-name{font-weight:600}.arc-badge{flex:none;display:inline-grid;place-items:center;min-width:30px;height:18px;padding:0 4px;border-radius:5px;color:#fff;font-size:9px;font-weight:800;letter-spacing:.02em}.arc-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.arc-size{flex:none;font-size:11px;color:var(--text-faint);font-variant-numeric:tabular-nums}.arc-group{display:flex;flex-direction:column}.arc-group+.arc-group{margin-top:2px}.arc-group-head{display:flex;align-items:center;gap:7px;width:100%;padding:6px 8px 4px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);border:0;background:transparent;border-radius:6px;cursor:pointer;font-family:inherit}.arc-group-head:hover{background:var(--row-hover);color:var(--text)}.arc-group-count{margin-inline-start:auto;background:var(--accent-soft);color:var(--accent-strong);border-radius:20px;padding:0 7px;font-size:10px}.arc-grouped{padding-left:26px}.arc-preview{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden}.arc-preview .viewer-host{flex:1;min-height:0}.arc-empty{flex:1;display:grid;place-items:center;color:var(--text-faint);font-size:14px;padding:20px;text-align:center}.arc-map{flex:1;min-height:0}.odt-viewer{height:100%;overflow:auto;background:#eceef4;padding:26px 20px 60px}[data-theme=dark] .odt-viewer{background:#0e1320}.odt-body{max-width:820px;margin:0 auto;background:var(--content-bg);color:var(--text);padding:48px 56px;border-radius:4px;box-shadow:var(--shadow-lg);font-family:IBM Plex Sans,Calibri,Arial,sans-serif;font-size:15px;line-height:1.55}.odt-body h1,.odt-body h2,.odt-body h3,.odt-body h4,.odt-body h5,.odt-body h6{color:var(--text);font-weight:700;line-height:1.25;margin:1.3em 0 .5em}.odt-body h1{font-size:1.8em}.odt-body h2{font-size:1.45em}.odt-body h3{font-size:1.2em}.odt-body>:first-child{margin-top:0}.odt-body p{margin:0 0 .6em}.odt-body a{color:var(--accent)}.odt-list{margin:0 0 .7em;padding-left:1.7em}.odt-list li{margin:.15em 0}.odt-table{border-collapse:collapse;margin:.4em 0 1em;max-width:100%}.odt-table td{border:1px solid var(--border);padding:5px 10px;vertical-align:top}.odt-table td>p:last-child{margin-bottom:0}.odt-img{max-width:100%;height:auto}.odt-img.block{display:block;margin:.5em 0}.md-viewer{display:flex;flex-direction:column;height:100%;min-height:0}.md-source{flex:1;min-height:0;overflow:auto;margin:0;padding:16px 18px;font-family:var(--mono);font-size:13px;line-height:1.6;white-space:pre-wrap;word-break:break-word;color:var(--text);background:var(--content-bg)}.md-body{flex:1;min-height:0;overflow:auto;padding:28px 34px 60px;background:var(--content-bg);color:var(--text);font-size:15.5px;line-height:1.7}.md-inner{max-width:820px;margin:0 auto}.md-body h1,.md-body h2,.md-body h3,.md-body h4,.md-body h5,.md-body h6{color:var(--text);font-weight:700;line-height:1.3;margin:1.6em 0 .6em}.md-body h1{font-size:1.9em;padding-bottom:.3em;border-bottom:1px solid var(--border)}.md-body h2{font-size:1.5em;padding-bottom:.3em;border-bottom:1px solid var(--border-soft)}.md-body h3{font-size:1.25em}.md-body h4{font-size:1.05em}.md-body h1:first-child,.md-body h2:first-child,.md-body h3:first-child{margin-top:0}.md-body p,.md-body ul,.md-body ol,.md-body blockquote,.md-body table,.md-body pre{margin:0 0 1em}.md-body ul,.md-body ol{padding-left:1.6em}.md-body li+li{margin-top:.25em}.md-body a{color:var(--accent);text-decoration:none}.md-body a:hover{text-decoration:underline}.md-body code{font-family:var(--mono);font-size:.88em;background:var(--accent-soft);color:var(--accent-deep);padding:.15em .4em;border-radius:5px}.md-body pre{background:var(--row-alt);border:1px solid var(--border);border-radius:10px;padding:14px 16px;overflow:auto;line-height:1.5}.md-body pre code{background:none;color:var(--text);padding:0;font-size:13px}.md-body blockquote{border-left:4px solid var(--accent-ring);padding:.2em 1em;color:var(--text-dim)}.md-body blockquote>:first-child{margin-top:0}.md-body blockquote>:last-child{margin-bottom:0}.md-body table{border-collapse:collapse;display:block;width:max-content;max-width:100%;overflow:auto}.md-body th,.md-body td{border:1px solid var(--border);padding:7px 12px;text-align:left}.md-body th{background:var(--row-alt);font-weight:700}.md-body tr:nth-child(2n) td{background:var(--row-alt)}.md-body img{max-width:100%;border-radius:8px}.md-body hr{border:none;border-top:1px solid var(--border);margin:2em auto}.md-body :is(h1,h2,h3) code{font-size:.85em}.md-body input[type=checkbox]{margin-right:.4em}.json-wrap{display:flex;flex-direction:column;height:100%}.json-wrap .json-viewer{flex:1;overflow:auto}.json-wrap>.txt-editor{flex:1;min-height:0;height:auto}.json-wrap .csv-viewer{flex:1}.cell-json{color:var(--text-dim);font-family:Cascadia Code,Consolas,monospace;font-size:12px}.kv-key{font-weight:600;color:#2563eb}.json-viewer{padding:12px 6px;font-family:Cascadia Code,Consolas,monospace;font-size:13px;line-height:1.65;color:#243140}.json-line{display:flex;align-items:baseline;white-space:pre-wrap;word-break:break-word;border-radius:5px;padding:1px 0}.json-clickable{cursor:pointer}.json-clickable:hover{background:var(--accent-soft)}.json-toggle,.json-gutter{flex-shrink:0;width:14px;display:inline-block;text-align:center;color:var(--accent);margin-right:2px;-webkit-user-select:none;user-select:none}.json-gutter{color:transparent}.json-key{color:#2563eb;font-weight:600}.json-string{color:#15803d}.json-number{color:#b45309}.json-boolean{color:#7c3aed}.json-null{color:#94a3b8;font-style:italic}.json-punct{color:#94a3b8}.json-collapsed{color:var(--text-dim);padding:0 4px}.geo-wrap{display:flex;flex-direction:column;height:100%}.geo-wrap .csv-viewer,.geo-wrap .json-viewer{flex:1;overflow:auto}.geo-count{margin-inline-start:auto;font-size:12px;font-weight:600;color:var(--accent-strong);background:var(--accent-soft);padding:3px 10px;border-radius:999px}.map-stage{flex:1;min-height:0}.geo-popup{border-collapse:collapse;font-size:12px}.geo-popup th,.geo-popup td{border:1px solid var(--border);padding:3px 7px;text-align:left;vertical-align:top}.geo-popup th{background:var(--accent-soft);color:var(--accent-strong);font-weight:600}.csv-viewer{display:flex;flex-direction:column;height:100%}.table-scroll{overflow:auto;flex:1}.csv-table{border-collapse:collapse;font-size:13px}.csv-table th,.csv-table td{border:1px solid var(--border);padding:7px 12px;text-align:left;white-space:nowrap}.csv-table tbody tr:nth-child(2n){background:var(--row-alt)}.csv-table tbody tr:hover{background:var(--accent-soft)}.csv-table thead th{position:sticky;top:0;background:var(--accent-soft);color:var(--text);font-weight:600;z-index:1}.csv-table .row-num{color:var(--text-faint);background:var(--sidebar-bg);text-align:right;position:sticky;left:0}.sheet-viewer{display:flex;flex-direction:column;height:100%}.sheet-tabs{display:flex;gap:4px;padding:8px 12px 0;overflow-x:auto;border-bottom:1px solid var(--border-soft);background:var(--sidebar-bg)}.sheet-tabs button{border:1px solid var(--border);border-bottom:none;border-radius:8px 8px 0 0;background:#fff;color:var(--text-dim);padding:7px 14px;font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap;max-width:220px;overflow:hidden;text-overflow:ellipsis;transition:color .12s,background .12s}.sheet-tabs button:hover:not(.active){color:var(--accent-strong);background:var(--accent-soft)}.sheet-tabs button.active{color:var(--accent-strong);font-weight:700;box-shadow:inset 0 -2px 0 var(--accent)}.sheet-table thead .col-letter{text-align:center;color:var(--text-dim);font-weight:600;min-width:64px}.sheet-table .corner{background:var(--sidebar-bg)}.sheet-bar{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--border-soft);flex-wrap:wrap}.sheet-bar .viewer-notice{padding:0;border:0}.sheet-bar-spacer{flex:1}.sheet-table .row-num,.sheet-table .corner{width:46px;min-width:46px;max-width:46px}.sheet-table.frozen tbody td:nth-child(2),.sheet-table.frozen thead th:nth-child(2){position:sticky;left:46px;z-index:2}.sheet-table.frozen tbody td:nth-child(2){background:var(--content-bg)}.sheet-table.frozen thead th:nth-child(2){z-index:3}.sheet-table.frozen td:nth-child(2),.sheet-table.frozen th:nth-child(2){border-right:1px solid var(--border)}.csv2{display:flex;flex-direction:column;height:100%}.csv2>.txt-editor{flex:1;min-height:0;height:auto}.csv2-toolbar{display:flex;align-items:center;gap:10px;padding:12px 22px;border-bottom:1px solid var(--border-soft);background:#fbfcfe}.csv2-search{display:flex;align-items:center;gap:8px;flex:1;max-width:340px;height:34px;padding:0 12px;background:#fff;border:1px solid var(--border);border-radius:9px}.csv2-search input{flex:1;min-width:0;border:none;outline:none;background:transparent;font-size:13px;font-family:inherit;color:var(--text)}.csv2-search input::placeholder{color:#aeb3c2}.csv2-search:focus-within{border-color:var(--accent-ring);box-shadow:0 0 0 3px var(--accent-soft)}.csv2-spacer{flex:1}.csv2-btn{display:flex;align-items:center;gap:7px;height:34px;padding:0 12px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--text-dim);font-size:13px;font-family:inherit;cursor:pointer;white-space:nowrap;transition:background .12s,border-color .12s,color .12s}.csv2-btn:hover,.csv2-btn.on{background:var(--accent-soft);border-color:var(--accent-ring);color:var(--accent-strong)}.csv2-btn.primary{background:var(--accent-deep);border-color:var(--accent-deep);color:#fff;font-weight:600}.csv2-btn.primary:hover{background:#1d3578}.csv2-colswrap{position:relative}.csv2-colsmenu{position:absolute;top:calc(100% + 6px);right:0;z-index:20;min-width:210px;max-height:320px;overflow:auto;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-md);padding:8px;display:flex;flex-direction:column;gap:2px}.csv2-colitem{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;font-size:13px;cursor:pointer}.csv2-colitem:hover{background:var(--sidebar-bg)}.csv2-colall{font-weight:600;color:var(--text-dim)}.csv2-colsep{height:1px;margin:4px 2px;background:var(--border)}.csv2-scroll{flex:1;overflow:auto;min-height:0}.csv2-table{border-collapse:collapse;width:100%;font-size:13px}.csv2-table thead th{position:sticky;top:0;z-index:2;background:#f5f7fc;border-bottom:1px solid var(--border);padding:11px 12px;text-align:left;white-space:nowrap;font-size:11.5px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:#727a90}.csv2-th{cursor:pointer;-webkit-user-select:none;user-select:none}.csv2-th:hover{color:var(--accent-strong)}.csv2-sort{margin-left:5px;font-size:9px;color:var(--accent)}.csv2-num{text-align:right!important;color:var(--text-faint);font-variant-numeric:tabular-nums;width:52px}.csv2-table.frozen td.csv2-num,.csv2-table.frozen th.csv2-num{position:sticky;left:0;z-index:1}.csv2-table.frozen tbody td.csv2-num,.csv2-table.frozen tbody td:nth-child(2){background:var(--content-bg)}.csv2-table.frozen tbody td:nth-child(2),.csv2-table.frozen thead th:nth-child(2){position:sticky;left:52px;z-index:1}.csv2-table.frozen thead th.csv2-num,.csv2-table.frozen thead th:nth-child(2){z-index:4}.csv2-table.frozen td:nth-child(2),.csv2-table.frozen th:nth-child(2){border-right:1px solid var(--border)}.csv2-table tbody td{height:44px;padding:0 12px;border-bottom:1px solid #f1f3f8;color:#242a3d;white-space:nowrap}.csv2-table tbody tr:hover{background:var(--row-hover)}tr.vrow-spacer td{padding:0!important;border:0!important;height:auto}tr.vrow-spacer:hover{background:transparent!important}.csv2-filterrow th{top:40px;background:#fff;padding:6px 8px}.csv2-filterin{width:100%;height:28px;padding:0 8px;border:1px solid var(--border);border-radius:6px;font-size:12px;font-family:inherit}.csv2-filterin:focus{outline:none;border-color:var(--accent)}.csv2-footer{flex:none;height:34px;display:flex;align-items:center;padding:0 22px;border-top:1px solid var(--border-soft);background:#fbfcfe;font-size:12px;color:var(--text-faint)}[data-theme=dark] .csv2-footer{background:var(--sidebar-bg)}.csv-map-wrap{flex:1;min-height:0;display:flex;flex-direction:column}.csv-chart{flex:1;min-height:0;display:flex;flex-direction:column;background:var(--content-bg)}.chart-controls{display:flex;align-items:center;gap:14px;padding:12px 22px;border-bottom:1px solid var(--border-soft);background:var(--sidebar-bg);flex-wrap:wrap}.chart-field{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--text-dim)}.chart-field select{height:32px;padding:0 8px;border:1px solid var(--border);border-radius:8px;font-size:13px;font-family:inherit;background:var(--content-bg);color:var(--text)}.chart-stage{flex:1;min-height:0;overflow:auto;padding:18px 22px;display:flex}.chart-svg{width:100%;max-width:980px;height:auto;margin:auto}.chart-grid{stroke:var(--border);stroke-width:1}.chart-axis{fill:var(--text-faint);font-size:11px}.chart-bar{fill:var(--accent)}.chart-line{fill:none;stroke:var(--accent);stroke-width:2.2;stroke-linejoin:round}.chart-legend{fill:var(--text-dim);font-size:12.5px}.chart-foot{flex:none;height:34px;display:flex;align-items:center;padding:0 22px;border-top:1px solid var(--border-soft);background:var(--sidebar-bg);font-size:12px;color:var(--text-faint)}.cell-code{font-family:var(--mono);font-size:12px;font-weight:500;color:var(--accent-strong)}.cell-pill{font-size:11px;font-weight:600;color:#727a90;background:#eef0f6;border-radius:5px;padding:2px 7px}.cell-num{font-family:var(--mono);font-size:11.5px;color:#525a70;font-variant-numeric:tabular-nums}.cell-status{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;border-radius:20px;padding:2px 9px}.cell-status.ok{color:var(--ok);background:var(--ok-soft)}.cell-status.off{color:#6b7280;background:#eef0f6}.cell-dot{width:6px;height:6px;border-radius:50%}.cell-status.ok .cell-dot{background:var(--ok-dot)}.cell-status.off .cell-dot{background:#9aa0b0}.pdf-viewer{display:flex;flex-direction:column;height:100%}.pdf-bar{display:flex;align-items:center;gap:8px;padding:8px 14px;border-bottom:1px solid var(--border-soft);background:var(--sidebar-bg)}.pdf-bar-group{display:flex;align-items:center;gap:4px}.pdf-bar-group.right{margin-inline-start:auto}.pdf-bar-sep{width:1px;height:22px;background:var(--border);margin:0 4px}.pdf-ic{width:32px;height:32px;display:grid;place-items:center;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--text-dim);cursor:pointer;transition:background .12s,color .12s,border-color .12s}.pdf-ic:hover:not(:disabled){background:#fff;color:var(--accent-strong);border-color:var(--border)}.pdf-ic.on{background:var(--accent-soft);color:var(--accent-strong);border-color:var(--accent-ring)}.pdf-ic:disabled{opacity:.35;cursor:default}.pdf-ic.sm{width:26px;height:26px}.pdf-pagein{width:44px;height:30px;padding:0 6px;border:1px solid var(--border);border-radius:7px;text-align:center;font-size:13px;font-family:inherit;background:#fff}.pdf-pagein:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.pdf-of{font-size:13px;color:var(--text-dim);margin-right:2px}.pdf-zoom{font-size:13px;font-weight:600;color:var(--text);min-width:48px;text-align:center}.pdf-find{display:flex;align-items:center;gap:6px;padding:8px 14px;border-bottom:1px solid var(--border-soft);background:#fff;color:var(--text-dim)}.pdf-find-input{width:220px;height:30px;padding:0 10px;border:1px solid var(--border);border-radius:8px;font-size:13px;font-family:inherit}.pdf-find-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.pdf-find-count{font-size:12px;color:var(--text-dim);min-width:86px}.pdf-body{flex:1;min-height:0;display:flex;overflow:hidden}.pdf-stage{flex:1;min-width:0;overflow:auto;background:#e8ebf3;display:flex;flex-direction:column;align-items:center;gap:16px;padding:24px;touch-action:pan-x pan-y}.pdf-page{position:relative;flex:none;border-radius:4px;box-shadow:var(--shadow-lg);background:#fff}.pdf-canvas{display:block;border-radius:4px;background:#fff}[data-theme=dark] .pdf-stage,.pdf-stage.pdf-invert{background:#1b1d22}.pdf-stage.pdf-invert .pdf-page{background:#14161b;box-shadow:0 2px 14px #0009}.pdf-stage.pdf-invert .pdf-canvas{background:#14161b;filter:invert(1) hue-rotate(180deg)}.pdf-progress{flex-shrink:0;height:5px;background:var(--border)}.pdf-progress-fill{height:100%;background:var(--accent);border-radius:0 3px 3px 0;transition:width .15s ease}.textLayer{position:absolute;text-align:initial;top:0;right:0;bottom:0;left:0;overflow:clip;opacity:1;line-height:1;text-size-adjust:none;forced-color-adjust:none;transform-origin:0 0;caret-color:CanvasText;z-index:2}.textLayer :is(span,br){color:transparent;position:absolute;white-space:pre;cursor:text;transform-origin:0% 0%}.textLayer span.markedContent{top:0;height:0}.textLayer ::selection{background:#3878ff59}.textLayer .pdf-hl{background:#ffc40080;border-radius:3px;color:transparent}.pdf-page-label{position:absolute;top:8px;right:8px;z-index:3;padding:2px 8px;border-radius:20px;background:#1421479e;color:#fff;font-size:11px;font-weight:700;line-height:1.4;pointer-events:none;opacity:0;transition:opacity .15s}.pdf-stage:hover .pdf-page-label{opacity:1}.pdf-thumbs{flex:none;width:168px;overflow-y:auto;background:var(--sidebar-bg);border-right:1px solid var(--border);padding:12px 0;display:flex;flex-direction:column;align-items:center;gap:12px}.pdf-thumb{display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px;border:none;background:transparent;cursor:pointer;border-radius:8px}.pdf-thumb:hover{background:var(--accent-soft)}.pdf-thumb-canvas{border:1px solid var(--border);border-radius:3px;background:#fff;box-shadow:var(--shadow-sm);display:block}.pdf-thumb.active .pdf-thumb-canvas{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.pdf-thumb-num{font-size:11px;color:var(--text-dim)}.pdf-thumb.active .pdf-thumb-num{color:var(--accent-strong);font-weight:700}.pdf-thumb-canvas{width:100%;height:auto}.pwa-toast{position:fixed;right:20px;bottom:20px;z-index:200;display:flex;align-items:center;gap:10px;padding:12px 14px;max-width:min(92vw,460px);background:var(--content-bg);color:var(--text);border:1px solid var(--border);border-left:4px solid var(--accent);border-radius:12px;box-shadow:0 12px 34px #0e1a3a3d;animation:pwa-toast-in .2s ease-out}@keyframes pwa-toast-in{0%{opacity:0;transform:translateY(12px)}}.pwa-toast>svg{color:var(--accent);flex:none}.pwa-toast-msg{font-size:14px;font-weight:600;margin-right:4px}.pwa-toast-btn{flex:none;border:1px solid var(--border);background:transparent;color:var(--text-dim);border-radius:8px;padding:6px 12px;font-size:13px;font-weight:600;cursor:pointer}.pwa-toast-btn:hover{border-color:var(--accent-ring);color:var(--text)}.pwa-toast-btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.pwa-toast-btn.primary:hover{background:var(--accent-strong);color:#fff}.resize-handle{flex:none;width:6px;cursor:col-resize;background:transparent;display:flex;align-items:center;justify-content:center;touch-action:none;transition:background .12s}.resize-handle:hover,.resize-handle:active{background:transparent}.resize-handle-grip{width:2px;height:34px;border-radius:2px;background:var(--text-faint);opacity:.5;transition:opacity .12s,background .12s}.resize-handle:hover .resize-handle-grip,.resize-handle:active .resize-handle-grip{opacity:1;background:var(--accent)}.docx-viewer-wrap{display:flex;flex-direction:column;height:100%}.docx-body{flex:1;min-height:0;display:flex;overflow:hidden}.docx-viewer{flex:1;min-width:0;overflow:auto;background:#e8ebf3;touch-action:pan-x pan-y}[data-theme=dark] .docx-viewer{background:#0c111c}.docx-side{flex:none;width:210px;display:flex;flex-direction:column;border-right:1px solid var(--border);background:var(--sidebar-bg);min-height:0}.docx-side-tabs{margin:10px}.docx-side-tabs button{flex:1}.docx-side-body{flex:1;overflow-y:auto;padding:0 6px 10px}.docx-outline{list-style:none;margin:0;padding:0}.docx-outline-item{padding:6px 8px;border-radius:7px;font-size:13px;color:var(--text-dim);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.docx-outline-item:hover{background:var(--accent-soft);color:var(--accent-strong)}.docx-outline-item.lvl0{font-weight:700;color:var(--text)}.docx-outline-item.lvl1{padding-left:18px}.docx-outline-item.lvl2{padding-left:30px}.docx-outline-item.lvl3{padding-left:42px;font-size:12px}.docx-thumbs{display:flex;flex-direction:column;align-items:center;gap:12px;padding:6px 0}.docx-thumb{border:none;background:transparent;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:4px;padding:4px;border-radius:8px}.docx-thumb:hover{background:var(--accent-soft)}.docx-thumb-page{width:150px;overflow:hidden;background:#fff;border:1px solid var(--border);border-radius:3px;box-shadow:var(--shadow-sm)}.docx-thumb-num{font-size:11px;color:var(--text-dim)}.docx-stage{padding:24px 0}.docx-hl{background:#fde68a;color:#1c2238;border-radius:2px}.docx-hl.current{background:#f59e0b}[data-theme=dark] .docx-hl{background:#8a5e00;color:#fff}[data-theme=dark] .docx-hl.current{background:#f59e0b;color:#1c1300}.docx-stage .docx-wrapper{background:transparent;padding:0}.docx-stage .docx-wrapper>section.docx{margin:0 auto 24px;box-shadow:var(--shadow-lg);background:#fff}.image-wrap{position:relative;display:flex;flex-direction:column;height:100%}.img-sheet{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;overflow-y:auto;padding:16px;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;align-content:start;background:var(--content-bg)}.img-sheet-cell{display:flex;flex-direction:column;gap:6px;border:1px solid var(--border-soft);border-radius:10px;background:var(--sidebar-bg);padding:8px;cursor:pointer}.img-sheet-cell:hover{border-color:var(--accent)}.img-sheet-cell.active{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.img-sheet-cell img{width:100%;height:120px;object-fit:contain;border-radius:6px;background:repeating-conic-gradient(#e7e9f0,#e7e9f0 25%,#f6f7fb 0%,#f6f7fb 50%) 50% / 18px 18px}.img-sheet-name{font-size:11.5px;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center}.image-stage{flex:1;min-height:0;position:relative;overflow:hidden;cursor:grab;touch-action:none;background:repeating-conic-gradient(#f3f5fa,#f3f5fa 25%,#fff 0%,#fff 50%) 50% / 22px 22px}.image-stage.dragging{cursor:grabbing}.image-stage.cropping{cursor:default}.image-canvas{position:absolute;top:0;left:0;transform-origin:0 0;max-width:none;max-height:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;will-change:transform;box-shadow:var(--shadow-md)}.img-crop{position:absolute;z-index:3;border:1px solid #fff;box-shadow:0 0 0 9999px #00000080;cursor:move;touch-action:none}.img-crop-h{position:absolute;width:14px;height:14px;background:#fff;border:2px solid var(--accent);border-radius:3px;touch-action:none}.img-crop-h.nw{left:-7px;top:-7px;cursor:nwse-resize}.img-crop-h.ne{right:-7px;top:-7px;cursor:nesw-resize}.img-crop-h.sw{left:-7px;bottom:-7px;cursor:nesw-resize}.img-crop-h.se{right:-7px;bottom:-7px;cursor:nwse-resize}.img-crop-bar{position:absolute;z-index:4;bottom:16px;left:50%;transform:translate(-50%);display:flex;gap:8px;padding:7px 10px;border-radius:999px;background:#141822e6;border:1px solid rgba(255,255,255,.14)}.img-crop-btn{padding:6px 16px;border:1px solid rgba(255,255,255,.25);background:transparent;color:#e7eaf3;border-radius:999px;font-size:13px;font-weight:600;cursor:pointer}.img-crop-btn:hover:not(:disabled){background:#ffffff1f}.img-crop-btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.img-crop-btn.primary:hover{background:var(--accent-strong)}.img-crop-btn:disabled{opacity:.4;cursor:default}.img-save-ok{color:#16a34a;font-weight:700}.img-save-fail{color:#dc2626;font-weight:700}.img-annot-canvas{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;width:100%;height:100%;cursor:crosshair;touch-action:none}.img-annot-bar{position:absolute;z-index:4;bottom:16px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:999px;background:#141822eb;border:1px solid rgba(255,255,255,.14);max-width:calc(100% - 24px);flex-wrap:wrap;justify-content:center}.img-annot-tools,.img-annot-colors,.img-annot-sizes{display:inline-flex;gap:5px}.img-annot-tool,.img-annot-size{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:30px;padding:0 8px;border:1px solid rgba(255,255,255,.25);background:transparent;color:#e7eaf3;border-radius:8px;font-size:13px;font-weight:700;cursor:pointer}.img-annot-tool.on,.img-annot-size.on{background:var(--accent);border-color:var(--accent);color:#fff}.img-annot-swatch{width:24px;height:24px;border-radius:50%;border:2px solid rgba(255,255,255,.3);cursor:pointer;padding:0}.img-annot-swatch.on{border-color:#fff;box-shadow:0 0 0 2px var(--accent)}.img-annot-sep{width:1px;align-self:stretch;background:#ffffff2e;margin:2px}.audio-viewer{height:100%;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--sidebar-bg)}.audio-card{width:min(460px,100%);background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:28px 26px;text-align:center}.audio-icon{width:76px;height:76px;margin:0 auto 14px;border-radius:50%;display:grid;place-items:center;font-size:34px;background:radial-gradient(circle at 50% 35%,#fff,var(--accent-soft));border:1px solid var(--border)}.audio-name{font-weight:700;font-size:15px;word-break:break-word}.audio-meta{font-size:12px;color:var(--text-dim);margin-top:4px;margin-bottom:18px}.audio-player{width:100%}.audio-mute{margin-top:12px;display:inline-flex;align-items:center;gap:7px;padding:7px 14px;border:1px solid var(--border-soft);border-radius:9px;background:var(--content-bg);color:var(--text-dim);font-family:inherit;font-size:13px;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.audio-mute:hover{color:var(--text);border-color:var(--accent)}.audio-mute.on{color:var(--accent-strong);border-color:var(--accent);background:var(--accent-soft)}.audio-tools{margin-top:14px;display:flex;align-items:center;justify-content:center;gap:8px}.audio-tool{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;padding:0 10px;border:1px solid var(--border-soft);border-radius:9px;background:var(--content-bg);color:var(--text-dim);font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.audio-tool:hover{color:var(--text);border-color:var(--accent)}.audio-tool.on{color:var(--accent-strong);border-color:var(--accent);background:var(--accent-soft)}.audio-speed,.video-speed{font-variant-numeric:tabular-nums;font-weight:700}.video-tool.on{color:#fff;background:#2563ebd9}.video-viewer{position:relative;height:100%;display:flex;align-items:center;justify-content:center;padding:20px;background:#0f1420}.video-tools{position:absolute;top:30px;right:30px;display:flex;gap:8px}.video-tool{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border:none;border-radius:9px;background:#14161e9e;color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);transition:background .15s}.video-tool:hover{background:#14161ed9}.video-player{max-width:100%;max-height:100%;border-radius:8px;box-shadow:var(--shadow-lg);background:#000}.fallback-viewer{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;height:100%;color:var(--text-dim);gap:8px;padding:24px}.fallback-icon{font-size:48px}.fallback-viewer h2{color:var(--text);margin:0;font-weight:700}.fallback-hint{max-width:420px;font-size:13px}@media print{.topbar,.sidebar,.folder-panel,.file-tabs,.main-header,.viewer-toolbar,.pdf-bar,.pdf-find,.docx-side{display:none!important}.app,.body,.main,.docx-viewer-wrap,.docx-body,.docx-viewer{display:block;height:auto;overflow:visible}.docx-stage{zoom:1!important}.docx-stage .docx-wrapper>section.docx{box-shadow:none;margin:0 auto}.main{margin:0;border:none;border-radius:0;box-shadow:none}.viewer-host{overflow:visible}.table-scroll,.json-wrap .json-viewer,.xml-viewer,.text-viewer,.code-view{overflow:visible!important}body{background:#fff}}.session-bar{flex-shrink:0;display:flex;align-items:center;gap:10px;padding:8px 20px;background:var(--accent-soft);border-bottom:1px solid var(--border);color:var(--text)}.session-bar>svg{color:var(--accent);flex-shrink:0}.session-msg{flex:1;min-width:0;font-size:13px}.session-restore,.session-ignore{flex-shrink:0;height:30px;padding:0 14px;border-radius:8px;font-size:12.5px;font-weight:600;cursor:pointer;border:1px solid var(--border);background:#fff;color:var(--text)}.session-restore{background:var(--accent-deep);border-color:var(--accent-deep);color:#fff}.session-restore:hover{background:var(--accent-strong)}.session-ignore:hover{background:var(--row-hover)}.gs-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#0e1a3a57;display:flex;justify-content:center;align-items:flex-start;padding:8vh 16px 16px}.gs-panel{width:640px;max-width:100%;max-height:80vh;display:flex;flex-direction:column;background:var(--content-bg);border:1px solid var(--border);border-radius:14px;box-shadow:0 22px 60px #0e1a3a4d;overflow:hidden;animation:recent-pop-in .12s ease-out}.gs-head{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--border)}.gs-head>svg{color:var(--text-faint);flex-shrink:0}.gs-input{flex:1;min-width:0;height:34px;border:0;background:transparent;font-size:14px;font-family:inherit;color:var(--text);outline:none}.gs-case{flex-shrink:0;height:28px;min-width:30px;padding:0 8px;border-radius:7px;border:1px solid var(--border);background:#fff;color:var(--text-dim);font-size:12px;font-weight:700;cursor:pointer}.gs-case.on{background:var(--accent-soft);border-color:var(--accent-ring);color:var(--accent-strong)}.gs-close{flex-shrink:0;display:grid;place-items:center;width:30px;height:30px;border-radius:7px;border:0;background:transparent;color:var(--text-faint);cursor:pointer}.gs-close:hover{background:var(--row-hover);color:var(--text)}.gs-summary{padding:7px 16px;font-size:12px;color:var(--text-dim);border-bottom:1px solid var(--border-soft);background:var(--sidebar-bg)}.gs-body{overflow-y:auto;padding:6px 6px 10px}.gs-empty{padding:26px 16px;text-align:center;color:var(--text-faint);font-size:13px}.gs-file{margin:4px 0}.gs-file-head{display:flex;align-items:center;gap:8px;width:100%;padding:7px 10px;border:0;background:transparent;border-radius:8px;cursor:pointer;text-align:left;color:var(--text)}.gs-file-head:hover{background:var(--row-hover)}.gs-badge{flex-shrink:0;display:grid;place-items:center;width:26px;height:26px;border-radius:7px;color:#fff;font-size:11px;font-weight:700}.gs-badge.sm{font-size:9px}.gs-file-name{flex:1;min-width:0;font-weight:600;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gs-file-count{flex-shrink:0;min-width:22px;padding:1px 7px;border-radius:999px;background:var(--accent-soft);color:var(--accent-strong);font-size:11px;font-weight:700;text-align:center}.gs-hits{list-style:none;margin:0 0 2px;padding:0 4px 0 12px}.gs-hit{display:flex;gap:10px;padding:3px 8px;border-radius:6px;cursor:pointer;font-family:var(--mono);font-size:12px;line-height:1.5}.gs-hit:hover{background:var(--row-hover)}.gs-line{flex-shrink:0;color:var(--text-faint);-webkit-user-select:none;user-select:none;min-width:42px;text-align:right}.gs-hit-text{flex:1;min-width:0;white-space:pre;overflow:hidden;text-overflow:ellipsis;color:var(--text-dim)}.gs-mark{background:#ffe08a;color:#1c2238;border-radius:2px;padding:0 1px}:root[data-theme=dark] .gs-case,:root[data-theme=dark] .session-restore~.session-ignore,:root[data-theme=dark] .session-ignore{background:var(--content-bg)}:root[data-theme=dark] .gs-mark{background:#b8860b;color:#fff}.cmd-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;background:#0e1a3a57;display:flex;justify-content:center;align-items:flex-start;padding:12vh 16px 16px}.cmd-panel{width:560px;max-width:100%;max-height:70vh;display:flex;flex-direction:column;background:var(--content-bg);border:1px solid var(--border);border-radius:14px;box-shadow:0 22px 60px #0e1a3a4d;overflow:hidden;animation:recent-pop-in .12s ease-out}.cmd-head{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--border)}.cmd-head>svg{color:var(--text-faint);flex-shrink:0}.cmd-input{flex:1;min-width:0;height:34px;border:0;background:transparent;font-size:15px;font-family:inherit;color:var(--text);outline:none}.cmd-esc{flex-shrink:0;font-size:10px;font-family:var(--mono);color:var(--text-faint);border:1px solid var(--border);border-radius:5px;padding:2px 6px}.cmd-list{overflow-y:auto;padding:6px}.cmd-empty{padding:24px 16px;text-align:center;color:var(--text-faint);font-size:13px}.cmd-section{padding:8px 10px 4px;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-faint)}.cmd-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:0;background:transparent;border-radius:8px;cursor:pointer;text-align:left;color:var(--text);font-family:inherit}.cmd-item.sel{background:var(--accent-soft)}.cmd-label{flex:1;min-width:0;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cmd-hint{flex-shrink:0;font-size:11.5px;color:var(--text-faint)}.cmd-enter{flex-shrink:0;font-size:12px;color:var(--accent-strong)}.ics-viewer{display:flex;flex-direction:column;min-height:0;height:100%}.ics-head{display:flex;align-items:center;gap:10px;padding:12px 18px;border-bottom:1px solid var(--border);background:var(--sidebar-bg)}.ics-head>svg{color:#0284c7;flex-shrink:0}.ics-title{font-weight:700;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ics-count{margin-inline-start:auto;flex-shrink:0;font-size:12.5px;color:var(--text-dim)}.ics-list{overflow-y:auto;padding:8px 0 20px}.ics-day{padding:0 18px}.ics-day-head{position:sticky;top:0;z-index:1;padding:12px 0 6px;font-size:12px;font-weight:700;text-transform:capitalize;color:var(--accent-strong);background:var(--content-bg);border-bottom:1px solid var(--border-soft)}.ics-event{display:flex;gap:14px;padding:10px 0;border-bottom:1px solid var(--border-soft)}.ics-when{flex-shrink:0;width:74px;display:flex;flex-direction:column;align-items:flex-end;text-align:right;gap:1px}.ics-time{font-weight:700;font-size:13.5px;color:var(--text)}.ics-time-end{font-size:12px;color:var(--text-faint)}.ics-allday{font-size:11px;font-weight:700;color:#0284c7;background:#e0f2fe;border-radius:5px;padding:2px 6px}:root[data-theme=dark] .ics-allday{background:#0c4a6e;color:#bae6fd}.ics-tz{font-size:10px;color:var(--text-faint)}.ics-body{flex:1;min-width:0;border-left:3px solid #0284c7;padding-left:12px}.ics-summary{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--text)}.ics-badge{font-size:10.5px;font-weight:600;border-radius:5px;padding:1px 6px}.ics-badge.recur{background:var(--accent-soft);color:var(--accent-strong)}.ics-badge.cancel{background:var(--danger-soft);color:var(--danger);text-transform:uppercase}.ics-meta{display:flex;align-items:center;gap:5px;margin-top:3px;font-size:12.5px;color:var(--text-dim)}.ics-meta>svg{flex-shrink:0;color:var(--text-faint)}.ics-desc{margin-top:5px;font-size:12.5px;color:var(--text-dim);white-space:pre-wrap;max-height:6.5em;overflow:auto}.sql-pane{display:flex;flex-direction:column;min-height:0;height:100%}.sql-editor{position:relative;flex:none;margin:10px 12px 0;border:1px solid var(--border);border-radius:9px;background:var(--content-bg);overflow:hidden}.sql-editor:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.sql-hl,.sql-input{margin:0;padding:10px 12px;border:0;font-family:var(--mono);font-size:13px;line-height:1.5;letter-spacing:normal;-moz-tab-size:2;tab-size:2;white-space:pre-wrap;word-break:break-word;overflow-wrap:break-word}.sql-hl{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;color:var(--text);background:transparent}.sql-hl code{font:inherit}.sql-input{position:relative;display:block;width:100%;height:110px;background:transparent;color:transparent;caret-color:var(--text);resize:vertical;outline:none}.sql-input::placeholder{color:var(--text-faint)}.sql-input::selection{background:var(--accent-soft)}.sqk-keyword{color:#7c3aed;font-weight:600}.sqk-string{color:#15803d}.sqk-number{color:#b45309}.sqk-comment{color:#94a3b8;font-style:italic}[data-theme=dark] .sqk-keyword{color:#c4b5fd}[data-theme=dark] .sqk-string{color:#6ee7a8}[data-theme=dark] .sqk-number{color:#fbbf6b}.sql-actions{display:flex;align-items:center;gap:10px;padding:8px 12px}.sql-run{padding:7px 16px;border-radius:8px;border:1px solid var(--accent-deep);background:var(--accent-deep);color:#fff;font-size:13px;font-weight:600;font-family:inherit;cursor:pointer}.sql-run:hover{background:var(--accent-strong)}.sql-hint{font-size:11.5px;color:var(--text-faint);font-family:var(--mono)}.sql-history{flex:none;margin:0 12px 8px;max-height:200px;overflow-y:auto;border:1px solid var(--border-soft);border-radius:9px;background:var(--content-bg)}.sql-history-head{display:flex;align-items:center;justify-content:space-between;padding:7px 10px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);border-bottom:1px solid var(--border-soft);position:sticky;top:0;background:var(--content-bg)}.sql-history-clear{border:0;background:transparent;color:var(--accent-strong);font-family:inherit;font-size:11px;font-weight:600;cursor:pointer}.sql-history-item{display:block;width:100%;text-align:left;border:0;border-bottom:1px solid var(--border-soft);background:transparent;color:var(--text);font-family:var(--mono);font-size:12px;padding:7px 10px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sql-history-item:last-child{border-bottom:0}.sql-history-item:hover{background:var(--accent-soft)}.sql-help{flex:none;margin:0 12px 8px;max-height:300px;overflow-y:auto;border:1px solid var(--border-soft);border-radius:9px;background:var(--content-bg)}.sql-help-head{padding:8px 10px;font-size:11.5px;color:var(--text-dim);border-bottom:1px solid var(--border-soft);position:sticky;top:0;background:var(--content-bg)}.sql-help-table{font-family:var(--mono);color:var(--accent-strong);background:var(--accent-soft);padding:1px 6px;border-radius:5px;font-size:11px}.sql-help-section{border-bottom:1px solid var(--border-soft)}.sql-help-section:last-child{border-bottom:0}.sql-help-section>summary{padding:8px 10px;font-size:12px;font-weight:700;color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;list-style:none}.sql-help-section>summary::-webkit-details-marker{display:none}.sql-help-section>summary:before{content:"▸";display:inline-block;margin-right:7px;color:var(--text-faint);transition:transform .12s}.sql-help-section[open]>summary:before{transform:rotate(90deg)}.sql-help-item{display:block;width:100%;text-align:left;border:0;border-top:1px solid var(--border-soft);background:transparent;padding:7px 12px 7px 26px;cursor:pointer}.sql-help-item:hover{background:var(--accent-soft)}.sql-help-desc{display:block;font-size:12px;color:var(--text-dim);margin-bottom:2px}.sql-help-sql{display:block;font-family:var(--mono);font-size:11.5px;color:var(--text);white-space:pre-wrap;word-break:break-word}.sqlite-ctx{position:fixed;z-index:200;min-width:180px;padding:4px;background:var(--panel-bg, var(--content-bg));border:1px solid var(--border-soft);border-radius:9px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column}.sqlite-ctx-item{display:flex;align-items:center;gap:6px;width:100%;text-align:left;border:0;background:transparent;color:var(--text);font-family:inherit;font-size:13px;padding:8px 10px;border-radius:6px;cursor:pointer}.sqlite-ctx-item:hover{background:var(--accent-soft);color:var(--accent-strong)}.sqlite-ctx-dim{color:var(--text-faint);font-size:11px}.folder-panel{flex-shrink:0;background:var(--panel-bg);display:flex;flex-direction:column;min-height:0;margin:14px 0 14px 14px;border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow:hidden}.folder-head{display:flex;align-items:center;gap:8px;padding:12px 12px 8px}.folder-head-title{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--text-faint)}.folder-close{margin-inline-start:auto;display:grid;place-items:center;width:24px;height:24px;border:0;border-radius:6px;background:transparent;color:var(--text-faint);cursor:pointer}.folder-close:hover{background:var(--row-hover);color:var(--text)}.folder-empty-state{padding:16px 14px;text-align:center;color:var(--text-dim);font-size:13px}.folder-open-btn{display:inline-flex;align-items:center;gap:8px;margin-top:10px;padding:8px 14px;border-radius:9px;border:1px solid var(--accent-deep);background:var(--accent-deep);color:#fff;font-size:13px;font-weight:600;font-family:inherit;cursor:pointer}.folder-open-btn:hover{background:var(--accent-strong)}.folder-open-btn:disabled{opacity:.5;cursor:not-allowed}.folder-open-btn.ghost{background:transparent;color:var(--accent-strong);border-color:var(--border)}.folder-open-btn.ghost:hover{background:var(--row-hover)}.folder-bar{display:flex;align-items:center;gap:6px;padding:0 12px 6px}.folder-back,.folder-reopen{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;border:1px solid var(--border);background:var(--content-bg);color:var(--text-dim);cursor:pointer}.folder-back:hover:not(:disabled),.folder-reopen:hover{background:var(--row-hover);color:var(--text)}.folder-back:disabled{opacity:.4;cursor:not-allowed}.folder-crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:2px;padding:0 12px 8px;font-size:11.5px}.folder-crumb{display:inline-flex;align-items:center;min-width:0}.folder-sep{color:var(--text-faint);margin:0 2px}.folder-crumb-btn{max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:0;background:transparent;color:var(--text-dim);font-family:inherit;font-size:11.5px;cursor:pointer;padding:1px 4px;border-radius:5px}.folder-crumb-btn:hover{background:var(--row-hover)}.folder-crumb-btn.current{color:var(--accent-strong);font-weight:700}.folder-list-wrap{flex:1;min-height:0;overflow-y:auto;padding:0 8px 12px}.folder-note,.folder-error{padding:12px 10px;font-size:12.5px;color:var(--text-faint)}.folder-error{color:var(--danger)}.folder-list{list-style:none;margin:0;padding:0}.folder-row-btn{display:flex;align-items:center;gap:13px;width:100%;padding:6px 8px;border:0;background:transparent;border-radius:8px;cursor:pointer;text-align:left;color:var(--text);font-family:inherit}.folder-row-btn:hover{background:var(--row-hover)}.folder-row-btn.selected{background:var(--accent-soft);outline:1px solid var(--accent-ring)}.folder-row-btn.no-badge{padding-left:26px}.folder-row.file{position:relative}.folder-row-actions{position:absolute;right:6px;top:50%;transform:translateY(-50%);display:flex;gap:2px;padding-left:6px;opacity:0;transition:opacity .12s;background:linear-gradient(90deg,transparent,var(--panel-bg) 30%)}.folder-row.file:hover .folder-row-actions,.folder-row.file:focus-within .folder-row-actions{opacity:1}.folder-mini{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-width:26px;height:26px;padding:0 6px;border-radius:6px;border:1px solid var(--border);background:var(--content-bg);color:var(--text-dim);font-size:12px;font-family:inherit;cursor:pointer}.folder-mini:hover{background:var(--row-hover);color:var(--text)}.folder-mini.ok:hover{color:var(--ok);border-color:var(--ok)}.folder-mini.danger:hover{color:var(--danger);border-color:var(--danger)}.folder-rename{display:flex;align-items:center;gap:4px;padding:3px 4px}.folder-rename-input{flex:1;min-width:0;height:28px;padding:0 8px;border:1px solid var(--accent);border-radius:6px;background:var(--content-bg);color:var(--text);font-size:13px;font-family:inherit;outline:none;box-shadow:0 0 0 3px var(--accent-soft)}.folder-confirm{display:flex;align-items:center;gap:6px;padding:5px 6px;color:var(--danger)}.folder-confirm-name{flex:1;min-width:0;font-size:12.5px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.folder-confirm .folder-mini.danger{background:var(--danger);color:#fff;border-color:var(--danger)}.folder-confirm .folder-mini.danger:hover{filter:brightness(1.08);color:#fff}.folder-row-icon.dir{display:grid;place-items:center;flex-shrink:0;width:26px;height:26px;color:#d99a2b}.folder-row-badge{flex-shrink:0;display:grid;place-items:center;width:26px;height:26px;border-radius:7px;color:#fff;font-size:10px;font-weight:700}.folder-row-badge.sm{font-size:8px}.folder-row-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.folder-row-name{flex:1;min-width:0;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.folder-row-meta{font-size:11px;color:var(--text-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.folder-row.dir .folder-row-name{font-weight:600}.folder-sort{display:flex;align-items:center;gap:4px;padding:0 12px 8px;flex-wrap:wrap}.folder-sort-label{font-size:11px;color:var(--text-faint);margin-right:2px}.folder-sort-btn{display:inline-flex;align-items:center;gap:3px;padding:3px 8px;border-radius:7px;border:1px solid var(--border);background:var(--content-bg);color:var(--text-dim);font-size:12px;font-family:inherit;cursor:pointer}.folder-sort-btn:hover{background:var(--row-hover)}.folder-sort-btn.active{background:var(--accent-soft);border-color:var(--accent-ring);color:var(--accent-strong);font-weight:600}.folder-sort-arrow{font-size:9px;line-height:1}.folder-group-btn{margin-inline-start:auto;padding:3px 6px}.folder-groups{display:flex;flex-direction:column;gap:6px}.folder-cat-head{display:flex;align-items:center;gap:8px;width:100%;padding:6px 8px 4px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);border:0;background:transparent;border-radius:7px;cursor:pointer;font-family:inherit}.folder-cat-head:hover{background:var(--row-hover);color:var(--text-dim)}.folder-cat-caret{flex-shrink:0;color:var(--text-faint);transition:transform .12s}.folder-cat-caret.open{transform:rotate(90deg)}.folder-cat-badge{flex-shrink:0;display:grid;place-items:center;width:32px;height:32px;border-radius:8px;color:#fff;font-size:12px;font-weight:700;letter-spacing:0}.folder-cat-badge.sm{font-size:9.5px}.folder-cat-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.folder-cat-count{background:var(--accent-soft);color:var(--accent-strong);border-radius:20px;padding:1px 7px;font-size:10px;letter-spacing:0}.folder-count{background:var(--accent-soft);color:var(--accent-strong);border-radius:20px;padding:1px 7px;font-size:10px;font-weight:700;letter-spacing:0}.folder-row-chevron{flex-shrink:0;color:var(--text-faint);font-size:15px}.qchart{flex:1;min-height:0;display:flex;flex-direction:column;overflow:auto;background:var(--content-bg)}.qchart-controls{display:flex;align-items:flex-end;flex-wrap:wrap;gap:14px;padding:14px 18px;border-bottom:1px solid var(--border-soft)}.qchart-field{display:flex;flex-direction:column;gap:4px;font-size:11.5px;font-weight:600;color:var(--text-dim)}.qchart-field select{height:32px;min-width:130px;max-width:220px;padding:0 8px;border:1px solid var(--border);border-radius:8px;background:var(--content-bg);color:var(--text);font-size:13px;font-family:inherit}.qchart-seg{display:flex;border:1px solid var(--border);border-radius:8px;overflow:hidden}.qchart-seg button{height:32px;padding:0 12px;border:none;border-left:1px solid var(--border);background:var(--content-bg);color:var(--text-dim);font-size:12.5px;font-family:inherit;cursor:pointer}.qchart-seg button:first-child{border-left:none}.qchart-seg button.on{background:var(--accent);color:#fff;font-weight:600}.qchart-spacer{flex:1}.qchart-close{width:32px;height:32px;border:1px solid var(--border);border-radius:8px;background:var(--content-bg);color:var(--text-faint);cursor:pointer;font-size:13px}.qchart-close:hover{background:var(--danger-soft);color:var(--danger);border-color:#f3bcbc}.qchart-empty{color:var(--text-faint);font-size:14px}.qchart-stats{display:flex;flex-wrap:wrap;gap:8px 20px;padding:12px 18px;font-size:13px;color:var(--text-dim);border-bottom:1px solid var(--border-soft)}.qchart-stats b{color:var(--text);font-variant-numeric:tabular-nums}.qchart-plot{flex:1;min-height:260px;padding:16px 18px}.qchart-plot svg{width:100%;height:auto;max-height:480px}.qc-axis{stroke:var(--border);stroke-width:1}.qc-bar{fill:var(--accent)}.qc-bar:hover{fill:var(--accent-strong)}.qc-line{stroke:var(--accent);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.qc-dot{fill:var(--accent-strong)}.qc-xlabel,.qc-ylabel{fill:var(--text-faint);font-size:11px;font-family:inherit}.qchart-foot{padding:8px 18px 16px;font-size:12px;color:var(--text-faint)}.app.zen .topbar,.app.zen .sidebar,.app.zen .folder-panel,.app.zen .file-tabs,.app.zen .main-header,.app.zen .url-bar,.app.zen .session-bar{display:none!important}.app.zen .main{margin:0;border:none;border-radius:0;box-shadow:none}.zen-exit{position:fixed;top:14px;right:14px;z-index:3000;display:flex;align-items:center;gap:7px;height:34px;padding:0 13px;border:1px solid var(--border);border-radius:9px;background:var(--content-bg);color:var(--text-dim);font-size:12.5px;font-weight:600;font-family:inherit;cursor:pointer;box-shadow:var(--shadow-md);opacity:.55;transition:opacity .15s,color .15s,border-color .15s}.zen-exit:hover{opacity:1;color:var(--accent-strong);border-color:var(--accent-ring)}.grid-wrap{display:flex;flex-direction:column;min-height:0;height:100%;flex:1}.arc-preview .grid-wrap{flex:1;min-height:0}.grid-bar{display:flex;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid var(--border-soft);flex-shrink:0}.grid-bar-spacer{flex:1}.grid-export{display:inline-flex;gap:6px;flex-shrink:0}.grid-viewtoggle{display:inline-flex;gap:4px;flex-shrink:0}.grid-viewtoggle .csv2-btn{padding:5px 8px}.grid-viewtoggle .csv2-btn.on{color:var(--accent-strong);border-color:var(--accent);background:var(--accent-soft)}.record-form{flex:1;min-height:0;overflow-y:auto;padding:12px 16px;display:flex;flex-direction:column;gap:2px}.record-field{display:flex;align-items:baseline;gap:14px;padding:9px 8px;border-radius:7px}.record-field:nth-child(odd){background:var(--row-hover)}.record-label{flex:0 0 34%;max-width:34%;font-weight:600;font-size:12.5px;color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.record-value{flex:1;min-width:0;font-size:13.5px;color:var(--text);white-space:pre-wrap;word-break:break-word;font-variant-numeric:tabular-nums}.grid-nav{flex-shrink:0;display:flex;align-items:center;justify-content:center;gap:6px;padding:6px 10px;border-top:1px solid var(--border-soft);background:var(--panel-bg, var(--content-bg))}.grid-nav-btn{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:26px;padding:0 7px;border:1px solid var(--border-soft);border-radius:7px;background:var(--content-bg);color:var(--text-dim);font-size:12px;cursor:pointer;transition:background .12s,color .12s,border-color .12s}.grid-nav-btn:hover:not(:disabled){color:var(--accent-strong);border-color:var(--accent);background:var(--accent-soft)}.grid-nav-btn:disabled{opacity:.4;cursor:default}.grid-nav-pos{display:inline-flex;align-items:center;gap:2px;font-size:12.5px;color:var(--text-dim);font-variant-numeric:tabular-nums}.grid-nav-input{width:5ch;text-align:center;padding:3px 4px;border:1px solid var(--border-soft);border-radius:6px;background:var(--content-bg);color:var(--text);font-family:inherit;font-size:12.5px;font-variant-numeric:tabular-nums}.grid-nav-total{white-space:nowrap}.row-current td{background:var(--accent-soft);box-shadow:inset 2px 0 0 var(--accent)}.sqlite-data{flex:1;min-height:0;display:flex;flex-direction:column}.sqlite-loadmore{flex-shrink:0;display:flex;align-items:center;gap:12px;padding:8px 12px;background:var(--accent-soft);border-bottom:1px solid var(--border-soft);font-size:12.5px;color:var(--text-dim)}.sqlite-loadmore-txt{flex:1;min-width:0}.sqlite-loadmore .csv2-btn{flex-shrink:0}.schema-pane{height:100%;overflow-y:auto;padding:14px 16px 24px;display:flex;flex-direction:column;gap:20px}.schema-section{display:flex;flex-direction:column;gap:8px}.schema-head{display:flex;align-items:center;gap:10px;font-weight:700;font-size:13px;color:var(--text)}.schema-count{font-size:11px;font-weight:600;color:var(--text-dim);background:var(--row-hover);padding:1px 8px;border-radius:10px}.schema-head .csv2-btn{margin-inline-start:auto}.schema-table th{text-align:left}.schema-type{color:var(--text-dim);font-family:ui-monospace,monospace;font-size:12px}.schema-key{margin-right:5px}.schema-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.schema-list li{font-size:13px;color:var(--text);display:flex;align-items:center;flex-wrap:wrap;gap:6px}.schema-idx-name{font-weight:600}.schema-tag{font-size:10.5px;font-weight:700;color:var(--accent-strong);background:var(--accent-soft);padding:1px 7px;border-radius:6px}.schema-ddl{margin:0;padding:12px 14px;background:var(--row-hover);border:1px solid var(--border-soft);border-radius:8px;overflow-x:auto;font-family:ui-monospace,monospace;font-size:12px;line-height:1.5;color:var(--text);white-space:pre-wrap;word-break:break-word}.grid-search{max-width:320px}.sheet-notice{white-space:nowrap}.grid-th{cursor:pointer;-webkit-user-select:none;user-select:none}.grid-th:hover{color:var(--accent-strong)}.grid-th-in{display:inline-flex;align-items:center;gap:5px}.grid-th .csv2-sort{font-size:9px;color:var(--accent)}.epub-viewer{position:relative;height:100%;min-height:0;display:flex;flex-direction:column}.epub-cover{position:absolute;top:0;right:0;bottom:0;left:0;z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;padding:32px;background:var(--content-bg);cursor:pointer}.epub-cover-img{max-width:min(340px,62%);max-height:62%;object-fit:contain;border-radius:6px;box-shadow:0 10px 40px #00000047}.epub-cover-meta{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center}.epub-cover-title{font-size:20px;font-weight:700;color:var(--text)}.epub-cover-author{font-size:14px;color:var(--text-dim)}.epub-cover-start{margin-top:10px;padding:9px 22px;border:none;border-radius:9px;background:var(--accent);color:#fff;font-family:inherit;font-size:14px;font-weight:600;cursor:pointer}.epub-cover-start:hover{filter:brightness(1.08)}.epub-bar{display:flex;align-items:center;gap:10px;padding:8px 14px;border-bottom:1px solid var(--border-soft);flex-shrink:0}.epub-title{font-size:13px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:50%}.epub-author{color:var(--text-faint);font-weight:400}.epub-bar-spacer{flex:1}.epub-font-btn{font-weight:600;min-width:34px;padding-left:8px;padding-right:8px}.epub-font-minus,.epub-font-plus{font-size:.8em;margin-left:1px}.epub-pos{font-size:12.5px;color:var(--text-dim);font-variant-numeric:tabular-nums;min-width:56px;text-align:center}.epub-readtime{color:var(--text-faint)}.epub-typo{display:flex;align-items:center;gap:8px;padding:7px 14px;border-bottom:1px solid var(--border-soft);background:var(--sidebar-bg);flex-shrink:0;flex-wrap:wrap}.epub-typo-label{font-size:12px;color:var(--text-dim);white-space:nowrap}.epub-typo-group{display:inline-flex;gap:4px}.epub-typo-opt{border:1px solid var(--border-soft);border-radius:7px;background:var(--content-bg);color:var(--text-dim);font-size:12.5px;padding:5px 10px;cursor:pointer;display:inline-flex;align-items:center}.epub-typo-opt:hover{color:var(--text)}.epub-typo-opt.on{border-color:var(--accent);color:var(--accent-strong);background:var(--accent-soft)}.epub-typo-sep{width:1px;align-self:stretch;margin:2px 4px;background:var(--border-soft)}.epub-typo-spacer{flex:1}.epub-typo-btn{font-weight:600;min-width:34px}.epub-font-select{max-width:220px;font-size:12.5px;color:var(--text);background:var(--content-bg);border:1px solid var(--border-soft);border-radius:7px;padding:5px 8px;cursor:pointer}.epub-font-select:focus{outline:none;border-color:var(--accent)}.epub-progress{flex-shrink:0;height:5px;background:var(--border)}.epub-progress-fill{height:100%;background:var(--accent);border-radius:0 3px 3px 0;transition:width .15s ease}.epub-body{flex:1;min-height:0;display:flex}.epub-toc{flex-shrink:0;overflow-y:auto;border-right:1px solid var(--border-soft);background:var(--sidebar-bg);padding:6px}.epub-toc-row{display:flex;align-items:center;gap:6px;width:100%;text-align:left;padding:7px 10px;border:none;border-radius:7px;background:transparent;color:var(--text-dim);font-family:inherit;font-size:12.5px;line-height:1.35;cursor:pointer}.epub-toc-title{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.epub-toc-check{flex-shrink:0;color:var(--accent)}.epub-toc-row.read:not(.active){color:var(--text-faint)}.epub-toc-row:hover{background:var(--row-hover);color:var(--text)}.epub-toc-row.active{background:var(--accent-soft);color:var(--accent-strong);font-weight:600}.epub-search{display:flex;align-items:center;gap:8px;padding:7px 14px;border-bottom:1px solid var(--border-soft);background:var(--sidebar-bg);flex-shrink:0}.epub-search-ico{color:var(--text-faint);flex-shrink:0}.epub-search-input{flex:1;min-width:0;border:1px solid var(--border-soft);border-radius:7px;background:var(--content-bg);color:var(--text);font-family:inherit;font-size:13px;padding:6px 10px}.epub-search-input:focus{outline:none;border-color:var(--accent)}.epub-search-status{font-size:12px;color:var(--text-dim);font-variant-numeric:tabular-nums;white-space:nowrap}.tts-bar{display:flex;align-items:center;gap:6px;padding:6px 14px;border-bottom:1px solid var(--border-soft);background:var(--sidebar-bg);flex-shrink:0;flex-wrap:wrap}.tts-play{min-width:34px;display:inline-flex;align-items:center;justify-content:center}.tts-sep{width:1px;align-self:stretch;margin:2px 4px;background:var(--border-soft)}.tts-spacer{flex:1}.tts-label{font-size:12px;color:var(--text-dim);white-space:nowrap}.tts-status{font-size:12.5px;color:var(--text-dim)}.tts-rate{font-size:12.5px;color:var(--text);font-variant-numeric:tabular-nums;min-width:34px;text-align:center}.tts-voice{max-width:220px;font-family:inherit;font-size:12.5px;color:var(--text);background:var(--content-bg);border:1px solid var(--border-soft);border-radius:7px;padding:4px 8px}.tts-voice:focus{outline:none;border-color:var(--accent)}.bm-panel{display:flex;flex-direction:column;border-bottom:1px solid var(--border-soft);background:var(--sidebar-bg);flex-shrink:0}.bm-bar{display:flex;align-items:center;gap:8px;padding:6px 14px}.bm-add{display:inline-flex;align-items:center;gap:5px}.bm-spacer{flex:1}.bm-count{font-size:12px;color:var(--text-dim);font-variant-numeric:tabular-nums}.bm-empty{padding:10px 14px 12px;font-size:12.5px;color:var(--text-dim)}.bm-list{max-height:220px;overflow-y:auto;padding:0 8px 8px;display:flex;flex-direction:column;gap:2px}.bm-row{display:flex;align-items:center;gap:4px;border-radius:7px}.bm-row:hover{background:var(--row-hover)}.bm-jump{flex:1;min-width:0;display:flex;align-items:center;gap:7px;text-align:left;border:none;background:transparent;color:var(--text);font-family:inherit;font-size:12.5px;padding:7px 8px;cursor:pointer}.bm-jump svg{flex-shrink:0;color:var(--accent-strong)}.bm-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bm-edit{flex:1;min-width:0;border:1px solid var(--accent);border-radius:6px;background:var(--content-bg);color:var(--text);font-family:inherit;font-size:12.5px;padding:5px 8px}.bm-edit:focus{outline:none}.bm-ic{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--text-faint);border-radius:6px;padding:5px;cursor:pointer}.bm-ic:hover{background:var(--row-hover);color:var(--text)}.epub-content{position:relative;flex:1;min-width:0;min-height:0;background:#fff}.epub-results{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;overflow-y:auto;padding:8px;background:var(--content-bg);display:flex;flex-direction:column;gap:4px}.epub-results-empty{padding:20px 12px;color:var(--text-dim);font-size:13px;text-align:center}.epub-result{display:block;width:100%;text-align:left;border:none;border-radius:8px;background:transparent;padding:9px 11px;cursor:pointer;font-family:inherit}.epub-result:hover{background:var(--row-hover)}.epub-result-head{display:flex;align-items:center;gap:8px;margin-bottom:3px}.epub-result-title{flex:1;min-width:0;font-size:12.5px;font-weight:600;color:var(--accent-strong);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.epub-result-count{flex-shrink:0;font-size:11px;font-variant-numeric:tabular-nums;color:var(--text-dim);background:var(--accent-soft);border-radius:999px;padding:1px 8px}.epub-result-snip{display:block;font-size:12.5px;line-height:1.5;color:var(--text-dim)}.epub-result-snip mark{background:#ffe066;color:#1c2238;border-radius:2px}.epub-page{width:100%;height:100%;border:none;background:#fff}[data-theme=dark] .epub-content,[data-theme=dark] .epub-page{background:#14161b}.mobile-drawer{position:fixed;top:62px;left:0;right:0;bottom:0;z-index:3000;display:flex}.mobile-drawer-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0a0e1980;animation:mdrawer-fade .15s ease}.mobile-drawer-panel{position:relative;margin-inline-start:auto;width:min(320px,86vw);height:100%;display:flex;flex-direction:column;background:var(--panel-bg);border-inline-start:1px solid var(--border);box-shadow:-8px 0 28px #0a0e1947;padding-bottom:env(safe-area-inset-bottom);animation:mdrawer-slide .2s ease}[dir=rtl] .mobile-drawer-panel{box-shadow:8px 0 28px #0a0e1947}@keyframes mdrawer-fade{0%{opacity:0}}@keyframes mdrawer-slide{0%{transform:translate(100%)}}[dir=rtl] .mobile-drawer-panel{animation-name:mdrawer-slide-rtl}@keyframes mdrawer-slide-rtl{0%{transform:translate(-100%)}}.mobile-drawer-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;font-weight:700;font-size:16px;color:var(--text);border-bottom:1px solid var(--border)}.mobile-drawer-close{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:none;background:transparent;color:var(--text-dim);border-radius:10px;cursor:pointer}.mobile-drawer-close:active{background:var(--accent-soft)}.mobile-drawer-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:2px;padding:8px;-webkit-overflow-scrolling:touch}.mobile-drawer-item{display:flex;align-items:center;gap:4px;width:100%;min-height:52px;padding:2px 6px;color:var(--text);border-radius:12px}.mobile-drawer-item.active{background:var(--accent-soft)}.mobile-drawer-item.dragging{opacity:.4}.mobile-drawer-grip{display:inline-flex;align-items:center;justify-content:center;width:26px;flex-shrink:0;color:var(--text-faint);cursor:grab;touch-action:none}.mobile-drawer-grip:active{cursor:grabbing}.mobile-drawer-main{display:flex;align-items:center;gap:14px;flex:1;min-width:0;padding:8px 6px;border:none;background:transparent;color:inherit;font-size:15px;text-align:start;border-radius:10px;cursor:pointer}.mobile-drawer-main:active{background:var(--accent-soft)}.mobile-drawer-icon{display:inline-flex;flex-shrink:0;color:var(--accent)}.mobile-drawer-item.active .mobile-drawer-icon{color:var(--accent-strong)}.mobile-drawer-label{flex:1;min-width:0}.mobile-drawer-pin{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;flex-shrink:0;border:none;background:transparent;color:var(--text-faint);border-radius:9px;cursor:pointer}.mobile-drawer-pin:active{background:var(--accent-soft)}.mobile-drawer-pin.on{color:var(--accent)}.mobile-drawer-hint{padding:6px 16px 10px;font-size:12.5px;color:var(--text-dim);border-bottom:1px solid var(--border)}.mobile-drawer-group{display:flex;flex-direction:column;gap:2px}.mobile-drawer-sep{height:1px;background:var(--border);margin:8px 6px}.topbar-groups .tb-btn:not(.mobile-keep){display:none}.topbar-right{display:flex;align-items:center;gap:10px;min-width:0}.pinned-zone{display:flex;align-items:center;gap:6px;min-width:8px;border-radius:var(--radius-sm)}.pinned-zone.drop-target{min-width:44px;outline:2px dashed rgba(255,255,255,.35);outline-offset:2px}.topbar.drop-active .pinned-zone{outline-color:#7fb0ff}.pin-btn{cursor:grab;touch-action:none}.pin-btn:active{cursor:grabbing}.pin-btn.dragging{opacity:.35}.topbar-menu-btn{flex-shrink:0}.lang-abbr{font-weight:700;font-size:13px;letter-spacing:.03em}.pin-ghost{position:fixed;z-index:4000;transform:translate(-50%,-50%);padding:6px 12px;border-radius:999px;background:var(--accent);color:#fff;font-size:13px;font-weight:600;white-space:nowrap;box-shadow:0 6px 20px #0a0e1959;pointer-events:none}.mobile-drawer.dragging .mobile-drawer-backdrop{pointer-events:none;background:transparent}.mobile-drawer.dragging .mobile-drawer-panel{pointer-events:none}.mobile-only{display:none}@media(max-width:720px){.topbar-groups .tb-btn:not(.mobile-keep){display:none}.mobile-only{display:inline-flex}.mobile-hide{display:none!important}.topbar{height:52px;flex-wrap:nowrap;gap:8px;padding:0 10px;padding-top:env(safe-area-inset-top)}.brand{flex-shrink:0}.brand-name{font-size:17px}.brand-tagline,.brand-divider{display:none}.topbar-right{flex:1;min-width:0;gap:6px}.topbar-groups{flex:1;min-width:0;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;gap:4px;justify-content:flex-start;-webkit-overflow-scrolling:touch;scrollbar-width:none}.pinned-zone,.topbar-menu-btn{flex-shrink:0}.topbar-groups::-webkit-scrollbar{display:none}.tb-group{flex-shrink:0;gap:4px}.topbar .tb-btn{flex-shrink:0;height:36px}.topbar .tb-btn.icon-only{min-width:36px}.topbar .open-btn{min-width:36px;padding:0;justify-content:center}.open-btn-text{display:none}.topbar-menu-btn{flex-shrink:0;height:36px;min-width:36px;margin-inline-start:6px;padding-inline-start:6px;border-inline-start:1px solid var(--border);border-radius:0}.body{flex-direction:column}.sidebar{width:auto!important;max-height:22vh;margin:8px 8px 0}.folder-panel{width:auto!important;max-height:30vh}.main{margin:8px;margin-bottom:calc(8px + env(safe-area-inset-bottom))}.resize-handle{display:none}.main-header{padding:8px 12px;gap:10px;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.main-header::-webkit-scrollbar{display:none}.main-header>*{flex-shrink:0}.main-head-text{flex-shrink:0;min-width:120px;max-width:60vw}.main-title-row{flex-wrap:nowrap;min-width:0}.main-title{flex:1;min-width:0}.csv2-toolbar,.sheet-bar,.pdf-bar,.arc-bar,.grid-bar{flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none}.csv2-toolbar::-webkit-scrollbar,.sheet-bar::-webkit-scrollbar,.pdf-bar::-webkit-scrollbar,.arc-bar::-webkit-scrollbar,.grid-bar::-webkit-scrollbar{display:none}.csv2-toolbar>*,.sheet-bar>*,.pdf-bar>*,.arc-bar>*,.grid-bar>*{flex-shrink:0}.csv2-search,.grid-search{width:160px;max-width:160px}.csv2-toolbar>.vrow-spacer,.sheet-bar-spacer,.grid-bar-spacer{display:none}.recent-pop,.csv2-colsmenu,.cv-pop{position:fixed;left:8px;right:8px;top:auto;bottom:calc(8px + env(safe-area-inset-bottom));width:auto;max-height:66vh;overflow-y:auto;z-index:200}.lang-menu{position:fixed;top:calc(58px + env(safe-area-inset-top));bottom:auto;right:8px;left:auto;width:min(260px,calc(100vw - 16px));z-index:200}[dir=rtl] .lang-menu{right:auto;left:8px}.arc-body{flex-direction:column}.arc-tree{width:auto!important;max-height:26vh;border-right:0;border-bottom:1px solid var(--border)}.mobile-drawer{top:calc(52px + env(safe-area-inset-top))}.cmd-backdrop{align-items:flex-end;padding:0}.cmd-panel{width:100%;max-width:none;max-height:82vh;border-radius:16px 16px 0 0;padding-bottom:env(safe-area-inset-bottom)}}[dir=rtl] .recent-pop,[dir=rtl] .lang-menu{right:auto;left:12px}[dir=rtl] .arc-file.active,[dir=rtl] .row-current td{box-shadow:inset -2px 0 0 var(--accent)}[dir=rtl] .arc-tree{border-right:1px solid var(--border);border-left:0}[dir=rtl] .sql-editor,[dir=rtl] .sql-input,[dir=rtl] .sql-hl,[dir=rtl] .sql-help-sql,[dir=rtl] .sql-history-item,[dir=rtl] .schema-ddl,[dir=rtl] .cd-text,[dir=rtl] .cd-json{direction:ltr;text-align:left}.kbd{direction:ltr;position:fixed;left:0;right:0;bottom:0;z-index:5000;background:var(--panel-bg);border-top:1px solid var(--border);box-shadow:0 -6px 20px #0a0e1938;padding:6px 6px calc(6px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:5px}.kbd-row{display:flex;gap:4px;justify-content:center}.kbd-harakat{display:flex;gap:4px;justify-content:center;padding-bottom:3px;margin-bottom:2px;border-bottom:1px dashed var(--border)}.kbd-key{flex:1 1 0;min-width:0;height:38px;border:none;border-radius:7px;background:var(--content-bg);color:var(--text);font-size:17px;font-family:inherit;cursor:pointer;box-shadow:0 1px 2px #0000001f;transition:background .1s}.kbd-key:active{background:var(--accent-soft)}.kbd-haraka{background:var(--accent-soft);color:var(--accent-strong);max-width:50px;height:38px;padding:0;display:flex;align-items:flex-end;justify-content:center;overflow:hidden}.kbd-haraka.haraka-below{align-items:flex-start}.haraka-glyph{font-family:IBM Plex Sans Arabic,Traditional Arabic,serif;font-size:24px;font-weight:700;color:var(--accent-strong);line-height:1;display:inline-block}.kbd-wide{max-width:60px;font-size:19px}.kbd-back{background:#f6dcdc;color:#a33}.kbd-enter{background:#d5e7f7;color:#1b5a8a}.kbd-space{flex:5 1 0;background:var(--panel-bg);border:1px solid var(--border);font-size:13px;color:var(--text-dim)}.kbd-mode{max-width:52px;background:var(--accent-soft);color:var(--accent-strong);font-size:12px;font-weight:700}.kbd-enter-lg{max-width:96px;flex:2.4 1 0}.kbd-hide{max-width:48px;background:var(--accent-soft);color:var(--accent-strong);display:flex;align-items:center;justify-content:center}.kbd-hide-ic{display:block}.kbd-hk{max-width:52px;background:var(--panel-bg);border:1px solid var(--border);display:flex;align-items:flex-end;justify-content:center;padding:0 0 4px;overflow:hidden}.kbd-hk.on{background:var(--accent-soft)}.kbd-hk.on .haraka-glyph{color:var(--accent-strong)}.kbd-hk .haraka-glyph{color:var(--text-faint)}.kbd-multi{position:relative}.kbd-multi-dot{position:absolute;top:4px;inset-inline-end:5px;width:5px;height:5px;border-radius:50%;background:var(--accent);opacity:.6}.kbd-popup{position:fixed;z-index:5100;display:flex;gap:4px;padding:4px;background:var(--content-bg);border:1px solid var(--accent);border-radius:10px;box-shadow:0 6px 18px #0a0e1947}.kbd-popup-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:5099;background:transparent}.kbd-popup-key{flex:1 1 0;min-width:40px;height:44px;display:grid;place-items:center;font-size:22px;color:var(--text);background:var(--content-bg);border:none;border-radius:7px;cursor:pointer;-webkit-user-select:none;user-select:none}.kbd-popup-key:hover,.kbd-popup-key:active{background:var(--accent);color:#fff}@media(max-width:720px){.kbd-key{height:40px;font-size:18px}}.splash{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;display:flex;align-items:center;justify-content:center;background:#0c2350;cursor:pointer;opacity:1;transition:opacity .45s ease}.splash.leaving{opacity:0;pointer-events:none}.splash-video{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none}.splash-skip{position:absolute;inset-block-end:calc(18px + env(safe-area-inset-bottom));inset-inline-end:18px;padding:8px 16px;border-radius:999px;border:1px solid rgba(255,255,255,.35);background:#0a0e1973;color:#fff;font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.splash-skip:hover{background:#0a0e19a6}.splash-sound{position:absolute;inset-block-end:calc(18px + env(safe-area-inset-bottom));inset-inline-start:18px;display:flex;align-items:center;gap:7px;padding:8px 16px;border-radius:999px;border:1px solid rgba(255,255,255,.4);background:#0a0e1973;color:#fff;font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.splash-sound:hover{background:#0a0e19a6}.dict-modal{max-width:520px}.dict-lang{align-self:stretch;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px;color:var(--text-dim)}.dict-lang select{flex:1;max-width:220px;border:1px solid var(--border-soft);border-radius:8px;background:var(--content-bg);color:var(--text);font-family:inherit;font-size:13.5px;padding:7px 10px}.dict-lang select:disabled{opacity:.55}.dict-check{align-self:stretch;display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-dim);cursor:pointer}.dict-check input{accent-color:var(--accent);width:16px;height:16px;cursor:pointer}.rec-record-big.dict-live{animation:dict-pulse 1.4s ease-out infinite}@keyframes dict-pulse{0%{box-shadow:0 0 #ef44448c}to{box-shadow:0 0 0 22px #ef444400}}.dict-text{align-self:stretch;width:100%;min-height:170px;max-height:42vh;resize:vertical;border:1px solid var(--border-soft);border-radius:10px;background:var(--content-bg);color:var(--text);font-family:inherit;font-size:15px;line-height:1.55;padding:10px 12px;box-sizing:border-box}.dict-text:focus{outline:none;border-color:var(--accent)}.dict-help{align-self:stretch;margin-top:-6px;font-size:12px;color:var(--text-dim)}.dict-help summary{cursor:pointer;color:var(--accent)}.dict-help p{margin:6px 0 0;line-height:1.5}.dict-interim{white-space:pre-wrap;align-self:stretch;margin-top:-6px;padding:0 4px;font-size:14px;font-style:italic;color:var(--text-faint)}.dict-tools{align-self:stretch;display:flex;flex-wrap:wrap;gap:8px}.dict-tool{padding:6px 12px;font-size:12.5px}.dict-tool:disabled{opacity:.45;cursor:default}.dict-hint{align-self:stretch;margin:-6px 0 0;font-size:11.5px;color:var(--text-faint)}.dict-note{align-self:stretch;margin:0;font-size:11.5px;line-height:1.45;color:var(--text-faint);text-align:center}@media(max-width:720px){.dict-modal{max-width:none}.dict-text{min-height:140px}}
