:root{font-family:Inter,ui-sans-serif,system-ui,sans-serif;color:#0f172a;background:radial-gradient(circle at top left,rgba(251,146,60,.18),transparent 24rem),radial-gradient(circle at top right,rgba(14,165,233,.16),transparent 26rem),#f8fafc}*{box-sizing:border-box}body{margin:0;min-width:320px}a{color:#1d4ed8;text-decoration:none}button{font:inherit}#app{min-height:100vh}.page-shell{max-width:1640px;margin:0 auto;padding:32px 24px 40px}.auth-shell{display:grid;min-height:100vh;place-items:center}.auth-panel{width:min(560px,100%);padding:32px;border:1px solid rgba(148,163,184,.25);border-radius:28px;background:#ffffffeb;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 20px 60px #0f172a12}.auth-panel--compact{width:min(460px,100%)}.hero{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;margin-bottom:24px}.hero-main{max-width:58rem}.hero-actions,.auth-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.eyebrow{margin:0 0 8px;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#c2410c}h1,h2{margin:0}h1{font-size:clamp(2rem,3vw,3.4rem);line-height:1}h2{font-size:1.125rem}.hero-copy,.muted{color:#475569}.hero-hint{margin:8px 0 0;color:#64748b;max-width:52rem}.auth-error,.auth-hint{margin:16px 0 0}.auth-error{color:#b91c1c}.auth-hint{color:#64748b;font-size:.92rem}.hero-copy{max-width:48rem;margin:10px 0 0}.panel{border:1px solid rgba(148,163,184,.25);border-radius:24px;background:#ffffffe0;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 20px 60px #0f172a12}.chart-panel,.kpi-card{padding:18px}.content-stack{display:flex;flex-direction:column;gap:22px}.tab-strip{display:flex;flex-wrap:wrap;gap:10px}.tab-button{padding:10px 16px;border:1px solid rgba(148,163,184,.3);border-radius:999px;background:#ffffffd1;color:#475569;transition:background-color .18s ease,border-color .18s ease,color .18s ease,transform .18s ease}.tab-button:hover{border-color:#2563eb52;color:#1e3a8a;transform:translateY(-1px)}.tab-button--active{border-color:#2563eb38;background:#dbeafef5;color:#1d4ed8;font-weight:700}.section-block{display:flex;flex-direction:column;gap:14px}.product-signal-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}.product-signal-card{max-width:380px}.detail-panel{padding:18px}.modal-backdrop{position:fixed;inset:0;display:grid;place-items:center;padding:24px;background:#0f172a73;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:40}.modal-panel{width:min(1180px,100%);max-height:min(85vh,920px);padding:20px;border:1px solid rgba(148,163,184,.25);border-radius:24px;background:#fffffff7;box-shadow:0 24px 80px #0f172a38}.modal-heading,.modal-actions{display:flex;gap:12px;align-items:center}.modal-actions{flex-wrap:wrap;justify-content:flex-end}.modal-table-wrap{max-height:calc(85vh - 120px)}.section-heading h2{margin-bottom:4px}.chart-grid{display:grid;gap:18px}.chart-grid-wide,.chart-grid-focus{grid-template-columns:repeat(2,minmax(0,1fr))}.panel-span-2{grid-column:span 2}.kpi-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.kpi-card{border:1px solid rgba(148,163,184,.25);border-radius:24px;background:#ffffffe0;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 20px 60px #0f172a12}.kpi-label{margin:0 0 8px;font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#64748b}.kpi-value{font-size:2rem;font-weight:800;line-height:1}.kpi-note{margin:8px 0 0;color:#64748b;font-size:.88rem}.panel-heading{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:16px}.period-toggle{display:inline-flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.period-toggle-button{border:1px solid #cbd5e1;border-radius:999px;padding:8px 12px;background:#ffffffeb;color:#475569;cursor:pointer}.period-toggle-button--active{border-color:#0f766e;background:#0f766e1f;color:#0f766e;font-weight:700}.formula-note{margin:-4px 0 16px;padding:12px 14px;border-radius:16px;background:#0f172a0a;color:#475569;font-size:.92rem;line-height:1.45}.grouping-note{margin:-4px 0 10px;color:#64748b;font-size:.84rem;line-height:1.4}.stat-chip,.session-chip,.sync-chip,.primary-button,.ghost-button,.pill{border-radius:999px}.session-chip{display:inline-flex;gap:8px;align-items:center;padding:10px 14px;background:#0f766e1f;color:#115e59;font-size:.92rem}.sync-chip{display:inline-flex;gap:8px;align-items:center;padding:10px 14px;background:#2563eb1a;color:#1d4ed8;font-size:.92rem}.stat-chip{background:#dbeafe;color:#1d4ed8;padding:8px 12px;font-size:.875rem;font-weight:700}.primary-button,.ghost-button{border:1px solid #cbd5e1;padding:10px 14px;cursor:pointer}.primary-button{border-color:#0f766e;background:#0f766e;color:#f8fafc}.primary-button:hover{background:#115e59}.ghost-button:hover{background:#0f172a0a}.ghost-button{background:#fff;color:#0f172a}.ghost-button:disabled{cursor:not-allowed;opacity:.45}.chart-root{width:100%;height:360px}.chart-root--tall{height:460px}.table-wrap{overflow:auto;max-height:620px}.cohort-heatmap-wrap{max-height:none}.cohort-heatmap td{white-space:nowrap}.cohort-cell-button{width:100%;padding:0;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.cohort-cell-button:hover,.cohort-cell-button:focus-visible{text-decoration:underline;outline:none}table{width:100%;border-collapse:collapse;font-size:.92rem}th,td{padding:12px 10px;text-align:left;border-bottom:1px solid #e2e8f0;vertical-align:top}th{position:sticky;top:0;background:#f8fafcf5;color:#334155}.lead-title{font-weight:700}.lead-meta{margin-top:4px;font-size:.85rem;color:#64748b}.pill{display:inline-flex;padding:4px 10px;font-size:.78rem;font-weight:700}.pill.active{background:#dcfce7;color:#166534}.pill.inactive{background:#e2e8f0;color:#475569}.state-box{padding:24px;border-radius:18px;background:#f8fafc;color:#334155}.error-box{background:#fef2f2;color:#b91c1c}@media(max-width:1100px){.chart-grid-wide,.chart-grid-focus,.kpi-grid{grid-template-columns:1fr}.panel-span-2{grid-column:auto}.chart-root{height:360px}.chart-root--tall{height:420px}}@media(max-width:700px){.page-shell{padding:20px 14px 28px}.hero,.panel-heading,.hero-actions{flex-direction:column}.auth-panel{padding:24px 20px}}@media print{@page{size:A4 landscape;margin:8mm}:root{background:#fff}body{background:#fff}.page-shell{max-width:none;padding:0}.eyebrow,.hero-main .muted,.section-heading .muted,.panel-heading .muted,.formula-note,.kpi-note{display:none!important}.hero{margin-bottom:12px}h1{font-size:1.8rem}.content-stack,.section-block,.chart-grid,.chart-grid-wide,.chart-grid-focus{display:block!important}.hero-actions,.no-print,.modal-backdrop{display:none!important}.panel,.kpi-card{break-inside:avoid;break-inside:avoid-page;page-break-inside:avoid;overflow:visible;box-shadow:none;border-color:#cbd5e1;background:#fff;-webkit-backdrop-filter:none;backdrop-filter:none}.chart-panel,.kpi-card,.detail-panel{padding:12px}.panel-heading,.section-heading{margin-bottom:10px}.content-stack>*,.section-block>*,.chart-grid>*{margin-bottom:10px}.chart-root{height:220px}.chart-root--tall{height:240px}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}}body.print-exporting{background:#fff}body.print-exporting .eyebrow,body.print-exporting .hero-main .muted,body.print-exporting .section-heading .muted,body.print-exporting .panel-heading .muted,body.print-exporting .formula-note,body.print-exporting .kpi-note{display:none!important}body.print-exporting .hero{margin-bottom:12px}body.print-exporting h1{font-size:1.8rem}body.print-exporting .content-stack,body.print-exporting .section-block,body.print-exporting .chart-grid,body.print-exporting .chart-grid-wide,body.print-exporting .chart-grid-focus{display:block!important}body.print-exporting .hero-actions,body.print-exporting .no-print,body.print-exporting .modal-backdrop{display:none!important}body.print-exporting .panel,body.print-exporting .kpi-card{break-inside:avoid;break-inside:avoid-page;page-break-inside:avoid;overflow:visible;box-shadow:none;border-color:#cbd5e1;background:#fff;-webkit-backdrop-filter:none;backdrop-filter:none}body.print-exporting .chart-panel,body.print-exporting .kpi-card,body.print-exporting .detail-panel{padding:12px}body.print-exporting .panel-heading,body.print-exporting .section-heading{margin-bottom:10px}body.print-exporting .content-stack>*,body.print-exporting .section-block>*,body.print-exporting .chart-grid>*{margin-bottom:10px}body.print-exporting .chart-root{height:220px}body.print-exporting .chart-root--tall{height:240px}body.print-exporting .kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
