:root{--bg:#0f0f14;--bg-elevated:#15151b;--panel:#1a1a22;--panel-2:#23232d;--panel-3:#2b2b37;--border:#33333f;--border-soft:#292933;--text:#f0f0f2;--muted:#9696a3;--muted-2:#6f6f7d;--accent:#c9873f;--accent-strong:#e0a460;--accent-ink:#201406;--accent-2:#8b6fd9;--bg-glow:#17171f;--danger:#e0574f;--danger-ink:#2a0d0b;--good:#52b787;--good-ink:#0a1f15;--radius-sm:8px;--radius:14px;--radius-lg:20px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--shadow-card:0 1px 2px #0000004d, 0 8px 24px -12px #00000080;--shadow-raised:0 4px 12px #00000059, 0 16px 40px -16px #0009;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);-webkit-tap-highlight-color:transparent}body{background:radial-gradient(120% 100% at 50% 0%, var(--bg-glow) 0%, var(--bg) 55%);min-height:100vh}::selection{background:color-mix(in srgb, var(--accent) 35%, transparent)}.login-screen{flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:100vh;padding:24px;display:flex}.login-card{background:linear-gradient(180deg, var(--panel-2), var(--panel));border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:360px;box-shadow:var(--shadow-raised);flex-direction:column;gap:14px;padding:32px 28px;display:flex}.login-card h1{text-align:center;letter-spacing:.02em;margin:0 0 4px;font-size:22px;font-weight:700}.login-mark{background:linear-gradient(145deg, var(--accent-strong), var(--accent));width:52px;height:52px;color:var(--accent-ink);box-shadow:0 6px 20px -6px color-mix(in srgb, var(--accent) 60%, transparent);border-radius:16px;justify-content:center;align-items:center;margin:0 auto 4px;display:flex}input,textarea,select,button{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--panel-2);color:var(--text);padding:11px 13px;font-family:inherit;font-size:15px;transition:border-color .15s,background .15s,transform .1s}textarea{resize:vertical;min-height:64px}input::placeholder,textarea::placeholder{color:var(--muted-2)}input:focus,textarea:focus,select:focus{border-color:var(--accent);background:var(--panel-3);outline:none}input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent);cursor:pointer;padding:0}button{cursor:pointer;border-color:var(--border);font-size:14px;font-weight:600}button:hover{border-color:var(--muted-2)}button:active{transform:scale(.98)}button:disabled{opacity:.45;cursor:not-allowed;transform:none}button.primary{background:linear-gradient(180deg, var(--accent-strong), var(--accent));color:var(--accent-ink);box-shadow:0 2px 8px -2px color-mix(in srgb, var(--accent) 55%, transparent);border-color:#0000}button.primary:hover{filter:brightness(1.06);border-color:#0000}button.ghost{border-color:var(--border);color:var(--text);background:0 0}button.danger{border-color:color-mix(in srgb, var(--danger) 55%, var(--border));color:var(--danger);background:0 0}button.danger:hover{background:color-mix(in srgb, var(--danger) 12%, transparent);border-color:var(--danger)}button.icon-btn{color:var(--muted);background:var(--panel-2);border-radius:999px;justify-content:center;align-items:center;padding:9px;display:inline-flex}button.icon-btn.primary{background:linear-gradient(180deg, var(--accent-strong), var(--accent));color:var(--accent-ink);border-color:#0000}button.icon-btn:hover{color:var(--text);border-color:var(--muted-2)}.error-text{color:var(--danger);font-size:13px}.app{max-width:640px;min-height:100dvh;padding-bottom:calc(74px + env(safe-area-inset-bottom));flex-direction:column;margin:0 auto;display:flex}header.topbar{background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:20;border-bottom:1px solid var(--border-soft);justify-content:space-between;align-items:center;gap:10px;padding:14px 16px;display:flex;position:sticky;top:0}header.topbar .brand{align-items:center;gap:10px;display:flex}header.topbar .brand-mark{background:linear-gradient(145deg, var(--accent-strong), var(--accent));width:30px;height:30px;color:var(--accent-ink);border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;display:flex}header.topbar .who{flex-direction:column;line-height:1.25;display:flex}header.topbar .who strong{font-size:14px;font-weight:700}header.topbar .who span{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:11px}header.topbar .actions{gap:6px;display:flex}.pairing-switcher{scrollbar-width:none;gap:8px;padding:10px 16px 0;display:flex;overflow-x:auto}.pairing-switcher::-webkit-scrollbar{display:none}.pairing-pill{border:1px solid var(--border);background:var(--panel-2);color:var(--muted);white-space:nowrap;border-radius:999px;flex-shrink:0;padding:8px 16px;font-size:13px;font-weight:600}.pairing-pill.active{background:color-mix(in srgb, var(--accent) 18%, var(--panel-2));border-color:color-mix(in srgb, var(--accent) 55%, transparent);color:var(--accent-strong)}main.content{flex-direction:column;flex:1;gap:14px;padding:16px 16px 32px;display:flex}.page-title{letter-spacing:-.01em;margin:4px 2px 0;font-size:20px;font-weight:700}nav.bottom-nav{z-index:30;background:color-mix(in srgb, var(--bg-elevated) 92%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--border-soft);max-width:640px;padding:6px 6px calc(6px + env(safe-area-inset-bottom));backface-visibility:hidden;margin:0 auto;display:flex;position:fixed;bottom:0;left:0;right:0;transform:translateZ(0)}nav.bottom-nav button{color:var(--muted);border-radius:var(--radius-sm);background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:3px;padding:8px 4px 6px;font-size:11px;font-weight:600;display:flex}nav.bottom-nav button.active{color:var(--accent-strong)}nav.bottom-nav button:active{background:var(--panel-2);transform:none}.sheet-backdrop{z-index:40;background:#0000008c;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--bg-elevated);border:1px solid var(--border-soft);border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;max-width:640px;max-height:82vh;padding:8px 8px calc(20px + env(safe-area-inset-bottom));box-shadow:var(--shadow-raised);border-bottom:none;overflow-y:auto}.sheet-handle{background:var(--border);border-radius:999px;width:40px;height:4px;margin:8px auto 12px}.sheet-item{border-radius:var(--radius-sm);width:100%;color:var(--text);text-align:left;background:0 0;border:none;align-items:center;gap:12px;padding:13px 12px;font-size:15px;font-weight:600;display:flex}.sheet-item:hover{background:var(--panel-2)}.sheet-item .icon-chip{background:var(--panel-2);width:34px;height:34px;color:var(--muted);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.sheet-item .sheet-item-label{flex:1}.sheet-item .chev{color:var(--muted-2)}.sheet-section-title{text-transform:uppercase;letter-spacing:.08em;color:var(--muted-2);padding:14px 12px 4px;font-size:11px}.card{background:linear-gradient(180deg, var(--panel-2), var(--panel));border:1px solid var(--border-soft);border-radius:var(--radius);box-shadow:var(--shadow-card);flex-direction:column;gap:9px;padding:16px;display:flex}.card.inactive{opacity:.55}.card.flat{background:var(--panel-2);box-shadow:none}.card-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.card h3{letter-spacing:-.005em;margin:0;font-size:15px;font-weight:700}.muted{color:var(--muted);font-size:13px}.muted.timestamp{font-size:11.5px}.tag{text-transform:uppercase;letter-spacing:.05em;border:1px solid var(--border);color:var(--muted);border-radius:999px;padding:3px 9px;font-size:10.5px;font-weight:700}.tag.reward{border-color:color-mix(in srgb, var(--good) 55%, transparent);color:var(--good);background:color-mix(in srgb, var(--good) 12%, transparent)}.tag.punishment{border-color:color-mix(in srgb, var(--danger) 55%, transparent);color:var(--danger);background:color-mix(in srgb, var(--danger) 12%, transparent)}.tag.hard{border-color:color-mix(in srgb, var(--danger) 55%, transparent);color:var(--danger)}.tag.soft{border-color:color-mix(in srgb, var(--accent-2) 55%, transparent);color:var(--accent-2)}.tag.danger{border-color:color-mix(in srgb, var(--danger) 55%, transparent);color:var(--danger);background:color-mix(in srgb, var(--danger) 12%, transparent)}.tag.yellow,.tag.pending{color:#d1a13a;background:#d1a13a1f;border-color:#d1a13a8c}.tag.completed{border-color:color-mix(in srgb, var(--good) 55%, transparent);color:var(--good);background:color-mix(in srgb, var(--good) 12%, transparent)}.btn-row{flex-wrap:wrap;gap:8px;display:flex}form.inline-form{flex-direction:column;gap:10px;display:flex}form.inline-form .fields{flex-wrap:wrap;gap:8px;display:flex}form.inline-form .fields>*{flex:1;min-width:120px}.field-label{flex-direction:column;gap:4px;display:flex}.field-label>span{font-size:11.5px;font-weight:600}.section-title{text-transform:uppercase;letter-spacing:.08em;color:var(--muted-2);margin:8px 2px -2px;font-size:11.5px;font-weight:700}.chastity-hero{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:30px 20px 26px;display:flex;position:relative;overflow:hidden}.chastity-hero:before{content:"";background:radial-gradient(closest-side, color-mix(in srgb, var(--accent) 16%, transparent), transparent 70%);pointer-events:none;height:160%;position:absolute;inset:-40% -10% auto}.chastity-hero>*{position:relative}.chastity-hero .status-icon{background:color-mix(in srgb, var(--accent) 16%, var(--panel-2));width:52px;height:52px;color:var(--accent-strong);border-radius:999px;justify-content:center;align-items:center;display:flex}.chastity-hero .status{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:13px;font-weight:700}.chastity-hero .timer{font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-size:42px;font-weight:800}.mini-countdown{color:var(--accent,var(--muted));font-variant-numeric:tabular-nums;font-size:12px;font-weight:700}.safeword-btn{background:linear-gradient(180deg, #eb6a62, var(--danger));color:#fff;border-radius:var(--radius);letter-spacing:.02em;box-shadow:0 8px 24px -8px color-mix(in srgb, var(--danger) 70%, transparent);border:none;flex:1;justify-content:center;align-items:center;gap:10px;padding:20px;font-size:17px;font-weight:800;display:flex}.safeword-btn.safeword-yellow{background:linear-gradient(#e8bd63,#d1a13a);padding:16px;font-size:15px;box-shadow:0 8px 24px -8px #d1a13ab3}.chat-presence{align-items:center;gap:7px;padding:2px;display:flex}.presence-dot{background:var(--border);border-radius:50%;flex-shrink:0;width:8px;height:8px}.presence-dot.active{background:#2fb344;box-shadow:0 0 6px 1px #2fb34499}.presence-dot.away{background:#d1a13a;box-shadow:0 0 6px 1px #d1a13a8c}.presence-dot.offline{background:#e5484d}.chat-scroll{gap:10px;max-height:60vh;overflow-y:auto}.chat-bubble{border-radius:16px;max-width:80%;padding:9px 13px}.chat-bubble.mine{background:linear-gradient(180deg, var(--accent-strong), var(--accent));color:var(--accent-ink);border-bottom-right-radius:5px;align-self:flex-end}.chat-bubble.theirs{background:var(--panel-3);border-bottom-left-radius:5px;align-self:flex-start}.chat-bubble .sender{opacity:.75;margin-bottom:2px;font-size:11px;font-weight:700}.chat-bubble .meta{opacity:.65;align-items:center;gap:6px;margin-top:3px;font-size:10px;display:flex}.chat-bubble .read-receipt{margin-left:auto}.typing-bubble{background:var(--panel-3);border-radius:16px 16px 16px 5px;align-self:flex-start;gap:4px;padding:11px 14px;display:inline-flex}.typing-bubble span{opacity:.5;background:currentColor;border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite typing-bounce}.typing-bubble span:nth-child(2){animation-delay:.15s}.typing-bubble span:nth-child(3){animation-delay:.3s}@keyframes typing-bounce{0%,60%,to{opacity:.4;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}.react-btn{color:currentColor;opacity:.55;background:0 0;border:none;justify-content:center;align-items:center;margin:-8px;padding:10px;display:inline-flex;position:relative}.react-btn.active{opacity:1;color:#e5484d}.react-btn .react-dot{background:var(--accent-strong);border-radius:50%;width:6px;height:6px;position:absolute;top:-2px;right:-2px}.journal-entry .react-btn{margin-top:4px}.journal-entry{border-bottom:1px solid var(--border-soft);padding-bottom:12px}.journal-entry:last-child{border-bottom:none;padding-bottom:0}.journal-meta{color:var(--muted);justify-content:space-between;margin-bottom:3px;font-size:12px;display:flex}.empty-state{color:var(--muted);text-align:center;flex-direction:column;align-items:center;gap:10px;padding:32px 16px;font-size:14px;display:flex}.empty-state .icon-chip{background:var(--panel-2);width:44px;height:44px;color:var(--muted-2);border-radius:999px;justify-content:center;align-items:center;display:flex}.skeleton{border-radius:var(--radius);background:linear-gradient(90deg, var(--panel-2) 25%, var(--panel-3) 37%, var(--panel-2) 63%);background-size:400% 100%;min-height:64px;animation:1.4s infinite skeleton-shine}@keyframes skeleton-shine{0%{background-position:100%}to{background-position:0%}}.praise-note{color:var(--accent-strong);align-items:center;gap:6px;font-size:13px;display:flex}.stat-row{gap:10px;display:flex}.stat-tile{background:var(--panel-2);border:1px solid var(--border-soft);border-radius:var(--radius-sm);text-align:center;flex:1;padding:10px 12px}.stat-tile .num{font-variant-numeric:tabular-nums;font-size:20px;font-weight:800}.stat-tile .label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:10.5px}.check-row{color:var(--muted);cursor:pointer;align-items:flex-start;gap:10px;font-size:13px;line-height:1.4;display:flex}.check-row input[type=checkbox]{flex-shrink:0;margin-top:1px}.check-row a,.muted a{color:var(--accent-strong)}button.link-btn{color:var(--accent-strong);font-size:inherit;background:0 0;border:none;padding:0;font-weight:600;text-decoration:underline}.lp{scroll-behavior:smooth;max-width:1040px;margin:0 auto;padding:0 20px 40px}.lp h1,.lp h2,.lp h3,.lp p{margin:0}.lp-nav{justify-content:space-between;align-items:center;padding:18px 0;display:flex}.lp-brand{color:var(--text);letter-spacing:.01em;align-items:center;gap:10px;font-size:18px;font-weight:800;text-decoration:none;display:flex}.lp-brand .brand-mark{background:linear-gradient(145deg, var(--accent-strong), var(--accent));width:30px;height:30px;color:var(--accent-ink);border-radius:9px;justify-content:center;align-items:center;display:flex}.lp-nav-links{align-items:center;gap:20px;font-size:14px;display:flex}.lp-nav-links a{color:var(--muted);font-weight:600;text-decoration:none}.lp-nav-links a:hover{color:var(--text)}.lp-nav-links a.lp-signin{color:var(--text);border:1px solid var(--border);border-radius:999px;padding:8px 16px}.lp-btn{border:1px solid var(--border);color:var(--text);text-align:center;border-radius:999px;padding:14px 24px;font-size:15px;font-weight:700;text-decoration:none;display:inline-block}.lp-btn.primary{background:linear-gradient(180deg, var(--accent-strong), var(--accent));color:var(--accent-ink);box-shadow:0 6px 22px -8px color-mix(in srgb, var(--accent) 70%, transparent);border-color:#0000}.lp-btn.primary.disabled{opacity:.6;pointer-events:none}.lp-btn.ghost:hover{border-color:var(--muted-2)}.lp-hero{grid-template-columns:1.1fr .9fr;align-items:center;gap:40px;padding:48px 0 56px;display:grid}.lp-hero-copy{flex-direction:column;align-items:flex-start;gap:18px;display:flex}.lp-hero h1{letter-spacing:-.02em;font-size:clamp(32px,5vw,50px);font-weight:800;line-height:1.08}.lp-hero p{color:var(--muted);max-width:540px;font-size:17px;line-height:1.55}.lp-cta-row{flex-wrap:wrap;gap:12px;display:flex}.lp-mock{flex-direction:column;gap:12px;display:flex}.lp-mock-card{background:linear-gradient(180deg, var(--panel-2), var(--panel));border:1px solid var(--border-soft);border-radius:var(--radius-lg);text-align:center;box-shadow:var(--shadow-raised);flex-direction:column;align-items:center;gap:10px;padding:32px 20px;display:flex;position:relative;overflow:hidden}.lp-mock-card:before{content:"";background:radial-gradient(closest-side, color-mix(in srgb, var(--accent) 18%, transparent), transparent 70%);height:160%;position:absolute;inset:-40% -10% auto}.lp-mock-card>*{position:relative}.lp-mock-card .status-icon{background:color-mix(in srgb, var(--accent) 16%, var(--panel-2));width:52px;height:52px;color:var(--accent-strong);border-radius:999px;justify-content:center;align-items:center;display:flex}.lp-mock-status{color:var(--muted);text-transform:uppercase;letter-spacing:.07em;font-size:12px;font-weight:700}.lp-mock-timer{font-variant-numeric:tabular-nums;font-size:40px;font-weight:800}.lp-mock-meta{color:var(--muted);font-size:13px}.lp-mock-row{flex-wrap:wrap;gap:10px;display:flex}.lp-mock-pill{background:var(--panel-2);border:1px solid var(--border-soft);color:var(--muted);border-radius:999px;align-items:center;gap:8px;padding:10px 14px;font-size:13px;display:inline-flex}.lp-section{padding:56px 0 8px}.lp-section h2{letter-spacing:-.015em;text-align:center;font-size:clamp(24px,3.4vw,34px);font-weight:800}.lp-lead{color:var(--muted);text-align:center;max-width:620px;margin:12px auto 0;line-height:1.55}.lp-grid{grid-template-columns:repeat(auto-fit,minmax(min(330px,100%),1fr));gap:14px;max-width:880px;margin:32px auto 0;display:grid}.lp-feature{background:linear-gradient(180deg, var(--panel-2), var(--panel));border:1px solid var(--border-soft);border-radius:var(--radius);box-shadow:var(--shadow-card);flex-direction:column;gap:10px;padding:20px;display:flex}.lp-feature h3{font-size:16px;font-weight:700}.lp-feature p{color:var(--muted);font-size:14px;line-height:1.55}.lp .icon-chip{background:color-mix(in srgb, var(--accent) 14%, var(--panel-2));width:40px;height:40px;color:var(--accent-strong);border-radius:12px;justify-content:center;align-items:center;display:flex}.lp-steps{grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr));gap:14px;margin-top:32px;display:grid}.lp-step{flex-direction:column;gap:8px;padding:8px 6px;display:flex}.lp-step-n{border:1px solid color-mix(in srgb, var(--accent) 55%, transparent);width:34px;height:34px;color:var(--accent-strong);border-radius:999px;justify-content:center;align-items:center;font-weight:800;display:flex}.lp-step h3{font-size:17px}.lp-step p{color:var(--muted);font-size:14px;line-height:1.55}.lp-privacy{background:linear-gradient(180deg, var(--panel-2), var(--panel));border:1px solid var(--border-soft);border-radius:var(--radius-lg);flex-direction:column;align-items:center;gap:16px;margin-top:56px;padding:36px 24px;display:flex}.lp-privacy ul{grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:12px 28px;width:100%;max-width:860px;margin:4px 0 0;padding:0;list-style:none;display:grid}.lp-privacy li{color:var(--muted);padding-left:16px;font-size:14px;line-height:1.5;position:relative}.lp-privacy li:before{content:"";background:var(--accent);border-radius:999px;width:6px;height:6px;position:absolute;top:8px;left:0}.lp-pricing{flex-direction:column;align-items:center;gap:8px;padding-bottom:8px;display:flex}.lp-pricing .lp-btn{margin-top:20px}.lp-faq{flex-direction:column;gap:10px;max-width:720px;margin:28px auto 0;display:flex}.lp-faq details{background:var(--panel);border:1px solid var(--border-soft);border-radius:var(--radius-sm);padding:4px 16px}.lp-faq summary{cursor:pointer;padding:12px 0;font-weight:600;list-style:none}.lp-faq summary::-webkit-details-marker{display:none}.lp-faq details p{color:var(--muted);padding:0 0 14px;font-size:14px;line-height:1.55}.lp-footer{border-top:1px solid var(--border-soft);color:var(--muted-2);flex-direction:column;gap:12px;margin-top:64px;padding-top:24px;font-size:13px;line-height:1.5;display:flex}.lp-footer-links{gap:18px;display:flex}.lp-footer-links a{color:var(--muted)}@media (width<=760px){.lp-hero{grid-template-columns:1fr;padding-top:24px}.lp-nav-links a:not(.lp-signin){display:none}}nav.side-nav{display:none}@media (width>=900px){.app{grid-template-columns:220px minmax(0,1fr);grid-auto-rows:min-content;align-content:start;column-gap:28px;max-width:1080px;padding-bottom:0;display:grid}.app>*{grid-column:2}.app>header.topbar{border-radius:0 0 var(--radius) var(--radius);grid-column:1/-1}.app>main.content{padding:20px 4px 48px}.app>.side-nav{flex-direction:column;grid-area:2/1/span 12;align-self:start;gap:2px;padding-top:20px;display:flex;position:sticky;top:78px}nav.side-nav button{border-radius:var(--radius-sm);width:100%;color:var(--muted);text-align:left;background:0 0;border:1px solid #0000;align-items:center;gap:12px;padding:11px 14px;font-size:14px;font-weight:600;display:flex}nav.side-nav button:hover{background:var(--panel-2);color:var(--text)}nav.side-nav button.active{background:color-mix(in srgb, var(--accent) 16%, var(--panel-2));border-color:color-mix(in srgb, var(--accent) 45%, transparent);color:var(--accent-strong)}nav.bottom-nav{display:none}}.nav-badge{color:#fff;text-align:center;box-sizing:border-box;background:#e5484d;border-radius:999px;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:700;line-height:18px}nav.bottom-nav .nav-icon{display:inline-flex;position:relative}nav.bottom-nav .nav-icon .nav-badge{box-shadow:0 0 0 2px var(--bg-elevated);position:absolute;top:-6px;left:60%}nav.side-nav .nav-badge{margin-left:auto}.sheet-item .nav-badge{margin-left:auto;margin-right:6px}.seg{background:var(--bg);border:1px solid var(--border-soft);border-radius:999px;gap:4px;padding:4px;display:flex}.seg button{color:var(--muted);background:0 0;border:none;border-radius:999px;flex:1;min-width:0;padding:8px 6px;font-size:13px;font-weight:600}.seg button.active{background:color-mix(in srgb, var(--accent) 20%, var(--panel-2));color:var(--accent-strong)}.home-card h3{align-items:center;gap:8px;margin:0;display:flex}.home-timer{letter-spacing:.02em;font-variant-numeric:tabular-nums;font-size:30px;font-weight:700}.home-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.home-list li{justify-content:space-between;gap:10px;font-size:14px;display:flex}.cover{z-index:100;color:#8b8b95;-webkit-user-select:none;user-select:none;background:#101014;flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex;position:fixed;inset:0}.cover h1{margin:0;font-size:56px;font-weight:300}.cover p{margin:0}.pin-dots{gap:12px;min-height:14px;display:flex}.pin-dots span{border:1.5px solid #6d6d78;border-radius:50%;width:13px;height:13px}.pin-dots span.on{background:#d8d8e0;border-color:#d8d8e0}.pin-msg{min-height:20px;font-size:14px}.pin-pad{grid-template-columns:repeat(3,72px);gap:14px;margin-top:8px;display:grid}.pin-pad button{color:#e6e6ee;background:#1d1d24;border:none;border-radius:50%;height:72px;padding:0;font-size:24px}.pin-pad button.ghost{color:#8b8b95;background:0 0;font-size:14px}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(min(120px,100%),1fr));gap:14px;display:grid}.stat-grid div{flex-direction:column;gap:2px;display:flex}.stat-grid strong{font-variant-numeric:tabular-nums;font-size:22px}.stat-grid .muted{font-size:12px}.check-row{border-top:1px solid var(--border-soft);flex-direction:column;gap:6px;padding:8px 0;display:flex}.check-row .seg{max-width:260px}.check-row .match-tag{border-color:var(--accent);color:var(--accent-strong);white-space:nowrap}details.help-topic{border:1px solid var(--border-soft);border-radius:var(--radius-sm);background:var(--panel-2);padding:0 12px}details.help-topic summary{cursor:pointer;padding:11px 0;font-size:14px;font-weight:600}details.help-topic p{color:var(--muted);margin:0 0 10px;font-size:13.5px;line-height:1.55}.protocol-editor .fields{gap:8px;display:flex}.protocol-editor .fields>*{flex:1;min-width:0}.protocol-row{border:1px solid var(--border-soft);border-radius:var(--radius-sm);background:var(--panel-2);flex-direction:column;gap:6px;padding:10px;display:flex;position:relative}.protocol-row .icon-btn{align-self:flex-end}.challenge-templates{flex-direction:column;display:flex}.challenge-template{border-top:1px solid var(--border-soft);justify-content:space-between;align-items:center;gap:10px;padding:10px 0;display:flex}.challenge-template:first-of-type{border-top:none}.contract-title-input{font-size:17px;font-weight:700}.sign-row{flex-wrap:wrap;gap:8px;display:flex}.sign-badge{border-radius:var(--radius-sm);border:1px solid var(--border-soft);background:var(--panel-2);min-width:140px;color:var(--muted);flex:1;padding:8px 10px;font-size:12.5px}.sign-badge.signed{border-color:color-mix(in srgb, var(--accent) 45%, transparent);color:var(--text);background:color-mix(in srgb, var(--accent) 12%, var(--panel-2))}.contract-list{flex-direction:column;gap:8px;display:flex}.contract-item{border-radius:var(--radius-sm);border:1px solid var(--border-soft);background:var(--panel-2);justify-content:space-between;align-items:flex-start;gap:10px;padding:10px 12px;font-size:13.5px;line-height:1.5;display:flex}.contract-item.drag-over{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, var(--panel-2))}.contract-item-text{flex:1}.contract-item-actions{flex-shrink:0;gap:2px;display:flex}.contract-drop-end{border:1.5px dashed var(--border);border-radius:var(--radius-sm);text-align:center;color:var(--muted-2);padding:14px;font-size:12.5px}.contract-drop-end.drag-over{border-color:var(--accent);color:var(--accent-strong);background:color-mix(in srgb, var(--accent) 8%, transparent)}.clause-chip{border-top:1px solid var(--border-soft);color:var(--muted);cursor:grab;justify-content:space-between;align-items:center;gap:10px;padding:9px 0;font-size:13px;display:flex}.clause-chip:first-of-type{border-top:none}.clause-chip span{flex:1}.contract-view-list{flex-direction:column;gap:10px;margin:0;padding-left:20px;font-size:14px;line-height:1.55;display:flex}.dialog-backdrop{z-index:90;background:#0009;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.dialog{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:420px;max-height:88vh;box-shadow:var(--shadow-raised);flex-direction:column;gap:12px;padding:18px;display:flex;overflow-y:auto}.dialog-message{white-space:pre-wrap;font-size:15px;line-height:1.5}.pick-list{flex-direction:column;gap:6px;max-height:260px;display:flex;overflow-y:auto}.pick-list button{text-align:left;flex-direction:column;gap:2px;padding:10px 12px;display:flex}.pick-list button.active{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 16%, var(--panel-2))}.pick-list .muted{font-size:12px}:root[data-theme=emerald]{--bg:#0c1110;--bg-elevated:#111817;--panel:#152020;--panel-2:#1c2928;--panel-3:#243332;--border:#2e3f3d;--border-soft:#233130;--text:#eef3f1;--muted:#93a39f;--muted-2:#6c7c78;--accent:#3f9e7c;--accent-strong:#62bc98;--accent-ink:#04150f;--good:#4aa8c0;--good-ink:#061a20;--bg-glow:#13201d}:root[data-theme=midnight]{--bg:#0d0f1a;--bg-elevated:#121525;--panel:#161a2b;--panel-2:#1e2337;--panel-3:#272d46;--border:#2a3050;--border-soft:#212640;--text:#eef0fa;--muted:#9198b8;--muted-2:#6a7194;--accent:#5b7cfa;--accent-strong:#8ea2ff;--accent-ink:#060b24;--accent-2:#d99850;--bg-glow:#161a30}:root[data-theme=wine]{--bg:#140c10;--bg-elevated:#1a0f14;--panel:#22141a;--panel-2:#2c1a22;--panel-3:#38222c;--border:#43242e;--border-soft:#331c25;--text:#f6eef0;--muted:#b39aa2;--muted-2:#87707a;--accent:#c0405a;--accent-strong:#e07088;--accent-ink:#2a0510;--accent-2:#d99850;--bg-glow:#221219}:root[data-theme=plum]{--bg:#110d18;--bg-elevated:#171122;--panel:#1b1526;--panel-2:#251d33;--panel-3:#2f2542;--border:#33294a;--border-soft:#292039;--text:#f2eefa;--muted:#a597c0;--muted-2:#7c6f98;--accent:#8b6fd9;--accent-strong:#ac96ee;--accent-ink:#150a2e;--accent-2:#d99850;--bg-glow:#1a1426}:root[data-theme=sand]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f6f1ea;--bg-elevated:#fbf7f1;--panel:#fffdf9;--panel-2:#f1eadf;--panel-3:#e8dfd1;--border:#dcd0bf;--border-soft:#e8dece;--text:#2a2118;--muted:#6f6353;--muted-2:#8f8270;--accent:#b5533c;--accent-strong:#9a4330;--accent-ink:#fff;--accent-2:#3f7d8a;--danger:#c0392b;--danger-ink:#fff;--good:#2f7d5b;--good-ink:#fff;--bg-glow:#efe6d8;--shadow-card:0 1px 2px #3c281414, 0 8px 24px -12px #3c281433;--shadow-raised:0 4px 12px #3c28141f, 0 16px 40px -16px #3c281447}.theme-grid{grid-template-columns:repeat(auto-fit,minmax(min(140px,100%),1fr));gap:8px;display:grid}.theme-option{text-align:left;align-items:center;gap:10px;padding:10px 12px;display:flex}.theme-option.active{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 16%, var(--panel-2))}.theme-swatch{border:2px solid;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.theme-swatch i{border-radius:50%;width:12px;height:12px;display:block}.wheel-wrap{justify-content:center;display:flex}.wheel-svg{filter:drop-shadow(0 6px 14px #00000059);width:min(320px,100%);height:auto;overflow:visible}.wheel-result{text-align:center;min-height:34px;color:var(--muted);font-size:20px;font-weight:700}.wheel-result.landed{color:var(--accent-strong)}.bell-dot{width:10px;height:10px;box-shadow:0 0 0 2px var(--bg);background:#e5484d;border-radius:50%;position:absolute;top:5px;right:6px}.status-strip{flex-wrap:wrap;gap:8px;display:flex}.status-light{border:1px solid var(--border);background:var(--panel-2);color:var(--muted);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:6px 11px;font-size:12px;font-weight:600;display:flex}.status-light .status-dot{background:var(--border);border-radius:50%;width:7px;height:7px}.status-light.lit{background:color-mix(in srgb, #e5484d 14%, var(--panel-2));color:var(--text);border-color:#e5484d8c}.status-light.lit .status-dot{background:#e5484d;box-shadow:0 0 6px 1px #e5484db3}.status-count{color:#fff;text-align:center;background:#e5484d;border-radius:999px;min-width:16px;padding:0 6px;font-size:10.5px;line-height:16px}.bell-panel{z-index:60;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);max-height:calc(100vh - 96px);box-shadow:var(--shadow-raised);flex-direction:column;gap:2px;padding:6px;display:flex;position:fixed;overflow-y:auto}.bell-title{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:8px 12px 4px;font-size:12px}.bell-item{text-align:left;border-radius:var(--radius-sm);background:0 0;border:none;align-items:center;gap:10px;padding:10px 12px;font-size:14px;display:flex}.bell-item:hover{background:var(--panel-2)}.bell-item-dot{background:#e5484d;border-radius:50%;flex-shrink:0;width:8px;height:8px}.progress{background:var(--panel-3);border-radius:999px;height:10px;overflow:hidden}.progress>div{background:linear-gradient(90deg, var(--accent), var(--accent-strong));border-radius:999px;height:100%}.mood-strip{grid-template-columns:repeat(30,1fr);gap:2px;display:grid}.mood-strip span{aspect-ratio:1;border-radius:3px}.heat{grid-template-columns:repeat(14,1fr);gap:3px;display:grid}.heat span{aspect-ratio:1;border-radius:3px}.bars{align-items:flex-end;gap:6px;height:100px;display:flex}.bar{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:4px;height:100%;display:flex}.bar span{background:var(--accent);border-radius:4px 4px 0 0;width:100%;min-height:2px}.bar em{color:var(--muted);font-size:11px;font-style:normal}.side-group{flex-direction:column;gap:2px;display:flex}.side-group+.side-group{margin-top:6px}nav.side-nav button.side-group-title{color:var(--muted-2);text-transform:uppercase;letter-spacing:.09em;background:0 0;border:none;align-items:center;gap:8px;padding:8px 14px 4px;font-size:11px;font-weight:700;display:flex}nav.side-nav button.side-group-title:hover{color:var(--text);background:0 0}.chev-toggle{border-bottom:2px solid;border-right:2px solid;width:7px;height:7px;margin-left:auto;transition:transform .15s;transform:rotate(-45deg)}.chev-toggle.open{transform:rotate(45deg)}@media (width>=900px){.app>.side-nav{scrollbar-width:thin;max-height:calc(100vh - 100px);overflow-y:auto}}.summary-pill{border:1px solid color-mix(in srgb, var(--accent) 60%, transparent);background:color-mix(in srgb, var(--accent) 14%, transparent);border-radius:999px;align-self:flex-start;align-items:center;display:flex;overflow:hidden}.summary-pill-main{color:var(--accent);background:0 0;border:none;padding:7px 8px 7px 14px;font-weight:700}.summary-pill-x{color:var(--accent);background:0 0;border:none;padding:7px 12px 7px 4px;font-size:18px;line-height:1}.summary-head{width:100%;color:inherit;text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;padding:0;display:flex}.summary-body{flex-direction:column;gap:12px;margin-top:10px;display:flex}.summary-section-title{margin-bottom:4px}.summary-list{margin:4px 0 0;padding-left:18px}.summary-journal{background:var(--panel-3);border-radius:10px;margin-top:6px;padding:8px 10px}.chat-download{color:inherit;font:inherit;opacity:.85;cursor:pointer;background:0 0;border:0;margin-top:4px;padding:0;font-size:.78rem;text-decoration:underline;display:inline-block}.chat-photo{background:#0000001f;border-radius:10px;min-width:160px;max-width:100%;min-height:160px;max-height:320px;margin-bottom:4px;display:block}.settings-heading{border-top:1px solid var(--border);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-top:14px;padding-top:12px;font-size:11px;font-weight:700}label.card-row{min-height:44px}label.card-row input[type=checkbox]{flex-shrink:0;width:22px;height:22px}body.keyboard-open nav.bottom-nav{display:none}.chat-compose{resize:none;flex:1;min-height:44px;max-height:140px;line-height:1.35;overflow-y:auto}.chat-text{white-space:pre-wrap;overflow-wrap:anywhere}body.keyboard-open .app{padding-bottom:0}body.keyboard-open main.content{padding-bottom:12px}.chat-root{display:contents}@media (width<=899px){.chat-root{max-width:640px;left:0;right:0;top:var(--topbar-h);height:calc(var(--vvh) - var(--topbar-h) - 74px - env(safe-area-inset-bottom));box-sizing:border-box;background:var(--bg);z-index:5;flex-direction:column;gap:10px;margin:0 auto;padding:12px 16px 10px;display:flex;position:fixed}.chat-root .chat-scroll{flex:1;min-height:0;max-height:none}body.chat-open.keyboard-open header.topbar{display:none}body.chat-open.keyboard-open .chat-root{top:var(--vvtop);height:var(--vvh)}body.chat-open{overscroll-behavior:none}}.photo-viewer{overscroll-behavior:contain;z-index:1000;padding:calc(16px + env(safe-area-inset-top)) 16px calc(16px + env(safe-area-inset-bottom));background:#000000fa;flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex;position:fixed;inset:0}.photo-viewer-stage{touch-action:none;flex:1;justify-content:center;align-items:center;width:100%;min-height:0;display:flex;overflow:hidden}.photo-viewer img{object-fit:contain;will-change:transform;border-radius:8px;max-width:100%;max-height:100%;transition:transform 80ms ease-out}.photo-viewer-bar{gap:10px;display:flex}.photo-viewer-bar button{border-radius:10px;min-width:48px;padding:10px 18px;font-size:1rem}.photo-viewer img{-webkit-touch-callout:default;-webkit-user-select:auto;user-select:auto}.rule-counter{flex-direction:column;gap:8px;padding:10px 0 4px;display:flex}.counter-form{flex-wrap:wrap;gap:8px;display:flex}.counter-form input[type=number]{flex:110px;min-width:0}.counter-form input:not([type=number]){flex:2 140px;min-width:0}.counter-bar{background:var(--panel-3);border-radius:3px;height:6px;overflow:hidden}.counter-bar span{background:var(--good);height:100%;display:block}.counter-history{flex-direction:column;gap:6px;display:flex}.counter-display{text-align:center}.counter-number{font-variant-numeric:tabular-nums;font-size:2.6rem;font-weight:700;line-height:1.1}.counter-number.met{color:var(--good)}.counter-of{color:var(--muted);font-size:1.2rem;font-weight:500}.counter-taps{gap:8px;display:flex}.counter-taps button{touch-action:manipulation;min-height:56px;font-size:1.1rem;font-weight:700}.counter-plus{flex:3}.counter-minus,.counter-quick{flex:1}.link-btn{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.wheel-edit{flex-direction:column;gap:6px;max-height:240px;padding:8px 0;display:flex;overflow-y:auto}.wheel-edit-row{align-items:center;gap:8px;display:flex}.wheel-edit-row input:not([type=checkbox]){flex:1;min-width:0}.wheel-edit-row input[type=checkbox]{flex-shrink:0;width:22px;height:22px}.measure-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.measure-grid input{box-sizing:border-box;width:100%;min-width:0}.measure-grid label{flex-direction:column;gap:4px;display:flex}.measure-latest{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.measure-tile{background:var(--panel-2);border-radius:10px;padding:10px 12px}.measure-value{font-variant-numeric:tabular-nums;font-size:1.4rem;font-weight:700}.measure-row{border-top:1px solid var(--border-soft);padding:8px 0}.trend-svg{width:100%;height:auto;display:block}.trend-label{fill:var(--muted);font-size:10px}.trend-tabs{flex-wrap:wrap;gap:6px;margin:8px 0;display:flex}.hub-bar{scrollbar-width:none;gap:6px;padding:2px 0 10px;display:flex;overflow-x:auto}.hub-bar::-webkit-scrollbar{display:none}.hub-bar .pairing-pill{flex-shrink:0;align-items:center;gap:6px;display:inline-flex}.hub-dot{background:var(--danger);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:.68rem;font-weight:700;display:inline-flex}.today-row{text-align:left;background:var(--panel-2);border:1px solid var(--border-soft);width:100%;color:inherit;border-radius:10px;align-items:flex-start;gap:10px;margin-top:8px;padding:10px 12px;display:flex}.today-row.urgent{border-color:var(--danger)}.today-kind{letter-spacing:.04em;text-transform:uppercase;min-width:78px;color:var(--muted);flex-shrink:0;padding-top:2px;font-size:.7rem;font-weight:700}.today-main{flex-direction:column;gap:2px;min-width:0;display:flex}.today-title{overflow-wrap:anywhere;font-weight:600}.progress-counter{border-top:1px solid var(--border-soft);padding:8px 0}.progress-bars{align-items:flex-end;gap:6px;height:46px;margin-top:6px;display:flex}.progress-bar{background:var(--panel-3);border-radius:3px;flex:1}.progress-bar.met{background:var(--good)}.onboarding-step{border-top:1px solid var(--border-soft);align-items:center;gap:10px;padding:8px 0;display:flex}.onboarding-step.done{opacity:.6}.onboarding-check{border:2px solid var(--border);width:22px;height:22px;color:var(--good);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.8rem;display:inline-flex}.onboarding-step.done .onboarding-check{border-color:var(--good)}.onboarding-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.toast{left:50%;bottom:calc(86px + env(safe-area-inset-bottom));z-index:900;background:var(--panel-3);max-width:min(92vw,440px);color:var(--text);border:1px solid var(--border);border-radius:12px;align-items:center;gap:14px;padding:10px 14px;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 8px 24px #0006}.toast button{color:var(--accent-strong);background:0 0;border:0;padding:4px 6px;font-weight:700}body.keyboard-open .toast{bottom:16px}header.topbar .brand{flex:auto;min-width:0}header.topbar .who{min-width:0}header.topbar .who strong,header.topbar .who span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}header.topbar .actions{flex-shrink:0}.status-light,.seg button,.hub-bar .pairing-pill,.pairing-switcher .pairing-pill{min-height:38px}a.btn{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--panel-2);color:var(--text);cursor:pointer;justify-content:center;align-items:center;min-height:44px;padding:11px 16px;font-family:inherit;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}a.btn.primary{background:linear-gradient(180deg, var(--accent-strong), var(--accent));color:var(--accent-ink);border-color:#0000}.notified-note{color:var(--danger);background:color-mix(in srgb, var(--danger) 10%, transparent);border-radius:8px;padding:8px 10px;font-size:.9rem}.late-note{color:var(--danger);font-weight:700}.ontime-note{color:var(--good);font-weight:700}
