:root{--ink:#0f1a28;--blue:#245ea9;--amber:#d8db6b;--alabaster:#ededeb;--bg:#f4f5f6;--surface:#fff;--lane:#e9ecef;--lane-2:#dde2e7;--text:#0f1a28;--muted:#566170;--line:#0f1a2821;--link:#1b4c8c;--focus:#245ea9;--amber-strong:#a39c00;--reason-bg:#d8db6b4d;--ok:#0b7a4b;--danger:#b42318;--danger-bg:#b4231814;--hard-bg:#245ea91a;--hard-text:#1b4c8c;--flex-bg:#d8db6b8c;--flex-text:#3d3a00;--belt-a:#c3cad3;--belt-b:#a9b3bf;--node-bg:#fff;--node-fg:#566170;--node-line:#aab4c0;--node-on-bg:#245ea9;--node-on-fg:#fff;--btn-bg:#245ea9;--shadow:0 1px 2px #0f1a280f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#0f1a28;--surface:#17283c;--lane:#122134;--lane-2:#1c3149;--text:#ededeb;--muted:#a8b3c1;--line:#ffffff21;--link:#8fb9f2;--focus:#d8db6b;--amber-strong:#d8db6b;--reason-bg:#d8db6b24;--ok:#4ad991;--danger:#ff9a90;--danger-bg:#ff9a901a;--hard-bg:#8fb9f224;--hard-text:#a9ccf7;--flex-bg:#d8db6b33;--flex-text:#e9ec9a;--belt-a:#35506d;--belt-b:#223a54;--node-bg:#17283c;--node-fg:#a8b3c1;--node-line:#3a5372;--node-on-bg:#d8db6b;--node-on-fg:#0f1a28;--shadow:none;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:Poppins,system-ui,-apple-system,Segoe UI,sans-serif;font-size:.9375rem;line-height:1.5}blockquote,body,dd,dl,h1,h2,h3,ol,p,ul{margin:0}ol,ul{padding:0;list-style:none}a{color:var(--link);text-underline-offset:3px}button{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:6px}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:100;background:var(--amber);color:var(--ink);border-radius:8px;padding:8px 14px;font-weight:600;position:absolute;top:-64px;left:12px}.skip-link:focus{top:12px}.icon{letter-spacing:normal;text-transform:none;white-space:nowrap;vertical-align:-.22em;font-feature-settings:"liga";-webkit-font-smoothing:antialiased;font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24;visibility:hidden;flex:none;width:1em;height:1em;font-family:Material Symbols Rounded;font-size:1.2em;font-style:normal;font-weight:400;line-height:1;display:inline-block;overflow:hidden}.icons-ready .icon{visibility:visible}.icon-filled{font-variation-settings:"FILL" 1,"wght" 400,"GRAD" 0,"opsz" 24}.btn,.btn-link,.icon-button{cursor:pointer;align-items:center;gap:8px;font-weight:500;line-height:1.2;display:inline-flex}.btn{background:0 0;border:1px solid #0000;border-radius:8px;min-height:40px;padding:9px 14px;font-size:.875rem}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--btn-bg);color:#fff}.btn-primary:hover:not(:disabled){filter:brightness(1.1)}.btn-ghost-dark{color:var(--alabaster);border-color:#ffffff47}.btn-ghost-dark:hover{background:#ffffff1f}.topbar .btn:focus-visible,.topbar a:focus-visible{outline-color:var(--amber)}.btn-link{color:var(--link);text-underline-offset:3px;font-size:inherit;padding:2px 0;text-decoration:underline}.btn-link,.icon-button{background:0 0;border:0}.icon-button{color:inherit;border-radius:8px;padding:6px}.icon-button:hover{background:#ffffff24}.login{background:linear-gradient(135deg,#0f1a28,#0f1a28 45%,#245ea9 130%);place-items:center;min-height:100dvh;padding:24px 16px;display:grid}.login-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;gap:14px;width:min(100%,26rem);padding:28px 24px;display:grid}.login-logo{width:72px;color:var(--blue)}.login-card h1{letter-spacing:-.01em;font-size:1.5rem;font-weight:600;line-height:1.2}.login-lead{color:var(--muted)}.login-form{gap:8px;display:grid}.login-form label{font-size:.875rem;font-weight:500}.login-form input{border:1px solid var(--line);background:var(--bg);width:100%;min-height:44px;color:var(--text);font:inherit;border-radius:8px;padding:10px 12px}.login-form input[aria-invalid=true]{border-color:var(--danger)}.login-form .btn{justify-content:center;margin-top:6px}.help{color:var(--muted);font-size:.8125rem}.form-error{background:var(--danger-bg);color:var(--danger);border-radius:8px;align-items:flex-start;gap:8px;padding:10px 12px;font-size:.875rem;font-weight:500;display:flex}.shell{min-height:100dvh}.topbar{z-index:30;color:var(--alabaster);background:linear-gradient(135deg,#0f1a28,#0f1a28 55%,#1c4a82 130%);border-bottom:1px solid #ffffff14;position:sticky;top:0}.topbar-inner{flex-wrap:wrap;gap:10px 20px;padding:10px 24px}.brand,.topbar-inner,.topbar-status{align-items:center;display:flex}.brand{color:inherit;gap:12px;margin-right:auto;text-decoration:none}.brand-logo{width:46px;color:var(--alabaster)}.brand-text{letter-spacing:-.005em;font-size:1rem;font-weight:600}.topbar-status{flex-wrap:wrap;gap:14px}.updated{color:#bcc6d2;font-variant-numeric:tabular-nums;font-size:.8125rem}.topbar-actions{flex-wrap:wrap;gap:8px;display:flex}.connection{background:#ffffff17;border:1px solid #ffffff2e;border-radius:999px;align-items:center;gap:8px;padding:5px 12px;font-size:.8125rem;font-weight:600;display:inline-flex}.connection-dot{background:#9b9b9a;border-radius:50%;width:9px;height:9px;position:relative}.connection[data-state=live] .connection-dot{background:#4ad991}.connection[data-state=live] .connection-dot:after{content:"";opacity:0;border:2px solid #4ad991;border-radius:50%;animation:2.6s ease-out infinite live-ring;position:absolute;inset:-4px}.connection[data-state=reconnecting] .connection-dot{background:var(--amber)}.connection[data-state=connecting] .connection-dot{background:#9b9b9a}.connection[data-state=offline] .connection-dot{background:#ff9a90}@keyframes live-ring{0%{opacity:.8;transform:scale(.6)}to{opacity:0;transform:scale(1.5)}}.content{padding:20px 24px 64px}.page{gap:16px;min-width:0;display:grid}.page-head{flex-wrap:wrap;align-items:baseline;gap:4px 16px;display:flex}.detail-head h1,.page-head h1{letter-spacing:-.02em;font-size:1.75rem;font-weight:700;line-height:1.15}.page-summary{color:var(--muted);min-height:1.4em;font-size:.9375rem}.banner{border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 14px;font-size:.875rem;display:flex}.banner-warn{background:var(--flex-bg);color:var(--flex-text)}.panel{background:var(--surface);border:1px solid var(--line);border-radius:16px;align-items:flex-start;gap:16px;padding:24px;display:flex}.panel>.icon{font-size:2rem}.panel h1,.panel h2{margin-bottom:6px;font-size:1.25rem;font-weight:600}.panel p{color:var(--muted);max-width:60ch;margin-bottom:14px}.panel-error>.icon{color:var(--danger)}.line{background:var(--surface);border:1px solid var(--line);border-radius:16px;min-width:0;padding:14px 8px 8px}.line-track{padding-bottom:6px;display:flex;overflow-x:auto}.station{flex:1 0 6.25rem;min-width:0;position:relative}.station-link{z-index:1;text-align:center;color:var(--text);border-radius:10px;flex-direction:column;align-items:center;gap:4px;padding:2px 6px 6px;text-decoration:none;display:flex;position:relative}.station-link:hover .station-name{text-underline-offset:3px;text-decoration:underline}.station-node{background:var(--node-bg);width:34px;height:34px;color:var(--node-fg);border:2px solid var(--node-line);box-shadow:0 0 0 calc(10px * var(--glow,0)) rgba(216,219,107,calc(.6 * var(--glow,0)));border-radius:50%;place-items:center;font-size:.8125rem;font-weight:600;display:grid}.station[data-filled=true] .station-node{background:var(--node-on-bg);color:var(--node-on-fg);border-color:var(--node-on-bg)}.station-name{color:var(--muted);align-items:center;min-height:2.5em;font-size:.75rem;font-weight:500;line-height:1.25;display:flex}.station-count{font-variant-numeric:tabular-nums;font-size:1.25rem;font-weight:600;line-height:1}.segment{z-index:0;background:repeating-linear-gradient(90deg,var(--belt-a) 0 10px,var(--belt-b) 10px 12px);width:100%;height:6px;top:19px;left:50%}.segment,.segment:after{border-radius:3px;position:absolute}.segment:after{content:"";background:var(--amber);transform-origin:0;transform:scaleX(var(--fill,0));opacity:var(--fill,0);inset:0}.number{font-variant-numeric:tabular-nums;display:inline-block}.board-wrap,.lane{min-width:0}.board{scroll-snap-type:x proximity;overscroll-behavior-x:contain;padding-bottom:12px;display:flex;overflow-x:auto}.lane{scroll-snap-align:start;flex-direction:column;flex:0 0 17.5rem;padding:0 5px;scroll-margin-left:0;display:flex}.lane-head{grid-template-columns:auto 1fr auto;align-content:start;align-items:center;gap:6px 10px;min-height:7.5rem;padding:2px 6px 12px;display:grid}.lane-num{background:var(--lane-2);width:26px;height:26px;color:var(--muted);border-radius:50%;place-items:center;font-size:.75rem;font-weight:600;display:grid}.lane-head h2{letter-spacing:-.005em;font-size:1rem;font-weight:600;line-height:1.25}.lane-head h2:focus-visible{outline-offset:4px}.lane-count{background:var(--lane-2);border-radius:999px;place-items:center;min-width:28px;height:28px;padding:0 8px;font-size:.875rem;font-weight:600;display:inline-grid}.lane-desc{color:var(--muted);grid-column:1/-1;font-size:.8125rem;line-height:1.45}.belt{background:repeating-linear-gradient(90deg,var(--belt-a) 0 14px,var(--belt-b) 14px 16px);height:12px;margin:0 -5px}.lane:first-child .belt{border-radius:6px 0 0 6px;margin-left:0}.lane:last-child .belt{border-radius:0 6px 6px 0;margin-right:0}.lane-body{background:var(--lane);border-radius:0 0 14px 14px;flex:1;min-height:12rem;margin-top:4px;padding:10px}.cards{gap:10px;display:grid}.empty{color:var(--muted);gap:8px;padding:6px 2px;font-size:.8125rem;line-height:1.5;display:flex}.card{--gate-color:var(--node-line);background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--gate-color);box-shadow:0 0 0 calc(4px * var(--flash,0)) rgba(216,219,107,calc(.9 * var(--flash,0))),var(--shadow);border-radius:12px;gap:6px;padding:12px 12px 10px;display:grid;position:relative}.card[data-gate=hard]{--gate-color:var(--blue)}.card[data-gate=flexible]{--gate-color:var(--amber-strong)}.card.is-flash{--flash:1}.card.is-travelling{z-index:20;box-shadow:0 18px 32px -10px #0f1a2880,0 0 0 3px #d8db6be6}.card-name{font-size:.9375rem;font-weight:600;line-height:1.3}.card-link{color:var(--text);text-decoration:none}.card-link:after{content:"";border-radius:12px;position:absolute;inset:0}.card:hover .card-link{text-underline-offset:3px;text-decoration:underline}.card-link:focus-visible{outline:none}.card:has(.card-link:focus-visible){outline:3px solid var(--focus);outline-offset:2px}.card-slug{color:var(--muted);overflow-wrap:anywhere;flex-wrap:wrap;gap:4px 10px;font-size:.75rem;display:flex}.card-porta{font-weight:500}.card-flag{display:flex}.card-last,.card-time{color:var(--muted);font-size:.8125rem;line-height:1.4}.card-last strong{color:var(--text);font-weight:600}.card-ago{font-size:.75rem;display:block}.gate{border-top:1px dashed var(--line);gap:3px;padding-top:8px;font-size:.8125rem;line-height:1.4;display:grid}.gate-kind{border-radius:999px;align-items:center;gap:6px;width:fit-content;padding:2px 8px;font-weight:600;display:inline-flex}.gate-kind[data-kind=hard]{background:var(--hard-bg);color:var(--hard-text)}.gate-kind[data-kind=flexible]{background:var(--flex-bg);color:var(--flex-text)}.gate-done,.gate-ok{color:var(--ok)}.gate-done,.gate-error,.gate-loading{padding-left:0}.gate-ok{gap:6px;font-weight:500;display:flex}.gate-error{color:var(--danger)}.gate-loading{color:var(--muted);font-weight:500}.gate-next{color:var(--text)}.gate-missing{color:var(--danger);gap:6px;font-weight:500;display:flex}.gate-note{color:var(--muted);gap:6px;display:flex}.card-action{z-index:2;width:fit-content;font-size:.8125rem;position:relative}.card-links{flex-wrap:wrap;gap:4px 12px;padding-top:4px;display:flex}.card-links a{z-index:2;align-items:center;gap:4px;font-size:.8125rem;font-weight:500;display:inline-flex;position:relative}.skeleton-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;gap:10px;padding:14px;display:grid}.skeleton-dot,.skeleton-line{background:linear-gradient(90deg,var(--lane-2) 0,var(--line) 50%,var(--lane-2) 100%);background-size:200% 100%;border-radius:5px;width:70%;height:10px;animation:1.4s linear infinite shimmer;display:block}.skeleton-line.wide{width:90%}.skeleton-line.short{width:40%}.skeleton-line.tall{height:28px}.skeleton-dot{vertical-align:middle;border-radius:50%;width:10px;height:10px;display:inline-block}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.toast-region{z-index:50;pointer-events:none;justify-content:center;display:flex;position:fixed;bottom:16px;left:16px;right:16px}.toast{pointer-events:auto;max-width:40rem;color:var(--alabaster);background:#0f1a28;border:1px solid #d8db6b80;border-radius:12px;align-items:center;gap:12px;padding:10px 12px 10px 16px;display:flex;box-shadow:0 16px 36px -12px #0f1a2899}.toast .btn-link,.toast>.icon{color:var(--amber)}.toast p{overflow-wrap:anywhere;font-size:.875rem}.toast .btn-link{flex:none;font-weight:600}.toast :focus-visible{outline-color:var(--amber)}.back-link{align-items:center;gap:6px;width:fit-content;font-weight:500;display:inline-flex}.detail-head{gap:6px;display:grid}.detail-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px 16px;font-size:.875rem;display:flex}.detail-slug{color:var(--text);overflow-wrap:anywhere;font-weight:500}.detail-stage-desc{color:var(--muted);max-width:70ch}.chip{border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:.75rem;font-weight:600;line-height:1.4;display:inline-flex}.chip[data-kind=hard]{background:var(--hard-bg);color:var(--hard-text)}.chip[data-kind=flexible]{background:var(--flex-bg);color:var(--flex-text)}.chip[data-kind=exception]{background:var(--danger-bg);color:var(--danger)}.chip-plain{border:1px solid var(--line);color:var(--muted);font-weight:500}.chip-stage{background:var(--node-on-bg);color:var(--node-on-fg)}.rail{background:var(--surface);border:1px solid var(--line);border-radius:16px;grid-template-columns:repeat(9,minmax(0,1fr));gap:4px;padding:12px 8px;display:grid}.rail-step{text-align:center;flex-direction:column;align-items:center;gap:4px;padding-top:0;display:flex;position:relative}.rail-node{border:2px solid var(--node-line);background:var(--node-bg);width:30px;height:30px;color:var(--node-fg);border-radius:50%;place-items:center;font-size:.8125rem;font-weight:600;display:grid}.rail-step[data-state=done] .rail-node{background:var(--lane-2);color:var(--text)}.rail-step[data-state=current] .rail-node{background:var(--node-on-bg);color:var(--node-on-fg);border-color:var(--node-on-bg);box-shadow:0 0 0 4px #d8db6b8c}.rail-name{color:var(--muted);font-size:.75rem;font-weight:500;line-height:1.25}.rail-step[data-state=current] .rail-name{color:var(--text);font-weight:700}.detail-grid{grid-template-columns:minmax(0,1fr) minmax(0,24rem);align-items:start;gap:24px;display:grid}.detail-main h2,.side-block h2{margin-bottom:12px;font-size:1.125rem;font-weight:600}.detail-side{gap:16px;display:grid}.side-block{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:16px}.empty-inline{color:var(--muted);font-size:.875rem}.detail-loading,.event{gap:12px}.detail-loading,.event,.event-body,.event-icon,.timeline{display:grid}.event{border-radius:10px;grid-template-columns:36px minmax(0,1fr);padding-bottom:18px;position:relative}.event:not(:last-child):before{content:"";background:var(--line);width:2px;position:absolute;top:38px;bottom:2px;left:17px}.event-icon{background:var(--lane-2);width:36px;height:36px;color:var(--text);border-radius:50%;place-items:center}.event[data-tone=enter] .event-icon,.event[data-tone=move] .event-icon{background:var(--node-on-bg);color:var(--node-on-fg)}.event[data-tone=alert] .event-icon,.event[data-tone=back] .event-icon{background:var(--danger-bg);color:var(--danger)}.event[data-tone=exception] .event-icon{background:var(--flex-bg);color:var(--flex-text)}.event-body{gap:6px;min-width:0;padding-top:2px}.event-title{overflow-wrap:anywhere;font-size:.9375rem}.event-exception,.event-time,.event-trigger{color:var(--muted);font-size:.8125rem}.event-exception,.event-trigger{gap:6px;display:flex}.reason{border-left:4px solid var(--amber-strong);background:var(--reason-bg);border-radius:0 10px 10px 0;gap:4px;padding:10px 12px;display:grid}.reason-label{align-items:center;gap:6px;font-size:.8125rem;font-weight:600;display:flex}.evidence dd,.link-list span span,.reason-text,.token-box code{overflow-wrap:anywhere}.evidence{gap:2px;font-size:.8125rem;display:grid}.evidence>div{grid-template-columns:minmax(7rem,11rem) minmax(0,1fr);gap:8px;display:grid}.evidence dt,.step-desc{color:var(--muted)}.evidence dd{font-weight:500}.event-links{flex-wrap:wrap;gap:4px 14px;font-size:.8125rem;display:flex}.event-links a{align-items:center;gap:4px;display:inline-flex}.steps{gap:14px;display:grid}.step{border-bottom:1px dashed var(--line);gap:6px;padding-bottom:14px;display:grid}.step:last-child{border-bottom:0;padding-bottom:0}.step-title{font-weight:600}.step-chips{flex-wrap:wrap;gap:6px;display:flex}.exceptions,.needs,.step-desc{font-size:.8125rem}.needs{gap:2px;display:grid}.needs li{color:var(--ok);align-items:center;gap:6px;display:flex}.needs li[data-missing=true]{color:var(--danger);font-weight:500}.exceptions{border-top:1px solid var(--line);gap:6px;margin-top:14px;padding-top:12px;display:grid}.exceptions h3{font-size:.875rem}.link-list{gap:10px;display:grid}.link-list a{align-items:flex-start;gap:8px;display:flex}.link-list span span{color:var(--muted);font-size:.8125rem;font-weight:400;display:block}@media (width<=959px){.detail-grid{grid-template-columns:minmax(0,1fr)}.detail-side{order:-1}.rail{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 4px}}@media (width<=719px){.topbar-inner{gap:8px 12px;padding:8px 16px}.brand-logo{width:38px}.topbar-actions{width:100%}.topbar-actions .btn{flex:1;justify-content:center;min-height:38px;padding:6px 10px}.content{padding:16px 16px 96px}.detail-head h1,.page-head h1{font-size:1.5rem}.board{padding-bottom:0;display:block;overflow:visible}.lane{margin-bottom:18px;padding:0}.lane-body,.lane-head{min-height:0}.belt,.lane:first-child .belt,.lane:last-child .belt{border-radius:6px;margin:0}.lane-body{border-radius:0 0 14px 14px}.evidence>div{grid-template-columns:minmax(0,1fr);gap:0}.panel{flex-direction:column;padding:18px}}@media (prefers-reduced-motion:reduce){.connection[data-state=live] .connection-dot:after,.skeleton-dot,.skeleton-line{animation:none}html{scroll-behavior:auto}}.boot{background:var(--bg);place-items:center;min-height:100dvh;display:grid}.account-sections{gap:16px;max-width:40rem;display:grid}.account-section{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;gap:10px;padding:20px;display:grid}.account-section h2{font-size:1.125rem;font-weight:600}.account-section dt,.account-section p{color:var(--muted)}.account-section dl{grid-template-columns:max-content 1fr;gap:4px 12px;display:grid}.account-form{gap:8px;display:grid}.account-form label{font-size:.875rem;font-weight:500}.account-form input{border:1px solid var(--line);background:var(--bg);width:100%;min-height:44px;color:var(--text);font:inherit;border-radius:8px;padding:10px 12px}.account-form input[aria-invalid=true]{border-color:var(--danger)}.account-form .btn,.account-section>.btn{justify-self:start;margin-top:6px}.form-ok{background:var(--hard-bg);color:var(--hard-text);border-radius:8px;align-items:flex-start;padding:10px 12px;font-size:.875rem;font-weight:500}.form-ok,.token-box{gap:8px;display:flex}.token-box{flex-wrap:wrap;align-items:center}.token-box code{background:var(--lane);border:1px solid var(--line);border-radius:8px;flex:14rem;min-width:0;padding:10px 12px;font-size:.8125rem}.btn-outline{border-color:var(--line);color:var(--text)}.btn-outline:hover:not(:disabled){background:var(--lane)}
