:root{color-scheme:light;--surface-1: #fcfcfb;--page: #f9f9f7;--ink: #0b0b0b;--ink-2: #52514e;--muted: #898781;--grid: #e1e0d9;--baseline: #c3c2b7;--border: rgba(11, 11, 11, .1);--series-1: #2a78d6;--series-2: #eb6834;--series-3: #1baf7a;--series-4: #eda100;--series-5: #e87ba4;--seq-250: #86b6ef;--seq-350: #5598e7;--seq-450: #2a78d6;--seq-550: #1c5cab;--seq-650: #104281;--status-good: #0ca30c;--status-warning: #fab219;--status-serious: #ec835a;--status-critical: #d03b3b;--good-text: #006300}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){color-scheme:dark;--surface-1: #1a1a19;--page: #0d0d0d;--ink: #ffffff;--ink-2: #c3c2b7;--muted: #898781;--grid: #2c2c2a;--baseline: #383835;--border: rgba(255, 255, 255, .1);--series-1: #3987e5;--series-2: #d95926;--series-3: #199e70;--series-4: #c98500;--series-5: #d55181;--good-text: #0ca30c}}*{box-sizing:border-box}body{margin:0;background:var(--page);color:var(--ink);font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:14px;line-height:1.45}.app{max-width:1400px;margin:0 auto;padding:20px 24px 60px}.section .desc,.card .sub,.note{max-width:92ch}.topbar{display:flex;flex-wrap:wrap;align-items:center;gap:14px;padding:10px 0 16px;border-bottom:1px solid var(--grid);margin-bottom:18px}.topbar h1{font-size:17px;margin:0 18px 0 0;font-weight:650}.nav{display:flex;gap:4px;flex-wrap:wrap}.nav button{border:none;background:none;color:var(--ink-2);font:inherit;padding:6px 11px;border-radius:7px;cursor:pointer}.nav button:hover{background:var(--grid)}.nav button.active{background:var(--ink);color:var(--page);font-weight:600}.topbar .spacer{flex:1}.syncinfo{color:var(--muted);font-size:12px}.syncinfo button{margin-left:8px;font:inherit;border:1px solid var(--border);background:var(--surface-1);color:var(--ink-2);border-radius:6px;padding:2px 9px;cursor:pointer}.controls{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:16px}.controls .presets{display:flex;gap:4px;flex-wrap:wrap}.controls .presets button{font:inherit;font-size:13px;border:1px solid var(--border);background:var(--surface-1);color:var(--ink-2);border-radius:7px;padding:5px 10px;cursor:pointer}.controls .presets button.active{border-color:var(--ink);color:var(--ink);font-weight:600}.controls input[type=date],.controls select{font:inherit;font-size:13px;border:1px solid var(--border);background:var(--surface-1);color:var(--ink);border-radius:7px;padding:4px 8px}.controls .hint{color:var(--muted);font-size:12px}.userbar button{min-width:68px}.userbar button.active{background:var(--series-1);border-color:var(--series-1);color:#fff}.rate{color:var(--muted);font-size:.86em;font-weight:400;margin-left:8px}.rate.before{margin-left:0;margin-right:8px}.grid{display:grid;gap:14px}.grid.tiles{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.grid.two{grid-template-columns:repeat(auto-fit,minmax(420px,1fr))}.card{background:var(--surface-1);border:1px solid var(--border);border-radius:12px;padding:14px 16px}.card h3{margin:0 0 4px;font-size:13px;font-weight:600;color:var(--ink-2)}.infotip{position:relative;display:inline-block;margin-left:6px}.infotip>button{width:15px;height:15px;padding:0;border-radius:50%;cursor:pointer;border:1px solid var(--baseline);background:none;color:var(--muted);font:600 10px/13px Georgia,serif;vertical-align:middle}.infotip>button:hover,.infotip>button.open{border-color:var(--series-1);color:var(--series-1)}.infotip-body{position:absolute;z-index:20;top:22px;left:-8px;width:max(260px,22vw);max-width:360px;background:var(--surface-1);color:var(--ink-2);border:1px solid var(--border);border-radius:10px;box-shadow:0 6px 24px #00000047;padding:11px 13px;font-size:12.5px;font-weight:400;line-height:1.5;white-space:normal;text-transform:none;letter-spacing:0}.infotip-body.align-right{left:auto;right:-8px}.infotip-body strong{color:var(--ink)}.infotip-close{display:block;margin-top:8px;padding:0;border:none;background:none;color:var(--series-1);font:inherit;font-size:12px;cursor:pointer}.card .sub{color:var(--muted);font-size:12px;margin-bottom:10px}.tile .value{font-size:26px;font-weight:650;margin-top:2px}.tile .compare{color:var(--muted);font-size:12px;margin-top:2px}.tile.low .value{color:var(--muted)}.tile .low-note{color:var(--status-serious);font-size:11px;margin-top:2px}.tile .up{color:var(--good-text)}.tile .down{color:var(--status-critical)}.section{margin:26px 0 10px}.section h2{font-size:15px;margin:0 0 2px}.section .desc{color:var(--muted);font-size:12.5px;margin:0}table.data{width:100%;border-collapse:collapse;font-size:13px}table.data th{text-align:left;color:var(--muted);font-weight:500;font-size:12px;border-bottom:1px solid var(--grid);padding:5px 10px 5px 0}table.data td{padding:6px 10px 6px 0;border-bottom:1px solid var(--grid)}table.data td.num,table.data th.num{text-align:right;font-variant-numeric:tabular-nums}table.data tr:last-child td{border-bottom:none}table.grouped{white-space:nowrap;font-size:12px;width:100%}table.grouped td,table.grouped th{padding-right:6px}table.grouped .groupstart{border-left:1px solid var(--grid);padding-left:8px}table.grouped tr.groups th{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-2);text-align:left;padding-bottom:2px;border-bottom:none}table.grouped th{vertical-align:bottom;line-height:1.25}table.grouped th.num{min-width:62px}table.grouped .rate{margin-left:5px}.low-sample{color:var(--muted)}.low-sample:after{content:" ◦";color:var(--status-serious)}.grid.focus{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}.tile.focus .value{font-size:30px}table.daily{font-size:12.5px;table-layout:fixed;width:100%}table.daily th{vertical-align:bottom;padding:4px 8px 5px 0;line-height:1.25;white-space:normal;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}table.daily td{white-space:nowrap}table.daily th.datecol,table.daily td.datecol{width:76px}table.daily td{padding:4px 9px 4px 0}table.daily .datecol{position:sticky;left:0;background:var(--surface-1);padding-right:14px;font-variant-numeric:tabular-nums}table.daily .groupstart{border-left:1px solid var(--grid);padding-left:9px}table.daily tr.empty td{color:var(--grid)}table.daily tr.untracked td{color:var(--muted)}table.daily .flag{color:var(--status-serious);margin-left:5px;cursor:help}.cr-head,.cr-row{display:grid;grid-template-columns:110px 1fr 130px;gap:10px;align-items:center}.cr-head{font-size:11px;color:var(--muted);margin-bottom:4px}.cr-head span:nth-child(3){text-align:right}.cr-row{margin:4px 0}.cr-bar-wrap{display:grid;grid-template-columns:1fr 88px;gap:10px;align-items:center}.cr-track{height:20px}.cr-bar-wrap .funnel-bar{min-width:2px}.cr-count{font-size:12.5px;font-variant-numeric:tabular-nums;white-space:nowrap}.cr-rate{text-align:right;font-size:12.5px;font-variant-numeric:tabular-nums}.warnbox{background:var(--surface-1);border:1px solid var(--status-serious);border-radius:10px;padding:10px 14px;margin:10px 0;font-size:12.5px;color:var(--ink-2)}.warnbox strong{color:var(--ink)}table.daily tfoot td{border-top:1px solid var(--baseline);border-bottom:none;font-weight:600;padding-top:6px}table.daily tfoot tr.avg td{font-weight:500;color:var(--ink-2);border-top:none;padding-top:0}.grid.hero{grid-template-columns:repeat(auto-fit,minmax(215px,1fr))}.tile.hero .value{font-size:32px}.tile.hero .value .dot{font-size:12px;margin-left:8px;vertical-align:middle}.ampel-good{color:var(--status-good)}.ampel-warn{color:var(--status-warning)}.ampel-bad{color:var(--status-critical)}.tile .target{color:var(--muted)}.delta{display:inline-block;margin-top:6px;font-size:12px;border-radius:6px;padding:1px 7px}.delta.up{color:var(--good-text);background:color-mix(in srgb,var(--status-good) 12%,transparent)}.delta.down{color:var(--status-critical);background:color-mix(in srgb,var(--status-critical) 10%,transparent)}.delta.neutral{color:var(--muted)}.diagnose{margin:22px 0 8px;border:1px solid var(--border);border-radius:12px;background:var(--surface-1)}.diagnose>summary{cursor:pointer;padding:11px 16px;font-size:13.5px;font-weight:600;color:var(--ink-2);list-style:none;-webkit-user-select:none;user-select:none}.diagnose>summary:before{content:"▸ ";color:var(--muted)}.diagnose[open]>summary:before{content:"▾ "}.diagnose>summary::-webkit-details-marker{display:none}.diagnose-body{padding:4px 16px 16px}.diagnose-body .card{border:1px solid var(--grid)}.diagnose-body .section{margin-top:14px}.segmentbar .sb-head{font-size:13px;color:var(--ink-2);margin-bottom:8px}.segmentbar .sb-head strong{font-size:17px;color:var(--ink)}.sb-track{display:flex;gap:2px;height:30px;border-radius:6px;overflow:hidden}.sb-seg{display:flex;align-items:center;justify-content:center;min-width:3px;transition:width .25s}.sb-seg span{font-size:11.5px;font-weight:600;color:#000000bf}.cockpit{display:flex;align-items:stretch;gap:0;overflow-x:auto;padding:4px 0 10px}.ck-stage{flex:1 1 0;min-width:128px;background:var(--surface-1);border:1px solid var(--border);border-radius:12px;padding:12px 14px;cursor:pointer;text-align:left;font:inherit;color:inherit}.ck-stage:hover{border-color:var(--series-1)}.ck-stage h4{margin:0 0 2px;font-size:12px;font-weight:600;color:var(--ink-2)}.ck-stage .value{font-size:24px;font-weight:650}.ck-arrow{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 6px;min-width:58px}.ck-arrow .rate-val{font-size:12.5px;font-weight:600;color:var(--ink-2)}.ck-arrow .arr{color:var(--baseline);font-size:15px;line-height:1}.ck-arrow .rate-tag{font-size:9.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);white-space:nowrap}.ck-arrow .rate-tag.loop{text-transform:none;letter-spacing:0;margin-top:2px}.ck-loop{position:relative;flex:0 0 auto;width:130px;align-self:center}.ck-loop-top,.ck-loop-bottom{position:absolute;left:0;right:0;text-align:center;font-size:10.5px;line-height:1.25;color:var(--ink-2);pointer-events:none}.ck-loop-top{top:0}.ck-loop-top strong{font-size:13px;color:var(--ink)}.ck-loop-bottom{bottom:-6px;color:var(--muted)}.ck-loop em{display:block;font-style:normal;color:var(--muted);font-size:9.5px}.admin-grid{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.admin-toggle{display:inline-flex;align-items:center;gap:8px;cursor:pointer;padding:8px 13px;border-radius:9px;font-size:13px;border:1px solid var(--border);background:var(--page);color:var(--ink-2);-webkit-user-select:none;user-select:none}.admin-toggle:hover{border-color:var(--baseline)}.admin-toggle.on{border-color:var(--series-1);color:var(--ink);background:color-mix(in srgb,var(--series-1) 14%,transparent)}.admin-toggle.on.danger{border-color:var(--status-critical);background:color-mix(in srgb,var(--status-critical) 13%,transparent)}.admin-toggle input{accent-color:var(--series-1);margin:0}.admin-bar{display:flex;align-items:center;gap:12px;margin-top:16px}.admin-save{font:inherit;font-weight:600;font-size:13.5px;padding:9px 20px;border:none;border-radius:9px;background:var(--series-1);color:#fff;cursor:pointer}.admin-save:disabled{background:var(--grid);color:var(--muted);cursor:default}.userform{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin-top:10px}.userform label{display:grid;gap:4px;font-size:12px;color:var(--muted)}.userform input,.userform select,table.data select{font:inherit;font-size:13px;padding:7px 10px;border-radius:8px;border:1px solid var(--border);background:var(--page);color:var(--ink)}.userform input{min-width:210px}.linkbtn{font:inherit;font-size:12.5px;border:none;background:none;cursor:pointer;color:var(--series-1);padding:2px 6px}.linkbtn.danger{color:var(--status-critical)}.linkbtn:disabled{color:var(--muted);cursor:default}.credentials{border-color:var(--status-good);margin-bottom:14px}.cred-row{display:grid;grid-template-columns:90px 1fr;gap:10px;font-size:13.5px;margin:5px 0}.cred-row span{color:var(--muted)}.cred-pw{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:16px;letter-spacing:.06em;background:var(--grid);padding:3px 10px;border-radius:6px;-webkit-user-select:all;user-select:all}.sb-wrap{max-width:1100px;margin:0 auto}.sb-header{text-align:center;margin:10px 0 24px}.sb-header h2{font-size:26px;margin:0 0 4px;letter-spacing:.01em}.sb-meta{color:var(--muted);font-size:12.5px}.sb-ranking{display:flex;gap:18px;align-items:stretch;flex-wrap:wrap;justify-content:center}.sb-card{position:relative;flex:1 1 300px;max-width:460px;background:var(--surface-1);border:1px solid var(--border);border-radius:16px;padding:22px 24px 18px;text-align:center}.sb-card.rank-1{flex-basis:380px;order:-1;border:2px solid var(--series-4);box-shadow:0 0 46px color-mix(in srgb,var(--series-4) 28%,transparent);transform:scale(1.03)}.sb-crown{position:absolute;top:-18px;left:50%;transform:translate(-50%);font-size:26px}.sb-rank{font-size:30px;line-height:1}.sb-name{font-size:21px;font-weight:700;margin-top:6px}.sb-points{font-size:52px;font-weight:750;line-height:1.1;margin:8px 0 2px;font-variant-numeric:tabular-nums}.sb-card.rank-1 .sb-points{font-size:66px;color:var(--series-4)}.sb-points-label{display:block;font-size:12px;font-weight:500;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.sb-bar{height:8px;border-radius:4px;background:var(--grid);margin:12px 0 14px;overflow:hidden}.sb-bar-fill{height:100%;border-radius:4px;background:var(--series-1);transition:width .6s}.sb-card.rank-1 .sb-bar-fill{background:var(--series-4)}.sb-breakdown{display:grid;gap:5px;text-align:left;font-size:13px;color:var(--ink-2)}.sb-breakdown strong{color:var(--ink)}.sb-breakdown .rate{float:right}.sb-milestones{margin-top:34px;background:var(--surface-1);border:1px solid var(--border);border-radius:16px;padding:20px 26px}.sb-milestones h3{margin:0 0 16px;font-size:15px}.sb-mile{margin:18px 0}.sb-mile-head{display:flex;justify-content:space-between;font-size:14px;margin-bottom:6px}.sb-mile-name{font-weight:650}.sb-mile-count strong{font-size:17px}.sb-done{color:var(--good-text);font-weight:650}.sb-mile-track{position:relative;height:18px;border-radius:9px;background:var(--grid)}.sb-mile-fill{height:100%;border-radius:9px;background:var(--series-1);min-width:6px;transition:width .6s}.sb-mile-fill.ontrack{background:var(--status-good)}.sb-runner{position:absolute;top:-6px;font-size:19px;transition:left .6s;transform:scaleX(-1);display:inline-block}.sb-flag{position:absolute;right:-4px;top:-8px;font-size:19px}.sb-mile-pace{margin-top:7px;font-size:12.5px;color:var(--ink-2)}.sb-ontrack{color:var(--good-text);font-weight:600}.quality{display:flex;flex-wrap:wrap;gap:10px 22px;align-items:baseline;background:var(--surface-1);border:1px dashed var(--border);border-radius:10px;padding:9px 14px;margin:20px 0 8px;font-size:12.5px;color:var(--ink-2)}.quality .q-title{font-weight:600;color:var(--ink)}.quality .warn{color:var(--status-critical);font-weight:600}.quality .ok{color:var(--good-text);font-weight:600}.legend{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:12px;color:var(--ink-2);margin-top:8px}.legend .item{display:inline-flex;align-items:center;gap:6px}.legend .swatch{width:10px;height:10px;border-radius:3px;display:inline-block}.tooltip{position:fixed;pointer-events:none;z-index:10;background:var(--ink);color:var(--page);border-radius:7px;padding:6px 10px;font-size:12px;line-height:1.5;transform:translate(-50%,calc(-100% - 10px));white-space:nowrap}.funnel-row{display:grid;grid-template-columns:130px 1fr 90px;gap:10px;align-items:center;margin:3px 0}.funnel-label{font-size:12.5px;color:var(--ink-2);text-align:right}.funnel-bar-bg{height:20px;border-radius:4px;position:relative}.funnel-bar{height:100%;border-radius:4px;background:var(--series-1);min-width:2px;transition:width .25s}.funnel-val{font-size:12.5px;font-variant-numeric:tabular-nums}.note{color:var(--muted);font-size:12.5px}.error{color:var(--status-critical);padding:12px}.loading{color:var(--muted);padding:30px;text-align:center}.setup{max-width:560px;margin:60px auto;background:var(--surface-1);border:1px solid var(--border);border-radius:14px;padding:26px 30px}.setup code{background:var(--grid);border-radius:4px;padding:1px 6px}.setup.login{max-width:380px;text-align:center}.setup.login form{display:grid;gap:12px;margin-top:16px;text-align:left}.setup.login label{display:grid;gap:4px;font-size:13px;color:var(--ink-2)}.setup.login input{font:inherit;padding:9px 12px;border-radius:8px;border:1px solid var(--border);background:var(--page);color:var(--ink)}.setup.login button[type=submit]{font:inherit;font-weight:600;padding:10px;border-radius:8px;border:none;background:var(--series-1);color:#fff;cursor:pointer;margin-top:4px}.setup ol{padding-left:20px}
