*{box-sizing:border-box}body,html{margin:0;padding:0}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,ui-sans-serif,system-ui,sans-serif;color:var(--ff-text-primary);background:radial-gradient(1200px 600px at 12% -10%,rgba(255,90,42,.14),transparent 60%),radial-gradient(900px 500px at 100% 0,rgba(255,115,85,.1),transparent 55%),linear-gradient(140deg,var(--ff-warm-cream),var(--ff-soft-white) 60%,var(--ff-warm-cream));min-height:100vh;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}.shell{display:grid;grid-template-columns:264px minmax(0,1fr);min-height:100vh}.sidebar{position:-webkit-sticky;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:var(--ff-space-lg);padding:var(--ff-space-xxl) var(--ff-space-lg);background:var(--ff-ink);color:#fff}.brand{display:flex;align-items:center;gap:10px;font-size:21px;font-weight:700;letter-spacing:-.5px}.brand span{color:var(--ff-primary)}.brand small{display:block;font-size:11px;font-weight:600;letter-spacing:1.1px;text-transform:uppercase;color:rgba(255,255,255,.5)}.nav{display:grid;grid-gap:3px;gap:3px;align-content:start;flex:1 1;overflow-y:auto}.nav-group{margin-top:var(--ff-space-lg);padding:0 var(--ff-space-md);font-size:11px;font-weight:700;letter-spacing:1.1px;text-transform:uppercase;color:rgba(255,255,255,.38)}.nav a{display:flex;align-items:center;gap:11px;padding:11px var(--ff-space-md);border-radius:var(--ff-radius-sm);color:rgba(255,255,255,.74);font-size:14.5px;font-weight:500;transition:background .14s ease,color .14s ease}.nav a:hover{background:rgba(255,255,255,.07);color:#fff}.nav a[aria-current=page]{background:var(--ff-primary);color:#fff;font-weight:600}.sidebar-foot{border-top:1px solid rgba(255,255,255,.12);padding-top:var(--ff-space-lg);display:grid;grid-gap:6px;gap:6px;font-size:12.5px;color:rgba(255,255,255,.6)}.main{padding:var(--ff-space-xxl) var(--ff-space-xxxl);min-width:0}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--ff-space-lg);flex-wrap:wrap;margin-bottom:var(--ff-space-xxl)}.eyebrow{margin:0 0 4px;font-size:11.5px;letter-spacing:1.2px;text-transform:uppercase;color:var(--ff-text-muted)}.eyebrow,h1{font-weight:700}h1{font-size:34px;line-height:1.1;letter-spacing:-1.1px}h1,h2{margin:0}h2{font-size:20px;letter-spacing:-.4px;font-weight:600}.lead{margin:6px 0 0;color:var(--ff-text-secondary);font-size:15px;max-width:68ch}.card{background:rgba(255,255,255,.78);backdrop-filter:blur(var(--ff-glass-card-blur));-webkit-backdrop-filter:blur(var(--ff-glass-card-blur));border:1px solid var(--ff-glass-card-border);border-radius:var(--ff-radius-lg);box-shadow:var(--ff-shadow-sm);padding:var(--ff-space-xl)}.grid{grid-template-columns:repeat(auto-fit,minmax(196px,1fr));grid-gap:var(--ff-space-md)}.grid,.two-col{display:grid;gap:var(--ff-space-md)}.two-col{grid-template-columns:1.3fr 1fr;margin-top:var(--ff-space-md)}.stack,.two-col{grid-gap:var(--ff-space-md)}.stack{display:grid;gap:var(--ff-space-md)}.kpi-label{font-size:12.5px;font-weight:600;color:var(--ff-text-secondary)}.kpi-value{font-size:30px;font-weight:700;letter-spacing:-1px;margin-top:8px}.kpi-hint{font-size:12.5px;color:var(--ff-text-muted);margin-top:4px}.toolbar{display:flex;align-items:center;gap:var(--ff-space-sm);flex-wrap:wrap;margin-bottom:var(--ff-space-lg)}.input,.select{border:1px solid var(--ff-warm-border);background:#fff;border-radius:var(--ff-radius-sm);padding:11px 14px;font-size:14.5px;color:var(--ff-text-primary);min-width:210px}.input:focus-visible,.select:focus-visible,a:focus-visible,button:focus-visible{outline:2px solid var(--ff-primary);outline-offset:2px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:14.5px}th{text-align:left;padding:12px 14px;font-size:11.5px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--ff-text-muted);border-bottom:1px solid var(--ff-warm-border);white-space:nowrap}td{padding:14px;border-bottom:1px solid rgba(238,228,222,.7);vertical-align:middle;max-width:320px;overflow-wrap:break-word;word-break:break-word}tbody tr:hover{background:rgba(255,255,255,.55)}.cell-strong{font-weight:600}.cell-muted{color:var(--ff-text-secondary);font-size:13.5px}.mono{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.badge{display:inline-block;padding:5px 11px;border-radius:var(--ff-radius-pill);font-size:11.5px;font-weight:700;letter-spacing:.4px;white-space:nowrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:var(--ff-radius-sm);border:1px solid transparent;padding:11px 18px;font-size:14.5px;font-weight:600;cursor:pointer;transition:transform .11s ease,filter .14s ease}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--ff-primary);color:#fff;box-shadow:var(--ff-shadow-primary)}.btn-secondary{background:#fff;border-color:var(--ff-warm-border);color:var(--ff-text-primary)}.btn-danger{background:var(--ff-error-soft);border-color:var(--ff-error);color:var(--ff-error)}.btn-success{background:var(--ff-success);color:#fff}.btn-ghost{background:transparent;color:var(--ff-text-secondary)}.btn-sm{padding:7px 13px;font-size:13px}.input-sm{min-width:0;width:190px;padding:7px 11px;font-size:13px}.btn-row{flex-wrap:wrap}.bars,.btn-row{display:flex;gap:8px}.bars{align-items:flex-end;height:200px;padding:var(--ff-space-md);background:var(--ff-ink-soft);border-radius:var(--ff-radius-md)}.bar{flex:1 1;min-height:4px;border-radius:6px 6px 3px 3px;background:linear-gradient(var(--ff-primary),rgba(255,175,141,.85))}.bar-axis{display:flex;gap:8px;padding:0 var(--ff-space-md);margin-top:6px}.bar-axis span{flex:1 1;text-align:center;font-size:11.5px;color:var(--ff-text-muted)}.meter{display:grid;grid-gap:8px;gap:8px}.meter-row{display:grid;grid-template-columns:120px 1fr auto;align-items:center;grid-gap:var(--ff-space-md);gap:var(--ff-space-md);font-size:14px}.meter-track{height:10px;background:var(--ff-warm-surface);overflow:hidden}.meter-fill,.meter-track{border-radius:var(--ff-radius-pill)}.meter-fill{height:100%;background:var(--ff-primary)}.state{display:grid;place-items:center;grid-gap:var(--ff-space-md);gap:var(--ff-space-md);padding:var(--ff-space-xxxl);text-align:center;color:var(--ff-text-secondary)}.spinner{width:32px;height:32px;border-radius:50%;border:3px solid var(--ff-warm-surface);border-top-color:var(--ff-primary);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.error-box{border:1px solid var(--ff-error);background:var(--ff-error-soft);color:var(--ff-error);border-radius:var(--ff-radius-sm);padding:var(--ff-space-md) var(--ff-space-lg);font-size:14px}.dialog-backdrop{position:fixed;inset:0;background:rgba(23,19,17,.44);display:grid;place-items:center;padding:var(--ff-space-lg);z-index:50}.dialog{background:#fff;border-radius:var(--ff-radius-lg);box-shadow:var(--ff-shadow-lg);padding:var(--ff-space-xxl);max-width:480px;width:100%;display:grid;grid-gap:var(--ff-space-md);gap:var(--ff-space-md)}.dialog h2{font-size:21px}.dialog p{margin:0;color:var(--ff-text-secondary);line-height:1.55}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:var(--ff-space-xl)}.login-card{width:100%;max-width:430px;display:grid;grid-gap:var(--ff-space-md);gap:var(--ff-space-md)}.field{display:grid;grid-gap:6px;gap:6px}.field label{font-size:11.5px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--ff-text-muted)}.field .input{min-width:0;width:100%}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:var(--ff-space-md);gap:var(--ff-space-md)}.kv{display:grid;grid-gap:3px;gap:3px}.kv dt{font-size:11.5px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--ff-text-muted)}.kv dd{margin:0;font-size:15px}@media (max-width:1080px){.shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;flex-direction:row;align-items:center;overflow-x:auto;gap:var(--ff-space-md)}.sidebar-foot{display:none}.nav{display:flex;flex:1 1;gap:4px}.nav-group{display:none}.nav a{white-space:nowrap}.main{padding:var(--ff-space-xl) var(--ff-space-lg)}.two-col{grid-template-columns:1fr}}@media (max-width:640px){h1{font-size:27px}.main{padding:var(--ff-space-lg) var(--ff-space-md)}.card{padding:var(--ff-space-lg)}.meter-row{grid-template-columns:92px 1fr auto}}