/* Shared Telegram / browser presentation. Financial and access state stay server-owned. */
:root {
  color-scheme: light;
  --ui-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
  --canvas: #f3f5f7; --surface: #ffffff; --surface-soft: #f6f8fa;
  --text: #1c2d3d; --subtext: #526476; --line: #dbe2e8;
  --accent: #126ac1; --accent-hover: #0b559d; --accent-tint: #eaf3fc; --button-text: #ffffff;
  --good: #176345; --good-bg: #edf7f1; --warn: #80510d; --warn-bg: #fff4da;
  --bad: #b32632; --bad-bg: #fff0f1; --ring: #126ac1;
  --radius: 16px; --control-radius: 12px; --space: 16px;
  --ink: var(--text); --ink-soft: var(--subtext); --blue: var(--accent);
  --blue-dark: var(--accent-hover); --border: var(--line); --muted: var(--subtext);
  --panel: var(--surface); --soft: var(--accent-tint); --paper: var(--surface);
  --paper-deep: var(--surface-soft); --success: var(--good); --danger: var(--bad);
  --shadow: 0 4px 20px #17324d08;
  font-family: var(--ui-font); background: var(--canvas); color: var(--text);
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    color-scheme: dark; --canvas:#121c25; --surface:#1b2935; --surface-soft:#223341;
    --text:#edf3f8; --subtext:#b0becb; --line:#3d5060; --accent:#80bcff;
    --accent-hover:#a6d0ff; --accent-tint:#213c55; --button-text:#122332; --good:#9adbb8; --good-bg:#213d32;
    --warn:#f5d18a; --warn-bg:#41371f; --bad:#ffb4ba; --bad-bg:#472a31; --ring:#80bcff;
  }
}
:root[data-theme="dark"] {
  color-scheme:dark; --canvas:#121c25; --surface:#1b2935; --surface-soft:#223341;
  --text:#edf3f8; --subtext:#b0becb; --line:#3d5060; --accent:#80bcff;
  --accent-hover:#a6d0ff; --accent-tint:#213c55; --button-text:#122332; --good:#9adbb8; --good-bg:#213d32;
  --warn:#f5d18a; --warn-bg:#41371f; --bad:#ffb4ba; --bad-bg:#472a31; --ring:#80bcff;
}
*, *::before, *::after { box-sizing:border-box; }
html { scroll-padding-block:80px 160px; }
body, .telegram-web-app body { margin:0; background:var(--canvas); color:var(--text); font:400 16px/1.5 var(--ui-font); padding:0; }
main { width:min(100%, 880px); margin:0 auto; min-height:var(--ui-stable-height,100dvh); background:var(--canvas); box-shadow:none; padding-bottom:32px; }
h1,h2,h3,button,input,select,textarea,pre { font-family:var(--ui-font); }
h1 { font-size:26px; line-height:1.2; font-weight:700; letter-spacing:-.5px; margin:8px 0; }
h2 { font-size:22px; line-height:1.3; margin:0 0 12px; letter-spacing:-.3px; }
h3 { font-size:17px; line-height:1.4; margin:0 0 8px; }
p { margin:8px 0 16px; }
small,.muted,.section-note,.field-label>span,.participant-kicker,.organizer-stage-count { color:var(--subtext); font-size:14px; line-height:1.45; }
a { color:var(--accent); overflow-wrap:anywhere; }
button, .button-link, input:not([type="hidden"]), select, textarea {
  font:inherit; font-size:16px; min-height:48px; border-radius:var(--control-radius); max-width:100%;
}
button, .button-link { background:var(--accent); color:var(--button-text); border:1px solid transparent; font-weight:600; line-height:1.3; padding:12px 16px; text-align:center; box-shadow:none; text-decoration:none; display:inline-flex; align-items:center; justify-content:center; gap:8px; cursor:pointer; }
button:hover,.button-link:hover { background:var(--accent-hover); color:var(--button-text); }
button:active,.button-link:active { transform:translateY(1px); }
button.secondary-button,.button-link.secondary,.compact-button,.icon-button,.contact-picker-button {
  background:var(--surface-soft); border-color:var(--line); color:var(--text);
}
button.danger-button { color:var(--bad); background:var(--bad-bg); border-color:var(--line); }
button:disabled,button[aria-disabled="true"],.button-link[aria-disabled="true"] { opacity:.55; cursor:default; transform:none; }
button[aria-busy="true"]::after { content:"…"; }
input:not([type="hidden"]), select, textarea { color:var(--text); background:var(--surface); border:1px solid var(--line); padding:10px 12px; box-shadow:none; min-width:0; width:100%; }
input::placeholder,textarea::placeholder { color:var(--subtext); opacity:1; }
input[type="checkbox"] { width:24px; height:24px; min-height:24px; accent-color:var(--accent); }
input[type="number"], .stats strong,.total,.totals,.transfer-row,.participant-running-total,.payment-status,.my-summary,.mobile-split-total { font-variant-numeric:tabular-nums; }
:focus-visible { outline:3px solid var(--ring); outline-offset:3px; }
input:focus,select:focus,textarea:focus { border-color:var(--ring); outline:2px solid var(--ring); outline-offset:1px; box-shadow:none; }
summary { cursor:pointer; min-height:44px; padding:10px 0; font-weight:600; color:var(--accent); }
details { min-width:0; }
section, article, aside, form, nav, header, div { min-width:0; }
strong,b,h1,h2,h3,.item-title,.participant-name { overflow-wrap:anywhere; }
.hero, .share-hero, .participant-hero, .participant-hero-compact {
  background:var(--surface); color:var(--text); border-bottom:1px solid var(--line); border-radius:0;
  padding:20px 20px 16px; box-shadow:none; position:relative;
}
.hero::before,.hero::after,.share-hero::before,.share-hero::after,.participant-hero::before,.participant-hero::after { display:none; }
.hero h1,.hero h2,.share-hero h1,.participant-hero h1 { color:var(--text); }
.hero .muted,.hero p,.share-hero p,.participant-hero p { color:var(--subtext); }
.hero .stats { display:flex; gap:20px; margin:12px 0 0; flex-wrap:wrap; }
.stats span { display:flex; gap:4px; flex-direction:column; color:var(--subtext); font-size:12px; }
.stats strong { color:var(--text); font-size:20px; line-height:1.3; }
.hero .toolbar { margin-top:16px; }
.content,.participant-content { padding:20px; background:transparent; }
.brand-bar { display:flex; align-items:center; gap:8px; font-weight:650; font-size:14px; color:var(--subtext); margin-bottom:12px; }
.brand-bar img { width:28px; height:28px; border-radius:8px; }
.brand-label,.share-kicker,.participant-kicker,.organizer-quick-kicker { font-size:12px; line-height:1.4; font-weight:650; letter-spacing:.5px; text-transform:uppercase; color:var(--subtext); }
.board-layout { display:block; gap:16px; }
.board-main,.board-sidebar { width:100%; max-width:none; }
.section-block,.side-panel,.receipt-start,.review,.manual-form,.share-card,.personal-invitations,.receipt-card,.archive-card,.participant-equal-card {
  background:var(--surface); color:var(--text); border:1px solid var(--line); border-radius:var(--radius); padding:16px; margin:0 0 16px; box-shadow:none;
}
.section-heading { display:block; margin:0 0 16px; padding:0; border:0; }
.section-heading h2 { margin:0 0 4px; }
.section-note { display:block; }
.organizer-stage-shell { margin:0 0 20px; padding:0; border:0; background:transparent; box-shadow:none; border-radius:0; }
.organizer-stage-copy { margin:16px 0 0; }
.organizer-stage-copy h2 { font-size:22px; margin:4px 0; }
.organizer-stage-copy p { margin:4px 0 0; font-size:14px; color:var(--subtext); }
.organizer-stage-count { display:none; }
.journey { display:grid; grid-template-columns:1fr 1.65fr 1fr; gap:4px; padding:4px; background:var(--surface); border:1px solid var(--line); border-radius:14px; }
.journey a { display:flex; align-items:center; justify-content:center; gap:6px; min-height:44px; font-size:14px; padding:8px 4px; border-radius:10px; text-decoration:none; color:var(--subtext); font-weight:600; }
.journey a[aria-current="step"] { background:var(--accent-tint); color:var(--accent); }
.journey b { font-size:12px; font-weight:600; }
.organizer-stage-menu { border:0; margin:0; padding:0; }
.organizer-stage-toolbar { display:flex; gap:8px; align-items:start; position:relative; }
.organizer-stage-toolbar .journey { flex:1; }
.organizer-stage-menu { flex:0 0 44px; }
.organizer-stage-menu>summary { display:grid; place-items:center; width:44px; height:52px; padding:0; border:1px solid var(--line); border-radius:12px; background:var(--surface); font-size:24px; }
.organizer-stage-menu>summary::-webkit-details-marker { display:none; }
.organizer-stage-menu nav { display:flex; gap:8px; flex-wrap:wrap; position:absolute; right:0; top:60px; width:min(100%,340px); background:var(--surface); border:1px solid var(--line); padding:12px; border-radius:12px; box-shadow:var(--shadow); z-index:40; }
.organizer-stage-link { display:inline-flex; align-items:center; justify-content:center; gap:6px; padding:10px 12px; background:var(--surface); border:1px solid var(--line); border-radius:12px; color:var(--text); min-height:48px; text-decoration:none; font-size:14px; line-height:1.3; font-weight:600; }
.organizer-stage-link.active { background:var(--accent-tint); border-color:var(--accent); color:var(--accent); }
.people-navigation { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:8px; }
.people-substeps { display:flex; gap:4px; min-width:0; }
.people-substeps a,.people-invite-link { display:flex; align-items:center; justify-content:center; min-height:44px; padding:8px 10px; border-radius:10px; font-size:14px; font-weight:600; text-decoration:none; }
.people-substeps a { color:var(--subtext); }
.people-substeps a[aria-current="page"] { color:var(--accent); background:var(--accent-tint); }
.people-invite-link { border:1px solid var(--line); color:var(--accent); background:var(--surface); }
.organizer-stage-menu>summary { font-size:14px; }
[data-active-step="people"] .organizer-stage-copy,[data-active-step="split"] .organizer-stage-copy { display:none; }
.board-hero { padding-top:16px; padding-bottom:16px; }
.board-hero .brand-bar { margin-bottom:8px; }
.board-hero p { font-size:12px; margin:4px 0; }
.board-hero .stats { margin-top:8px; }
.board-hero-compact { padding:12px 20px; }
.board-hero-compact .brand-bar,.board-hero-compact>p { display:none; }
.board-hero-compact h1 { font-size:22px; margin:0 0 4px; }
.board-hero-compact .stats { margin:0; gap:12px; }
.board-hero-compact .stats span { flex-direction:row; align-items:baseline; font-size:12px; }
.board-hero-compact .stats strong { font-size:16px; }
.board-hero-compact .stats span:not(:first-child) { display:none; }
.board-content-compact { padding-top:12px; }
.board-content-compact .organizer-stage-shell { margin-bottom:12px; }
.board-content-compact #split-strategy { border:0; background:transparent; padding:0; margin-bottom:12px; }
.board-content-compact .organizer-actor-switcher { display:flex; align-items:center; gap:8px; margin:0; padding:8px 12px; }
.board-content-compact .organizer-actor-switcher>div { flex:1; }
.board-content-compact .organizer-actor-switcher p { margin:0; font-size:16px; line-height:1.4; }
.actor-options { flex:0 0 auto; }
.actor-options>summary { font-size:14px; }
.actor-options .identity-options { position:absolute; left:20px; right:20px; padding:12px; background:var(--surface); border:1px solid var(--line); border-radius:12px; z-index:35; box-shadow:var(--shadow); max-height:40dvh; overflow:auto; }
.board-content-compact .split-mode-settings>summary { font-size:14px; padding:8px 0; }
.board-content-compact #items { padding:12px; }
.board-content-compact #items>.section-heading { display:flex; align-items:center; margin-bottom:8px; }
.board-content-compact #items>.section-heading h2 { font-size:20px; margin:0; }
.board-content-compact #items>.section-heading .section-note { display:none; }
.board-content-compact .item-search { margin:8px 0; }
.board-content-compact .item-search-meta:empty { display:none; }
.board-content-compact .item-search-meta { margin:4px 0; }
.organizer-next-bar,.mobile-split-bar {
  position:fixed; bottom:0; left:50%; transform:translateX(-50%); width:min(100%,880px);
  background:var(--surface); color:var(--text); border:0; border-top:1px solid var(--line); border-radius:0;
  padding:12px 20px calc(12px + var(--ui-bottom, env(safe-area-inset-bottom, 0px))); display:flex; align-items:center; gap:12px; box-shadow:0 -4px 16px #17324d08; z-index:30;
}
.organizer-next-bar.ready { background:var(--surface); border-color:var(--line); }
.organizer-next-bar>div:first-child { flex:1; }
.organizer-next-bar strong { display:block; font-size:14px; line-height:1.35; }
.organizer-next-bar span { font-size:12px; color:var(--subtext); }
.organizer-next-actions { display:flex; flex-direction:column; align-items:stretch; gap:8px; max-width:52%; flex-shrink:0; }
.organizer-next-actions:empty { display:none; }
.organizer-next-actions form { margin:0; }
.organizer-next-actions button,.organizer-next-actions a { width:100%; font-size:14px; }
.content:has(.organizer-next-bar),.participant-content { padding-bottom:160px; }
.keyboard-open .organizer-next-bar,.keyboard-open .mobile-split-bar { position:static; transform:none; width:100%; margin-top:16px; padding:12px; border:1px solid var(--line); border-radius:12px; }
.manual-form { margin:0 0 16px; padding:0; border:0; background:transparent; }
.manual-form h2 { font-size:18px; }
.manual-form-row { display:grid; grid-template-columns:minmax(0,1fr); gap:8px; align-items:end; }
.field-label>span { margin-bottom:6px; display:block; }
.participant-add-form .compact-select { display:block; }
.participant-list { display:grid; gap:8px; }
.organizer-person-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; align-items:center; background:var(--surface-soft); border:1px solid var(--line); padding:12px; border-radius:12px; }
.organizer-person-main { display:flex; align-items:center; gap:10px; }
.organizer-person-main>span:last-child { flex:1; min-width:0; }
.organizer-person-main small { display:block; }
.organizer-person-avatar { width:36px; height:36px; border-radius:50%; display:grid; place-items:center; background:var(--accent-tint); color:var(--accent); }
.organizer-person-row .participant-settings { grid-column:1 / -1; }
.participant-settings-body { display:grid; gap:12px; }
.weight-form { display:grid; gap:8px; grid-template-columns:1fr; }
.my-person-badge { background:var(--good-bg); color:var(--good); border-radius:8px; font-size:12px; padding:8px; align-self:start; }
.people-secondary-actions { display:block; border:0; margin-top:16px; padding:0; }
.people-secondary-actions>span { display:block; font-size:14px; color:var(--subtext); margin-top:8px; }
.organizer-actor-switcher,.identity-panel,.participant-identity-lock { background:var(--accent-tint); border:1px solid var(--line); border-radius:12px; padding:12px; margin:0 0 16px; color:var(--text); }
.organizer-actor-switcher p { margin:4px 0 12px; }
.identity-options { display:flex; gap:8px; flex-wrap:wrap; }
.identity-option { background:var(--surface); color:var(--text); border:1px solid var(--line); border-radius:10px; padding:10px 12px; min-height:44px; text-decoration:none; }
.identity-option.active { background:var(--accent); color:var(--surface); border-color:var(--accent); }
.split-mode-control { display:grid; gap:8px; grid-template-columns:1fr; }
.split-mode-option { display:flex; align-items:start; flex-direction:column; background:var(--surface-soft); color:var(--text); border:1px solid var(--line); text-align:left; padding:12px; }
.split-mode-option.active { background:var(--accent-tint); border-color:var(--accent); color:var(--text); }
.split-mode-option span { color:var(--subtext); font-size:14px; font-weight:400; margin-top:4px; }
.split-mode-settings { margin:0; }
.split-mode-settings>summary { color:var(--text); }
.items { display:grid; grid-template-columns:1fr; gap:12px; }
.item,.simple-item,.simple-item.mine,.item.mine,.item-card,.split-item { background:var(--surface); color:var(--text); border:1px solid var(--line); border-radius:14px; padding:14px; box-shadow:none; }
.item.mine,.simple-item.mine { background:var(--good-bg); border-color:var(--good); box-shadow:inset 3px 0 var(--good); }
.item-head,.simple-item-title { font-weight:600; color:var(--text); font-size:16px; line-height:1.4; }
.item-meta,.simple-item-meta { font-size:14px; color:var(--subtext); }
.simple-item,.simple-item-content { min-width:0; }
.simple-item-row { gap:12px; }
.simple-item-quantity,.quantity-actions { gap:4px; display:flex; align-items:center; flex-shrink:0; }
.icon-button { width:44px; height:44px; min-height:44px; padding:0; font-size:20px; flex:0 0 44px; }
.selection-chip,.assignment-chip,.person-chip,.item-person-chip { font-size:12px; border-radius:8px; padding:4px 8px; color:var(--warn); background:var(--warn-bg); border:1px solid transparent; }
.selection-chip.mine,.assignment-chip.mine,.person-chip.mine,.item-person-chip.mine { color:var(--good); background:var(--good-bg); border-color:var(--good); }
.item-actions,.quick-take,.item-quick-actions { display:flex; gap:8px; flex-wrap:wrap; }
.item-actions form,.item-quick-actions form { flex:1; }
.assignments,.item-assignment-list { gap:8px; }
.assignment-row { padding:8px 0; gap:8px; border-color:var(--line); }
.tip-card,.extra-fee-card { background:var(--surface-soft); color:var(--text); border:1px solid var(--line); border-radius:12px; padding:12px; }
.tip-card summary,.extra-fee-card summary { padding:0; }
.fee-actions,.tip-presets { gap:8px; flex-wrap:wrap; }
.payment-list { display:grid; gap:12px; }
.payment-row { display:grid; grid-template-columns:1fr; gap:12px; background:var(--surface-soft); border:1px solid var(--line); border-radius:12px; padding:14px; }
.payment-person { display:flex; justify-content:space-between; gap:8px; }
.payment-person span { font-size:14px; color:var(--subtext); }
.payment-status { padding:12px; border-radius:12px; border:1px solid var(--line); background:var(--surface-soft); display:flex; gap:8px; flex-wrap:wrap; margin-bottom:12px; }
.payment-note-control { display:flex; flex-wrap:wrap; gap:8px; }
.payment-note-control input { flex:1 1 160px; }
.settlement-preview { margin:0; background:var(--good-bg); border:1px solid var(--line); border-radius:16px; padding:20px; color:var(--text); }
.settlement-preview h2 { font-size:24px; }
.settlement-preview>p { margin-bottom:0; font-size:14px; color:var(--subtext); }
.transfer-row { display:grid; grid-template-columns:minmax(0,1fr) 20px minmax(0,1fr); gap:8px; padding:16px 0; border-bottom:1px solid var(--line); align-items:center; }
.transfer-row b { grid-column:1/-1; font-size:30px; line-height:1.2; color:var(--good); }
.result-details { margin-top:16px; }
.result-details>summary { color:var(--text); }
.totals { border:0; background:transparent; margin:0 0 16px; padding:0; }
.totals h2 { font-size:18px; }
.totals-row,.total-row { border-color:var(--line); gap:12px; }
.my-summary { border:0; background:var(--surface-soft); padding:12px; color:var(--text); border-radius:12px; margin:0 0 16px; }
.my-summary h2 { font-size:17px; }
.progress,.completion-card,.warning-card,.allocation-warning { background:var(--warn-bg); color:var(--text); border:1px solid var(--line); padding:16px; border-radius:12px; box-shadow:none; }
.warning-text { color:var(--warn); } .ok-text { color:var(--good); }
.error-card,[role="alert"] { background:var(--bad-bg); color:var(--text); }
pre { white-space:pre-wrap; overflow-wrap:anywhere; font-size:14px; line-height:1.6; background:var(--surface-soft); border-color:var(--line); color:var(--text); padding:12px; }
.total { display:none !important; }
.participant-page { background:var(--canvas); min-height:100dvh; }
.participant-hero-compact { display:block; }
.participant-running-total { margin-top:12px; display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; color:var(--text); text-align:left; }
.participant-running-total span { color:var(--subtext); font-size:14px; }
.participant-running-total strong { color:var(--good); font-size:28px; }
.participant-identity-lock { background:var(--good-bg); margin-bottom:20px; }
.participant-identity-lock strong { color:var(--text); font-size:18px; }
.participant-section-heading { margin:0 0 16px; }
.participant-section-heading>.participant-kicker { display:none; }
.participant-section-heading p { font-size:14px; margin:4px 0; color:var(--subtext); }
.participant-finish { background:transparent; border:0; box-shadow:none; padding:0; margin:16px 0 0; color:var(--subtext); }
.participant-finish h2 { display:none; }
.participant-finish>button { display:none; }
.participant-finish p { font-size:14px; margin:4px 0; }
.participant-done-card { background:var(--surface); color:var(--text); border:1px solid var(--line); padding:24px; border-radius:20px; }
.participant-done-mark { background:var(--good-bg); color:var(--good); }
.mobile-split-bar { margin:0; }
.mobile-split-total { flex:1; } .mobile-split-total strong { color:var(--text); }
.share-hero { background:var(--surface); }
.share-card { margin:16px 20px; max-width:none; }
.share-primary { background:var(--accent); color:var(--surface); }
.share-buttons { gap:8px; }
.share-card-header { border-color:var(--line); gap:12px; flex-wrap:wrap; }
.share-receipt-title { color:var(--text); }
.personal-invitations { background:var(--surface-soft); margin:20px 0 0; }
.personal-invitation-row { background:var(--surface); border:1px solid var(--line); color:var(--text); border-radius:12px; padding:12px; gap:8px; }
.personal-invitation-actions { flex-wrap:wrap; gap:8px; }
.revoke-panel { margin:20px; padding:0; border:0; background:transparent; }
.revoke-panel summary { color:var(--bad); font-size:14px; }
.revoke-panel p { font-size:14px; color:var(--subtext); }
.share-footer,.footer,.app-footer { color:var(--subtext); background:transparent; border:0; font-size:12px; padding:16px 20px; }
.save-toast { background:var(--surface); color:var(--text); border-color:var(--line); bottom:calc(140px + var(--ui-bottom, 0px)); box-shadow:var(--shadow); }
.live-board-status { background:var(--warn-bg); color:var(--text); border-bottom:1px solid var(--line); padding:12px 16px; font-size:14px; }
.preview-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:12px; }
.entry-page .hero { padding:28px 20px; }
.entry-page .hero h1 { max-width:560px; font-size:32px; }
.entry-page .hero p { max-width:560px; }
.entry-page .content { display:grid; gap:16px; }
.entry-example { padding:20px; border:1px solid var(--line); border-radius:16px; background:var(--surface); }
.entry-example .transfer-row { border:0; padding-bottom:0; }
.entry-example h2 { font-size:20px; }
.entry-page .manual-form { background:var(--surface); border:1px solid var(--line); padding:20px; border-radius:16px; margin:0; }
.entry-page .manual-form>summary { color:var(--text); }
.entry-route { display:flex; gap:8px; color:var(--subtext); font-size:14px; flex-wrap:wrap; margin-top:16px; }
.archive-filter-form,.receipt-summary,.archive-month,.archive-calendar { color:var(--text); background:var(--surface); border-color:var(--line); }
.archive-filter-form { border-radius:12px; padding:12px; }
.receipt-card,.receipt-summary { overflow:hidden; }
.receipt-card a:not(.button-link),.receipt-summary a:not(.button-link) { color:var(--accent); }
main { padding-top:var(--ui-top,env(safe-area-inset-top,0px)); padding-left:var(--ui-left,env(safe-area-inset-left,0px)); padding-right:var(--ui-right,env(safe-area-inset-right,0px)); }
@media (min-width:680px) {
  .hero,.content,.participant-hero,.participant-content { padding-left:32px; padding-right:32px; }
  .manual-form-row { grid-template-columns:minmax(0,2fr) 1fr 80px auto; }
  .participant-add-form .manual-form-row { grid-template-columns:minmax(0,2fr) 1fr auto; }
  .split-mode-control { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .payment-row { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
  .payment-note-field { grid-column:1/-1; }
  .weight-form { grid-template-columns:1fr auto; }
  .organizer-next-actions { flex-direction:row; align-items:center; }
  .entry-page .content { grid-template-columns:1fr 1fr; }
  .entry-page .manual-form-row { grid-template-columns:1fr; }
}
@media (max-width:359px) {
  .hero,.content,.participant-hero,.participant-content { padding-left:16px; padding-right:16px; }
  h1 { font-size:24px; } .entry-page .hero h1 { font-size:28px; }
  .journey a { font-size:12px; gap:4px; }
  .organizer-next-bar { padding-left:16px; padding-right:16px; }
  .simple-item { flex-wrap:wrap; }
  .share-card { margin:16px; }
}
@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; }
}
/* Behavior states shared with the accepted live-board protocol. */
[hidden],.app-nav,.board-mode-strip { display:none !important; }
main.calculation-stale .settlement-preview,
main.calculation-stale .totals,
main.calculation-stale #my-total,
main.calculation-stale #chat-summary,
main.calculation-stale .participant-running-total,
main.calculation-stale .mobile-split-total strong,
main.calculation-stale [data-participant-done-sheet],
main.calculation-stale [data-participant-done],
main.calculation-stale [data-copy-target="#chat-summary"] { display:none !important; }
[data-calculation-status="invalid"] li { overflow-wrap:anywhere; margin-bottom:12px; }
.simple-split { display:grid; gap:12px; }
.split-row { display:flex; align-items:center; justify-content:space-between; gap:12px; background:var(--surface); border:1px solid var(--line); padding:14px; border-radius:14px; }
.split-row.mine { background:var(--good-bg); border-color:var(--good); box-shadow:inset 3px 0 var(--good); }
.split-row.overassigned,.item.overassigned { background:var(--bad-bg); border-color:var(--bad); }
.split-title { min-width:0; flex:1; }
.split-title>strong,.split-price { display:block; }
.split-price { font-size:14px; color:var(--subtext); margin:4px 0; font-variant-numeric:tabular-nums; }
.split-control { display:flex; align-items:center; gap:8px; flex-shrink:0; }
.split-qty { min-width:20px; text-align:center; font-variant-numeric:tabular-nums; }
.selection-chips { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
.selection-chip.current { background:var(--good); color:var(--surface); }
.selection-chip.active { background:var(--good); color:var(--surface); }
.identity-option.active { color:var(--button-text); }
.receipt-card-header { display:flex; flex-wrap:wrap; gap:12px; justify-content:space-between; }
.receipt-card-kicker { font-size:12px; color:var(--subtext); margin:0 0 4px; }
.receipt-card-amount { font-variant-numeric:tabular-nums; font-size:20px; font-weight:650; color:var(--text); }
[data-live-status] { background:var(--warn-bg) !important; color:var(--text); }
.compact-form { margin:0; }
.payment-actions { display:flex; flex-wrap:wrap; gap:8px; }
.tip-card-body,.tip-card-fields { display:grid; gap:12px; }
.tip-options,.tip-presets,.tip-quick-buttons { display:flex; gap:8px; flex-wrap:wrap; }
.item-search label { display:flex; align-items:center; gap:8px; }
.manual-form-row label { display:block; }
.field-label { display:block; }
.allocation-state { display:block; font-size:14px; margin-top:8px; }
.allocation-state.balanced { color:var(--good); }
.allocation-state.unassigned { color:var(--warn); }
.allocation-state.overassigned { color:var(--bad); font-weight:600; }
.participant-identity-lock>strong,.participant-identity-lock>small { display:block; }
.participant-page .mobile-split-bar { position:fixed; width:min(100%,880px); }
.participant-finish p,.participant-equal-card p,.share-hero p:last-child { color:var(--subtext); }
.participant-equal-card>strong { font-size:28px; color:var(--good); }
.participant-done-sheet { position:fixed; inset:0; z-index:70; background:#0008; display:grid; place-items:center; padding:20px; }
.participant-done-card { max-width:440px; width:100%; }
.participant-done-sheet { overscroll-behavior:contain; }
.participant-done-card { max-height:calc(100dvh - 40px); overflow:auto; }
footer { font-size:12px; text-align:center; color:var(--subtext); padding:16px; }
:root:not(.keyboard-open) body:has(.organizer-next-bar, .mobile-split-bar)>footer { padding-bottom:calc(176px + var(--ui-bottom, 0px)); }
.install-app-button { display:none; }
.archive-filter-grid { display:grid; gap:12px; }
.archive-filter-actions { margin-top:12px; }
.archive-month-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }
.archive-month-heading h2 { margin:0; }
.archive-month-heading span { font-size:14px; color:var(--subtext); }
.archive-controls { margin-top:16px; }
.archive-control-row,.archive-date-row { display:grid; gap:8px; margin-top:8px; }
.archive-date-row label { font-size:14px; color:var(--subtext); }
.archive-empty-state { background:var(--surface); border:1px solid var(--line); padding:20px; border-radius:16px; }
.filter-tabs { display:flex; gap:6px; flex-wrap:nowrap; overflow-x:auto; padding-bottom:2px; margin-bottom:8px; }
.filter-tab { flex-shrink:0; white-space:nowrap; }
.filter-tab { display:inline-flex; align-items:center; gap:6px; padding:10px 12px; min-height:44px; border:1px solid var(--line); border-radius:12px; color:var(--text); background:var(--surface-soft); text-decoration:none; font-size:14px; }
.filter-tab.active { color:var(--accent); background:var(--accent-tint); border-color:var(--accent); }
.split-toggle { min-height:44px; display:flex; align-items:center; gap:8px; padding:8px; cursor:pointer; font-size:14px; }
.content .review .review-actions { display:none; }
.split-mode-panel .section-heading { display:none; }
.transfer-note { grid-column:1/-1; color:var(--subtext); }
.organizer-next-bar,.mobile-split-bar { padding-left:calc(20px + var(--ui-left,env(safe-area-inset-left,0px))); padding-right:calc(20px + var(--ui-right,env(safe-area-inset-right,0px))); }
.keyboard-open .participant-page .mobile-split-bar { position:static; transform:none; width:100%; margin-top:16px; padding:12px; border:1px solid var(--line); border-radius:12px; }
@media(min-width:680px) { .archive-control-row { grid-template-columns:2fr 1fr; } .archive-date-row { grid-template-columns:1fr 1fr auto auto; align-items:end; } }
.participant-done-mark { width:44px; height:44px; display:grid; place-items:center; border-radius:50%; margin-bottom:16px; }
.save-toast { position:fixed; left:50%; transform:translateX(-50%); max-width:calc(100% - 32px); z-index:65; padding:12px 16px; border:1px solid var(--line); border-radius:12px; }
.footer { text-align:center; }
.install-button { display:none; }
.board-filter-tabs,.archive-status-options { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:16px; }
.board-filter-tab { min-height:44px; padding:10px 12px; background:var(--surface-soft); border:1px solid var(--line); border-radius:12px; text-decoration:none; color:var(--text); }
.board-filter-tab.active { background:var(--accent-tint); border-color:var(--accent); color:var(--accent); }
.item-header { display:flex; gap:12px; justify-content:space-between; margin-bottom:12px; }
.item-header h3 { margin:0; flex:1; }
.item-primary-actions { display:flex; gap:8px; flex-wrap:wrap; margin:12px 0; }
.item-primary-actions button { flex:1; }
.advanced-panel { margin-top:12px; border-top:1px solid var(--line); }
.assignment-form .participants { display:grid; gap:8px; }
.participant { display:flex; align-items:center; flex-wrap:wrap; gap:8px; padding:8px 0; }
.participant input[type="number"] { width:84px; }
.item-search { margin-bottom:16px; }
.item-search-field { display:flex; align-items:center; gap:8px; }
.item-search-meta { margin:8px 0; font-size:14px; color:var(--subtext); }
.share-panel { padding:20px; display:grid; gap:16px; }
.share-receipt { display:flex; gap:12px; flex-wrap:wrap; justify-content:space-between; border-bottom:1px solid var(--line); padding-bottom:12px; }
.share-receipt h2 { margin:0; font-size:20px; }
.share-receipt p { margin:4px 0 0; }
.share-amount { color:var(--good); font-weight:650; font-variant-numeric:tabular-nums; align-self:center; }
.share-help { margin:0; font-size:14px; color:var(--subtext); }
.share-actions { display:grid; grid-template-columns:1fr; gap:8px; }
.personal-invites { background:var(--surface); border:1px solid var(--line); padding:16px; border-radius:16px; }
.personal-invites-heading>span { font-size:12px; color:var(--subtext); text-transform:uppercase; font-weight:650; }
.personal-invites-heading h2 { margin:4px 0; }
.personal-invites-heading p { font-size:14px; color:var(--subtext); }
.personal-invite-list { display:grid; gap:12px; }
.personal-invite-row { display:grid; gap:8px; padding:12px; background:var(--surface-soft); border:1px solid var(--line); border-radius:12px; }
.personal-invite-name { display:flex; align-items:center; gap:8px; }
.personal-invite-avatar { display:grid; place-items:center; width:32px; height:32px; border-radius:50%; background:var(--good-bg); color:var(--good); }
.copy-status:empty { display:none; }
.copy-status { font-size:14px; color:var(--subtext); margin-top:8px; }
.share-screen .share-primary { background:var(--surface-soft); color:var(--text); border-color:var(--line); }
.share-heading-row { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.share-heading-row h1 { font-size:24px; }
.share-back { min-height:44px; display:flex; align-items:center; font-size:14px; }
.share-screen .share-kicker { margin:0; }
.share-screen .share-panel { padding-top:12px; gap:12px; }
.share-screen .share-receipt { border:0; padding:0; }
.share-screen .share-receipt h2 { font-size:16px; }
.share-screen .personal-invites { padding:0; border:0; }
.share-screen .personal-invites-heading h2 { font-size:20px; margin:0; }
.personal-invite-reserve>summary,.share-other-apps>summary { font-size:14px; font-weight:500; }
.personal-invite-reserve .button-link,.personal-invite-reserve button { width:100%; margin-bottom:8px; }
.general-invitation { border-top:1px solid var(--line); padding-top:8px; }
.general-invitation>summary { font-size:16px; color:var(--text); }
.general-invitation>.button-link { width:100%; margin-top:12px; }
.archive-control-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; }
.archive-control-row button { padding:10px 12px; }
.archive-extra-filters>summary { font-size:14px; }
.archive-applied { display:flex; gap:8px; flex-wrap:wrap; align-items:center; font-size:14px; }
.archive-applied span { background:var(--accent-tint); color:var(--text); padding:4px 8px; border-radius:8px; }
.archive-applied>a { min-height:44px; display:flex; align-items:center; }
.organizer-closed-notice,.participant-closed-notice { padding:12px; border:1px solid var(--line); border-radius:12px; background:var(--surface-soft); margin-bottom:16px; }
.organizer-closed-notice>span,.participant-closed-notice>span { display:block; font-size:14px; color:var(--subtext); }
.archive-filters { display:grid; gap:12px; margin-top:16px; }
.archive-filter-fields { display:grid; gap:12px; }
.archive-filter-actions,.receipt-actions { display:flex; gap:8px; flex-wrap:wrap; }
.archive-overview { display:none; }
.archive-history,.receipt-list,.receipt-cards,.archive-month-cards { display:grid; gap:12px; }
.receipt-summary-card { background:var(--surface); border:1px solid var(--line); border-radius:16px; padding:16px; }
.receipt-summary-card h2 { font-size:20px; }
.receipt-card-meta { display:flex; gap:8px; flex-wrap:wrap; font-size:14px; color:var(--subtext); }
.receipt-meta-chip { background:var(--surface-soft); padding:4px 8px; border-radius:8px; }
.receipt-status { font-size:14px; color:var(--subtext); }
.receipt-card-actions { display:flex; flex-wrap:wrap; gap:8px; }
.receipt-delete { margin-top:12px; }
@media(max-width:430px) { .split-row { flex-wrap:wrap; } .split-control { margin-left:auto; } }
@media(min-width:680px) { .share-actions { grid-template-columns:1fr 1fr; } .archive-filter-fields { grid-template-columns:1fr 1fr; } }
