:root{--bg:#f5f5f5;--text-strong:#111111;--warn:#d97706;--warn-soft:#fff2d9;--signal:#0ea5a4;--nav-hover-bg:#ececec;--picker-border:#e5e5e5;--dropdown-shadow:0 4px 24px rgba(0,0,0,0.12);--text-strong-ink:#171717;--text-muted-ink:#6e6e6e;--icon-muted:#5d5d5d;--hover-bg:#f5f5f5;--radius:8px;--radius-sm:6px;--radius-panel:12px;--radius-input:10px;--radius-btn:20px;--radius-pill:100px;--shadow-sm:0 1px 2px rgba(17,17,17,0.04);--shadow-md:0 4px 10px -1px rgba(0,0,0,0.1);--shadow-lg:0 25px 50px -12px rgba(0,0,0,0.25);--maxw:1190px;--font:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-title:"Inter",var(--font);--mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--color-grey-700);font-family:var(--font);font-size:16px;-webkit-font-smoothing:antialiased;line-height:1.5}a{color:inherit;text-decoration:none}h1,h2,h3,h4{margin:0;line-height:1.15;letter-spacing:-.02em;font-family:var(--font-title);font-weight:700;color:var(--color-grey-700)}.container{max-width:var(--maxw);margin:0 auto;padding:0 24px}.stack{display:flex;flex-direction:column}.row,.spread{display:flex;align-items:center}.spread{justify-content:space-between}.muted{color:var(--color-grey-600)}.faint{color:var(--color-grey-500)}.mono{font-family:var(--mono)}.card-pad{padding:20px 22px}.dot{width:8px;height:8px;border-radius:999px;display:inline-block}.input{height:42px;width:100%;padding:0 14px;border:1px solid var(--color-grey-300);border-radius:var(--radius-input);font-size:15px;font-family:var(--font);background:#ffffff;color:var(--color-grey-700)}.input:focus{outline:1px solid var(--color-grey-700);outline-offset:2px;border-color:var(--color-grey-700)}.label{font-size:13px;font-weight:600;color:var(--color-grey-600);margin-bottom:8px}.table{width:100%;border-collapse:collapse;font-size:14px}.table th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.02em;color:var(--color-grey-500);font-weight:600;padding:10px 16px;border-bottom:1px solid var(--color-grey-200)}.table td{padding:14px 16px;border-bottom:1px solid var(--color-grey-100);vertical-align:middle}.table tr:last-child td{border-bottom:none}.table tbody tr{transition:background .08s linear}.table tbody tr:hover{background:var(--color-grey-100)}.kpi-value{font-size:30px;font-weight:700;letter-spacing:-.03em;font-family:var(--font-title)}.section-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.02em;color:var(--color-grey-500)}.divider{height:1px;border:none;margin:0}.divider,.meter{background:var(--color-grey-100)}.meter{height:8px;border-radius:999px;overflow:hidden}.meter>span{display:block;height:100%}.toggle{position:relative;width:42px;height:24px;border-radius:999px;background:var(--color-grey-300);border:none;cursor:pointer;transition:background .15s;flex:none}.toggle[data-on=true]{background:var(--color-primary-300)}.toggle:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:999px;background:#fff;transition:transform .15s;box-shadow:0 1px 2px rgba(0,0,0,.2)}.toggle[data-on=true]:after{transform:translateX(18px)}.info{position:relative;display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:999px;background:var(--color-grey-100);color:var(--color-grey-500);border:1px solid var(--color-grey-300);font-size:9px;font-weight:700;cursor:help;margin-left:5px}.info:hover .info-bubble{display:block}.info-bubble{display:none;position:absolute;bottom:130%;left:50%;transform:translateX(-50%);width:210px;background:var(--color-grey-700);color:#fff;padding:9px 11px;border-radius:8px;font-size:12px;font-weight:400;line-height:1.45;text-transform:none;letter-spacing:0;z-index:20;box-shadow:var(--shadow-md);text-align:left}.segmented{display:inline-flex;background:var(--color-grey-100);border:1px solid var(--color-grey-200);border-radius:var(--radius-sm);padding:3px;gap:2px}.segmented button{border:none;background:transparent;padding:5px 12px;border-radius:5px;font-size:13px;font-weight:600;color:var(--color-grey-600);cursor:pointer;font-family:var(--font)}.segmented button[data-active=true]{background:#fff;color:var(--color-primary-300);box-shadow:var(--shadow-sm)}.table tr.clickable{cursor:pointer}.chart-tip{position:absolute;background:var(--color-grey-700);color:#fff;padding:8px 10px;border-radius:8px;font-size:12px;line-height:1.5;pointer-events:none;white-space:nowrap;transform:translate(-50%,-100%);z-index:30;box-shadow:var(--shadow-md)}.dt{width:100%}.dt-head{display:grid;align-items:center;grid-column-gap:16px;column-gap:16px;padding:8px 16px;border-bottom:1px solid var(--color-grey-200)}.dt-hcell{display:flex;gap:5px;font-size:11px;font-weight:600;letter-spacing:.01em;text-transform:uppercase;color:var(--color-grey-400);min-width:0}.dt-hcell,.dt-row{align-items:center}.dt-row{display:grid;grid-column-gap:16px;column-gap:16px;padding:13px 16px;border-bottom:1px solid var(--color-grey-100);background:transparent;transition:background 80ms linear}.dt-row:last-child{border-bottom:none}.dt-cell{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--color-grey-600);min-width:0}.dt-clickable{cursor:pointer}.dt-clickable:hover{background:var(--color-grey-50)}.dt-empty{padding:48px 20px;text-align:center}.dt-title{font-size:15px;font-weight:600;color:var(--color-grey-700);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.picker-ws{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;border-radius:10px;background:#fff;border:1px solid var(--picker-border);cursor:pointer;text-align:left;transition:background .1s,border-color .1s}.picker-ws:hover{background:var(--hover-bg);border-color:var(--color-grey-300)}.picker-user{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;border-radius:8px;background:transparent;border:none;cursor:pointer;text-align:left;transition:background .1s}.picker-user:hover{background:var(--nav-hover-bg)}.picker-name{font-size:14px;font-weight:500;color:var(--text-strong-ink)}.picker-name,.picker-sub{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.picker-sub{font-size:12px;color:var(--text-muted-ink)}.dropdown{position:absolute;z-index:40;background:#fff;border:1px solid var(--picker-border);box-shadow:var(--dropdown-shadow);border-radius:12px;min-width:260px;overflow:hidden;animation:ddin .1s ease}@keyframes ddin{0%{opacity:0;transform:scale(.97) translateY(4px)}to{opacity:1;transform:none}}.dropdown-section{padding:8px}.dropdown-divider{height:1px;background:var(--picker-border);border:none;margin:0}.dropdown-item{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;border-radius:8px;font-size:14px;color:var(--text-strong-ink);background:transparent;border:none;cursor:pointer;text-align:left;font-family:var(--font)}.dropdown-item:hover{background:var(--hover-bg)}.dropdown-item svg{color:var(--icon-muted)}.dropdown-header{padding:16px;display:flex;align-items:center;gap:12px}.dropdown-backdrop{position:fixed;inset:0;z-index:39}.alert{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:12px;border:1px solid var(--color-grey-200);background:var(--color-grey-50);font-size:14px;line-height:1.5}.alert-icon{flex:none;margin-top:1px}.alert-body{min-width:0;flex:1 1}.alert-title{font-weight:600;color:var(--text-strong)}.alert-warn{background:#fffaf0;border-color:#f3e0bd}.alert-warn .alert-icon{color:#d97706}.alert-warn .alert-title{color:#92610a}.alert-danger{background:#fff5f5;border-color:#f3cccc}.alert-danger .alert-icon{color:#dc2626}.alert-danger .alert-title{color:#991b1b}.alert-ok{background:#f4fdf7;border-color:#c8ecd6}.alert-ok .alert-icon{color:#17b26a}.alert-ok .alert-title{color:#0f7a37}.alert a.alert-link{text-decoration:underline;font-weight:600;color:inherit}.page-header{width:100%;padding:4px 0 24px}.page-header-top{display:flex;flex-direction:column;gap:16px}@media (min-width:900px){.page-header-top{flex-direction:row;align-items:flex-start;justify-content:space-between;gap:24px}}.page-header-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px;flex:0 0 auto}