:root,[data-theme=day]{--bg: #e8ecf0;--card: #fff;--soft: #f0f3f6;--line: #d6dce2;--ink: #13202c;--ink2: #46535f;--on-ink: #fff;--primary: var(--ink);--on-primary: #fff;--muted: #8a97a4;--ok: #1f8a4c;--okt: #166a38;--warn: #e5a400;--warnt: #7a5200;--bad: #d13b30;--badt: #a32a21;--person-family: #3d4a57;--person-blue: #2b6cb0;--person-purple: #7b4fc4;--person-amber: #b45309;--person-pink: #b8326e;--on-person: #fff;--demo: #5b3fa8;--on-demo: #fff;--s1: 4px;--s2: 8px;--s3: 12px;--s4: 16px;--s5: 20px;--s6: 24px;--r-sm: 6px;--r-md: 14px;--r-panel: 18px;--r-lg: 24px;--r-round: 999px;--t-xs: 12px;--t-sm: 13px;--t-md: 15px;--t-base: 16px;--t-lg: 18px;--t-xl: 20px;--t-2xl: 24px;--t-3xl: 28px;--t-4xl: 32px;--font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--hdr-h: 64px;--nav-h: 64px;--tabs-h: 64px;--pbar-h: 60px;--demo-h: 34px}[data-theme=night]{--bg: #0b131b;--card: #141f2a;--soft: #1b2835;--line: #263544;--ink: #c9d4de;--ink2: #8796a5;--on-ink: #0b131b;--primary: #2c4155;--on-primary: #e6ecf1;--muted: #5f6f7f;--ok: #2f8f57;--okt: #6cc28f;--warn: #c99a1c;--warnt: #e2bf5e;--bad: #c0463c;--badt: #ef8a80;--person-family: #4a5866;--person-blue: #2f5f94;--person-purple: #63469c;--person-amber: #8f4a12;--person-pink: #92305d;--on-person: #e6ecf1;--demo: #45307f;--on-demo: #e6ecf1}*{box-sizing:border-box}html,body{margin:0;height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font);font-size:var(--t-base);line-height:1.25;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button,input{font-family:inherit}.lbl{font-size:var(--t-sm);font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--ink2)}.sub{font-size:14px;font-weight:600;color:var(--ink2)}.hint{font-size:var(--t-md);font-weight:600;color:var(--ink2)}.hint.err{color:var(--badt)}.title{margin:var(--s1) 0 0;font-size:var(--t-4xl);font-weight:800;line-height:1.15}.fl{display:block;margin:var(--s4) 0 var(--s2);font-size:var(--t-sm);font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--ink2)}.input{display:block;width:100%;height:52px;padding:0 18px;border:2px solid var(--line);border-radius:var(--r-md);background:var(--card);color:var(--ink);font-size:var(--t-lg);font-weight:600;-webkit-appearance:none}.input:focus{border-color:var(--ink);outline:0}.lr{display:flex;align-items:center;min-height:56px;border-top:1px solid var(--line)}.lr:first-of-type{border-top:0}.lr .nm{flex:1;min-width:0}.lr .nm b{display:block;font-size:17px;font-weight:700}.lr .nm small{display:block;margin-top:2px;font-size:var(--t-sm);font-weight:600;color:var(--ink2)}.pill{display:inline-flex;align-items:center;height:24px;padding:0 9px;border:1px solid var(--line);border-radius:12px;background:var(--soft);color:var(--ink2);font-size:var(--t-xs);font-weight:800}.stack>*+*{margin-top:var(--s3)}.form{width:100%}.form .hint{margin:var(--s2) 0 0}.form .btn{margin-top:var(--s5)}.setup-screen{display:flex;flex-direction:column;min-height:100%}.setup-body{display:flex;flex:1;justify-content:center;align-items:flex-start;padding:var(--s3)}.setup,.setup-body>.form{width:100%;max-width:480px}.settings{width:100%;max-width:560px}.pp{display:inline-flex;align-items:center;height:28px;padding:0 11px;border-radius:14px;color:var(--on-person);font-size:14px;font-weight:700;white-space:nowrap}.c-family{background:var(--person-family)}.c-blue{background:var(--person-blue)}.c-purple{background:var(--person-purple)}.c-amber{background:var(--person-amber)}.c-pink{background:var(--person-pink)}.av{display:inline-flex;flex:none;align-items:center;justify-content:center;overflow:hidden;border-radius:50%;color:var(--on-person);font-weight:800;line-height:1;vertical-align:middle}.av img{display:block;width:100%;height:100%;object-fit:cover}.av.ring{border:3px solid var(--card)}.btn{display:inline-flex;align-items:center;justify-content:center;height:52px;padding:0 26px;border:0;border-radius:26px;background:var(--primary);color:var(--on-primary);font-size:var(--t-lg);font-weight:800;cursor:pointer}.btn.ghost{border:2px solid var(--line);background:transparent;color:var(--ink)}.btn.chip{height:40px;padding:0 14px;border:2px solid var(--line);border-radius:20px;background:var(--card);color:var(--ink);font-size:var(--t-md);font-weight:700}.btn.block{display:flex;width:100%}.btn:disabled{opacity:.5;cursor:default}.hdr{display:flex;flex:none;align-items:center;height:var(--hdr-h);padding:0 var(--s4) 0 var(--s5)}.hdr-title{margin:0;font-size:var(--t-3xl);font-weight:800;letter-spacing:-.01em}.hdr-end{display:flex;align-items:center;margin-left:auto}.hdr-end>*+*{margin-left:var(--s2)}.hdr.phone{height:auto;min-height:var(--pbar-h);padding:env(safe-area-inset-top) var(--s4) 0}.hdr.phone .hdr-title{font-size:var(--t-2xl)}.panel{min-height:0;padding:14px var(--s4);border-radius:var(--r-panel);background:var(--card);overflow:hidden}.panel-hd{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:6px}.demo-frame{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column}.demo-banner{display:flex;flex:none;align-items:center;justify-content:center;height:var(--demo-h);background:var(--demo);color:var(--on-demo);font-size:var(--t-sm);font-weight:700}.demo-reset{align-self:stretch;margin:0 0 0 2px;padding:0 8px;border:0;background:none;color:inherit;font:inherit;text-decoration:underline;cursor:pointer}.demo-reset:disabled{opacity:.6}.demo-content{position:relative;flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}.seg{display:flex;overflow:hidden;border:2px solid var(--line);border-radius:var(--r-md)}.seg button{display:flex;flex:1;align-items:center;justify-content:center;height:48px;margin:0;padding:0 var(--s3);border:0;border-left:2px solid var(--line);border-radius:0;background:var(--card);color:var(--ink);font-size:17px;font-weight:700;cursor:pointer}.seg button:first-child{border-left:0}.seg button.on{background:var(--primary);color:var(--on-primary)}.theme-toggle{display:inline-flex;flex:none;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:2px solid var(--line);border-radius:50%;background:var(--card);color:var(--ink2);cursor:pointer}.theme-toggle svg{display:block}.tabs{display:flex;flex:none;height:var(--tabs-h);box-sizing:content-box;padding-bottom:env(safe-area-inset-bottom);border-top:1px solid var(--line);background:var(--card)}.tabs a{display:flex;flex:1;align-items:center;justify-content:center;color:var(--ink2);font-size:var(--t-sm);font-weight:700}.tabs a.on{color:var(--ink);box-shadow:inset 0 3px 0 var(--ink)}.fab{position:absolute;right:var(--s4);bottom:var(--s4);display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:28px;background:var(--primary);box-shadow:0 4px 12px #13202c4d;color:var(--on-primary);font-size:34px;font-weight:300;line-height:1}.nav{display:flex;flex:none;height:var(--nav-h);border-top:1px solid var(--line);background:var(--card)}.nav a{display:flex;flex:1;align-items:center;justify-content:center;color:var(--ink2);font-size:var(--t-lg);font-weight:700}.nav a.on{color:var(--ink);box-shadow:inset 0 -4px 0 var(--ink)}.nav a.add{flex:none;width:220px;background:var(--primary);box-shadow:none;color:var(--on-primary);font-size:var(--t-xl)}.nav.portrait{height:72px}.nav.portrait a.add{width:160px}.app{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;overflow:hidden;background:var(--bg);color:var(--ink)}.app-main{position:relative;display:flex;flex:1;flex-direction:column;min-height:0}.app-body{display:flex;flex:1;flex-direction:column;min-height:0;padding:var(--s3);overflow-y:auto;-webkit-overflow-scrolling:touch}.app.phone .app-body{padding:0 var(--s3) 88px}.app-body>.empty{flex:1}.empty-msg{margin:var(--s3) 0 0}.outbox-status{display:flex;align-items:center;min-height:44px;margin-bottom:var(--s3);padding:var(--s2) var(--s4);border-radius:var(--r-md);background:var(--soft);color:var(--ink2);font-size:var(--t-md);font-weight:700}.outbox-status.warn{color:var(--warnt)}.outbox-status .msg{flex:1;min-width:0}.outbox-status .btn{margin-left:var(--s2)}
