:root{--font-display: "Dela Gothic One", "Arial Black", sans-serif;--font-body: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--bg: #faf8f5;--surface: #ffffff;--surface-2: #f3efe9;--surface-3: #ebe5dd;--bg-glass: #faf8f5eb;--sakura: #f6dfe5;--on-sakura: #19171b;--line: #e6e0d8;--line-strong: #8a8389;--text: #19171b;--text-dim: #5c5660;--accent: #bf303f;--accent-hover: #a32634;--on-accent: #faf8f5;--focus: #19171b;--err: #a3202f;--err-surface: #fdeceb;--ok: #2e7d4f;--ok-surface: #eef7f2;--ok-on-dark: #8fd3b4;--warn: #8a5200;--warn-bright: #d9890b;--warn-surface: #fcf0dc;--tint-on-dark: #faf8f533;--scrim: #19171b6b;--tile-b: #bf303f40;--r-1: 2px;--r-2: 6px;--r-pill: 999px;--shadow: #19171b14;--shadow-sheet: 0 -10px 34px -14px #19171b6b;--shadow-toast: 0 10px 24px -12px #19171ba6;--tap: 48px;--tap-compact: 40px}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/inter-latin-400-normal.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/inter-latin-600-normal.woff2) format("woff2")}@font-face{font-family:Dela Gothic One;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/dela-gothic-one-latin-400-normal.woff2) format("woff2")}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background-color:var(--bg);color:var(--text);font-family:var(--font-body);font-size:clamp(1rem,.96rem + .2vw,1.125rem);line-height:1.6;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}h1,h2,h3,h4{margin:0;font-family:var(--font-display);font-weight:400;line-height:1;letter-spacing:.01em;text-transform:uppercase;overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto}p{margin:0}button{font:inherit;color:inherit}a{color:inherit;text-decoration:none}:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:var(--r-2)}@media(prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;transition-duration:.001ms!important}}.phone{position:relative;width:100%;min-height:100dvh;margin:0 auto;background:var(--bg);overflow:hidden}.app{display:flex;flex-direction:column;height:100dvh}.appbar{padding:calc(10px + env(safe-area-inset-top)) 16px 10px;background:var(--bg)}.screen{flex:1 1 auto;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:6px 16px 28px}.screen--chat{padding:0;display:flex;flex-direction:column}.screen--chat>:not(router-outlet){display:flex;flex-direction:column;flex:1;min-height:0}.tabbar{flex:none;display:grid;grid-template-columns:repeat(4,1fr);gap:2px;padding:6px 6px calc(6px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line)}@media(min-width:760px){body{background:var(--surface-2)}.phone{width:440px;border-left:1px solid var(--line);border-right:1px solid var(--line)}}.bar{position:relative;display:flex;align-items:center;gap:10px;min-height:44px}.brand{display:block;width:28px;height:28px}.brand--large{width:72px;height:72px;margin-bottom:14px}.wordmark{font-family:var(--font-display);font-size:18px;font-weight:400;color:var(--accent);letter-spacing:.01em;line-height:1;text-transform:uppercase}.bar-titles{position:absolute;inset:0 88px;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;text-align:center;pointer-events:none}.bar-title{font-family:var(--font-display);font-size:15px;font-weight:400;letter-spacing:.01em;line-height:1.1;text-transform:uppercase;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bar-sub{font-size:12px;color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.back-btn{min-height:44px;display:inline-flex;align-items:center;margin-left:-8px;padding:0 8px;background:none;border:0;border-radius:var(--r-2);cursor:pointer;color:var(--text);font-family:var(--font-display);font-size:12px;font-weight:400;letter-spacing:.01em;text-transform:uppercase}.back-btn:active{color:var(--accent)}.back-btn:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.icon-btn{width:44px;height:44px;display:grid;place-items:center;background:none;border:0;border-radius:var(--r-2);cursor:pointer;color:var(--text)}.icon-btn:active{color:var(--accent)}.icon-btn:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.icon-btn .ic{width:26px;height:26px}.tab{min-height:var(--tap);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:6px 2px;background:none;border:0;border-radius:var(--r-2);cursor:pointer;color:var(--text-dim);font-size:11px;font-weight:600}.tab .ic{width:22px;height:22px}.tab.is-on{color:var(--accent-hover);background:var(--sakura)}.icon-btn--end{margin-left:auto}.bell{position:relative;margin-right:-8px}.bell-count{position:absolute;top:6px;right:4px;min-width:18px;height:18px;padding:0 5px;display:grid;place-items:center;border-radius:var(--r-pill);background:var(--err);color:var(--on-accent);font-size:11px;font-weight:600;line-height:1}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.ic{width:20px;height:20px;flex:none}.stack{display:flex;flex-direction:column;gap:12px}.section-title{font-family:var(--font-body);font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--text-dim);margin:22px 0 10px}.lead{color:var(--text-dim);margin:2px 0 14px}.tap{transition:transform .12s ease,background-color .12s ease;cursor:pointer}.tap:active{transform:scale(.985)}.stretch{position:absolute;inset:0;z-index:1;background:none;border:0;border-radius:inherit;cursor:pointer}.badge{display:inline-flex;align-items:center;padding:4px 10px;border-radius:var(--r-pill);font-size:12px;font-weight:600;white-space:nowrap}.badge-amber{background:var(--warn-surface);color:var(--warn)}.badge-blue{background:var(--surface-2);color:var(--text-dim)}.badge-green{background:var(--ok-surface);color:var(--ok)}.tone-amber{color:var(--warn)}.tone-blue{color:var(--text-dim)}.tone-green{color:var(--ok)}.tone-petrol{color:var(--accent)}.tone-violet,.tone-slate{color:var(--text-dim)}.tone-red{color:var(--err)}.empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:32px 16px;color:var(--text-dim);text-align:center;border:1px dashed var(--line-strong);border-radius:var(--r-2);background:var(--surface-2)}.greeting{padding:10px 0 4px}.greeting h1{font-size:28px;font-weight:600}.greeting p{color:var(--text-dim);margin-top:4px}.chev{color:var(--text-dim)}.quote{margin:4px 0;padding:14px 16px;background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:var(--r-2);font-size:16px}.quote--sm{font-size:14px;padding:12px 14px;color:var(--text-dim)}.actions{margin-top:22px}.facts{display:grid;grid-template-columns:1fr auto;gap:10px 16px;margin:4px 0 24px}.facts dt{font-size:14px;color:var(--text-dim)}.facts dd{margin:0;font-size:15px;font-weight:600;text-align:right}.note{font-size:14px;color:var(--text-dim)}.link-quiet{align-self:center;border:0;background:none;padding:10px 4px;font-size:14px;font-weight:600;color:var(--text-dim);text-decoration:underline}.section-head{margin:26px 0 10px;font-size:15px;font-weight:600}.section-head:first-child{margin-top:0}.section-head+.note{margin-bottom:12px}.bullets{margin:0 0 18px;padding-left:20px}.bullets li{margin-bottom:8px;line-height:1.5;color:var(--text-dim)}.btn{min-height:var(--tap);display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 18px;border-radius:var(--r-2);border:1px solid transparent;cursor:pointer;font-size:15px;font-weight:600}.btn-primary{background:var(--accent);color:var(--on-accent)}.btn-secondary{background:var(--surface);color:var(--text);border-color:var(--line-strong)}.btn-ghost{background:none;color:var(--accent);padding:10px 4px;min-height:44px}@media(hover:hover){.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-secondary:hover:not(:disabled){background:var(--surface-2)}.btn-ghost:hover:not(:disabled){background:var(--sakura);color:var(--accent-hover)}}.btn:disabled,.field:disabled{opacity:.5;cursor:not-allowed}.chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.chip{flex:none;min-height:40px;padding:8px 16px;border-radius:var(--r-pill);border:1px solid var(--line-strong);background:var(--surface);font-size:14px;font-weight:600;color:var(--text-dim);cursor:pointer}.chip.is-on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.field-label{font-size:13px;font-weight:600;color:var(--text-dim);margin-top:6px}.field-label .opt{font-weight:400;color:var(--text-dim)}.field{min-height:var(--tap);padding:12px 14px;border-radius:var(--r-2);border:1px solid var(--line-strong);background:var(--surface);font:inherit;color:var(--text)}.join{display:flex;flex-direction:column;gap:10px;padding:48px 4px 0}.join .wordmark{font-size:26px;margin-bottom:18px}.join .btn{margin-top:10px}.code{font-size:22px;font-weight:600;letter-spacing:.16em;text-transform:uppercase}.join-legal{align-self:center;margin-top:6px;font-size:13px;color:var(--text-dim)}.join-legal a{color:inherit;text-decoration:underline}.join-error{font-size:14px;font-weight:600;color:var(--err)}.code-show{padding:14px 12px;border-radius:var(--r-2);border:1px dashed var(--line-strong);background:var(--surface-2, var(--surface));font-size:20px;font-weight:600;letter-spacing:.1em;text-align:center;word-break:break-all}.code--small{font-size:17px;letter-spacing:.1em}.field--area{min-height:96px;resize:vertical;line-height:1.45}.card{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-2);box-shadow:0 1px 2px var(--shadow);padding:16px;text-align:left;width:100%}.detail{padding:6px 0 4px;display:flex;flex-direction:column;gap:10px}.detail-title{font-size:25px;font-weight:600}.code-card{display:flex;flex-direction:column;gap:12px}.code-value{font-family:var(--font-display);font-size:26px;font-weight:400;letter-spacing:.01em;color:var(--accent)}.row-card{display:flex;align-items:center;gap:13px;padding:14px}.row-ic{width:44px;height:44px;flex:none;display:grid;place-items:center;border-radius:15px;background:var(--sakura);color:var(--accent-hover)}.row-title{flex:1;min-width:0;font-size:16px;font-weight:600}.row-body{display:flex;flex:1;flex-direction:column;gap:3px;min-width:0;text-align:left}.row-meta{font-size:12px;color:var(--text-dim)}.notice-card{display:flex;align-items:center;gap:12px;margin-bottom:18px;padding:14px 16px}.row-actions{display:flex;gap:10px;margin-top:12px}.row-actions .btn{flex:1}.update-card .btn{flex:none}.news-card{margin-bottom:18px;padding:14px 16px}.news-card .row-title{margin:0 0 8px}.news-points{margin:0;padding-left:18px;color:var(--text-dim)}.news-points li+li{margin-top:6px}.group-card{display:flex;flex-direction:column;gap:14px;border:0;padding:18px 16px}.group-head{display:flex;align-items:center;gap:12px}.avatar{width:46px;height:46px;flex:none;display:grid;place-items:center;border-radius:16px;background:var(--accent);color:var(--on-accent);font-weight:600;font-size:19px}.avatar--sm{width:32px;height:32px;border-radius:12px;font-size:14px;background:var(--sakura);color:var(--accent-hover)}.group-titles{display:flex;flex-direction:column;min-width:0;flex:1}.group-child{font-size:12px;color:var(--text-dim);font-weight:600}.group-org{font-size:13px;color:var(--text-dim);order:3}.group-room{font-family:var(--font-display);font-size:16px;font-weight:400;letter-spacing:.01em;line-height:1;text-transform:uppercase}.group-stats{display:flex;flex-wrap:wrap;gap:8px}.stat{display:inline-flex;align-items:center;gap:6px;padding:7px 11px;border-radius:var(--r-pill);background:var(--surface-2);font-size:13px;font-weight:600}.stat .ic{width:16px;height:16px}.stat.tone-amber{background:var(--warn-surface)}.stat.tone-petrol{background:var(--sakura)}.group-next{display:flex;align-items:center;gap:8px;padding-top:12px;border-top:1px solid var(--line);font-size:13px;color:var(--text-dim)}.group-next .ic{width:17px;height:17px;color:var(--text-dim)}.tiles{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:8px}.tile{position:relative;overflow:hidden;aspect-ratio:1/.6;display:flex;flex-direction:column;justify-content:flex-start;gap:8px;padding:14px;border:1px solid var(--line);border-radius:var(--r-2);background:var(--surface);box-shadow:0 1px 2px var(--shadow);text-align:left}.tile-ic{position:absolute;bottom:-22px;right:-16px;width:140px;height:140px;display:grid;place-items:center;pointer-events:none}.tile-ic .tile-art{width:100%;height:100%;fill:var(--tile-b)}.tile-label{position:relative;font-family:var(--font-display);font-size:12px;font-weight:400;letter-spacing:.01em;line-height:1.1;text-transform:uppercase;color:var(--text);overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}.tile-count{position:absolute;top:12px;right:12px;min-width:26px;height:26px;padding:0 8px;display:grid;place-items:center;border-radius:var(--r-pill);font-size:13px;font-weight:600;background:var(--accent);color:var(--on-accent)}.group-card.is-waiting{opacity:.75}.group-card.is-waiting .row-meta{display:block;margin-top:10px;line-height:1.45}.cat-chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.cat-chip .ic{width:16px;height:16px}.imp{display:flex;flex-direction:column;gap:6px}.imp-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.imp-title{font-size:17px;font-weight:600;margin-top:2px}.imp-text{color:var(--text-dim);font-size:15px}.imp-meta{font-size:13px;color:var(--text-dim)}.imp-due,.imp-owner{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:var(--text-dim)}.imp-due .ic,.imp-owner .ic{width:16px;height:16px}.imp-due.is-overdue{color:var(--err)}.imp-foot{display:flex;justify-content:flex-end;margin-top:2px}.imp-foot .btn{position:relative;z-index:2}.imp-foot .ic{width:18px;height:18px}.imp.status-erledigt{background:var(--surface-2);box-shadow:none}.imp.status-erledigt .imp-title{color:var(--text-dim)}.imp.status-erledigt .imp-text,.imp.status-erledigt .cat-chip{opacity:.68}.cat-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.cat-pick{min-height:var(--tap);display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:var(--r-2);border:1px solid var(--line-strong);background:var(--surface);font-size:14px;font-weight:600;cursor:pointer;text-align:left}.cat-pick.is-on{border-color:currentColor;box-shadow:inset 0 0 0 1px currentColor;background:var(--surface-2)}.cat-pick span{color:var(--text)}.imp-answer{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--text-dim)}.imp-answer .ic{width:16px;height:16px}.imp-answer.is-set{color:var(--ok)}.imp-count{margin-left:auto;font-weight:600;font-variant-numeric:tabular-nums}.answer-card{display:flex;flex-direction:column;gap:12px}.answer-choice{display:grid;grid-template-columns:1fr 1fr;gap:10px}.answer-row{display:flex;gap:10px}.answer-row .field{flex:1;min-width:0}.answer-mine{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:14px;color:var(--text-dim)}.answer-mine strong{color:var(--text)}.answer-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-top:20px}.answer-count{font-size:13px;font-weight:600;color:var(--text-dim);font-variant-numeric:tabular-nums}.answer-list{display:flex;flex-direction:column;gap:8px}.answer-line{display:flex;gap:10px;align-items:baseline;font-size:15px}.answer-line .answer-name{font-weight:600;flex:0 0 auto}.answer-line .answer-what{color:var(--text-dim);min-width:0;overflow-wrap:anywhere}.answer-missing{font-size:15px;color:var(--text-dim);overflow-wrap:anywhere}.answer-options{display:flex;flex-direction:column;gap:8px}.answer-option{position:relative;display:flex;align-items:center;gap:10px;padding:10px 12px;border:1.5px solid var(--line);border-radius:var(--r-2);background:var(--surface);color:var(--text);font:inherit;font-size:15px;text-align:left;overflow:hidden}.answer-option.is-on{border-color:var(--accent);font-weight:600}.answer-option-bar{position:absolute;inset:0 auto 0 0;background:var(--sakura);transition:width .2s ease-out}.answer-option-text,.answer-option-votes{position:relative}.answer-option-text{flex:1;min-width:0}.answer-option-votes{font-variant-numeric:tabular-nums;color:var(--text-dim)}.slot-list{display:flex;flex-direction:column;gap:8px}.slot{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1.5px solid var(--line);border-radius:var(--r-2);background:var(--surface);color:var(--text);font:inherit;font-size:15px;text-align:left}.slot.is-on{border-color:var(--ok);background:var(--ok-surface);font-weight:600}.slot.is-full{color:var(--text-dim);border-style:dashed}.slot-text{flex:1;min-width:0}.slot-count{font-variant-numeric:tabular-nums;color:var(--text-dim)}app-kasse .btn,app-kasse-detail .btn{min-height:var(--tap-compact);padding:8px 14px;gap:6px;border-radius:var(--r-2);font-size:14px}app-kasse .btn-ghost,app-kasse-detail .btn-ghost{min-height:var(--tap-compact);padding:8px 6px}app-kasse .btn app-icon,app-kasse-detail .btn app-icon{width:18px;height:18px}app-kasse .field,app-kasse-detail .field{min-height:var(--tap-compact);padding:8px 12px;border-radius:var(--r-2);font-size:16px}app-kasse .field--area,app-kasse-detail .field--area{min-height:96px}app-kasse .field-label,app-kasse-detail .field-label{margin-top:2px;font-size:12px}app-kasse .row-meta,app-kasse .empty,app-kasse .section-title,app-kasse .field-label .opt,app-kasse-detail .row-meta,app-kasse-detail .empty,app-kasse-detail .section-title,app-kasse-detail .field-label .opt{color:var(--text-dim)}app-kasse .card,app-kasse-detail .card{padding:12px;border-radius:var(--r-2)}app-kasse .event-actions,app-kasse-detail .event-actions{gap:8px;margin-top:2px}.kasse-card{display:flex;align-items:center;gap:10px;color:inherit;text-decoration:none}.kasse-form{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}.kasse-own{display:flex;flex-direction:column;gap:4px;margin-top:8px}.kasse-amount-big{font-family:var(--font-display);font-size:34px;font-weight:400;line-height:1.1;color:var(--accent)}.kasse-paid{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:var(--ok)}.kasse-bank{display:flex;flex-direction:column;gap:12px;margin-top:12px}.kasse-line{display:flex;align-items:center;gap:12px}.kasse-value{font-size:16px;font-weight:600;overflow-wrap:anywhere}.kasse-family{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.kasse-amount{flex:1 1 140px}.kasse-pay{display:flex;flex:1 1 100%;flex-wrap:wrap;align-items:center;gap:10px}.kasse-add{margin:4px 0 14px}.kasse-progress{height:6px;margin:8px 0 4px;overflow:hidden;border-radius:3px;background:var(--line)}.kasse-progress>span{display:block;height:100%;border-radius:3px;background:var(--ok)}.kasse-line .btn{min-height:32px;padding:4px 10px;font-size:13px}.kasse-line .btn app-icon{width:16px;height:16px}.kasse-actions{display:flex;flex-direction:column;gap:4px;margin:10px 0 14px}.kasse-more{display:flex;align-items:center;flex-wrap:wrap;justify-content:space-between}.kasse-own.is-paid{border-color:var(--ok)}.kasse-danger{color:var(--err)}app-birthdays .btn{min-height:var(--tap-compact);padding:8px 14px;gap:6px;border-radius:var(--r-2);font-size:14px}app-birthdays .btn-ghost{min-height:var(--tap-compact);padding:8px 6px}app-birthdays .btn app-icon{width:18px;height:18px}app-birthdays .field{min-height:var(--tap-compact);padding:8px 12px;border-radius:var(--r-2);font-size:16px}app-birthdays .field--area{min-height:96px}app-birthdays .field-label{margin-top:2px;font-size:12px}app-birthdays .row-meta,app-birthdays .empty,app-birthdays .section-title,app-birthdays .field-label .opt{color:var(--text-dim)}app-birthdays .card{padding:12px;border-radius:var(--r-2)}app-birthdays .event-actions{gap:8px;margin-top:2px}app-birthday-own,app-birthday-entry-form{display:block}.birthday-row{display:flex;align-items:center;gap:10px}.birthday-row--tap{font:inherit;color:inherit;cursor:pointer}.birthday-ico{display:grid;flex:none;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--warn-surface);color:var(--warn)}.birthday-later{flex:none;font-size:13px;font-weight:600;color:var(--text-dim)}.birthday-soon{background:var(--warn-surface);color:var(--text)}.birthday-own{margin-top:14px}.birthday-own-head{display:flex;align-items:center;gap:10px}.birthday-edit{display:flex;flex-direction:column;gap:10px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.birthday-form{display:flex;flex-direction:column;gap:6px;margin-top:14px}.birthday-pick{display:grid;grid-template-columns:1fr 1.6fr;gap:8px}.birthday-pick>div{display:flex;flex-direction:column;gap:4px}.birthday-danger{color:var(--err)}.birthday-add{margin-top:14px}.switch-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:var(--tap-compact);cursor:pointer}.switch-row+.switch-row{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.switch-row input{appearance:none;position:relative;flex:none;width:44px;height:26px;margin:0;border-radius:13px;background:var(--text-dim);cursor:pointer;transition:background-color .15s ease}.switch-row input:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:var(--surface);transition:transform .15s ease}.switch-row input:checked{background:var(--accent)}.switch-row input:checked:after{transform:translate(18px)}.switch-row input:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.switch-row-text{display:flex;flex-direction:column;gap:2px}.member-card{display:flex;flex-direction:column;gap:12px;padding:14px}.member-head{display:flex;align-items:center;gap:13px}.member-actions{display:flex;flex-wrap:wrap;gap:8px}.chip-btn{min-height:44px;padding:0 14px;border:1px solid var(--line-strong);border-radius:var(--r-2);background:var(--surface);font-size:14px;font-weight:600;color:var(--text)}.chip-btn:disabled{opacity:.5}.chip-btn:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.chip-btn--danger{color:var(--err);border-color:var(--err)}.overview-row{display:flex;flex-direction:column;gap:12px}.overview-row .row-body{display:flex;flex-direction:column;gap:4px;color:inherit;text-decoration:none}.overview-row .cat-chip{align-self:flex-start}.overview-row .is-overdue{color:var(--err);font-weight:600}.overview-state{color:var(--text-dim);font-variant-numeric:tabular-nums}.event{display:flex;flex-direction:column;gap:4px}.event-when{font-size:12px;font-weight:600;letter-spacing:.08em;color:var(--text-dim)}.event--soon{border-color:var(--warn-bright)}.event--soon .event-when{color:var(--warn)}.event-title{font-size:18px;font-weight:600;margin:2px 0 4px}.event-line{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--text-dim)}.event-line .ic{width:17px;height:17px;color:var(--text-dim)}.event-form{display:flex;flex-direction:column;gap:8px}.event-row{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:8px}.event-row .field{min-width:0}.event-actions{display:flex;gap:14px;margin-top:4px}.chat-log{flex:1;padding:10px 16px 8px;display:flex;flex-direction:column;gap:14px;overflow-y:auto}.msg{display:flex;align-items:flex-start;gap:8px}.msg--mine{flex-direction:row-reverse}.bubble{max-width:78%;background:var(--surface);border:1px solid var(--line);border-radius:6px 20px 20px;padding:10px 13px;box-shadow:0 1px 2px var(--shadow)}.msg--mine .bubble{background:var(--accent);border-color:var(--accent);color:var(--on-accent);border-top-left-radius:20px;border-top-right-radius:6px}.bubble-author{font-size:12px;font-weight:600;color:var(--accent);margin-bottom:3px}.bubble-text{font-size:15px;overflow-wrap:anywhere}.bubble-time{font-size:11px;color:var(--text-dim);margin-top:4px}.msg--mine .bubble-time{color:var(--on-accent)}.imp-flag{display:inline-flex;align-items:center;gap:5px;margin-bottom:6px;padding:3px 9px;border-radius:var(--r-pill);background:var(--warn-surface);color:var(--warn);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em}.imp-flag .ic{width:13px;height:13px}.msg-menu{width:34px;height:34px;flex:none;margin-top:4px;display:grid;place-items:center;background:none;border:0;border-radius:50%;color:var(--text-dim);cursor:pointer}.msg-menu .ic{width:18px;height:18px}.is-highlight .bubble{border-color:var(--warn-bright);box-shadow:0 0 0 3px var(--warn-surface)}.composer{display:flex;align-items:center;gap:8px;padding:10px 12px 12px;background:var(--bg);border-top:1px solid var(--line)}.composer-input{flex:1;min-height:var(--tap);padding:12px 16px;border-radius:var(--r-pill);border:1px solid var(--line-strong);background:var(--surface);font:inherit;font-size:15px;color:var(--text)}.composer-send{width:var(--tap);height:var(--tap);flex:none;display:grid;place-items:center;border:0;border-radius:50%;background:var(--accent);color:var(--on-accent);cursor:pointer}.sheet-layer{position:absolute;inset:0;z-index:40}.sheet-backdrop{position:absolute;inset:0;background:var(--scrim);border:0;width:100%}.sheet{position:absolute;left:0;right:0;bottom:0;display:flex;flex-direction:column;gap:10px;padding:8px 16px calc(18px + env(safe-area-inset-bottom));background:var(--bg);border-radius:var(--r-2) var(--r-2) 0 0;box-shadow:var(--shadow-sheet);max-height:92%;overflow-y:auto;animation:sheet-in .22s cubic-bezier(.22,.8,.3,1)}@keyframes sheet-in{0%{transform:translateY(102%)}}.sheet-grip{width:40px;height:4px;border-radius:var(--r-pill);background:var(--line-strong);margin:4px auto 8px}.sheet-title{font-size:20px;font-weight:600}.sheet-list{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-2);overflow:hidden}.sheet-row{min-height:54px;display:flex;align-items:center;gap:12px;padding:14px 16px;background:none;border:0;border-bottom:1px solid var(--line);text-align:left;font-size:16px;cursor:pointer}.sheet-row:last-child{border-bottom:0}.sheet-row.is-accent{color:var(--warn);font-weight:600}.toast{position:absolute;z-index:50;left:16px;right:16px;bottom:calc(84px + env(safe-area-inset-bottom));display:flex;align-items:center;gap:10px;padding:13px 14px;border-radius:var(--r-2);background:var(--text);color:var(--on-accent);font-size:14px;font-weight:600;box-shadow:var(--shadow-toast)}.toast .ic{color:var(--ok-on-dark)}.toast--chat{bottom:calc(152px + env(safe-area-inset-bottom))}.toast-action{margin-left:auto;background:none;border:0;color:var(--sakura);font-weight:600;text-decoration:underline;cursor:pointer;padding:6px}.toast--problem{background:var(--err)}.toast--problem .ic{color:var(--on-accent)}.chat-hint{padding:6px 0 2px;text-align:center;font-size:12px;color:var(--text-dim)}.bubble-tag{display:inline-block;margin-bottom:4px;padding:2px 8px;border-radius:var(--r-pill);background:var(--sakura);font-size:11px;font-weight:600;color:var(--accent-hover)}.msg--mine .bubble-tag{background:var(--tint-on-dark);color:var(--on-accent)}.composer-tag{flex:none;min-width:var(--tap);height:var(--tap);padding:0 12px;border-radius:var(--r-pill);border:1px solid var(--line-strong);background:var(--surface);font-size:12px;font-weight:600;color:var(--text-dim)}.composer-tag.is-on{border-color:var(--accent);color:var(--accent)}.tag-new{display:flex;flex-direction:column;gap:8px;margin-top:12px}.tag-name{font-size:11px;font-weight:600;color:var(--accent);text-transform:uppercase;letter-spacing:.04em}.bubble-edited{margin-left:4px;font-style:italic}.section-head .tag-name{margin-left:8px}.bubble-text.is-gone{font-style:italic;color:var(--text-dim)}.chat-tabs{display:flex;gap:6px;padding:4px;margin-bottom:12px;border-radius:var(--r-pill);background:var(--sakura)}.chat-tab{flex:1;min-height:36px;border:0;border-radius:var(--r-pill);background:none;font:inherit;font-weight:600;font-size:14px;color:var(--text-dim)}.chat-tab.is-on{background:var(--surface);color:var(--accent);box-shadow:0 1px 2px var(--shadow)}.cal{margin:2px 0 6px}.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.cal-title{font-family:var(--font-display);font-size:14px;font-weight:400;letter-spacing:.01em;line-height:1;text-transform:uppercase}.flip{transform:rotate(180deg)}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.cal-weekdays{margin-bottom:2px}.cal-weekdays span{text-align:center;font-size:11px;font-weight:600;letter-spacing:.06em;color:var(--text-dim)}.cal-day{position:relative;aspect-ratio:1;display:grid;place-items:center;padding:0;border:0;border-radius:14px;background:none;font-size:15px;font-weight:600;color:var(--text)}.cal-day.is-out{color:var(--line-strong)}.cal-day.is-today{box-shadow:inset 0 0 0 1.5px var(--line-strong)}.cal-day.has-mark:after{content:"";position:absolute;bottom:6px;width:5px;height:5px;border-radius:50%;background:var(--warn-bright)}.cal-day.is-on{background:var(--accent);color:var(--on-accent);box-shadow:none}.cal-day.is-on.has-mark:after{background:var(--on-accent)}.legal-back{align-self:flex-start;padding:12px 0}.legal{padding-bottom:8px;color:var(--text-dim);font-family:var(--font-body);font-size:16.5px;line-height:1.62;text-align:justify;-webkit-hyphens:auto;hyphens:auto}.legal h2{margin:26px 0 8px;font-size:17px;color:var(--text)}.legal h3{margin:18px 0 6px;font-size:15px;color:var(--text)}.legal p{margin-bottom:10px}.legal ul{margin:0 0 12px;padding-left:20px}.legal li{margin-bottom:6px}.legal a{color:var(--accent);text-decoration:underline;overflow-wrap:anywhere}.legal table{width:100%;margin-bottom:12px;border-collapse:collapse;font-size:14px}.legal th,.legal td{padding:8px 10px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}.legal th{color:var(--text)}
