:root{--bg:#f3f5f8;--panel:#fff;--text:#1d2733;--muted:#6b7785;--line:#e2e7ee;--primary:#3c5a78;--primary-text:#fff;--danger:#c62828;--ok:#2e7d32;--chat-bg:#c7d5e2;--mine:#fde68a;--mine-text:#1d2733;--theirs:#fff;--theirs-text:#1d2733;--badge:#e5484d;--unread-count:#c58b00;--shadow:0 1px 2px #00000014, 0 4px 16px #00000014;--radius:14px;--sep-bg:#00000024;--sep-text:#fff;--unfinished-bg:#fff4d6;--unfinished-text:#4a3b00;--upload-bg:#dbe8f5;--upload-text:#1d3550;--stamp-bg:#ffffffb3;--soon-bg:#fde68a;--soon-text:#8a5a00;--tint-share:55%;--photo-veil:#ffffff1f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;-webkit-text-size-adjust:100%;font-family:-apple-system,Segoe UI,Malgun Gothic,Apple SD Gothic Neo,Noto Sans KR,Roboto,sans-serif;font-size:16px;line-height:1.45}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}:root:not([data-theme=light]){--bg:#12171d;--panel:#1b222b;--text:#e6ebf1;--muted:#93a0ae;--line:#2b3440;--primary:#7aa3cc;--primary-text:#0f1720;--danger:#ff6b6b;--ok:#7bd389;--chat-bg:#151c24;--mine:#c7a529;--mine-text:#111;--theirs:#27313d;--theirs-text:#e6ebf1;--unread-count:#e0b84a;--sep-bg:#ffffff1a;--sep-text:var(--muted);--unfinished-bg:#3a3220;--unfinished-text:#f3e3b5;--upload-bg:#1f3347;--upload-text:#dbe8f5;--stamp-bg:#0000008c;--soon-bg:#e0b84a;--soon-text:#1d2733;--tint-share:20%;--photo-veil:#00000073}}:root[data-theme=dark]{--bg:#12171d;--panel:#1b222b;--text:#e6ebf1;--muted:#93a0ae;--line:#2b3440;--primary:#7aa3cc;--primary-text:#0f1720;--danger:#ff6b6b;--ok:#7bd389;--chat-bg:#151c24;--mine:#c7a529;--mine-text:#111;--theirs:#27313d;--theirs-text:#e6ebf1;--unread-count:#e0b84a;--sep-bg:#ffffff1a;--sep-text:var(--muted);--unfinished-bg:#3a3220;--unfinished-text:#f3e3b5;--upload-bg:#1f3347;--upload-text:#dbe8f5;--stamp-bg:#0000008c;--soon-bg:#e0b84a;--soon-text:#1d2733;--tint-share:20%;--photo-veil:#00000073;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body,#root{background:var(--bg);height:100%;color:var(--text);margin:0}body{word-break:keep-all;overflow-wrap:anywhere;overflow:hidden}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--primary)}.app{flex-direction:column;height:100dvh;display:flex}.app.center{justify-content:center;align-items:center}.split{flex:1;grid-template-columns:minmax(300px,360px) 1fr;min-height:0;display:grid}.split>aside{border-right:1px solid var(--line);min-height:0;display:flex}.split>main,main.single{flex:1;min-width:0;min-height:0;display:flex}.panel{background:var(--panel);flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.bar{min-height:56px;padding:0 8px 0 12px;padding-top:env(safe-area-inset-top);border-bottom:1px solid var(--line);background:var(--panel);align-items:center;gap:4px;display:flex}.bar h2{min-width:0;margin:0;font-size:1.15rem;font-weight:700}.spacer{flex:1}.icon-btn{cursor:pointer;width:42px;height:42px;color:var(--text);background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{background:var(--line)}.icon{display:block}.page{flex-direction:column;flex:1;gap:16px;width:100%;max-width:720px;margin:0 auto;padding:16px;display:flex;overflow-y:auto}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:12px;padding:16px;display:flex}.card h3{margin:0;font-size:1.05rem}.field{flex-direction:column;gap:6px;display:flex}.field-label{font-size:.9rem;font-weight:600}.field-hint,.muted{color:var(--muted)}.small,.field-hint{font-size:.85rem}input[type=text],input[type=password],input[type=date],input[type=time],input:not([type]),select,textarea{border:1px solid var(--line);background:var(--bg);border-radius:10px;min-width:0;min-height:44px;padding:10px 12px}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible{outline:2px solid var(--primary);outline-offset:1px}button.primary,button.secondary,button.danger-btn,a.secondary{cursor:pointer;border:0;border-radius:12px;min-height:46px;padding:0 18px;font-weight:700}button.primary{background:var(--primary);color:var(--primary-text)}button.secondary,a.secondary{background:var(--line)}a.secondary{color:var(--text);align-items:center;text-decoration:none;display:inline-flex}button.danger-btn{border:1px solid var(--danger);color:var(--danger);background:0 0}button:disabled{opacity:.5;cursor:default}button.link{color:var(--primary);cursor:pointer;background:0 0;border:0;padding:4px 6px;font-weight:600}.danger,button.link.danger{color:var(--danger)}.error{color:var(--danger);margin:0}.ok{color:var(--ok);margin:0}.notice{background:var(--bg);border-radius:10px;margin:0;padding:10px 12px}.check{align-items:center;gap:8px;display:flex}.radio-row{border:0;flex-wrap:wrap;align-items:center;gap:8px 16px;margin:0;padding:0;display:flex}.radio-row legend{margin-bottom:8px;padding:0;font-weight:600}.radio-choice{cursor:pointer;align-items:center;gap:6px;min-height:44px;display:inline-flex}.quiet-hours{flex-direction:column;gap:8px;padding-left:26px;display:flex}.quiet-hours p{margin:0}.quiet-times{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.tag{background:var(--line);vertical-align:middle;border-radius:6px;margin-left:6px;padding:1px 6px;font-size:.75rem}.tag.danger{color:var(--danger)}.row{gap:8px;display:flex}.list{margin:0;padding:0;list-style:none}.list-row{border-top:1px solid var(--line);align-items:center;gap:8px;padding:10px 0;display:flex}.list-row:first-child{border-top:0}.grow{flex:1;min-width:0}.actions{flex-direction:column;align-items:flex-end;display:flex}.empty{color:var(--muted);text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;padding:24px;display:flex}.welcome-pane img{opacity:.85}.banner{text-align:center;padding:8px 12px;font-size:.9rem}.banner.offline{color:#4a3b00;background:#ffe9a8}.banner.update{background:var(--primary);color:var(--primary-text)}.banner.update .link{color:inherit;text-decoration:underline}.auth{flex-direction:column;align-items:center;gap:20px;height:100dvh;padding:32px 16px;display:flex;overflow-y:auto}.auth .card{width:100%;max-width:400px}.brand{text-align:center}.brand h1{margin:8px 0 0;font-size:1.6rem}.brand p{color:var(--muted);margin:4px 0 0}.welcome{margin:0;font-weight:600}.avatar{color:#fff;-webkit-user-select:none;user-select:none;border-radius:38%;flex:none;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.rooms{flex:1;margin:0;padding:0;list-style:none;overflow-y:auto}.room-row{text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:12px;width:100%;padding:10px 14px;display:flex}.room-row:hover{background:var(--bg)}.room-row.active{background:var(--line)}.room-main{flex-direction:column;flex:1;min-width:0;display:flex}.room-title{align-items:center;gap:6px;min-width:0;font-weight:700;display:flex}.room-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.room-count{color:var(--muted);font-size:.9rem;font-weight:400}.room-muted{color:var(--muted);display:inline-flex}.room-muted .icon{width:14px;height:14px}.room-pinned{color:var(--primary)}.self-chat{align-items:center;gap:8px;margin-bottom:12px;display:inline-flex}.room-preview{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.92rem;overflow:hidden}.room-side{flex-direction:column;flex:none;align-items:flex-end;gap:4px;display:flex}.room-time{color:var(--muted);font-size:.78rem}.badge{background:var(--badge);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:22px;height:22px;padding:0 7px;font-size:.78rem;font-weight:700;display:inline-flex}.badge.muted{background:var(--muted)}.room-header-text{flex-direction:column;min-width:0;display:flex}.user-status{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:.8rem;font-weight:400;overflow:hidden}.person-text{flex-direction:column;min-width:0;display:flex}.room-header-title{align-items:center;gap:6px;display:flex}.messages-wrap{background:var(--chat-bg);flex:1;min-height:0;position:relative}.messages{overscroll-behavior:contain;flex-direction:column;height:100%;display:flex;overflow-y:auto}.messages-spacer{flex-grow:1;flex-shrink:0;justify-content:center;align-items:flex-end;display:flex}.room-start{color:var(--muted);margin:16px 0 8px;font-size:.85rem}.day-sep,.unread-sep,.system-msg{justify-content:center;padding:10px 12px 6px;display:flex}.day-sep span,.system-msg span{background:var(--sep-bg);color:var(--sep-text);text-align:center;border-radius:999px;padding:3px 12px;font-size:.8rem}.unread-sep span{color:var(--primary);background:var(--panel);border-radius:999px;padding:3px 12px;font-size:.8rem;font-weight:700}.msg{gap:8px;padding:2px 10px;display:flex}.msg.first{padding-top:8px}.msg.mine{justify-content:flex-end}.msg-avatar{flex:none;width:38px}.msg-col{flex-direction:column;min-width:0;max-width:min(78%,560px);display:flex}.msg.mine .msg-col{align-items:flex-end}.msg-sender{margin:0 0 3px 2px;font-size:.85rem}.msg-line{align-items:flex-end;gap:5px;min-width:0;display:flex}.msg.mine .msg-line{flex-direction:row-reverse}.bubble{background:var(--theirs);color:var(--theirs-text);white-space:pre-wrap;word-break:keep-all;overflow-wrap:anywhere;-webkit-touch-callout:none;-webkit-user-select:text;user-select:text;border-radius:16px;min-width:0;padding:8px 12px}.msg.theirs.first .bubble{border-top-left-radius:4px}.msg.mine .bubble{background:var(--mine);color:var(--mine-text)}.msg.mine.first .bubble{border-top-right-radius:4px}.bubble.pending{opacity:.7}.bubble.failed{outline:2px solid var(--danger)}.text.deleted,.text.muted{color:var(--muted);font-style:italic}.quote{opacity:.85;white-space:normal;border-left:3px solid #00000040;flex-direction:column;margin-bottom:6px;padding:2px 0 4px 8px;font-size:.85rem;display:flex}.quote-name{font-weight:700}.quote-text{text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.msg-meta{color:var(--muted);flex-direction:column;flex:none;align-items:flex-end;font-size:.72rem;line-height:1.2;display:flex}.msg.theirs .msg-meta{align-items:flex-start}.unread-count{color:var(--unread-count);font-weight:700}.edited{white-space:nowrap}.notice-bar{border-bottom:1px solid var(--line);background:var(--panel);align-items:center;display:flex}.notice-open{min-width:0;min-height:40px;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex:1;align-items:center;gap:8px;padding:8px 4px 8px 14px;font-size:.92rem;display:flex}.notice-open .icon,.notice-unfold .icon{color:var(--primary);flex:none}.notice-text{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.notice-unfold{z-index:2;border:1px solid var(--line);background:var(--panel);cursor:pointer;border-radius:50%;place-items:center;width:36px;height:36px;display:grid;position:absolute;top:8px;right:12px;box-shadow:0 1px 4px #0000001f}.notice-full{white-space:pre-wrap;overflow-wrap:anywhere;margin:0 0 4px}.mention{color:var(--primary);font-weight:700}.mention.me{background:color-mix(in srgb, var(--primary) 18%, transparent);border-radius:4px;padding:0 2px}.mention-choices{border:1px solid var(--line);background:var(--panel);border-radius:12px;flex-wrap:wrap;gap:4px;margin:0 0 6px;padding:4px;list-style:none;display:flex}.mention-choices button{background:var(--bg);color:var(--text);font:inherit;cursor:pointer;border:0;border-radius:999px;padding:6px 12px}.mention-choices li[aria-selected=true] button{background:var(--primary);color:var(--primary-text)}.reactions{border:1px solid var(--line);background:var(--panel);color:var(--text);font:inherit;cursor:pointer;border-radius:999px;flex-wrap:wrap;gap:4px;margin-top:3px;padding:2px 6px;font-size:.8rem;line-height:1.4;display:inline-flex}.reaction{align-items:center;gap:2px;display:inline-flex}.reaction.mine{background:color-mix(in srgb, var(--primary) 18%, transparent);border-radius:999px;margin:0 -2px;padding:0 2px}.reaction-count{font-variant-numeric:tabular-nums}.reaction-bar{justify-content:space-between;gap:4px;padding:0 0 8px;display:flex}.reaction-bar button{background:var(--bg);cursor:pointer;border:1px solid #0000;border-radius:12px;flex:1;min-width:0;padding:8px 0;font-size:1.4rem;line-height:1}.reaction-bar button[aria-pressed=true]{border-color:var(--primary);background:color-mix(in srgb, var(--primary) 14%, transparent)}.reaction-people{margin:0 0 8px;padding:0;list-style:none}.reaction-people li{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:8px 4px;display:flex}.reaction-emoji{font-size:1.2rem}.sending{color:var(--muted)}.failed-actions{flex-direction:column;display:flex}.pending-error{color:var(--danger);margin-top:2px;font-size:.8rem}.to-bottom{background:var(--panel);box-shadow:var(--shadow);cursor:pointer;border:0;border-radius:999px;align-items:center;gap:6px;padding:8px 10px;display:flex;position:absolute;bottom:14px;right:14px}.to-bottom-count{color:var(--primary);font-size:.85rem;font-weight:700}.composer{border-top:1px solid var(--line);background:var(--panel);padding:8px 10px calc(8px + env(safe-area-inset-bottom))}.composer-row{align-items:flex-end;gap:8px;display:flex}.composer textarea{resize:none;border-radius:20px;flex:1;min-height:44px;max-height:40vh;padding:10px 14px;line-height:1.4}.composer .send{background:var(--primary);width:44px;height:44px;color:var(--primary-text);cursor:pointer;border:0;border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex}.reply-bar{align-items:center;gap:8px;padding:4px 4px 8px;display:flex}.reply-info{border-left:3px solid var(--primary);flex-direction:column;flex:1;min-width:0;padding-left:8px;display:flex}.reply-to{font-size:.85rem;font-weight:700}.reply-text{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;overflow:hidden}.sheet-backdrop{z-index:30;background:#0006;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--panel);width:100%;max-width:480px;max-height:85dvh;padding:16px 16px calc(16px + env(safe-area-inset-bottom));box-shadow:var(--shadow);border-radius:18px 18px 0 0;overflow-y:auto}.sheet:focus{outline:none}@media (min-width:900px){.sheet-backdrop{align-items:center}.sheet{border-radius:18px}}.sheet-title{margin-bottom:12px;font-weight:700}.share-out{flex-direction:column;align-items:stretch;gap:12px;padding:8px 0 4px;display:flex}.share-out p{align-items:center;gap:8px;margin:0;display:flex}.menu{flex-direction:column;gap:4px;display:flex}.menu>button:not(.primary,.secondary){text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;padding:14px 8px}.menu>button:not(.primary,.secondary):hover{background:var(--bg)}.member-list{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.member-chip{background:var(--bg);border-radius:999px;align-items:center;gap:6px;padding:3px 10px 3px 3px;font-size:.9rem;display:inline-flex}.picker{flex-direction:column;gap:12px;display:flex}.people{margin:0;padding:0;list-style:none}.person{cursor:pointer;align-items:center;gap:10px;padding:8px 4px;display:flex}.person input{width:20px;height:20px}.linkbox{flex-direction:column;gap:8px;display:flex}.linkbox p{margin:0}.spinner{justify-content:center;padding:24px;display:flex}.spinner span{border:3px solid var(--line);border-top-color:var(--primary);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner span{animation-duration:2.4s}}.push-prompt{flex-direction:column;gap:8px;margin:8px 12px;display:flex}.push-prompt p{margin:0}.room-view{position:relative}.composer .attach{background:var(--bg);width:44px;height:44px;color:var(--text);cursor:pointer;border:0;border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex}.menu>button:not(.primary,.secondary){align-items:center;gap:10px;display:flex}.menu-link{color:inherit;text-overflow:ellipsis;white-space:nowrap;border-radius:10px;align-items:center;gap:10px;padding:14px 8px;text-decoration:none;display:flex;overflow:hidden}.menu-link:hover{background:var(--bg)}.msg .bubble.media{white-space:normal;background:0 0;border-radius:14px;padding:0;overflow:hidden}.bubble .media-layout+.file-card,.bubble .quote+.media-layout{margin-top:6px}.media-layout{border-radius:12px;flex-direction:column;gap:2px;max-width:100%;display:flex;overflow:hidden}.media-row{gap:2px;display:flex}.media-slot{flex:none}.media-cell{background:var(--line);cursor:pointer;width:100%;height:100%;color:inherit;border:0;margin:0;padding:0;display:block;position:relative;overflow:hidden}.media-cell img,.media-cell video{object-fit:cover;width:100%;height:100%;display:block}.media-none{width:100%;height:100%;color:var(--muted);justify-content:center;align-items:center;display:flex}.media-badge{color:#fff;background:#0000008c;border-radius:999px;align-items:center;gap:4px;padding:2px 7px;font-size:.72rem;line-height:1.4;display:inline-flex;position:absolute;bottom:6px;left:6px}.media-progress{color:#fff;background:#00000059;justify-content:center;align-items:center;font-size:.9rem;font-weight:700;display:flex;position:absolute;inset:0}.file-card{white-space:normal;flex-direction:column;gap:6px;min-width:min(220px,60vw);max-width:280px;display:flex}.bubble .file-card+.file-card{border-top:1px solid #0000001a;margin-top:8px;padding-top:8px}.file-row{align-items:center;gap:10px;display:flex}.file-icon{background:var(--primary);width:40px;height:40px;color:var(--primary-text);letter-spacing:.02em;border-radius:8px;flex:none;justify-content:center;align-items:center;font-size:.68rem;font-weight:700;display:flex}.file-info{flex-direction:column;flex:1;min-width:0;display:flex}.file-name{-webkit-line-clamp:2;word-break:break-all;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.file-size{opacity:.7;font-size:.8rem}.file-card audio{width:100%;height:36px}.file-progress{width:100%;height:6px}.sending-col{flex-direction:column;align-items:flex-end;gap:2px;display:flex}.unfinished,.composer-error{border-top:1px solid var(--line);align-items:center;gap:8px;padding:8px 12px;font-size:.85rem;display:flex}.unfinished{background:var(--unfinished-bg);color:var(--unfinished-text)}.composer-error{background:var(--panel);color:var(--danger);justify-content:space-between}.unfinished p{flex-direction:column;flex:1;min-width:0;margin:0;display:flex}.unfinished-names{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.unfinished .hint{opacity:.8}.unfinished-actions{flex-direction:column;align-items:flex-end;gap:4px;display:flex}.unfinished .link{color:inherit;text-decoration:underline}.drop-zone{z-index:5;color:#fff;pointer-events:none;background:#3c5a78d9;border:3px dashed #ffffffbf;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:8px;font-weight:700;display:flex;position:absolute;inset:8px}.send-list{max-height:50dvh;margin:0 0 12px;padding:0;list-style:none;overflow-y:auto}.send-list li{align-items:center;gap:10px;padding:6px 0;display:flex}.send-list img{object-fit:cover;border-radius:8px;flex:none;width:48px;height:48px}.send-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.send-size{color:var(--muted);font-size:.85rem}.banner.upload{background:var(--upload-bg);color:var(--upload-text);flex-direction:column;gap:2px;display:flex}.banner-hint{opacity:.85;font-size:.8rem}.link-card{width:280px;max-width:100%;color:inherit;white-space:normal;background:#0000000d;border-radius:10px;flex-direction:column;margin-top:8px;text-decoration:none;display:flex;overflow:hidden}.link-card img{object-fit:cover;background:#00000014;width:100%;max-height:180px;display:block}.link-card-text{flex-direction:column;gap:2px;min-width:0;padding:8px 10px;display:flex}.link-site{opacity:.7;text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;overflow:hidden}.link-title,.link-desc{-webkit-line-clamp:2;overflow-wrap:anywhere;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.link-title{font-weight:700}.link-desc{opacity:.8;font-size:.85rem}.voice{white-space:normal;align-items:center;gap:10px;width:min(250px,60vw);display:flex}.voice-play{background:var(--primary);width:36px;height:36px;color:var(--primary-text);cursor:pointer;border:0;border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex}.voice.pending .voice-play{opacity:.6;cursor:default}.voice-wave{cursor:pointer;border-radius:4px;flex:1;align-items:center;gap:1px;min-width:0;height:30px;display:flex}.voice-wave:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.voice-wave span{opacity:.3;background:currentColor;border-radius:1px;flex:1;min-width:1px}.voice-wave span.on{opacity:.9}.voice-time{text-align:right;font-variant-numeric:tabular-nums;opacity:.75;flex:none;min-width:2.6em;font-size:.8rem}.recording{flex:1;align-items:center;gap:10px;min-width:0;min-height:44px;display:flex}.rec-dot{background:var(--danger);border-radius:50%;flex:none;width:10px;height:10px;animation:1.2s steps(2,jump-none) infinite rec-blink}@keyframes rec-blink{to{opacity:.2}}.rec-time{font-variant-numeric:tabular-nums;flex:none}.rec-level{background:var(--line);border-radius:3px;flex:1;min-width:0;height:6px;overflow:hidden}.rec-level span{background:var(--primary);transform-origin:0;height:100%;transition:transform .1s linear;display:block}.recording.stopped .rec-dot{background:var(--muted);animation:none}.rec-note{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--muted);flex:1;font-size:.85rem;overflow:hidden}@media (prefers-reduced-motion:reduce){.rec-dot{animation:none}.rec-level span{transition:none}}.composer .send.mic{background:var(--bg);color:var(--text)}.viewer{z-index:20;color:#fff;background:#000;position:fixed;inset:0}.viewer-stage{justify-content:center;align-items:center;display:flex;position:absolute;inset:0;overflow:hidden}.viewer-stage.zoomable{touch-action:none}.viewer-stage img,.viewer-stage video{object-fit:contain;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;max-width:100%;max-height:100%}.viewer-bar{z-index:1;align-items:center;gap:8px;padding:8px 12px;transition:opacity .2s;display:flex;position:absolute;left:0;right:0}.viewer-bar.top{padding-top:max(8px, env(safe-area-inset-top));background:linear-gradient(#000000a6,#0000);top:0}.viewer-bar.bottom{padding-bottom:max(10px, env(safe-area-inset-bottom));background:linear-gradient(#0000,#000000a6);bottom:0}.viewer .icon-btn{color:#fff}.viewer .icon-btn:hover{background:#ffffff26}.viewer.bare .viewer-bar,.viewer.bare .viewer-nav{opacity:0;pointer-events:none}.viewer-title{flex-direction:column;flex:1;min-width:0;line-height:1.25;display:flex}.viewer-sender{font-weight:700}.viewer-time,.viewer-size{opacity:.8;font-size:.8rem}.viewer-size{margin-left:auto}.viewer-count{font-size:.9rem}.viewer-nav{z-index:1;color:#fff;cursor:pointer;background:#0006;border:0;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.viewer-nav.prev{left:8px}.viewer-nav.next{right:8px}.viewer-action{color:#fff;cursor:pointer;background:#ffffff24;border:0;border-radius:999px;align-items:center;gap:6px;padding:8px 14px;text-decoration:none;display:inline-flex}.viewer-cant{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:24px;display:flex}.viewer-cant img{max-width:60vw;max-height:50vh}.drawer{z-index:6;background:var(--panel);flex-direction:column;display:flex;position:absolute;inset:0}.drawer-body{min-height:0;padding:4px 8px calc(16px + env(safe-area-inset-bottom));flex:1;overflow-y:auto}.tabs{gap:4px;display:flex}.tabs button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:8px 12px;font-weight:600}.tabs button[aria-selected=true]{background:var(--bg);color:var(--text)}.drawer-month{color:var(--muted);margin:14px 4px 6px;font-size:.85rem;font-weight:600}.drawer-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:2px;display:grid}.drawer-cell{aspect-ratio:1;background:var(--line);cursor:pointer;color:var(--muted);border:0;justify-content:center;align-items:center;padding:0;display:flex;position:relative;overflow:hidden}.drawer-cell img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.drawer-files{margin:0;padding:0;list-style:none}.drawer-files li{border-bottom:1px solid var(--line);flex-direction:column;gap:2px;padding:8px 4px;display:flex}.drawer-files .file-card{max-width:none}.drawer-from{color:var(--muted);padding-left:50px;font-size:.8rem}.empty-note{text-align:center;color:var(--muted);padding:32px 0}.drawer-sentinel{height:1px}.drive{position:relative}.drive-tabs{border-bottom:1px solid var(--line);padding:8px 12px}.drive-body{min-height:0;padding:0 12px calc(24px + env(safe-area-inset-bottom));flex:1;position:relative;overflow-y:auto}.drive-head{align-items:center;gap:4px;padding-top:6px;display:flex}.drive-head .crumbs{flex:1;min-width:0}.drive-head select{border-radius:8px;padding:6px 8px}.link.with-icon{align-items:center;gap:6px;display:inline-flex}.crumbs{flex-wrap:wrap;align-items:center;gap:2px;padding:10px 0 4px;font-size:.95rem;display:flex}.crumbs .link{padding:2px 4px}.crumb-current{padding:2px 4px;font-weight:700}.drive-toolbar{z-index:2;background:var(--panel);flex-wrap:wrap;align-items:center;gap:8px;padding:6px 0 10px;display:flex;position:sticky;top:0}.drive-toolbar>button{align-items:center;gap:6px;display:inline-flex}.drive-items{margin:0;padding:0;list-style:none}.drive-item{align-items:center;display:flex;position:relative}.drive-items.list .drive-item{border-bottom:1px solid var(--line)}.drive-open{min-width:0;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;flex:1;align-items:center;gap:12px;padding:10px 4px;display:flex}.drive-item.selected .drive-open{background:color-mix(in srgb, var(--primary) 14%, transparent)}.drive-thumb{background:var(--bg);width:44px;height:44px;color:var(--primary);border-radius:8px;flex:none;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.drive-thumb img{object-fit:cover;width:100%;height:100%}.drive-thumb .file-icon{border-radius:0;width:100%;height:100%}.drive-thumb .media-badge{padding:0 5px;font-size:.65rem;bottom:3px;left:3px}.drive-text{flex-direction:column;flex:1;min-width:0;display:flex}.drive-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.drive-meta{color:var(--muted);font-size:.8rem}.drive-check{border:2px solid var(--primary);width:24px;height:24px;color:var(--primary-text);border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex}.drive-item.selected .drive-check{background:var(--primary)}.drive-items.grid{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px;display:grid}.drive-items.grid .drive-open{flex-direction:column;align-items:stretch;gap:4px;padding:4px}.drive-items.grid .drive-thumb{aspect-ratio:1;width:100%;height:auto}.drive-items.grid .drive-name{white-space:normal;-webkit-line-clamp:2;text-align:center;word-break:break-all;-webkit-box-orient:vertical;font-size:.85rem;display:-webkit-box}.drive-items.grid .drive-meta{display:none}.drive-items.grid .drive-more{color:#1d2733;background:#fffc;width:32px;height:32px;position:absolute;top:6px;right:6px}.drive-items.grid .drive-check{background:#fffc;position:absolute;top:8px;left:8px}.drive-items.grid .drive-item.selected .drive-check{background:var(--primary)}.drive-uploads{margin:0 0 8px;padding:0;list-style:none}.drive-uploads li{align-items:center;gap:8px;padding:6px 0;font-size:.9rem;display:flex}.drive-up-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.drive-uploads progress{width:30%}.trash-actions{flex-direction:column;align-items:flex-end;gap:4px;padding-right:4px;display:flex}.trash-note{margin:0 0 8px}.pick-list{max-height:45dvh;margin:8px 0;padding:0;list-style:none;overflow-y:auto}.pick-list li>button{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;align-items:center;gap:10px;padding:12px 8px;display:flex}.pick-list li>button:hover{background:var(--bg)}.pick-list li>button:disabled{opacity:.4;cursor:default}.toast-area{left:0;right:0;bottom:calc(88px + env(safe-area-inset-bottom));z-index:40;pointer-events:none;justify-content:center;display:flex;position:fixed}.toast{color:#fff;max-width:calc(100% - 32px);box-shadow:var(--shadow);background:#1d2733eb;border-radius:999px;padding:10px 18px;font-size:.9rem;animation:.15s ease-out toast-in}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}.share-page{gap:12px}.share-text{background:var(--bg);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:12px;margin:0;padding:10px 12px}.share-drive{justify-content:center;align-items:center;gap:8px;display:inline-flex}.share-title{margin:8px 0 0;font-size:1rem}.rooms-pick{max-height:none}.room-tabs{border-bottom:1px solid var(--line);background:var(--panel);padding:6px 12px}.room-body{flex:1;min-height:0;display:flex}.room-chat{flex-direction:column;flex:1;min-width:0;display:flex;position:relative}.board-side{border-left:1px solid var(--line);background:var(--bg);flex-direction:column;flex:none;width:380px;display:flex}.icon-btn[aria-pressed=true]{color:var(--primary);background:color-mix(in srgb, var(--primary) 14%, transparent)}.msg .bubble.card-bubble,.msg.mine .bubble.card-bubble{background:var(--panel);width:300px;max-width:100%;color:var(--text);border:1px solid var(--line);white-space:normal;padding:12px}.card-msg{flex-direction:column;gap:6px;min-width:0;display:flex}.card-kind{color:var(--primary);align-items:center;gap:4px;font-size:.8rem;font-weight:700;display:flex}.card-msg.purchase .card-kind{color:var(--ok)}.card-title{font-size:1.05rem;font-weight:700}.card-when{font-weight:600}.card-line{align-items:flex-start;gap:6px;font-size:.9rem;display:flex}.card-line .icon{flex:none;margin-top:2px}.card-note{background:var(--bg);white-space:pre-wrap;border-radius:10px;margin:2px 0 0;padding:8px 10px;font-size:.9rem}.d-day,.card-progress{font-variant-numeric:tabular-nums;background:var(--bg);border-radius:999px;flex:none;margin-left:auto;padding:1px 8px;font-size:.75rem;font-weight:700}.d-day{color:var(--primary)}.card-progress{color:var(--muted)}.rsvp-list{flex-direction:column;gap:2px;margin:2px 0 0;font-size:.9rem;display:flex}.rsvp-list div{gap:8px;display:flex}.rsvp-list dt{flex:none;font-weight:700}.rsvp-list dd{margin:0}.rsvp-bar{grid-template-columns:repeat(3,1fr);gap:6px;margin-top:4px;display:grid}.rsvp{border:1px solid var(--line);background:var(--panel);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:4px;min-height:40px;font-weight:600;display:inline-flex}.rsvp[aria-pressed=true]{background:var(--primary);border-color:var(--primary);color:var(--primary-text)}.rsvp-count{font-variant-numeric:tabular-nums;opacity:.8;font-size:.8rem}.card-msg .card-open{border-top:1px solid var(--line);border-radius:0;margin-top:2px;padding:8px 0 0}.card-msg.poll .card-kind{color:var(--unread-count)}.poll-tag{color:var(--muted);background:var(--bg);border-radius:999px;padding:1px 7px;font-size:.72rem;font-weight:600}.card-msg.poll.closed .d-day{color:var(--muted)}.poll-options{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.poll-row,.poll-choice{border:1px solid var(--line);background:var(--panel);width:100%;min-height:42px;color:inherit;font:inherit;text-align:left;border-radius:10px;align-items:center;gap:8px;padding:8px 12px;display:flex;position:relative;overflow:hidden}.poll-choice{cursor:pointer}.poll-choice[aria-checked=true]{border-color:var(--primary)}.poll-bar{background:color-mix(in srgb, var(--primary) 12%, transparent);transition:width .25s;position:absolute;inset:0 auto 0 0}.poll-option.mine .poll-bar,.card-msg.poll.closed .poll-option.leader .poll-bar{background:color-mix(in srgb, var(--primary) 24%, transparent)}.card-msg.poll.closed .poll-option:not(.leader) .poll-bar{background:color-mix(in srgb, var(--muted) 14%, transparent)}.poll-mark,.poll-text,.poll-count{position:relative}.poll-mark{border:2px solid var(--muted);border-radius:50%;flex:none;place-items:center;width:18px;height:18px;display:grid}.poll-choice[role=checkbox] .poll-mark{border-radius:5px}.poll-mark.on{border-color:var(--primary);background:var(--primary);box-shadow:inset 0 0 0 3px var(--panel)}.poll-mark.none{display:none}.poll-mark.mine{color:var(--primary);border:0;font-weight:800}.poll-mark.mine:before{content:"✓"}.poll-text{overflow-wrap:anywhere;flex:1;min-width:0}.poll-option.leader .poll-text{font-weight:700}.poll-count{font-variant-numeric:tabular-nums;color:var(--muted);flex:none;font-weight:700}.poll-who{color:var(--muted);margin:2px 4px 0;font-size:.8rem;display:block}.poll-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.poll-actions .primary,.poll-actions .secondary{min-height:40px;padding:0 16px}.poll-inputs{flex-flow:column;gap:6px}.poll-input{align-items:center;gap:4px;display:flex}.poll-input input{flex:1;min-width:0}.poll-inputs>.link{align-self:flex-start}.system-link{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;margin-left:6px;padding:0;font-weight:700;text-decoration:underline}.items{margin:0;padding:0;list-style:none}.item-row{border-bottom:1px solid var(--line);align-items:center;gap:8px;display:flex}.item-row input[type=checkbox]{width:22px;height:22px;accent-color:var(--primary);cursor:pointer;flex:none;margin:0 2px}.item-main{flex-direction:column;flex:1;justify-content:center;gap:1px;min-width:0;min-height:42px;padding:6px 0;display:flex}button.item-main{color:inherit;text-align:left;cursor:pointer;background:0 0;border:0}.item-qty,.item-meta{color:var(--muted)}.item-meta{font-size:.8rem}.item-row.bought .item-name{color:var(--muted);text-decoration:line-through}.item-row.pending{opacity:.6}.add-item{gap:6px;display:flex}.add-item input{flex:1;min-height:40px;padding:8px 10px}.add-item button.secondary{min-height:40px;padding:0 14px}.card-totals{font-variant-numeric:tabular-nums;flex-wrap:wrap;justify-content:flex-end;gap:2px 12px;font-size:.85rem;font-weight:600;display:flex}.item-row:has(.item-controls){flex-wrap:wrap}.item-controls{font-variant-numeric:tabular-nums;flex-wrap:wrap;flex-basis:100%;align-items:center;gap:6px;padding:0 0 8px 34px;display:flex}.stepper{border:1px solid var(--line);border-radius:10px;align-items:center;display:inline-flex;overflow:hidden}.stepper button{background:var(--bg);width:34px;height:34px;color:var(--text);cursor:pointer;border:0;font-size:1.1rem}.stepper button:disabled{color:var(--muted);cursor:default}.item-controls .stepper input{text-align:center;background:var(--panel);border:0;border-radius:0;width:3.2em;height:34px;padding:0 4px}.item-times{color:var(--muted)}.item-controls input.item-price{text-align:right;width:7em;min-height:34px;padding:4px 8px}.item-controls button.link{width:auto;min-height:0;padding:0;font-size:.85rem}.item-line-total{margin-left:auto;font-weight:600}.item-sheet-total{text-align:right;margin:0}.item-link{color:var(--primary);flex:none}.price-order,.cart-view-tabs{align-self:flex-start}.cart-table-wrap{flex-direction:column;gap:6px;min-width:0;display:flex}.cart-table-scroll{-webkit-overflow-scrolling:touch;max-width:100%;overflow-x:auto}.cart-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;min-width:460px;font-size:.95rem}.cart-table th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line);white-space:nowrap;padding:4px 6px;font-size:.8rem;font-weight:600}.cart-table td{border-bottom:1px solid var(--line);vertical-align:middle;padding:0}.cart-table .num{text-align:right}.cart-table .cell textarea{width:100%;height:38px;min-height:38px;color:var(--text);font:inherit;resize:none;white-space:pre;background:0 0;border:0;border-radius:0;padding:8px 6px;display:block;overflow:hidden}.cart-table .cell textarea:focus,.cart-table .cell textarea:focus-visible{outline:2px solid var(--primary);outline-offset:-2px;background:var(--panel)}.cart-table .cell-name{min-width:9em}.cart-table .cell-count{width:4.2em}.cart-table .cell-price{width:7.5em}.cart-table .cell-count textarea,.cart-table .cell-price textarea{text-align:right}.cart-table .line-total{white-space:nowrap;width:7em;padding:0 6px;font-weight:600}.cart-table .col-check{text-align:center;width:32px}.cart-table .col-who select{border-radius:8px;max-width:6.5em;min-height:34px;padding:4px 6px}.cart-table .col-del{text-align:center;width:36px}.cart-table tr.bought .cell-name textarea{color:var(--muted);text-decoration:line-through}.cart-table tr.pending{opacity:.7}.cart-table .draft-row textarea::placeholder{color:var(--muted)}.cart-table tfoot td,.cart-table tfoot th{color:var(--text);border-bottom:0;padding:8px 6px;font-size:.95rem;font-weight:600}.cart-table-bar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.cart-table-bar button.secondary{min-height:40px;padding:0 14px}.going-btn{justify-content:center;align-items:center;gap:6px;min-height:36px;display:inline-flex}.card-msg .going-link{align-self:flex-start;align-items:center;gap:4px;width:auto;min-height:32px;padding:0;font-size:.85rem;display:inline-flex}.going-line{background:color-mix(in srgb, var(--primary) 12%, transparent);border-radius:10px;align-items:center;gap:6px;margin:0;padding:6px 10px;font-size:.85rem;font-weight:600;display:flex}.going-line .grow{flex:1;min-width:0}.going-line button.link{width:auto;min-height:0;padding:0}.frequent-chips{flex-wrap:wrap;gap:6px;display:flex}.spending{border:1px solid var(--line);background:var(--panel);border-radius:12px;flex-direction:column;gap:6px;padding:8px 12px;display:flex}.spending-now{width:100%;min-height:40px;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:0;display:flex}.spending-now .grow{font-variant-numeric:tabular-nums;flex:1}.spending-months{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.spending-months li{font-variant-numeric:tabular-nums;grid-template-columns:6.5em 1fr auto;align-items:center;gap:8px;font-size:.85rem;display:grid}.spending-track{background:var(--bg);border-radius:4px;height:8px;overflow:hidden}.spending-bar{background:var(--primary);border-radius:4px;height:100%;display:block}.spending p{margin:0}.card-sheet{flex-direction:column;gap:14px;display:flex}.receipt{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.receipt-link{align-items:center;gap:8px;font-weight:600;text-decoration:none;display:inline-flex}.receipt-link img{object-fit:cover;border-radius:8px;width:56px;height:56px}.menu.card-form{gap:12px}.form-row{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;display:grid}.choice{border:0;flex-wrap:wrap;gap:2px 16px;margin:0;padding:0;display:flex}.choice legend{margin-bottom:4px;padding:0;font-size:.9rem;font-weight:600}.card-form .check{min-height:36px}.card-form .check input{width:20px;height:20px;margin:0}.room-cards{min-height:0;padding:12px 16px calc(16px + env(safe-area-inset-bottom));flex-direction:column;flex:1;gap:8px;display:flex;overflow-y:auto}.room-cards>*{width:100%;max-width:720px;margin-left:auto;margin-right:auto}.new-card{justify-content:center;align-items:center;gap:6px;display:inline-flex}.pick-list.card-list{max-height:none;margin:0;overflow:visible}.card-list li+li{border-top:1px solid var(--line)}.pick-list li>button.card-row{flex-direction:column;align-items:stretch;gap:2px}.card-row-title{align-items:center;gap:8px;font-weight:600;display:flex}.card-row-meta{color:var(--muted);font-size:.85rem}.card-list.past{opacity:.7}.room-cards .past-toggle{align-self:center;width:auto}.tensor-month{justify-content:center}.tensor-totals dl{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:0;display:grid}.tensor-total{border:1px solid var(--line);background:var(--panel);border-radius:12px;min-width:0;padding:8px 10px}.tensor-total dt{color:var(--muted);font-size:.8rem;font-weight:600}.tensor-total dd{font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin:2px 0 0;font-weight:700}.tensor-total.income dd{color:var(--ok)}.tensor-total.balance{background:color-mix(in srgb, var(--primary) 10%, var(--panel))}.tensor-total.balance.minus dd{color:var(--danger)}@media (max-width:520px){.tensor-totals dl{grid-template-columns:repeat(2,minmax(0,1fr))}}.tensor-tabs{border-bottom:1px solid var(--line);padding-bottom:6px}.tensor-link{border:1px solid var(--line);background:var(--panel);border-radius:12px;flex-direction:column;gap:6px;padding:8px 12px;display:flex}.tensor-link-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.tensor-link-row .grow{flex:1;align-items:center;gap:4px;min-width:10em;display:flex}.tensor-link p{margin:0}.tensor-books{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.tensor-books button{text-align:left;align-items:center;gap:8px;width:100%;display:flex}.tensor-books button .grow{flex:1}.tensor-views{border:0;flex-direction:column;gap:4px;margin:0;padding:0;display:flex}.card-msg.tensor .card-kind{color:#6a4fb6}.tensor-bars{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.tensor-bars li{font-variant-numeric:tabular-nums;grid-template-columns:minmax(4em,7em) 1fr auto;align-items:center;gap:2px 8px;font-size:.85rem;display:grid}.tensor-bar-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tensor-bar-note{color:var(--muted);grid-column:2/4;font-size:.75rem}.tensor-bars li.over .spending-bar{background:var(--danger)}.tensor-bars li.over .tensor-bar-note{color:var(--danger)}.ledger,.shopping,.cart-section{flex-direction:column;gap:8px;display:flex}.ledger-form{border:1px solid var(--line);background:var(--panel);border-radius:12px;flex-direction:column;gap:8px;padding:10px 12px;display:flex}.pick-list li>button.ledger-row{grid-template-columns:5.5em minmax(0,1fr) auto;align-items:center;gap:2px 10px;display:grid}.ledger-day{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.85rem}.ledger-item{overflow-wrap:anywhere;font-weight:600}.ledger-amount{font-variant-numeric:tabular-nums;text-align:right;font-weight:700}.ledger-meta{color:var(--muted);overflow-wrap:anywhere;grid-column:2/-1;font-size:.85rem}.ledger-sum,.cart-section-sum{font-variant-numeric:tabular-nums;flex-wrap:wrap;justify-content:flex-end;gap:2px 12px;margin:0;font-weight:600;display:flex}.cart-section-sum .grow{flex:1}.shopping-sums{border-collapse:collapse;font-variant-numeric:tabular-nums;background:var(--panel);border:1px solid var(--line);border-radius:12px;width:100%}.shopping-sums th,.shopping-sums td{text-align:right;padding:6px 10px;font-size:.9rem}.shopping-sums th[scope=row]{text-align:left;font-weight:600}.shopping-sums thead th{color:var(--muted);font-size:.8rem}.shopping-sums tfoot th,.shopping-sums tfoot td{border-top:1px solid var(--line);font-weight:700}.cart-block{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);flex-direction:column;gap:6px;padding:12px;display:flex}.cart-block .card-open{align-self:flex-start;width:auto}.cal-nav{align-items:center;gap:4px;display:flex}.cal-nav h3{text-align:center;min-width:7.5em;margin:0;font-size:1.1rem}.cal-nav button.secondary{min-height:36px;margin-left:auto;padding:0 14px}.cal-grid{border-collapse:collapse;table-layout:fixed;width:100%}.cal-grid th{color:var(--muted);padding:4px 0;font-size:.8rem;font-weight:600}.cal-grid th:first-child{color:var(--danger)}.cal-grid th:last-child{color:var(--primary)}.cal-grid td{padding:1px}.cal-grid button{width:100%;min-height:50px;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:10px;flex-direction:column;align-items:center;gap:3px;padding:4px 0;display:flex}.cal-grid button:hover{background:var(--bg)}.cal-grid button.selected{background:var(--bg);box-shadow:inset 0 0 0 2px var(--primary)}.cal-grid button.other{opacity:.4}.cal-num{font-variant-numeric:tabular-nums;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-weight:600;display:flex}.cal-grid .sun .cal-num{color:var(--danger)}.cal-grid .sat .cal-num{color:var(--primary)}.cal-grid .today .cal-num{background:var(--primary);color:var(--primary-text)}.cal-dots{gap:3px;display:flex}.cal-dots i{background:var(--primary);border-radius:50%;width:5px;height:5px}.cal-day h3{margin:0 0 4px;font-size:1rem}.cal-day .empty-note{padding:16px 0}.cal-time{color:var(--primary);font-variant-numeric:tabular-nums;margin-right:2px;font-weight:700}@media (min-width:900px){.cal-grid button{min-height:64px}}.tab-badge{background:var(--primary);color:var(--primary-text);font-variant-numeric:tabular-nums;border-radius:999px;margin-left:6px;padding:0 7px;font-size:.75rem}.board{min-height:0;padding:12px 16px calc(16px + env(safe-area-inset-bottom));flex-direction:column;flex:1;gap:12px;display:flex;overflow-y:auto}.board>*{width:100%;max-width:720px;margin-left:auto;margin-right:auto}.board-bar{justify-content:space-between;align-items:center;gap:8px;display:flex}.board-bar button.secondary{align-items:center;gap:6px;display:inline-flex}.slots{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;display:grid}.slot{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);flex-direction:column;gap:8px;min-width:0;padding:12px;display:flex;position:relative}.slots.done .slot{background:var(--bg)}.slot.finished .slot-body{opacity:.55}.slot-head{justify-content:space-between;align-items:center;min-height:24px;display:flex}.slot-kind{color:var(--primary);align-items:center;gap:4px;font-size:.8rem;font-weight:700;display:inline-flex}.slot.gifticon .slot-kind{color:var(--unread-count)}.icon-btn.small{width:32px;height:32px}.slot-body{position:relative}.slot-media{border-radius:10px;gap:3px;display:grid;overflow:hidden}.slot-media.n2,.slot-media.n4{grid-template-columns:1fr 1fr}.slot-media.n3{grid-template-rows:1fr 1fr;grid-template-columns:2fr 1fr}.slot-media.n3 .slot-thumb:first-child{grid-row:span 2}.slot-thumb{background:var(--line);color:var(--muted);aspect-ratio:4/3;cursor:pointer;border:0;justify-content:center;align-items:center;padding:0;display:flex;position:relative;overflow:hidden}.slot-media.n1 .slot-thumb{aspect-ratio:auto;max-height:260px}.slot.gifticon .slot-media.n1 .slot-thumb{max-height:160px}.slot-thumb img{object-fit:cover;width:100%;height:100%}.slot-media.n1 .slot-thumb img{object-fit:contain;max-height:260px}.slot-more{color:#fff;background:#00000073;justify-content:center;align-items:center;font-size:1.1rem;font-weight:700;display:flex;position:absolute;inset:0}.slot-file{background:var(--bg);color:inherit;border-radius:10px;align-items:center;gap:8px;min-width:0;padding:8px;text-decoration:none;display:flex}.slot-file+.slot-file,.slot-media+.slot-file{margin-top:4px}.slot-file-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.slot-cards{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.slot-card-ref{background:var(--bg);width:100%;color:inherit;text-align:left;cursor:pointer;border:0;border-radius:10px;align-items:center;gap:8px;padding:10px;font-weight:600;display:flex}.slot-note{background:var(--mine);color:var(--mine-text);white-space:pre-wrap;border-radius:10px;max-height:9.5em;margin:0;padding:10px 12px;overflow:hidden}.slot-sheet .slot-note{max-height:none}.stamp{z-index:1;border:3px solid var(--danger);color:var(--danger);background:var(--stamp-bg);letter-spacing:.1em;pointer-events:none;border-radius:8px;padding:2px 14px;font-size:1.3rem;font-weight:800;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-12deg)}.stamp.done{border-color:var(--ok);color:var(--ok)}.stamp.expired{border-color:var(--muted);color:var(--muted)}.slot-title{margin:0;font-size:1.05rem}.slot-title-row{align-items:center;gap:8px;display:flex}.slot-title-row .slot-title{flex:1;min-width:0}.slot-chips{flex-wrap:wrap;gap:4px 6px;margin:0;padding:0;list-style:none;display:flex}.slot-chips .fact{background:var(--bg);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;border-radius:999px;align-items:center;gap:4px;max-width:100%;padding:2px 8px;font-size:.8rem;display:inline-flex}.slot-chips .fact .icon{color:var(--muted);flex:none}.slot-chips .fact-btn{color:var(--primary);font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;padding:0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;display:inline-flex}.slots.done .slot-chips .fact{background:var(--panel)}.slot-entry-why{min-width:0;color:var(--muted);flex:auto;font-size:.75rem}.slot-keywords{flex-wrap:wrap;align-items:center;gap:4px 6px;display:flex}.slot-keywords .tag{margin-left:0}.keyword-list{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.keyword-list li{border:1px solid var(--line);border-radius:999px;align-items:center;gap:2px;padding-left:10px;display:inline-flex}.keyword-list .icon-btn.small{width:28px;height:28px}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.slot-line{flex-wrap:wrap;align-items:center;gap:4px 10px;font-size:.9rem;display:flex}.d-day.soon{color:var(--soon-text);background:var(--soon-bg)}.slot-acks{justify-content:space-between;align-items:center;gap:8px;font-size:.85rem;display:flex}.slot-acks-text{flex-wrap:wrap;align-items:center;gap:4px;min-width:0;display:inline-flex}.bubble.sticker{box-shadow:none;background:0 0;padding:0}.sticker-img{object-fit:contain;width:140px;height:140px;display:block}.sticker-tabs{gap:6px;padding-bottom:8px;display:flex;overflow-x:auto}.sticker-grid{grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:6px;margin-bottom:12px;display:grid}.sticker-grid.small{grid-template-columns:repeat(auto-fill,minmax(56px,1fr))}.sticker-cell{aspect-ratio:1;border:1px solid var(--line);background:var(--panel);cursor:pointer;border-radius:10px;padding:4px;position:relative}.sticker-cell img{object-fit:contain;width:100%;height:100%}.sticker-cell .icon-btn{background:var(--panel);min-width:24px;min-height:24px;box-shadow:var(--shadow);border-radius:50%;padding:2px;position:absolute;top:-6px;right:-6px}.sticker-new{flex-direction:column;gap:8px;margin-bottom:12px;display:flex}.sticker-set-head{align-items:center;gap:8px;display:flex}.sticker-set-head h4{margin:8px 0}.bookmarked{color:var(--primary);display:inline-flex}.bookmarks h3{align-items:center;gap:6px;margin:16px 0 8px;font-size:.95rem;display:flex}.typing-line{color:var(--muted);margin:0;padding:2px 14px;font-size:.8rem}.scheduled-bar{border:0;border-top:1px solid var(--line);background:var(--panel);width:100%;color:var(--muted);text-align:left;cursor:pointer;align-items:center;gap:6px;padding:6px 12px;font-size:.85rem;display:flex}.scheduled-bar.failed{color:var(--danger)}.scheduled-text{white-space:pre-wrap}.schedule-form{flex-direction:column;gap:10px;display:flex}.schedule-form textarea{resize:vertical;width:100%}.schedule-quick{flex-wrap:wrap;gap:6px;display:flex}.schedule-when{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--line);background:var(--panel);cursor:pointer;border-radius:999px;flex:none;min-height:32px;padding:0 12px;font-weight:600}.chip.on{background:var(--primary);border-color:var(--primary);color:var(--primary-text)}.slot-entries{border-top:1px dashed var(--line);flex-direction:column;gap:4px;margin:0;padding:6px 0 0;font-size:.85rem;list-style:none;display:flex}.slot-entry{flex-wrap:wrap;align-items:baseline;gap:2px 6px;display:flex}.slot-entry-who{font-weight:700}.slot-entry-time{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.8rem}.slot-entry-text{white-space:pre-wrap;flex:100%}.slot-entry-text.deleted{color:var(--muted);font-style:italic}.slot-entry .tag{margin-left:0}.slot-entry .icon-btn.small{width:28px;height:28px;margin-left:auto}.slot-actions{flex-wrap:wrap;gap:6px;display:flex}.slot-actions button{flex:auto;justify-content:center;align-items:center;gap:4px;min-height:40px;padding:0 12px;display:inline-flex}.slot-actions button[aria-pressed=true]{background:var(--primary);color:var(--primary-text)}.taken-down .link{padding-left:0}.pick-list.down-list{max-height:none;overflow:visible}.down-row{flex-direction:column;gap:2px;padding:10px 8px;display:flex}.down-title{font-weight:600}.down-actions{gap:4px;display:flex}.down-actions .link{padding-left:0}.slot-sheet{flex-direction:column;gap:12px;display:flex}.slot-sheet .slot{border:0;padding:0}.slot-write{gap:6px;display:flex}.slot-write input{flex:1}.board-mark{color:var(--primary);cursor:pointer;background:0 0;border:0;padding:2px;display:inline-flex}.barcode{z-index:35;padding:calc(12px + env(safe-area-inset-top)) 16px calc(16px + env(safe-area-inset-bottom));color:#fff;background:#000;flex-direction:column;align-items:center;gap:12px;display:flex;position:fixed;inset:0}.barcode-top{justify-content:space-between;align-items:center;width:100%;display:flex}.barcode-top .icon-btn{color:#fff}.barcode-title{font-weight:700}.barcode-image{flex:1;justify-content:center;align-items:center;width:100%;min-height:0;display:flex}.barcode-image img{object-fit:contain;background:#fff;max-width:100%;max-height:100%}.barcode-hint{color:#ccc;margin:0;font-size:.9rem}.barcode button.primary{width:100%;max-width:420px}.gift-pick{align-items:center;gap:12px;display:flex}.gift-pick img{object-fit:cover;border-radius:10px;width:96px;height:96px}.gift-pick button.secondary{align-items:center;gap:6px;display:inline-flex}.pick-grid{grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:4px;max-height:50dvh;margin:0 0 12px;padding:0;list-style:none;display:grid;overflow-y:auto}.pick-cell{aspect-ratio:1;background:var(--bg);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.pick-cell.on{outline:3px solid var(--primary);outline-offset:-3px}.pick-cell input{z-index:1;width:20px;height:20px;margin:0;position:absolute;top:6px;left:6px}.pick-cell img{object-fit:cover;width:100%;height:100%}.pick-name{text-align:center;overflow-wrap:anywhere;padding:4px;font-size:.75rem}.health-problems{color:var(--danger);margin:0 0 8px;padding-left:1.2em;font-weight:600}.health-facts{grid-template-columns:auto 1fr;gap:4px 12px;margin:0;font-size:.9rem;display:grid}.health-facts dt{color:var(--muted)}.health-facts dd{overflow-wrap:anywhere;margin:0}.rule-stats table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.9rem}.rule-stats th,.rule-stats td{text-align:right;border-bottom:1px solid var(--line);padding:4px 6px}.rule-stats thead th{color:var(--muted);font-weight:600}.rule-stats th:first-child{text-align:left}.rule-stats tbody th{font-weight:500}.rule-stats tr.sub th{color:var(--muted);padding-left:20px}.rule-stats tr.often td:last-child{color:var(--danger);font-weight:600}.search-bar{background:var(--bg);min-width:0;color:var(--muted);border-radius:999px;flex:1;align-items:center;gap:8px;margin:8px 4px;padding:0 14px;display:flex}.search-bar:focus-within{outline:2px solid var(--primary);outline-offset:-2px}.search-bar .icon{flex:none}.search-bar input{min-width:0;min-height:40px;color:var(--text);font:inherit;background:0 0;border:0;flex:1;padding:0}.search-bar input:focus{outline:none}.search-scope{border-bottom:1px solid var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 8px;padding:6px 16px;font-size:.9rem;display:flex}.search-results{margin:0;padding:0;list-style:none}.search-row{border:0;border-bottom:1px solid var(--line);width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;flex-direction:column;gap:4px;padding:10px 4px;display:flex}.search-meta{min-width:0;color:var(--muted);gap:8px;font-size:.82rem;display:flex}.search-room{white-space:nowrap;text-overflow:ellipsis;min-width:0;color:var(--text);font-weight:700;overflow:hidden}.search-when{flex:none;margin-left:auto}.search-text{overflow-wrap:anywhere}mark{background:var(--mine);color:var(--mine-text);border-radius:3px;padding:0 1px}.around{flex-direction:column;gap:8px;display:flex}.around-list{flex-direction:column;gap:2px;max-height:55vh;display:flex;overflow-y:auto}.around-day,.around-system{text-align:center;color:var(--muted);margin:6px 0 2px;font-size:.78rem}.around-msg{border-radius:10px;flex-direction:column;gap:2px;padding:6px 10px;display:flex}.around-msg.found{background:var(--bg);box-shadow:inset 3px 0 0 var(--primary)}.around-meta{color:var(--muted);font-size:.78rem}.around-text{white-space:pre-wrap;overflow-wrap:anywhere}.app-lock{z-index:100;background:var(--bg);justify-content:center;align-items:center;padding:24px 16px;display:flex;position:fixed;inset:0}.app-lock-box{text-align:center;flex-direction:column;align-items:center;gap:14px;width:100%;max-width:320px;display:flex}.app-lock-box h2{margin:0;font-size:1.2rem}.app-lock-icon{background:var(--panel);color:var(--primary);box-shadow:var(--shadow);border-radius:50%;padding:16px;display:inline-flex}.app-lock-box form{gap:8px;width:100%;display:flex}.app-lock-pin{letter-spacing:.4em;text-align:center;border:1px solid var(--line);background:var(--panel);border-radius:10px;flex:1;min-width:0;padding:10px 12px;font-size:1.4rem}[data-bg=sky]{--room-tint:#7fb8ff}[data-bg=mint]{--room-tint:#6fd6b5}[data-bg=lemon]{--room-tint:#ffd84d}[data-bg=peach]{--room-tint:#ffab7a}[data-bg=rose]{--room-tint:#f59bc0}[data-bg=lavender]{--room-tint:#b3a0f2}[data-bg=sand]{--room-tint:#d6bf9b}[data-bg=slate]{--room-tint:#8394aa}.messages-wrap[data-bg]:not([data-bg=photo]){background:color-mix(in srgb, var(--room-tint) var(--tint-share), var(--bg))}.messages-wrap[data-bg=photo]{background:linear-gradient(var(--photo-veil), var(--photo-veil)), var(--room-photo) center / cover no-repeat, var(--chat-bg)}.messages-wrap[data-bg=photo] :is(.msg-meta,.msg-sender,.room-start){color:var(--text);text-shadow:0 0 3px var(--bg), 0 0 6px var(--bg)}.bg-swatches{grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px;display:grid}.bg-swatches .bg-swatch{background:0 0;border:2px solid #0000;border-radius:12px;flex-direction:column;align-items:center;gap:6px;padding:8px 4px;font-size:.85rem;display:flex}.bg-swatches .bg-swatch[aria-pressed=true]{border-color:var(--primary)}.bg-swatch-color{border:1px solid var(--line);background:var(--chat-bg);border-radius:50%;width:44px;height:44px}.bg-swatch[data-bg] .bg-swatch-color{background:color-mix(in srgb, var(--room-tint) var(--tint-share), var(--bg))}.call-screen{z-index:90;color:#f2f5f8;background:#10151b;flex-direction:column;display:flex;position:fixed;inset:0}.call-head{padding:calc(12px + env(safe-area-inset-top)) 16px 8px;text-align:center}.call-head h2{margin:0;font-size:1.15rem}.call-status{color:#b8c3cf;margin:4px 0 0;font-size:.9rem}.call-grid{flex:1;grid-template-columns:1fr;grid-auto-rows:1fr;gap:6px;min-height:0;padding:6px;display:grid}.call-grid.n3,.call-grid.n4{grid-template-columns:1fr 1fr}@media (min-width:700px){.call-grid.n2{grid-template-columns:1fr 1fr}}.call-tile{background:#1c252f;border-radius:14px;justify-content:center;align-items:center;min-height:0;display:flex;position:relative;overflow:hidden}.call-tile video{object-fit:cover;opacity:0;width:100%;height:100%;position:absolute;inset:0}.call-tile.with-video video{opacity:1}.call-tile-person{color:#8a99a8;position:relative}.call-tile-name{background:#00000073;border-radius:999px;align-items:center;gap:4px;padding:3px 10px;font-size:.85rem;display:inline-flex;position:absolute;bottom:10px;left:10px}.call-self{right:12px;bottom:calc(96px + env(safe-area-inset-bottom));aspect-ratio:3/4;object-fit:cover;background:#000;border:2px solid #ffffff4d;border-radius:12px;width:28vw;max-width:180px;position:absolute}.call-self.mirror{transform:scaleX(-1)}.call-controls{padding:14px 16px calc(18px + env(safe-area-inset-bottom));justify-content:center;gap:14px;display:flex}.call-controls .icon-btn{color:#fff;background:#ffffff24;width:56px;height:56px}.call-controls .icon-btn[aria-pressed=true]{color:#10151b;background:#f2f5f8}.call-controls .icon-btn.call-hangup{color:#fff;background:#e5484d}.call-incoming{z-index:95;color:#fff;background:#0a0e13f0;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.call-incoming-box{text-align:center;flex-direction:column;align-items:center;gap:10px;display:flex}.call-incoming-box h2{margin:6px 0 0;font-size:1.5rem}.call-incoming-box p{color:#c9d3dd;margin:0}.call-incoming-buttons{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:24px;display:flex}.call-incoming-buttons button{color:#fff;cursor:pointer;border:0;border-radius:999px;align-items:center;gap:8px;min-height:52px;padding:0 22px;font-size:1rem;font-weight:700;display:inline-flex}.call-decline{background:#e5484d}.call-accept{background:#2e9e5b}.call-accept.by-voice{background:#3c5a78}.call-bar{border-bottom:1px solid var(--line);background:var(--panel);color:var(--ok);align-items:center;gap:8px;padding:8px 14px;font-weight:600;display:flex}.room-tabs{scrollbar-width:none;overflow-x:auto}.room-tabs button{flex:none}.map-box{background:var(--bg);border:1px solid var(--line);border-radius:10px;width:100%;overflow:hidden}.map-mini{background:var(--bg);pointer-events:none;border-radius:10px;width:100%;height:140px;overflow:hidden}.map-pick{height:260px}.map-tab{height:45dvh;min-height:240px}.map-trails{height:65dvh;min-height:300px}.map-pin{pointer-events:none;flex-direction:column;align-items:center;gap:2px;display:flex;transform:translateY(2px)}.map-pin-label,.map-pin-sub{background:var(--panel);max-width:160px;color:var(--text);box-shadow:var(--shadow);white-space:nowrap;text-overflow:ellipsis;border-radius:8px;padding:1px 6px;font-size:.8rem;font-weight:700;overflow:hidden}.map-pin-sub{color:var(--muted);font-size:.72rem;font-weight:400}.map-pin-dot{background:var(--primary);width:14px;height:14px;box-shadow:var(--shadow);border:3px solid #fff;border-radius:50%}.card-msg.location .card-kind{color:#b4532a}.card-msg.location.ended{opacity:.85}.tag.live-tag{background:color-mix(in srgb, var(--ok) 16%, transparent);color:var(--ok)}.loc-where{overflow-wrap:anywhere}.loc-summary{font-weight:600}.loc-summary.error{color:var(--danger)}.loc-note{margin:0}.loc-stop{align-self:flex-start}.loc-links{flex-wrap:wrap;gap:4px 12px;font-size:.85rem;display:flex}.loc-actions{flex-wrap:wrap;gap:8px;display:flex}.loc-actions button{align-items:center;gap:4px;width:auto;display:inline-flex}.loc-durations{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.loc-people{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.live-list li .loc-links{padding:0 8px 10px}.radius-choice{flex-wrap:wrap;gap:4px 12px;display:flex}.trails-page{flex-direction:column;gap:8px;display:flex}:root{--primary:#2f6b4f;--bg:#f3f6f4;--income:#1f7a4d;--expense:#1d2733;--chart-income:#4caf7d;--chart-expense:#e07a5f;--over:#c62828}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--primary:#74c69d;--primary-text:#0f1a14;--bg:#111814;--income:#7bd389;--expense:#e6ebf1;--chart-income:#5fbf8a;--chart-expense:#e8907a;--over:#ff6b6b}}:root[data-theme=dark]{--primary:#74c69d;--primary-text:#0f1a14;--bg:#111814;--income:#7bd389;--expense:#e6ebf1;--chart-income:#5fbf8a;--chart-expense:#e8907a;--over:#ff6b6b}.t-app{background:var(--bg)}.t-single,.t-split{flex:1;min-height:0;display:flex}.t-side{border-right:1px solid var(--line);background:var(--panel);flex-direction:column;flex:none;width:280px;min-height:0;display:flex;overflow-y:auto}.t-side-head{border-bottom:1px solid var(--line);align-items:center;gap:8px;min-height:56px;padding:0 16px;font-size:1.1rem;display:flex}.t-main{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.t-body{flex:1;min-height:0;display:flex;overflow:hidden}.t-title{align-items:center;gap:6px;min-width:0;margin:0;font-size:1.15rem;font-weight:700;display:flex}button.t-pick{cursor:pointer;color:inherit;background:0 0;border:0;padding:6px 4px}.t-pick>span:first-child,.t-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.t-top-tabs button[aria-current=page]{background:var(--bg);color:var(--text)}.t-top-tabs button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:8px 14px;font-weight:600}.t-bottom-tabs{border-top:1px solid var(--line);background:var(--panel);padding-bottom:env(safe-area-inset-bottom);grid-template-columns:repeat(5,1fr);display:grid}.t-bottom-tabs button{min-height:54px;color:var(--muted);cursor:pointer;background:0 0;border:0;font-weight:600}.t-bottom-tabs button[aria-current=page]{color:var(--primary);box-shadow:inset 0 3px 0 var(--primary)}.t-page{gap:12px}@media (min-width:900px){.t-wide-page{max-width:1100px}}.t-books{flex-direction:column;gap:12px;padding:8px;display:flex}.t-book{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;flex-direction:column;gap:2px;width:100%;padding:10px;display:flex}.t-book:hover{background:var(--bg)}.t-book[aria-current=true]{background:var(--bg);box-shadow:inset 3px 0 0 var(--primary)}.t-book-name{font-weight:600}.tag.t-family{background:color-mix(in srgb, var(--primary) 18%, transparent);color:var(--primary)}.tag.t-private{background:var(--line)}.tag.t-pending{background:var(--unfinished-bg);color:var(--unfinished-text)}.t-month{justify-content:center;align-items:center;gap:8px;display:flex}.t-month h2{text-align:center;min-width:8em;margin:0;font-size:1.15rem}.t-money,.num{font-variant-numeric:tabular-nums;white-space:nowrap}.t-money{font-weight:600}.t-money.income,.income{color:var(--income)}.t-sums{grid-template-columns:repeat(3,1fr);gap:8px;margin:0;display:grid}.t-sums div{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 12px}.t-summary .t-sums div{border:0;padding:0}.t-sums dt{color:var(--muted);font-size:.8rem}.t-sums dd{font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin:2px 0 0;font-size:1.05rem;font-weight:700}.t-sums dd.danger{color:var(--over)}button.t-quick{border-radius:16px;min-height:64px;font-size:1.2rem}.t-total-line{margin:0}.t-track{background:var(--bg);border-radius:5px;height:10px;margin-top:4px;display:block;overflow:hidden}.card .t-track{background:color-mix(in srgb, var(--line) 70%, transparent)}.t-fill{background:var(--primary);border-radius:5px;height:100%;display:block}.t-track.none .t-fill{background:var(--muted);opacity:.45}.t-track.over .t-fill{background:var(--over)}.t-bars{flex-direction:column;gap:12px;display:flex}.t-bar-line{flex-direction:column;display:flex}.t-bar-head{justify-content:space-between;gap:8px;display:flex}.t-bar-name{font-weight:600}.t-bar-amount{font-variant-numeric:tabular-nums;text-align:right}.t-bar-foot{text-align:right;margin-top:2px}.t-bar-children{color:var(--muted);margin:4px 0 0;padding:0 0 0 12px;font-size:.85rem;list-style:none}.t-bar-children li{font-variant-numeric:tabular-nums;justify-content:space-between;gap:8px;display:flex}.t-days{flex-direction:column;gap:10px;display:flex}.t-day{gap:4px;padding:10px 14px}.t-day h3{justify-content:space-between;font-size:.95rem;display:flex}.t-row{text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;width:100%;padding:8px 0;display:flex}.list li+li .t-row{border-top:1px solid var(--line)}.t-row .grow{flex-direction:column;display:flex}.t-row-title{font-weight:600}.t-row-meta{color:var(--muted);font-size:.85rem}.t-table{border-collapse:collapse;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);width:100%;overflow:hidden}.t-table th,.t-table td{border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;padding:8px 10px}.t-table th{color:var(--muted);background:var(--bg);font-size:.85rem;font-weight:600}.t-table .num{text-align:right}.t-table td.danger{color:var(--over)}.t-rows tbody tr{cursor:pointer}.t-rows tbody tr:hover{background:var(--bg)}.t-rows tr.pending{opacity:.75}.t-cell-btn{cursor:pointer;white-space:nowrap;background:0 0;border:0;padding:0}.t-memo{color:var(--muted);max-width:22em}.t-dim .t-track{height:6px}.t-scroll{overflow-x:auto}.t-chart{width:100%;height:auto;max-height:260px;display:block}.t-chart-income{fill:var(--chart-income)}.t-chart-expense{fill:var(--chart-expense)}.t-chart-label{fill:var(--muted);font-size:13px}.t-chart-axis{stroke:var(--line)}.t-legend{color:var(--muted);align-items:center;gap:6px;margin:0;display:flex}.t-key{border-radius:2px;width:10px;height:10px;display:inline-block}.t-key.income{background:var(--chart-income);margin-left:4px}.t-key.expense{background:var(--chart-expense);margin-left:8px}.t-form{flex-direction:column;gap:12px;display:flex}.t-seg{background:var(--bg);border-radius:12px;grid-template-columns:1fr 1fr;padding:4px;display:grid}.t-seg button{min-height:40px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:9px;font-weight:700}.t-seg button[aria-pressed=true]{background:var(--panel);color:var(--text);box-shadow:var(--shadow)}.t-seg button.income[aria-pressed=true]{color:var(--income)}.t-amount{align-items:center;gap:8px;display:flex}.t-amount input{text-align:right;font-variant-numeric:tabular-nums;flex:1;font-size:1.5rem;font-weight:700}.t-chips{flex-wrap:wrap;gap:6px;display:flex}.t-chips .chip{min-height:38px}.t-chips.t-sub{border-left:3px solid var(--line);margin-top:4px;padding:8px 0 0 10px}.t-defaults{border:1px dashed var(--line);text-align:left;cursor:pointer;color:var(--muted);background:0 0;border-radius:10px;flex-wrap:wrap;justify-content:space-between;gap:4px 12px;padding:10px 12px;display:flex}.t-defaults .link{padding:0}.t-buttons{gap:8px;display:flex}.t-end{align-self:flex-end}form.row{align-items:flex-end}form.row .field{flex:1;min-width:0}.t-budget-group{border-top:1px solid var(--line);flex-direction:column;gap:4px;padding-top:10px;display:flex}.t-budget-group .link{align-self:flex-start;padding-left:0}.t-budget-line.sub{padding-left:16px}.t-budget-line .t-amount input{font-size:1.05rem}.t-item{align-items:center;gap:2px;padding:2px 0;display:flex}.t-item.sub{color:var(--muted);padding-left:20px}.t-item-group+.t-item-group{border-top:1px solid var(--line)}.t-add-item{flex-direction:column;gap:10px;display:flex}.t-csv-errors{max-height:200px;margin:0;padding-left:18px;overflow-y:auto}.t-links>button{font-weight:600}.empty-note{text-align:center;margin:8px 0}.t-page>.primary,.t-page>.secondary{align-self:stretch}@media (min-width:900px){.t-page>.primary:not(.t-quick){align-self:flex-start}}:root{--g-line:#e3e7ec;--g-head:#f4f6f8;--g-head-on:#dcebe3;--g-sel:color-mix(in srgb, var(--primary) 14%, transparent);--g-cell-bg:#fff;--g-err:#b3261e}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--g-line:#2a332e;--g-head:#18201b;--g-head-on:#24382c;--g-cell-bg:#121915;--g-err:#ff8a80}}:root[data-theme=dark]{--g-line:#2a332e;--g-head:#18201b;--g-head-on:#24382c;--g-cell-bg:#121915;--g-err:#ff8a80}.g-screen{background:var(--panel);flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.g-tools{border-bottom:1px solid var(--line);scrollbar-width:thin;flex:none;align-items:center;gap:4px;padding:6px 8px;display:flex;overflow-x:auto}.g-tools select{flex:none;width:auto;min-height:32px;padding:0 6px}.g-tool{min-width:32px;height:32px;color:inherit;cursor:pointer;font:inherit;background:0 0;border:1px solid #0000;border-radius:8px;flex:none;justify-content:center;align-items:center;display:inline-flex;position:relative}.g-tool:hover,.g-tool.on{background:var(--bg);border-color:var(--line)}.g-tool.g-text{white-space:nowrap;padding:0 10px;font-size:.9rem}.g-color input{opacity:0;cursor:pointer;position:absolute;inset:0}.g-color span{font-weight:700;text-decoration:underline}.g-fill{border:1px solid var(--muted);border-radius:3px;width:16px;height:16px;display:inline-block}.g-sep{background:var(--line);flex:none;width:1px;height:22px;margin:0 4px}.g-bar{border-bottom:1px solid var(--line);flex:none;align-items:flex-start;gap:6px;padding:4px 8px;display:flex}.g-ref{min-width:64px;color:var(--muted);flex:none;padding:6px 4px;font-family:ui-monospace,monospace;font-size:.85rem}.g-formula{resize:vertical;field-sizing:content;flex:1;min-width:0;min-height:32px;max-height:30vh;padding:5px 8px;font-family:ui-monospace,monospace;font-size:.9rem}.g-bar-buttons{flex:none;display:flex}.g-status{color:var(--muted);background:var(--bg);flex:none;padding:2px 10px;font-size:.8rem}.g-scroll{background:var(--g-cell-bg);overscroll-behavior:contain;flex:1;min-height:0;position:relative;overflow:auto}.g-size{position:relative}.g-view{-webkit-user-select:none;user-select:none;font-size:.875rem;position:sticky;top:0;left:0;overflow:hidden}.g-pane{position:absolute;overflow:hidden}.g-pane-in{position:absolute;top:0;left:0}.g-c{border-right:1px solid var(--g-line);border-bottom:1px solid var(--g-line);box-sizing:border-box;white-space:pre;height:24px;color:var(--text);padding:0 4px;line-height:23px;position:absolute;overflow:hidden}.g-c.g-r{text-align:right}.g-c.g-ctr{text-align:center}.g-c.g-wrap{white-space:pre-wrap;line-height:1.1}.g-c.g-err{color:var(--g-err);font-size:.8rem}.g-c.g-pend{box-shadow:inset 2px 0 #f0b429}.g-c.g-circ{box-shadow:inset 0 -2px 0 var(--g-err)}.g-c.g-spill{background-image:linear-gradient(to right, color-mix(in srgb, var(--primary) 6%, transparent), transparent)}.g-sel{background:var(--g-sel);border:1px solid var(--primary);pointer-events:none;position:absolute}.g-active{border:2px solid var(--primary);pointer-events:none;box-sizing:border-box;position:absolute}.g-heads-c,.g-heads-r{pointer-events:none;position:absolute;inset:0}.g-heads-c .g-pane,.g-heads-r .g-pane{pointer-events:auto;background:var(--g-head)}.g-ch,.g-rh{box-sizing:border-box;background:var(--g-head);color:var(--muted);text-align:center;border-right:1px solid var(--g-line);border-bottom:1px solid var(--g-line);cursor:default;font-size:.75rem;position:absolute}.g-ch{height:24px;line-height:23px;top:0}.g-rh{width:46px;height:24px;line-height:23px;left:0}.g-ch.on,.g-rh.on{background:var(--g-head-on);color:var(--text);font-weight:600}.g-resize{cursor:col-resize;z-index:1;width:6px;height:100%;position:absolute;top:0;right:-3px}.g-corner{background:var(--g-head);border-right:1px solid var(--g-line);border-bottom:1px solid var(--g-line);box-sizing:border-box;position:absolute;top:0;left:0}.g-freeze-h,.g-freeze-v{background:var(--muted);pointer-events:none;position:absolute}.g-freeze-h{height:2px;left:0;right:0}.g-freeze-v{width:2px;top:0;bottom:0}.g-editor{z-index:3;resize:none;opacity:0;pointer-events:none;color:#0000;caret-color:#0000;font:inherit;background:0 0;border:0;margin:0;padding:0;position:absolute;overflow:hidden}.g-editor.on{opacity:1;pointer-events:auto;border:2px solid var(--primary);background:var(--g-cell-bg);color:var(--text);caret-color:auto;min-height:24px;box-shadow:var(--shadow);field-sizing:content;box-sizing:border-box;white-space:pre-wrap;max-width:480px;max-height:240px;padding:2px 4px;line-height:18px}.g-tabs{border-top:1px solid var(--line);background:var(--g-head);flex:none;align-items:center;gap:2px;padding:2px 6px;display:flex;overflow-x:auto}.g-tabs>button[aria-pressed]{cursor:pointer;color:var(--muted);font:inherit;background:0 0;border:0;border-radius:0 0 8px 8px;flex:none;padding:6px 14px;font-size:.9rem}.g-tabs>button[aria-pressed=true]{background:var(--g-cell-bg);color:var(--primary);box-shadow:inset 0 2px 0 var(--primary);font-weight:700}.g-pop{z-index:50;background:var(--panel);border:1px solid var(--line);min-width:200px;box-shadow:var(--shadow);border-radius:10px;padding:4px;position:fixed}.g-pop .menu>button:not(.primary,.secondary){padding:8px 10px}.g-menu-list button.danger{color:var(--danger)}.row-buttons{flex-wrap:wrap;gap:8px;display:flex}.g-names{flex-direction:column;gap:4px;margin:0 0 12px;padding:0;list-style:none;display:flex}.g-name{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.g-name-n{font-weight:700}.g-name-f{overflow-wrap:anywhere;min-width:0;color:var(--muted);flex:1}.g-name-form{flex-wrap:wrap;gap:6px;width:100%;display:flex}.g-name-form input{flex:1;min-width:100px}.g-builtins dt{margin-top:6px;font-weight:700}.g-builtins dd{color:var(--muted);margin:0;font-size:.9rem}.g-skipped{margin:0;padding-left:20px}.g-chart{z-index:2;background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:8px;position:absolute;overflow:hidden}.g-chart-bar{height:24px;color:var(--muted);cursor:move;border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:0 0 0 8px;font-size:.8rem;display:flex}.g-chart-bar .icon-btn{width:24px;min-width:24px;height:24px}.g-chart svg{display:block}.g-chart .chart-title{fill:var(--text);font-size:13px;font-weight:700}.g-chart .chart-tick,.g-chart .chart-legend,.g-chart .chart-empty{fill:var(--muted);font-size:11px}.g-chart .chart-grid{stroke:var(--g-line)}.g-chart .chart-axis{stroke:var(--muted)}.g-chart-size{cursor:nwse-resize;background:linear-gradient(135deg, transparent 50%, var(--muted) 50%);opacity:.5;width:14px;height:14px;position:absolute;bottom:0;right:0}.t-table-wrap{overflow-x:auto}.t-forecast td,.t-forecast th{white-space:nowrap}.t-total-row td{border-top:2px solid var(--line);font-weight:700}.t-forecast-chart .chart-tick,.t-forecast-chart .chart-legend{fill:var(--muted);font-size:11px}.t-forecast-chart .chart-grid{stroke:var(--line)}.t-forecast-chart .chart-axis{stroke:var(--muted)}.g-template{flex-direction:column;align-items:flex-start;gap:2px;display:flex}.g-over{pointer-events:none;position:absolute;top:0;left:4px;overflow:hidden}
