:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,SF Pro Display,Segoe UI,sans-serif;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--bg: #f5f5f7;--surface: rgba(255, 255, 255, .82);--surface-strong: #ffffff;--surface-muted: #ededf2;--border: rgba(31, 35, 45, .1);--text: #16181d;--muted: #656b76;--subtle: #8c929e;--accent: #007aff;--accent-strong: #005fc9;--future: #8e8e93;--due: #ffcc00;--correct: #34c759;--incorrect: #ff3b30;--shadow: 0 24px 80px rgba(40, 43, 52, .12);--small-shadow: 0 10px 30px rgba(40, 43, 52, .1);--radius: 8px}:root[data-theme=dark]{--bg: #08090c;--surface: rgba(28, 29, 34, .86);--surface-strong: #1d1f25;--surface-muted: #2a2d34;--border: rgba(255, 255, 255, .11);--text: #f5f7fb;--muted: #b2b8c4;--subtle: #808795;--accent: #0a84ff;--accent-strong: #5eb1ff;--shadow: 0 24px 80px rgba(0, 0, 0, .42);--small-shadow: 0 10px 30px rgba(0, 0, 0, .28)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:linear-gradient(180deg,rgba(255,255,255,.52),transparent 360px),var(--bg)}:root[data-theme=dark] body{background:linear-gradient(180deg,rgba(32,35,43,.5),transparent 360px),var(--bg)}button,input,textarea,select{font:inherit}button{border:0}button:not(:disabled){cursor:pointer}input,textarea,select{width:100%;min-height:44px;border:1px solid var(--border);border-radius:var(--radius);color:var(--text);background:var(--surface-strong);padding:10px 12px;outline:none}textarea{resize:vertical;min-height:110px}input:focus,textarea:focus,select:focus{border-color:color-mix(in srgb,var(--accent) 75%,white);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 18%,transparent)}.app-shell{width:min(1840px,calc(100% - 32px));margin:0 auto;padding:28px 0 44px}.topbar,.section-heading,.topbar-actions,.drawer-header,.drawer-actions,.form-actions,.modal-header,.group-form,.timeline-legend,.detail-title{display:flex;align-items:center}.topbar{justify-content:space-between;gap:20px;margin-bottom:22px}.topbar h1{max-width:620px;margin:4px 0 0;color:var(--muted);font-size:18px;font-weight:600;line-height:1.3;letter-spacing:0}.auth-hero h1{max-width:760px;margin:4px 0 0;font-size:clamp(28px,3.2vw,52px);line-height:1.02;letter-spacing:0}.eyebrow{margin:0;color:var(--accent);font-size:12px;font-weight:700;letter-spacing:0;text-transform:uppercase}.topbar-actions{justify-content:flex-end;gap:10px;flex-wrap:wrap}.user-menu-wrap{position:relative}.user-menu-button{max-width:220px;min-height:40px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;gap:8px;color:var(--text);background:var(--surface-muted);padding:0 12px}.user-menu-button span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-popover{position:absolute;z-index:40;top:calc(100% + 8px);right:0;width:min(420px,calc(100vw - 32px));max-height:calc(100vh - 92px);overflow:auto;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-strong);box-shadow:var(--shadow);padding:14px}.user-popover-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.user-popover-header strong,.user-popover-header span{display:block}.user-popover-header strong{color:var(--text)}.user-popover-header span{margin-top:3px;color:var(--muted);font-size:13px}.icon-button.small{width:30px;min-height:30px}.user-detail-list{display:grid;gap:8px;margin:0 0 14px}.user-detail-list div{display:grid;grid-template-columns:110px minmax(0,1fr);gap:10px;border-top:1px solid var(--border);padding-top:8px}.user-detail-list dt{color:var(--muted);font-size:12px}.user-detail-list dd{min-width:0;margin:0;overflow-wrap:anywhere;color:var(--text);font-size:13px}.save-notice{min-height:30px;border:1px solid var(--border);border-radius:999px;padding:6px 10px;color:var(--muted);background:var(--surface);font-size:13px}.account-actions{display:grid;gap:10px;border-top:1px solid var(--border);padding-top:12px}.account-actions h3{display:flex;align-items:center;gap:7px;margin:0;font-size:14px}.account-form{display:grid;gap:9px}.account-form label{display:grid;gap:6px;color:var(--muted);font-size:12px;font-weight:700}.account-message{margin:0;color:var(--correct);font-size:13px}.account-danger{border:1px solid color-mix(in srgb,var(--incorrect) 28%,var(--border));border-radius:var(--radius);padding:10px;background:color-mix(in srgb,var(--incorrect) 7%,transparent)}.account-danger strong{display:block;color:var(--incorrect);font-size:13px}.account-danger p{margin:5px 0 0;color:var(--muted);font-size:12px;line-height:1.4}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,.8fr);grid-template-areas:"timeline stats" "list stats";gap:16px}@media (min-width: 1360px){.dashboard-grid{grid-template-columns:minmax(0,1.45fr) minmax(360px,.9fr) minmax(320px,.72fr);grid-template-areas:"timeline list stats";align-items:start}}.timeline-panel,.stats-panel,.list-panel,.auth-card,.detail-drawer,.modal-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--small-shadow);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px)}.timeline-panel{grid-area:timeline;padding:20px}.stats-panel{grid-area:stats;padding:18px;align-self:start;position:sticky;top:18px}.list-panel{grid-area:list;padding:18px}.section-heading{justify-content:space-between;gap:14px;margin-bottom:18px}.section-heading h2{margin:2px 0 0;font-size:28px;line-height:1}.primary-button,.secondary-button,.success-button,.danger-button,.ghost-danger,.icon-button,.text-button,.segmented button{min-height:40px;border-radius:var(--radius);display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap}.primary-button:disabled,.secondary-button:disabled,.success-button:disabled,.danger-button:disabled,.ghost-danger:disabled,.icon-button:disabled,.text-button:disabled{cursor:not-allowed;opacity:.55}.primary-button{color:#fff;background:var(--accent);padding:0 14px;font-weight:700}.primary-button:hover{background:var(--accent-strong)}.secondary-button{color:var(--text);background:var(--surface-muted);padding:0 12px}.success-button{color:#fff;background:var(--correct);padding:0 12px;font-weight:700}.danger-button{color:#fff;background:var(--incorrect);padding:0 12px;font-weight:700}.ghost-danger{color:var(--incorrect);background:transparent;padding:0 10px}.icon-button{width:40px;color:var(--text);background:var(--surface-muted)}.text-button{width:100%;color:var(--accent);background:transparent}.stretch{width:100%}.segmented{display:inline-flex;align-items:center;gap:3px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-muted);padding:3px}.segmented.wide{width:100%}.segmented button{min-height:34px;color:var(--muted);background:transparent;padding:0 10px}.segmented.wide button{flex:1}.segmented button.is-active,.segmented button:hover{color:var(--text);background:var(--surface-strong);box-shadow:0 1px 4px #00000014}.timeline-controls{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.timeline-wrap{min-height:310px}.timeline-track{position:relative;height:288px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-strong);overflow:hidden}.timeline-track:before{content:"";position:absolute;left:20px;right:20px;top:132px;height:5px;border-radius:999px;background:var(--surface-muted)}.timeline-past,.timeline-future{position:absolute;left:20px;top:132px;height:5px;border-radius:999px;pointer-events:none}.timeline-past{background:color-mix(in srgb,var(--accent) 62%,var(--surface-muted));z-index:1}.timeline-future{right:20px;background:transparent}.month-marker{position:absolute;top:18px;bottom:18px;width:1px;background:var(--border)}.month-marker span{position:absolute;top:0;transform:translate(var(--label-shift, -50%));color:var(--subtle);font-size:11px}.today-marker{position:absolute;top:44px;bottom:20px;z-index:2;width:2px;background:var(--accent)}.today-marker span{position:absolute;left:8px;top:25px;transform:none;border:1px solid color-mix(in srgb,var(--accent) 28%,transparent);border-radius:999px;color:var(--accent);background:var(--surface-strong);padding:2px 7px;font-size:12px;font-weight:700;white-space:nowrap}.timeline-dot{--dot-color: var(--future);position:absolute;z-index:3;width:34px;height:34px;margin-left:-17px;border:3px solid var(--surface-strong);border-radius:999px;color:#fff;background:var(--dot-color);box-shadow:0 8px 18px #0000002e;transition:transform .16s ease,box-shadow .16s ease}.timeline-dot:hover,.timeline-dot.is-selected{transform:translateY(-3px) scale(1.08);box-shadow:0 12px 22px #00000038}.status-future{--dot-color: var(--future)}.status-due{--dot-color: var(--due)}.status-correct{--dot-color: var(--correct)}.status-incorrect{--dot-color: var(--incorrect)}.timeline-legend{gap:14px;flex-wrap:wrap;margin-top:14px;color:var(--muted);font-size:13px}.legend-item{display:inline-flex;align-items:center;gap:7px}.legend-dot,.row-status{width:10px;height:10px;border-radius:999px;background:var(--dot-color)}.accuracy-hero{border-radius:var(--radius);color:#fff;background:linear-gradient(135deg,#007afff2,#34c759db),#007aff;padding:18px}.accuracy-hero p,.accuracy-hero strong,.accuracy-hero span{display:block}.accuracy-hero p{margin:0;opacity:.86}.accuracy-hero strong{margin-top:8px;font-size:52px;line-height:1}.accuracy-hero span{margin-top:8px;opacity:.86}.metric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0 18px}.metric{min-height:82px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-strong);padding:12px}.metric span{display:block;min-height:34px;color:var(--muted);font-size:13px}.metric strong{display:block;margin-top:6px;font-size:24px}.group-stats h3{margin:0 0 12px}.group-stat-row{display:grid;grid-template-columns:30px minmax(78px,1fr) minmax(80px,1fr) 48px;align-items:center;gap:8px;min-height:42px;color:var(--muted);font-size:13px}.bar{height:8px;border-radius:999px;background:var(--surface-muted);overflow:hidden}.bar span{display:block;height:100%;border-radius:999px;background:var(--accent)}.prediction-list{display:grid;gap:8px}.filters-panel{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin-bottom:12px}.filters-panel>*{min-width:0}.filters-panel select{overflow:hidden;text-overflow:ellipsis}.prediction-row{display:grid;grid-template-columns:10px 34px minmax(0,1fr) 24px;align-items:center;gap:10px;width:100%;min-height:72px;border:1px solid var(--border);border-radius:var(--radius);color:var(--text);background:var(--surface-strong);padding:10px;text-align:left}.prediction-row.is-selected,.prediction-row:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--border));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 10%,transparent)}.row-copy{min-width:0}.row-copy strong,.row-copy small{display:block}.row-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px}.row-copy small{margin-top:4px;color:var(--muted);line-height:1.35}.group-badge{--group-color: var(--accent);width:30px;height:30px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;color:#fff;background:var(--group-color)}.group-badge.large{width:46px;height:46px}.empty-state{display:grid;place-items:center;min-height:220px;border:1px dashed var(--border);border-radius:var(--radius);color:var(--muted);text-align:center;padding:22px}.empty-state h3{margin:10px 0 0;color:var(--text)}.empty-state p{margin:6px 0 0;max-width:360px}.drawer-backdrop{position:fixed;z-index:20;top:0;right:0;bottom:0;left:0;pointer-events:none;background:#00000014}.detail-drawer{position:fixed;top:18px;right:18px;bottom:18px;width:min(430px,calc(100% - 36px));padding:18px;overflow:auto;box-shadow:var(--shadow)}.drawer-header{justify-content:space-between;margin-bottom:18px}.status-pill{border-radius:999px;color:#fff;background:var(--dot-color);padding:7px 10px;font-size:13px;font-weight:700}.detail-title{gap:12px;align-items:flex-start}.detail-title p{margin:0;color:var(--muted)}.detail-title h2{margin:4px 0 0;font-size:24px;line-height:1.18;letter-spacing:0}.detail-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:20px 0}.detail-meta div{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-strong);padding:12px}.detail-meta dt{color:var(--muted);font-size:12px}.detail-meta dd{margin:5px 0 0;font-weight:700}.stacked-label,.modal-form label,.auth-card label{display:grid;gap:7px;color:var(--muted);font-size:13px;font-weight:700}.label-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.label-row small{color:var(--subtle);font-size:12px;font-weight:600}.read-only-note{min-height:84px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-strong);padding:12px;color:var(--text);font-weight:500;line-height:1.45;white-space:pre-wrap}.drawer-actions{align-items:stretch;flex-direction:column;gap:8px;margin-top:16px}.modal-backdrop{position:fixed;z-index:30;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#0000005c;padding:18px}.modal-card{width:min(620px,100%);max-height:min(760px,calc(100vh - 36px));overflow:auto;padding:18px;box-shadow:var(--shadow)}.modal-header{justify-content:space-between;gap:14px;margin-bottom:16px}.modal-header h2{margin:0}.modal-form,.auth-card{display:grid;gap:13px}.form-actions{justify-content:flex-end;gap:8px}.data-actions{display:flex;flex-wrap:wrap;gap:8px}.file-import-button{min-height:40px;border-radius:var(--radius);display:inline-flex;align-items:center;justify-content:center;gap:8px;color:var(--text);background:var(--surface-muted);padding:0 12px;font-weight:500}.file-import-button input{display:none}.date-range-grid,.export-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.export-summary .metric{min-height:70px}.helper-text{margin:0;color:var(--muted);font-size:13px;line-height:1.45}.confetti-layer{pointer-events:none;position:fixed;z-index:80;top:0;right:0;bottom:0;left:0;overflow:hidden}.confetti-layer span{position:absolute;top:42%;left:50%;width:10px;height:18px;border-radius:3px;background:var(--confetti-color);transform:translate(-50%,-50%) rotate(var(--rotate)) scale(.2);animation:confetti-burst 1.15s cubic-bezier(.12,.72,.18,1) forwards;animation-delay:var(--delay)}@keyframes confetti-burst{0%{opacity:0;transform:translate(-50%,-50%) rotate(var(--rotate)) scale(.2)}12%{opacity:1;transform:translate(calc(-50% + var(--dx) * .2),calc(-50% + var(--dy) * .2)) rotate(calc(var(--rotate) + 90deg)) scale(1)}to{opacity:0;transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) rotate(calc(var(--rotate) + 560deg)) scale(.88)}}.settings-grid{display:grid;gap:14px}.setting-block{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-strong);padding:14px}.setting-block h3{display:flex;align-items:center;gap:8px;margin:0 0 12px}.group-list{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.group-token{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--border);border-radius:999px;padding:4px 5px 4px 4px}.token-delete{width:24px;height:24px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;color:var(--muted);background:transparent}.token-delete:hover{color:#fff;background:var(--incorrect)}.token-delete:disabled{cursor:not-allowed;opacity:.35}.token-delete:disabled:hover{color:var(--muted);background:transparent}.group-form{align-items:stretch;flex-wrap:wrap;gap:8px}.group-form input{flex:1 1 170px}.swatches{display:inline-flex;align-items:center;gap:5px;min-height:44px}.swatches button{--swatch: var(--accent);width:28px;height:28px;border:2px solid transparent;border-radius:999px;background:var(--swatch)}.swatches button.is-selected{border-color:var(--text);box-shadow:0 0 0 2px var(--surface-strong),0 0 0 4px var(--swatch)}.icon-picker{display:grid;grid-template-columns:repeat(8,34px);gap:6px;align-content:center}.icon-picker button{width:34px;height:34px;border:1px solid var(--border);border-radius:999px;color:var(--muted);background:var(--surface-muted)}.icon-picker button:hover,.icon-picker button.is-selected{color:#fff;border-color:transparent;background:var(--accent)}.onboarding-body{display:grid;gap:16px}.onboarding-body p{margin:0;color:var(--muted);line-height:1.55}.onboarding-preview{position:relative;height:110px;border-radius:var(--radius);background:var(--surface-strong);overflow:hidden}.preview-line{position:absolute;left:24px;right:24px;top:54px;height:5px;border-radius:999px;background:var(--surface-muted)}.preview-dot{position:absolute;top:39px;width:30px;height:30px;border-radius:999px;background:var(--dot-color);box-shadow:var(--small-shadow)}.preview-dot:nth-child(2){left:18%}.preview-dot:nth-child(3){left:42%}.preview-dot:nth-child(4){left:64%}.preview-dot:nth-child(5){left:82%}.center-screen{min-height:100vh;display:grid;place-items:center;align-content:center;gap:14px;color:var(--muted)}.error-card{width:min(420px,calc(100% - 32px));border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--small-shadow);padding:22px}.error-card h1{margin:10px 0 8px;font-size:24px}.error-card p{margin:0 0 18px;color:var(--muted);line-height:1.5}.loading-orbit{width:38px;height:38px;border:3px solid var(--surface-muted);border-top-color:var(--accent);border-radius:999px;animation:spin .86s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.auth-screen{min-height:100vh;width:min(1040px,calc(100% - 32px));margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,390px);align-items:center;gap:34px}.auth-hero p:not(.eyebrow){max-width:560px;color:var(--muted);font-size:18px;line-height:1.5}.auth-card{padding:22px}.auth-card h2{margin:0 0 4px}.form-error{margin:0;color:var(--incorrect);font-size:13px}@media (max-width: 980px){.dashboard-grid{grid-template-columns:1fr;grid-template-areas:"timeline" "stats" "list"}.stats-panel{position:static}}@media (max-width: 720px){.app-shell{width:min(100% - 20px,640px);padding-top:16px}.topbar,.section-heading{align-items:stretch;flex-direction:column}.topbar-actions{justify-content:flex-start}.user-menu-wrap,.user-menu-button{width:100%}.user-popover{left:0;right:auto}.timeline-panel,.stats-panel,.list-panel,.modal-card,.auth-card{padding:14px}.timeline-track{height:300px}.timeline-controls,.timeline-controls .segmented{width:100%}.timeline-controls .segmented button{flex:1}.filters-panel{grid-template-columns:1fr}.icon-picker{grid-template-columns:repeat(6,34px)}.timeline-dot{width:32px;height:32px}.month-marker span{writing-mode:vertical-rl;transform:translate(-50%)}.metric-grid,.detail-meta,.date-range-grid,.export-summary{grid-template-columns:1fr}.group-stat-row{grid-template-columns:30px minmax(70px,1fr) 52px}.group-stat-row .bar{grid-column:2 / 4}.prediction-row{grid-template-columns:10px 34px minmax(0,1fr)}.prediction-row>svg{display:none}.row-copy strong{white-space:normal}.auth-screen{grid-template-columns:1fr;align-content:center;gap:18px;padding:24px 0}.auth-hero h1{font-size:36px}}
