:root{--bg: #15101f;--bg-2: #1a1525;--bg-3: #2a2140;--ink: #f5e6d3;--ink-dim: #c8b89a;--ink-faint: #8a7d96;--accent: #e8b86c;--accent-soft: #d4a85a;--green: #7dbf86;--amber: #e8b86c;--red: #d97a6c;--rule: #2a2040;--radius: 18px;--shadow-lg: 0 12px 40px rgba(0, 0, 0, .45);--font-serif: "Iowan Old Style", "Apple Garamond", Baskerville, "Times New Roman", serif;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior:none}body{min-height:100dvh;background:radial-gradient(ellipse at top,var(--bg-2) 0%,var(--bg) 60%)}#root{min-height:100dvh;display:flex;flex-direction:column}button{font:inherit;background:none;border:0;color:inherit;cursor:pointer;padding:0;-webkit-tap-highlight-color:transparent}input,select{font:inherit;background:var(--bg-3);border:1px solid var(--rule);border-radius:12px;color:var(--ink);padding:12px 14px;outline:none}input:focus,select:focus{border-color:var(--accent)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.app{display:flex;flex-direction:column;min-height:100dvh;padding:0 0 env(safe-area-inset-bottom,0)}.brand{padding:20px 24px 0;display:flex;align-items:center;gap:10px;color:var(--ink-dim);font-size:13px;letter-spacing:.04em;text-transform:uppercase}.brand-mark{width:22px;height:22px}.brand-name{font-family:var(--font-serif);font-style:italic;font-size:18px;color:var(--ink);letter-spacing:.01em;text-transform:none}.night-count{margin-left:auto;font-size:12px;color:var(--ink-faint);font-variant-numeric:tabular-nums}.main{flex:1;display:flex;flex-direction:column;padding:24px;gap:32px}.card{background:var(--bg-2);border:1px solid var(--rule);border-radius:var(--radius);padding:28px 24px 24px;box-shadow:var(--shadow-lg)}.card-meta{font-size:11px;color:var(--ink-faint);letter-spacing:.1em;text-transform:uppercase;margin-bottom:14px}.card-title{font-family:var(--font-serif);font-size:26px;line-height:1.2;margin:0 0 16px;font-weight:500;letter-spacing:-.01em}.card-body{font-size:16px;line-height:1.55;color:var(--ink);margin:0}.card-age-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:18px}.card-age-pill{display:inline-block;font-size:11px;letter-spacing:.06em;text-transform:uppercase;padding:4px 10px;border-radius:999px;background:var(--bg-3);color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);font-weight:500}.card-age-cta{font-size:13px;padding:6px 12px;border-radius:999px;background:var(--accent);color:#1a1525;font-weight:500;transition:background .15s ease}.card-age-cta:hover{background:var(--accent-soft)}.card-actions{margin-top:24px;display:flex;gap:8px;flex-wrap:wrap}.chip{font-size:13px;padding:8px 14px;border-radius:999px;background:var(--bg-3);border:1px solid var(--rule);color:var(--ink-dim);transition:all .15s ease}.chip:hover{color:var(--ink);border-color:var(--ink-faint)}.chip.primary{background:var(--accent);color:#1a1525;border-color:var(--accent)}.chip.primary:hover{background:var(--accent-soft)}.chip:disabled{opacity:.4;cursor:default}.day-dial{position:relative;width:300px;height:300px;margin:0 auto 16px;max-width:100%}.day-dial-svg{width:100%;height:100%}.day-dial-center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none;text-align:center;padding:0 24px}.day-dial-time{font-family:var(--font-serif);font-size:28px;font-weight:500;color:var(--ink);letter-spacing:-.01em;line-height:1;margin-bottom:6px;font-variant-numeric:tabular-nums}.day-dial-state{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:4px}.day-dial-state.muted{color:var(--ink-faint)}.day-dial-sub{font-size:12px;color:var(--ink-faint);letter-spacing:.04em}.day-dial-prediction{font-size:13px;color:var(--accent);margin-top:10px;font-weight:500;letter-spacing:.01em}.day-dial-prediction strong{color:var(--accent);font-weight:600}.dial-section{display:flex;flex-direction:column;align-items:center;padding:8px 0 0}.quick-log{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.log-btn{display:flex;flex-direction:column;align-items:center;gap:6px;padding:16px 6px;background:var(--bg-2);border:1px solid var(--rule);border-radius:14px;color:var(--ink-dim);transition:all .15s ease;min-height:76px;justify-content:center}.log-btn:hover,.log-btn:focus-visible{border-color:var(--accent);color:var(--ink);transform:translateY(-1px)}.log-btn:active{transform:translateY(0)}.log-btn.active{border-color:var(--accent);color:var(--accent);background:var(--bg-3)}.log-btn.flash{background:var(--accent);color:#1a1525;border-color:var(--accent);animation:log-flash .2s ease-out}@keyframes log-flash{0%{transform:scale(1)}50%{transform:scale(.96)}to{transform:scale(1)}}.log-btn svg{width:22px;height:22px}.log-btn-label{font-size:11px;letter-spacing:.04em;text-transform:uppercase}.section-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:12px}.section-title{font-size:13px;color:var(--ink-faint);letter-spacing:.1em;text-transform:uppercase;margin:0}.section-meta{font-size:12px;color:var(--ink-faint);font-variant-numeric:tabular-nums}.setup{max-width:480px;margin:60px auto;padding:32px 24px;text-align:left}.setup h1{font-family:var(--font-serif);font-size:36px;font-weight:500;margin:16px 0 8px;line-height:1.1;letter-spacing:-.02em}.setup p{color:var(--ink-dim);font-size:15px;line-height:1.5}.setup .field{margin-top:20px;display:flex;flex-direction:column;gap:6px}.setup label{font-size:12px;color:var(--ink-faint);letter-spacing:.08em;text-transform:uppercase}.setup .actions{margin-top:32px;display:flex;gap:8px}.setup .btn-primary{background:var(--accent);color:#1a1525;padding:14px 24px;border-radius:999px;font-weight:500;font-size:15px;flex:1}.setup .btn-primary:disabled{opacity:.4;cursor:default}.splash{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:var(--bg);z-index:10}.splash-mark{width:80px;height:80px;opacity:0;animation:splash-in .8s cubic-bezier(.25,1,.5,1) .2s forwards}@keyframes splash-in{to{opacity:1;transform:scale(1)}}.center{text-align:center}.muted{color:var(--ink-faint)}hr{border:0;border-top:1px solid var(--rule);margin:16px 0}.tag{display:inline-block;font-size:11px;letter-spacing:.06em;text-transform:uppercase;padding:4px 10px;border-radius:999px;background:var(--bg-3);color:var(--ink-dim)}.tag.green{color:var(--green)}.tag.amber{color:var(--amber)}.tag.red{color:var(--red)}.footer{padding:24px;display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-faint);flex-wrap:wrap}.footer a{color:var(--ink-faint)}.footer a:hover{color:var(--ink-dim);text-decoration:none}.footer-sep{opacity:.5}.feedback-btn{display:flex;align-items:center;gap:4px;color:var(--ink-faint);font-size:13px;min-height:32px;padding:7px 8px;border-radius:6px;transition:color .15s}.feedback-btn:hover{color:var(--ink-dim)}.feedback-btn svg{width:14px;height:14px}.feedback-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:flex-end;justify-content:center;z-index:9999;animation:fadeIn .15s ease}.feedback-sheet{background:var(--bg-2);border:1px solid var(--rule);border-radius:18px 18px 0 0;padding:24px 24px calc(24px + env(safe-area-inset-bottom,0px));width:90%;max-width:420px;max-height:400px;display:flex;flex-direction:column;gap:14px;position:relative;box-shadow:var(--shadow-lg);animation:slideUp .2s ease}.feedback-close{position:absolute;top:16px;right:16px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:50%;color:var(--ink-faint);transition:background .15s,color .15s}.feedback-close svg{width:14px;height:14px}.feedback-close:hover{background:var(--bg-3);color:var(--ink)}.feedback-title{font-size:16px;font-weight:600;color:var(--ink);margin:0;padding-right:32px}.feedback-textarea{width:100%;min-height:100px;max-height:220px;resize:vertical;background:var(--bg-3);border:1px solid var(--rule);border-radius:12px;color:var(--ink);font-size:14px;line-height:1.5;padding:12px 14px;outline:none;font-family:var(--font-sans)}.feedback-textarea:focus{border-color:var(--accent)}.feedback-actions{display:flex;gap:8px;flex-wrap:wrap}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(20px)}to{transform:translateY(0)}}.footer-meta{margin-left:auto;font-variant-numeric:tabular-nums}.install-hint{display:flex;align-items:center;gap:10px;background:color-mix(in srgb,var(--accent) 12%,var(--bg-2));border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);border-radius:12px;padding:10px 12px;font-size:13px;color:var(--ink-dim);line-height:1.4}.install-hint-icon{width:18px;height:18px;flex-shrink:0;color:var(--accent)}.install-hint-text{flex:1}.install-hint-close{width:24px;height:24px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:6px;color:var(--ink-faint);transition:color .15s ease}.install-hint-close:hover{color:var(--ink-dim)}.install-hint-close svg{width:14px;height:14px}.install-hint-action{flex-shrink:0;font-size:12px;font-weight:600;padding:6px 12px;border-radius:999px;background:var(--accent);color:#1a1525;transition:background .15s ease}.install-hint-action:hover{background:var(--accent-soft)}.teaser{background:var(--bg-2);border:1px solid var(--rule);border-radius:var(--radius);padding:16px 18px;font-size:14px;line-height:1.5;color:var(--ink-dim)}.teaser-text:before{content:"✦";color:var(--accent);margin-right:8px;font-size:12px}.paywall{display:flex;flex-direction:column;gap:24px}.card-frozen{position:relative;overflow:hidden}.card-fade{position:absolute;left:0;right:0;bottom:0;height:70%;background:linear-gradient(180deg,transparent 0%,var(--bg-2) 60%,var(--bg) 100%);pointer-events:none;border-radius:0 0 var(--radius) var(--radius)}.paywall-pitch{background:var(--bg-2);border:1px solid var(--rule);border-radius:var(--radius);padding:28px 24px;display:flex;flex-direction:column;gap:16px;box-shadow:var(--shadow-lg)}.paywall-eyebrow{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}.paywall-headline{font-family:var(--font-serif);font-size:22px;line-height:1.3;font-weight:500;margin:0;letter-spacing:-.01em}.paywall-sub{font-size:15px;line-height:1.55;color:var(--ink-dim);margin:0}.price-cards{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:8px}.price-card{background:var(--bg-3);border:1px solid var(--rule);border-radius:16px;padding:18px 16px;text-align:left;color:var(--ink);transition:all .15s ease;display:flex;flex-direction:column;gap:4px}.price-card:hover{border-color:var(--ink-faint);transform:translateY(-1px)}.price-card-primary{background:var(--accent);border-color:var(--accent);color:#1a1525}.price-card-primary:hover{background:var(--accent-soft);border-color:var(--accent-soft)}.price-card-tier{font-size:12px;letter-spacing:.08em;text-transform:uppercase;opacity:.8}.price-card-amount{font-family:var(--font-serif);font-size:32px;font-weight:500;letter-spacing:-.01em;margin-top:2px}.price-card-period{font-size:12px;opacity:.7}.price-card-best{font-size:11px;letter-spacing:.06em;text-transform:uppercase;font-weight:600;margin-top:6px}.paywall-trial{font-size:13px;color:var(--ink-dim);margin:4px 0 0;text-align:center}.paywall-fine{font-size:11px;line-height:1.5;color:var(--ink-faint);text-align:center;margin-top:4px}.paywall-dev{margin-top:8px;padding:12px;background:var(--bg-3);border:1px dashed var(--ink-faint);border-radius:12px;text-align:center}.paywall-dev-label{font-size:11px;color:var(--ink-faint);letter-spacing:.04em;text-transform:uppercase;margin-bottom:8px}.paywall-dev-btn{background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:999px;font-size:13px;font-weight:500}.legal{max-width:640px;margin:0 auto;padding:32px 24px 64px;color:var(--ink)}.legal-back{display:inline-block;font-size:13px;color:var(--ink-dim);margin-bottom:24px;text-decoration:none}.legal-back:hover{color:var(--ink)}.legal h1{font-family:var(--font-serif);font-size:32px;font-weight:500;margin:0 0 8px;letter-spacing:-.01em}.legal h2{font-family:var(--font-serif);font-size:20px;font-weight:500;margin:32px 0 8px;letter-spacing:-.01em}.legal-updated{font-size:12px;color:var(--ink-faint);letter-spacing:.04em;text-transform:uppercase;margin:0 0 24px}.legal p,.legal li{font-size:15px;line-height:1.6;color:var(--ink-dim)}.legal ol,.legal ul{padding-left:20px;margin:8px 0 16px}.legal li{margin-bottom:6px}.setup-fine{margin-top:32px;font-size:12px;line-height:1.5;color:var(--ink-faint)}.setup-fine a{color:var(--ink-dim)}.sync-indicator{display:inline-flex;align-items:center;gap:6px;margin-left:10px;font-size:11px;letter-spacing:.04em;color:var(--ink-dim);padding:3px 10px;border-radius:999px;background:var(--bg-2);border:1px solid var(--rule);max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sync-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 6px var(--green);flex-shrink:0}.pair-panel{background:var(--bg-2);border:1px solid var(--rule);border-radius:var(--radius);padding:22px 22px 18px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;gap:14px}.pair-header{display:flex;align-items:center;gap:8px}.pair-title{font-family:var(--font-serif);font-size:18px;font-weight:500;margin:0;flex:1;letter-spacing:-.01em}.pair-back,.pair-close{background:transparent;border:0;color:var(--ink-dim);font-size:20px;line-height:1;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;flex-shrink:0;transition:all .15s ease}.pair-back{font-size:18px}.pair-back:hover,.pair-close:hover{background:var(--bg-3);color:var(--ink)}.pair-body{font-size:14px;line-height:1.5;color:var(--ink-dim);margin:0}.pair-empty{font-size:13px;line-height:1.5;color:var(--ink-faint);text-align:center;padding:20px 8px}.pair-empty code{display:inline-block;margin:0 2px;padding:1px 6px;background:var(--bg-3);border-radius:4px;font-size:11px;color:var(--accent)}.pair-error{background:#d97a6c26;border:1px solid rgba(217,122,108,.4);color:#f5b8af;padding:10px 12px;border-radius:10px;font-size:13px;line-height:1.4}.pair-actions{display:flex;flex-direction:column;gap:8px}.pair-action{text-align:left;background:var(--bg-3);border:1px solid var(--rule);border-radius:12px;padding:14px 16px;color:var(--ink);transition:all .15s ease;display:flex;flex-direction:column;gap:4px}.pair-action:hover{border-color:var(--accent);background:var(--bg);transform:translateY(-1px)}.pair-action-title{font-size:15px;font-weight:500}.pair-action-sub{font-size:12px;color:var(--ink-faint)}.pair-cta{width:100%;padding:14px 20px;font-size:15px;text-align:center;margin-top:4px}.pair-cta:disabled{opacity:.5;cursor:default}.pair-input-row{display:flex;gap:8px;align-items:stretch}.pair-input{flex:1;font:inherit;background:var(--bg-3);border:1px solid var(--rule);border-radius:10px;color:var(--ink);padding:12px 14px;outline:none}.pair-input:focus{border-color:var(--accent)}.pair-code-input{font-family:SF Mono,Menlo,monospace;font-size:22px;text-align:center;letter-spacing:.3em;font-weight:500}.pair-status{background:var(--bg-3);border:1px solid var(--rule);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:8px}.pair-status-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:13px}.pair-status-label{color:var(--ink-faint);letter-spacing:.04em;text-transform:uppercase;font-size:11px}.pair-status-value{color:var(--ink);font-weight:500;text-align:right;flex:1}.pair-code{font-family:SF Mono,Menlo,monospace;font-size:16px;letter-spacing:.2em;color:var(--accent)}.pair-section{display:flex;flex-direction:column;gap:8px}.pair-label{font-size:11px;color:var(--ink-faint);letter-spacing:.08em;text-transform:uppercase}.pair-hint{font-size:12px;color:var(--ink-faint);line-height:1.4;font-style:italic}.pair-divider{height:1px;background:var(--rule);margin:4px -4px}.pair-unpair{background:transparent;border:0;color:var(--ink-faint);font-size:13px;padding:8px;text-align:center;text-decoration:underline;text-underline-offset:2px}.pair-unpair:hover{color:var(--red)}.pair-invite-btn{display:inline-flex;align-items:center;gap:6px;font-size:14px;padding:8px 14px;cursor:pointer}.pair-invite-help-icon{display:inline-flex;align-items:center;color:var(--ink-faint);cursor:help}.trends{background:var(--bg-2);border:1px solid var(--rule);border-radius:var(--radius);padding:18px 20px}.trends-chart-wrap{display:flex;justify-content:center;margin:4px 0 12px}.trends-chart{width:100%;max-width:360px;height:auto}.trends-stats{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;padding-top:12px;border-top:1px solid var(--rule)}.trends-stat{text-align:center}.trends-stat-value{font-family:var(--font-serif);font-size:22px;font-weight:500;color:var(--ink);letter-spacing:-.01em;line-height:1.1;font-variant-numeric:tabular-nums}.trends-stat-label{font-size:11px;color:var(--ink-faint);letter-spacing:.04em;text-transform:uppercase;margin-top:4px}.trends-empty .section-head{margin-bottom:0}.trends-empty-card{background:var(--bg-2);border:1px solid var(--rule);border-radius:var(--radius);padding:20px 22px;display:flex;align-items:center;gap:16px}.trends-empty-icon{width:36px;height:36px;color:var(--ink-faint);flex-shrink:0}.trends-empty-text{flex:1;min-width:0}.trends-empty-headline{margin:0 0 4px;font-family:var(--font-serif);font-size:17px;color:var(--ink);font-weight:500;letter-spacing:-.005em}.trends-empty-sub{margin:0;font-size:13px;color:var(--ink-dim);line-height:1.45}.trends-empty-sub strong{color:var(--ink);font-weight:600}.trends-empty-cta{flex-shrink:0;font-size:12px;font-weight:500;padding:7px 12px;border-radius:999px;background:transparent;color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);transition:background .15s ease,color .15s ease}.trends-empty-cta:hover{background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--ink)}.trends-bar{cursor:pointer;transition:opacity .15s ease}.trends-bar:hover rect{filter:brightness(1.15)}.trends-bar:focus{outline:none}.trends-bar:focus-visible rect:first-child{stroke:var(--accent);stroke-width:1.5;stroke-dasharray:2 2}.history-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:flex-end;justify-content:center;z-index:9999;animation:fadeIn .15s ease;padding:16px}.history-sheet{background:var(--bg-2);border:1px solid var(--rule);border-radius:var(--radius);width:100%;max-width:420px;padding:28px 24px 24px;position:relative;box-shadow:var(--shadow-lg);animation:slideUp .2s ease-out}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.history-close{position:absolute;top:12px;right:12px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;color:var(--ink-faint);border-radius:8px;transition:color .15s}.history-close:hover{color:var(--ink)}.history-close svg{width:14px;height:14px}.history-eyebrow{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);margin:0 0 6px}.history-title{font-family:var(--font-serif);font-size:24px;font-weight:500;color:var(--ink);margin:0 0 20px;letter-spacing:-.01em}.history-summary{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:14px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);margin-bottom:16px}.history-stat{text-align:center}.history-stat-value{font-family:var(--font-serif);font-size:22px;font-weight:500;color:var(--ink);font-variant-numeric:tabular-nums;line-height:1.1}.history-stat-label{font-size:11px;color:var(--ink-faint);letter-spacing:.04em;text-transform:uppercase;margin-top:4px}.history-empty{text-align:center;color:var(--ink-faint);font-size:14px;padding:12px 0 4px;margin:0}.history-timeline{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:14px}.history-nap{display:flex;align-items:center;gap:14px;padding:10px 12px;background:var(--bg-3);border-radius:12px;border:1px solid var(--rule)}.history-nap-bullet{width:10px;height:10px;border-radius:50%;background:var(--accent);flex-shrink:0}.history-nap-body{flex:1;min-width:0}.history-nap-time{font-size:15px;color:var(--ink);font-weight:500;font-variant-numeric:tabular-nums}.history-nap-duration{font-size:12px;color:var(--ink-faint);margin-top:2px;font-variant-numeric:tabular-nums}
