:root,:root[data-theme=dark]{color-scheme:dark;--font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--line-height-tight: 1.2;--line-height-snug: 1.3;--line-height-normal: 1.5;--line-height-relaxed: 1.6;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--placeholder-text-strength: 100%;--control-height-sm: 2rem;--control-height-md: 2.5rem;--control-height-lg: 2.75rem;--bg-primary: #030712;--bg-secondary: #0a1325;--bg-tertiary: #0d1729;--bg-quaternary: #1d2d4d;--text-primary: #e2e8f0;--text-secondary: #aab4c4;--text-tertiary: #7c8798;--text-inverse: #ffffff;--border-1: #263149;--border-2: #7a8799;--accent-1: #4364c5;--accent-2: #1e2f62;--accent-3: #7f9cff;--status-success: #22c55e;--status-warning: #f59e0b;--status-error: #fb7185;--status-info: #38bdf8;--focus-ring: #60a5fa;--gloss-subtle: rgba(248, 250, 252, .08);--gloss-soft: rgba(248, 250, 252, .14);--gloss-medium: rgba(248, 250, 252, .24);--gloss-strong: rgba(248, 250, 252, .5);--ink-soft: rgba(0, 0, 0, .2);--ink-medium: rgba(0, 0, 0, .35);--shadow-color: rgba(2, 6, 23, .48);--shadow-strong: 0 12px 30px rgba(2, 6, 23, .55);--shadow-elevated: 0 16px 40px rgba(2, 6, 23, .6);--overlay-locked: rgba(2, 6, 23, .6);--segmented-bg: transparent;--dial-needle: #f87171;--dial-needle-shadow: rgba(248, 113, 113, .45);--dial-shadow: rgba(0, 0, 0, .3);--dial-glow: rgba(255, 255, 255, .08);--dial-history-shadow: rgba(0, 0, 0, .35);--dial-label-text: #0b1220;--dial-conflict: #facc15;--dial-boundary: #030712;--dial-day: rgba(255, 216, 170, .82);--dial-night: #6982ab;--dial-day-history: rgba(219, 198, 170, .74);--dial-night-history: #758298;--dial-day-text: #ffdfb5;--dial-night-text: #8394b4;--dial-day-history-text: #e0cdb5;--dial-night-history-text: #828fa3;--dial-history-off: #0b1220;--dial-history-pause-overlay: #333333;--dial-auto-brightness-warm: #fff4dd;--handle-outline: rgba(255, 255, 255, .9);--handle-shadow: rgba(2, 6, 23, .72);--radius-lg: 16px;--radius-base: 12px;--transition-base: .2s ease;--app-shell-max-width: 1024px}:root[data-theme=light]{color-scheme:light;--placeholder-text-strength: 100%;--bg-primary: #f3f6fb;--bg-secondary: #ffffff;--bg-tertiary: #eef3f9;--bg-quaternary: #d4deeb;--text-primary: #111827;--text-secondary: #364254;--text-tertiary: #475569;--text-inverse: #ffffff;--border-1: #cbd5e1;--border-2: #64748b;--accent-1: #4364c5;--accent-2: #e7edff;--accent-3: #304aa0;--status-success: #166534;--status-warning: #92400e;--status-error: #991b1b;--status-info: #1e40af;--focus-ring: #2563eb;--gloss-subtle: rgba(255, 255, 255, .32);--gloss-soft: rgba(255, 255, 255, .48);--gloss-medium: rgba(255, 255, 255, .68);--gloss-strong: rgba(255, 255, 255, .86);--ink-soft: rgba(15, 23, 42, .16);--ink-medium: rgba(15, 23, 42, .28);--shadow-color: rgba(15, 23, 42, .24);--shadow-strong: 0 12px 30px rgba(15, 23, 42, .16);--shadow-elevated: 0 16px 40px rgba(15, 23, 42, .2);--overlay-locked: rgba(15, 23, 42, .34);--segmented-bg: transparent;--dial-needle: #dc2626;--dial-needle-shadow: rgba(220, 38, 38, .32);--dial-shadow: rgba(15, 23, 42, .18);--dial-glow: rgba(15, 23, 42, .08);--dial-history-shadow: rgba(15, 23, 42, .22);--dial-label-text: #1e293b;--dial-conflict: #a16207;--dial-boundary: #94a3b8;--dial-day: rgba(180, 83, 9, .48);--dial-night: #64748b;--dial-day-history: rgba(120, 113, 108, .52);--dial-night-history: #94a3b8;--dial-day-text: #a85f0b;--dial-night-text: #64748b;--dial-day-history-text: #82786f;--dial-night-history-text: #94a3b8;--dial-history-off: #334155;--dial-history-pause-overlay: #64748b;--dial-auto-brightness-warm: #fef3c7;--handle-outline: rgba(30, 41, 59, .85);--handle-shadow: rgba(15, 23, 42, .45)}:root[data-theme=dark]{--placeholder-text-strength: 90%}*,*:before,*:after{box-sizing:border-box}html,body,#app{min-height:100%}body{margin:0;min-height:100vh;min-height:100dvh;overflow-x:hidden;background:var(--bg-primary);color:var(--text-primary);font-family:var(--font-sans);font-size:var(--font-size-base);line-height:var(--line-height-normal);font-weight:var(--font-weight-regular);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:none;text-size-adjust:none;touch-action:pan-y}.sheet-hint{margin:0;padding:0 20px;color:var(--text-tertiary);font-size:var(--font-size-xs);text-align:center}.sheet-hint-group{display:flex;flex-direction:column;gap:16px}html{-webkit-text-size-adjust:none;text-size-adjust:none}:root[data-theme=dark] body{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}a{color:inherit}button{font-family:inherit;font-size:var(--font-size-sm);line-height:var(--line-height-snug);font-weight:var(--font-weight-medium);transition:transform var(--transition-base),filter var(--transition-base)}:where(a,button,[role=button],summary,label,[tabindex]:not(input):not(textarea):not(select),input[type=button],input[type=submit],input[type=reset],input[type=range],input[type=checkbox],input[type=radio],input[type=color],input[type=file]){-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}:where(a,button,[role=button],summary,label,[tabindex]:not(input):not(textarea):not(select),input[type=button],input[type=submit],input[type=reset],input[type=range],input[type=checkbox],input[type=radio],input[type=color],input[type=file]) :where(img,svg){-webkit-user-drag:none;user-drag:none}@media (pointer: coarse){:where(.touch-target){min-height:44px;min-width:44px}}input,textarea,select{font:inherit;font-size:var(--font-size-sm);line-height:var(--line-height-normal);color:var(--text-primary)}:where(input[type=text],input[type=search],input[type=email],input[type=password],input[type=tel],input[type=url],input[type=number],input[type=time],input[type=date],input[type=datetime-local],input[type=month],textarea,[contenteditable=true]){-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}input[type=number],input[type=time],input[type=date],input[type=datetime-local],input[type=month]{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}input::placeholder,textarea::placeholder{color:var(--text-tertiary)}input:disabled,textarea:disabled,select:disabled{opacity:.7}button:disabled,[aria-disabled=true]{cursor:not-allowed;opacity:.56;filter:saturate(.75)}[role=button]{transition:transform var(--transition-base),filter var(--transition-base)}:where(a,button,[role=button],input,textarea,select,[tabindex]):focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.text-title-1{font-size:var(--font-size-2xl);line-height:var(--line-height-tight);font-weight:var(--font-weight-semibold)}.text-title-2{font-size:var(--font-size-xl);line-height:var(--line-height-snug);font-weight:var(--font-weight-semibold)}.text-title-3{font-size:var(--font-size-lg);line-height:var(--line-height-snug);font-weight:var(--font-weight-semibold)}.text-body{font-size:var(--font-size-base);line-height:var(--line-height-normal);font-weight:var(--font-weight-regular)}.text-body-muted{font-size:var(--font-size-sm);line-height:var(--line-height-normal);font-weight:var(--font-weight-regular);color:var(--text-tertiary)}.text-label{font-size:var(--font-size-sm);line-height:var(--line-height-snug);font-weight:var(--font-weight-medium)}.text-caption{font-size:var(--font-size-xs);line-height:var(--line-height-snug);font-weight:var(--font-weight-regular)}.text-button{font-size:var(--font-size-sm);line-height:var(--line-height-snug);font-weight:var(--font-weight-medium);letter-spacing:.01em}.text-tabular{font-variant-numeric:tabular-nums}.form-helper,.form-error{min-height:calc(var(--font-size-xs) * 1.5);font-size:var(--font-size-xs);line-height:var(--line-height-snug)}.form-feedback-slot{min-height:calc(var(--font-size-xs) * 1.5)}.form-feedback-slot>*{margin:0}.form-helper{font-weight:var(--font-weight-regular);color:var(--text-tertiary)}.form-error{font-weight:var(--font-weight-medium);color:var(--status-error)}.card-title{margin:0;font-weight:var(--font-weight-medium);font-size:var(--font-size-sm);line-height:var(--line-height-snug);color:var(--text-tertiary)}.card-subtitle{margin:8px 0 0;color:var(--text-primary);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);line-height:var(--line-height-snug)}.card-subtitle.error{color:var(--status-error)}button:not(:disabled):hover,[role=button]:not([aria-disabled=true]):hover{filter:brightness(1.05)}button:not(:disabled):active,[role=button]:not([aria-disabled=true]):active{transform:scale(.95)}#app{min-height:100vh;min-height:100dvh;overflow-x:clip}.panel-title{font-size:var(--font-size-base);line-height:var(--line-height-snug);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin:0}.panel-subtitle{font-size:var(--font-size-xs);line-height:var(--line-height-snug);color:var(--text-tertiary)}.page-header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:12px;margin:0 auto;width:100%}.page-header h1{margin:0;font-size:var(--font-size-2xl);line-height:var(--line-height-tight);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.app-shell{min-height:100vh;min-height:100dvh;width:100%;touch-action:pan-y;background:var(--bg-primary);color:var(--text-primary);position:relative;display:flex;flex-direction:column}.app-shell__inner{width:100%;max-width:var(--app-shell-max-width);margin:0 auto;box-sizing:border-box}.app-shell__inner--padded{padding-left:clamp(10px,4vw,32px);padding-right:clamp(10px,4vw,32px)}.app-main{width:100%;flex:1 1 auto;display:flex;flex-direction:column}.app-main>.app-shell__inner{flex:1 1 auto;display:flex;flex-direction:column}.app-header{background:var(--bg-secondary);color:var(--text-primary);border-bottom:1px solid var(--border-1);position:sticky;top:0;z-index:40;isolation:isolate;-webkit-backdrop-filter:saturate(160%) blur(16px);backdrop-filter:saturate(160%) blur(16px);padding:0}.app-header__inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding-top:8px;padding-bottom:8px;width:100%}.app-header__inner--compact{display:grid;grid-template-columns:40px 1fr 40px;align-items:center;justify-content:center}.app-header--compact .brand{justify-self:start}.app-header--compact .brand img{max-height:32px;width:auto}.app-header--compact .profile-badge{margin-left:0;justify-self:end}.header-title{text-align:center;font-size:var(--font-size-base);line-height:var(--line-height-snug);font-weight:var(--font-weight-semibold);letter-spacing:.02em}.header-spacer{width:40px;height:1px;justify-self:end}.brand{display:inline-flex;align-items:center;margin:0}.brand img{max-height:36px;width:auto;display:block}.brand span{margin-left:12px;font-size:var(--font-size-lg);line-height:var(--line-height-snug);font-weight:var(--font-weight-semibold);letter-spacing:.02em}.app-header nav{display:flex;gap:14px;align-items:center}.app-header nav.landing-nav{gap:8px}.nav-link{color:var(--text-tertiary);text-decoration:none;font-size:var(--font-size-sm);line-height:var(--line-height-snug);font-weight:var(--font-weight-medium);letter-spacing:.01em;transition:color var(--transition-base);background:none;border:none;padding:0 10px;min-height:var(--control-height-sm);display:inline-flex;align-items:center;justify-content:center;border-radius:8px}.nav-link:hover{color:var(--text-primary);background:var(--bg-tertiary)}.nav-link.active{color:var(--accent-3);font-weight:var(--font-weight-semibold);background:transparent}.header-login-btn{border:none;border-radius:999px;min-height:var(--control-height-sm);padding:0 16px;background:var(--accent-1);color:var(--text-inverse);font-size:var(--font-size-sm);line-height:var(--line-height-snug);font-weight:var(--font-weight-semibold);letter-spacing:.01em;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:opacity var(--transition-base),transform var(--transition-base)}.header-login-btn:hover{opacity:.88;transform:translateY(-1px)}.user-section{display:flex;align-items:center;gap:12px;background:var(--bg-secondary);padding:10px 16px;border-radius:12px}.user-info{display:flex;flex-direction:column;line-height:var(--line-height-snug)}.user-name{font-size:var(--font-size-sm);line-height:var(--line-height-snug);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.user-email{font-size:var(--font-size-xs);line-height:var(--line-height-snug);color:var(--text-tertiary)}.logout-btn{border:none;border-radius:8px;min-height:var(--control-height-sm);padding:0 12px;font-size:var(--font-size-sm);line-height:var(--line-height-snug);font-weight:var(--font-weight-semibold);letter-spacing:.01em;background:var(--status-error);color:var(--text-inverse);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.logout-btn:hover{background:var(--status-error)}.profile-badge{width:40px;height:40px;border-radius:999px;background:var(--accent-2);color:var(--accent-3);font-size:var(--font-size-base);line-height:1;font-weight:var(--font-weight-semibold);display:flex;align-items:center;justify-content:center;text-decoration:none;border:1px solid transparent}.profile-badge:hover{border-color:var(--border-1)}.app-footer{position:relative;width:100%;margin-top:auto;padding:16px 0 calc(16px + env(safe-area-inset-bottom,0px)) 0;border-top:1px solid var(--border-1);background:var(--bg-secondary)}.footer-inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;font-size:var(--font-size-sm);line-height:var(--line-height-snug);color:var(--text-tertiary)}.footer-contact{display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap}.footer-label{letter-spacing:.08em;font-weight:var(--font-weight-semibold);text-transform:uppercase;font-size:var(--font-size-xs);line-height:var(--line-height-snug);color:var(--text-secondary)}.footer-contact a{color:var(--text-primary);text-decoration:none;font-weight:var(--font-weight-semibold)}.footer-contact a:hover{text-decoration:underline}.footer-links{display:inline-flex;flex-wrap:wrap;gap:12px 18px}.footer-links a{color:var(--text-tertiary);text-decoration:none;transition:color var(--transition-base)}.footer-links a:hover{color:var(--text-primary);text-decoration:underline}.footer-copy{font-size:var(--font-size-xs);line-height:var(--line-height-snug);color:var(--text-secondary)}.footer-copy--inline{margin-right:2px}.cookie-notice{position:fixed;left:0;right:0;bottom:0;z-index:12;padding:0 0 calc(10px + env(safe-area-inset-bottom,0px)) 0;pointer-events:none}.cookie-notice__card{margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--border-2);border-radius:14px;background:var(--bg-secondary);box-shadow:var(--shadow-elevated);-webkit-backdrop-filter:saturate(150%);backdrop-filter:saturate(150%);pointer-events:auto;max-width:780px}.cookie-notice__text{margin:0;font-size:var(--font-size-xs);line-height:1.45;color:var(--text-secondary)}.cookie-notice__link{color:var(--accent-3);text-decoration:underline;text-underline-offset:.16em}.cookie-notice__button{flex:0 0 auto;border:1px solid transparent;border-radius:999px;min-height:32px;padding:0 14px;background:var(--accent-1);color:var(--text-inverse);font-weight:var(--font-weight-semibold);cursor:pointer;font-size:var(--font-size-xs)}@media (max-width: 900px){.app-main{padding-bottom:24px}.app-header{border-bottom:1px solid var(--border-1)}.app-header h1{font-size:var(--font-size-lg)}.app-header nav{display:none}.profile-badge{margin-left:auto}.app-footer{margin-top:20px;padding:12px 0 calc(12px + env(safe-area-inset-bottom,0px)) 0}.footer-inner{flex-direction:column;align-items:flex-start;gap:10px}.footer-contact,.footer-links{width:100%}.footer-links{gap:8px 14px}.page-shell{padding-bottom:40px}.cookie-notice{padding-left:10px;padding-right:10px;padding-bottom:calc(8px + env(safe-area-inset-bottom,0px))}.cookie-notice__card{gap:10px;padding:10px 12px;border-radius:12px}.cookie-notice__button{min-width:112px;margin-left:auto}}@media (min-width: 901px){.app-main{padding-bottom:32px}}
