:root{--ink:#14221f;--muted:#5b6b66;--bg:#eef3ef;--bg-2:#e2ebe4;--panel:#f7faf7;--line:#c9d6ce;--teal:#0f766e;--teal-deep:#115e59;--amber:#b45309;--danger:#b91c1c;--ok:#166534;--shadow:0 18px 50px #14221f14;--radius:14px;--font:"Vazirmatn", Tahoma, sans-serif;--sans:"Vazirmatn", Tahoma, sans-serif;--sidebar-w:270px}*{box-sizing:border-box}html{scroll-behavior:smooth;direction:rtl}html,body,#root{min-height:100%}body{color:var(--ink);font-family:var(--sans);background:radial-gradient(1200px 600px at 90% -10%, #d7ebe3 0%, transparent 55%), radial-gradient(900px 500px at 0% 0%, #f3e7d4 0%, transparent 50%), linear-gradient(180deg, #f4f7f4 0%, var(--bg) 40%, #e7efe9 100%);-webkit-font-smoothing:antialiased;margin:0}a{color:var(--teal-deep);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit}.boot{text-align:center;color:var(--muted);padding:3rem}.nowrap{white-space:nowrap}.mobile-bar{border-bottom:1px solid var(--line);z-index:30;background:#f7faf7f2;align-items:center;gap:.75rem;padding:.75rem 1rem;display:none;position:sticky;top:0}.mobile-brand{color:var(--teal-deep);font-family:var(--font);align-items:center;gap:.45rem;display:flex}.menu-btn{width:38px;height:38px}.nav-backdrop{z-index:40;background:#14221f73;border:none;display:none;position:fixed;inset:0}.shell{grid-template-columns:var(--sidebar-w) 1fr;min-height:100vh;display:grid}.sidebar{border-left:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:50;background:#f7faf7eb;flex-direction:column;gap:1.5rem;height:100vh;padding:1.4rem 1rem;display:flex;position:sticky;top:0}.brand{color:var(--teal-deep);align-items:center;gap:.75rem;padding:.4rem .6rem;display:flex}.brand strong{font-family:var(--font);font-size:1.35rem;font-weight:800;display:block}.brand span{color:var(--muted);font-size:.75rem;line-height:1.5;display:block}.sidebar nav{flex-direction:column;flex:1;gap:.25rem;display:flex}.nav{color:var(--ink);border-radius:10px;align-items:center;gap:.65rem;padding:.7rem .85rem;text-decoration:none;display:flex}.nav:hover{background:var(--bg-2);text-decoration:none}.nav.active{color:#f5fffb;background:linear-gradient(225deg,#0f766e,#14756c);box-shadow:0 8px 20px #0f766e40}.nav-group{gap:.15rem;display:grid}.nav-parent{cursor:pointer;text-align:right;background:0 0;border:none;width:100%}.nav-parent span{flex:1}.nav-chevron{opacity:.7;margin-right:auto;transition:transform .2s}.nav-chevron.rotated{transform:rotate(180deg)}.nav-sub{border-right:2px solid #d5e5df;gap:.15rem;margin-right:.55rem;padding-right:.55rem;display:grid}.nav.sub{color:var(--muted);padding:.55rem .75rem;font-size:.9rem}.nav.sub.active{color:var(--teal-deep);box-shadow:none;background:#d9efe9}.nav-group.active-group>.nav-parent:not(.active){background:var(--bg-2)}.sidebar-foot{gap:.6rem;display:grid}.user-chip{border:1px solid var(--line);background:#fff;border-radius:10px;padding:.7rem .8rem}.user-chip span{word-break:break-all;font-size:.85rem;display:block}.user-chip small{color:var(--muted)}.ghost{color:var(--muted);cursor:pointer;background:0 0;border:none;align-items:center;gap:.4rem;padding:.4rem .5rem;display:inline-flex}.ghost:hover{color:var(--danger)}.main{min-width:0;padding:1.6rem clamp(1rem,3vw,1.8rem) 2.5rem}.page{gap:1.2rem;width:100%;max-width:1400px;display:grid}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;display:flex}.page-head h1{font-family:var(--font);margin:.15rem 0;font-size:clamp(1.55rem,3.5vw,2.2rem);font-weight:800;line-height:1.35}.page-head p{color:var(--muted);max-width:46rem;margin:0;line-height:1.7}.page-actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.check-inline{color:var(--ink);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.4rem;font-size:.9rem;display:inline-flex}.check-inline input{width:1rem;height:1rem;accent-color:var(--teal)}.back{color:var(--muted);align-items:center;gap:.3rem;font-size:.85rem;display:inline-flex}.btn{background:linear-gradient(225deg, var(--teal), #0b5f59);color:#f4fffb;cursor:pointer;white-space:nowrap;border:none;border-radius:999px;justify-content:center;align-items:center;gap:.45rem;padding:.75rem 1.15rem;font-weight:700;display:inline-flex;box-shadow:0 10px 24px #0f766e47}.btn:disabled{opacity:.6;cursor:wait}.btn:hover{filter:brightness(1.05);color:#fff;text-decoration:none}.btn-secondary{color:var(--teal-deep);border:1px solid var(--line);box-shadow:none;background:#fff}.btn-secondary:hover{color:var(--teal-deep);filter:none;background:#eef8f5}.manage-block{gap:1.1rem;padding-bottom:1rem;display:grid}.inline-add{border:1px dashed var(--line);background:#fbfdfb;border-radius:12px;gap:.85rem;margin:0 1rem;padding:1rem;display:grid}.inline-add h3{font-size:.95rem;font-family:var(--font);margin:0;font-weight:700}.inline-add .btn{justify-self:start}.modal-root{z-index:100;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal-backdrop{cursor:pointer;background:#14221f7a;border:none;position:absolute;inset:0}.modal-card{z-index:1;border:1px solid var(--line);background:#fff;border-radius:16px;grid-template-rows:auto minmax(0,1fr) auto;width:min(100%,460px);max-height:min(90vh,720px);display:grid;position:relative;overflow:hidden;box-shadow:0 28px 70px #14221f38}.modal-head{border-bottom:1px solid var(--line);flex-shrink:0;justify-content:space-between;align-items:center;gap:.75rem;padding:1rem 1.1rem;display:flex}.modal-head h3{font-family:var(--font);margin:0;font-size:1.1rem;font-weight:800}.modal-body{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;align-content:start;gap:.85rem;min-height:0;padding:1.1rem;display:grid;overflow:hidden auto}.modal-fields{gap:.85rem;display:grid}.modal-foot{border-top:1px solid var(--line);background:#f8fbf9;flex-wrap:wrap;flex-shrink:0;justify-content:flex-start;gap:.6rem;padding:.9rem 1.1rem;display:flex}.panel-head .btn{flex-shrink:0}.panel-head>div h2{margin:0}.panel-head>div .muted{margin-top:.2rem;font-size:.8rem;display:block}.upload-plan-modal{width:min(100%,520px);max-height:min(92dvh,720px)}@media (height<=700px){.modal-root{align-items:start;padding:.5rem}.upload-plan-modal,.modal-card{max-height:calc(100dvh - 1rem)}}.file-content-modal{z-index:2;width:min(100%,720px);max-height:min(92vh,840px)}.modal-root.file-content-root{z-index:120}.file-content-head{gap:.25rem;min-width:0;display:grid}.file-content-head h3{margin:0}.file-content-meta{color:var(--muted);flex-wrap:wrap;gap:.35rem .85rem;margin:0;font-size:.82rem;display:flex}.file-content-name{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-weight:700;overflow:hidden}.file-content-body{flex-direction:column;min-height:0;padding:0;display:flex;overflow:hidden}.file-content-body .muted,.file-content-body .alert{margin:1.1rem}.file-content-text{min-height:220px;max-height:min(68vh,620px);font-family:var(--font);white-space:pre-wrap;word-break:break-word;color:#1a2a26;background:linear-gradient(#fbfdfc 0%,#f4f8f6 100%);border:none;border-radius:0;flex:1;margin:0;padding:1.25rem 1.35rem 1.5rem;font-size:1.02rem;font-weight:500;line-height:2;overflow:auto}.spelling-errors-modal{z-index:2;width:min(100%,720px);max-height:min(92vh,840px)}.spelling-errors-body{background:linear-gradient(#fbfdfc 0%,#f4f8f6 100%);flex-direction:column;min-height:0;max-height:min(68vh,620px);padding:0;display:flex;overflow:auto}.spelling-errors-body .muted,.spelling-errors-body .alert{margin:1.1rem}.spelling-errors-empty{margin:0;padding:1.1rem 1.15rem}.spelling-errors-panel{flex:1;gap:.75rem;min-height:0;padding:.85rem 1rem 1.15rem;display:grid}.spelling-errors-panel-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.35rem .85rem;display:flex}.spelling-errors-panel-head strong{font-size:.95rem}.spelling-errors-split{grid-template-columns:minmax(140px,200px) minmax(0,1fr);align-items:stretch;gap:.85rem;min-height:260px;display:grid}.spelling-errors-toc{align-content:start;gap:.4rem;max-height:min(52vh,480px);margin:0;padding:0;list-style:none;display:grid;overflow:auto}.spelling-errors-toc-btn{appearance:none;border:1px solid var(--line);width:100%;font:inherit;color:inherit;cursor:pointer;text-align:right;background:#fff;border-radius:10px;justify-content:space-between;align-items:center;gap:.5rem;padding:.65rem .8rem;transition:border-color .15s,background .15s;display:flex}.spelling-errors-toc-btn:hover{background:#fff7f7;border-color:#fca5a5}.spelling-errors-toc-btn.is-active{background:#fef2f2;border-color:#f87171}.spelling-errors-toc-label{color:#991b1b;font-weight:700}.spelling-errors-toc-meta{white-space:nowrap;font-size:.78rem}.spelling-errors-selected{background:#fff;border:1px solid #fecaca;border-radius:12px;min-height:100%;max-height:min(52vh,480px);padding:.85rem 1rem;overflow:auto}.spelling-errors-selected-head{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.55rem;display:flex}.spelling-errors-selected-head strong{color:#991b1b;font-size:.9rem}.spelling-errors-hint{margin:0;font-size:.84rem}.spelling-error-detail{gap:.25rem;display:grid}.spelling-error-snippet{color:#1a2a26;word-break:break-word;margin:0;font-size:1.02rem;font-weight:500;line-height:2}.spelling-error-word{color:#b91c1c;background:#fee2e2;border-radius:4px;padding:.05em .2em;font-weight:700;text-decoration:none}.spelling-error-hint{color:var(--muted);margin:.35rem 0 0;font-size:.82rem;line-height:1.7}.spelling-error-fix{color:#475569}.spelling-error-from{color:#b91c1c;font-weight:600}.spelling-error-to{color:#0f766e;font-weight:600}.spelling-error-why{gap:.55rem;margin-top:.75rem;display:grid}.spelling-error-actions{flex-wrap:wrap;gap:.45rem;margin-top:.75rem;display:flex}.spelling-error-why-btn{gap:.35rem;width:fit-content;padding:.4rem .75rem;font-size:.84rem}.spelling-error-why-body{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;margin-top:.55rem;padding:.7rem .85rem}.spelling-error-why-text{color:#334155;white-space:pre-wrap;margin:0;font-size:.9rem;line-height:1.85}.spelling-error-ignore-ok{color:#0f766e;margin:.55rem 0 0;font-size:.84rem;line-height:1.7}.live-spelling-errors{border:none;flex-direction:column;min-height:0;margin:0;padding:0;display:flex}.processing-live-modal.is-completed{width:min(100%,820px)}.processing-live-body{max-height:min(72vh,720px);overflow:auto}@media (width<=640px){.spelling-errors-split{grid-template-columns:1fr}.spelling-errors-toc{grid-auto-columns:max-content;grid-auto-flow:column;max-height:none;overflow-x:auto}}.file-name-btn{appearance:none;color:var(--accent,#0f766e);font:inherit;cursor:pointer;text-align:right;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:none;max-width:280px;margin:0;padding:0;font-weight:700;overflow:hidden}.file-name-btn:hover{color:#0d9488;text-decoration:underline}.processing-live-modal{width:min(100%,560px)}.live-activity{text-align:center;justify-items:center;gap:.75rem;padding:.4rem .2rem .2rem;display:grid}.live-activity-text{color:var(--ink);margin:0;font-weight:700;line-height:1.8}.live-activity-stats{margin:0}.live-chunks{gap:.45rem;max-height:280px;padding:.15rem;display:grid;overflow:auto}.live-chunk{border:1px solid var(--line);background:#f7fbf9;border-radius:10px;grid-template-columns:1fr auto auto;align-items:center;gap:.6rem;padding:.55rem .75rem;font-size:.9rem;display:grid}.live-chunk-processing{background:#e8f7f3;border-color:#99d5cb}.live-chunk-completed{background:#f0faf3;border-color:#b7dfc4}.live-chunk-failed{background:#fff5f5;border-color:#f0c0c0}.upload-progress{text-align:center;justify-items:center;gap:.85rem;padding:1.2rem .5rem .4rem;display:grid}.upload-progress-label{color:var(--muted);margin:0;line-height:1.7}.progress-track{background:#e5eee9;border-radius:999px;width:100%;height:12px;overflow:hidden}.progress-fill{border-radius:inherit;background:linear-gradient(90deg,#0f766e,#14b8a6);height:100%;transition:width .25s}.progress-pct{font-family:var(--font);font-size:1.2rem}.plan-summary{border:1px solid var(--line);background:#f7fbf9;border-radius:12px;gap:.75rem;padding:.85rem 1rem;display:grid}.plan-summary span{color:var(--muted);font-size:.8rem;display:block}.plan-summary strong{margin-top:.2rem;display:block}.plan-fields{gap:.95rem;display:grid}.plan-fields.is-readonly .plan-value{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:10px;margin-top:.35rem;padding:.7rem .8rem;font-size:.95rem;display:block}.plan-fields small{margin-top:.35rem;display:block}.btn-danger{background:linear-gradient(225deg,#b91c1c,#991b1b);box-shadow:0 10px 24px #b91c1c47}.btn-danger:hover{filter:brightness(1.05);color:#fff}.delete-confirm-modal{width:min(100%,420px)}.delete-confirm-text{margin:0;font-size:1.05rem;font-weight:700;line-height:1.7}.delete-confirm-file{color:var(--muted);margin:0;line-height:1.8}.token-cell{align-items:center;gap:.4rem;max-width:280px;display:flex}.token-cell code{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:.8rem;overflow:hidden}.token-input-wrap{grid-template-columns:1fr 36px;align-items:center;gap:.4rem;display:grid}.token-input-wrap input{width:100%}.token-toggle{width:36px;height:40px}.stat-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.85rem;display:grid}.stat-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow);align-items:center;gap:.75rem;min-width:0;padding:1rem;display:flex}.stat-card span{color:var(--muted);font-size:.78rem;display:block}.stat-card strong{font-size:clamp(1.05rem,2.5vw,1.25rem);font-family:var(--font);word-break:break-word;font-weight:800}.stat-icon{width:36px;height:36px;color:var(--teal-deep);background:#d9efe9;border-radius:10px;flex:none;place-items:center;display:grid}.panel{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);background:#f7faf7eb;overflow:hidden}.panel-head{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.95rem 1.1rem;display:flex}.panel-head h2,.chart-panel h2{font-size:1rem;font-family:var(--font);align-items:center;gap:.45rem;margin:0;font-weight:700;display:inline-flex}.chart-panel{padding:1rem 1.1rem .5rem}.chart-panel.wide{grid-column:1/-1}.charts{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.table-wrap{-webkit-overflow-scrolling:touch;max-width:100%;overflow:auto}table{border-collapse:collapse;width:100%;min-width:720px;font-size:.88rem}th,td{text-align:right;border-bottom:1px solid var(--line);vertical-align:top;padding:.75rem .9rem}th{color:var(--muted);white-space:nowrap;background:#eef5f1;font-size:.78rem;font-weight:700;position:sticky;top:0}.empty,.muted{color:var(--muted)}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem}.error-cell{color:var(--danger);word-break:break-word;max-width:240px}.error-cell-wide{white-space:normal;max-width:420px}.row-error td{background:#fff7f7}.badge{color:var(--ink);white-space:nowrap;background:#e5ebe7;border-radius:999px;align-items:center;padding:.25rem .6rem;font-size:.75rem;font-weight:700;display:inline-flex}.status-completed,.status-ok{color:var(--ok);background:#dcfce7}.status-failed{color:var(--danger);background:#fee2e2}.status-pending,.status-uploaded{color:#92400e;background:#fef3c7}.status-processing,.status-active,.status-analyzing,.status-splitting,.status-merging,.status-queued{color:#0f766e;background:#ccfbf1}.status-cancelled{color:#475569;background:#f1f5f9}.icon-btn.cancel-btn{color:#b45309;background:#fffbeb;border-color:#fcd34d}.icon-btn.cancel-btn:hover{color:#92400e;background:#fef3c7;border-color:#f59e0b}.row-actions{white-space:nowrap;gap:.25rem;display:flex}.icon-btn{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:8px;place-items:center;width:30px;height:30px;display:inline-grid}.icon-btn:hover{border-color:var(--teal);color:var(--teal)}.icon-btn.danger:hover{border-color:var(--danger);color:var(--danger)}.icon-btn.download-original{color:#475569;background:#f8fafc;border-color:#cbd5e1}.icon-btn.download-original:hover{color:#1e293b;background:#e2e8f0;border-color:#64748b}.icon-btn.download-corrected{color:var(--ok);background:#f0fdf4;border-color:#86efac}.icon-btn.download-corrected:hover{color:#14532d;background:#dcfce7;border-color:#4ade80}.alert,.ok{border:1px solid;border-radius:10px;padding:.8rem 1rem;line-height:1.7}.alert{color:var(--danger);background:#fef2f2;border-color:#fecaca}.ok{color:var(--ok);background:#f0fdf4;border-color:#bbf7d0}.meta-pills{flex-wrap:wrap;gap:.5rem;display:flex}.meta-pills span{border:1px solid var(--line);background:#fff;border-radius:999px;padding:.4rem .7rem;font-size:.85rem}.settings-form{gap:1rem;display:grid}.form-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.9rem;padding:1rem;display:grid}label{color:var(--muted);gap:.35rem;font-size:.85rem;display:grid}label.full{padding:0 1rem 1rem}input,select,textarea{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:10px;padding:.65rem .75rem}textarea{resize:vertical;min-height:180px;line-height:1.8}.login-page{background:radial-gradient(900px 520px at 85% -10%,#14b8a638,#0000 55%),radial-gradient(700px 420px at 5% 100%,#b48c5024,#0000 50%),linear-gradient(165deg,#e8f3ef 0%,#eef3ef 42%,#e3ebe6 100%);place-items:center;min-height:100dvh;padding:clamp(1.25rem,4vw,2.5rem);display:grid}.login-panel{place-items:center;width:100%;display:grid}.login-card{border:1px solid var(--line);background:#fff;border-radius:18px;gap:.85rem;width:100%;max-width:420px;padding:clamp(1.5rem,4vw,2.25rem);display:grid;box-shadow:0 24px 60px #14221f1f,0 4px 16px #14221f0f}.login-brand{color:var(--teal-deep);align-items:center;gap:.7rem;display:flex}.login-brand h1{font-family:var(--font);margin:0;font-size:clamp(2rem,5vw,2.4rem);font-weight:800}.lede{color:var(--muted);margin:0 0 .5rem;line-height:1.7}.login-card button{background:var(--teal);color:#fff;cursor:pointer;border:none;border-radius:12px;margin-top:.4rem;padding:.85rem 1rem;font-weight:700}@media (width<=1100px){.charts{grid-template-columns:1fr}.stat-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}}@media (width<=960px){.shell{grid-template-rows:auto 1fr;grid-template-columns:1fr}.mobile-bar{display:flex}.sidebar{border-left:1px solid var(--line);width:min(86vw,300px);height:100vh;transition:transform .22s;position:fixed;top:0;right:0;transform:translate(110%);box-shadow:-12px 0 40px #14221f2e}.shell.nav-open .sidebar{transform:translate(0)}.shell.nav-open .nav-backdrop{display:block}.main{padding:1rem 1rem 2rem}table{min-width:640px;font-size:.82rem}}@media (width<=560px){.page-head{align-items:stretch}.page-head .btn{width:100%}.stat-grid{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr;padding:.85rem}.meta-pills{width:100%}.login-card{max-width:100%;padding:1.25rem}.login-panel{padding:1rem}}
