:root { --bg: #09131f; --bg-soft: #10253a; --surface: rgba(242, 249, 255, 0.16); --surface-strong: rgba(255, 255, 255, 0.24); --surface-border: rgba(255, 255, 255, 0.26); --text: #eff7ff; --muted: rgba(239, 247, 255, 0.72); --shadow: 0 24px 70px rgba(4, 18, 31, 0.35); --primary: #8be4ff; --primary-strong: #3cc7ff; --accent: #8bffcf; --warm: #ffbf8d; --danger: #ff8f8f; --good: #7ff3bb; --radius-xl: 28px; --radius-lg: 22px; --radius-md: 18px; --radius-sm: 14px; --panel-blur: 28px; --font-ui: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", sans-serif; --track-accent: rgba(139, 228, 255, 0.34); --track-surface: rgba(255, 255, 255, 0.08); --track-glow: rgba(139, 228, 255, 0.18); --body-radial-one: radial-gradient(circle at 18% 18%, rgba(76, 171, 255, 0.24), transparent 34%); --body-radial-two: radial-gradient(circle at 82% 12%, rgba(113, 255, 210, 0.18), transparent 28%); --body-gradient: linear-gradient(145deg, #07111b 0%, #0b1e2e 35%, #13273b 65%, #08111b 100%); --panel-gradient-top: linear-gradient(180deg, rgba(255, 255, 255, 0.16), rgba(255, 255, 255, 0.08)); --panel-gradient-accent: radial-gradient(circle at top left, rgba(255, 255, 255, 0.2), transparent 48%); --pill-bg: rgba(255, 255, 255, 0.12); --pill-border: rgba(255, 255, 255, 0.12); --input-bg: rgba(255, 255, 255, 0.09); --input-bg-focus: rgba(255, 255, 255, 0.12); --input-border: rgba(255, 255, 255, 0.14); --input-border-soft: rgba(255, 255, 255, 0.12); --nav-hover-bg: rgba(255, 255, 255, 0.13); --user-chip-bg: rgba(255, 255, 255, 0.1); --eyebrow-color: rgba(239, 247, 255, 0.62); --chart-axis-color: rgba(255, 255, 255, 0.1); --chart-label-color: rgba(239, 247, 255, 0.65); --chart-value-color: rgba(239, 247, 255, 0.9); --line-point-stroke: rgba(7, 17, 27, 0.9); --bar-grid-color: rgba(255, 255, 255, 0.08); --calendar-detail-bg: rgba(255, 255, 255, 0.08); --calendar-detail-border: rgba(255, 255, 255, 0.1); --calendar-detail-eyebrow: rgba(239, 247, 255, 0.58); --calendar-selected-stroke: rgba(255, 255, 255, 0.9); --control-soft-bg: rgba(255, 255, 255, 0.08); --control-soft-border: rgba(255, 255, 255, 0.16); --brand-shadow: 0 10px 24px rgba(9, 25, 40, 0.22); --archive-shell-bg: linear-gradient(180deg, rgba(22, 38, 58, 0.94), rgba(10, 25, 41, 0.92)), radial-gradient(circle at top right, rgba(59, 173, 212, 0.12), transparent 42%); --archive-shell-border: rgba(148, 198, 228, 0.18); --archive-toolbar-bg: linear-gradient(180deg, rgba(34, 57, 79, 0.82), rgba(22, 40, 58, 0.76)), radial-gradient(circle at top right, rgba(75, 203, 223, 0.1), transparent 48%); --archive-toolbar-border: rgba(148, 198, 228, 0.14); --archive-switcher-bg: rgba(12, 24, 38, 0.34); --archive-switcher-border: rgba(148, 198, 228, 0.12); --archive-switcher-active-bg: rgba(173, 213, 245, 0.14); --archive-row-bg: rgba(255, 255, 255, 0.06); --archive-row-border: rgba(255, 255, 255, 0.05); --archive-row-active-bg: rgba(255, 255, 255, 0.09); --archive-detail-bg: linear-gradient(180deg, rgba(40, 62, 86, 0.88), rgba(24, 41, 60, 0.82)), radial-gradient(circle at top left, rgba(135, 217, 255, 0.12), transparent 42%); --archive-select-bg: rgba(30, 51, 72, 0.84); --archive-select-border: rgba(148, 198, 228, 0.18); --archive-select-focus-bg: rgba(35, 59, 83, 0.94); --archive-mobile-overlay-bg: rgba(6, 14, 24, 0.36); --archive-mobile-top-bg: linear-gradient(180deg, rgba(17, 33, 50, 0.96), rgba(17, 33, 50, 0.78)), radial-gradient(circle at top left, rgba(135, 217, 255, 0.1), transparent 42%); } @media (prefers-color-scheme: light) { :root { --bg: #eef4fa; --bg-soft: #dce8f2; --surface: rgba(255, 255, 255, 0.72); --surface-strong: rgba(255, 255, 255, 0.86); --surface-border: rgba(120, 146, 172, 0.24); --text: #12304b; --muted: rgba(18, 48, 75, 0.66); --shadow: 0 24px 60px rgba(78, 105, 130, 0.16); --primary: #5abcf2; --primary-strong: #1494de; --accent: #63d9b4; --warm: #ee9f63; --danger: #db6b6b; --good: #45c98d; --track-accent: rgba(67, 153, 212, 0.22); --track-surface: rgba(255, 255, 255, 0.46); --track-glow: rgba(104, 201, 255, 0.16); --body-radial-one: radial-gradient(circle at 18% 18%, rgba(115, 196, 255, 0.28), transparent 34%); --body-radial-two: radial-gradient(circle at 82% 12%, rgba(129, 232, 212, 0.24), transparent 28%); --body-gradient: linear-gradient(145deg, #eef5fb 0%, #e4eff7 40%, #d8e9f4 72%, #edf5fa 100%); --panel-gradient-top: linear-gradient(180deg, rgba(255, 255, 255, 0.84), rgba(255, 255, 255, 0.58)); --panel-gradient-accent: radial-gradient(circle at top left, rgba(123, 190, 255, 0.18), transparent 48%); --pill-bg: rgba(255, 255, 255, 0.54); --pill-border: rgba(130, 158, 185, 0.22); --input-bg: rgba(255, 255, 255, 0.62); --input-bg-focus: rgba(255, 255, 255, 0.82); --input-border: rgba(123, 153, 182, 0.26); --input-border-soft: rgba(123, 153, 182, 0.22); --nav-hover-bg: rgba(255, 255, 255, 0.56); --user-chip-bg: rgba(255, 255, 255, 0.54); --eyebrow-color: rgba(18, 48, 75, 0.5); --chart-axis-color: rgba(18, 48, 75, 0.12); --chart-label-color: rgba(18, 48, 75, 0.58); --chart-value-color: rgba(18, 48, 75, 0.86); --line-point-stroke: rgba(255, 255, 255, 0.95); --bar-grid-color: rgba(18, 48, 75, 0.08); --calendar-detail-bg: rgba(255, 255, 255, 0.6); --calendar-detail-border: rgba(120, 146, 172, 0.18); --calendar-detail-eyebrow: rgba(18, 48, 75, 0.48); --calendar-selected-stroke: rgba(18, 48, 75, 0.52); --control-soft-bg: rgba(255, 255, 255, 0.58); --control-soft-border: rgba(123, 153, 182, 0.22); --brand-shadow: 0 10px 24px rgba(82, 111, 138, 0.14); --archive-shell-bg: linear-gradient(180deg, rgba(255, 255, 255, 0.82), rgba(247, 252, 255, 0.72)), radial-gradient(circle at top right, rgba(123, 190, 255, 0.16), transparent 46%); --archive-shell-border: rgba(120, 146, 172, 0.2); --archive-toolbar-bg: linear-gradient(180deg, rgba(255, 255, 255, 0.72), rgba(245, 251, 255, 0.64)), radial-gradient(circle at top right, rgba(106, 203, 219, 0.12), transparent 48%); --archive-toolbar-border: rgba(120, 146, 172, 0.16); --archive-switcher-bg: rgba(255, 255, 255, 0.34); --archive-switcher-border: rgba(120, 146, 172, 0.18); --archive-switcher-active-bg: rgba(255, 255, 255, 0.72); --archive-row-bg: rgba(255, 255, 255, 0.38); --archive-row-border: rgba(120, 146, 172, 0.14); --archive-row-active-bg: rgba(255, 255, 255, 0.56); --archive-detail-bg: linear-gradient(180deg, rgba(255, 255, 255, 0.8), rgba(244, 250, 255, 0.72)), radial-gradient(circle at top left, rgba(141, 205, 255, 0.16), transparent 42%); --archive-select-bg: rgba(255, 255, 255, 0.62); --archive-select-border: rgba(123, 153, 182, 0.2); --archive-select-focus-bg: rgba(255, 255, 255, 0.84); --archive-mobile-overlay-bg: rgba(236, 243, 249, 0.42); --archive-mobile-top-bg: linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(246, 251, 255, 0.84)), radial-gradient(circle at top left, rgba(141, 205, 255, 0.16), transparent 42%); } html { color-scheme: light; } select { color-scheme: light; } .mobile-nav .nav-icon { opacity: 1; filter: saturate(2.1) contrast(1.16) brightness(0.76) drop-shadow(0 1px 0 rgba(255, 255, 255, 0.5)) drop-shadow(0 0 8px rgba(110, 214, 255, 0.18)); } .mobile-nav a.active .nav-icon { filter: saturate(2.35) contrast(1.2) brightness(0.68) drop-shadow(0 1px 0 rgba(255, 255, 255, 0.56)) drop-shadow(0 0 10px rgba(110, 214, 255, 0.24)); } .detail-grid--archive-day div { background: linear-gradient(180deg, rgba(255, 255, 255, 0.72), rgba(244, 249, 255, 0.64)); border: 1px solid rgba(126, 156, 184, 0.18); box-shadow: 0 8px 22px rgba(138, 167, 194, 0.1); } } *, *::before, *::after { box-sizing: border-box; } html { min-height: 100%; min-height: -webkit-fill-available; color-scheme: dark; overflow-x: hidden; } body { margin: 0; min-height: 100vh; min-height: -webkit-fill-available; font-family: var(--font-ui); background: var(--body-radial-one), var(--body-radial-two), var(--body-gradient); color: var(--text); overflow-x: hidden; } body.page-dashboard { background: linear-gradient(180deg, rgba(8, 18, 34, 0.28), rgba(8, 18, 34, 0.42)), var(--body-radial-one), var(--body-radial-two), var(--body-gradient); } body.page-dashboard, body.page-dashboard .shell--dashboard, body.page-dashboard .content, body.page-dashboard .dashboard-shell { width: 100%; max-width: none; margin: 0; } body.is-dashboard-overlay-open { overflow: hidden; } .pull-refresh-indicator { position: fixed; top: max(0.85rem, env(safe-area-inset-top)); left: 50%; z-index: 30; padding: 0.72rem 1rem; border-radius: 999px; opacity: 0; pointer-events: none; transform: translate(-50%, -0.9rem) scale(0.96); transition: opacity 160ms ease, transform 160ms ease; color: var(--muted); font-size: 0.92rem; letter-spacing: 0.01em; } body.is-pull-refreshing .pull-refresh-indicator, body.is-pull-refresh-ready .pull-refresh-indicator, body.is-pull-refresh-reloading .pull-refresh-indicator { opacity: 1; transform: translate(-50%, 0) scale(1); } body.is-pull-refresh-ready .pull-refresh-indicator, body.is-pull-refresh-reloading .pull-refresh-indicator { color: var(--text); } a { color: inherit; text-decoration: none; } button, input, select, textarea { font: inherit; } button { cursor: pointer; } button:disabled { cursor: not-allowed; opacity: 0.55; transform: none !important; } .aurora { position: fixed; inset: auto; z-index: 0; border-radius: 999px; pointer-events: none; filter: blur(24px); opacity: 0.65; } .aurora-one { top: 5rem; right: 8vw; width: 18rem; height: 18rem; background: radial-gradient(circle, rgba(90, 196, 255, 0.44), transparent 70%); } .aurora-two { bottom: 8vh; left: 8vw; width: 22rem; height: 22rem; background: radial-gradient(circle, rgba(149, 255, 214, 0.34), transparent 70%); } .shell { position: relative; z-index: 1; display: grid; grid-template-columns: 300px minmax(0, 1fr); min-height: 100vh; gap: 1.25rem; padding: 1.25rem; } .shell--dashboard { display: block; padding: 0; overflow: hidden; } .sidebar, .topbar, .glass-panel { border: 1px solid var(--surface-border); background: var(--panel-gradient-top), var(--panel-gradient-accent); backdrop-filter: blur(var(--panel-blur)) saturate(150%); -webkit-backdrop-filter: blur(var(--panel-blur)) saturate(150%); box-shadow: var(--shadow); } .sidebar { display: flex; flex-direction: column; justify-content: flex-start; padding: 1.35rem; border-radius: var(--radius-xl); min-height: calc(100vh - 2.5rem); position: sticky; top: 1.25rem; } .content { min-width: 0; display: flex; flex-direction: column; gap: 1rem; } body.page-dashboard .content { min-height: 100vh; padding: 0; gap: 0; } .dashboard-shell { position: relative; width: 100%; max-width: none; min-height: 100vh; min-height: 100dvh; padding: max(1.1rem, env(safe-area-inset-top)) 1rem calc(4rem + env(safe-area-inset-bottom)); background: linear-gradient(180deg, rgba(7, 18, 34, 0.12), rgba(7, 18, 34, 0.42)), radial-gradient(circle at 20% 18%, rgba(132, 168, 255, 0.16), transparent 34%), linear-gradient(180deg, #102543 0%, #15284a 34%, #465c79 64%, #18263e 100%); overflow: hidden; } .dashboard-shell__background { position: fixed; inset: 0; width: 100%; height: 100vh; height: 100dvh; transform: none; z-index: 0; } .dashboard-shell__background img { width: 100%; height: 100%; object-fit: cover; object-position: center; opacity: 0.92; } .dashboard-shell::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(8, 20, 37, 0.34), rgba(8, 20, 37, 0.76)), radial-gradient(circle at center, rgba(7, 18, 34, 0.08), rgba(7, 18, 34, 0.28)); pointer-events: none; } .dashboard-shell > :not(.dashboard-shell__background) { position: relative; z-index: 1; } .dashboard-topbar { position: fixed; top: max(0.85rem, env(safe-area-inset-top)); left: 50%; transform: translateX(-50%); z-index: 25; display: flex; justify-content: center; align-items: center; gap: 1rem; width: min(calc(100% - 2rem), 920px); margin: 0; } .dashboard-switcher { display: inline-flex; gap: 0.4rem; padding: 0.38rem; border-radius: 999px; } .dashboard-switcher a, .dashboard-settings { display: inline-flex; align-items: center; justify-content: center; min-width: 3.2rem; min-height: 3.2rem; padding: 0.75rem 1.15rem; border-radius: 999px; color: rgba(255, 255, 255, 0.92); transition: background 180ms ease, transform 180ms ease, color 180ms ease; } .dashboard-switcher a.active { background: rgba(255, 255, 255, 0.18); } .dashboard-settings { margin-left: auto; padding: 0; width: 3.6rem; height: 3.6rem; border-color: var(--surface-border); background: var(--panel-gradient-top), var(--panel-gradient-accent); } .dashboard-settings img { width: 1.5rem; height: 1.5rem; } .dashboard-day, .dashboard-range-view { width: min(100%, 920px); margin: 0 auto; padding-top: 6rem; } .dashboard-day-slider { --day-prev-hint: 0; --day-next-hint: 0; position: relative; overflow: hidden; border-radius: 1.8rem; margin-bottom: 2rem; } .day-slide-hint { position: absolute; top: 50%; z-index: 0; display: inline-flex; align-items: center; gap: 0.48rem; min-height: 3rem; max-width: min(12rem, 42vw); padding: 0.8rem 1rem; border: 1px solid rgba(255, 255, 255, 0.18); border-radius: 999px; background: rgba(255, 255, 255, 0.1); color: rgba(255, 255, 255, 0.9); font-size: 0.86rem; font-weight: 700; line-height: 1.1; letter-spacing: -0.01em; opacity: 0; pointer-events: none; transform: translateY(-50%) scale(0.94); transition: opacity 120ms ease, transform 180ms cubic-bezier(0.2, 0.8, 0.2, 1); } .day-slide-hint__arrow { width: 0.8rem; height: 0.8rem; border-top: 2px solid currentColor; border-left: 2px solid currentColor; opacity: 0.9; } .day-slide-hint--prev .day-slide-hint__arrow { transform: rotate(-45deg); } .day-slide-hint--next .day-slide-hint__arrow { transform: rotate(135deg); } .day-slide-hint--prev { left: 0.75rem; opacity: var(--day-prev-hint); transform: translateY(-50%) translateX(calc((1 - var(--day-prev-hint)) * -0.7rem)) scale(calc(0.94 + (var(--day-prev-hint) * 0.06))); } .day-slide-hint--next { right: 0.75rem; opacity: var(--day-next-hint); text-align: right; transform: translateY(-50%) translateX(calc((1 - var(--day-next-hint)) * 0.7rem)) scale(calc(0.94 + (var(--day-next-hint) * 0.06))); } .dashboard-compare-strip { position: relative; width: min(100%, 20rem); height: 11rem; margin-top: 0.95rem; touch-action: pan-y; } .dashboard-compare-strip.is-dragging { cursor: grabbing; } .dashboard-day__hero[data-day-slider] { position: relative; z-index: 1; margin-bottom: 0; border: 1px solid rgba(143, 191, 255, 0.22); background: linear-gradient(180deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.025)), rgba(6, 17, 30, 0.18); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08), 0 18px 54px rgba(0, 0, 0, 0.14); touch-action: pan-y; transform: translate3d(var(--day-slider-offset, 0), 0, 0) scale(var(--day-slider-scale, 1)); transition: transform 260ms cubic-bezier(0.2, 0.8, 0.2, 1); will-change: transform; } .dashboard-day__hero[data-day-slider].is-dragging { transition: none; } .compare-day { position: absolute; left: 50%; top: 0; display: block; width: 2rem; height: 11rem; transform: translateX(-50%); } .compare-day.offset--3 { left: calc(50% - 7.2rem); } .compare-day.offset--2 { left: calc(50% - 4.8rem); } .compare-day.offset--1 { left: calc(50% - 2.4rem); } .compare-day.offset-0 { left: 50%; } .compare-day.offset-1 { left: calc(50% + 2.4rem); } .compare-day.is-current { width: 4.8rem; z-index: 2; } .compare-day.is-empty { opacity: 0.82; } .compare-day__short, .compare-day__date { display: none; } .compare-day__line { display: block; position: relative; width: 100%; height: 100%; background: transparent; } .compare-day__line.is-primary { width: 100%; height: 100%; } .compare-day__track { display: none; } .compare-day__marker { position: absolute; left: 50%; width: 1.2rem; height: 0.3rem; border-radius: 999px; transform: translate(-50%, -50%); top: 55%; background: var(--primary); box-shadow: 0 0 10px rgba(139, 228, 255, 0.18); } .compare-day__line.is-primary .compare-day__marker { width: 3.8rem; height: 0.38rem; box-shadow: 0 0 18px rgba(139, 228, 255, 0.24); } .compare-day__line.compare-tone-neg2 .compare-day__marker { background: var(--danger); box-shadow: 0 0 12px color-mix(in srgb, var(--danger) 32%, transparent); } .compare-day__line.compare-tone-neg1 .compare-day__marker { background: var(--warm); box-shadow: 0 0 12px color-mix(in srgb, var(--warm) 30%, transparent); } .compare-day__line.compare-tone-zero .compare-day__marker { background: var(--primary); box-shadow: 0 0 12px color-mix(in srgb, var(--primary) 30%, transparent); } .compare-day__line.compare-tone-pos1 .compare-day__marker { background: var(--accent); box-shadow: 0 0 12px color-mix(in srgb, var(--accent) 28%, transparent); } .compare-day__line.compare-tone-pos2 .compare-day__marker { background: var(--good); box-shadow: 0 0 12px color-mix(in srgb, var(--good) 32%, transparent); } .compare-day__line.score--2 .compare-day__marker { top: 88%; } .compare-day__line.score--1 .compare-day__marker { top: 69%; } .compare-day__line.score-0 .compare-day__marker { top: 50%; } .compare-day__line.score-1 .compare-day__marker { top: 31%; } .compare-day__line.score-2 .compare-day__marker { top: 12%; } .compare-day__line.score-empty .compare-day__marker { top: 50%; } .score-scale { position: absolute; inset: 0 auto 0 0; display: flex; flex-direction: column; justify-content: space-between; width: 2.2rem; padding-block: 0.25rem; color: rgba(239, 247, 255, 0.52); font-size: 0.66rem; line-height: 1; pointer-events: none; } .score-scale--day { left: calc(50% - 9.8rem); } .score-scale--range { left: 0.35rem; top: 1rem; bottom: 2rem; } .score-scale--month { bottom: 1rem; } .tone-neg2 { background: #ff8f8f !important; border-color: rgba(255, 143, 143, 0.6) !important; } .tone-neg1 { background: #ffbf8d !important; border-color: rgba(255, 191, 141, 0.6) !important; } .tone-zero { background: #8be4ff !important; border-color: rgba(139, 228, 255, 0.6) !important; } .tone-pos1 { background: #8bffcf !important; border-color: rgba(139, 255, 207, 0.6) !important; } .tone-pos2 { background: #7ff3bb !important; border-color: rgba(127, 243, 187, 0.6) !important; } .compare-day.is-empty .compare-day__marker { background: rgba(255, 255, 255, 0.3); box-shadow: none; } .dashboard-day__hero, .dashboard-range-view__hero { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 0.5rem; margin-bottom: 2rem; padding: 1rem 1.25rem; border-radius: 1.8rem; background: linear-gradient(180deg, rgba(9, 23, 38, 0.24), rgba(9, 23, 38, 0.12)); backdrop-filter: blur(10px); } .dashboard-day__eyebrow, .dashboard-range-view__hero .eyebrow { margin: 0; color: rgba(255, 255, 255, 0.84); font-size: 1rem; } .dashboard-day__hero h1, .dashboard-range-view__hero h1 { margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(2.6rem, 7vw, 5rem); line-height: 0.95; letter-spacing: -0.04em; text-shadow: 0 8px 26px rgba(5, 14, 24, 0.44); } .dashboard-range-view__hero h2 { margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.4rem, 4vw, 2.6rem); line-height: 1.02; } .day-summary-card, .timeline-card, .range-card, .dashboard-composer { background: linear-gradient(180deg, rgba(25, 36, 56, 0.74), rgba(16, 25, 40, 0.62)), radial-gradient(circle at top left, rgba(255, 255, 255, 0.16), transparent 44%); border-color: rgba(143, 191, 255, 0.24); } .day-summary-card { display: block; width: 100%; text-align: left; padding: 1.15rem; border-radius: 1.7rem; margin-bottom: 1rem; border: 1px solid rgba(143, 191, 255, 0.24); } .day-summary-card__label { display: block; margin-bottom: 0.45rem; color: rgba(255, 255, 255, 0.7); font-size: 0.95rem; } .day-summary-card__title { display: block; font-size: clamp(1.35rem, 4vw, 2.35rem); font-weight: 650; line-height: 1.2; color: #fff; text-shadow: 0 8px 24px rgba(0, 0, 0, 0.38); } .day-summary-card__chips { display: flex; flex-wrap: wrap; gap: 0.45rem; margin-top: 0.85rem; } .day-chip { display: inline-flex; align-items: center; min-height: 2rem; padding: 0.35rem 0.72rem; border-radius: 999px; background: rgba(255, 255, 255, 0.12); border: 1px solid rgba(255, 255, 255, 0.16); color: rgba(255, 255, 255, 0.92); font-size: 0.88rem; } .day-chip--bonus { background: rgba(139, 255, 207, 0.16); border-color: rgba(139, 255, 207, 0.32); } .day-summary-card__head { display: flex; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; } .day-summary-card__head h2, .timeline-card__body h3 { margin: 0; font-size: clamp(1.1rem, 2.6vw, 1.7rem); font-weight: 400; line-height: 1.18; } .day-summary-card__remove-image { margin-top: 0.75rem; } .field-grid--signals select { min-height: 3.2rem; } .day-summary-form__media { align-items: end; } .day-summary-form__actions { display: flex; justify-content: flex-end; align-items: center; height: 100%; } .timeline-list { display: flex; flex-direction: column; gap: 0.9rem; padding-bottom: 5rem; } .dashboard-moments-block { margin-top: 1.2rem; padding-left: clamp(0.7rem, 2vw, 1.35rem); } .section-head--dashboard { display: inline-flex; width: fit-content; max-width: 100%; margin: 0 auto 0.8rem; padding: 0.8rem 1rem; border-radius: 1.35rem; background: linear-gradient(180deg, rgba(7, 18, 30, 0.58), rgba(7, 18, 30, 0.34)), radial-gradient(circle at top left, rgba(255, 255, 255, 0.12), transparent 48%); border: 1px solid rgba(255, 255, 255, 0.12); backdrop-filter: blur(18px) saturate(150%); -webkit-backdrop-filter: blur(18px) saturate(150%); text-shadow: 0 2px 12px rgba(0, 0, 0, 0.56); text-align: center; justify-content: center; } .section-head--dashboard > div { width: 100%; } .section-head--dashboard .eyebrow { color: rgba(255, 255, 255, 0.82); } .section-head--dashboard h2 { margin: 0; font-size: 1.45rem; color: rgba(255, 255, 255, 0.96); } .timeline-card { display: grid; grid-template-columns: auto 1fr auto; gap: 0.9rem; padding: 1rem 1.1rem; border-radius: 1.65rem; } .timeline-card__image { width: 100%; height: 100%; max-height: 18rem; object-fit: cover; border-radius: 1.25rem; display: block; } .timeline-media-button { grid-column: 1 / -1; width: 100%; min-height: 11rem; max-height: 18rem; padding: 0; margin: 0 0 0.2rem; border: 0; border-radius: 1.25rem; overflow: hidden; background: rgba(255, 255, 255, 0.08); cursor: zoom-in; } .timeline-card__time-chip { display: none; } .timeline-card--empty { display: block; } .timeline-card--empty p { margin: 0.35rem 0 0; color: var(--muted); } .timeline-card--neg2 { background: linear-gradient(180deg, rgba(91, 28, 34, 0.74), rgba(61, 18, 22, 0.68)), radial-gradient(circle at top left, rgba(255, 143, 143, 0.14), transparent 42%); } .timeline-card--neg1 { background: linear-gradient(180deg, rgba(84, 46, 22, 0.72), rgba(61, 34, 17, 0.68)), radial-gradient(circle at top left, rgba(255, 191, 141, 0.14), transparent 42%); } .timeline-card--pos1 { background: linear-gradient(180deg, rgba(20, 63, 54, 0.72), rgba(14, 46, 39, 0.68)), radial-gradient(circle at top left, rgba(139, 255, 207, 0.14), transparent 42%); } .timeline-card--pos2 { background: linear-gradient(180deg, rgba(16, 78, 55, 0.74), rgba(10, 55, 39, 0.7)), radial-gradient(circle at top left, rgba(127, 243, 187, 0.16), transparent 42%); } .timeline-card--summary { display: block; } .timeline-card__meta { display: flex; align-items: center; gap: 0.8rem; } .timeline-card__meta p, .timeline-card__value { margin: 0.2rem 0 0; color: var(--muted); } .timeline-card__comment { margin: 0.28rem 0 0; color: rgba(239, 247, 255, 0.9); font-size: 0.98rem; line-height: 1.35; } .timeline-card__stats { display: flex; flex-wrap: wrap; gap: 0.42rem; margin-top: 0.72rem; } .timeline-card__stats span { display: inline-flex; align-items: center; min-height: 1.9rem; padding: 0.32rem 0.66rem; border-radius: 999px; background: rgba(255, 255, 255, 0.1); border: 1px solid rgba(255, 255, 255, 0.14); color: rgba(239, 247, 255, 0.88); font-size: 0.82rem; } .timeline-route-map { position: relative; grid-column: 1 / -1; width: 100%; height: 10.5rem; margin-top: 0.2rem; padding: 0; overflow: hidden; border-radius: 1.1rem; border: 1px solid rgba(255, 255, 255, 0.12); background: rgba(255, 255, 255, 0.08); cursor: zoom-in; } .timeline-route-map svg { position: absolute; inset: 0; width: 100%; height: 100%; } .timeline-route-map polyline { fill: none; stroke: #1494de; stroke-width: 5; stroke-linecap: round; stroke-linejoin: round; filter: drop-shadow(0 1px 2px rgba(255, 255, 255, 0.9)); } .timeline-route-map__credit { position: absolute; right: 0.35rem; bottom: 0.28rem; padding: 0.12rem 0.35rem; border-radius: 0.45rem; background: rgba(255, 255, 255, 0.82); color: rgba(10, 22, 35, 0.82); font-size: 0.66rem; } .sleep-phase-bar { position: relative; height: 2.35rem; margin-top: 1.55rem; overflow: visible; border-radius: 999px; border: 1px solid rgba(255, 255, 255, 0.14); background: rgba(255, 255, 255, 0.08); } .sleep-phase-bar__fill { display: block; height: 100%; min-width: 0.28rem; max-width: 100%; overflow: hidden; border-radius: inherit; background: linear-gradient(135deg, rgba(90, 188, 242, 0.92), rgba(44, 126, 190, 0.92)); box-shadow: 0 10px 22px rgba(44, 126, 190, 0.22); } .sleep-phase-bar__target { position: absolute; left: min(var(--sleep-optimal-left, 100%), calc(100% - 2px)); top: -1.28rem; bottom: 0; width: 0; border-left: 2px solid rgba(255, 255, 255, 0.92); filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.45)); pointer-events: none; z-index: 3; } .sleep-phase-bar__target span { position: absolute; top: 0; left: 0.28rem; padding: 0.08rem 0.34rem; border-radius: 999px; background: rgba(6, 16, 28, 0.72); color: rgba(255, 255, 255, 0.95); font-size: 0.68rem; white-space: nowrap; } .sleep-phase-bar__segment { box-sizing: border-box; position: relative; width: auto; height: 100%; flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; gap: 0.25rem; min-width: 0; padding: 0.35rem 0.45rem; color: rgba(255, 255, 255, 0.94); font-size: 0.82rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .sleep-phase-bar__segment.is-compact { padding-inline: 0.12rem; font-size: 0; } .sleep-phase-bar__segment.is-compact strong { display: none; } .sleep-phase-bar__segment::after { content: attr(data-tooltip); position: fixed; left: 50%; bottom: calc(1.2rem + env(safe-area-inset-bottom)); z-index: 1400; max-width: min(18rem, calc(100vw - 2rem)); padding: 0.55rem 0.75rem; border-radius: 999px; background: rgba(6, 16, 28, 0.92); color: #fff; box-shadow: 0 12px 34px rgba(0, 0, 0, 0.32); opacity: 0; pointer-events: none; transform: translateX(-50%) translateY(0.35rem); transition: opacity 140ms ease, transform 140ms ease; } .sleep-phase-bar__segment:hover::after, .sleep-phase-bar__segment.is-tooltip-visible::after { opacity: 1; transform: translateX(-50%) translateY(0); } .sleep-phase-bar__segment--deep { border-radius: 999px 0 0 999px; background: linear-gradient(135deg, rgba(44, 82, 180, 0.92), rgba(38, 52, 124, 0.92)); } .sleep-phase-bar__segment--rem { background: linear-gradient(135deg, rgba(120, 83, 210, 0.92), rgba(73, 60, 154, 0.92)); } .sleep-phase-bar__segment--core { background: linear-gradient(135deg, rgba(54, 147, 173, 0.92), rgba(38, 106, 135, 0.92)); } .sleep-phase-bar__segment--total { border-radius: 999px 0 0 999px; background: linear-gradient(135deg, rgba(90, 188, 242, 0.9), rgba(44, 126, 190, 0.9)); } .sleep-phase-bar__segment--total.is-after-phase { border-radius: 0; } .sleep-phase-bar__segment--rest { min-width: 0; padding: 0; border-radius: 0 999px 999px 0; background: rgba(255, 255, 255, 0.1); } .sleep-phase-bar__fill .sleep-phase-bar__segment:last-child { border-radius: 0 999px 999px 0; } .sleep-phase-bar__fill .sleep-phase-bar__segment:first-child { border-radius: 999px 0 0 999px; } .sleep-phase-bar__rest-label { position: absolute; right: 0.65rem; top: 50%; color: rgba(255, 255, 255, 0.52); font-size: 0.68rem; transform: translateY(-50%); pointer-events: none; z-index: 2; } .sleep-phase-legend { display: flex; flex-wrap: wrap; gap: 0.45rem; margin-top: 0.7rem; } .sleep-phase-legend__item { display: inline-flex; align-items: center; min-height: 2rem; padding: 0.32rem 0.62rem; border-radius: 999px; color: rgba(255, 255, 255, 0.92); font-size: 0.78rem; gap: 0.25rem; } .sleep-phase-legend__item--deep { background: rgba(44, 82, 180, 0.48); } .sleep-phase-legend__item--rem { background: rgba(120, 83, 210, 0.48); } .sleep-phase-legend__item--core { background: rgba(54, 147, 173, 0.48); } .media-lightbox[hidden] { display: none; } .media-lightbox { position: fixed; inset: 0; z-index: 1200; display: grid; place-items: center; padding: 1rem; } .media-lightbox__backdrop { position: absolute; inset: 0; border: 0; background: rgba(0, 0, 0, 0.72); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); } .media-lightbox__panel { position: relative; z-index: 1; width: min(96vw, 72rem); max-height: 92vh; } .media-lightbox__close { position: absolute; right: 0.75rem; top: 0.75rem; z-index: 2; width: 2.6rem; height: 2.6rem; border-radius: 999px; border: 1px solid rgba(255, 255, 255, 0.24); background: rgba(20, 28, 38, 0.72); color: #fff; font-size: 1.5rem; } .media-lightbox__content img, .media-lightbox__content .timeline-route-map { width: 100%; max-width: none; border-radius: 1.4rem; object-fit: contain; } .media-lightbox__content img { height: auto; max-height: 82vh; } .media-lightbox__content .timeline-route-map { aspect-ratio: 16 / 9; height: auto; max-height: 76vh; } .media-lightbox__content .timeline-route-map { cursor: default; pointer-events: none; } .timeline-card__meta strong { font-size: 0.92rem; color: rgba(239, 247, 255, 0.68); font-weight: 500; } .timeline-card__meta p { display: none; } .timeline-card__icon-wrap { width: 3rem; height: 3rem; border-radius: 999px; background: rgba(255, 255, 255, 0.08); display: inline-flex; align-items: center; justify-content: center; } .timeline-card__icon { width: 1.3rem; height: 1.3rem; } .signal-row { display: flex; flex-wrap: wrap; gap: 0.45rem; margin-top: 0.85rem; } .signal-row--compact { margin-top: 0; } .signal-pill { display: inline-flex; align-items: center; gap: 0.45rem; padding: 0.4rem 0.7rem; border-radius: 999px; font-size: 0.84rem; background: rgba(255, 255, 255, 0.08); border: 1px solid rgba(255, 255, 255, 0.08); } .signal-pill__icon { display: block; width: 1rem; height: 1rem; filter: brightness(0) invert(1) drop-shadow(0 1px 3px rgba(0, 0, 0, 0.55)); } .signal-pill--good { background: rgba(144, 214, 108, 0.2); border-color: rgba(180, 255, 120, 0.34); } .signal-pill--warn { background: rgba(221, 128, 54, 0.22); border-color: rgba(255, 162, 93, 0.34); } .signal-pill--neutral { background: rgba(255, 209, 94, 0.18); border-color: rgba(255, 209, 94, 0.28); } .signal-pill--neg2 { background: rgba(185, 47, 52, 0.72); border-color: rgba(255, 150, 150, 0.72); color: #fff; } .signal-pill--neg1 { background: rgba(189, 103, 36, 0.72); border-color: rgba(255, 188, 130, 0.72); color: #fff; } .signal-pill--zero { background: rgba(39, 128, 164, 0.7); border-color: rgba(179, 238, 255, 0.72); color: #fff; } .signal-pill--pos1 { background: rgba(35, 139, 105, 0.72); border-color: rgba(180, 255, 224, 0.72); color: #fff; } .signal-pill--pos2 { background: rgba(28, 151, 93, 0.76); border-color: rgba(180, 255, 220, 0.78); color: #fff; } .signal-dot { width: 0.85rem; height: 0.85rem; border-radius: 999px; display: inline-block; border: 1px solid rgba(255, 255, 255, 0.2); } .signal-dot--good { background: #9cdf63; } .signal-dot--warn { background: #e57c32; } .signal-dot--neutral { background: #ffd04b; } .dashboard-fab { position: fixed; right: max(1rem, env(safe-area-inset-right)); bottom: calc(1.2rem + env(safe-area-inset-bottom)); width: 4rem; height: 4rem; border: 0; border-radius: 999px; color: var(--text); background: linear-gradient(180deg, rgba(197, 235, 255, 0.26), rgba(153, 202, 255, 0.18)); backdrop-filter: blur(24px) saturate(180%); box-shadow: 0 16px 44px rgba(8, 18, 34, 0.35); font-size: 2rem; transition: transform 180ms ease, background 180ms ease; } .dashboard-fab.is-open { transform: rotate(45deg) scale(0.96); } .dashboard-fab-menu[hidden] { display: none; } .dashboard-fab-menu { position: fixed; right: max(1rem, env(safe-area-inset-right)); bottom: calc(5.8rem + env(safe-area-inset-bottom)); z-index: 28; display: grid; gap: 0.55rem; width: min(18rem, calc(100vw - 2rem)); padding: 0.7rem; border-radius: 1.6rem; animation: fabMenuIn 180ms ease both; transform-origin: right bottom; } .dashboard-fab-menu button { display: flex; align-items: center; gap: 0.75rem; width: 100%; padding: 0.85rem 0.9rem; border: 1px solid rgba(255, 255, 255, 0.08); border-radius: 1.1rem; background: rgba(255, 255, 255, 0.07); color: var(--text); text-align: left; } .dashboard-fab-menu img { width: 1.35rem; height: 1.35rem; } @keyframes fabMenuIn { from { opacity: 0; transform: translateY(0.6rem) scale(0.94); } to { opacity: 1; transform: translateY(0) scale(1); } } .dashboard-composer { position: fixed; left: 1rem; right: 1rem; bottom: calc(6rem + env(safe-area-inset-bottom)); max-width: 920px; margin: 0 auto; padding: 1rem; border-radius: 1.6rem; } .dashboard-overlay[hidden] { display: none; } .dashboard-overlay { position: fixed; inset: 0; width: 100vw; height: 100vh; height: 100dvh; min-height: -webkit-fill-available; z-index: 60; display: flex; align-items: stretch; justify-content: stretch; padding: 0; overflow: hidden; overscroll-behavior: contain; } .dashboard-overlay__backdrop { position: absolute; inset: 0; background: rgba(3, 9, 17, 0.64); backdrop-filter: blur(10px); } .dashboard-modal { position: relative; flex: 1 1 auto; width: 100%; min-height: 0; height: 100%; max-height: 100%; margin: 0; padding: calc(max(1.25rem, env(safe-area-inset-top)) + 0.75rem) max(1rem, env(safe-area-inset-right)) calc(max(1.25rem, env(safe-area-inset-bottom)) + 1.75rem) max(1rem, env(safe-area-inset-left)); border-radius: 0; overflow: auto; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; background: linear-gradient(180deg, rgba(26, 26, 29, 0.96), rgba(38, 38, 42, 0.92)); border-color: rgba(255, 255, 255, 0.08); z-index: 1; } .dashboard-modal--settings { background: linear-gradient(180deg, rgba(17, 29, 46, 0.98), rgba(18, 29, 45, 0.94)); } .dashboard-modal__controls { position: sticky; top: 0; z-index: 2; display: flex; justify-content: space-between; align-items: center; margin-bottom: 1rem; } .dashboard-modal__round { width: 4rem; height: 4rem; border: 1px solid rgba(255, 255, 255, 0.12); border-radius: 999px; background: rgba(255, 255, 255, 0.06); color: var(--text); font-size: 2rem; line-height: 1; } .dashboard-modal__round--confirm { background: linear-gradient(180deg, rgba(139, 228, 255, 0.3), rgba(127, 243, 187, 0.22)); color: var(--text); } .dashboard-modal__title { margin: 0 0 0.5rem; font-size: clamp(2.1rem, 6vw, 4rem); line-height: 0.98; font-weight: 700; } .dashboard-modal__subtitle { margin: 0 0 1rem; color: rgba(255, 255, 255, 0.58); font-size: 1.15rem; } .dashboard-modal__form { display: flex; flex-direction: column; gap: 1rem; } .dashboard-modal__textarea textarea { min-height: 10rem; border-radius: 1.8rem; background: rgba(255, 255, 255, 0.08); border: 1px solid rgba(255, 255, 255, 0.06); font-size: clamp(1.05rem, 2.8vw, 1.35rem); } .overlay-signal-grid { display: grid; gap: 0.95rem; } .overlay-signal-grid--summary-row { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; } .overlay-signal-card { display: grid; grid-template-columns: 1fr auto; gap: 1rem; align-items: center; padding: 1rem 0; border-top: 1px solid rgba(255, 255, 255, 0.08); } .overlay-signal-card--inline { grid-template-columns: 1fr; align-items: start; gap: 0.75rem; } .overlay-signal-card h3, .overlay-signal-card p { margin: 0; } .overlay-signal-card p { color: rgba(255, 255, 255, 0.58); margin-top: 0.35rem; } .overlay-signal-card__control { display: flex; flex-direction: column; align-items: center; gap: 0.75rem; } .moment-alcohol-field--summary { margin: 0; } .overlay-signal-card__ring { width: 5.25rem; height: 5.25rem; border-radius: 999px; display: flex; align-items: center; justify-content: center; border: 0.34rem solid rgba(139, 228, 255, 0.92); background: rgba(17, 42, 64, 0.72); font-size: 1.75rem; font-weight: 700; } .overlay-signal-card__buttons { display: inline-flex; overflow: hidden; border-radius: 999px; background: rgba(255, 255, 255, 0.12); } .overlay-signal-card__buttons button { width: 4rem; height: 3.2rem; border: 0; background: transparent; color: var(--text); font-size: 2rem; } .overlay-signal-card__buttons button + button { border-left: 1px solid rgba(255, 255, 255, 0.12); } .dashboard-modal__secondary-action { margin-top: 1rem; } .dashboard-modal__heading-row { display: flex; justify-content: space-between; align-items: end; gap: 1rem; } .moment-type-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.9rem; } .moment-type-grid--sport { grid-template-columns: repeat(2, minmax(0, 1fr)); } .moment-type-card { display: flex; align-items: center; gap: 0.85rem; padding: 1rem; border-radius: 1.6rem; border: 1px solid rgba(255, 255, 255, 0.08); background: rgba(255, 255, 255, 0.08); color: var(--text); text-align: left; } .moment-type-card img { width: 1.5rem; height: 1.5rem; } .moment-type-card.is-selected { background: rgba(139, 228, 255, 0.14); border-color: rgba(139, 228, 255, 0.44); } .moment-type-card--sport { justify-content: flex-start; } .moment-choice-row { display: flex; gap: 0.8rem; } .moment-choice-pill input { position: absolute; opacity: 0; pointer-events: none; } .moment-choice-pill span { display: inline-flex; align-items: center; justify-content: center; min-width: 5rem; padding: 0.8rem 1rem; border-radius: 999px; border: 1px solid rgba(255, 255, 255, 0.18); background: rgba(255, 255, 255, 0.05); } .moment-choice-pill input:checked + span { background: rgba(139, 228, 255, 0.16); border-color: rgba(139, 228, 255, 0.44); } .dashboard-composer[hidden] { display: none; } .dashboard-range-view { padding-bottom: 1.5rem; } .range-period-rail { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(42%, 42%); gap: 1rem; margin-inline: calc(clamp(0rem, (100vw - 920px) / -2, 0rem)); padding: 0.35rem 0.7rem 1rem; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x proximity; scrollbar-width: none; scroll-padding-inline: 0.7rem; } .range-period-rail::-webkit-scrollbar { display: none; } .range-period-panel { min-width: 0; scroll-snap-align: start; padding: 0.6rem; border-radius: 2.15rem; } .range-period-panel.is-selected { background: rgba(139, 228, 255, 0.1); box-shadow: inset 0 0 0 1px rgba(139, 228, 255, 0.34), 0 18px 48px rgba(0, 0, 0, 0.16); } .range-period-panel__head { padding: 0.15rem 0.25rem 0.85rem; } .range-period-panel__head a { color: var(--text); text-decoration: none; } .range-period-panel.is-selected .range-period-panel__head h3 { color: var(--primary); } .range-period-panel__head h3, .range-period-panel__head p { margin: 0; } .range-period-panel__head h3 { font-size: clamp(1.2rem, 2.8vw, 1.8rem); } .range-period-panel__head p { margin-top: 0.2rem; color: rgba(255, 255, 255, 0.62); } .range-score-strip { position: relative; display: grid; gap: 0.55rem; align-items: stretch; margin-bottom: 0.15rem; padding: 1rem; border-radius: 1.85rem; } .range-score-strip--week { grid-template-columns: repeat(7, minmax(0, 1fr)); padding-left: 2.45rem; } .range-score-strip--month { display: flex; gap: 0.18rem; overflow: visible; padding-inline: 2.45rem 0.8rem; } .range-score-day { display: grid; grid-template-rows: 7rem auto; gap: 0.35rem; min-width: 0; color: var(--text); text-align: center; text-decoration: none; } .range-score-strip--month .range-score-day { flex: 1 1 0; grid-template-rows: 5.4rem; min-width: 0; } .range-score-day .compare-day__line { height: 7rem; } .range-score-strip--month .compare-day__line { height: 5.4rem; } .range-score-strip--month .range-score-day__label { font-size: 0.64rem; } .range-score-day .compare-day__marker { width: 1.1rem; height: 0.28rem; } .range-score-day.is-current .compare-day__marker, .range-score-day .compare-day__line.is-primary .compare-day__marker { width: 2.4rem; height: 0.36rem; } .range-score-day.is-empty .compare-day__marker { background: rgba(255, 255, 255, 0.28); box-shadow: none; } .range-score-day.is-future { opacity: 0.55; } .range-score-day__label { font-size: 0.76rem; color: rgba(255, 255, 255, 0.66); } .range-day-list { display: flex; flex-direction: column; gap: 1rem; overflow: visible; padding-right: 0.15rem; } .range-day-list--month { display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); } .range-day-card { display: block; overflow: hidden; border-radius: 1.8rem; color: var(--text); text-decoration: none; border: 1px solid rgba(143, 191, 255, 0.24); background: linear-gradient(180deg, rgba(25, 36, 56, 0.74), rgba(16, 25, 40, 0.62)), radial-gradient(circle at top left, rgba(255, 255, 255, 0.16), transparent 44%); } .range-day-card--neg2 { background: linear-gradient(180deg, rgba(91, 28, 34, 0.78), rgba(61, 18, 22, 0.68)), radial-gradient(circle at top left, color-mix(in srgb, var(--danger) 20%, transparent), transparent 42%); border-color: color-mix(in srgb, var(--danger) 40%, transparent); } .range-day-card--neg1 { background: linear-gradient(180deg, rgba(84, 46, 22, 0.76), rgba(61, 34, 17, 0.68)), radial-gradient(circle at top left, color-mix(in srgb, var(--warm) 20%, transparent), transparent 42%); border-color: color-mix(in srgb, var(--warm) 40%, transparent); } .range-day-card--zero { background: linear-gradient(180deg, rgba(23, 50, 76, 0.78), rgba(13, 32, 52, 0.68)), radial-gradient(circle at top left, color-mix(in srgb, var(--primary) 18%, transparent), transparent 42%); border-color: color-mix(in srgb, var(--primary) 34%, transparent); } .range-day-card--pos1 { background: linear-gradient(180deg, rgba(20, 63, 54, 0.76), rgba(14, 46, 39, 0.68)), radial-gradient(circle at top left, color-mix(in srgb, var(--accent) 18%, transparent), transparent 42%); border-color: color-mix(in srgb, var(--accent) 34%, transparent); } .range-day-card--pos2 { background: linear-gradient(180deg, rgba(16, 78, 55, 0.78), rgba(10, 55, 39, 0.7)), radial-gradient(circle at top left, color-mix(in srgb, var(--good) 20%, transparent), transparent 42%); border-color: color-mix(in srgb, var(--good) 38%, transparent); } .range-day-card.is-empty { opacity: 0.78; } .range-day-card__image { display: block; width: 100%; height: clamp(12rem, 36vw, 20rem); object-fit: cover; } .range-day-card__body { padding: 1.1rem; } .range-day-card__body .eyebrow { margin: 0 0 0.5rem; color: rgba(255, 255, 255, 0.64); } .range-day-card__summary { margin: 0; font-size: clamp(1.05rem, 2.4vw, 1.35rem); line-height: 1.45; } .range-day-card__score { display: inline-flex; width: fit-content; margin: 0 0 0.5rem; padding: 0.34rem 0.62rem; border-radius: 999px; background: rgba(255, 255, 255, 0.1); color: rgba(239, 247, 255, 0.82); font-size: 0.82rem; font-weight: 700; } .range-day-card--summary-only .range-day-card__summary { font-size: clamp(1rem, 2.2vw, 1.25rem); } .range-moment-list { display: flex; flex-direction: column; gap: 0.7rem; margin: 1rem 0 0; padding: 0; list-style: none; } .range-moment-list__item { display: grid; grid-template-columns: auto 1fr; gap: 0.65rem; align-items: start; color: rgba(239, 247, 255, 0.88); } .range-moment-list__item strong, .range-moment-list__item span span { display: block; } .signal-scale { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); width: min(100%, 13rem); color: rgba(239, 247, 255, 0.52); font-size: 0.68rem; text-align: center; } .range-moment-list__item span span { margin-top: 0.16rem; color: rgba(239, 247, 255, 0.64); font-size: 0.92rem; } .range-moment-list__bullet { width: 0.62rem; height: 0.62rem; margin-top: 0.4rem; border-radius: 999px; background: var(--primary); box-shadow: 0 0 12px color-mix(in srgb, var(--primary) 28%, transparent); } .range-moment-list__item--neg2 .range-moment-list__bullet { background: var(--danger); box-shadow: 0 0 12px color-mix(in srgb, var(--danger) 30%, transparent); } .range-moment-list__item--neg1 .range-moment-list__bullet { background: var(--warm); box-shadow: 0 0 12px color-mix(in srgb, var(--warm) 28%, transparent); } .range-moment-list__item--zero .range-moment-list__bullet { background: var(--primary); } .range-moment-list__item--pos1 .range-moment-list__bullet { background: var(--accent); box-shadow: 0 0 12px color-mix(in srgb, var(--accent) 26%, transparent); } .range-moment-list__item--pos2 .range-moment-list__bullet { background: var(--good); box-shadow: 0 0 12px color-mix(in srgb, var(--good) 30%, transparent); } @media (prefers-color-scheme: light) { body.page-dashboard { color: var(--text); } .dashboard-shell { background: radial-gradient(circle at 20% 12%, rgba(90, 188, 242, 0.2), transparent 32%), radial-gradient(circle at 80% 10%, rgba(99, 217, 180, 0.16), transparent 30%), linear-gradient(180deg, #eef6fb 0%, #dfeaf4 42%, #d4e3ef 100%); } .dashboard-shell::before { background: linear-gradient(180deg, rgba(244, 250, 255, 0.72), rgba(231, 241, 249, 0.88)), radial-gradient(circle at center, rgba(255, 255, 255, 0.18), rgba(205, 222, 236, 0.22)); } .dashboard-shell--with-image::before { background: linear-gradient(180deg, rgba(244, 250, 255, 0.48), rgba(230, 241, 249, 0.78)), radial-gradient(circle at center, rgba(255, 255, 255, 0.08), rgba(205, 222, 236, 0.2)); } .dashboard-switcher a, .dashboard-settings { color: rgba(18, 48, 75, 0.9); } .dashboard-switcher a.active { background: rgba(18, 48, 75, 0.1); color: #0e2b45; } .dashboard-settings { background: rgba(255, 255, 255, 0.58); border-color: rgba(92, 129, 160, 0.2); } .dashboard-day__hero, .dashboard-range-view__hero { background: linear-gradient(180deg, rgba(255, 255, 255, 0.72), rgba(255, 255, 255, 0.48)); border: 1px solid rgba(92, 129, 160, 0.16); box-shadow: 0 18px 46px rgba(77, 106, 132, 0.12); } .dashboard-day__eyebrow, .dashboard-range-view__hero .eyebrow, .range-period-panel__head p, .range-score-day__label, .range-day-card__body .eyebrow { color: rgba(18, 48, 75, 0.58); } .dashboard-day__hero h1, .dashboard-range-view__hero h1, .dashboard-range-view__hero h2 { color: #0f2e49; text-shadow: 0 10px 28px rgba(255, 255, 255, 0.72); } .day-summary-card, .timeline-card, .range-card, .dashboard-composer, .range-score-strip { background: linear-gradient(180deg, rgba(255, 255, 255, 0.74), rgba(248, 253, 255, 0.56)), radial-gradient(circle at top left, rgba(90, 188, 242, 0.14), transparent 44%); border-color: rgba(92, 129, 160, 0.2); } .compare-day.is-empty .compare-day__marker, .range-score-day.is-empty .compare-day__marker { background: rgba(18, 48, 75, 0.26); } .range-period-panel.is-selected { background: rgba(90, 188, 242, 0.12); box-shadow: 0 0 0 1px rgba(20, 148, 222, 0.24), 0 18px 48px rgba(78, 105, 130, 0.12); } .range-period-panel.is-selected .range-period-panel__head h3 { color: var(--primary-strong); } .range-day-card { color: var(--text); background: linear-gradient(180deg, rgba(255, 255, 255, 0.76), rgba(248, 253, 255, 0.6)), radial-gradient(circle at top left, rgba(90, 188, 242, 0.14), transparent 42%); border-color: rgba(92, 129, 160, 0.2); } .range-day-card--neg2, .timeline-card--neg2 { background: linear-gradient(180deg, rgba(255, 240, 240, 0.86), rgba(255, 248, 248, 0.68)), radial-gradient(circle at top left, rgba(219, 107, 107, 0.18), transparent 42%); border-color: rgba(219, 107, 107, 0.32); } .range-day-card--neg1, .timeline-card--neg1 { background: linear-gradient(180deg, rgba(255, 246, 236, 0.86), rgba(255, 251, 246, 0.68)), radial-gradient(circle at top left, rgba(238, 159, 99, 0.2), transparent 42%); border-color: rgba(238, 159, 99, 0.34); } .range-day-card--zero { background: linear-gradient(180deg, rgba(237, 248, 255, 0.88), rgba(247, 252, 255, 0.68)), radial-gradient(circle at top left, rgba(90, 188, 242, 0.18), transparent 42%); border-color: rgba(90, 188, 242, 0.3); } .range-day-card--pos1, .timeline-card--pos1 { background: linear-gradient(180deg, rgba(235, 255, 248, 0.88), rgba(248, 255, 252, 0.68)), radial-gradient(circle at top left, rgba(99, 217, 180, 0.18), transparent 42%); border-color: rgba(99, 217, 180, 0.32); } .range-day-card--pos2, .timeline-card--pos2 { background: linear-gradient(180deg, rgba(231, 252, 242, 0.9), rgba(246, 255, 251, 0.7)), radial-gradient(circle at top left, rgba(69, 201, 141, 0.2), transparent 42%); border-color: rgba(69, 201, 141, 0.34); } .week-insight-card { background: linear-gradient(180deg, rgba(255, 255, 255, 0.78), rgba(248, 253, 255, 0.62)), radial-gradient(circle at top left, rgba(90, 188, 242, 0.14), transparent 42%); border-color: rgba(92, 129, 160, 0.2); } .range-moment-list__item, .timeline-card__body h3, .day-summary-card__title, .range-day-card__summary { color: rgba(18, 48, 75, 0.9); } .day-summary-card__label, .day-chip, .range-day-card__score, .score-scale, .signal-scale { color: rgba(18, 48, 75, 0.72); } .day-chip { background: rgba(18, 48, 75, 0.07); border-color: rgba(18, 48, 75, 0.14); } .signal-pill { color: rgba(18, 48, 75, 0.92); } .signal-pill strong, .signal-pill span { color: rgba(18, 48, 75, 0.92); } .overlay-signal-card h3, .overlay-signal-card p, .overlay-signal-card__ring, .overlay-signal-card__buttons button { color: rgba(18, 48, 75, 0.92); } .overlay-signal-card__ring { background: rgba(255, 255, 255, 0.68); } .range-moment-list__item span span, .timeline-card__value, .timeline-card--empty p { color: rgba(18, 48, 75, 0.62); } .timeline-card__meta strong { color: rgba(18, 48, 75, 0.58); } .timeline-card__icon-wrap { background: rgba(18, 48, 75, 0.08); } } .range-card-grid { display: grid; gap: 0.9rem; } .range-card-grid--week { grid-template-columns: repeat(2, minmax(0, 1fr)); } .range-card-grid--month { grid-template-columns: repeat(2, minmax(0, 1fr)); } .week-insight-card { display: grid; gap: 0.55rem; margin-bottom: 1rem; padding: 1rem 1.1rem; border-radius: 1.55rem; background: linear-gradient(180deg, rgba(25, 36, 56, 0.72), rgba(16, 25, 40, 0.58)), radial-gradient(circle at top left, rgba(139, 228, 255, 0.16), transparent 44%); } .week-insight-card p { margin: 0; color: var(--muted); line-height: 1.45; } .week-insight-card strong { color: var(--text); } .range-card { padding: 1rem 1.1rem; border-radius: 1.45rem; min-height: 7rem; } .range-card strong { display: block; margin-bottom: 0.5rem; font-size: 1.15rem; } .range-card p { margin: 0; color: var(--muted); line-height: 1.25; } .range-card.is-filled { background: linear-gradient(180deg, rgba(144, 118, 20, 0.58), rgba(121, 98, 18, 0.54)), radial-gradient(circle at top left, rgba(255, 213, 102, 0.15), transparent 42%); border-color: rgba(255, 208, 86, 0.4); } .range-card.is-empty { background: rgba(255, 255, 255, 0.05); border-color: rgba(255, 255, 255, 0.06); } .range-card.is-future { opacity: 0.72; } .options-shell { display: flex; flex-direction: column; gap: 1rem; min-height: 100vh; min-height: 100dvh; } .options-menu-panel { padding: 0; border-radius: var(--radius-xl); } .options-menu-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.9rem; } .settings-menu-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.9rem; } .options-menu-card { display: flex; flex-direction: column; gap: 0.35rem; align-items: flex-start; width: 100%; padding: 1.15rem 1.25rem; border-radius: 1.55rem; border: 1px solid rgba(152, 194, 232, 0.16); background: linear-gradient(180deg, rgba(41, 59, 80, 0.72), rgba(25, 42, 63, 0.6)), radial-gradient(circle at top left, rgba(255, 255, 255, 0.08), transparent 48%); color: var(--text); text-decoration: none; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06); } .options-menu-card strong { font-size: 1.02rem; font-weight: 600; } .options-menu-card span { color: var(--muted); text-align: left; } .options-menu-card--danger { background: rgba(255, 130, 130, 0.08); border-color: rgba(255, 143, 143, 0.18); } .health-import-progress { display: grid; gap: 0.45rem; margin-bottom: 1rem; } .health-import-progress__bar { display: block; width: 100%; height: 0.72rem; overflow: hidden; border-radius: 999px; background: rgba(255, 255, 255, 0.08); border: 1px solid rgba(255, 255, 255, 0.1); appearance: none; -webkit-appearance: none; } .health-import-progress__bar::-webkit-progress-bar { background: transparent; } .health-import-progress__bar::-webkit-progress-value { border-radius: inherit; background: linear-gradient(90deg, var(--primary), var(--accent)); } .health-import-progress__bar::-moz-progress-bar { border-radius: inherit; background: linear-gradient(90deg, var(--primary), var(--accent)); } .options-logout-form { margin: 0; } .options-overlay[hidden] { display: none; } .options-overlay { position: fixed; inset: 0; width: 100vw; height: 100vh; height: 100dvh; min-height: -webkit-fill-available; z-index: 70; display: flex; align-items: stretch; justify-content: stretch; padding: 0; overflow: hidden; overscroll-behavior: contain; } .options-overlay__backdrop { position: absolute; inset: 0; background: rgba(3, 9, 17, 0.78); backdrop-filter: blur(10px); } .options-modal { position: relative; z-index: 1; flex: 1 1 auto; width: 100%; min-height: 0; height: 100%; max-height: 100%; padding: calc(max(1.25rem, env(safe-area-inset-top)) + 0.75rem) max(1rem, env(safe-area-inset-right)) calc(max(1.25rem, env(safe-area-inset-bottom)) + 1.75rem) max(1rem, env(safe-area-inset-left)); border-radius: 0; background: linear-gradient(180deg, rgba(8, 16, 28, 0.94), rgba(11, 31, 51, 0.9)), radial-gradient(circle at 50% 0%, rgba(139, 228, 255, 0.12), transparent 42%); overflow: auto; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; } .options-modal__controls { position: sticky; top: 0; z-index: 2; display: flex; justify-content: flex-end; margin-bottom: 0.8rem; } .options-panel[hidden] { display: none; } .options-panel h2 { margin-top: 0; margin-bottom: 1rem; font-size: 2rem; } .options-modal .settings-section, .options-modal .band-card, .options-modal .sport-type-card, .options-modal .checkbox-row--panel, .options-modal .push-panel, .options-modal .detail-card--overlay { border: 1px solid rgba(152, 194, 232, 0.14); background: linear-gradient(180deg, rgba(42, 62, 84, 0.56), rgba(23, 42, 62, 0.48)), radial-gradient(circle at top left, rgba(255, 255, 255, 0.08), transparent 46%); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05); } .options-modal .settings-section { padding: 1rem; border-radius: 1.5rem; } .options-modal input[type="text"], .options-modal input[type="password"], .options-modal input[type="number"], .options-modal input[type="date"], .options-modal select, .options-modal textarea { background: rgba(9, 22, 36, 0.62); border-color: rgba(152, 194, 232, 0.18); } .detail-card--overlay { padding: 1rem; border-radius: 1.4rem; background: rgba(255, 255, 255, 0.04); border: 1px solid rgba(255, 255, 255, 0.05); margin-bottom: 1rem; } .dashboard-grid--embedded-stats { margin-top: 1rem; } @media (min-width: 900px) { .dashboard-shell { padding-inline: 1.6rem; } .range-card-grid--week { grid-template-columns: repeat(3, minmax(0, 1fr)); } .range-card-grid--month { grid-template-columns: repeat(3, minmax(0, 1fr)); } } @media (max-width: 760px) { body.page-dashboard .content, .dashboard-shell { width: 100%; max-width: none; overflow-x: hidden; } .dashboard-shell { padding-inline: 0; margin-top: calc(-1 * env(safe-area-inset-top)); min-height: calc(100dvh + env(safe-area-inset-top)); padding-top: calc(env(safe-area-inset-top) + 0.35rem); padding-bottom: calc(0.9rem + env(safe-area-inset-bottom)); } .dashboard-shell__background { top: calc(-1 * env(safe-area-inset-top)); right: 0; bottom: calc(-1 * env(safe-area-inset-bottom)); left: 0; width: 100%; height: auto; transform: none; } .dashboard-day, .dashboard-range-view { width: 100%; padding: 0.6rem 0.75rem 0; } .range-period-rail { grid-auto-columns: minmax(86%, 86%); margin-inline: -0.75rem; padding-inline: 0.75rem; } .range-period-panel { padding: 0.55rem; } .range-score-strip { padding: 0.95rem; } .range-score-strip--week, .range-score-strip--month { padding-left: 2.35rem; } .range-day-list--month { grid-template-columns: 1fr; } .dashboard-topbar { position: relative; top: auto; left: auto; transform: none; gap: 0.55rem; align-items: center; width: calc(100% - 1rem); margin: 0 auto 0.65rem; } .dashboard-switcher { width: auto; flex: 1; padding: 0.18rem; } .dashboard-switcher a { min-width: 0; flex: 1; padding-inline: 0.8rem; min-height: 3rem; } .dashboard-settings { flex: 0 0 3.36rem; width: 3.36rem; height: 3.36rem; min-width: 3.36rem; min-height: 3.36rem; margin-left: 0; } .timeline-card { position: relative; padding-top: 3.65rem; overflow: hidden; } .timeline-card__image { width: 100%; max-width: none; margin: 0; border-radius: 1.25rem; } .timeline-media-button { min-height: 0; height: 18rem; max-height: none; margin: -2.65rem 0 0.7rem; } .timeline-media-button .timeline-card__image { height: 100%; max-height: none; object-fit: cover; } .timeline-card__time-chip { position: absolute; top: 0.75rem; left: 8.75rem; display: inline-flex; align-items: center; min-height: 2.25rem; padding: 0 0.75rem; border-radius: 999px; background: rgba(8, 18, 30, 0.38); border: 1px solid rgba(255, 255, 255, 0.16); color: rgba(255, 255, 255, 0.82); font-size: 0.86rem; } .timeline-card__delete { position: absolute; top: 0.75rem; right: 0.75rem; } .timeline-card--with-image .timeline-card__time-chip, .timeline-card--with-image .timeline-card__delete { top: 2.05rem; } .timeline-card--with-image .timeline-card__time-chip { left: auto; right: 5.15rem; background: rgba(255, 255, 255, 0.86); border-color: rgba(255, 255, 255, 0.62); color: rgba(10, 22, 35, 0.92); box-shadow: 0 8px 22px rgba(0, 0, 0, 0.2); } .timeline-card--with-image .timeline-card__delete { right: 1.6rem; } .timeline-card__delete .ghost-button { background: rgba(255, 255, 255, 0.82); border-color: rgba(255, 255, 255, 0.6); color: rgba(10, 22, 35, 0.92); box-shadow: 0 8px 22px rgba(0, 0, 0, 0.22); } .timeline-card__meta { display: none; } .timeline-card .signal-row { position: absolute; top: 0.75rem; left: 0.75rem; margin: 0; gap: 0.35rem; } .timeline-card--with-image .signal-row { top: 2.05rem; left: 2.05rem; } .timeline-card .signal-pill { width: 2.38rem; height: 2.38rem; padding: 0; justify-content: center; box-shadow: 0 6px 18px rgba(0, 0, 0, 0.26), inset 0 1px 0 rgba(255, 255, 255, 0.22); } .timeline-card .signal-pill strong, .timeline-card .signal-pill span { display: none; } .timeline-card .signal-pill__icon { display: block; width: 1.08rem; height: 1.08rem; filter: brightness(0) invert(1) drop-shadow(0 1px 3px rgba(0, 0, 0, 0.7)); } .dashboard-moments-block { padding-left: 0; } .timeline-list { padding-bottom: calc(1.25rem + env(safe-area-inset-bottom)); } .day-summary-card__head, .timeline-card { grid-template-columns: 1fr; } .timeline-card__delete { justify-self: start; } .dashboard-modal { margin: 0; width: 100%; height: 100%; max-height: 100%; min-height: 0; border-radius: 0; padding-top: calc(max(1.25rem, env(safe-area-inset-top)) + 0.75rem); padding-bottom: calc(max(1.25rem, env(safe-area-inset-bottom)) + 1.75rem); padding-inline: max(0.85rem, env(safe-area-inset-left)) max(0.85rem, env(safe-area-inset-right)); } .dashboard-overlay, .options-overlay { padding: 0; } .moment-type-grid { grid-template-columns: 1fr; } .dashboard-modal__controls, .options-modal__controls { margin-inline: -0.2rem; padding: 0.15rem 0 0.55rem; background: linear-gradient(180deg, rgba(26, 26, 29, 0.96), rgba(26, 26, 29, 0.72), transparent); } .dashboard-modal__round { width: 3.4rem; height: 3.4rem; font-size: 1.65rem; } .overlay-signal-card { grid-template-columns: 1fr; } .options-menu-grid { grid-template-columns: 1fr; } .settings-menu-grid { grid-template-columns: 1fr; } .options-modal { width: 100%; height: 100%; max-height: 100%; min-height: 0; border-radius: 0; padding-top: calc(max(1rem, env(safe-area-inset-top)) + 0.25rem); padding-bottom: calc(max(1.25rem, env(safe-area-inset-bottom)) + 1.75rem); padding-inline: max(0.85rem, env(safe-area-inset-left)) max(0.85rem, env(safe-area-inset-right)); } } @media (prefers-color-scheme: light) { .dashboard-overlay__backdrop, .options-overlay__backdrop { background: rgba(224, 235, 245, 0.64); } .dashboard-modal, .dashboard-modal--settings, .options-modal { background: linear-gradient(180deg, rgba(255, 255, 255, 0.97), rgba(242, 248, 253, 0.93)), radial-gradient(circle at 50% 0%, rgba(90, 188, 242, 0.16), transparent 46%); border-color: rgba(92, 129, 160, 0.2); color: var(--text); } .dashboard-modal__controls, .options-modal__controls { background: linear-gradient(180deg, rgba(247, 252, 255, 0.96), rgba(247, 252, 255, 0.76), transparent); } .dashboard-modal__round { background: rgba(255, 255, 255, 0.74); border-color: rgba(92, 129, 160, 0.22); color: var(--text); } .dashboard-modal__round--confirm { background: linear-gradient(180deg, rgba(90, 188, 242, 0.24), rgba(99, 217, 180, 0.2)); color: #0e2b45; } .dashboard-modal__subtitle, .overlay-signal-card p { color: rgba(18, 48, 75, 0.62); } .dashboard-modal__textarea textarea, .options-modal input[type="text"], .options-modal input[type="password"], .options-modal input[type="number"], .options-modal input[type="date"], .options-modal select, .options-modal textarea { background: rgba(255, 255, 255, 0.72); border-color: rgba(92, 129, 160, 0.22); color: var(--text); } .overlay-signal-card { border-top-color: rgba(92, 129, 160, 0.16); } .overlay-signal-card__buttons { background: rgba(18, 48, 75, 0.08); } .overlay-signal-card__buttons button + button { border-left-color: rgba(18, 48, 75, 0.12); } .dashboard-fab-menu { background: linear-gradient(180deg, rgba(255, 255, 255, 0.88), rgba(245, 251, 255, 0.76)), radial-gradient(circle at top left, rgba(90, 188, 242, 0.16), transparent 48%); border-color: rgba(92, 129, 160, 0.2); } .dashboard-fab-menu button, .moment-type-card, .moment-choice-pill span, .options-menu-card, .options-modal .settings-section, .options-modal .band-card, .options-modal .sport-type-card, .options-modal .checkbox-row--panel, .options-modal .push-panel, .options-modal .detail-card--overlay { background: linear-gradient(180deg, rgba(255, 255, 255, 0.78), rgba(247, 252, 255, 0.62)), radial-gradient(circle at top left, rgba(90, 188, 242, 0.12), transparent 48%); border-color: rgba(92, 129, 160, 0.2); color: var(--text); } .options-menu-card--danger { background: rgba(219, 107, 107, 0.1); border-color: rgba(219, 107, 107, 0.22); } .health-import-progress__bar { background: rgba(18, 48, 75, 0.08); border-color: rgba(92, 129, 160, 0.16); } .week-insight-card { background: linear-gradient(180deg, rgba(255, 255, 255, 0.78), rgba(248, 253, 255, 0.62)), radial-gradient(circle at top left, rgba(90, 188, 242, 0.14), transparent 42%); border-color: rgba(92, 129, 160, 0.2); } .moment-type-card.is-selected, .moment-choice-pill input:checked + span { background: rgba(90, 188, 242, 0.18); border-color: rgba(20, 148, 222, 0.34); } .day-summary-card__title { color: rgba(18, 48, 75, 0.92); text-shadow: 0 10px 28px rgba(255, 255, 255, 0.72); } .day-chip { background: rgba(255, 255, 255, 0.62); border-color: rgba(92, 129, 160, 0.2); color: rgba(18, 48, 75, 0.9); } .day-chip--bonus { background: rgba(99, 217, 180, 0.18); border-color: rgba(69, 201, 141, 0.3); } .timeline-card__comment { color: rgba(18, 48, 75, 0.82); } .timeline-card__stats span { background: rgba(255, 255, 255, 0.58); border-color: rgba(92, 129, 160, 0.18); color: rgba(18, 48, 75, 0.82); } .timeline-route-map { border-color: rgba(92, 129, 160, 0.2); background: rgba(255, 255, 255, 0.5); } } .site-footer { display: flex; justify-content: space-between; align-items: center; gap: 0.9rem; margin-top: auto; padding: 0.9rem 1.1rem; border-radius: var(--radius-lg); } .site-footer__link { color: var(--muted); font-size: 0.92rem; transition: color 180ms ease, opacity 180ms ease; } .site-footer__link:hover { color: var(--text); } .topbar { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1rem 1.2rem; border-radius: var(--radius-lg); } .topbar__meta { display: flex; gap: 0.65rem; flex-wrap: wrap; } .meta-pill, .chart-chip { display: inline-flex; align-items: center; padding: 0.48rem 0.8rem; border-radius: 999px; background: var(--pill-bg); color: var(--muted); border: 1px solid var(--pill-border); font-size: 0.88rem; letter-spacing: 0.01em; } .meta-pill--button { cursor: pointer; } .topbar-date-form { display: inline-flex; } .topbar-date-input { width: auto; min-height: 2.2rem; border: 1px solid var(--input-border-soft); border-radius: 999px; padding: 0.45rem 0.9rem; background: var(--control-soft-bg); color: var(--text); } .chart-chip--warm { background: rgba(255, 173, 124, 0.12); } .chart-chip--cool { background: rgba(118, 228, 255, 0.12); } .brand-block { display: flex; align-items: center; gap: 0.95rem; } .brand-mark { width: 3rem; height: 3rem; display: grid; place-items: center; border-radius: 18px; overflow: hidden; box-shadow: var(--brand-shadow); } .brand-mark img { width: 100%; height: 100%; display: block; } .brand-block h1, .topbar h2, .hero-card h3, .section-head h3, .detail-card h3, .auth-card h1 { margin: 0; line-height: 1.1; } .brand-block h1 { font-size: 1.3rem; } .eyebrow { margin: 0 0 0.28rem; text-transform: uppercase; letter-spacing: 0.14em; color: var(--eyebrow-color); font-size: 0.74rem; } .main-nav { display: grid; gap: 0.55rem; margin-top: 2rem; } .mobile-nav { display: none; } .main-nav a { display: flex; align-items: center; gap: 0.8rem; padding: 0.9rem 1rem; border-radius: 18px; color: var(--muted); transition: transform 180ms ease, background 180ms ease, color 180ms ease; } .main-nav a:hover, .main-nav a.active { background: var(--nav-hover-bg); color: var(--text); transform: translateX(2px); } .sidebar-footer { display: grid; gap: 0.85rem; margin-top: auto; padding-top: 1.2rem; } .nav-icon { width: 1.1rem; height: 1.1rem; opacity: 0.9; } .user-chip { display: flex; justify-content: space-between; align-items: center; gap: 0.75rem; padding: 0.9rem 1rem; border-radius: 18px; background: var(--user-chip-bg); } .user-chip__name { font-weight: 700; } .user-chip__role { font-size: 0.88rem; color: var(--muted); } .flash { padding: 0.92rem 1.1rem; border-radius: var(--radius-md); } .flash-success { border-color: rgba(127, 243, 187, 0.35); } .flash-error { border-color: rgba(255, 143, 143, 0.38); } .hero-grid, .stats-grid, .dashboard-grid, .page-grid, .field-grid, .band-grid { display: grid; gap: 1rem; } .hero-grid { grid-template-columns: minmax(0, 1.8fr) minmax(280px, 0.8fr); } .hero-card, .metric-card, .chart-card, .form-panel, .detail-card, .info-card, .preview-card, .archive-list, .auth-card { padding: 1.25rem; border-radius: var(--radius-xl); } .hero-card { position: relative; overflow: hidden; } .hero-card::after { content: ""; position: absolute; inset: auto -10% -45% auto; width: 15rem; height: 15rem; border-radius: 50%; background: radial-gradient(circle, rgba(255, 255, 255, 0.18), transparent 64%); } .hero-card--wide { padding: 1.6rem; } .hero-copy, .auth-copy, .helper-text, .detail-card p, .info-card p { color: var(--muted); line-height: 1.6; } .hero-score { font-size: clamp(2.5rem, 4vw, 4rem); font-weight: 800; line-height: 1; margin-top: 0.55rem; } .hero-label { margin: 0.45rem 0 0; color: var(--text); font-size: 1.03rem; } .stats-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); } .metric-card { display: grid; gap: 0.35rem; } .metric-card span { color: var(--muted); } .metric-card strong { font-size: 1.8rem; } .dashboard-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; } .chart-card--calendar, .chart-card--wide, .form-panel--wide { grid-column: 1 / -1; } .section-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; margin-bottom: 1rem; } .section-head--compact { margin-bottom: 0.85rem; } .calendar-heatmap { min-height: 0; overflow-x: auto; } .calendar-detail { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: 1rem; padding: 0.9rem 1rem; border-radius: 18px; background: var(--calendar-detail-bg); border: 1px solid var(--calendar-detail-border); } .calendar-detail__meta { display: grid; gap: 0.18rem; } .calendar-detail__eyebrow { color: var(--calendar-detail-eyebrow); font-size: 0.78rem; letter-spacing: 0.08em; text-transform: uppercase; } .calendar-detail__meta strong { font-size: 1.05rem; line-height: 1.2; } .calendar-detail__label, .calendar-detail__subtle { color: var(--muted); } .calendar-detail__score { display: grid; justify-items: end; line-height: 1; } .calendar-detail__score span { font-size: 1.5rem; font-weight: 800; } .calendar-detail__score small { color: var(--muted); margin-top: 0.2rem; } .calendar-detail__link { white-space: nowrap; } .calendar-legend { display: flex; justify-content: flex-end; gap: 0.45rem; margin-top: 0.55rem; color: var(--muted); font-size: 0.82rem; } .calendar-scale { display: flex; gap: 0.32rem; } .calendar-dot { width: 0.8rem; height: 0.8rem; border-radius: 6px; background: rgba(132, 193, 208, 0.55); } .calendar-dot--bad { background: rgba(255, 117, 117, 0.85); } .calendar-dot--warn { background: rgba(255, 171, 122, 0.82); } .calendar-dot--1 { background: rgba(116, 226, 183, 0.7); } .calendar-dot--2 { background: rgba(126, 239, 205, 0.56); } .calendar-dot--3 { background: rgba(126, 239, 205, 0.82); } .calendar-svg, .line-chart svg { height: auto; display: block; } .calendar-svg { width: auto; max-width: 100%; } .calendar-tooltip { fill: var(--muted); font-size: 11px; } .calendar-link { cursor: pointer; } .calendar-cell--active { transition: transform 140ms ease, filter 140ms ease, stroke 140ms ease, stroke-width 140ms ease; transform-box: fill-box; transform-origin: center; } .calendar-link:hover .calendar-cell--active, .calendar-link:focus .calendar-cell--active, .calendar-link:focus-visible .calendar-cell--active { filter: brightness(1.08); stroke: rgba(255, 255, 255, 0.8); stroke-width: 1.1; } .calendar-cell--selected { stroke: var(--calendar-selected-stroke); stroke-width: 1.2; filter: brightness(1.08); } .line-chart { min-height: 10.25rem; } .bar-chart { min-height: 11rem; } .line-chart svg { overflow: visible; } .line-fill { opacity: 0.12; } .line-stroke { fill: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 3; } .line-point { stroke: var(--line-point-stroke); stroke-width: 1.5; } .line-point--solo { stroke-width: 2; } .line-point-glow { opacity: 0.16; } .chart-axis { stroke: var(--chart-axis-color); stroke-width: 1; } .chart-guide { opacity: 0.22; stroke-width: 2; } .chart-label { fill: var(--chart-label-color); font-size: 11px; } .chart-value { fill: var(--chart-value-color); font-size: 15px; font-weight: 700; } .bar-chart svg { width: 100%; height: auto; display: block; overflow: visible; } .bar-grid { fill: var(--bar-grid-color); } .bar-segment--sport { fill: rgba(87, 214, 255, 0.88); } .bar-segment--walk { fill: rgba(138, 255, 198, 0.82); } .bar-label { fill: var(--chart-label-color); font-size: 11px; } .bar-value { fill: var(--chart-value-color); font-size: 10px; text-anchor: middle; } .bar-icon-ring { fill: rgba(255, 255, 255, 0.1); stroke: rgba(255, 255, 255, 0.18); stroke-width: 1; } .bar-icon { opacity: 0.96; } .bar-bonus-dot { fill: rgba(255, 224, 132, 0.96); stroke: rgba(9, 19, 31, 0.7); stroke-width: 1; } .page-grid { grid-template-columns: minmax(0, 1.45fr) minmax(280px, 0.8fr); align-items: start; } .stack-column, .stack-form { display: grid; gap: 1rem; } .stack-form--spacious { gap: 1.4rem; } .tracker-form, .settings-section { display: grid; gap: 1rem; } .section-head__actions { display: flex; gap: 0.7rem; align-items: center; flex-wrap: wrap; } .field-grid--single { grid-template-columns: 1fr; } .field-grid--two { grid-template-columns: repeat(2, minmax(0, 1fr)); } .field-grid--three { grid-template-columns: repeat(3, minmax(0, 1fr)); } .field-grid--four { grid-template-columns: repeat(4, minmax(0, 1fr)); } .sport-choice-field { display: grid; gap: 0.7rem; min-width: 0; margin: 0; padding: 0; border: 0; } .sport-choice-field legend { padding: 0; color: var(--muted); font-size: 0.93rem; margin-bottom: 0.1rem; } .sport-choice-list { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0.7rem; } .sport-choice-list--single { grid-template-columns: minmax(0, 1fr); } .sport-choice { display: block; } .sport-choice input { position: absolute; opacity: 0; pointer-events: none; } .sport-choice__card { display: grid; gap: 0.5rem; min-height: 100%; padding: 1rem 1.05rem; border-radius: 18px; border: 1px solid rgba(255, 255, 255, 0.12); background: rgba(255, 255, 255, 0.08); transition: transform 180ms ease, border-color 180ms ease, background 180ms ease, box-shadow 180ms ease; } .sport-choice__card img { width: 1.7rem; height: 1.7rem; opacity: 0.96; } .sport-choice__card strong { color: var(--text); font-size: 1rem; line-height: 1.35; } .sport-choice__card small { color: var(--muted); font-size: 0.82rem; line-height: 1.3; } .sport-choice__card--toggle { min-height: 100%; align-content: center; } .sport-choice input:checked + .sport-choice__card { border-color: rgba(139, 228, 255, 0.44); background: linear-gradient(180deg, rgba(96, 184, 255, 0.18), rgba(255, 255, 255, 0.08)); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08), 0 16px 28px rgba(8, 28, 43, 0.2); transform: translateY(-1px); } .sport-choice input:focus-visible + .sport-choice__card { outline: 2px solid rgba(139, 228, 255, 0.46); outline-offset: 2px; } label { display: grid; gap: 0.55rem; color: var(--muted); } label span { font-size: 0.93rem; } input[type="text"], input[type="password"], input[type="number"], input[type="date"], select, textarea { width: 100%; border: 1px solid var(--input-border); border-radius: 16px; background: var(--input-bg); color: var(--text); padding: 0.9rem 1rem; outline: none; transition: border-color 180ms ease, background 180ms ease, transform 180ms ease; } select { color-scheme: dark; } option, optgroup { background: var(--bg-soft); color: var(--text); } input:focus, select:focus, textarea:focus { border-color: rgba(139, 228, 255, 0.5); background: var(--input-bg-focus); transform: translateY(-1px); } textarea { resize: vertical; min-height: 11rem; } input[type="range"] { width: 100%; accent-color: var(--primary-strong); } .range-card { padding: 1rem; border-radius: var(--radius-md); background: var(--track-surface); border: 1px solid var(--track-accent); transition: border-color 220ms ease, background 220ms ease, transform 220ms ease, box-shadow 220ms ease; } .range-card output { font-size: 1.7rem; color: var(--text); font-weight: 700; } .preview-card { position: relative; overflow: hidden; border-color: var(--track-accent); box-shadow: 0 24px 70px rgba(4, 18, 31, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.08); } .preview-card::before { content: ""; position: absolute; inset: auto -12% -25% auto; width: 14rem; height: 14rem; border-radius: 50%; background: radial-gradient(circle, var(--track-glow), transparent 70%); pointer-events: none; transition: background 220ms ease, transform 220ms ease; } .preview-status { display: flex; align-items: center; gap: 1rem; margin-bottom: 0.8rem; } .preview-status__icon { width: 4.5rem; height: 4.5rem; border-radius: 20px; display: grid; place-items: center; background: rgba(255, 255, 255, 0.12); border: 1px solid rgba(255, 255, 255, 0.18); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12); } .preview-status__icon img { width: 2.3rem; height: 2.3rem; } .preview-status__label { margin: 0; font-size: 1.55rem; font-weight: 750; } .preview-scoreline { margin: 0 0 1rem; color: var(--muted); font-size: 0.95rem; } .preview-scoreline span { color: var(--text); font-size: 1.2rem; font-weight: 700; } .component-list, .detail-grid { display: grid; gap: 0.75rem; } .component-list div, .detail-grid div, .user-row { display: flex; justify-content: space-between; gap: 0.85rem; padding: 0.85rem 0.95rem; border-radius: 15px; background: rgba(255, 255, 255, 0.08); } .component-list dt, .detail-grid dt { color: var(--muted); } .component-list dd, .detail-grid dd { margin: 0; font-weight: 700; } .form-actions { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; } .section-actions { display: flex; justify-content: flex-end; margin-top: 0.95rem; } .push-panel { display: grid; gap: 0.9rem; } .push-panel h5 { margin: 0 0 0.35rem; font-size: 1rem; } .push-panel [data-push-status][data-tone="success"] { color: var(--good); } .push-panel [data-push-status][data-tone="error"] { color: var(--danger); } .push-actions { display: flex; flex-wrap: wrap; gap: 0.7rem; } .primary-button, .ghost-button, .button-link { display: inline-flex; align-items: center; justify-content: center; min-height: 3rem; padding: 0.75rem 1.2rem; border-radius: 999px; border: 1px solid transparent; transition: transform 180ms ease, box-shadow 180ms ease, background 180ms ease; } .primary-button, .button-link { color: #092033; font-weight: 700; background: linear-gradient(180deg, rgba(164, 239, 255, 0.98), rgba(95, 198, 255, 0.78)); box-shadow: 0 16px 30px rgba(59, 167, 230, 0.28); } .primary-button:hover, .ghost-button:hover, .button-link:hover { transform: translateY(-1px); } .ghost-button, .ghost-link { color: var(--text); border: 1px solid var(--control-soft-border); background: var(--control-soft-bg); } .ghost-link { display: inline-flex; align-items: center; justify-content: center; min-height: 2.75rem; padding: 0.55rem 0.95rem; border-radius: 999px; } .ghost-button--small { min-height: 2.45rem; padding: 0.55rem 0.95rem; } .archive-items, .user-list { display: grid; gap: 0.75rem; } .archive-summary-section { display: grid; gap: 0.9rem; margin-bottom: 1.2rem; } .archive-page { display: grid; } .archive-shell { display: grid; gap: 1rem; padding: 1.2rem; border-radius: var(--radius-xl); overflow: hidden; background: var(--archive-shell-bg); border-color: var(--archive-shell-border); } .archive-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; } .archive-header__meta { display: flex; gap: 0.6rem; flex-wrap: wrap; justify-content: flex-end; } .archive-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; padding: 0.85rem 0.95rem; border-radius: 18px; background: var(--archive-toolbar-bg); border: 1px solid var(--archive-toolbar-border); } .archive-toolbar--compact { margin-bottom: 0.15rem; } .archive-switcher { display: inline-grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.35rem; padding: 0.25rem; border-radius: 999px; background: var(--archive-switcher-bg); border: 1px solid var(--archive-switcher-border); } .archive-switcher__item { display: inline-flex; align-items: center; justify-content: center; min-height: 2.45rem; padding: 0.45rem 0.9rem; border-radius: 999px; color: var(--muted); transition: background 180ms ease, color 180ms ease, transform 180ms ease; } .archive-switcher__item.active { color: var(--text); background: var(--archive-switcher-active-bg); transform: translateY(-1px); } .archive-filter { display: flex; align-items: end; gap: 0.8rem; } .archive-filter label { min-width: 13rem; } .archive-filter select { background: var(--archive-select-bg); border-color: var(--archive-select-border); } .archive-filter select:focus { background: var(--archive-select-focus-bg); } .archive-workspace { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(300px, 0.78fr); gap: 1rem; align-items: start; } .archive-main { display: grid; gap: 0.85rem; min-width: 0; } .archive-list-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; } .archive-rows { display: grid; gap: 0.7rem; } .archive-row { display: grid; grid-template-columns: minmax(0, 1.2fr) auto auto; align-items: center; gap: 0.85rem; padding: 0.95rem 1rem; border-radius: 18px; background: var(--archive-row-bg); border: 1px solid var(--archive-row-border); transition: transform 180ms ease, border-color 180ms ease, background 180ms ease; } .archive-row:hover, .archive-row.active { transform: translateY(-1px); border-color: rgba(139, 228, 255, 0.28); background: var(--archive-row-active-bg); } .archive-row__main, .archive-row__meta { display: grid; gap: 0.18rem; min-width: 0; } .archive-row__main strong, .archive-row__title-group strong { font-size: 1rem; line-height: 1.25; } .archive-row__main span, .archive-row__meta span, .archive-row__title-group span, .archive-row__hint { color: var(--muted); font-size: 0.92rem; overflow-wrap: normal; word-break: normal; hyphens: auto; } .archive-row__meta { justify-items: end; text-align: right; } .archive-row__meta--stack { justify-items: start; text-align: left; } .archive-row__hint { white-space: nowrap; } .archive-row__title-group span, .archive-row__meta span { line-height: 1.45; } .archive-row--summary { grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.95fr) auto; align-items: flex-start; } .archive-row--summary .archive-row__main { grid-template-columns: minmax(0, 1fr) auto; align-items: start; } .archive-row--summary .status-badge { justify-self: end; align-self: start; } .archive-row--week .archive-row__main--week { grid-template-columns: 1fr; gap: 0.6rem; } .archive-row--week .archive-row__main--week .status-badge, .archive-row--month .archive-row__main--month .status-badge { justify-self: start; } .archive-row--month .archive-row__main--month { grid-template-columns: 1fr; gap: 0.6rem; } .archive-row--summary .archive-row__hint { align-self: start; } .archive-row__title-group { display: grid; gap: 0.18rem; min-width: 0; } .status-badge { display: inline-flex; align-items: center; justify-content: center; min-height: 1.7rem; padding: 0.2rem 0.65rem; border-radius: 999px; font-size: 0.78rem; font-weight: 700; letter-spacing: 0.03em; border: 1px solid transparent; max-width: 100%; white-space: normal; line-height: 1.25; text-align: center; } .status-badge--ready { color: #082336; background: rgba(127, 243, 187, 0.92); } .status-badge--pending { color: var(--text); background: rgba(139, 228, 255, 0.14); border-color: rgba(139, 228, 255, 0.22); } .status-badge--blocked { color: var(--text); background: rgba(255, 255, 255, 0.08); border-color: rgba(255, 255, 255, 0.12); } .archive-detail { min-width: 0; } .archive-detail__panel { display: grid; gap: 1rem; padding: 1.15rem; border-radius: var(--radius-xl); position: sticky; top: 1.25rem; min-width: 0; overflow: hidden; background: var(--archive-detail-bg); border-color: var(--archive-shell-border); } .archive-detail__top { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; min-width: 0; } .archive-detail__close { display: none; } .archive-detail__status-row, .archive-detail__actions { display: flex; align-items: center; gap: 0.7rem; flex-wrap: wrap; min-width: 0; } .archive-detail__single-action form, .archive-detail__actions form { margin: 0; min-width: 0; } .archive-detail__single-action { display: flex; min-width: 0; } .archive-detail__week-status { display: grid; gap: 0.7rem; } .archive-detail__status-note { display: grid; gap: 0.4rem; } .archive-detail__status-note p { margin: 0; } .archive-mini-list { display: grid; gap: 0.55rem; } .archive-mini-list__row { display: flex; justify-content: space-between; gap: 0.7rem; align-items: center; padding: 0.72rem 0.85rem; border-radius: 14px; background: rgba(255, 255, 255, 0.07); min-width: 0; } .archive-detail__panel > *, .archive-detail__top > *, .archive-detail__status-row > *, .archive-detail__actions > * { min-width: 0; } .archive-detail__actions .ghost-link, .archive-detail__actions .ghost-button, .archive-detail__single-action .primary-button { max-width: 100%; white-space: normal; } .archive-detail__status-row .chart-chip { max-width: 100%; white-space: normal; text-align: center; } .archive-detail__single-action .primary-button { width: 100%; } .detail-grid--archive div { display: grid; grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr); align-items: flex-start; min-width: 0; } .detail-grid--archive-day { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.8rem; } .detail-grid--archive-day div { display: grid; gap: 0.28rem; align-content: start; } .detail-grid--archive-day dt, .detail-grid--archive-day dd { min-width: 0; } .detail-grid--archive-day dd { text-align: left; white-space: normal; } .detail-grid--archive dd, .archive-mini-list__row span, .note-box p { min-width: 0; overflow-wrap: anywhere; } .detail-grid--archive dd { text-align: right; } .archive-summary-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 0.85rem; } .archive-summary-card { display: grid; gap: 0.7rem; padding: 1rem 1.05rem; border-radius: 18px; background: rgba(255, 255, 255, 0.08); border: 1px solid rgba(255, 255, 255, 0.08); } .archive-summary-card__head { display: flex; justify-content: space-between; gap: 0.8rem; align-items: flex-start; } .archive-summary-card__head strong { display: block; margin-top: 0.35rem; } .summary-badge { display: inline-flex; align-items: center; justify-content: center; min-width: 2.15rem; min-height: 1.55rem; padding: 0.15rem 0.5rem; border-radius: 999px; background: rgba(139, 228, 255, 0.16); border: 1px solid rgba(139, 228, 255, 0.24); color: var(--text); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.06em; } .chart-chip--muted { opacity: 0.82; } .archive-item { display: flex; justify-content: space-between; gap: 1rem; align-items: center; padding: 1rem 1.05rem; border-radius: 18px; background: rgba(255, 255, 255, 0.08); border: 1px solid transparent; transition: transform 180ms ease, border-color 180ms ease, background 180ms ease; } .archive-item span { display: block; color: var(--muted); margin-top: 0.2rem; } .archive-item:hover, .archive-item.active { transform: translateY(-1px); border-color: rgba(139, 228, 255, 0.34); background: rgba(255, 255, 255, 0.12); } .archive-item__meta { text-align: right; } .archive-item__actions { display: flex; gap: 0.55rem; flex-wrap: wrap; } .archive-item__actions--stack { justify-content: flex-start; align-items: stretch; } .archive-item__actions--stack form { margin: 0; } .archive-action { min-height: 2.4rem; padding-inline: 0.85rem; } .sport-pill { display: inline-flex; align-items: center; gap: 0.5rem; margin-top: 0.55rem; padding: 0.45rem 0.75rem; border-radius: 999px; background: rgba(118, 228, 255, 0.1); border: 1px solid rgba(118, 228, 255, 0.14); color: var(--text); line-height: 1; } .sport-pill img { width: 1rem; height: 1rem; opacity: 0.95; } .sport-pill span { margin-top: 0; color: inherit; } .sport-pill--soft { margin-top: 0; background: rgba(255, 255, 255, 0.08); border-color: rgba(255, 255, 255, 0.12); } .sport-pill--inline { margin-top: 0; vertical-align: middle; } .sport-pill-group { display: flex; flex-wrap: wrap; gap: 0.45rem; margin-top: 0.45rem; } .sport-pill-group--inline { margin-top: 0; } .note-box { padding: 1rem; border-radius: 18px; background: rgba(255, 255, 255, 0.08); } .note-box--summary p { white-space: pre-wrap; } .note-box h4 { margin: 0 0 0.55rem; } .empty-state { color: var(--muted); line-height: 1.6; } .band-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .band-card { display: grid; gap: 0.75rem; padding: 1rem; border-radius: 18px; background: rgba(255, 255, 255, 0.08); } .sport-type-list { display: grid; gap: 0.9rem; } .preset-list { display: flex; flex-wrap: wrap; gap: 0.65rem; margin-bottom: 0.95rem; } .preset-pill { display: inline-flex; align-items: center; gap: 0.55rem; padding: 0.65rem 0.9rem; border-radius: 999px; border: 1px solid rgba(138, 210, 235, 0.22); background: rgba(255, 255, 255, 0.08); color: var(--text); backdrop-filter: blur(20px); transition: transform 180ms ease, border-color 180ms ease, background 180ms ease; } .preset-pill:hover { transform: translateY(-1px); border-color: rgba(139, 228, 255, 0.4); background: rgba(255, 255, 255, 0.12); } .preset-pill img { width: 1rem; height: 1rem; } .preset-pill[hidden] { display: none; } .sport-type-card { gap: 0.9rem; } .sport-type-card__actions { display: flex; justify-content: space-between; align-items: center; gap: 0.8rem; flex-wrap: wrap; } .checkbox-row { display: flex; align-items: center; gap: 0.7rem; } .checkbox-row span { display: grid; gap: 0.15rem; } .checkbox-row small { color: var(--muted); font-size: 0.86rem; line-height: 1.45; } .checkbox-row--panel { padding: 0.95rem 1rem; border-radius: 18px; background: rgba(255, 255, 255, 0.08); border: 1px solid rgba(255, 255, 255, 0.1); min-height: 100%; } .checkbox-row--tall { align-items: flex-start; padding-top: 1.05rem; padding-bottom: 1.05rem; } .checkbox-row input { width: auto; } .auth-shell { min-height: 100vh; display: grid; place-items: center; padding: 1.5rem; } .auth-card { width: min(100%, 30rem); } .auth-card form { margin-top: 1.4rem; } .button-link { width: fit-content; } .page-track[data-track-mood="storm"] { --track-accent: rgba(255, 143, 143, 0.38); --track-surface: rgba(255, 143, 143, 0.08); --track-glow: rgba(255, 126, 126, 0.22); } .page-track[data-track-mood="heavy"] { --track-accent: rgba(255, 191, 141, 0.34); --track-surface: rgba(255, 191, 141, 0.08); --track-glow: rgba(255, 191, 141, 0.18); } .page-track[data-track-mood="steady"] { --track-accent: rgba(139, 228, 255, 0.34); --track-surface: rgba(255, 255, 255, 0.08); --track-glow: rgba(139, 228, 255, 0.18); } .page-track[data-track-mood="bright"] { --track-accent: rgba(143, 243, 198, 0.34); --track-surface: rgba(143, 243, 198, 0.08); --track-glow: rgba(143, 243, 198, 0.2); } .page-track[data-track-mood="radiant"] { --track-accent: rgba(255, 233, 140, 0.35); --track-surface: rgba(255, 233, 140, 0.1); --track-glow: rgba(255, 233, 140, 0.22); } .page-track[data-track-mood] .aurora-one, .page-track[data-track-mood] .aurora-two, .page-track[data-track-mood] .range-card, .page-track[data-track-mood] .preview-card, .page-track[data-track-mood] .preview-card::before { transition: background 220ms ease, opacity 220ms ease, transform 220ms ease, border-color 220ms ease, box-shadow 220ms ease; } .page-track[data-track-mood="storm"] .aurora-one, .page-track[data-track-mood="storm"] .aurora-two { opacity: 0.5; background: radial-gradient(circle, rgba(255, 128, 128, 0.32), transparent 70%); } .page-track[data-track-mood="heavy"] .aurora-one, .page-track[data-track-mood="heavy"] .aurora-two { opacity: 0.55; background: radial-gradient(circle, rgba(255, 192, 128, 0.3), transparent 70%); } .page-track[data-track-mood="bright"] .aurora-one, .page-track[data-track-mood="bright"] .aurora-two { opacity: 0.72; background: radial-gradient(circle, rgba(127, 243, 187, 0.3), transparent 70%); } .page-track[data-track-mood="radiant"] .aurora-one, .page-track[data-track-mood="radiant"] .aurora-two { opacity: 0.78; background: radial-gradient(circle, rgba(255, 228, 122, 0.32), transparent 70%); } @media (max-width: 1100px) { .shell { grid-template-columns: 1fr; } .sidebar { position: static; min-height: auto; } .stats-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } } @media (max-width: 820px) { .shell { grid-template-columns: 1fr; } .topbar, .section-head, .form-actions { flex-direction: column; align-items: stretch; } .hero-grid, .dashboard-grid, .page-grid, .stats-grid, .field-grid--two, .field-grid--three, .field-grid--four, .band-grid { grid-template-columns: 1fr; } .sport-choice-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } .sidebar { display: none; } .mobile-nav { position: fixed; left: 0.8rem; right: 0.8rem; bottom: max(0.8rem, env(safe-area-inset-bottom)); z-index: 30; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.45rem; padding: 0.6rem; border-radius: 28px; } .mobile-nav a { display: grid; justify-items: center; gap: 0.35rem; padding: 0.7rem 0.5rem; border-radius: 22px; color: var(--muted); transition: transform 180ms ease, background 180ms ease, color 180ms ease; } .mobile-nav a.active { background: var(--nav-hover-bg); color: var(--text); transform: translateY(-1px); } .mobile-nav a span { font-size: 0.76rem; line-height: 1.1; } .mobile-nav .nav-icon { width: 1.25rem; height: 1.25rem; } body.is-authenticated .content { padding-bottom: calc(6.8rem + env(safe-area-inset-bottom)); } body.page-dashboard.is-authenticated .content, body.page-options.is-authenticated .content { padding-bottom: 0; } .site-footer { margin-bottom: 0.5rem; } .bar-chart { overflow-x: auto; padding-bottom: 0.4rem; } .archive-item, .preview-status, .sport-type-card__actions { flex-direction: column; align-items: flex-start; } .archive-summary-grid { grid-template-columns: 1fr; } .archive-header, .archive-toolbar, .archive-workspace, .archive-list-header, .archive-row, .archive-row--summary { grid-template-columns: 1fr; } .archive-header, .archive-toolbar, .archive-list-header { flex-direction: column; align-items: stretch; } .archive-workspace { gap: 0.85rem; } .archive-row__meta { justify-items: start; text-align: left; } .archive-row--summary .archive-row__main { grid-template-columns: 1fr; } .archive-row--summary .status-badge { justify-self: start; } .archive-row--day { grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 0.75rem; padding: 0.9rem 0.95rem; } .archive-row--day .archive-row__main { gap: 0.12rem; } .archive-row--day .archive-row__meta { display: flex; flex-direction: column; align-items: flex-end; text-align: right; gap: 0.12rem; } .archive-row--day .archive-row__hint { display: none; } .archive-row--day .archive-row__main strong { font-size: 1.02rem; } .archive-row--day .archive-row__main span, .archive-row--day .archive-row__meta span { font-size: 0.9rem; } .archive-detail { scroll-margin-top: 1rem; } .calendar-detail { flex-direction: column; align-items: flex-start; } .calendar-detail__score { justify-items: start; } .line-chart { min-height: 9.5rem; } .bar-chart { min-height: 10rem; } } .ios-tabbar { display: none; } @media (max-width: 760px) { .dashboard-topbar { display: none; } body { -webkit-tap-highlight-color: transparent; } .ios-tabbar { position: fixed; left: 0.65rem; right: 0.65rem; bottom: max(0.55rem, env(safe-area-inset-bottom)); z-index: 120; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.18rem; min-height: 5rem; padding: 0.42rem; border: 1px solid rgba(255, 255, 255, 0.34); border-radius: 2.15rem; background: radial-gradient(circle at 18% 0%, rgba(255, 255, 255, 0.34), transparent 38%), linear-gradient(180deg, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.07)), rgba(13, 22, 35, 0.5); box-shadow: 0 26px 80px rgba(0, 0, 0, 0.38), inset 0 1px 0 rgba(255, 255, 255, 0.28), inset 0 -1px 0 rgba(255, 255, 255, 0.08); backdrop-filter: blur(38px) saturate(1.8) contrast(1.06); -webkit-backdrop-filter: blur(38px) saturate(1.8) contrast(1.06); } .ios-tabbar a { display: grid; place-items: center; align-content: center; gap: 0.22rem; min-height: 3.55rem; border-radius: 1.45rem; color: rgba(239, 247, 255, 0.68); font-size: 0.72rem; font-weight: 650; text-decoration: none; transition: background 160ms ease, color 160ms ease, transform 160ms ease; } .ios-tabbar a.active { background: radial-gradient(circle at 50% 0%, rgba(255, 255, 255, 0.3), transparent 52%), linear-gradient(180deg, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.08)); color: #fff; transform: translateY(-1px); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.24), 0 8px 24px rgba(0, 0, 0, 0.16); } .ios-tabbar__icon { display: grid; place-items: center; width: 1.48rem; height: 1.48rem; border-radius: 0.72rem; background: rgba(255, 255, 255, 0.1); opacity: 0.96; } .ios-tabbar__icon img { width: 1.04rem; height: 1.04rem; filter: brightness(0) invert(1); opacity: 0.92; } .ios-tabbar a.active .ios-tabbar__icon { background: rgba(255, 255, 255, 0.18); } body.is-authenticated .content, body.page-dashboard.is-authenticated .content, body.page-options.is-authenticated .content { padding-bottom: calc(6.2rem + env(safe-area-inset-bottom)); } .dashboard-day, .dashboard-range-view { width: min(100%, 430px); padding-top: 0.7rem; } .dashboard-day__hero, .dashboard-range-view__hero, .day-summary-card, .timeline-card, .range-card, .range-day-card, .dashboard-composer { border-radius: 1.65rem; box-shadow: 0 14px 40px rgba(4, 18, 31, 0.18); } .timeline-card, .range-day-card { padding: 1.05rem; } .timeline-card { grid-template-columns: 1fr; overflow: visible; } .timeline-card--with-image { padding: 0.9rem; } .timeline-card__body { display: flex; flex-direction: column; width: 100%; min-width: 0; } .timeline-card__body h3 { width: 100%; padding-right: 0; font-size: 1.12rem; font-weight: 520; line-height: 1.28; letter-spacing: -0.018em; overflow-wrap: anywhere; } .timeline-card__comment, .timeline-card__value { width: 100%; max-width: none; font-size: 1.02rem; line-height: 1.34; letter-spacing: -0.012em; overflow-wrap: anywhere; word-break: normal; hyphens: auto; } .timeline-media-button { height: auto; min-height: 0; max-height: none; margin: 0 0 0.9rem; aspect-ratio: auto; background: rgba(255, 255, 255, 0.08); } .timeline-media-button .timeline-card__image { width: 100%; height: auto; max-height: min(28rem, 68vh); object-fit: contain; object-position: center; } .timeline-card .signal-row, .timeline-card--with-image .signal-row { position: static; display: flex; flex-wrap: wrap; order: -1; gap: 0.45rem; margin: 0 0 1rem; } .timeline-card .signal-pill { width: 2.55rem; min-width: 2.55rem; height: 2.55rem; min-height: 2.55rem; padding: 0; justify-content: center; border-radius: 999px; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.24), inset 0 1px 0 rgba(255, 255, 255, 0.26); } .timeline-card .signal-pill strong, .timeline-card .signal-pill span { display: none; } .timeline-card .signal-pill__icon { display: block; width: 1.12rem; height: 1.12rem; filter: brightness(0) invert(1) drop-shadow(0 1px 3px rgba(0, 0, 0, 0.55)); } .timeline-card__time-chip { position: absolute; top: 0.85rem; right: 4.8rem; left: auto; display: inline-flex; min-height: 2.35rem; padding: 0 0.78rem; border-radius: 999px; background: rgba(8, 18, 30, 0.42); border: 1px solid rgba(255, 255, 255, 0.16); color: rgba(255, 255, 255, 0.86); } .timeline-card__delete, .timeline-card--with-image .timeline-card__delete { top: 0.75rem; right: 0.75rem; } .timeline-card--with-image .timeline-card__time-chip { top: 1.25rem; right: 4.9rem; } .timeline-card--with-image .timeline-card__delete { top: 1.05rem; right: 1.05rem; } .sleep-phase-bar { margin-top: 1rem; } .sleep-phase-bar__rest-label { max-width: calc(100% - 5.8rem); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } button, input, select, textarea, .ghost-button, .dashboard-switcher a, .range-moment-list__item, .signal-pill { min-height: 44px; } } @media (max-width: 760px) and (prefers-color-scheme: light) { .ios-tabbar { border-color: rgba(120, 146, 172, 0.22); background: radial-gradient(circle at 18% 0%, rgba(255, 255, 255, 0.95), transparent 42%), linear-gradient(180deg, rgba(255, 255, 255, 0.86), rgba(255, 255, 255, 0.48)), rgba(248, 251, 255, 0.68); box-shadow: 0 24px 64px rgba(78, 105, 130, 0.22), inset 0 1px 0 rgba(255, 255, 255, 0.86); } .ios-tabbar a { color: rgba(18, 48, 75, 0.58); } .ios-tabbar a.active { background: radial-gradient(circle at 50% 0%, rgba(255, 255, 255, 0.92), transparent 55%), rgba(20, 148, 222, 0.12); color: #12304b; } .ios-tabbar__icon { background: rgba(18, 48, 75, 0.06); } .ios-tabbar__icon img { filter: none; } .sleep-phase-legend__item { color: rgba(18, 48, 75, 0.9); } } @media (max-width: 640px) { .shell { padding: 0.8rem; gap: 0.8rem; } body.page-dashboard .shell, body.page-options .shell { padding: 0; gap: 0; } .sidebar, .hero-card, .metric-card, .chart-card, .form-panel, .detail-card, .info-card, .preview-card, .archive-list, .topbar { border-radius: 22px; } .hero-score { font-size: 2.8rem; } .chart-card { padding: 1rem; } .line-chart { min-height: 8.75rem; } .bar-chart { min-height: 9.5rem; } .mobile-nav { left: 0.7rem; right: 0.7rem; bottom: max(0.7rem, env(safe-area-inset-bottom)); padding: 0.5rem; gap: 0.3rem; } .mobile-nav a { padding: 0.62rem 0.35rem; } .mobile-nav a span { font-size: 0.72rem; } .site-footer { flex-direction: column; align-items: flex-start; gap: 0.4rem; } .archive-shell { padding: 1rem; } .archive-switcher, .archive-filter, .archive-header__meta { width: 100%; } .archive-filter label { min-width: 0; } }