:root{--paper: #eef1f5;--surface: #ffffff;--surface-sunken: #f4f6f9;--ink: #101826;--ink-2: #17233a;--ink-3: #202f4b;--border: #dde2ea;--border-strong: #c3cbd8;--border-on-ink: rgba(255, 255, 255, .12);--text: #141c2b;--text-muted: #5c6779;--text-faint: #8b95a5;--text-on-ink: #eef1f6;--text-on-ink-muted: #a7b0c2;--copper: #b15e23;--copper-strong: #8f4a1a;--copper-soft: #f6e5d3;--teal: #0f6a63;--teal-strong: #0b4f4a;--teal-soft: #dcefec;--success: #1c8a55;--success-soft: #dcf1e5;--warning: #a5730a;--warning-soft: #faf0d6;--danger: #b8402f;--danger-soft: #fbe3df;--muted-chip: #e7eaf0;--muted-chip-text: #4c5566;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--shadow-sm: 0 1px 2px rgba(16, 22, 34, .06);--shadow-md: 0 8px 24px -12px rgba(16, 22, 34, .28);--shadow-ink: 0 12px 32px -16px rgba(6, 10, 20, .55);--font-display: "Space Grotesk", "Inter", system-ui, sans-serif;--font-body: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--sidebar-w: 236px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--font-body);background:var(--paper);color:var(--text);line-height:1.5}::selection{background:var(--copper-soft);color:var(--copper-strong)}a{color:var(--teal)}:focus-visible{outline:2px solid var(--copper);outline-offset:2px;border-radius:4px}.app{min-height:100vh;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}h1,h2,h3{font-family:var(--font-display);color:var(--text);letter-spacing:-.01em}h2{margin:.1rem 0 1.1rem;font-size:1.5rem;font-weight:600}h3{margin:1.75rem 0 .6rem;font-size:1rem;font-weight:600;color:var(--text)}.subtitle{color:var(--text-muted);margin:0 0 1.5rem;font-size:.92rem}.ok{color:var(--success)}.bad,.error{color:var(--danger)}p.error{background:var(--danger-soft);border:1px solid rgba(184,64,47,.25);padding:.55rem .75rem;border-radius:var(--radius-sm);font-size:.88rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.35rem 1.5rem;box-shadow:var(--shadow-sm)}.card h2{margin-top:0}ul{padding-left:1.25rem;line-height:1.8}.shell{display:flex;min-height:100vh;align-items:stretch}.sidebar{width:var(--sidebar-w);flex:0 0 var(--sidebar-w);background:linear-gradient(180deg,var(--ink-2),var(--ink));color:var(--text-on-ink);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto}.sidebar-brand{display:flex;align-items:center;gap:.6rem;padding:1.35rem 1.25rem 1.1rem}.sidebar-mark{width:30px;height:30px;border-radius:8px;background:var(--copper);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:700;font-size:.95rem;color:#1a1005;flex:none}.sidebar-brand-text{display:flex;flex-direction:column;line-height:1.2}.sidebar-brand-text .name{font-family:var(--font-display);font-weight:600;font-size:.98rem}.sidebar-brand-text .sub{font-size:.72rem;color:var(--text-on-ink-muted)}.sidebar-nav{flex:1;padding:.25rem .75rem 1rem;display:flex;flex-direction:column;gap:1.1rem}.nav-group-label{font-size:.68rem;font-weight:600;color:var(--text-on-ink-muted);padding:0 .6rem;margin-bottom:.3rem;letter-spacing:.04em}.nav-group{display:flex;flex-direction:column;gap:.1rem}.navlink{display:flex;align-items:center;gap:.6rem;padding:.5rem .6rem;border-radius:var(--radius-sm);color:var(--text-on-ink-muted);text-decoration:none;font-size:.88rem;font-weight:500;border-left:2px solid transparent;transition:background .12s ease,color .12s ease}.navlink:hover{background:#ffffff0f;color:var(--text-on-ink)}.navlink.active{background:#b15e232e;color:#ffd9ae;border-left-color:var(--copper)}.sidebar-footer{border-top:1px solid var(--border-on-ink);padding:.9rem 1.1rem 1.1rem;display:flex;flex-direction:column;gap:.6rem}.who-chip{display:flex;flex-direction:column;line-height:1.3}.who-chip .who-name{font-size:.86rem;font-weight:600;color:var(--text-on-ink)}.who-chip .who-role{font-size:.72rem;color:var(--text-on-ink-muted);text-transform:capitalize}.signout-btn{background:transparent;border:1px solid var(--border-on-ink);color:var(--text-on-ink-muted);padding:.4rem .7rem;border-radius:var(--radius-sm);font-size:.82rem;cursor:pointer}.signout-btn:hover{border-color:#ffffff4d;color:var(--text-on-ink)}.main{flex:1;min-width:0}.content{max-width:1180px;margin:0 auto;padding:2.1rem 2.25rem 4rem}.login-wrap{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr;background:var(--surface)}.login-brand{background:radial-gradient(680px 420px at 15% 15%,rgba(177,94,35,.35),transparent 60%),linear-gradient(165deg,var(--ink-2),var(--ink) 70%);color:var(--text-on-ink);display:flex;flex-direction:column;justify-content:space-between;padding:2.75rem}.login-brand .sidebar-mark{width:38px;height:38px;font-size:1.1rem;border-radius:10px}.login-brand-top{display:flex;align-items:center;gap:.7rem}.login-brand-top .name{font-family:var(--font-display);font-weight:600;font-size:1.1rem}.login-brand h1{color:#fff;font-size:2.1rem;line-height:1.2;max-width:16ch;margin:0}.login-brand-copy{color:var(--text-on-ink-muted);font-size:.95rem;max-width:34ch;line-height:1.6}.login-brand-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.75rem}.login-brand-list li{display:flex;align-items:baseline;gap:.6rem;font-size:.88rem;color:var(--text-on-ink-muted)}.login-brand-list b{color:var(--text-on-ink);font-family:var(--font-display);font-weight:600}.login-brand-foot{font-size:.76rem;color:#a7b0c2b3}.login-form-wrap{display:flex;align-items:center;justify-content:center;padding:2rem}.login-card{width:100%;max-width:360px;display:flex;flex-direction:column;gap:.9rem;border:none;box-shadow:none;padding:0;background:transparent}.login-card h1{font-size:1.4rem;margin:0}@media (max-width: 860px){.login-wrap{grid-template-columns:1fr}.login-brand{display:none}}label{display:flex;flex-direction:column;gap:.3rem;font-size:.82rem;font-weight:500;color:var(--text-muted)}input,select{padding:.58rem .7rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:.92rem;font-family:var(--font-body);background:var(--surface);color:var(--text);transition:border-color .12s ease,box-shadow .12s ease}input:focus,select:focus{border-color:var(--copper);box-shadow:0 0 0 3px #b15e2324}button{padding:.58rem 1rem;background:var(--copper);color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:.92rem;font-weight:600;font-family:var(--font-body);transition:background .12s ease,transform .05s ease}button:hover{background:var(--copper-strong)}button:active{transform:translateY(1px)}button:disabled{opacity:.55;cursor:not-allowed}.form-grid{display:flex;flex-wrap:wrap;gap:.55rem;margin-bottom:1.25rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:.85rem}.form-grid input,.form-grid select{flex:1 1 160px}table.data-table{width:100%;border-collapse:collapse;margin-top:.5rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden}table.data-table th,table.data-table td{text-align:left;padding:.65rem .85rem;border-bottom:1px solid var(--border);font-size:.88rem}table.data-table th{background:var(--surface-sunken);font-weight:600;font-size:.74rem;text-transform:uppercase;letter-spacing:.045em;color:var(--text-muted)}table.data-table tbody tr:hover{background:var(--surface-sunken)}table.data-table tbody tr:last-child td{border-bottom:none}.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:.7rem;margin-bottom:1.5rem}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:.85rem 1.05rem;box-shadow:var(--shadow-sm);transition:border-color .12s ease,transform .12s ease}.stat:has(a):hover{border-color:var(--border-strong);transform:translateY(-1px)}.stat a{text-decoration:none;color:inherit;display:block}.stat-value{font-family:var(--font-display);font-size:1.6rem;font-weight:600}.stat-label{font-size:.78rem;color:var(--text-muted);margin-top:.2rem}.stat.bad{background:var(--danger-soft);border-color:#b8402f40}.stat.bad .stat-value{color:var(--danger)}.stage-bar{display:flex;gap:.6rem;flex-wrap:wrap;margin:.5rem 0 1.5rem}.stage-chip{display:flex;flex-direction:column;align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:.65rem 1.25rem;text-decoration:none;color:inherit;min-width:115px;transition:border-color .12s ease,transform .12s ease}.stage-chip:hover{border-color:var(--teal);transform:translateY(-1px)}.stage-count{font-family:var(--font-display);font-size:1.35rem;font-weight:600;color:var(--teal-strong)}.stage-name{font-size:.74rem;color:var(--text-muted);text-align:center;margin-top:.1rem}.badge{display:inline-block;padding:.2rem .6rem;border-radius:999px;font-size:.74rem;font-weight:600;background:var(--muted-chip);color:var(--muted-chip-text);white-space:nowrap}.badge.ok{background:var(--success-soft);color:var(--success)}.badge.warn{background:var(--warning-soft);color:var(--warning)}.badge.bad{background:var(--danger-soft);color:var(--danger)}.badge.muted{background:var(--muted-chip);color:var(--text-faint)}.tabs{display:flex;gap:.35rem;flex-wrap:wrap;margin-bottom:1.25rem;border-bottom:1px solid var(--border);padding-bottom:.6rem}.tabbtn{background:transparent;color:var(--text-muted);border:none;border-radius:var(--radius-sm);padding:.4rem .8rem;font-size:.86rem;font-weight:600}.tabbtn:hover{background:var(--surface-sunken);color:var(--text)}.tabbtn.active{background:var(--ink);color:#fff}.filters{display:flex;gap:.55rem;flex-wrap:wrap;align-items:center;margin-bottom:1.25rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:.7rem .85rem}.filters select,.filters input{min-width:120px;flex:0 1 auto}.filters .grow{flex:1 1 200px}.filters button.ghost{background:transparent;color:var(--teal);border:1px solid var(--teal);font-weight:600}.filters button.ghost:hover{background:var(--teal-soft)}.kv{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:.85rem 1.4rem;margin:.6rem 0 1.1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:1.1rem 1.25rem}.kv .item .k{font-size:.7rem;color:var(--text-faint);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.kv .item .v{font-size:.95rem;margin-top:.15rem;word-break:break-word}.timeline{list-style:none;padding:0;margin:.5rem 0}.timeline li{border-left:2px solid var(--border);padding:0 0 1.1rem 1.1rem;margin-left:.4rem;position:relative}.timeline li:before{content:"";position:absolute;left:-5px;top:.2rem;width:8px;height:8px;border-radius:50%;background:var(--copper)}.timeline .when{font-size:.74rem;color:var(--text-faint)}.timeline .who{font-size:.8rem;color:var(--text-muted)}.timeline .event{font-weight:600;margin:.15rem 0;font-family:var(--font-display)}.link{color:var(--teal);text-decoration:none;font-weight:500}.link:hover{text-decoration:underline}.chips{display:flex;flex-wrap:wrap;gap:.4rem;margin:.5rem 0}.chip{background:var(--surface-sunken);border:1px solid var(--border);border-radius:999px;padding:.3rem .75rem;font-size:.8rem}form.inline{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;margin:.5rem 0}form.inline input,form.inline select{max-width:200px}@media (max-width: 900px){.shell{flex-direction:column}.sidebar{width:100%;flex:none;position:sticky;top:0;height:auto;z-index:20;flex-direction:row;align-items:center;overflow-x:auto;box-shadow:var(--shadow-ink)}.sidebar-brand{padding:.6rem .75rem}.sidebar-nav{flex-direction:row;padding:.4rem;gap:.4rem;flex:none}.nav-group{flex-direction:row;gap:.2rem}.nav-group-label{display:none}.navlink{white-space:nowrap;border-left:none;border-bottom:2px solid transparent;border-radius:var(--radius-sm) var(--radius-sm) 0 0}.navlink.active{border-left-color:transparent;border-bottom-color:var(--copper)}.sidebar-footer{flex-direction:row;align-items:center;border-top:none;border-left:1px solid var(--border-on-ink);padding:.5rem .75rem}.content{padding:1.25rem 1rem 3rem}table.data-table{display:block;overflow-x:auto;white-space:nowrap}.stat-grid{grid-template-columns:repeat(2,1fr)}}
