:root{color-scheme:light;--ink: #111111;--ink-soft: #52564d;--ink-muted: #93958c;--paper: #f6f6f2;--surface: #ffffff;--line: #e4e2db;--line-strong: #d3d0c6;--clay: #b3492e;--clay-soft: #f7ebe7;--clay-line: #e6c3b7;--amber: #92400e;--amber-soft: #fdf3e2;--amber-line: #f0d9a8;--success: #2f7a42;--success-soft: #e7f3e9;--success-line: #bfdec6;--ink-hover: #2b2b2b;--font-body: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace;--radius: 12px;--radius-sm: 7px}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased}@media (prefers-reduced-motion: reduce){*{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}.app{max-width:1120px;margin:0 auto;padding:0 20px 72px}h1{font-family:var(--font-body);font-weight:600;font-size:1.3rem;margin:0;letter-spacing:-.01em}h2{font-family:var(--font-body);font-weight:600;font-size:1.05rem;margin:0;letter-spacing:-.01em}h3{font-family:var(--font-body);font-weight:600;font-size:.95rem;margin:0}.app-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:18px 0;margin-bottom:28px;background:var(--paper);border-bottom:1px solid var(--line)}.header-brand{display:flex;align-items:center;gap:12px;color:var(--ink)}.logo-mark{color:var(--ink);flex-shrink:0}.logo-mark-pulse{transform-origin:300px 300px;animation:logo-pulse 2.8s ease-in-out infinite}@keyframes logo-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.82)}}.wordmark{font-family:var(--font-body);font-weight:700;font-size:1.4rem;letter-spacing:-.015em;color:var(--ink);text-transform:lowercase}.wordmark-lg{font-size:1.9rem}.header-controls{display:flex;align-items:center;gap:12px}section{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:22px 24px;margin-bottom:22px}.section-header{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-bottom:16px}.section-header-titles{display:flex;flex-direction:column;gap:3px}.eyebrow{font-family:var(--font-mono);font-size:.68rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted)}.device-selector{display:flex;align-items:center;gap:8px;font-family:var(--font-body)}.device-selector label{color:var(--ink-soft);font-size:.9rem}.device-selector select{font-family:var(--font-body);border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:7px 10px;font-size:.9rem;background:var(--surface);color:var(--ink)}.hint{color:var(--ink-muted);font-style:normal;font-size:.9rem}.error{color:var(--clay);font-size:.9rem}.muted{color:var(--ink-muted);font-size:.85rem}.carousel-viewport{display:flex;align-items:center;justify-content:center;gap:16px}.nav-btn{flex:0 0 auto;width:38px;height:38px;border-radius:50%;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);font-size:1.3rem;cursor:pointer;transition:border-color .15s,background .15s}.nav-btn:hover:not(:disabled){background:var(--paper);border-color:var(--line-strong)}.nav-btn:disabled{opacity:.3;cursor:not-allowed}.photo-figure{margin:0;max-width:640px;width:100%;text-align:center}.photo-figure img{max-width:100%;max-height:480px;border-radius:var(--radius-sm);object-fit:contain;background:var(--paper);border:1px solid var(--line)}.filename{font-family:var(--font-mono);font-size:.82rem;color:var(--ink-soft);margin-top:10px}.relative-time{color:var(--ink-soft);font-size:.85rem;font-weight:600;margin-top:2px}.carousel-footer{text-align:center;margin-top:14px;color:var(--ink-muted);font-family:var(--font-mono);font-size:.82rem}.telemetry-badge{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;margin-top:12px;padding:10px 14px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-sm);font-size:.88rem;color:var(--ink)}.telemetry-badge .delta{width:100%;font-family:var(--font-mono);font-size:.76rem;color:var(--ink-soft)}.delete-btn{margin-top:14px;border:1px solid var(--clay-line);background:var(--clay-soft);color:var(--clay);border-radius:var(--radius-sm);padding:7px 14px;font-size:.85rem;font-family:var(--font-body);cursor:pointer;transition:background .15s}.delete-btn:hover:not(:disabled){background:#f1dbd4}.delete-btn:disabled{opacity:.6;cursor:not-allowed}.view-mode-selector{display:flex;gap:6px;flex-wrap:wrap}.view-mode-btn{border:1px solid var(--line-strong);background:var(--surface);border-radius:var(--radius-sm);padding:6px 12px;cursor:pointer;font-size:.82rem;font-family:var(--font-body);color:var(--ink-soft);transition:background .15s,border-color .15s,color .15s}.view-mode-btn:hover{background:var(--paper);border-color:var(--line-strong);color:var(--ink)}.view-mode-btn.active{background:var(--ink);border-color:var(--ink);color:var(--surface);font-weight:600}.concept-selector{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:10px;font-size:.85rem;color:var(--ink-soft)}.concept-selector select{font-family:var(--font-body);border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:5px 8px;font-size:.85rem;background:var(--surface);color:var(--ink)}.current-photo-caption{text-align:center;font-family:var(--font-mono);margin-bottom:10px}.segmentation-panel{flex:1;min-height:120px;display:flex;align-items:center;justify-content:center}.result-images{display:flex;flex-wrap:wrap;gap:16px;justify-content:center}.selected-point-panel{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-sm);padding:9px 14px;margin-bottom:14px;font-size:.88rem}.clear-selection-btn{border:none;background:transparent;cursor:pointer;color:var(--ink-muted);font-size:1rem;margin-left:auto}.clear-selection-btn:hover{color:var(--ink)}.charts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:16px}.chart-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);padding:14px}.chart-card+.chart-card{margin-top:16px}.chart-card-single{max-width:380px}.chart-disclosure-btn{display:inline-flex;align-items:center;gap:6px;border:none;background:transparent;color:var(--ink-soft);font-size:.85rem;font-family:var(--font-body);cursor:pointer;padding:4px 0;margin-bottom:4px}.chart-disclosure-btn:hover{color:var(--ink)}.series-toggles{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.series-toggle{display:flex;align-items:center;gap:8px;padding:6px 12px;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--surface);color:var(--ink-muted);font-size:.85rem;font-family:var(--font-body);cursor:pointer;transition:background .15s,border-color .15s,color .15s}.series-toggle svg{color:var(--ink-muted);flex-shrink:0}.series-swatch{display:inline-block;width:10px;height:10px;border-radius:50%;flex-shrink:0}.series-toggle:hover{border-color:var(--line-strong);color:var(--ink-soft)}.series-toggle.active{background:var(--paper);border-color:var(--ink);color:var(--ink);font-weight:500}.series-toggle.active svg{color:var(--ink)}.chart-card canvas{cursor:pointer}.page-size-select{font-size:.9rem;color:var(--ink-muted)}.period-selector{display:flex;flex-direction:column;gap:14px;align-items:center}.granularity-toggle{display:flex;gap:4px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-sm);padding:4px}.granularity-toggle button{border:none;background:transparent;padding:7px 15px;border-radius:5px;cursor:pointer;font-size:.87rem;font-family:var(--font-body);color:var(--ink-soft);transition:background .15s,color .15s}.granularity-toggle button:hover{color:var(--ink)}.granularity-toggle button.active{background:var(--surface);color:var(--ink);font-weight:600;box-shadow:0 1px 0 var(--line-strong)}.period-nav{display:flex;align-items:center;gap:18px}.period-label{min-width:260px;text-align:center;font-family:var(--font-mono);font-size:.85rem;color:var(--ink-soft)}.logout-btn,.edit-mode-btn{border:1px solid var(--line-strong);background:var(--surface);border-radius:var(--radius-sm);padding:7px 14px;cursor:pointer;font-size:.87rem;font-family:var(--font-body);color:var(--ink-soft);transition:background .15s,border-color .15s}.logout-btn:hover,.edit-mode-btn:hover{background:var(--paper);border-color:var(--line-strong);color:var(--ink)}.edit-mode-btn.active{background:var(--amber-soft);border-color:var(--amber-line);color:var(--amber);font-weight:600}.subsection-title{font-size:.92rem;font-weight:600;color:var(--ink-soft);margin:22px 0 12px}.subsection-title:first-of-type{margin-top:0}.growth-badges{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px}.growth-health-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:24px}.growth-health-col{min-width:0}.growth-badge{display:flex;flex-direction:column;align-items:center;gap:5px;min-width:108px;padding:12px 16px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-sm)}.growth-badge-label{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.02em;color:var(--ink-muted);text-transform:uppercase}.growth-badge-value{font-size:1.2rem;font-weight:600;font-variant-numeric:tabular-nums}.growth-badge-value.muted{color:var(--ink-muted);font-weight:400}.header-status-badge{flex-direction:row;align-items:center;gap:8px;min-width:0;padding:6px 12px}.header-status-badge .growth-badge-label{text-transform:none;font-size:.78rem}.header-status-badge .growth-badge-value{font-size:.9rem}.health-score-badge .growth-badge-value{font-family:var(--font-body)}.health-score-max{font-size:.7em;opacity:.65;font-weight:400}.growth-badge.level-good{background:var(--success-soft);border-color:var(--success-line)}.growth-badge.level-good .growth-badge-value{color:var(--success)}.growth-badge.level-warn{background:var(--amber-soft);border-color:var(--amber-line)}.growth-badge.level-warn .growth-badge-value{color:var(--amber)}.growth-badge.level-bad{background:var(--clay-soft);border-color:var(--clay-line)}.growth-badge.level-bad .growth-badge-value{color:var(--clay)}.login-screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;background:var(--paper)}.login-brand{display:flex;align-items:center;gap:10px;color:var(--ink)}.login-brand .logo-mark{color:var(--ink)}.login-form{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:32px;width:100%;max-width:320px;display:flex;flex-direction:column;gap:14px}.login-form h1{font-size:1.15rem;margin:0 0 8px;text-align:center;color:var(--ink-soft);font-weight:500;font-family:var(--font-body)}.login-form label{display:flex;flex-direction:column;gap:5px;font-size:.87rem;color:var(--ink-soft)}.login-form input{border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:9px 11px;font-size:1rem;font-family:var(--font-body)}.login-form input:focus-visible{outline:2px solid var(--ink);outline-offset:1px}.login-form button{margin-top:8px;border:none;background:var(--ink);color:#fff;border-radius:var(--radius-sm);padding:11px;font-size:.95rem;font-family:var(--font-body);font-weight:500;cursor:pointer;transition:background .15s}.login-form button:hover:not(:disabled){background:var(--ink-hover)}.login-form button:disabled{opacity:.6;cursor:not-allowed}.confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#11111180;display:flex;align-items:center;justify-content:center;z-index:100;padding:16px}.confirm-dialog{background:var(--surface);border-radius:var(--radius);padding:26px;width:100%;max-width:380px;box-shadow:0 12px 32px #1111112e}.confirm-dialog h3{margin:0 0 12px;font-size:1.05rem;font-family:var(--font-body)}.confirm-message{margin:0 0 22px;color:var(--ink-soft);font-size:.9rem;white-space:pre-line;line-height:1.55}.confirm-actions{display:flex;justify-content:flex-end;gap:10px}.confirm-btn{border:none;border-radius:var(--radius-sm);padding:9px 16px;font-size:.88rem;font-family:var(--font-body);cursor:pointer;transition:background .15s}.confirm-btn--cancel{background:var(--paper);color:var(--ink-soft);border:1px solid var(--line)}.confirm-btn--cancel:hover{background:var(--line)}.confirm-btn--confirm{background:var(--ink);color:#fff}.confirm-btn--confirm:hover{background:var(--ink-hover)}.confirm-btn--danger{background:var(--clay)}.confirm-btn--danger:hover{background:#96361f}button:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
