:root{--bg:#0f1117;--surface:#1a1d27;--surface2:#232735;--border:#2e3348;--text:#e2e4ed;--text-muted:#8b8fa3;--accent:#6c7aed}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Segoe UI,system-ui,sans-serif;line-height:1.5}header{max-width:1400px;margin:0 auto;padding:2rem 2rem 1rem}header h1{letter-spacing:-.02em;font-size:1.5rem;font-weight:600}header p{color:var(--text-muted);margin-top:.25rem;font-size:.875rem}.grid{grid-template-columns:1fr;gap:1.25rem;max-width:1400px;margin:0 auto;padding:1rem 2rem 2rem;display:grid}@media (min-width:900px){.grid{grid-template-columns:1fr 1fr}.grid .full{grid-column:1/-1}}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.25rem;position:relative;overflow:hidden}.card:before{content:"";background:var(--card-accent,var(--accent));opacity:.6;height:2px;position:absolute;top:0;left:0;right:0}.card h2{letter-spacing:-.01em;margin-bottom:.25rem;font-size:.9rem;font-weight:600}.card .subtitle{color:var(--text-muted);margin-bottom:1rem;font-size:.75rem}.chart-wrap{height:240px;position:relative}.full .chart-wrap{height:320px}.latest-strip{flex-wrap:wrap;gap:1rem;max-width:1400px;margin:0 auto;padding:1rem 2rem;display:flex}.latest-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;flex:1;min-width:140px;padding:.875rem 1.125rem;position:relative;overflow:hidden}.latest-card:before{content:"";background:var(--card-accent,var(--accent));width:3px;position:absolute;top:0;bottom:0;left:0}.latest-card .label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-size:.7rem;font-weight:500}.latest-card .value{letter-spacing:-.03em;margin:.125rem 0;font-size:1.5rem;font-weight:700}.latest-card .unit{color:var(--text-muted);font-size:.75rem}.latest-card .date{color:var(--text-muted);margin-top:.25rem;font-size:.65rem}.singles-table{border-collapse:collapse;width:100%}.singles-table td{border-bottom:1px solid var(--border);padding:.5rem 0;font-size:.85rem}.singles-table tr:last-child td{border-bottom:none}.singles-table td:first-child{color:var(--text-muted);font-weight:500}.singles-table td:nth-child(2){text-align:right;font-weight:600}.singles-table td:nth-child(3){color:var(--text-muted);text-align:right;font-size:.75rem}.login-wrap{justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;width:100%;max-width:360px;padding:2rem}.login-card h1{margin-bottom:.25rem;font-size:1.25rem}.login-card p{color:var(--text-muted);margin-bottom:1.5rem;font-size:.85rem}.login-card input{border:1px solid var(--border);background:var(--surface2);width:100%;color:var(--text);border-radius:8px;outline:none;margin-bottom:1rem;padding:.75rem;font-size:.9rem}.login-card input:focus{border-color:var(--accent)}.login-card button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;width:100%;padding:.75rem;font-size:.9rem;font-weight:600}.login-card button:hover{background:#5a67d8}.login-err{color:#f87171;margin-bottom:.75rem;font-size:.8rem}.status-msg{color:var(--text-muted);padding:1rem 2rem;font-size:.85rem}.summary-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;max-width:1400px;margin:1rem auto 0;padding:1.25rem 1.5rem;position:relative;overflow:hidden}.summary-card:before{content:"";background:var(--accent);opacity:.6;height:2px;position:absolute;top:0;left:0;right:0}.summary-card__head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.75rem;display:flex}.summary-card__head h2{letter-spacing:-.01em;font-size:.9rem;font-weight:600}.summary-card__pill{color:var(--text-muted);background:var(--surface2);border:1px solid var(--border);white-space:nowrap;border-radius:999px;padding:.2rem .65rem;font-size:.75rem}.summary-card__body p{color:var(--text);font-size:.9rem;line-height:1.55}.summary-card__body p+p{margin-top:.6rem}.summary-card__body strong{color:var(--text);font-weight:600}.summary-card__body em{color:var(--text-muted);font-style:italic}.summary-card__foot{color:var(--text-muted);border-top:1px solid var(--border);margin-top:.9rem;padding-top:.6rem;font-size:.7rem}.funnel{--f-s1:#cde2fb;--f-s2:#9ec5f4;--f-s3:#6da7ec;--f-s4:#3987e5;--f-s5:#184f95;--f-good:#3fb950;--f-warn:#fab219;--f-ghost:#8b8fa324;--f-ghostline:#8b8fa380;max-width:1400px;margin:1.5rem auto 0;padding:0 2rem}.funnel>h2{letter-spacing:-.01em;margin-bottom:.25rem;font-size:1.05rem;font-weight:650}.funnel .funnel-sub{color:var(--text-muted);max-width:62ch;margin-bottom:1.25rem;font-size:.8rem;line-height:1.5}.funnel-headline{flex-wrap:wrap;gap:.875rem;margin-bottom:1.5rem;display:flex}.funnel-tile{background:var(--surface);border:1px solid var(--border);border-radius:14px;flex:1;min-width:150px;padding:.9rem 1.1rem}.funnel-tile .big{letter-spacing:-.02em;font-size:1.85rem;font-weight:680;line-height:1}.funnel-tile .cap{color:var(--text-muted);margin-top:.4rem;font-size:.78rem;line-height:1.45}.funnel-tile .cap b{color:var(--text);font-weight:600}.funnel-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:1.25rem 1.25rem .5rem;overflow-x:auto}.funnel-scaler{min-width:720px}.funnel-grid{grid-template-columns:172px repeat(4,1fr);gap:0;display:grid}.funnel-corner{padding:0 0 14px}.funnel-hcell{text-align:center;padding:0 8px 14px}.funnel-hcell .cname{font-size:.9rem;font-weight:640}.funnel-hcell .cwhen{color:var(--text-muted);margin-top:2px;font-size:.72rem}.funnel-chip{letter-spacing:.02em;border-radius:999px;margin-top:7px;padding:2px 8px;font-size:.66rem;font-weight:600;display:inline-block}.funnel-chip.done{color:var(--f-good);background:color-mix(in srgb, var(--f-good) 16%, transparent)}.funnel-chip.prog{color:var(--f-warn);background:color-mix(in srgb, var(--f-warn) 22%, transparent)}.funnel-chip.bank{color:var(--text-muted);background:var(--f-ghost)}.funnel-stagelab{border-top:1px solid var(--border);flex-direction:column;justify-content:center;min-height:74px;padding:0 14px 0 2px;display:flex}.funnel-stagelab .n{font-size:.85rem;font-weight:600;line-height:1.2}.funnel-stagelab .d{color:var(--text-muted);margin-top:3px;font-size:.7rem;line-height:1.3}.funnel-cell{border-top:1px solid var(--border);justify-content:center;align-items:center;min-height:74px;padding:9px 8px;display:flex}.funnel-bar{cursor:default;height:38px;box-shadow:0 0 0 2px var(--surface);border-radius:5px;justify-content:center;align-items:center;transition:filter .12s;display:flex;position:relative}.funnel-bar:hover{filter:brightness(1.08)}.funnel-bar .v{color:#fff;font-variant-numeric:tabular-nums;text-shadow:0 1px 1.5px #00000047;font-size:.94rem;font-weight:680}.funnel-bar.stage-1 .v,.funnel-bar.stage-2 .v,.funnel-bar.stage-3 .v{color:#0b0b0b;text-shadow:none}.funnel-bar.dashed{border:1.5px dashed var(--f-s3);box-shadow:none;background:0 0!important}.funnel-bar.dashed .v{color:var(--f-s3);text-shadow:none;font-weight:660}.funnel-ghost{border:1.5px dashed var(--f-ghostline);background:var(--f-ghost);cursor:default;border-radius:5px;justify-content:center;align-items:center;min-width:64px;height:34px;padding:0 12px;display:flex}.funnel-ghost .g{color:var(--text-muted);letter-spacing:.02em;white-space:nowrap;font-size:.7rem;font-weight:600}.funnel-tip{z-index:50;pointer-events:none;opacity:0;background:var(--surface2);border:1px solid var(--border);border-radius:11px;max-width:270px;padding:11px 13px;transition:opacity .1s;position:fixed;transform:translateY(4px);box-shadow:0 8px 26px #0006}.funnel-tip.on{opacity:1;transform:translateY(0)}.funnel-tip .tt{margin-bottom:2px;font-size:.78rem;font-weight:660}.funnel-tip .ts{color:var(--text-muted);margin-bottom:7px;font-size:.68rem}.funnel-tip .tv{color:var(--text);font-size:.78rem;line-height:1.5}.funnel-tip .tv b{color:var(--text)}.funnel-tip .te{color:var(--text-muted);border-top:1px solid var(--border);margin-top:7px;padding-top:7px;font-size:.72rem;line-height:1.5}.funnel-tip .te b{color:var(--text)}.funnel-cellcol{flex-direction:column;align-items:center;gap:4px;width:100%;display:flex}.funnel-expw{opacity:.8;height:8px;position:relative}.funnel-expw .rail{background:var(--f-ghostline);height:1px;position:absolute;top:3.5px;left:0;right:0}.funnel-expw .cap{background:var(--f-ghostline);width:1.5px;position:absolute;top:0;bottom:0}.funnel-expw .cap.act{border-radius:1.5px;width:2.5px;top:-1px;bottom:-1px}.funnel-expw{margin-bottom:9px}.funnel-expw .lab{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:.58rem;line-height:1;position:absolute;top:9px}.funnel-expw .lab.lo{left:0;transform:translate(-30%)}.funnel-expw .lab.hi{right:0;transform:translate(30%)}.funnel-expw .lab.mid{left:50%;transform:translate(-50%)}.funnel-tv .exp{color:var(--text-muted);margin-top:3px;font-size:.66rem;font-weight:400}.funnel-toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-top:1.25rem;display:flex}.funnel-btn{font:inherit;color:var(--text-muted);cursor:pointer;background:var(--surface);border:1px solid var(--border);border-radius:9px;padding:7px 13px;font-size:.78rem;font-weight:600}.funnel-btn:hover{color:var(--text)}.funnel-tv{border-collapse:collapse;width:100%;margin-top:1rem;font-size:.78rem}.funnel-tv th,.funnel-tv td{border:1px solid var(--border);text-align:center;font-variant-numeric:tabular-nums;padding:7px 10px}.funnel-tv th{background:var(--f-ghost);font-weight:600}.funnel-tv td:first-child,.funnel-tv th:first-child{text-align:left;font-weight:600}.funnel-tv .pend{color:var(--text-muted)}.funnel-foot{color:var(--text);margin-top:1.25rem;font-size:.78rem;line-height:1.6}.funnel-foot .note{gap:8px;display:flex}.funnel-foot .note .m{color:var(--f-warn);font-weight:700}.funnel-src{color:var(--text-muted);margin-top:1.125rem;font-size:.72rem;line-height:1.5}.funnel-src a{color:var(--f-s3)}.cycle-toggle{flex-wrap:wrap;align-items:center;gap:.5rem;max-width:1400px;margin:1.25rem auto 0;padding:0 2rem;display:flex}.cycle-toggle-label{color:var(--text-muted);margin-right:.25rem;font-size:.75rem}.cycle-chip{font:inherit;color:var(--text-muted);background:var(--surface);border:1px solid var(--border);cursor:pointer;opacity:.55;border-radius:999px;align-items:center;gap:.45rem;padding:.3rem .75rem;font-size:.78rem;font-weight:600;transition:opacity .15s,border-color .15s,color .15s;display:inline-flex}.cycle-chip:before{content:"";background:var(--chip-color,var(--accent));border-radius:50%;flex-shrink:0;width:8px;height:8px}.cycle-chip:hover{opacity:.85}.cycle-chip.on{color:var(--text);border-color:var(--chip-color,var(--border));opacity:1}.cycle-chip.on:hover{opacity:1}.anno-key{max-width:1400px;color:var(--text-muted);margin:1.25rem auto 0;padding:0 2rem;font-size:.72rem;line-height:1.5}.anno-key b{color:var(--text);font-weight:600}.pt-primary,.login-card .pt-primary{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:10px;width:100%;padding:.85rem;font-size:1rem;font-weight:600}.pt-primary:disabled{opacity:.7;cursor:default}.pt-link-button{text-align:center;margin-top:1rem;text-decoration:none;display:block}.pt-break-glass{border-top:1px solid var(--border);margin-top:1.5rem;padding-top:1rem}.pt-break-glass summary{color:var(--text-muted);cursor:pointer;margin-bottom:1rem;font-size:.85rem}.pt-who{gap:1.25rem;margin-bottom:1rem;font-size:.9rem;display:flex}.pt-who input{width:auto;margin:0 .35rem 0 0}.login-card .pt-who input{width:auto;margin:0 .35rem 0 0;padding:0}.pt-fine{color:var(--text-muted);margin-top:.75rem;font-size:.75rem}.login-card .pt-fine{margin-bottom:0}.pt-home{max-width:560px;padding:calc(env(safe-area-inset-top) + 1.5rem) 1rem calc(env(safe-area-inset-bottom) + 2rem);margin:0 auto}.pt-home-head{max-width:none;padding:0}.pt-home-head h1{letter-spacing:-.02em;font-size:1.6rem;font-weight:650}.pt-home-head p{color:var(--text-muted);font-size:.85rem}.pt-tiles{gap:.75rem;margin:1.5rem 0;display:grid}.pt-tile{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:14px;align-items:center;gap:1rem;padding:1rem 1.1rem;text-decoration:none;display:flex}.pt-tile:active{background:var(--surface2)}.pt-tile-emoji{font-size:1.8rem;line-height:1}.pt-tile-text{flex-direction:column;min-width:0;display:flex}.pt-tile-text span{color:var(--text-muted);font-size:.8rem}.pt-panel{background:var(--surface);border:1px solid var(--border);border-radius:14px;margin-bottom:.75rem;padding:1rem 1.1rem}.pt-panel h2{margin-bottom:.5rem;font-size:.95rem;font-weight:600}.pt-panel p{font-size:.85rem}.pt-callout{border-color:var(--accent)}.pt-callout p{color:var(--text-muted);margin-bottom:.75rem}.pt-muted{color:var(--text-muted)}.pt-note{color:var(--text-muted);margin-top:.6rem;font-size:.8rem}.pt-row{justify-content:space-between;align-items:center;gap:.5rem;font-size:.9rem;display:flex}.pt-actions{flex-wrap:wrap;gap:.5rem;display:flex}.pt-panel button,.pt-signout button{border:1px solid var(--border);background:var(--surface2);color:var(--text);cursor:pointer;border-radius:8px;padding:.45rem .8rem;font-size:.8rem}.pt-panel .pt-primary-sm{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.pt-toggles{gap:.45rem;margin-top:.75rem;font-size:.875rem;list-style:none;display:grid}.pt-toggles input{accent-color:var(--accent);margin-right:.4rem}.pt-devices{gap:.6rem;margin-bottom:.5rem;font-size:.875rem;list-style:none;display:grid}.pt-devices li{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.pt-link{align-items:center;gap:.5rem;margin-top:.75rem;display:flex}.pt-link code{overflow-wrap:anywhere;min-width:0;color:var(--text-muted);flex:1;font-size:.7rem}.pt-signout{text-align:center;margin-top:1.25rem}
