:root{color-scheme:light;--bg:#eef1f7;--panel:#fff;--ink:#0f1d33;--ink2:#46566f;--muted:#8493aa;--line:#e3e8f1;--navy:#0f2747;--navy2:#1b3a6b;--accent:#2563eb;--gold:#c9a227;--green:#10876b;--red:#d2453f;--redbg:#fbeaea;--shadow:0 1px 3px rgba(15,29,51,.07),0 6px 18px rgba(15,29,51,.05);--gap:10px}*{box-sizing:border-box}body,html{margin:0;max-width:100%;overflow-x:hidden}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Arial,sans-serif;background:var(--bg);color:var(--ink);font-size:13px;line-height:1.4}button{font-family:inherit}.app{min-height:100vh;display:flex;flex-direction:column}.topbar{background:linear-gradient(120deg,var(--navy),var(--navy2));color:#fff;border-bottom:3px solid var(--gold);flex:none}.topbar-row{gap:18px;padding:8px 16px;flex-wrap:wrap}.brand,.topbar-row{display:flex;align-items:center}.brand{gap:10px}.brand-logo{height:38px;width:38px;object-fit:contain;background:#fff;border-radius:8px;padding:2px}.brand h1{font-size:16px;margin:0;font-weight:700;line-height:1.2}.brand-sub{color:#aebfd8;font-size:11px}.tabs{display:flex;gap:4px;flex-wrap:wrap}.tabs a{color:#cdd9ec;padding:7px 14px;border-radius:8px;font-size:12.5px;font-weight:600;text-decoration:none;transition:.15s}.tabs a:hover:not(.on){background:rgba(255,255,255,.12);color:#fff}.tabs a.on{background:#fff;color:var(--navy);font-weight:700}.brand-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-left:auto}.badge{display:inline-flex;align-items:center;gap:7px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);padding:5px 10px;border-radius:999px;font-size:11.5px;color:#dce6f6}.dot{width:7px;height:7px;border-radius:50%;background:#39d98a;box-shadow:0 0 0 3px rgba(57,217,138,.18)}.dot.amber{background:#f5c451;box-shadow:0 0 0 3px rgba(245,196,81,.18)}.btn-ghost{display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);color:#fff;padding:6px 12px;border-radius:8px;font-size:12px;font-weight:600;cursor:pointer}.btn-ghost:hover:not(:disabled){background:rgba(255,255,255,.2)}.btn-ghost:disabled{opacity:.6;cursor:default}.user{display:inline-flex;align-items:center;gap:10px;font-size:11.5px;color:#cdd9ec}.user-email{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#fff;font-weight:600}.link{background:none;border:0;color:#cdd9ec;text-decoration:underline;cursor:pointer;font-size:11.5px;padding:0}.link:hover{color:#fff}.spin{display:inline-block;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.content{flex:1 1;min-height:0;padding:var(--gap) 14px}.content,.page{display:flex;flex-direction:column}.page{gap:var(--gap)}.banner{border-radius:10px;padding:9px 14px;margin-bottom:var(--gap);font-size:12.5px}.banner.error{background:var(--redbg);border:1px solid #f2c4c1;color:#8c1d18}.loading{display:flex;flex-direction:column;align-items:center;gap:14px;padding:90px 0;color:var(--ink2)}.ring{width:34px;height:34px;border-radius:50%;border:3px solid #d7deea;border-top:3px solid var(--navy2);animation:spin .8s linear infinite}.splash{min-height:100vh;display:flex;align-items:center;justify-content:center}.toprow{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:var(--gap);gap:var(--gap)}.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:8px 12px;box-shadow:var(--shadow)}.fgroup{display:flex;flex-direction:column;gap:3px;flex:1 1 130px;min-width:120px;max-width:200px}.fgroup.wide{flex-basis:220px;max-width:260px}.fgroup-label{font-size:10px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.6px}.spacer{flex:1 0}.btn-reset{border:1px solid var(--line);background:#fff;color:var(--navy2);font-weight:600;font-size:12px;padding:7px 11px;border-radius:8px;cursor:pointer;white-space:nowrap}.btn-reset:hover:not(:disabled){background:#f2f6fd}.btn-reset:disabled{color:var(--muted);cursor:default}.ms{position:relative}.ms-btn{width:100%;text-align:left;border:1px solid var(--line);border-radius:8px;padding:7px 28px 7px 10px;font-size:12.5px;font-weight:500;color:var(--ink);cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:#fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2346566f' stroke-width='3'><path d='M6 9l6 6 6-6'/></svg>") no-repeat right 10px center}.ms-btn:hover{border-color:#c9d3e4}.ms-btn.active{border-color:var(--accent);box-shadow:0 0 0 3px rgba(37,99,235,.1)}.chip,.ms-btn.active,.ms-btn.active-soft{color:var(--navy2);font-weight:600}.chip{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;border:1px solid var(--accent);background:#eaf1fe;border-radius:8px;padding:7px 10px;font-size:12.5px;cursor:pointer;text-align:left}.chip span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chip:hover{background:#dde8fd}.popup{position:absolute;top:calc(100% + 4px);left:0;z-index:50;width:290px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 32px rgba(15,29,51,.16);padding:8px;font-size:12.5px}.popup-right{left:auto;right:0}.popup-search{width:100%;margin-bottom:6px;padding:7px 9px;border:1px solid var(--line);border-radius:8px;font:inherit}.popup-search:focus{outline:2px solid rgba(37,99,235,.25);border-color:var(--accent)}.popup-list{max-height:300px;overflow:auto}.popup-row{justify-content:space-between;padding:5px 6px;border-radius:6px}.popup-all,.popup-row,.popup-row label{display:flex;align-items:center;gap:8px}.popup-all,.popup-row label{cursor:pointer;min-width:0}.popup-row label span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.popup-bulk{display:flex;align-items:center;gap:6px;padding:0 2px 7px;margin-bottom:4px;border-bottom:1px solid var(--line)}.popup-bulk button{border:1px solid var(--line);background:#fff;color:var(--navy2);font-weight:600;font-size:11.5px;padding:4px 9px;border-radius:7px;cursor:pointer}.popup-bulk button:hover:not(:disabled){background:#f2f6fd}.popup-bulk button:disabled{color:#b5bfcf;cursor:default}.popup-count{font-size:11px;color:var(--muted);margin-right:auto}.popup-bulk button+.popup-count{margin-right:0;margin-left:auto}.popup-picked{margin-top:6px;padding:6px 6px 0;border-top:1px solid var(--line);font-size:11px;color:var(--ink2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.popup-row:hover{background:#f2f6fd}.popup input[type=checkbox]{accent-color:var(--navy2)}.only{opacity:0;border:0;background:none;color:var(--accent);cursor:pointer;font-size:11px;font-weight:700}.only:focus-visible,.popup-row:hover .only{opacity:1}.popup-empty{padding:8px 6px;color:var(--muted)}.popup-dates{gap:10px;padding:4px 4px 8px}.popup-dates,.popup-dates label{display:flex;flex-direction:column}.popup-dates label{gap:4px;font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}.popup-dates input{font:inherit;font-size:13px;padding:7px 9px;border:1px solid var(--line);border-radius:8px;color:var(--ink)}.popup-dates.two{flex-direction:row}.popup-dates.two label{flex:1 1}.popup-dates select{font:inherit;font-size:13px;padding:7px 9px;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:#fff}.popup-presets{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:5px;gap:5px;padding:2px 2px 8px;margin-bottom:6px;border-bottom:1px solid var(--line)}.popup-presets button{border:1px solid var(--line);background:#fff;color:var(--navy2);font-weight:600;font-size:11.5px;padding:6px 4px;border-radius:7px;cursor:pointer}.popup-presets button:hover{background:#f2f6fd}.popup-presets button.on{background:var(--navy2);border-color:var(--navy2);color:#fff}.popup-actions{display:flex;justify-content:flex-end;gap:8px;padding:4px}.popup-actions button{border:0;background:none;color:var(--navy2);font-weight:600;padding:7px 12px;border-radius:8px;cursor:pointer}.popup-actions .primary{background:var(--navy2);color:#fff}.kpis{display:grid;grid-template-columns:repeat(5,minmax(128px,168px));grid-gap:var(--gap);gap:var(--gap)}.kpi{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:8px 14px;box-shadow:var(--shadow);position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:center}.kpi:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--kpi-accent,var(--accent))}.kpi-lbl{font-size:10px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.kpi-val{font-size:20px;font-weight:800;letter-spacing:-.4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.25}.kpi-delta{font-size:11px;font-weight:600;color:var(--muted);white-space:nowrap}.kpi-delta.good{color:#188038}.kpi-delta.bad{color:var(--red)}.gauge-box{position:relative;width:100%;height:100%;min-height:0}.dash{display:grid;grid-gap:var(--gap);gap:var(--gap);grid-template-columns:minmax(0,1fr)}.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:9px 12px 10px;min-width:0;min-height:0;display:flex;flex-direction:column}.card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px;flex:none}.card-titles{display:flex;align-items:baseline;gap:8px;min-width:0;flex-wrap:wrap}.card-head h3{margin:0;font-size:12.5px;font-weight:700;color:var(--ink);white-space:nowrap}.card-sub{font-size:10.5px;color:var(--muted)}.card-body{position:relative;height:var(--card-h,300px);min-height:0;display:flex;flex-direction:column}.card-body>*{flex:1 1;min-height:0}.card-body>.card-note{flex:none;margin-bottom:6px;padding:6px 8px;border-radius:6px;background:#f6f8fc;color:var(--ink2);font-size:11px;line-height:1.35}.auth-gate{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:var(--bg)}.auth-card{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:42px;width:100%;max-width:400px;display:flex;flex-direction:column;align-items:stretch;gap:12px;text-align:center}.auth-logo{height:90px;width:auto;object-fit:contain;align-self:center;margin-bottom:8px}.auth-title{font-weight:800;color:var(--navy);font-size:21px}.auth-sub{font-size:13px;color:var(--muted);font-weight:500;margin-bottom:10px}.field{display:flex;flex-direction:column;gap:4px;text-align:left}.field span{font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}.field input{width:100%;border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-size:13px;font-family:inherit;background:#fff;color:var(--ink)}.field input:focus{outline:2px solid rgba(37,99,235,.25);border-color:var(--accent)}.auth-error{color:var(--red);font-size:12px}.btn-primary{margin-top:8px;background:linear-gradient(120deg,var(--navy),var(--navy2));color:#fff;font-weight:700;padding:11px 18px;border:0;border-radius:10px;cursor:pointer;font-size:13.5px}.btn-primary:disabled{opacity:.7;cursor:default}.table-scroll{overflow:auto;border:1px solid var(--line);border-radius:8px}.dtable{width:100%;border-collapse:separate;border-spacing:0;font-size:12px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.dtable th{position:-webkit-sticky;position:sticky;top:0;z-index:1;background:#f6f8fc;color:var(--ink2);font-size:11px;font-weight:600;padding:7px 8px;border-bottom:1px solid var(--line);vertical-align:bottom;line-height:1.25}.dtable td,.dtable th{text-align:right;white-space:nowrap}.dtable td{padding:5px 8px;border-bottom:1px solid #f0f3f8}.dtable tbody tr:hover td:not(.heat){background:#f7f9fd}.dtable .left{text-align:left}.dtable td.name{max-width:260px;overflow:hidden;text-overflow:ellipsis}.dtable td.heat{width:92px;border-bottom-color:rgba(255,255,255,.7)}.dtable tr.clickable{cursor:pointer}.dtable tr.picked td:not(.heat){background:#eaf1fe;color:var(--navy2);font-weight:600}.dtable tr.picked td:first-child{box-shadow:inset 3px 0 0 var(--accent)}.dtable tr.dimmed td{color:#a7b1c2}.dtable tfoot td{position:-webkit-sticky;position:sticky;bottom:0;background:#eef2fa;font-weight:800;color:var(--navy);border-top:1px solid #d5dcea;border-bottom:0}.sortable{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.sortable:hover{color:var(--navy)}.seg-toggle{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;flex:none}.seg-toggle button{border:0;background:#fff;color:var(--ink2);font-size:11.5px;font-weight:600;padding:4px 10px;cursor:pointer}.seg-toggle button+button{border-left:1px solid var(--line)}.seg-toggle button.on{background:var(--navy2);color:#fff}.page-gp .kpis{grid-template-columns:repeat(3,minmax(130px,180px))}.page-gp .filters .fgroup{flex-basis:120px}@media (min-width:900px){.page-gp .dash{grid-template-columns:repeat(2,minmax(0,1fr))}.page-gp .g-chart{grid-column:1/-1}}@media (min-width:1100px) and (min-height:600px){.app{height:100vh;overflow:hidden}.dash,.page{flex:1 1;min-height:0}.card-body{flex:1 1;height:auto}.table-scroll{height:100%}.page-gp .dash{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);grid-template-rows:minmax(0,1fr) minmax(0,1.1fr)}}@media (min-width:1100px) and (min-height:600px) and (max-width:1450px){.page-gp .kpis{grid-template-columns:repeat(3,minmax(112px,150px))}.kpi{padding:7px 10px}.kpi-val{font-size:17px}.fgroup{min-width:110px}}@media (max-width:1099px){.toprow{grid-template-columns:minmax(0,1fr)}.page-gp .kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:640px){.content{padding:var(--gap) 10px}.page-gp .kpi{padding:7px 9px}.page-gp .kpi-val{font-size:15px}.fgroup,.fgroup.wide{max-width:none;flex-basis:100%}.tabs{width:100%;order:3}.tabs a{padding:7px 10px}.user-email{max-width:140px}.auth-card{padding:30px 22px}}