:root{--bg: #f7f5f1;--card: #ffffff;--surf2: #efebe3;--surf3: #e7e2d8;--bd: rgba(28, 33, 41, .1);--bd-strong: rgba(28, 33, 41, .18);--tx: #1f2731;--tx2: #5e6772;--tx3: #9aa1ab;--pri: #5a54a0;--pri-hover: #4c4790;--pri-tint: rgba(90, 84, 160, .12);--on-pri: #ffffff;--gold: #a9772b;--gold-bg: #f3e9d5;--sage: #4f8770;--sage-bg: #e4efe9;--danger: #b5524a;--danger-bg: #f7e4e2;--danger-tint: rgba(181, 82, 74, .1);--sh-card: 0 1px 2px rgba(30, 39, 49, .05), 0 8px 20px -14px rgba(30, 39, 49, .16);--sh-pop: 0 2px 6px rgba(30, 39, 49, .06), 0 18px 40px -20px rgba(30, 39, 49, .28);--sh-focus: 0 0 0 3px var(--pri-tint);--r-card: 12px;--r-row: 10px;--r-ctl: 9px;--r-sm: 7px;--r-pill: 999px;--s1: 4px;--s2: 8px;--s3: 12px;--s4: 16px;--s5: 20px;--s6: 24px;--s7: 32px;--s8: 40px;--sidebar-w: 232px;--topbar-h: 56px;--content-max: 1180px;--font: "Onest", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace;--ease: cubic-bezier(.2, 0, .2, 1);--dur: .14s;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #0e1116;--card: #161a21;--surf2: #1d232c;--surf3: #262c36;--bd: rgba(255, 255, 255, .09);--bd-strong: rgba(255, 255, 255, .16);--tx: #e9ecf0;--tx2: #9aa3af;--tx3: #646d79;--pri: #9992d2;--pri-hover: #aba5de;--pri-tint: rgba(153, 146, 210, .18);--on-pri: #0e1116;--gold: #d7aa62;--gold-bg: rgba(215, 170, 98, .14);--sage: #86bba0;--sage-bg: rgba(134, 187, 160, .13);--danger: #dc8c84;--danger-bg: rgba(220, 140, 132, .14);--danger-tint: rgba(220, 140, 132, .12);--sh-card: 0 16px 36px -20px rgba(0, 0, 0, .6);--sh-pop: 0 24px 56px -24px rgba(0, 0, 0, .7);color-scheme:dark}}:root[data-theme=dark]{--bg: #0e1116;--card: #161a21;--surf2: #1d232c;--surf3: #262c36;--bd: rgba(255, 255, 255, .09);--bd-strong: rgba(255, 255, 255, .16);--tx: #e9ecf0;--tx2: #9aa3af;--tx3: #646d79;--pri: #9992d2;--pri-hover: #aba5de;--pri-tint: rgba(153, 146, 210, .18);--on-pri: #0e1116;--gold: #d7aa62;--gold-bg: rgba(215, 170, 98, .14);--sage: #86bba0;--sage-bg: rgba(134, 187, 160, .13);--danger: #dc8c84;--danger-bg: rgba(220, 140, 132, .14);--danger-tint: rgba(220, 140, 132, .12);--sh-card: 0 16px 36px -20px rgba(0, 0, 0, .6);--sh-pop: 0 24px 56px -24px rgba(0, 0, 0, .7);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:var(--font);font-size:14px;font-weight:500;line-height:1.5;background:var(--bg);color:var(--tx);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,h4{margin:0;font-weight:800;letter-spacing:-.02em;color:var(--tx)}h1{font-size:22px;line-height:1.15}h2{font-size:16px;line-height:1.25}h3{font-size:14px;line-height:1.3}p{margin:0}a{color:var(--pri);text-decoration:none}a:hover{text-decoration:underline}code,pre,.mono{font-family:var(--font-mono);font-size:.92em}:focus-visible{outline:2px solid var(--pri);outline-offset:2px;border-radius:var(--r-sm)}::selection{background:var(--pri-tint)}.muted{color:var(--tx2)}.dim{color:var(--tx3)}.small{font-size:12.5px}.tiny{font-size:11.5px}.strong{font-weight:700}.nowrap{white-space:nowrap}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eyebrow{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--tx3)}.error-text{color:var(--danger);font-size:12.5px}.shell{display:grid;grid-template-columns:var(--sidebar-w) 1fr;min-height:100vh}.sidebar{display:flex;flex-direction:column;gap:var(--s2);padding:var(--s4) var(--s3);background:var(--card);border-right:1px solid var(--bd);position:sticky;top:0;height:100vh;overflow-y:auto}.brand{display:flex;align-items:center;gap:var(--s2);padding:var(--s2) var(--s2) var(--s4);font-weight:800;letter-spacing:-.02em;color:var(--tx)}.brand-mark{display:grid;place-items:center;width:26px;height:26px;flex:none;border-radius:var(--r-sm);background:var(--pri);color:var(--on-pri);font-size:13px;font-weight:800}.brand-chip{padding:2px 6px;border-radius:var(--r-sm);background:var(--pri-tint);color:var(--pri);font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.nav-group{display:flex;flex-direction:column;gap:2px}.nav-group+.nav-group{margin-top:var(--s4)}.nav-group-label{padding:0 var(--s2) var(--s2);font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--tx3)}.nav-link{display:flex;align-items:center;gap:var(--s3);padding:9px var(--s2);border-radius:var(--r-ctl);color:var(--tx2);font-size:13.5px;font-weight:600;text-decoration:none;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.nav-link:hover{background:var(--surf2);color:var(--tx);text-decoration:none}.nav-link.active{background:var(--pri-tint);color:var(--pri);font-weight:700}.nav-icon{flex:none;width:16px;height:16px;opacity:.9}.sidebar-foot{margin-top:auto;padding-top:var(--s4);border-top:1px solid var(--bd);display:flex;flex-direction:column;gap:var(--s2)}.account{display:flex;align-items:center;gap:var(--s2);min-width:0;padding:var(--s2)}.account-email{min-width:0;font-size:12px;font-weight:600;color:var(--tx2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.main{min-width:0;display:flex;flex-direction:column}.content{flex:1;width:100%;max-width:var(--content-max);padding:var(--s6);margin:0 auto}.spacer{flex:1}.page-head{display:flex;align-items:flex-start;gap:var(--s4);margin-bottom:var(--s5)}.page-head .grow{flex:1;min-width:0}.page-head p{margin-top:var(--s1);color:var(--tx2);font-size:13px;max-width:68ch}.page-actions{display:flex;gap:var(--s2);flex:none}.stack{display:flex;flex-direction:column;gap:var(--s4)}.stack-sm{display:flex;flex-direction:column;gap:var(--s2)}.inline{display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap}.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--s3)}.grid-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--s3)}.grid-4{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:var(--s3)}.grow{flex:1;min-width:0}@media(max-width:900px){.shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;flex-direction:row;align-items:center;gap:var(--s3);overflow-x:auto;border-right:0;border-bottom:1px solid var(--bd);padding:var(--s2) var(--s3)}.brand{padding:0 var(--s2) 0 0}.nav-group{flex-direction:row}.nav-group+.nav-group{margin-top:0}.nav-group-label,.sidebar-foot .account-email{display:none}.sidebar-foot{margin-top:0;margin-left:auto;padding-top:0;border-top:0;flex-direction:row;align-items:center}.content{padding:var(--s4)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);padding:0 var(--s4);height:36px;border:1px solid transparent;border-radius:var(--r-ctl);background:var(--pri);color:var(--on-pri);font:inherit;font-size:13.5px;font-weight:700;letter-spacing:-.01em;white-space:nowrap;cursor:pointer;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease),opacity var(--dur) var(--ease)}.btn:hover:not(:disabled){background:var(--pri-hover)}.btn:disabled{opacity:.5;cursor:not-allowed}a.btn,a.btn:hover{text-decoration:none}.btn-secondary{background:var(--card);border-color:var(--bd-strong);color:var(--tx)}.btn-secondary:hover:not(:disabled){background:var(--surf2)}.btn-ghost{background:transparent;color:var(--tx2)}.btn-ghost:hover:not(:disabled){background:var(--surf2);color:var(--tx)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:var(--danger);filter:brightness(.93)}.btn-danger-ghost{background:transparent;color:var(--danger)}.btn-danger-ghost:hover:not(:disabled){background:var(--danger-tint)}.btn-sm{height:29px;padding:0 10px;font-size:12.5px}.btn-icon{width:30px;height:30px;padding:0;flex:none}.btn-block{width:100%}.field{display:flex;flex-direction:column;gap:5px;min-width:0}.field-label{font-size:12px;font-weight:700;color:var(--tx2);letter-spacing:-.01em}.field-label .req{margin-left:3px;color:var(--danger);font-weight:700}.field-hint{font-size:11.5px;color:var(--tx3);line-height:1.4}.field-error{font-size:11.5px;font-weight:600;color:var(--danger)}.input,.select,.textarea{width:100%;padding:8px 11px;min-height:36px;border:1px solid var(--bd-strong);border-radius:var(--r-ctl);background:var(--card);color:var(--tx);font:inherit;font-size:13.5px;transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.input::placeholder,.textarea::placeholder{color:var(--tx3)}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--pri);box-shadow:var(--sh-focus)}.input[aria-invalid=true],.textarea[aria-invalid=true]{border-color:var(--danger)}.input:disabled,.select:disabled,.textarea:disabled{background:var(--surf2);color:var(--tx3);cursor:not-allowed}.textarea{min-height:120px;font-family:var(--font-mono);font-size:12px;line-height:1.55;resize:vertical}.select{appearance:none;padding-right:30px;background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - 15px) 15px,calc(100% - 10px) 15px;background-size:5px 5px,5px 5px;background-repeat:no-repeat}.search{position:relative;flex:1;min-width:180px}.search .input{padding-left:32px}.search svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);width:14px;height:14px;color:var(--tx3);pointer-events:none}.check{display:flex;align-items:flex-start;gap:var(--s2);padding:9px 10px;border:1px solid var(--bd);border-radius:var(--r-ctl);cursor:pointer;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease)}.check:hover{background:var(--surf2)}.check.on{border-color:var(--pri);background:var(--pri-tint)}.check input{margin:2px 0 0;accent-color:var(--pri);flex:none}.check-body{min-width:0}.check-title{font-size:13px;font-weight:700}.check-desc{font-size:11.5px;color:var(--tx2);line-height:1.4}.card{background:var(--card);border:1px solid var(--bd);border-radius:var(--r-card);box-shadow:var(--sh-card)}.card-pad{padding:var(--s5)}.card-head{display:flex;align-items:center;gap:var(--s3);padding:var(--s4) var(--s5);border-bottom:1px solid var(--bd)}.card-head h2{flex:1;min-width:0}.card-foot{display:flex;align-items:center;gap:var(--s2);padding:var(--s3) var(--s5);border-top:1px solid var(--bd);background:color-mix(in srgb,var(--surf2) 45%,transparent);border-radius:0 0 var(--r-card) var(--r-card)}.stat{padding:var(--s4);background:var(--card);border:1px solid var(--bd);border-radius:var(--r-card);box-shadow:var(--sh-card)}.stat-label{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--tx3)}.stat-value{margin-top:6px;font-size:26px;font-weight:800;letter-spacing:-.03em;line-height:1;color:var(--tx)}.stat-sub{margin-top:5px;font-size:12px;color:var(--tx2)}.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:collapse;font-size:13.5px}.table th{padding:10px var(--s4);text-align:left;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--tx3);white-space:nowrap;border-bottom:1px solid var(--bd);background:color-mix(in srgb,var(--surf2) 40%,transparent)}.table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.table th.sortable:hover{color:var(--tx2)}.table td{padding:11px var(--s4);border-bottom:1px solid var(--bd);vertical-align:middle}.table tbody tr:last-child td{border-bottom:0}.table tbody tr{transition:background var(--dur) var(--ease)}.table tbody tr:hover{background:color-mix(in srgb,var(--surf2) 55%,transparent)}.table tr.clickable{cursor:pointer}.table .col-actions{width:1%;white-space:nowrap;text-align:right}.table .cell-title{font-weight:700;color:var(--tx)}.table .cell-sub{margin-top:2px;font-size:12px;color:var(--tx2)}.row-actions{display:inline-flex;gap:var(--s1);opacity:.55;transition:opacity var(--dur) var(--ease)}tr:hover .row-actions,.row-actions:focus-within{opacity:1}.badge{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:var(--r-pill);background:var(--surf2);color:var(--tx2);font-size:11px;font-weight:700;letter-spacing:-.005em;white-space:nowrap}.badge-primary{background:var(--pri-tint);color:var(--pri)}.badge-gold{background:var(--gold-bg);color:var(--gold)}.badge-sage{background:var(--sage-bg);color:var(--sage)}.badge-danger{background:var(--danger-bg);color:var(--danger)}.badge-dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}.segment{display:inline-flex;gap:2px;padding:3px;background:var(--surf2);border-radius:var(--r-ctl);overflow-x:auto;max-width:100%}.segment button{padding:6px 12px;border:0;border-radius:var(--r-sm);background:transparent;color:var(--tx2);font:inherit;font-size:13px;font-weight:600;white-space:nowrap;cursor:pointer;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.segment button:hover{color:var(--tx)}.segment button.active{background:var(--card);color:var(--tx);font-weight:700;box-shadow:0 1px 2px #0000000f}.toolbar{display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap;margin-bottom:var(--s4)}.empty{display:flex;flex-direction:column;align-items:center;gap:var(--s2);padding:var(--s8) var(--s5);text-align:center}.empty svg{width:26px;height:26px;color:var(--tx3);margin-bottom:var(--s1)}.empty h3{font-size:14px}.empty p{color:var(--tx2);font-size:13px;max-width:46ch}.empty .btn{margin-top:var(--s2)}.skel{border-radius:var(--r-sm);background:linear-gradient(90deg,var(--surf2) 25%,var(--surf3) 37%,var(--surf2) 63%);background-size:400% 100%;animation:skel 1.3s var(--ease) infinite}@keyframes skel{0%{background-position:100% 50%}to{background-position:0 50%}}dialog.modal{width:min(560px,calc(100vw - 32px));max-height:calc(100vh - 64px);padding:0;border:1px solid var(--bd);border-radius:var(--r-card);background:var(--card);color:var(--tx);box-shadow:var(--sh-pop);overflow:visible}dialog.modal.wide{width:min(760px,calc(100vw - 32px))}dialog.modal::backdrop{background:#10141a6b;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-head{display:flex;align-items:flex-start;gap:var(--s3);padding:var(--s5) var(--s5) var(--s3)}.modal-head .grow{flex:1;min-width:0}.modal-head p{margin-top:var(--s1);font-size:13px;color:var(--tx2)}.modal-body{padding:0 var(--s5) var(--s5);overflow-y:auto;max-height:calc(100vh - 220px)}.modal-foot{display:flex;align-items:center;gap:var(--s2);padding:var(--s3) var(--s5);border-top:1px solid var(--bd);background:color-mix(in srgb,var(--surf2) 45%,transparent);border-radius:0 0 var(--r-card) var(--r-card)}dialog.drawer{width:min(460px,100vw);max-width:100vw;height:100vh;max-height:100vh;margin:0 0 0 auto;padding:0;border:0;border-left:1px solid var(--bd);border-radius:0;background:var(--card);color:var(--tx);box-shadow:var(--sh-pop)}dialog.drawer[open]{display:flex;flex-direction:column;animation:drawer-in .18s var(--ease)}dialog.drawer::backdrop{background:#10141a6b;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}@keyframes drawer-in{0%{transform:translate(18px);opacity:.4}}.drawer-head{display:flex;align-items:flex-start;gap:var(--s3);padding:var(--s5);border-bottom:1px solid var(--bd)}.drawer-body{flex:1;overflow-y:auto;padding:var(--s5)}.drawer-foot{display:flex;gap:var(--s2);padding:var(--s3) var(--s5);border-top:1px solid var(--bd);background:color-mix(in srgb,var(--surf2) 45%,transparent)}.defs{display:grid;grid-template-columns:minmax(96px,auto) 1fr;gap:var(--s2) var(--s4);font-size:13px}.defs dt{color:var(--tx3);font-size:12px;font-weight:600}.defs dd{margin:0;min-width:0;color:var(--tx);overflow-wrap:anywhere}.toasts{position:fixed;right:var(--s5);bottom:var(--s5);z-index:100;display:flex;flex-direction:column;gap:var(--s2);width:min(360px,calc(100vw - 40px));pointer-events:none}.toast{display:flex;align-items:flex-start;gap:var(--s3);padding:var(--s3) var(--s4);border:1px solid var(--bd);border-left:3px solid var(--tx3);border-radius:var(--r-row);background:var(--card);box-shadow:var(--sh-pop);pointer-events:auto;animation:toast-in .18s var(--ease)}.toast.success{border-left-color:var(--sage)}.toast.error{border-left-color:var(--danger)}.toast.info{border-left-color:var(--pri)}.toast-body{flex:1;min-width:0}.toast-title{font-size:13px;font-weight:700}.toast-desc{margin-top:2px;font-size:12.5px;color:var(--tx2);overflow-wrap:anywhere}@keyframes toast-in{0%{transform:translateY(8px);opacity:0}}.banner{display:flex;align-items:flex-start;gap:var(--s3);padding:var(--s3) var(--s4);border:1px solid var(--bd);border-radius:var(--r-row);background:var(--surf2);font-size:13px}.banner.danger{background:var(--danger-bg);border-color:transparent;color:var(--danger)}.banner.gold{background:var(--gold-bg);border-color:transparent;color:var(--gold)}.banner.sage{background:var(--sage-bg);border-color:transparent;color:var(--sage)}.banner svg{flex:none;width:15px;height:15px;margin-top:1px}.copy-field{display:flex;gap:var(--s2);align-items:stretch}.copy-field .input{font-family:var(--font-mono);font-size:11.5px;background:var(--surf2)}.pager{display:flex;align-items:center;gap:var(--s3);padding:var(--s3) var(--s5);border-top:1px solid var(--bd);font-size:12.5px;color:var(--tx2)}.login-page{min-height:100vh;display:grid;place-items:center;padding:var(--s5);background:var(--bg)}.login-card{width:min(400px,100%);padding:var(--s7)}.login-brand{display:flex;align-items:center;gap:var(--s2);margin-bottom:var(--s5);font-weight:800;letter-spacing:-.02em}.stops{display:flex;flex-direction:column;gap:var(--s2)}.stop-head,.stop-row{display:grid;grid-template-columns:74px minmax(140px,1fr) 92px minmax(120px,.8fr) 96px 92px 104px;gap:var(--s2);align-items:center}.stop-head{padding:0 var(--s1)}.stop-head span{font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--tx3)}.stop-row{padding:var(--s2) var(--s1);border:1px solid var(--bd);border-radius:var(--r-row);background:var(--card);transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease)}.stop-row:hover{border-color:var(--bd-strong)}.stop-row.invalid{border-color:var(--danger);background:var(--danger-bg)}.stop-row .input{min-height:32px;padding:5px 9px;font-size:13px}.stop-badge{display:flex;flex-direction:column;align-items:center;gap:1px;padding:4px 6px;border-radius:var(--r-sm);background:var(--surf2);color:var(--tx2);font-size:10.5px;font-weight:700;line-height:1.2;text-align:center}.stop-badge .kind{font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--tx3)}.stop-badge.start .kind{color:var(--sage)}.stop-badge.finish .kind{color:var(--gold)}.stop-pacing{font-size:11px;color:var(--tx3);line-height:1.3}.stop-controls{display:flex;gap:2px;justify-content:flex-end}@media(max-width:1020px){.stop-head{display:none}.stop-row{grid-template-columns:1fr 1fr;gap:var(--s2)}.stop-row>*:first-child{grid-column:1 / -1}.stop-controls{grid-column:1 / -1;justify-content:flex-start}}.shape{padding:var(--s4);border:1px solid var(--bd);border-radius:var(--r-row);background:color-mix(in srgb,var(--surf2) 50%,transparent)}.shape svg{display:block;width:100%;height:116px;overflow:visible}.shape .track{stroke:var(--bd-strong);stroke-width:1;stroke-dasharray:3 3;fill:none}.shape .path{stroke:var(--pri);stroke-width:2;stroke-linejoin:round;stroke-linecap:round;fill:none}.shape .fill{fill:var(--pri-tint)}.shape .node{fill:var(--card);stroke:var(--pri);stroke-width:2}.shape .node.start{stroke:var(--sage)}.shape .node.finish{stroke:var(--gold)}.shape .tick{fill:var(--tx3);font-size:9px;font-weight:700;font-family:var(--font)}.swatches{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s2)}.swatch{display:inline-flex;align-items:center;gap:6px;padding:3px 8px 3px 3px;border:1px solid var(--bd);border-radius:var(--r-pill);background:var(--card);font-size:11px;font-weight:600;color:var(--tx2)}.swatch i{width:16px;height:16px;border-radius:50%;border:1px solid var(--bd-strong);flex:none}.roles{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:var(--s2)}.audit{display:flex;flex-direction:column;gap:0}.audit-item{display:flex;gap:var(--s3);padding:var(--s3) 0;border-top:1px solid var(--bd);font-size:12.5px}.audit-item:first-child{border-top:0}.audit-when{flex:none;width:108px;color:var(--tx3);font-size:11.5px}.audit-what{min-width:0;color:var(--tx2)}.audit-what strong{color:var(--tx)}
