@font-face{font-family:'DM Sans';src:url('/static/dm-sans.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:'DM Sans';src:url('/static/dm-sans-medium.ttf') format('truetype');font-style:normal;font-weight:500;font-display:swap}
@font-face{font-family:'DM Sans';src:url('/static/dm-sans-semibold.ttf') format('truetype');font-style:normal;font-weight:600;font-display:swap}
@font-face{font-family:'DM Sans';src:url('/static/dm-sans-bold.ttf') format('truetype');font-style:normal;font-weight:700;font-display:swap}
:root{--ground:#f9fafb;--surface:#fff;--raised:#f3f4f6;--border:#e5e7eb;--rule:#f2f2f2;--control:#c5cbd0;--text:#111827;--muted:#5f6672;--accent:#0b6475;--accent-soft:#eff8f9;--accent-track:#d4ebee;--accent-ink:#164652;--positive:#247b50;--negative:#a72227;--gap:24px;--font:'DM Sans',Arial,system-ui,sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--ground);color:var(--text);font:14px/1.5 var(--font);font-variant-numeric:tabular-nums}button,input,select,textarea{font:inherit;color:inherit}a{color:inherit;text-decoration:none}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer;background:var(--surface);border:1px solid var(--control);border-radius:6px;padding:7px 13px;min-height:34px}button:hover{border-color:#727d86}button:disabled{cursor:wait;background:var(--raised);color:var(--muted)}button.primary{background:var(--text);border-color:var(--text);color:#fff}button.primary:hover{background:#303b45}button.danger{color:var(--negative)}.text-button{border:0;background:transparent;padding:4px 0}.text-button:hover{text-decoration:underline}.muted{color:var(--muted)}.error{color:var(--negative)}.error:empty{display:none}h1,h2,h3,p{margin:0}h1{font-size:32px;line-height:1.2;letter-spacing:-.025em;font-weight:700;overflow-wrap:anywhere}h2{font-size:18px;font-weight:600}h3{font-size:14px;font-weight:600}p+p{margin-top:8px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--accent);outline-offset:3px}[hidden]{display:none!important}
/* Fluid grid: 230px navigation + available workspace; two detail columns split
   2:1 after subtracting one 24px gutter. Both align with the title and footer. */
#shell{display:grid;grid-template-columns:230px minmax(0,1fr);min-height:100dvh}aside{position:sticky;top:0;height:100dvh;border-right:1px solid var(--border);display:flex;flex-direction:column;padding:28px 18px;background:var(--ground)}.brand{font-size:30px;font-weight:600;letter-spacing:-1px;display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding:0 10px 30px}.brand-sub{flex-basis:100%;font-size:12px;letter-spacing:0;color:var(--muted);font-weight:400}.brand img{flex:none}nav a{display:block;border-radius:6px;padding:9px 12px;margin:3px 0}nav a:hover{background:var(--raised)}nav a[aria-current=page]{background:var(--accent-soft);color:var(--accent-ink);font-weight:500}.nav-label{padding:28px 12px 8px;color:var(--muted);font-size:12px}.sidebar-foot{margin-top:auto;padding:24px 12px 0;color:var(--muted);font-size:12px}.sidebar-foot button{font-size:14px;margin-top:10px}.workspace{min-width:0}.topbar{height:64px;border-bottom:1px solid var(--border);padding:0 29px;display:flex;align-items:center;gap:16px}.topbar-note{margin-left:auto;color:var(--muted);font-size:12px}#menu-toggle{display:none}main{padding:32px 29px 48px;max-width:1700px;margin:auto}.title-row{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:24px}.title-row p{margin-top:9px;color:var(--muted)}.panel{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:24px;min-width:0}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px}.actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.empty{padding:28px 0;color:var(--muted);grid-column:1/-1}.empty p{max-width:500px}.empty button{margin-top:16px}.list-head,.project-row{display:grid;grid-template-columns:minmax(180px,1fr) 130px 160px 100px;align-items:center;gap:24px}.list-head{font-size:12px;color:var(--muted);padding:0 12px 14px}.project-row{padding:20px 12px;border-top:1px solid var(--rule);border-radius:4px}.project-row:hover{outline:1px solid var(--control)}.project-title{font-weight:500;font-size:16px}.project-sub{color:var(--muted);font-size:12px;margin-top:4px}.progress{height:5px;background:var(--accent-track);margin-top:9px;border-radius:4px;overflow:hidden}.progress-fill{display:block;height:100%;background:var(--accent);width:0}.numeric{text-align:right}.status{display:inline-block;font-size:12px;padding:2px 8px;border-radius:4px;white-space:nowrap;background:var(--raised);color:#374151}.status.running,.status.queued{background:var(--accent-soft);color:var(--accent-ink)}.status.done,.status.ready{background:#e7f5ed;color:#165735}.status.failed,.status.needs_review{background:#ffedea;color:#831c1e}
.detail-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:24px;align-items:start}.stack{display:grid;gap:24px}.tabs{display:flex;gap:24px;border-bottom:1px solid var(--border);margin:0 0 24px;overflow:auto}.tabs button{border:0;background:transparent;border-radius:0;padding:10px 2px;white-space:nowrap;color:var(--muted)}.tabs button[aria-selected=true]{border-bottom:2px solid var(--accent);color:var(--text)}.stage+.stage{margin-top:24px;padding-top:24px;border-top:1px solid var(--rule)}.stage-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:10px}.stage-heading button{font-size:12px}.step{display:grid;grid-template-columns:18px minmax(0,1fr) auto;align-items:start;gap:10px;padding:9px 0;cursor:pointer}.step span{overflow-wrap:anywhere}.step input{width:16px;height:16px;min-height:0;margin:3px 0;accent-color:var(--accent)}.step .status{margin-left:8px}.pipeline-footer{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:24px;padding-top:20px;border-top:1px solid var(--rule)}label{display:block;font-weight:500;margin:0 0 7px}input,select,textarea{width:100%;min-height:40px;border:1px solid var(--control);border-radius:6px;background:var(--surface);padding:9px 11px}input::placeholder,textarea::placeholder{color:var(--muted)}textarea{resize:vertical;min-height:150px}input+label,select+label,textarea+label,.field+.field{margin-top:16px}.field p{margin-top:8px;font-size:12px;color:var(--muted)}.panel form>.actions{margin-top:20px}.source-note{font-size:12px;color:var(--muted);margin:10px 0 20px;overflow-wrap:anywhere}.shortcut-row{display:flex;align-items:center;justify-content:space-between;padding:14px 0;border-top:1px solid var(--rule);gap:16px}.shortcut-row:first-of-type{border:0}.shortcut-row span{color:var(--muted);font-size:12px}.job-row{padding:15px 0;border-top:1px solid var(--rule);display:flex;justify-content:space-between;align-items:center;gap:16px}.job-row:first-child{border:0}.job-row p{margin-top:4px;font-size:12px;color:var(--muted)}.job-row button{text-align:left;border:0;background:none;padding:0}.job-list{max-width:100%}.log{font:12px/1.6 ui-monospace,SFMono-Regular,monospace;white-space:pre-wrap;overflow-wrap:anywhere;background:#f5f7f8;color:#28343c;border-radius:6px;padding:16px;max-height:540px;min-height:120px;overflow:auto;margin:16px 0 0}.log:empty:before{content:'Ожидание запуска…'}.log-label{font-size:12px;color:var(--muted)}.file-row{display:flex;justify-content:space-between;align-items:center;gap:20px;min-height:48px;border-top:1px solid var(--rule)}.file-row>a,.file-row>button{overflow-wrap:anywhere;text-align:left}.file-row>a:hover{text-decoration:underline}.file-size{color:var(--muted);font-size:12px;flex:none}.file-tools{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:20px}.file-tools input{max-width:300px}.folder-path{font-size:12px;color:var(--muted);overflow-wrap:anywhere;margin-bottom:12px}.error-row{padding:16px 0;border-top:1px solid var(--rule)}.error-row p{color:var(--muted);margin:8px 0;overflow-wrap:anywhere}.settings-grid{display:grid;grid-template-columns:minmax(200px,1fr) minmax(300px,1.5fr);gap:40px;max-width:1000px}.settings-grid>div>p{color:var(--muted);margin-top:10px}.dependency{display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-top:1px solid var(--rule);gap:20px}.dependency:first-child{border:0}.form-note{margin-top:16px;color:var(--muted);font-size:12px}.loading{color:var(--muted);padding:24px 0}.back-link{color:var(--muted);font-size:12px;display:inline-block;margin-bottom:16px}#notice{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);max-width:calc(100% - 32px);padding:12px 20px;background:var(--text);color:#fff;border-radius:6px;z-index:50;box-shadow:0 4px 16px #0002}dialog{width:min(520px,calc(100% - 32px));padding:28px;border:1px solid var(--border);border-radius:8px;box-shadow:0 16px 60px #0002}dialog::backdrop{background:#11182755}dialog p{margin-top:12px}dialog .title-row{margin-bottom:24px}dialog .title-row button{font-size:18px}.login-panel{max-width:400px;margin:15vh auto;padding:32px;border:1px solid var(--border);border-radius:8px;background:#fff}.login-panel h1{font-size:24px;margin:16px 0 8px}.login-panel label{margin-top:28px}.login-panel .primary{width:100%;margin-top:20px}.login-panel .error{margin-top:16px}
@media(max-width:1100px){#shell{grid-template-columns:minmax(0,1fr)}aside{display:none}aside.open{display:flex;position:fixed;inset:56px 0 0;z-index:20;height:calc(100dvh - 56px);width:100%;border:0}.topbar{height:56px;padding:0 20px}#menu-toggle{display:block}.topbar-note{display:none}main{padding:24px 20px}.list-head,.project-row{grid-template-columns:minmax(160px,1fr) 110px 110px 90px;gap:16px}.detail-grid{grid-template-columns:minmax(0,1fr)}.stack{gap:24px}.settings-grid{gap:24px}}
@media(max-width:640px){h1{font-size:24px}.title-row{gap:16px;align-items:flex-start}.title-row>button{flex:none}main{padding:24px 16px}.panel{padding:18px}.list-head{display:none}.project-row{grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:18px 0}.project-row>.updated{display:none}.project-row>.project-progress{grid-column:1;grid-row:2}.project-row>.numeric{grid-column:2;grid-row:2}.project-row>.project-progress .progress{margin-top:5px}.project-row>.status{justify-self:end}.settings-grid{grid-template-columns:minmax(0,1fr)}.step{grid-template-columns:18px minmax(0,1fr)}.step .status{grid-column:2;justify-self:start;margin-left:0}.tabs{gap:20px}button{min-height:44px}.pipeline-footer{align-items:flex-start;flex-direction:column}.pipeline-footer button{width:100%}.file-tools>*{max-width:100%!important;width:100%}.login-panel{margin:10vh 16px}.job-row{align-items:flex-start}.topbar{padding:0 16px}.log{max-height:380px}.source-note{margin-bottom:16px}}
