:root{--font-sans:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-serif:"IBM Plex Serif", Georgia, "Times New Roman", serif;--text-xs:12px;--text-sm:14px;--text-base:16px;--text-md:17px;--text-lg:20px;--text-xl:22px;--amount-base:20px;--amount-lg:28px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--radius-sm:8px;--radius-md:12px;--radius-lg:20px;--paper:#fff;--ground:#f2f6f9;--ink:#10202e;--ink-soft:#5a6b7a;--rule:#c7e5f2;--owed:#b4690e;--settled:#0e7c66;--owed-strong:#8a4e09;--tone-request-a:#2189d6;--tone-request-b:#0a5490;--tone-received-a:#1bb394;--tone-received-b:#0c6e59;--tone-out-a:#e9a63b;--tone-out-b:#a4630c;--tone-parents-a:#4fbcf2;--tone-parents-b:#1b7fc0;--tone-menus-a:#9377e4;--tone-menus-b:#5b3fb0;--tone-reports-a:#6f79e0;--tone-reports-b:#3d48a8;--lift-contact:0 1px 2px #10202e12;--lift-ambient:0 8px 20px -8px #10202e38;--lift-pressed:0 1px 2px #10202e1a;--plate-gloss:inset 0 1px 0 #ffffff61;--tile-edge:#10202e0f}[data-theme=dark]{--ground:#0b1520;--paper:#132131;--ink:#e8eff5;--ink-soft:#93a8b8;--rule:#1e3a52;--owed:#e0a458;--settled:#4fcba8;--owed-strong:#e9b876;--tone-request-a:#2e8fd4;--tone-request-b:#0c4c81;--tone-received-a:#23a98d;--tone-received-b:#0b5f4e;--tone-out-a:#d8993a;--tone-out-b:#8f560c;--tone-parents-a:#46aee2;--tone-parents-b:#1a6fa8;--tone-menus-a:#8b72d2;--tone-menus-b:#4e369a;--tone-reports-a:#6772ce;--tone-reports-b:#343e92;--lift-contact:0 1px 2px #00000073;--lift-ambient:0 10px 24px -10px #000000a6;--lift-pressed:0 1px 2px #00000080;--plate-gloss:inset 0 1px 0 #ffffff2e;--tile-edge:#ffffff12}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-sans);-webkit-font-smoothing:antialiased;font-weight:400}.amount{font-family:var(--font-serif);font-variant-numeric:tabular-nums;font-weight:500}@keyframes confirm-dialog-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.confirm-dialog{animation:.18s ease-out confirm-dialog-in}@media (prefers-reduced-motion:reduce){*{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.tile{justify-content:center;align-items:center;gap:var(--space-2);min-height:96px;padding:var(--space-4) var(--space-2) var(--space-3);border:1px solid var(--tile-edge);border-radius:var(--radius-lg);background:var(--paper);color:var(--ink);font-family:var(--font-sans);font-size:var(--text-sm);text-align:center;box-shadow:var(--lift-contact), var(--lift-ambient);cursor:pointer;flex-direction:column;font-weight:500;line-height:1.25;transition:transform 90ms ease-out,box-shadow 90ms ease-out;display:flex}.tile-plate{color:#fff;background:linear-gradient(155deg, var(--tile-a) 0%, var(--tile-b) 100%);width:46px;height:46px;box-shadow:var(--plate-gloss), 0 2px 4px -1px color-mix(in srgb, var(--tile-b) 45%, transparent), 0 6px 14px -6px color-mix(in srgb, var(--tile-b) 60%, transparent);border-radius:15px;justify-content:center;align-items:center;display:flex}.tile-label{padding-inline:var(--space-1)}.tile:active{box-shadow:var(--lift-pressed);transform:translateY(2px)}.tile:focus-visible{outline:2px solid var(--brand);outline-offset:2px}@media (prefers-reduced-motion:reduce){.tile{transition:none}}.app-header{background:linear-gradient(180deg, color-mix(in srgb, var(--brand) 88%, white) 0%, var(--brand) 100%);z-index:1;position:relative;box-shadow:0 2px 10px -4px #00000059}.app-crest{border-radius:50%;flex-shrink:0;box-shadow:0 0 0 1.5px #ffffff8c,0 1px 3px #00000040}.surface-raised{background:var(--paper);border:1px solid var(--tile-edge);border-radius:var(--radius-lg);padding:var(--space-4);box-shadow:var(--lift-contact), var(--lift-ambient)}.primary-btn{width:100%;min-height:48px;font-size:var(--text-md);font-weight:500;font-family:var(--font-sans);border-radius:var(--radius-md);color:var(--brand-text);background:linear-gradient(170deg, color-mix(in srgb, var(--brand) 82%, white) 0%, var(--brand) 100%);box-shadow:inset 0 1px 0 #ffffff47, 0 2px 4px -1px color-mix(in srgb, var(--brand) 45%, transparent), 0 8px 16px -8px color-mix(in srgb, var(--brand) 65%, transparent);cursor:pointer;border:0;transition:transform 90ms ease-out,box-shadow 90ms ease-out}.primary-btn:active:not(:disabled){box-shadow:inset 0 1px 0 #fff3, var(--lift-pressed);transform:translateY(2px)}.primary-btn:disabled{opacity:.45;box-shadow:none;cursor:default}.primary-btn:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.row{border-bottom:1px solid var(--rule)}.row:last-child{border-bottom:0}@media (prefers-reduced-motion:reduce){.primary-btn{transition:none}}.card{background:var(--paper);border:1px solid var(--tile-edge);border-radius:var(--radius-lg);box-shadow:var(--lift-contact), var(--lift-ambient);overflow:hidden}.secondary-btn{min-height:44px;padding:0 var(--space-3);border:1px solid var(--rule);border-radius:var(--radius-md);background:color-mix(in srgb, var(--ink) 4%, var(--paper));color:var(--ink-soft);font-family:var(--font-sans);font-size:var(--text-sm);cursor:pointer;transition:transform 90ms ease-out}.secondary-btn:active:not(:disabled){transform:translateY(1px)}.secondary-btn:disabled{opacity:.45;cursor:default}.secondary-btn:focus-visible{outline:2px solid var(--brand);outline-offset:2px}@media (prefers-reduced-motion:reduce){.secondary-btn{transition:none}}.badge{background:color-mix(in srgb, var(--brand) 18%, transparent);color:var(--brand);font-size:var(--text-xs);white-space:nowrap;border-radius:999px;padding:4px 8px;font-weight:500;line-height:1;display:inline-block}.person-plate{color:#fff;width:40px;height:40px;font-family:var(--font-sans);background:linear-gradient(155deg, var(--tile-a) 0%, var(--tile-b) 100%);box-shadow:var(--plate-gloss), 0 2px 4px -1px color-mix(in srgb, var(--tile-b) 45%, transparent), 0 6px 14px -6px color-mix(in srgb, var(--tile-b) 60%, transparent);border-radius:13px;flex-shrink:0;justify-content:center;align-items:center;font-size:15px;font-weight:600;display:flex}.data-table{border-collapse:collapse;width:100%}.data-table th,.data-table td{padding:var(--space-3)}.data-table thead th{font-size:var(--text-xs);color:var(--ink-soft);border-bottom:1px solid var(--rule);white-space:nowrap;font-weight:500}.data-table tbody tr+tr td,.data-table tbody tr+tr th{border-top:1px solid var(--rule)}.data-table .col-left{text-align:left}.data-table .col-right{text-align:right;white-space:nowrap}.data-table td.col-left,.data-table tbody th.col-left{font-size:var(--text-sm);line-height:1.2}.data-table tbody th{color:var(--ink);font-weight:400}.table-caption{margin:var(--space-2) 0 0;color:var(--ink-soft);font-family:var(--font-sans);font-size:var(--text-xs)}.chip{min-height:44px;padding:0 var(--space-4);border:1px solid var(--rule);border-radius:var(--radius-sm);background:var(--paper);color:var(--ink);font-family:var(--font-sans);font-size:var(--text-sm);cursor:pointer}.chip-active{border:2px solid var(--brand)}.chip:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.field-label{margin-bottom:var(--space-1);color:var(--ink-soft);font-family:var(--font-sans);font-size:var(--text-sm);display:block}.field-input{width:100%;min-width:0;min-height:44px;padding:0 var(--space-3);border:1px solid var(--rule);border-radius:var(--radius-sm);background:var(--paper);color:var(--ink);font-family:var(--font-sans);font-size:var(--text-base)}.field-input:focus-visible{outline:2px solid var(--brand);outline-offset:1px}.officer-row{padding:var(--space-3)}.officer-row+.officer-row{border-top:1px solid var(--rule)}.officer-top{align-items:center;gap:var(--space-3);display:flex}.officer-id{flex:1;min-width:0}.officer-name{font-size:var(--text-md);white-space:nowrap;text-overflow:ellipsis;font-weight:500;line-height:1.2;overflow:hidden}.officer-meta{align-items:center;gap:var(--space-2);margin-top:3px;display:flex}.officer-since{font-size:var(--text-xs);color:var(--ink-soft);white-space:nowrap}.officer-acts{gap:var(--space-2);margin-top:var(--space-3);grid-template-columns:1fr 1fr;display:grid}.officer-last{margin:var(--space-2) 0 0;font-size:var(--text-sm);color:var(--ink-soft)}.cat-bar{align-items:baseline;gap:var(--space-2);margin:var(--space-5) 0 var(--space-2);display:flex}.cat-title{font-size:var(--text-lg);margin:0;font-weight:600}.menu-head{gap:var(--space-2);padding:var(--space-3) var(--space-3) var(--space-2);grid-template-columns:1fr 108px;display:grid}.menu-head span{font-size:var(--text-xs);color:var(--ink-soft)}.menu-head span:last-child{text-align:right}.menu-row{gap:var(--space-2);padding:0 var(--space-3) var(--space-2);grid-template-columns:1fr 108px;display:grid}.menu-row input{min-width:0;min-height:44px;padding:0 var(--space-3);border:1px solid var(--rule);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--ink) 5%, var(--paper));color:var(--ink);font-family:var(--font-sans);font-size:var(--text-base)}.menu-row input.price{text-align:right;font-family:var(--font-serif);font-variant-numeric:tabular-nums}.pay{padding:var(--space-4)}.pay-k{font-size:var(--text-xs);color:var(--ink-soft);margin-bottom:3px}.pay-bank{font-size:var(--text-md);margin-bottom:var(--space-3);font-weight:500}.pay-iban,.pay-ref{font-family:var(--font-serif);font-variant-numeric:tabular-nums;font-size:var(--text-lg);letter-spacing:.04em;word-break:break-all;line-height:1.35}.pay-warn{margin-top:var(--space-3);padding:var(--space-3);border-radius:var(--radius-md);background:color-mix(in srgb, var(--owed) 14%, transparent);border:1px solid color-mix(in srgb, var(--owed) 30%, transparent)}.pay-warn p{font-size:var(--text-sm);color:var(--owed);margin:0;line-height:1.4}.install-link-bar{padding:var(--space-2) var(--space-4);background:var(--paper);border-bottom:1px solid var(--rule);text-align:center}.install-link{min-height:44px;padding:0 var(--space-2);color:var(--brand);font-family:var(--font-sans);font-size:var(--text-sm);cursor:pointer;background:0 0;border:0;text-decoration:underline}.install-help{padding-block:var(--space-2)}.officer-you{color:var(--brand);font-weight:600}.officer-acts-single{margin-top:var(--space-3)}.officer-acts-single .secondary-btn{width:100%}.officer-row.is-you{background:color-mix(in srgb, var(--brand) 10%, transparent);box-shadow:inset 3px 0 0 var(--brand)}.officer-invite{margin-bottom:var(--space-3)}.officer-invite .secondary-btn{width:100%}.invite-code-box{margin-top:var(--space-2);padding:var(--space-3);border:1px solid var(--rule);border-radius:var(--radius-md);background:color-mix(in srgb, var(--brand) 8%, transparent)}.invite-code{font-family:var(--font-serif);font-variant-numeric:tabular-nums;font-size:var(--text-xl);letter-spacing:.08em;color:var(--ink)}.overdue{color:var(--owed);font-size:var(--text-xs);margin-top:2px;font-weight:500;display:block}.push-why{margin:var(--space-2) 0 0;color:var(--ink-soft);font-family:var(--font-sans);font-size:var(--text-xs)}
