/* Токены UI/UX Complete Kit 2.0; шрифт установлен локально. */
@font-face{font-family:Nunito;font-style:normal;font-weight:200 1000;font-display:swap;src:url('/assets/fonts/Nunito-Variable.ttf') format('truetype')}
:root{--font-ui:Nunito,'Noto Sans',system-ui,sans-serif;--font-code:ui-monospace,Consolas,monospace;--bg:#F7F5FF;--text:#242039;--surface:#FFFFFF;--soft:#EEE8FF;--accent:#6241B8;--on-accent:#FFFFFF;--muted:#615973;--line:#D8D0E8;--focus:#6241B8;--good:#1D6856;--good-bg:#DDF4EA;--warn:#83550D;--warn-bg:#FFF0CC;--bad:#A52C42;--bad-bg:#FCE7EB;--radius:20px;--control-radius:12px;--ink:var(--text);--paper:var(--surface);--accent-light:var(--soft);--sidebar:var(--surface);font-family:var(--font-ui);color:var(--text);background:var(--bg)}
[data-palette=apricot]{--bg:#FFF7F2;--text:#34212B;--soft:#FCE5DC;--accent:#A7404F;--muted:#70575D;--line:#EAD0C9;--focus:#A7404F}
[data-palette=lagoon]{--bg:#F1FAF8;--text:#173536;--soft:#DDF3EB;--accent:#08706D;--muted:#4C6968;--line:#C7DED7;--focus:#08706D}
[data-mode=dark]{--bg:#181621;--text:#F1ECFC;--surface:#221E2E;--soft:#2D263D;--accent:#C5AFF8;--on-accent:#211638;--muted:#B9AFCB;--line:#51465E;--focus:#C5AFF8;--good:#9AE5CB;--good-bg:#193C32;--warn:#F4D294;--warn-bg:#433320;--bad:#FFB1C1;--bad-bg:#462731}
[data-mode=dark][data-palette=apricot]{--bg:#24191E;--text:#FFF0E9;--surface:#302127;--soft:#3B252D;--accent:#FFB5A7;--on-accent:#351F28;--muted:#D4B7BC;--line:#64464E;--focus:#FFB5A7}
[data-mode=dark][data-palette=lagoon]{--bg:#122326;--text:#E9F8F3;--surface:#1A2F32;--soft:#203A3B;--accent:#8FE0C9;--on-accent:#153A32;--muted:#ACCCC6;--line:#426563;--focus:#8FE0C9}
*{box-sizing:border-box}body{background:var(--bg);color:var(--text);font-family:var(--font-ui);font-size:16px;line-height:1.55}h1,h2,h3,.brand,.brand-mark,.login-emblem,input,select,button,textarea{font-family:var(--font-ui)}h1{font-size:34px;line-height:1.2;font-weight:800}h2{font-size:23px;line-height:1.3;font-weight:800}h3{font-weight:750}a{color:var(--accent)}button,input,select,textarea{color:var(--text)}button,a,input,select,textarea,summary{outline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--focus)}
.shell{grid-template-columns:264px minmax(0,1fr)}.workspace{min-width:0}.sidebar{padding:28px 18px;background:var(--surface);color:var(--text);overflow-y:auto}.brand{font-size:25px;gap:12px;padding:0 7px}.brand-sub{font-size:11px;color:var(--muted)}.workspace-label{margin:34px 14px 13px;text-transform:uppercase;font-size:11px;letter-spacing:.1em;font-weight:800;color:var(--muted)}nav{gap:5px}nav a,nav a#admin-nav{font-size:14px;line-height:22px;padding:11px 13px;border-radius:12px;color:var(--muted);font-weight:700}nav a span{font-size:19px;color:inherit}nav a:hover,nav a.active{color:var(--accent);background:var(--soft);box-shadow:none}.sidebar-foot{font-size:12px;color:var(--muted);margin-top:25px}.sidebar-foot p{color:var(--muted);font-size:12px;line-height:19px}.readonly-dot{background:var(--good)}.topbar{background:var(--surface);color:var(--muted);padding:18px 36px;min-height:78px}.top-actions{flex-wrap:wrap;gap:12px}.mode-label{color:var(--accent);font-weight:800}.session-controls{gap:9px}.session-controls .button{font-size:12px;padding:7px 10px}.session-controls .subtle{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}main{max-width:1480px;margin:0 auto;padding:36px}.page-description{max-width:810px;color:var(--muted);margin-top:12px}.page-heading{margin-bottom:28px}.eyebrow{color:var(--accent);font-weight:800;font-size:11px;text-transform:uppercase;letter-spacing:.12em}.page-footer{color:var(--muted)}
.card,.metric,.empty,dialog,.attention-card{background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 3px 12px #24203904}.card{padding:25px;min-width:0}.card h2{margin:0 0 13px}.card-description,.subtle,.metric-label,.metric-note,.card-kicker,.stat-label,.updated,.catalog-count{color:var(--muted)}.metric{padding:23px}.metric-value{font-size:34px;color:var(--accent);font-weight:900}.metric-label{font-weight:700;font-size:13px}.metric-note{font-size:12px}.metric-grid{gap:16px}.section-heading{margin:28px 0 16px}.grid{gap:18px}.card-bottom{gap:12px}.button,select,.search{border:1px solid var(--line);border-radius:var(--control-radius);background:var(--surface);color:var(--text);font-size:14px;line-height:22px;padding:10px 14px}.button{font-weight:800;min-height:42px;white-space:normal;text-align:center}.button:hover{background:var(--soft);border-color:var(--accent);color:var(--accent)}.button.primary,.button.primary:hover{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.button:disabled{opacity:.5;cursor:not-allowed}.search:focus{border-color:var(--accent)}.search::placeholder{color:var(--muted);opacity:.85}.small{min-height:38px;font-size:13px}.badge{border-radius:8px;padding:5px 10px;font-weight:800;background:var(--soft);color:var(--accent)}.badge.running,.badge.queued,.badge.pending{background:var(--soft);color:var(--accent)}.badge.completed,.badge.compute_complete,.badge.succeeded,.badge.accepted{background:var(--good-bg);color:var(--good)}.badge.failed,.badge.worker_lost,.badge.cancelled,.badge.rejected{background:var(--bad-bg);color:var(--bad)}.badge.warning,.badge.paused{background:var(--warn-bg);color:var(--warn)}.notice{background:var(--soft);border:1px solid var(--line);color:var(--text);border-radius:14px;padding:17px 20px;line-height:1.6}.notice.error,.form-error{color:var(--bad)}.form-success{color:var(--good)}progress{accent-color:var(--accent);height:9px;border-radius:8px;width:100%}progress::-webkit-progress-bar{background:var(--soft);border-radius:8px}progress::-webkit-progress-value{background:var(--accent);border-radius:8px}.progress-value{color:var(--accent)}.progress-heading{margin-top:20px}.empty{border-style:dashed}.empty-symbol{color:var(--accent)}.empty p{color:var(--muted)}.pdf-mark{background:var(--soft);color:var(--accent);border-color:var(--line)}
.support-stack{display:grid;gap:22px}.support-panel>.button{margin:12px 8px 0 0}.support-panel>.metadata{margin-top:18px}.metadata{grid-template-columns:180px minmax(0,1fr);font-size:14px;line-height:1.6;gap:12px 20px}.metadata dt{color:var(--muted)}.metadata dd{min-width:0;overflow-wrap:anywhere;color:var(--text)}.source-note{font-size:12px;color:var(--muted);margin:20px 0 0;overflow-wrap:anywhere}.known-job-form{display:flex;gap:14px;align-items:flex-end;margin-top:20px}.known-job-form .form-field{flex:1}.known-job-form input{width:100%}.raw-details{margin:19px 0;border:1px solid var(--line);border-radius:12px;overflow:hidden}.raw-details>summary{padding:12px 16px;cursor:pointer;font-weight:750;font-size:14px;background:var(--soft);color:var(--accent)}.code-block{margin:0;padding:18px;max-height:400px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;background:var(--surface);color:var(--text);font:12px/1.7 var(--font-code)}.artifact-record{padding:20px;margin:16px 0;border:1px solid var(--line);border-radius:14px;overflow-wrap:anywhere}.artifact-record h3{font-size:16px}.table-scroll{border-radius:12px;border-color:var(--line);margin-top:15px;max-width:100%;overflow:auto}table{color:var(--text)}th{background:var(--soft);color:var(--text);white-space:nowrap}th,td{border-color:var(--line)}.exact-value{font-family:var(--font-code);font-size:12px;white-space:nowrap}.pager{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-top:20px;flex-wrap:wrap}.appearance-controls{display:grid;grid-template-columns:1fr 1fr;gap:9px;padding-bottom:20px;margin-bottom:18px;border-bottom:1px solid var(--line)}.appearance-field{display:grid;gap:5px;min-width:0;font-size:11px}.appearance-field select{font-size:12px;width:100%;padding:7px 8px;border-radius:9px;min-width:0}.scope-options{border:1px solid var(--line);border-radius:12px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:18px}.scope-options legend{font-weight:750}.scope-choice{display:flex;gap:9px;align-items:center;font:12px/1.5 var(--font-code);overflow-wrap:anywhere}.scope-choice input{width:17px;height:17px;accent-color:var(--accent)}.one-time-secret{width:100%;min-height:110px;resize:vertical;border:1px solid var(--accent);border-radius:12px;background:var(--soft);font:13px/1.7 var(--font-code);padding:16px;margin:16px 0;overflow-wrap:anywhere}.setup-steps{padding-left:24px;line-height:1.7}.setup-steps li{margin-bottom:14px;padding-left:7px}.job-controls{border-color:var(--line)}.form-field{font-weight:700}.auth-view{background:var(--bg)}.auth-view .workspace{background:var(--bg)}.login-card{border-radius:24px;box-shadow:0 16px 60px #2420390c;padding:34px}.auth-view .page-heading{margin-bottom:20px}.auth-view main{max-width:480px;padding-top:7vh}.auth-view h1{text-align:center}dialog{background:var(--surface);color:var(--text);padding:28px;width:min(1000px,calc(100vw - 32px))}.icon-button{background:var(--soft);color:var(--text)}dialog::backdrop{background:#10102077;backdrop-filter:blur(4px)}.dialog-head .eyebrow{color:var(--muted)}.detail-title{overflow-wrap:anywhere;font-weight:800}.reader-toc,.reader-source,.upload-status,.upload-file,.upload-record,.summary-source-json,.reader-cite,.summary-import-zone,.upload-confirmation-warning,.summary-validation{background:var(--soft);color:var(--text);border-color:var(--line)}.reader-section,.reader-source img{border-color:var(--line)}.reader-cite{color:var(--accent)}.reader-mode{width:min(1480px,calc(100vw - 32px))}.attention-card{border-left:4px solid var(--accent)}.attention-card.severity-warning{border-left-color:var(--warn)}.attention-card.severity-critical,.attention-card.severity-error{border-left-color:var(--bad)}.upload-file::file-selector-button{background:var(--surface);color:var(--accent);border-color:var(--line)}
@media(max-width:1200px){.shell{grid-template-columns:232px minmax(0,1fr)}main{padding:28px}.sidebar{padding:25px 12px}.brand{font-size:22px}.brand-sub{font-size:10px}.topbar{padding:16px 24px}.topbar>span{display:none}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.session-controls .subtle{display:none}}
@media(max-width:800px){.shell{display:block}.sidebar{position:static;height:auto;max-height:none;overflow:visible;padding:18px}.brand{font-size:23px}.workspace-label,.sidebar-foot{display:none}nav{display:flex;overflow-x:auto;gap:6px;margin-top:16px;padding:0 0 5px;justify-content:flex-start}nav a,nav a#admin-nav{flex:0 0 auto;font-size:13px;padding:9px 12px;white-space:nowrap}nav a span{display:none}.topbar{padding:12px 18px;min-height:64px}.top-actions{width:100%;gap:9px}.session-controls{gap:6px}.mode-label{font-size:11px}main{padding:25px 18px}.page-heading{margin-bottom:24px}h1{font-size:29px}.page-description{font-size:15px}.metric-grid{gap:12px}.metric{padding:18px}.metric-value{font-size:30px}.card{padding:21px}.known-job-form{align-items:stretch;flex-direction:column}.metadata{grid-template-columns:1fr;gap:4px}.metadata dd{margin-bottom:12px}.grid,.attention-grid{grid-template-columns:1fr}.job-stats{grid-template-columns:1fr}.scope-options{grid-template-columns:1fr}.page-footer{gap:10px;flex-wrap:wrap}.support-stack{gap:17px}dialog{padding:20px;max-height:94vh}.auth-view main{padding-top:4vh}.auth-view .login-card{padding:25px}.auth-view .page-heading{margin-bottom:18px}.reader-mode{width:calc(100vw - 20px)}}
@media(max-width:380px){.metric-grid{grid-template-columns:1fr}.session-controls .button{font-size:11px;padding:7px}.mode-label{display:none}main{padding:22px 14px}.card{padding:18px}.topbar{padding:10px 14px}.top-actions{justify-content:space-between}.top-actions>.button{font-size:11px;padding:7px}.page-heading{gap:10px}.page-description{overflow-wrap:anywhere}}

@media(max-width:800px){.sidebar-foot{display:block;border:0;padding:0;margin-top:8px;font-size:0}.sidebar-foot>p,.sidebar-foot>.readonly-dot{display:none}.appearance-controls{display:flex;gap:12px;border:0;padding:0;margin:0}.appearance-field{display:flex;align-items:center;gap:6px;font-size:11px}.appearance-field select{width:auto;min-width:100px;font-size:12px}.appearance-field>span{color:var(--muted)}}

@media(max-width:800px){.appearance-controls{flex-wrap:wrap}}
