@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/plex-mono-400-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/plex-mono-400-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/plex-mono-500-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/plex-mono-500-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/plex-sans-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/plex-sans-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/plex-sans-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/plex-sans-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/plex-sans-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/plex-sans-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--surface-0:#0a0d13;--surface-1:#161c26;--surface-2:#1f2733;--surface-3:#28313f;--field-bg:#0c1118;--surface-rail:#070a0f;--line:#ffffff12;--line-strong:#ffffff26;--text:#e8edf3;--text-soft:#aab6c4;--text-weak:#8b97a6;--accent:#4c9bf0;--accent-hover:#6cadf4;--accent-ink:#06121f;--accent-weak:#4c9bf024;--ok:#3fb950;--ok-weak:#3fb95024;--warn:#e6b450;--warn-weak:#e6b45024;--danger:#f2555f;--danger-weak:#f2555f24;--info:#6db6f5;--info-weak:#6db6f524;--chart-success:#1f9e7a;--chart-abort:#c67f28;--chart-accent:#3986da;--chart-grid:#232c39;--chart-axis:#3a4657;--chart-label:#9aa7b4;--chart-text:var(--text);--chart-track:#1a222d;--chart-tooltip-bg:#111925f5;--chart-tooltip-fg:#f8fafc;--s1:.25rem;--s2:.5rem;--s3:.75rem;--s4:1rem;--s5:1.5rem;--s6:2rem;--s7:3rem;--fs-xs:.75rem;--fs-sm:.8125rem;--fs-md:.875rem;--fs-lg:1rem;--fs-xl:1.25rem;--fs-2xl:1.75rem;--fs-h1:1.75rem;--fs-h2:1.0625rem;--fs-h3:.9375rem;--fs-num:1.5rem;--lh-tight:1.25;--lh-base:1.65;--r-sm:4px;--r-md:6px;--r-lg:10px;--r-xl:14px;--r-full:999px;--shadow-1:0 1px 0 #ffffff0b inset, 0 2px 10px #00000047;--shadow-2:0 8px 24px #0006;--shadow-3:0 20px 48px #00000080;--z-sticky:10;--z-overlay:100;--ease:.14s cubic-bezier(.2, 0, .2, 1);--font-sans:"IBM Plex Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, "Cascadia Mono", Consolas, monospace;--print-bg:#fff;--print-fg:#000;--print-line:#ccc}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--surface-0);color:var(--text);font-family:var(--font-sans);font-size:var(--fs-md);line-height:var(--lh-base);-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3,h4,p,figure{margin:0}h1{font-size:var(--fs-h1);letter-spacing:-.022em;text-wrap:balance;font-weight:600;line-height:1.15}h2{font-size:var(--fs-h2);line-height:var(--lh-tight);letter-spacing:-.012em;font-weight:600}h3{font-size:var(--fs-h3);line-height:var(--lh-tight);font-weight:600}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-sm)}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.muted{color:var(--text-soft)}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}input,select,textarea,button{font:inherit;color:inherit}input[type=text],input[type=password],input[type=search],select,textarea{width:100%;padding:var(--s2) var(--s3);border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--field-bg);color:var(--text);transition:border-color var(--ease), box-shadow var(--ease)}input::placeholder,textarea::placeholder{color:var(--text-weak)}input:hover:not(:disabled),select:hover:not(:disabled),textarea:hover:not(:disabled){border-color:#ffffff42}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-weak);outline:none}input:disabled,select:disabled{opacity:.55;cursor:not-allowed}input::placeholder{color:var(--text-weak)}.btn{justify-content:center;align-items:center;gap:var(--s2);padding:var(--s2) var(--s4);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-2);color:var(--text);font-size:var(--fs-md);cursor:pointer;white-space:nowrap;transition:background var(--ease), border-color var(--ease), opacity var(--ease);font-weight:550;display:inline-flex}.btn:hover:not(:disabled){background:var(--surface-3);border-color:var(--line-strong)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}.btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn-danger{color:var(--danger);background:0 0;border-color:#f4757c73}.btn-danger:hover:not(:disabled){background:var(--danger-weak)}.btn-ghost{color:var(--text-soft);background:0 0;border-color:#0000}.btn-ghost:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.btn-sm{padding:var(--s1) var(--s3);font-size:var(--fs-sm)}.app-shell{flex-direction:column;min-height:100vh;display:flex}:root{--rail-w:236px}body:has(>.railbar){grid-template-columns:var(--rail-w) minmax(0, 1fr);min-height:100vh;display:grid}.app-shell:has(>.railbar){grid-template-columns:var(--rail-w) minmax(0, 1fr);min-height:100vh;display:grid}.railbar{height:100vh;padding:var(--s5) 0 var(--s4);background:var(--surface-rail);border-right:1px solid var(--line);flex-direction:column;align-self:start;display:flex;position:sticky;top:0;overflow-y:auto}.rail-brand{padding:0 var(--s5) var(--s6);display:block}.rail-brand:hover{text-decoration:none}.rail-logo{width:148px;max-width:100%;height:auto;display:block}.rail-nav{gap:var(--s5);padding:0 var(--s3);flex-direction:column;display:flex}.rail-group{flex-direction:column;gap:1px;display:flex}.rail-group-title{margin:0 0 var(--s2);padding:0 var(--s3);color:var(--text-weak);font-size:var(--fs-xs);letter-spacing:.1em;text-transform:uppercase;font-weight:620}.rail-item{align-items:center;gap:var(--s2);width:100%;padding:var(--s2) var(--s3);border-radius:var(--r-md);color:var(--text-soft);font-family:inherit;font-size:var(--fs-md);text-align:left;cursor:pointer;transition:background var(--ease), color var(--ease);background:0 0;border:0;font-weight:450;line-height:1.4;text-decoration:none;display:flex;position:relative}.rail-item:hover{background:var(--surface-2);color:var(--text);text-decoration:none}.rail-item:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.rail-item[aria-current=page]{background:var(--accent-weak);color:var(--accent);font-weight:600}.rail-item[aria-current=page]:before{content:"";background:var(--accent);border-radius:0 2px 2px 0;width:2px;position:absolute;top:22%;bottom:22%;left:0}.rail-tag{min-width:1.3rem;height:1.3rem;padding:0 var(--s1);border-radius:var(--r-full);background:var(--warn-weak);color:var(--warn);font-size:var(--fs-xs);font-variant-numeric:tabular-nums;place-items:center;margin-left:auto;font-weight:700;display:inline-grid}.rail-foot{margin:var(--s5) var(--s3) 0;padding-top:var(--s4);border-top:1px solid var(--line);flex-direction:column;gap:1px;display:flex}.rail-quiet{color:var(--text-weak);font-size:var(--fs-sm)}@media (max-width:1040px){body:has(>.railbar){grid-template-columns:minmax(0,1fr)}.app-shell:has(>.railbar){grid-template-columns:minmax(0,1fr)}.railbar{z-index:var(--z-sticky);align-items:center;gap:var(--s4);height:auto;padding:var(--s2) var(--s4);border-right:0;border-bottom:1px solid var(--line);scrollbar-width:thin;flex-flow:row;position:sticky;top:0;overflow:auto hidden}.rail-brand{flex:none;padding:0}.rail-logo{width:96px}.rail-nav{gap:var(--s4);flex-flow:row;flex:none;padding:0}.rail-group{gap:var(--s1);flex-flow:row}.rail-group-title{display:none}.rail-foot{gap:var(--s2);padding:0 0 0 var(--s4);border-top:0;border-left:1px solid var(--line);flex-flow:row;flex:none;margin:0 0 0 auto}.rail-item{white-space:nowrap;width:auto}.rail-item[aria-current=page]:before{display:none}}.page{width:min(1200px,100%);padding:var(--s5) var(--s6) var(--s7);margin:0 auto}.breadcrumb{align-items:center;gap:var(--s2);margin-bottom:var(--s3);font-size:var(--fs-sm);color:var(--text-soft);flex-wrap:wrap;display:flex}.breadcrumb a{color:var(--text-soft)}.breadcrumb a:hover{color:var(--accent)}.breadcrumb-sep{opacity:.5}.page-head{justify-content:space-between;align-items:flex-start;gap:var(--s4);margin-bottom:var(--s5);flex-wrap:wrap;display:flex}.page-title{gap:var(--s1);flex-direction:column;display:flex}.page-sub{color:var(--text-soft);font-size:var(--fs-sm)}.stack{gap:var(--s4);flex-direction:column;display:flex}.row{align-items:center;gap:var(--s3);flex-wrap:wrap;display:flex}.spacer{flex:1}.row-tight{gap:var(--s2)}.row-wide{gap:var(--s5)}.gap-1{gap:var(--s1)}.gap-2{gap:var(--s2)}.gap-3{gap:var(--s3)}.gap-4{gap:var(--s4)}.gap-5{gap:var(--s5)}.row-top{align-items:flex-start}.row-between{justify-content:space-between}.row-end{justify-content:flex-end}.stack-tight{gap:var(--s2)}.stack-wide{gap:var(--s5)}.pair{gap:var(--s1);flex-direction:column;min-width:0;display:flex}.grow{flex:1;min-width:0}.push{margin-left:auto}.nowrap{white-space:nowrap}.w-full{width:100%}.flush{margin:0}.weak{color:var(--text-weak)}.text-sm{font-size:var(--fs-sm)}.text-xs{font-size:var(--fs-xs)}.card{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface-1);box-shadow:var(--shadow-1);overflow:hidden}.card-quiet{box-shadow:none;background:0 0}.card-head{justify-content:space-between;align-items:center;gap:var(--s4);padding:var(--s4) var(--s5);border-bottom:1px solid var(--line);display:flex}.card-body{padding:var(--s5)}.card-head input,.card-head select{width:auto;min-width:11rem}.card-foot{padding:var(--s3) var(--s5);border-top:1px solid var(--line);color:var(--text-soft);font-size:var(--fs-sm)}.section-label{color:var(--text-weak);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;font-weight:640}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%}th,td{padding:var(--s3) var(--s4);text-align:left;font-size:var(--fs-sm)}th{z-index:1;background:var(--surface-1);color:var(--text-weak);border-bottom:1px solid var(--line);font-size:var(--fs-xs);letter-spacing:.07em;text-transform:uppercase;white-space:nowrap;font-weight:620;position:sticky;top:0}td{border-top:1px solid var(--line);vertical-align:middle;font-variant-numeric:tabular-nums}tbody tr:first-child td{border-top:none}.row-link{cursor:pointer}.row-link:hover td{background:var(--surface-2)}.row-link:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.cell-nowrap{white-space:nowrap}.num{text-align:right;font-variant-numeric:tabular-nums}.badge{align-items:center;gap:var(--s1);padding:var(--s1) var(--s2);border-radius:var(--r-full);background:var(--surface-2);color:var(--text-soft);font-size:var(--fs-xs);white-space:nowrap;font-weight:620;display:inline-flex}.badge:before{content:"";background:currentColor;border-radius:50%;width:.4rem;height:.4rem}.badge-ok{background:var(--ok-weak);color:var(--ok)}.badge-warn{background:var(--warn-weak);color:var(--warn)}.badge-danger{background:var(--danger-weak);color:var(--danger)}.badge-info{background:var(--info-weak);color:var(--info)}.badge-plain:before{display:none}.count-pill{min-width:1.35rem;height:1.35rem;padding:0 var(--s1);border-radius:var(--r-full);background:var(--warn-weak);color:var(--warn);font-size:var(--fs-xs);place-items:center;font-weight:700;display:inline-grid}.notice{gap:var(--s3);padding:var(--s3) var(--s4);border-radius:var(--r-md);border:1px solid var(--line);background:var(--surface-1);font-size:var(--fs-sm);line-height:var(--lh-base);align-items:flex-start;display:flex}.notice-ok{background:var(--ok-weak);border-color:#3fb95059}.notice-warn{background:var(--warn-weak);border-color:#e6b45059}.notice-danger{background:var(--danger-weak);border-color:#f2555f59}.notice-info{background:var(--info-weak);border-color:#6db6f552}.notice.gap-1{gap:var(--s1)}.notice.gap-2{gap:var(--s2)}.notice-title{font-weight:640}.notice>*,.card-body>p,.empty-state>p{max-width:80ch}.notice-row{align-items:center}.notice-row .notice-body{flex:1;min-width:0}.notice-action{padding:var(--s1) var(--s3);border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--surface-2);color:var(--text);font-family:inherit;font-size:var(--fs-sm);white-space:nowrap;cursor:pointer;transition:background var(--ease);flex:none;font-weight:500}.notice-action:hover{background:var(--surface-3)}.notice-action:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.machine-head{align-items:baseline;gap:var(--s2) var(--s3);margin-bottom:var(--s4);flex-wrap:wrap;display:flex}.machine-head h1{font-size:var(--fs-h1)}.machine-id{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--text-weak)}.empty-state{gap:var(--s2);padding:var(--s5) var(--s4);text-align:center;color:var(--text-soft);font-size:var(--fs-sm);justify-items:center;display:grid}.empty-state>p{max-width:48ch}.empty-title{color:var(--text);font-weight:600;font-size:var(--fs-md)}@keyframes shimmer{0%{background-position:-320px 0}to{background-position:320px 0}}.skeleton{border-radius:var(--r-sm);background:linear-gradient(90deg, var(--surface-2) 0%, var(--surface-3) 40%, var(--surface-2) 80%);background-size:320px 100%;animation:1.3s linear infinite shimmer}.skeleton-line{height:.85rem;margin:var(--s2) 0}@keyframes spin{to{transform:rotate(360deg)}}.spinner{border:2px solid;border-right-color:#0000;border-radius:50%;flex:none;width:.9rem;height:.9rem;animation:.7s linear infinite spin}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}}.overlay{z-index:var(--z-overlay);padding:var(--s4);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#040908b8;place-items:center;display:grid;position:fixed;inset:0}.dialog{border:1px solid var(--line-strong);border-radius:var(--r-lg);background:var(--surface-1);width:min(560px,100%);max-height:85vh;box-shadow:var(--shadow-3);overflow:auto}.dialog-head{padding:var(--s5) var(--s5) var(--s3)}.dialog-body{padding:0 var(--s5) var(--s4);color:var(--text-soft);font-size:var(--fs-sm)}.dialog-foot{justify-content:flex-end;gap:var(--s2);padding:var(--s4) var(--s5);border-top:1px solid var(--line);display:flex}.toasts{right:var(--s5);bottom:var(--s5);z-index:var(--z-overlay);gap:var(--s2);flex-direction:column;max-width:min(420px,90vw);display:flex;position:fixed}.toast{align-items:flex-start;gap:var(--s3);padding:var(--s3) var(--s4);border-radius:var(--r-md);border:1px solid var(--line-strong);background:var(--surface-2);box-shadow:var(--shadow-2);font-size:var(--fs-sm);display:flex}.toast-ok{border-color:#3fb95066}.toast-danger{border-color:#f2555f66}.login-page{min-height:100vh;padding:var(--s4);place-items:center;display:grid}.login-card{gap:var(--s4);width:min(400px,100%);padding:var(--s6);border:1px solid var(--line);border-radius:var(--r-xl);background:var(--surface-1);box-shadow:var(--shadow-3);display:grid}.login-brand{align-items:flex-start;gap:var(--s2);font-size:var(--fs-sm);letter-spacing:.08em;text-transform:uppercase;color:var(--text-weak);flex-direction:column;font-weight:600;display:flex}.login-logo{width:208px;max-width:100%;height:auto;display:block}.portal-logo{width:124px;max-width:100%;height:auto;display:block}.field-grid{gap:var(--s4) var(--s5);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.field{gap:var(--s1);flex-direction:column;min-width:0;display:flex}.field-label{color:var(--text-soft);font-size:var(--fs-xs);font-weight:600}.field-input{align-items:center;gap:var(--s2);display:flex}.field-unit{color:var(--text-weak);font-size:var(--fs-sm);white-space:nowrap}.field-hint{color:var(--text-weak);font-size:var(--fs-xs);line-height:1.4}.field-error{color:var(--danger);font-size:var(--fs-xs)}.field-dirty>.field-label:after{content:"";width:.4rem;height:.4rem;margin-left:var(--s1);background:var(--warn);vertical-align:middle;border-radius:50%;display:inline-block}input.is-dirty,select.is-dirty{border-color:var(--warn);background:var(--warn-weak)}input.is-invalid,select.is-invalid{border-color:var(--danger);background:var(--danger-weak)}.field-readonly{padding:var(--s2) 0;color:var(--text-soft)}.switch-row{align-items:center;gap:var(--s2);display:flex}.switch{flex:none;width:2.5rem;height:1.4rem;display:inline-flex;position:relative}.switch input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute}.switch-track{border-radius:var(--r-full);background:var(--surface-3);border:1px solid var(--line);transition:background var(--ease), border-color var(--ease);pointer-events:none;position:absolute;inset:0}.switch-track:before{content:"";background:var(--text-weak);width:1rem;height:1rem;transition:transform var(--ease), background var(--ease);border-radius:50%;position:absolute;top:2px;left:2px}.switch input:checked+.switch-track{background:var(--accent-weak);border-color:var(--accent)}.switch input:checked+.switch-track:before{background:var(--accent);transform:translate(1.1rem)}.switch input:focus-visible+.switch-track{outline:2px solid var(--accent);outline-offset:2px}.switch-text{font-size:var(--fs-sm);color:var(--text-soft)}.savebar{z-index:var(--z-sticky);align-items:center;gap:var(--s4);margin-top:var(--s5);padding:var(--s3) var(--s5);border:1px solid var(--warn);border-radius:var(--r-lg);background:color-mix(in srgb, var(--surface-2) 94%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:var(--shadow-2);display:flex;position:sticky;bottom:0}.savebar-count{font-weight:640}.steps{gap:var(--s3);flex-direction:column;display:flex}.step-card{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface-1);box-shadow:var(--shadow-1);overflow:hidden}.step-head{align-items:center;gap:var(--s3);width:100%;padding:var(--s3) var(--s4);color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;display:flex}.step-head:hover{background:var(--surface-2)}.step-num{background:var(--accent-weak);width:1.6rem;height:1.6rem;color:var(--accent);font-size:var(--fs-xs);border-radius:50%;flex:none;place-items:center;font-weight:700;display:grid}.step-title{font-weight:620}.step-summary{color:var(--text-soft);font-size:var(--fs-sm)}.step-body{padding:var(--s4) var(--s5) var(--s5);border-top:1px solid var(--line)}.step-sub{margin-top:var(--s5)}.phase-list{gap:var(--s2);flex-direction:column;display:flex}.phase-row{align-items:center;gap:var(--s3);padding:var(--s2) var(--s3);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-2);font-size:var(--fs-sm);grid-template-columns:1.6rem 1fr auto;display:grid}.phase-bars{gap:var(--s3);color:var(--text-soft);font-size:var(--fs-xs);display:flex}.diff-list{gap:var(--s1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.diff-row{align-items:baseline;gap:var(--s2);padding:var(--s2) var(--s3);border-radius:var(--r-sm);background:var(--surface-2);font-size:var(--fs-sm);flex-wrap:wrap;display:flex}.diff-field{color:var(--text);font-weight:600}.diff-from{color:var(--danger);text-decoration:line-through}.diff-to{color:var(--ok);font-weight:600}.diff-arrow{color:var(--text-weak)}@media (max-width:1100px){.page{padding:var(--s4) var(--s4) var(--s6)}}@media (max-width:720px){.railbar{padding:var(--s2) var(--s3)}.page-head{flex-direction:column}th,td{padding:var(--s2) var(--s3)}.field-grid{grid-template-columns:1fr}}@media print{body{background:var(--print-bg);color:var(--print-fg)}body:has(>.railbar){display:block}.app-shell:has(>.railbar){display:block}.railbar,.subnav,.btn,.toasts,.savebar,.todo-go,select,input,.no-print{display:none!important}.card{border-color:var(--print-line);break-inside:avoid}svg{-webkit-print-color-adjust:exact;print-color-adjust:exact}a[href]{color:inherit;text-decoration:none}}.subnav{align-items:stretch;gap:var(--s1) var(--s6);border-bottom:1px solid var(--line);flex-wrap:wrap;display:flex}.subnav-group{gap:0 var(--s1);flex-wrap:wrap;display:flex}.subnav-item{padding:var(--s2) var(--s3) var(--s3);color:var(--text-soft);font-size:var(--fs-md);white-space:nowrap;transition:color var(--ease), border-color var(--ease);border-bottom:2px solid #0000;margin-bottom:-1px;font-weight:450;text-decoration:none}.subnav-item:hover{color:var(--text);background:#ffffff09;text-decoration:none}.subnav-item:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.subnav-item[aria-current=page]{color:var(--text);border-bottom-color:var(--accent);font-weight:600}.todo{border:1px solid var(--line-strong);border-radius:var(--r-lg);background:var(--surface-1);overflow:hidden}.todo-head{padding:var(--s3) var(--s4);border-bottom:1px solid var(--line);background:var(--surface-2);color:var(--text-soft);font-size:var(--fs-xs);letter-spacing:.07em;text-transform:uppercase;font-weight:650}.todo:has(.todo-sev-warn){border-color:#e6b45052}.todo:has(.todo-sev-warn) .todo-head{background:var(--warn-weak);color:var(--warn);border-bottom-color:#e6b45038}.todo:has(.todo-sev-danger){border-color:#f2555f52}.todo:has(.todo-sev-danger) .todo-head{background:var(--danger-weak);color:var(--danger);border-bottom-color:#f2555f38}.todo-item{align-items:center;gap:var(--s3);padding:var(--s3) var(--s4);display:flex}.todo-item+.todo-item{border-top:1px solid var(--line)}.todo-sev{border-radius:2px;flex:none;align-self:stretch;width:3px}.todo-sev-danger{background:var(--danger)}.todo-sev-warn{background:var(--warn)}.todo-sev-info{background:var(--info)}.todo-text{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.todo-text b{font-size:var(--fs-md);font-weight:600}.todo-text>span{color:var(--text-soft);font-size:var(--fs-sm)}.todo-go{padding:var(--s1) var(--s3);border:1px solid var(--line-strong);border-radius:var(--r-md);color:var(--text);font-family:inherit;font-size:var(--fs-sm);white-space:nowrap;cursor:pointer;transition:background var(--ease);background:0 0;flex:none;font-weight:500;text-decoration:none}.todo-go:hover{background:var(--surface-2);text-decoration:none}.todo-go:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.statbar{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface-1);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid;overflow:hidden}.statbar-cell{padding:var(--s3) var(--s5);border-left:1px solid var(--line)}.statbar-cell:first-child{border-left:0}.statbar-key{color:var(--text-weak);font-size:var(--fs-xs);letter-spacing:.07em;text-transform:uppercase;font-weight:620;display:block}.statbar-val{font-size:var(--fs-num);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-weight:600;line-height:1.25;display:block}.statbar-val small{font-size:var(--fs-sm);color:var(--text-weak);letter-spacing:0;font-weight:450}.statbar-cell.is-ok .statbar-val{color:var(--ok)}.statbar-cell.is-bad .statbar-val{color:var(--danger)}.cell-lead{padding-left:calc(var(--s4) + var(--s1));position:relative}.cell-lead:before{content:"";background:0 0;width:3px;position:absolute;top:0;bottom:0;left:0}tr.is-bad .cell-lead:before{background:var(--danger)}tr.is-warn .cell-lead:before{background:var(--warn)}tr.is-bad td{background:#f2555f0e}tr.is-warn td{background:#e6b4500d}.row-link.is-bad:hover td,.row-link.is-warn:hover td{background:var(--surface-3)}.cell-name{font-size:var(--fs-md);letter-spacing:-.005em;font-weight:600;display:block}.cell-sub{color:var(--text-weak);font-family:var(--font-mono);font-size:var(--fs-xs);display:block}.cell-open{color:var(--text-weak);font-size:var(--fs-lg);text-align:right}.ago{font-variant-numeric:tabular-nums;font-weight:500;display:block}.ago-warn{color:var(--warn);font-weight:650}.ago-bad{color:var(--danger);font-weight:650}.page-note{max-width:62ch;margin-bottom:var(--s5);color:var(--text-soft);font-size:var(--fs-md)}.need-quote{font-size:var(--fs-num);font-weight:600;line-height:var(--lh-tight);font-variant-numeric:tabular-nums;display:block}.need-label{font-size:var(--fs-xs);font-weight:620;display:block}.need-bad{color:var(--danger)}.need-warn{color:var(--warn)}.need-weak{color:var(--text-weak)}
