.xterm{cursor:text;position:relative;user-select:none;-ms-user-select:none;-webkit-user-select:none}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{position:absolute;top:0;z-index:5}.xterm .xterm-helper-textarea{border:0;height:0;left:-9999em;margin:0;opacity:0;overflow:hidden;padding:0;position:absolute;resize:none;top:0;white-space:nowrap;width:0;z-index:-5}.xterm .composition-view{background:#000;color:#fff;display:none;position:absolute;white-space:nowrap;z-index:1}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{background-color:#000;bottom:0;cursor:default;left:0;overflow-y:scroll;position:absolute;right:0;top:0}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{left:0;position:absolute;top:0}.xterm .xterm-scroll-area{visibility:hidden}.xterm-char-measure-element{display:inline-block;left:-9999em;line-height:normal;position:absolute;top:0;visibility:hidden}.xterm.enable-mouse-events{cursor:default}.xterm .xterm-cursor-pointer,.xterm.xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{bottom:0;color:#0000;left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:10}.xterm .xterm-accessibility-tree:not(.debug) ::selection{color:#0000}.xterm .xterm-accessibility-tree{-webkit-user-select:text;user-select:text;white-space:pre}.xterm .live-region{height:1px;left:-9999px;overflow:hidden;position:absolute;width:1px}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{-webkit-text-decoration:double underline;text-decoration:double underline}.xterm-underline-3{-webkit-text-decoration:wavy underline;text-decoration:wavy underline}.xterm-underline-4{-webkit-text-decoration:dotted underline;text-decoration:dotted underline}.xterm-underline-5{-webkit-text-decoration:dashed underline;text-decoration:dashed underline}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:overline underline}.xterm-overline.xterm-underline-2{-webkit-text-decoration:overline double underline;text-decoration:overline double underline}.xterm-overline.xterm-underline-3{-webkit-text-decoration:overline wavy underline;text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{-webkit-text-decoration:overline dotted underline;text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{-webkit-text-decoration:overline dashed underline;text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{position:absolute;z-index:6}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{pointer-events:none;position:absolute;right:0;top:0;z-index:8}.xterm-decoration-top{position:relative;z-index:2}:root{--bg:oklch(0.985 0.004 262);--surface:oklch(1 0 0);--surface-2:oklch(0.975 0.005 262);--surface-3:oklch(0.962 0.006 262);--border:oklch(0.92 0.006 262);--border-strong:oklch(0.86 0.009 262);--ink:oklch(0.27 0.021 262);--ink-2:oklch(0.42 0.018 262);--muted:oklch(0.46 0.016 262);--accent:oklch(0.53 0.21 264);--accent-hover:oklch(0.47 0.2 264);--accent-ink:oklch(0.99 0 0);--accent-weak:oklch(0.955 0.035 264);--accent-weak-ink:oklch(0.43 0.18 264);--rail-bg:oklch(0.19 0.026 265);--rail-surface:oklch(0.25 0.032 265);--rail-active:oklch(0.3 0.05 265);--rail-ink:oklch(0.76 0.022 265);--rail-ink-strong:oklch(0.97 0.008 265);--rail-border:oklch(0.29 0.03 265);--term-bg:#0b0e14;--ok:oklch(0.52 0.13 150);--ok-bg:oklch(0.95 0.05 150);--danger:oklch(0.55 0.2 25);--danger-hover:oklch(0.49 0.2 25);--danger-bg:oklch(0.95 0.04 25);--warn:oklch(0.62 0.13 70);--warn-bg:oklch(0.95 0.06 75);--prod:oklch(0.5 0.18 295);--prod-bg:oklch(0.95 0.045 295);--font:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--mono:ui-monospace,SFMono-Regular,Menlo,"Cascadia Code",monospace;--text-xs:0.75rem;--text-sm:0.8125rem;--text-base:0.9375rem;--text-md:1.0625rem;--text-lg:1.25rem;--text-xl:1.5rem;--sp-1:0.25rem;--sp-2:0.5rem;--sp-3:0.75rem;--sp-4:1rem;--sp-5:1.5rem;--sp-6:2rem;--sp-7:3rem;--r-sm:6px;--r:9px;--r-lg:14px;--r-pill:999px;--shadow-sm:0 1px 2px oklch(0.27 0.02 262/0.06),0 1px 1px oklch(0.27 0.02 262/0.04);--shadow:0 1px 3px oklch(0.27 0.02 262/0.08),0 8px 24px -12px oklch(0.27 0.02 262/0.16);--shadow-lg:0 24px 60px -20px oklch(0.2 0.03 262/0.4);--z-sticky:100;--z-rail:200;--z-backdrop:300;--z-modal:310;--z-toast:400;--ease:cubic-bezier(0.22,1,0.36,1);--dur:180ms;--rail-w:248px}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{-webkit-font-smoothing:antialiased;background:oklch(.985 .004 262);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-family:var(--font);font-size:.9375rem;font-size:var(--text-base);line-height:1.5;margin:0;min-height:100vh;text-rendering:optimizeLegibility}body,h1,h2,h3{color:oklch(.27 .021 262);color:var(--ink)}h1,h2,h3{text-wrap:balance;line-height:1.25}h1{font-size:1.5rem;font-size:var(--text-xl);font-weight:650;letter-spacing:-.01em;margin:0}h2{font-size:1.0625rem;font-size:var(--text-md)}h2,h3{font-weight:600;margin:0}h3{font-size:.9375rem;font-size:var(--text-base)}a{color:oklch(.53 .21 264);color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{border-radius:6px;border-radius:var(--r-sm);outline:2px solid oklch(.53 .21 264);outline:2px solid var(--accent);outline-offset:2px}::placeholder{opacity:1}.muted,::placeholder{color:oklch(.46 .016 262);color:var(--muted)}.muted{font-size:.8125rem;font-size:var(--text-sm)}.error{color:oklch(.55 .2 25);color:var(--danger);font-weight:500}.error,.success{font-size:.8125rem;font-size:var(--text-sm);margin:0}.success{color:oklch(.52 .13 150);color:var(--ok);font-weight:600}.btn,button{align-items:center;background:oklch(.53 .21 264);background:var(--accent);border:1px solid #0000;border-radius:9px;border-radius:var(--r);color:oklch(.99 0 0);color:var(--accent-ink);cursor:pointer;display:inline-flex;font-family:inherit;font-size:.9375rem;font-size:var(--text-base);font-weight:600;gap:.5rem;gap:var(--sp-2);justify-content:center;line-height:1.2;padding:.55rem .9rem;transition:background .18s cubic-bezier(.22,1,.36,1),border-color .18s cubic-bezier(.22,1,.36,1),color .18s cubic-bezier(.22,1,.36,1),transform .18s cubic-bezier(.22,1,.36,1);transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease),transform var(--dur) var(--ease);white-space:nowrap}.btn:hover,button:hover{background:oklch(.47 .2 264);background:var(--accent-hover)}.btn:active,button:active{transform:translateY(.5px)}button:disabled{background:oklch(.53 .21 264);background:var(--accent);cursor:not-allowed;opacity:.5}.btn.secondary,a.button.secondary,button.secondary{background:oklch(1 0 0);background:var(--surface);border-color:oklch(.86 .009 262);border-color:var(--border-strong);color:oklch(.27 .021 262);color:var(--ink)}.btn.secondary:hover,a.button.secondary:hover,button.secondary:hover{background:oklch(.975 .005 262);background:var(--surface-2)}button.ghost{background:#0000;color:oklch(.42 .018 262);color:var(--ink-2)}button.ghost:hover{background:oklch(.975 .005 262);background:var(--surface-2);color:oklch(.27 .021 262);color:var(--ink)}button.danger{background:oklch(.55 .2 25);background:var(--danger)}button.danger:hover{background:oklch(.49 .2 25);background:var(--danger-hover)}button.danger-soft{color:oklch(.55 .2 25);color:var(--danger)}button.danger-soft,button.danger-soft:hover{background:oklch(.95 .04 25);background:var(--danger-bg)}button.danger-soft:hover{border-color:oklch(.55 .2 25);border-color:var(--danger)}button.validate{background:oklch(.52 .13 150);background:var(--ok)}button.validate:hover{background:oklch(.46 .13 150)}button.admin{background:oklch(.5 .18 295);background:var(--prod)}button.admin:hover{background:oklch(.44 .18 295)}.btn.small,a.button,button.small{border-radius:6px;border-radius:var(--r-sm);font-size:.8125rem;font-size:var(--text-sm);padding:.35rem .6rem}a.button{align-items:center;display:inline-flex}a.button,a.button:hover{text-decoration:none}label{color:oklch(.42 .018 262);color:var(--ink-2);display:flex;flex-direction:column;font-size:.8125rem;font-size:var(--text-sm);font-weight:600;gap:.5rem;gap:var(--sp-2)}input,select,textarea{background:oklch(1 0 0);background:var(--surface);border:1px solid oklch(.86 .009 262);border:1px solid var(--border-strong);border-radius:9px;border-radius:var(--r);color:oklch(.27 .021 262);color:var(--ink);font-family:inherit;font-size:.9375rem;font-size:var(--text-base);font-weight:400;padding:.55rem .7rem;transition:border-color .18s cubic-bezier(.22,1,.36,1),box-shadow .18s cubic-bezier(.22,1,.36,1);transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}input:focus,select:focus,textarea:focus{border-color:oklch(.53 .21 264);border-color:var(--accent);box-shadow:0 0 0 3px oklch(.955 .035 264);box-shadow:0 0 0 3px var(--accent-weak);outline:none}textarea{resize:vertical}label .muted,label>input,label>select,label>textarea{font-weight:400}.radio-row{display:flex;gap:.75rem;gap:var(--sp-3)}label.radio{align-items:center;border:1px solid oklch(.86 .009 262);border:1px solid var(--border-strong);border-radius:9px;border-radius:var(--r);color:oklch(.27 .021 262);color:var(--ink);cursor:pointer;flex:1 1;flex-direction:row;flex-wrap:wrap;font-weight:600;gap:.5rem;gap:var(--sp-2);padding:.7rem .85rem;transition:border-color .18s cubic-bezier(.22,1,.36,1),background .18s cubic-bezier(.22,1,.36,1);transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease)}label.radio:has(input:checked){background:oklch(.955 .035 264);background:var(--accent-weak);border-color:oklch(.53 .21 264);border-color:var(--accent)}label.radio:has(input:focus-visible){box-shadow:0 0 0 3px oklch(.955 .035 264);box-shadow:0 0 0 3px var(--accent-weak)}label.radio .muted{flex-basis:100%}label.radio input{accent-color:oklch(.53 .21 264);accent-color:var(--accent);width:auto}.app{display:grid;grid-template-columns:248px 1fr;grid-template-columns:var(--rail-w) 1fr;min-height:100vh}.rail{align-self:start;background:oklch(.19 .026 265);background:var(--rail-bg);border-right:1px solid oklch(.29 .03 265);border-right:1px solid var(--rail-border);color:oklch(.76 .022 265);color:var(--rail-ink);display:flex;flex-direction:column;height:100vh;padding:1rem .75rem;padding:var(--sp-4) var(--sp-3);position:-webkit-sticky;position:sticky;top:0;z-index:200;z-index:var(--z-rail)}.rail-brand{align-items:center;color:oklch(.97 .008 265);color:var(--rail-ink-strong);display:flex;gap:.75rem;gap:var(--sp-3);padding:.5rem .5rem 1.5rem;padding:var(--sp-2) var(--sp-2) var(--sp-5)}.rail-brand .mark{background:oklch(.53 .21 264);background:var(--accent);border-radius:8px;color:oklch(.99 0 0);color:var(--accent-ink);display:grid;flex:none;font-size:1.05rem;font-weight:800;height:32px;place-items:center;width:32px}.rail-brand .word{font-size:1.0625rem;font-weight:700;letter-spacing:-.01em}.rail-brand .word b{color:oklch(.97 .008 265);color:var(--rail-ink-strong)}.rail-brand .word span{color:oklch(.76 .022 265);color:var(--rail-ink);font-weight:500}.rail-nav{display:flex;flex-direction:column;gap:2px}.rail-section{color:oklch(.56 .02 265);font-size:.75rem;font-size:var(--text-xs);font-weight:600;letter-spacing:.04em;margin:1rem .5rem .5rem;margin:var(--sp-4) var(--sp-2) var(--sp-2);text-transform:uppercase}.rail-link{align-items:center;border-radius:9px;border-radius:var(--r);color:oklch(.76 .022 265);color:var(--rail-ink);display:flex;font-size:.9375rem;font-size:var(--text-base);font-weight:500;gap:.75rem;gap:var(--sp-3);padding:.5rem .65rem;text-decoration:none;transition:background .18s cubic-bezier(.22,1,.36,1),color .18s cubic-bezier(.22,1,.36,1);transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.rail-link:hover{background:oklch(.25 .032 265);background:var(--rail-surface);text-decoration:none}.rail-link.active,.rail-link:hover{color:oklch(.97 .008 265);color:var(--rail-ink-strong)}.rail-link.active{background:oklch(.3 .05 265);background:var(--rail-active);font-weight:600}.rail-link .ico{flex:none;height:18px;opacity:.9;width:18px}.rail-foot{margin-top:auto;padding-top:1rem;padding-top:var(--sp-4)}.rail-user{align-items:center;border-radius:9px;border-radius:var(--r);display:flex;gap:.75rem;gap:var(--sp-3);margin-bottom:.5rem;margin-bottom:var(--sp-2);padding:.5rem;padding:var(--sp-2)}.rail-user .avatar{background:oklch(.25 .032 265);background:var(--rail-surface);border-radius:999px;border-radius:var(--r-pill);color:oklch(.97 .008 265);color:var(--rail-ink-strong);display:grid;flex:none;font-size:.8125rem;font-size:var(--text-sm);font-weight:700;height:32px;place-items:center;width:32px}.rail-user .who{min-width:0}.rail-user .who b{color:oklch(.97 .008 265);color:var(--rail-ink-strong);display:block;font-size:.8125rem;font-size:var(--text-sm);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rail-user .who span{font-size:.75rem;font-size:var(--text-xs)}.rail-logout,.rail-user .who span{color:oklch(.76 .022 265);color:var(--rail-ink)}.rail-logout{background:#0000;border:1px solid oklch(.29 .03 265);border:1px solid var(--rail-border);font-size:.8125rem;font-size:var(--text-sm);font-weight:500;padding:.5rem;width:100%}.rail-logout:hover{background:oklch(.25 .032 265);background:var(--rail-surface);color:oklch(.97 .008 265);color:var(--rail-ink-strong)}.main{display:flex;flex-direction:column;min-width:0}.topbar{align-items:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:oklch(.985 .004 262/.85);border-bottom:1px solid oklch(.92 .006 262);border-bottom:1px solid var(--border);display:flex;gap:1rem;gap:var(--sp-4);justify-content:space-between;padding:1rem 2rem;padding:var(--sp-4) var(--sp-6);position:-webkit-sticky;position:sticky;top:0;z-index:100;z-index:var(--z-sticky)}.topbar h1{font-size:1.25rem;font-size:var(--text-lg)}.topbar .crumb{color:oklch(.46 .016 262);color:var(--muted);font-size:.8125rem;font-size:var(--text-sm);margin-bottom:2px}.topbar-actions{align-items:center;display:flex;gap:.5rem;gap:var(--sp-2)}.page{display:flex;flex:1 1;flex-direction:column;gap:1.5rem;gap:var(--sp-5);margin:0 auto;max-width:1180px;padding:2rem;padding:var(--sp-6);width:100%}.page.narrow{max-width:640px}.card.narrow-card{max-width:560px}.centered{align-items:center;color:oklch(.46 .016 262);color:var(--muted);display:flex;justify-content:center;min-height:100vh;padding:2rem;padding:var(--sp-6)}.card{background:oklch(1 0 0);background:var(--surface);border:1px solid oklch(.92 .006 262);border:1px solid var(--border);border-radius:14px;border-radius:var(--r-lg);box-shadow:0 1px 2px oklch(.27 .02 262/.06),0 1px 1px oklch(.27 .02 262/.04);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:1rem;gap:var(--sp-4);padding:1.5rem;padding:var(--sp-5)}.card>h1{font-size:1.25rem;font-size:var(--text-lg)}.panel-head{align-items:flex-start;display:flex;flex-wrap:wrap;gap:1rem;gap:var(--sp-4);justify-content:space-between}.panel-head h2{font-size:1.0625rem;font-size:var(--text-md)}.panel-head .sub{color:oklch(.46 .016 262);color:var(--muted);font-size:.8125rem;font-size:var(--text-sm);margin:4px 0 0}.subhead{align-items:baseline;display:flex;font-size:1.0625rem;font-size:var(--text-md);font-weight:600;gap:.75rem;gap:var(--sp-3);justify-content:space-between;margin:.5rem 0 0;margin:var(--sp-2) 0 0}.subhead .muted{font-weight:400}.form-section{border-top:1px solid oklch(.92 .006 262);border-top:1px solid var(--border);display:flex;flex-direction:column;gap:1rem;gap:var(--sp-4);padding-top:1.5rem;padding-top:var(--sp-5)}.form-section h2{font-size:1.0625rem;font-size:var(--text-md)}.org-form{border-top:1px solid oklch(.92 .006 262);border-top:1px solid var(--border);display:flex;flex-direction:column;gap:1rem;gap:var(--sp-4);padding-top:1.5rem;padding-top:var(--sp-5)}.org-form h2{font-size:1.0625rem;font-size:var(--text-md)}.actions{display:flex;flex-wrap:wrap;gap:.75rem;gap:var(--sp-3)}table.line-items,table.table,table.users{border-collapse:collapse;font-size:.8125rem;font-size:var(--text-sm);width:100%}table.table th,table.users th{border-bottom:1px solid oklch(.86 .009 262);border-bottom:1px solid var(--border-strong);color:oklch(.46 .016 262);color:var(--muted);font-size:.75rem;font-size:var(--text-xs);font-weight:600;letter-spacing:.02em;padding:.5rem .7rem;text-align:left;text-transform:uppercase;white-space:nowrap}table.table td,table.users td{border-bottom:1px solid oklch(.92 .006 262);border-bottom:1px solid var(--border);color:oklch(.42 .018 262);color:var(--ink-2);padding:.65rem .7rem;vertical-align:middle}table.table tbody tr:last-child td,table.users tbody tr:last-child td{border-bottom:none}table.table tbody tr:hover,table.users tbody tr:hover{background:oklch(.962 .006 262);background:var(--surface-3)}table.table td strong,table.users td strong{color:oklch(.27 .021 262);color:var(--ink);font-weight:600}table.users select{font-size:.8125rem;font-size:var(--text-sm);padding:.3rem .45rem}table.table td.num,table.users td.num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.card.table-card{overflow:hidden;padding:0}.card.table-card .panel-head{padding:1.5rem 1.5rem 1rem;padding:var(--sp-5) var(--sp-5) var(--sp-4)}.card.table-card table.table td:first-child,.card.table-card table.table th:first-child,.card.table-card table.users td:first-child,.card.table-card table.users th:first-child{padding-left:1.5rem;padding-left:var(--sp-5)}.card.table-card table.table td:last-child,.card.table-card table.table th:last-child,.card.table-card table.users td:last-child,.card.table-card table.users th:last-child{padding-right:1.5rem;padding-right:var(--sp-5)}.row-actions{text-align:right;white-space:nowrap}.row-actions .button,.row-actions button{vertical-align:middle;white-space:nowrap}.row-actions .button:not(:last-child),.row-actions button:not(:last-child){margin-right:.5rem;margin-right:var(--sp-2)}.state{background:oklch(.975 .005 262);background:var(--surface-2);border:1px solid oklch(.92 .006 262);border:1px solid var(--border);border-radius:999px;border-radius:var(--r-pill);color:oklch(.42 .018 262);color:var(--ink-2);display:inline-block;font-size:.75rem;font-size:var(--text-xs);font-weight:600;padding:.15rem .5rem;white-space:nowrap}.state-running{background:oklch(.95 .05 150);background:var(--ok-bg);border-color:#0000;color:oklch(.52 .13 150);color:var(--ok)}.state-absent,.state-exited{background:oklch(.95 .04 25);background:var(--danger-bg);border-color:#0000;color:oklch(.55 .2 25);color:var(--danger)}.stage-prod{background:oklch(.95 .045 295);background:var(--prod-bg);border-color:#0000;color:oklch(.5 .18 295);color:var(--prod)}.stage-dev{background:oklch(.975 .005 262);background:var(--surface-2);color:oklch(.42 .018 262);color:var(--ink-2)}.validated{color:oklch(.52 .13 150);color:var(--ok);font-size:.8125rem;font-size:var(--text-sm);font-weight:600;white-space:nowrap}.env-list{display:flex;flex-direction:column;gap:.75rem;gap:var(--sp-3)}.env-list h2{font-size:1.0625rem;font-size:var(--text-md)}.env-item{align-items:center;background:oklch(1 0 0);background:var(--surface);border:1px solid oklch(.92 .006 262);border:1px solid var(--border);border-radius:9px;border-radius:var(--r);display:flex;gap:1rem;gap:var(--sp-4);justify-content:space-between;padding:1rem;padding:var(--sp-4)}.env-item-actions{align-items:flex-end;display:flex;flex-direction:column;gap:.5rem;gap:var(--sp-2)}.env-link{background:oklch(.53 .21 264);background:var(--accent);border-radius:9px;border-radius:var(--r);color:oklch(.99 0 0);color:var(--accent-ink);font-size:.8125rem;font-size:var(--text-sm);font-weight:600;padding:.45rem .8rem;text-decoration:none;white-space:nowrap}.env-link:hover{background:oklch(.47 .2 264);background:var(--accent-hover);text-decoration:none}.metrics-host{grid-gap:1rem;grid-gap:var(--sp-4);display:grid;gap:1rem;gap:var(--sp-4);grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.meter{background:oklch(.975 .005 262);background:var(--surface-2);border:1px solid oklch(.92 .006 262);border:1px solid var(--border);border-radius:9px;border-radius:var(--r);padding:1rem;padding:var(--sp-4)}.meter-head{align-items:baseline;color:oklch(.42 .018 262);color:var(--ink-2);display:flex;font-size:.8125rem;font-size:var(--text-sm);gap:.5rem;gap:var(--sp-2);justify-content:space-between;margin-bottom:.75rem;margin-bottom:var(--sp-3)}.meter-head strong{font-feature-settings:"tnum";color:oklch(.27 .021 262);color:var(--ink);font-size:1.0625rem;font-size:var(--text-md);font-variant-numeric:tabular-nums}.meter-track{background:oklch(.92 .006 262);background:var(--border);height:8px;overflow:hidden}.meter-fill,.meter-track{border-radius:999px;border-radius:var(--r-pill)}.meter-fill{height:100%;transition:width .5s cubic-bezier(.22,1,.36,1);transition:width .5s var(--ease)}.meter-ok{background:oklch(.52 .13 150);background:var(--ok)}.meter-warn{background:oklch(.62 .13 70);background:var(--warn)}.meter-crit{background:oklch(.55 .2 25);background:var(--danger)}.metrics-load{background:oklch(.975 .005 262);background:var(--surface-2);border:1px solid oklch(.92 .006 262);border:1px solid var(--border);border-radius:9px;border-radius:var(--r);display:flex;flex-wrap:wrap;gap:2rem;gap:var(--sp-6);padding:1rem;padding:var(--sp-4)}.metrics-load .stat{display:flex;flex-direction:column;gap:2px}.metrics-load .stat b{font-feature-settings:"tnum";color:oklch(.27 .021 262);color:var(--ink);font-size:1.0625rem;font-size:var(--text-md);font-variant-numeric:tabular-nums}.metrics-load .stat span{color:oklch(.46 .016 262);color:var(--muted);font-size:.75rem;font-size:var(--text-xs)}.atelier{background:#0b0e14;background:var(--term-bg);color:oklch(.76 .022 265);color:var(--rail-ink);display:flex;flex-direction:column;height:100vh}.atelier-bar{align-items:center;border-bottom:1px solid oklch(.29 .03 265);border-bottom:1px solid var(--rail-border);display:flex;gap:.75rem;gap:var(--sp-3);justify-content:space-between;padding:.75rem 1rem;padding:var(--sp-3) var(--sp-4)}.atelier-bar strong{color:oklch(.97 .008 265);color:var(--rail-ink-strong);font-size:.9375rem;font-size:var(--text-base)}.atelier-bar .links{align-items:center;display:flex;gap:.75rem;gap:var(--sp-3)}.atelier-bar a{color:oklch(.82 .1 230)}.atelier-term{flex:1 1;overflow:hidden;padding:.5rem;padding:var(--sp-2)}.files-box{border-bottom:1px solid oklch(.29 .03 265);border-bottom:1px solid var(--rail-border);color:oklch(.76 .022 265);color:var(--rail-ink);font-size:.8125rem;font-size:var(--text-sm);padding:.75rem 1rem;padding:var(--sp-3) var(--sp-4)}.files-box summary{color:oklch(.97 .008 265);color:var(--rail-ink-strong);cursor:pointer;font-weight:600}.files-box p{color:oklch(.76 .022 265);color:var(--rail-ink);margin:.5rem 0;margin:var(--sp-2) 0}.files-list{flex-direction:column;list-style:none;margin:0 0 .75rem;margin:0 0 var(--sp-3);padding:0}.files-list,.files-list li{display:flex;gap:.5rem;gap:var(--sp-2)}.files-list li{align-items:center}.files-list a{color:oklch(.82 .1 230);font-family:ui-monospace,SFMono-Regular,Menlo,Cascadia Code,monospace;font-family:var(--mono);font-size:.8125rem;font-size:var(--text-sm)}.files-list button{margin-left:auto}.upload-label{align-items:center;background:oklch(.53 .21 264);background:var(--accent);border-radius:9px;border-radius:var(--r);color:oklch(.99 0 0);color:var(--accent-ink);cursor:pointer;display:inline-flex;font-size:.8125rem;font-size:var(--text-sm);font-weight:600;padding:.4rem .75rem}.upload-label:hover{background:oklch(.47 .2 264);background:var(--accent-hover)}.chat{display:flex;flex-direction:column;gap:.75rem;gap:var(--sp-3);max-height:50vh;overflow-y:auto;padding:2px}.chat-msg{border-radius:9px;border-radius:var(--r);max-width:92%;padding:.7rem .9rem}.chat-msg.user{align-self:flex-end;background:oklch(.53 .21 264);background:var(--accent);color:oklch(.99 0 0);color:var(--accent-ink)}.chat-msg.assistant{align-self:flex-start;background:oklch(.975 .005 262);background:var(--surface-2);border:1px solid oklch(.92 .006 262);border:1px solid var(--border)}.chat-text{font-size:.9375rem;font-size:var(--text-base);line-height:1.45;white-space:pre-wrap}.tool-badges{display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:.4rem}.tool-badge{background:oklch(.955 .035 264);background:var(--accent-weak);border-radius:999px;border-radius:var(--r-pill);color:oklch(.43 .18 264);color:var(--accent-weak-ink);font-family:ui-monospace,SFMono-Regular,Menlo,Cascadia Code,monospace;font-family:var(--mono);font-size:.75rem;font-size:var(--text-xs);font-weight:600;padding:.1rem .55rem}.cursor{animation:blink 1s step-end infinite}@keyframes blink{50%{opacity:0}}.develop-form{flex-direction:column}.develop-controls,.develop-form{display:flex;gap:.75rem;gap:var(--sp-3)}.develop-controls select{flex:1 1}.develop-footer{display:flex;gap:.75rem;gap:var(--sp-3)}.develop-footer button{flex:1 1}table.line-items th{color:oklch(.46 .016 262);color:var(--muted);font-weight:600;padding:.2rem .4rem;text-transform:none}table.line-items td{border:none;padding:.25rem .4rem}table.line-items input{width:100%}table.line-items td:nth-child(2){width:130px}table.line-items td:last-child{width:40px}.line-items-total{color:oklch(.27 .021 262);color:var(--ink);margin:.5rem 0;margin:var(--sp-2) 0;text-align:right}.line-items-total strong{font-size:1.0625rem;font-size:var(--text-md)}.activation-link{background:oklch(.975 .005 262);background:var(--surface-2);border:1px solid oklch(.92 .006 262);border:1px solid var(--border);border-radius:9px;border-radius:var(--r);color:oklch(.27 .021 262);color:var(--ink);font-family:ui-monospace,SFMono-Regular,Menlo,Cascadia Code,monospace;font-family:var(--mono);font-size:.8125rem;font-size:var(--text-sm);margin:0;padding:.65rem .8rem;-webkit-user-select:all;user-select:all;word-break:break-all}.modal-overlay{align-items:flex-start;background:oklch(.2 .02 262/.45);display:flex;inset:0;justify-content:center;overflow-y:auto;padding:6vh 1rem 1rem;padding:6vh var(--sp-4) var(--sp-4);position:fixed;z-index:310;z-index:var(--z-modal)}.modal{box-shadow:0 24px 60px -20px oklch(.2 .03 262/.4);box-shadow:var(--shadow-lg);max-width:560px;width:100%}.modal-actions{display:flex;gap:.75rem;gap:var(--sp-3)}.modal-actions button{flex:1 1}.auth{background:radial-gradient(60% 60% at 50% 0,oklch(.95 .035 264),#0000 70%),oklch(.985 .004 262);background:radial-gradient(60% 60% at 50% 0,oklch(.95 .035 264),#0000 70%),var(--bg);display:grid;min-height:100vh;padding:2rem 1rem;padding:var(--sp-6) var(--sp-4);place-items:center}.auth-card{background:oklch(1 0 0);background:var(--surface);border:1px solid oklch(.92 .006 262);border:1px solid var(--border);border-radius:14px;border-radius:var(--r-lg);box-shadow:0 1px 3px oklch(.27 .02 262/.08),0 8px 24px -12px oklch(.27 .02 262/.16);box-shadow:var(--shadow);display:flex;flex-direction:column;gap:1rem;gap:var(--sp-4);max-width:380px;padding:2rem;padding:var(--sp-6);width:100%}.auth-brand{align-items:center;display:flex;gap:.75rem;gap:var(--sp-3);justify-content:center;margin-bottom:.5rem;margin-bottom:var(--sp-2)}.auth-brand .mark{background:oklch(.53 .21 264);background:var(--accent);border-radius:9px;color:oklch(.99 0 0);color:var(--accent-ink);display:grid;font-weight:800;height:36px;place-items:center;width:36px}.auth-brand .word{font-size:1.125rem;font-weight:700;letter-spacing:-.01em}.auth-brand .word span{color:oklch(.46 .016 262);color:var(--muted);font-weight:500}.auth-card h1{font-size:1.25rem;font-size:var(--text-lg);text-align:center}@media (max-width:860px){.app{grid-template-columns:1fr}.rail{align-items:center;flex-direction:row;flex-wrap:wrap;gap:.5rem;gap:var(--sp-2);height:auto;padding:.5rem .75rem;padding:var(--sp-2) var(--sp-3);position:-webkit-sticky;position:sticky;top:0}.rail-brand{padding:.5rem;padding:var(--sp-2)}.rail-section{display:none}.rail-nav{flex:1 1;flex-direction:row;flex-wrap:wrap}.rail-link{padding:.4rem .6rem}.rail-link .ico{display:none}.rail-foot{margin:0;padding:0}.rail-user{display:none}.rail-logout{width:auto}.topbar{padding:.75rem 1rem;padding:var(--sp-3) var(--sp-4)}.page{padding:1rem;padding:var(--sp-4)}}@media (max-width:680px){table.table,table.users{-webkit-overflow-scrolling:touch;display:block;overflow-x:auto;white-space:nowrap}}@media (prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;transition-duration:.001ms!important}}
/*# sourceMappingURL=main.efb85bbb.css.map*/