:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#14151c;--card:#1e2029;--fg:#eceef5;--muted:#9a9fb3;--accent:#f28b4b;--accent2:#7d8cf0;--danger:#e5555c}*{box-sizing:border-box}html,body{overflow-x:hidden}body{background:var(--bg);color:var(--fg);-webkit-text-size-adjust:100%;margin:0;font:16px/1.4 -apple-system,Nunito,system-ui,sans-serif}main{max-width:560px;padding:max(12px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) calc(88px + env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));margin:0 auto}h1{margin:4px 0 12px;font-size:26px}.topbar{justify-content:space-between;align-items:center;gap:8px;margin:4px 0 12px;display:flex;position:relative}.topbar h1{white-space:nowrap;text-overflow:ellipsis;min-width:0;margin:0;overflow:hidden}.topbar .muted{font-size:13px;font-weight:500}.topbar nav{flex-shrink:0;gap:6px;display:flex}button.icon{justify-content:center;align-items:center;width:44px;height:44px;padding:0;font-size:18px;display:inline-flex;position:relative}.badge{background:var(--danger);color:#fff;text-align:center;border-radius:9px;min-width:18px;height:18px;padding:0 5px;font-size:11px;line-height:18px;position:absolute;top:-4px;right:-4px}.dropdown{z-index:60;width:min(420px,100vw - 32px);max-height:70vh;position:absolute;top:calc(100% + 6px);right:0;overflow-y:auto;box-shadow:0 12px 40px #00000080}.card,li,p{overflow-wrap:anywhere}input,select,textarea{max-width:100%}button{min-height:40px}.card{background:var(--card);border-radius:16px;margin-bottom:12px;padding:16px}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}button{background:var(--accent2);color:#fff;cursor:pointer;border:0;border-radius:999px;padding:10px 16px;font-weight:600}button.warn{background:var(--accent)}button.danger{background:var(--danger)}button:disabled{opacity:.4;cursor:default}input,select{color:var(--fg);background:#111218;border:1px solid #333;border-radius:10px;padding:8px 10px}.timer{letter-spacing:1px;font-size:40px;font-weight:800}.muted{color:var(--muted);font-size:14px}.status{text-transform:uppercase;letter-spacing:1px;color:var(--accent);font-size:12px}code{background:#111218;border-radius:6px;padding:2px 6px}button.ghost{color:var(--fg);background:0 0;border:1px solid #3a3d4d}.card.center{text-align:center}.tappable{cursor:pointer}.opt{margin:8px 0;display:block}.opt input{margin-right:8px}.history{margin:8px 0 0;padding:0;list-style:none}.history li{border-top:1px solid #2a2c37;padding:6px 0;font-size:14px}.code{letter-spacing:8px;text-align:center;font-variant-numeric:tabular-nums;margin:12px 0;font-size:48px;font-weight:800}.blurred{object-fit:cover;filter:blur(18px);border-radius:12px;width:100%;max-height:220px;margin:8px 0}.reveal{z-index:70;padding:max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));background:#000;flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow-y:auto}.reveal img{border-radius:8px;max-width:100%;max-height:80vh}.reveal .code{color:#fff;font-size:64px}input[type=time]{width:110px}.cal{grid-template-columns:repeat(7,1fr);gap:4px;margin-top:8px;display:grid}.cal-h{text-align:center;font-size:12px}.cal-d{aspect-ratio:1;background:#16171f;border-radius:8px;justify-content:center;align-items:center;font-size:14px;display:flex}.cal-d.locked{background:var(--accent);color:#111;font-weight:700}.cal-d.today{outline:2px solid var(--accent2)}.cal-d.empty{background:0 0}.ring{text-align:center;font-variant-numeric:tabular-nums;background:#111218;border-radius:999px;min-width:64px;padding:8px 10px;font-weight:700}.ring.met{background:var(--accent);color:#111}select{color:var(--fg);background:#111218;border:1px solid #333;border-radius:10px;padding:8px 10px}textarea{color:var(--fg);font:inherit;background:#111218;border:1px solid #333;border-radius:10px;padding:8px 10px}.fab{z-index:55;right:max(16px, env(safe-area-inset-right));bottom:max(16px, env(safe-area-inset-bottom));background:#3a3d4d;border-radius:26px;width:52px;height:52px;padding:0;font-size:22px;position:fixed;box-shadow:0 8px 24px #00000073}.sheet{z-index:80;background:var(--card);max-height:85vh;padding:16px max(16px, env(safe-area-inset-right)) calc(16px + env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));border-radius:18px 18px 0 0;position:fixed;bottom:0;left:0;right:0;overflow-y:auto;box-shadow:0 -12px 40px #0009}.sheet textarea{width:100%;min-height:110px}.scrim{z-index:75;background:#00000080;position:fixed;inset:0}.chips{flex-wrap:wrap;gap:6px;margin:8px 0}.chip{min-height:34px;color:var(--muted);background:0 0;border:1px solid #3a3d4d;border-radius:17px;padding:6px 12px;font-size:14px}.chip.on{color:var(--fg);background:#3a3d4d}.journal-list{margin:8px 0 0;padding:0;list-style:none}.journal-day{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:12px 0 4px;font-size:12px}.journal-row{border-bottom:1px solid #ffffff0d;gap:10px;padding:6px 0;display:flex}.journal-icon{text-align:center;flex:none;width:24px}.journal-body{flex:1;min-width:0}.journal-detail{color:var(--muted);font-size:14px}.journal-meta{color:var(--muted);margin-top:2px;font-size:12px}.src{font-weight:600}.src-keyholder{color:#e7b85c}.src-wearer{color:#7fb4ff}.src-module{color:#a98bff}.src-visitor{color:#ff8fb1}.src-system,.src-vault{color:#8fd3a8}.update{border:1px solid #e7b85c;justify-content:space-between;align-items:center;gap:10px;display:flex}.button-like{cursor:pointer;border:1px solid #3a3d4d;border-radius:10px;padding:10px 14px;display:inline-block}.banner{top:env(safe-area-inset-top,0px);z-index:40;border:1px solid var(--accent);background:#2a1f16;border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;padding:12px 14px;display:flex;position:sticky}.who{margin-bottom:4px;font-weight:600}.proposal{border:1px solid var(--accent)}.proposal .big,.card .big{margin:4px 0;font-size:19px;font-weight:700}.terms-row{justify-content:space-between;margin:6px 0}.terms-label{flex:1;min-width:0}.err{color:var(--danger)}.cal-d{cursor:pointer;position:relative}.cal-d.picked{outline:2px solid var(--accent2);outline-offset:-2px}.cal-d.noted:after{content:"";background:var(--accent);border-radius:50%;width:5px;height:5px;margin-left:-2.5px;position:absolute;bottom:3px;left:50%}.bondage{border:1px solid #3a3d4d}.bondage.late{border-color:var(--danger);box-shadow:0 0 0 2px #e5555c59}.checkin{border-radius:22px;width:100%;min-height:96px;margin:10px 0;font-size:28px;font-weight:800;display:block}
