:root{--bg:#f6f7fb;--surface:#fff;--surface-2:#f0f2f8;--border:#e4e7ef;--text:#1d2330;--text-muted:#6b7280;--accent:#6366f1;--accent-2:#14b8a6;--accent-fade:#6366f12e;--neutral:#9ca3af;--grid:#eef0f6;--shadow:0 1px 2px #0f172a0a, 0 4px 8px #0f172a0a;--radius:10px;--radius-sm:6px}@media (prefers-color-scheme:dark){:root{--bg:#0c1020;--surface:#141a2e;--surface-2:#1a2138;--border:#232b46;--text:#e9ecf6;--text-muted:#8a93b1;--accent:#818cf8;--accent-2:#2dd4bf;--accent-fade:#818cf838;--neutral:#4b5570;--grid:#1f263e;--shadow:0 1px 2px #0006, 0 6px 16px #00000052}}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font:14px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,system-ui,sans-serif}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.auth-shell{background:var(--bg);place-items:center;min-height:100vh;padding:1.5rem;display:grid}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:min(100%,420px);box-shadow:var(--shadow);padding:2rem}.auth-card h1{margin:0 0 .5rem;font-size:1.4rem}.auth-help{color:var(--text-muted);margin:0 0 1rem}.auth-error{color:#c2410c;margin:.5rem 0}.dashboard-shell{flex-direction:column;min-height:100vh;display:flex}.dashboard-header{background:var(--surface);border-bottom:1px solid var(--border);z-index:10;position:sticky;top:0}.dashboard-header-inner{align-items:center;gap:1.5rem;width:100%;max-width:1500px;margin:0 auto;padding:.75rem 1.5rem;display:flex}.brand{font-size:1rem;font-weight:600}.brand-sub{color:var(--text-muted);margin-left:.25rem;font-weight:400}.brand-version{color:var(--text-muted);border:1px solid var(--border);border-radius:999px;margin-left:.4rem;padding:.05rem .35rem;font-family:ui-monospace,monospace;font-size:.7rem;font-weight:400}.live-toggle{color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.35rem;font-size:.8rem;display:inline-flex}.live-toggle input[type=checkbox]{accent-color:var(--accent)}.error-fallback{place-items:center;min-height:60vh;padding:1.5rem;display:grid}.error-fallback-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);max-width:540px;box-shadow:var(--shadow);padding:1.5rem 1.75rem}.error-fallback-card h2{margin:0 0 .5rem;font-size:1.1rem}.error-fallback-msg{color:var(--text-muted);background:var(--surface-2);border-radius:var(--radius-sm);white-space:pre-wrap;padding:.5rem .6rem;font-family:ui-monospace,monospace;font-size:.82rem}.error-fallback-actions{gap:.5rem;margin-top:.75rem;display:flex}.kbd-prefix{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);z-index:50;padding:.3rem .5rem;font-family:ui-monospace,monospace;font-size:.75rem;position:fixed;bottom:1rem;left:1rem}.kbd-help{z-index:50;background:#00000080;place-items:center;display:grid;position:fixed;inset:0}.kbd-help-card{background:var(--surface);border-radius:var(--radius);min-width:320px;max-width:420px;box-shadow:var(--shadow);padding:1.25rem 1.5rem}.kbd-help-card h3{margin:0 0 .75rem;font-size:1rem}.kbd-help-card table{border-collapse:collapse;width:100%;font-size:.85rem}.kbd-help-card td{padding:.25rem 0}.kbd-help-card kbd{background:var(--surface-2);border:1px solid var(--border);border-radius:4px;padding:.05rem .4rem;font-family:ui-monospace,monospace;font-size:.75rem}.kbd-help-foot{color:var(--text-muted);margin-top:.6rem;font-size:.78rem}.dashboard-nav{flex-wrap:wrap;gap:.25rem;display:flex}.dashboard-nav a{color:var(--text-muted);border-radius:var(--radius-sm);padding:.4rem .75rem;font-size:.9rem}.dashboard-nav a:hover{background:var(--surface-2);text-decoration:none}.dashboard-nav a.active{background:var(--accent-fade);color:var(--accent)}.dashboard-header-right{align-items:center;gap:.75rem;margin-left:auto;display:flex}.global-search{position:relative}.global-search-input{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);width:200px;padding:.35rem .65rem;font-size:.85rem}.global-search-input:focus{border-color:var(--accent);outline:none}.global-search-pop{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:280px;box-shadow:var(--shadow);z-index:30;position:absolute;top:calc(100% + 4px);right:0;overflow:hidden}.global-search-row{cursor:pointer;text-align:left;width:100%;color:var(--text);background:0 0;border:0;align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:.85rem;display:flex}.global-search-row:hover{background:var(--surface-2)}.global-search-email{flex:1}.global-search-empty{color:var(--text-muted);padding:.5rem .75rem;font-size:.85rem}.dashboard-main{width:100%;max-width:1500px;margin:0 auto;padding:1.5rem}.filter-bar{border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:1.25rem;width:100%;max-width:1500px;margin:0 auto;padding:.75rem 1.5rem;display:flex}.filter-group{align-items:center;gap:.5rem;display:flex}.filter-label{color:var(--text-muted);font-size:.8rem}.seg{border:1px solid var(--border);border-radius:var(--radius-sm);display:inline-flex;overflow:hidden}.seg-btn{color:var(--text-muted);cursor:pointer;border:0;border-right:1px solid var(--border);background:0 0;padding:.3rem .7rem;font-size:.85rem}.seg-btn:last-child{border-right:0}.seg-btn:hover{color:var(--text)}.seg-btn-active{background:var(--accent);color:#fff}.filter-date{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);padding:.3rem .5rem;font-size:.85rem}.filter-summary{color:var(--text-muted);margin-left:auto;font-size:.8rem}.page>*+*{margin-top:1.5rem}.page-head h1{margin:0;font-size:1.5rem}.page-sub{color:var(--text-muted);margin-top:.25rem;font-size:.9rem}.metric-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.75rem;display:grid}.metric-grid-3{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.metric-grid-hint{color:var(--text-muted);margin:-.25rem 0 0;font-size:.75rem}.metric-tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:.9rem 1rem}.metric-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.78rem}.metric-value{margin-top:.25rem;font-size:1.5rem;font-weight:600}.metric-row{align-items:center;gap:.5rem;height:20px;margin-top:.4rem;display:flex}.metric-spark{flex:1;min-width:60px;height:20px}.metric-delta{border-radius:var(--radius-sm);padding:.1rem .4rem;font-size:.75rem}.metric-delta-up{color:#047857;background:#d1fae5}.metric-delta-down{color:#b91c1c;background:#fee2e2}.metric-delta-flat{background:var(--surface-2);color:var(--text-muted)}.chart-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem 1.1rem}.chart-card-head{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.75rem;display:flex}.chart-card-title{margin:0;font-size:1rem;font-weight:600}.chart-card-subtitle{color:var(--text-muted);margin:.2rem 0 0;font-size:.82rem}.chart-card-body{width:100%}.grid-2{grid-template-columns:repeat(auto-fit,minmax(min(440px,100%),1fr));gap:1rem;display:grid}.grid-3{grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:1rem;display:grid}.heatmap{width:100%;overflow-x:auto}.heatmap-title{color:var(--text-muted);margin-bottom:.5rem;font-size:.85rem}.heatmap-grid{grid-template-columns:36px repeat(24,minmax(22px,1fr)) 40px;gap:2px;min-width:700px;font-size:10px;display:grid}.heatmap-corner,.heatmap-row-label,.heatmap-col-header,.heatmap-foot-label,.heatmap-foot-cell,.heatmap-row-total,.heatmap-grand{color:var(--text-muted);place-items:center;padding:2px;display:grid}.heatmap-row-label{color:var(--text);font-weight:500}.heatmap-row-total{color:var(--text);font-weight:600}.heatmap-grand{color:var(--text);background:var(--surface-2);font-weight:600}.heatmap-cell{color:#fff;text-shadow:0 1px 2px #0006;border-radius:3px;place-items:center;height:28px;font-size:10px;font-weight:500;display:grid}.heatmap-foot-cell{background:var(--surface-2);color:var(--text);border-radius:3px}.feature-index{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.6rem;display:grid}.feature-index-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);color:var(--text);padding:.85rem 1rem}.feature-index-card:hover{border-color:var(--accent);text-decoration:none;transform:translateY(-1px)}.feature-index-label{font-weight:600}.feature-index-id{color:var(--text-muted);font-family:ui-monospace,monospace;font-size:.78rem}.retention-grid{flex-direction:column;gap:4px;font-size:.78rem;display:flex}.retention-row{grid-template-columns:110px 50px repeat(8,1fr);align-items:center;gap:4px;display:grid}.retention-row-header{color:var(--text-muted);font-weight:600}.retention-label{font-variant-numeric:tabular-nums}.retention-size{text-align:right;color:var(--text-muted);padding-right:4px}.retention-cell,.retention-cell-h{font-variant-numeric:tabular-nums;border-radius:4px;justify-content:center;align-items:center;height:30px;display:flex}.retention-cell-h{color:var(--text-muted);background:0 0}.retention-cell{color:var(--text)}.retention-cell-na{background:var(--surface-2);color:var(--text-muted);font-size:.7rem;font-style:italic}.retention-note{margin-top:.75rem;font-size:.8rem;line-height:1.5}.first-session{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);align-items:center;gap:.6rem;padding:.6rem .85rem;font-size:.85rem;display:flex}.first-session-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.72rem;font-weight:500}.first-session-good{border-left:4px solid var(--accent-2)}.first-session-bouncy{border-left:4px solid #b91c1c}.calheat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:.85rem 1rem}.calheat-title{flex-wrap:wrap;justify-content:space-between;gap:.5rem;margin-bottom:.5rem;font-size:.85rem;font-weight:500;display:flex}.calheat-totals{color:var(--text-muted);font-weight:400}.calheat-body{gap:6px;display:flex;overflow-x:auto}.calheat-rows{color:var(--text-muted);flex-direction:column;gap:2px;font-size:9px;display:flex}.calheat-row-label{align-items:center;height:13px;display:flex}.calheat-grid{gap:2px;display:flex}.calheat-col{flex-direction:column;gap:2px;display:flex}.calheat-cell{background:color-mix(in srgb, var(--accent) calc(var(--calheat-i,0) * 100%), var(--surface-2));border-radius:2px;width:13px;height:13px}.calheat-cell-zero{background:var(--surface-2)}.calheat-cell-empty{background:0 0}.table-scroll{max-height:100%;overflow:auto}.data-table{border-collapse:collapse;width:100%;font-size:.85rem}.data-table th,.data-table td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:.45rem .6rem}.data-table th{background:var(--surface);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.78rem;font-weight:600;position:sticky;top:0}.data-table tbody tr:hover{background:var(--surface-2)}.data-table tbody tr.is-clickable:hover{cursor:pointer}.data-table tbody tr.picked{background:var(--accent-fade)}.data-table .mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.muted{color:var(--text-muted)}.users-toolbar{align-items:center;gap:.5rem;display:flex}.users-search,.users-sort{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);padding:.4rem .65rem;font-size:.85rem}.users-search{flex:1;max-width:320px}.link-btn{border:1px solid var(--border);color:var(--accent);border-radius:var(--radius-sm);cursor:pointer;background:0 0;padding:.2rem .5rem;font-size:.8rem}.env-pill{text-transform:uppercase;letter-spacing:.04em;border-radius:999px;padding:.05rem .45rem;font-size:.72rem;font-weight:500;display:inline-block}.env-pill-beta{color:var(--accent-2);background:#14b8a62e}.env-pill-main{color:var(--accent);background:#6366f12e}.env-pill-unknown{background:var(--surface-2);color:var(--text-muted)}.kv-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.6rem;display:grid}.kv-cell{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.6rem .8rem}.kv-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.72rem}.kv-value{margin-top:.2rem;font-weight:500}.feedback-list{flex-direction:column;gap:.5rem;display:flex}.feedback-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:.75rem 1rem}.feedback-meta{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.78rem;display:flex}.feedback-date{white-space:nowrap}.feedback-type{text-transform:uppercase;background:var(--surface-2);border-radius:999px;padding:.05rem .45rem;font-size:.7rem;font-weight:500}.feedback-type-bug{color:#b91c1c;background:#dc262626}.feedback-type-praise{color:#047857;background:#10b98126}.feedback-type-request{color:var(--accent);background:#6366f126}.feedback-version{font-family:ui-monospace,monospace;font-size:.75rem}.feedback-status{margin-left:auto;font-weight:500}.feedback-text{white-space:pre-wrap;margin-top:.5rem}.feedback-author{color:var(--text-muted);margin-top:.4rem;font-size:.78rem}.post-puzzle-list{flex-direction:column;gap:.5rem;height:100%;padding:.25rem 0;display:flex}.post-puzzle-row{grid-template-columns:130px 1fr 90px;align-items:center;gap:.75rem;font-size:.85rem;display:grid}.post-puzzle-bar{background:var(--surface-2);border-radius:999px;height:14px;overflow:hidden}.post-puzzle-bar-fill{border-radius:999px;height:100%;transition:width .2s}.post-puzzle-count{text-align:right;font-variant-numeric:tabular-nums}.post-puzzle-note{margin-top:.5rem;font-size:.75rem;line-height:1.45}.rc-tooltip{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow);min-width:120px;padding:.5rem .75rem;font-size:.78rem}.rc-tooltip-label{color:var(--text-muted);margin-bottom:.3rem;font-weight:500}.rc-tooltip-row{align-items:center;gap:.4rem;padding:.1rem 0;display:flex}.rc-tooltip-dot{border-radius:999px;flex:none;width:8px;height:8px}.rc-tooltip-name{color:var(--text-muted);flex:1}.rc-tooltip-value{font-variant-numeric:tabular-nums;font-weight:500}.banner{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-2);color:var(--text-muted);align-items:flex-start;gap:.5rem;padding:.6rem .9rem;font-size:.85rem;display:flex}.banner-info{color:var(--text);background:#6366f114;border-color:#6366f14d}.banner-warning{color:var(--text);background:#eab3081a;border-color:#eab30880}.banner strong{color:var(--text)}.insight-card{background:linear-gradient(180deg, var(--surface) 0%, var(--surface-2) 100%);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem 1.2rem;position:relative}.insight-card-loading{color:var(--text-muted);text-align:center;padding:1.5rem;font-size:.9rem}.insight-head{align-items:center;gap:.75rem;margin-bottom:.6rem;display:flex}.insight-head h3{margin:0;font-size:1rem}.insight-date{color:var(--text-muted);font-size:.78rem}.insight-head .link-btn{margin-left:auto}.insight-tldr{margin:0 0 .6rem;font-size:.95rem;font-weight:500;line-height:1.45}.insight-list{margin:0;padding-left:1.1rem;font-size:.88rem;line-height:1.5}.insight-list li+li{margin-top:.4rem}.insight-questions{border-top:1px dashed var(--border);margin-top:.75rem;padding-top:.6rem}.insight-questions-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.25rem;font-size:.78rem}.insight-questions ul{color:var(--text-muted);margin:0;padding-left:1.1rem;font-size:.85rem}.insight-help{color:var(--text-muted);font-size:.85rem}.insight-raw{white-space:pre-wrap;background:var(--surface-2);border-radius:var(--radius-sm);padding:.6rem;font-family:ui-monospace,monospace;font-size:.78rem}.analyst-toggle{background:var(--accent);color:#fff;cursor:pointer;z-index:20;border:0;border-radius:999px;padding:.6rem 1.1rem;font-size:.9rem;font-weight:500;position:fixed;bottom:1.5rem;right:1.5rem;box-shadow:0 4px 16px #6366f166}.analyst-toggle:hover{transform:translateY(-1px)}.analyst-toggle-open{background:var(--surface-2);color:var(--text);padding:.3rem .85rem;font-size:1.4rem;line-height:1}.analyst-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);z-index:20;flex-direction:column;width:min(420px,100vw - 3rem);height:min(600px,100vh - 8rem);display:flex;position:fixed;bottom:4.5rem;right:1.5rem;box-shadow:0 10px 40px #0f172a33}.analyst-head{border-bottom:1px solid var(--border);align-items:center;gap:.5rem;padding:.75rem 1rem;display:flex}.analyst-head h3{margin:0;font-size:.95rem}.analyst-scope{color:var(--text-muted);margin-left:auto;font-size:.75rem}.analyst-messages{flex-direction:column;flex:1;gap:.5rem;padding:.75rem 1rem;display:flex;overflow-y:auto}.analyst-msg{border-radius:var(--radius-sm);white-space:pre-wrap;max-width:90%;padding:.5rem .75rem;font-size:.86rem;line-height:1.45}.analyst-msg-user{background:var(--accent);color:#fff;align-self:flex-end}.analyst-msg-assistant{background:var(--surface-2);color:var(--text);align-self:flex-start}.analyst-msg-busy{color:var(--text-muted);font-style:italic}.analyst-md p{margin:0 0 .5rem}.analyst-md p:last-child{margin-bottom:0}.analyst-md ul{margin:.3rem 0;padding-left:1.1rem}.analyst-md li{margin:.1rem 0}.analyst-md code{background:#00000014;border-radius:3px;padding:.05rem .3rem;font-family:ui-monospace,monospace;font-size:.78rem}@media (prefers-color-scheme:dark){.analyst-md code{background:#ffffff1a}}.analyst-md pre{border-radius:var(--radius-sm);background:#00000014;padding:.5rem;font-size:.78rem;overflow-x:auto}.analyst-md strong{font-weight:600}.analyst-help{color:var(--text-muted);font-size:.85rem}.analyst-help ul{margin:.4rem 0 0;padding-left:1rem}.analyst-input{border-top:1px solid var(--border);align-items:flex-end;gap:.5rem;padding:.5rem;display:flex}.analyst-input textarea{resize:none;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);flex:1;padding:.5rem;font-family:inherit;font-size:.85rem}.empty-state{background:var(--surface);border:1px dashed var(--border);border-radius:var(--radius);text-align:center;color:var(--text-muted);padding:2rem}.empty-state-title{color:var(--text);font-size:1rem;font-weight:500}.empty-state-body{margin-top:.4rem}
