:root{color-scheme:light;font-family:Avenir Next,Aptos,Segoe UI,sans-serif;background:#f5f7f2;color:#111815;--ink: #111815;--muted: #64706a;--paper: #fbfcf7;--panel: #ffffff;--line: #d9e0da;--line-strong: #aeb9b0;--teal: #0f8b8d;--cobalt: #3157d5;--coral: #ee5d4f;--gold: #d69b10;--green: #2e7d48;--shadow: 0 18px 44px rgba(23, 31, 28, .08);font-synthesis:none;text-rendering:geometricPrecision}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0;background:linear-gradient(90deg,rgba(17,24,21,.04) 1px,transparent 1px),linear-gradient(180deg,rgba(17,24,21,.035) 1px,transparent 1px),#f5f7f2;background-size:48px 48px}button,input{font:inherit;letter-spacing:0}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}.app-shell{width:min(1480px,calc(100vw - 32px));min-height:100vh;margin:0 auto;padding:24px 0 28px}.topbar,.auth-strip,.privacy-bar{display:flex;align-items:center;justify-content:space-between;gap:16px}.topbar{padding:4px 0 18px}.brand-lockup{display:flex;align-items:center;gap:14px;min-width:0}.brand-mark{display:grid;width:42px;height:42px;place-items:center;border:2px solid var(--ink);background:var(--ink);color:#fff;font-weight:800}h1,h2,p{margin:0}h1{font-size:25px;line-height:1.1}.brand-lockup p{margin-top:5px;color:var(--muted);font-size:13px}.top-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.segmented,.view-tabs{display:inline-flex;align-items:center;border:1px solid var(--line);background:#ffffffb8;box-shadow:0 1px #fffc inset}.segmented{height:38px}.segmented button,.view-tabs button,.icon-action,.token-form button{border:0;background:transparent;color:var(--ink)}.segmented button{min-width:48px;height:36px;padding:0 12px;border-right:1px solid var(--line);font-size:13px;font-weight:700}.segmented button:last-child{border-right:0}.segmented .is-active,.view-tabs .is-active{background:var(--ink);color:#fff}.icon-action{display:inline-flex;align-items:center;justify-content:center;height:38px;gap:8px;padding:0 13px;border:1px solid var(--line);background:var(--panel);font-size:13px;font-weight:700}.auth-strip{min-height:54px;padding:10px 12px;border:1px solid var(--line);background:#fbfcf7e0}.auth-status{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:13px;font-weight:700}.token-form{display:grid;grid-template-columns:minmax(220px,380px) 86px;gap:8px;width:min(100%,500px)}.token-form input{min-width:0;height:36px;border:1px solid var(--line-strong);background:#fff;color:var(--ink);padding:0 11px}.token-form button{height:36px;border:1px solid var(--ink);background:var(--ink);color:#fff;font-weight:800}.alert{margin-top:12px;padding:12px 14px;border-left:4px solid var(--coral);background:#fff6f4;color:#7f2118;font-size:14px}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:14px}.kpi-tile{min-height:118px;padding:16px;border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow)}.kpi-tile svg{color:var(--teal)}.kpi-tile span{display:block;margin-top:16px;color:var(--muted);font-size:13px;font-weight:700}.kpi-tile strong{display:block;margin-top:7px;font-size:30px;line-height:1}.view-tabs{width:100%;margin-top:18px;overflow-x:auto}.view-tabs button{display:inline-flex;flex:1 0 150px;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 14px;border-right:1px solid var(--line);font-weight:800}.view-tabs button:last-child{border-right:0}.content-band{margin-top:14px}.view-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.view-grid-wide{grid-template-columns:1.2fr 1fr .82fr}.panel{min-height:240px;border:1px solid var(--line);background:#fffffff0;box-shadow:var(--shadow)}.panel-span{grid-column:span 2}.funnel-panel{grid-row:span 2}.trend-panel{grid-column:span 2}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:54px;padding:14px 16px;border-bottom:1px solid var(--line)}.panel-title div{display:flex;align-items:center;min-width:0;gap:9px}.panel-title h2{font-size:15px;line-height:1.2}.panel-title span{color:var(--muted);font-size:12px;font-weight:700;white-space:nowrap}.funnel{display:grid;gap:12px;padding:16px}.funnel-row{display:grid;grid-template-columns:minmax(150px,1fr) 1.4fr 92px;align-items:center;gap:12px}.funnel-meta{display:grid;gap:3px}.funnel-meta strong{font-size:13px}.funnel-meta span,.funnel-rates{color:var(--muted);font-size:12px;font-weight:700}.bar-track,.mini-track{position:relative;overflow:hidden;height:12px;background:#edf1eb;border:1px solid var(--line)}.bar-fill,.mini-track i{display:block;height:100%;background:linear-gradient(90deg,var(--cobalt),var(--teal))}.funnel-rates{display:flex;justify-content:space-between;gap:8px}.chart-wrap{padding:16px}.chart-wrap svg{display:block;width:100%;aspect-ratio:3 / 1}.chart-wrap line{stroke:var(--line-strong);stroke-width:1}.line{fill:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.line.downloads,.swatch.downloads{stroke:var(--cobalt);background:var(--cobalt)}.line.first-opens,.swatch.first-opens{stroke:var(--gold);background:var(--gold)}.line.activations,.swatch.activations{stroke:var(--teal);background:var(--teal)}.legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:12px;color:var(--muted);font-size:12px;font-weight:800}.legend span{display:inline-flex;align-items:center;gap:6px}.swatch{width:12px;height:12px}.dimension-list,.metric-rows,.snapshot-list{padding:14px 16px 16px}.dimension-row{display:grid;grid-template-columns:minmax(90px,1fr) 1.2fr 54px;align-items:center;min-height:34px;gap:10px;border-bottom:1px solid #edf1eb;font-size:13px}.dimension-row:last-child{border-bottom:0}.dimension-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}.dimension-row strong{text-align:right}.mini-track{height:8px}.mini-track i{background:var(--coral)}.snapshot-list{display:grid;gap:10px}.snapshot-row{display:flex;align-items:center;justify-content:space-between;min-height:52px;gap:14px;border-bottom:1px solid #edf1eb}.snapshot-row:last-child{border-bottom:0}.snapshot-row div{min-width:0}.snapshot-row strong,.snapshot-row span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.snapshot-row strong{font-size:13px}.snapshot-row span{margin-top:4px;color:var(--muted);font-size:11px;font-weight:800}.snapshot-row em{flex:0 0 auto;color:var(--cobalt);font-style:normal;font-weight:900}.stage-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:16px}.stage{min-height:146px;padding:15px;border:1px solid var(--line);background:#f8faf5}.stage strong{display:block;font-size:32px}.stage span,.stage em{display:block;margin-top:10px}.stage span{font-size:13px;font-weight:800}.stage em{color:var(--muted);font-style:normal;font-size:12px;font-weight:700}.metric-rows{margin:0}.metric-rows div{display:flex;align-items:center;justify-content:space-between;min-height:42px;gap:16px;border-bottom:1px solid #edf1eb}.metric-rows div:last-child{border-bottom:0}.metric-rows dt{color:var(--muted);font-size:13px;font-weight:800}.metric-rows dd{margin:0;font-size:15px;font-weight:900;text-align:right}.retention-panel{min-height:300px}.retention-rate,.support-number{padding:22px 16px 8px;font-weight:900;font-size:54px;line-height:1}.retention-rate{color:var(--green)}.support-number{color:var(--coral)}.empty-panel,.empty-inline{display:grid;place-items:center;min-height:260px;gap:10px;border:1px dashed var(--line-strong);background:#ffffffb8;color:var(--muted);font-weight:800;text-align:center}.empty-inline{min-height:180px;border:0}.privacy-bar{margin-top:18px;justify-content:flex-start;padding:12px 0;color:var(--muted);font-size:12px;font-weight:800}@media(max-width:1180px){.kpi-grid,.view-grid,.view-grid-wide{grid-template-columns:repeat(2,minmax(0,1fr))}.trend-panel,.panel-span{grid-column:span 2}.funnel-panel{grid-row:auto}.stage-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.app-shell{width:min(100vw - 20px,1480px);padding-top:12px}.topbar,.auth-strip{align-items:stretch;flex-direction:column}.top-actions{justify-content:flex-start}.token-form,.kpi-grid,.view-grid,.view-grid-wide,.stage-grid{grid-template-columns:1fr}.trend-panel,.panel-span{grid-column:auto}.funnel-row{grid-template-columns:1fr;gap:6px}.funnel-rates{justify-content:flex-start}.dimension-row{grid-template-columns:minmax(80px,1fr) 1fr 46px}.view-tabs button{flex-basis:132px}}
