:root{--coral-400: #e8836e;--coral-500: #de7059;--coral-600: #da6c55;--coral-700: #c0563c;--coral-050: #f7e7e2;--blue-300: #8fb8d4;--blue-500: #7ba9c9;--blue-600: #7399b8;--blue-700: #3c6e8f;--blue-050: #dce9f2;--green-050: #dff1e4;--green-700: #3c8b57;--amber-050: #fbe8dc;--amber-700: #b5762a;--ink-900: #1a1a1a;--ink-000: #ffffff}:root{--surface: var(--tg-theme-bg-color, #ffffff);--canvas: var(--tg-theme-secondary-bg-color, #f2f2f7);--text: var(--tg-theme-text-color, #1a1a1a);--hint: var(--tg-theme-hint-color, #8e8e93);--link: var(--tg-theme-link-color, #007aff);--destructive: var(--tg-theme-destructive-text-color, #ff3b30);--accent: var(--coral-400);--accent-deep: var(--coral-500);--accent-ink: var(--ink-000);--accent-soft: var(--coral-050);--accent-text: var(--coral-700);--info: var(--blue-500);--info-ink: var(--ink-000);--info-soft: var(--blue-050);--info-text: var(--blue-700);--ok-soft: var(--green-050);--ok-text: var(--green-700);--wait-soft: var(--amber-050);--wait-text: var(--amber-700);--hero-from: var(--blue-300);--hero-to: var(--blue-600);--hero-ink: var(--ink-000);--hero-ink-dim: rgba(255, 255, 255, .82);--line: rgba(120, 120, 128, .16);--shadow-card: 0 1px 2px rgba(0, 0, 0, .05);--shadow-nav: 0 8px 28px rgba(0, 0, 0, .16);--r-chip: 10px;--r-field: 16px;--r-card: 24px;--r-hero: 26px;--r-pill: 99px;--gap: 12px;--pad: 16px;--touch-min: 44px;--input-min: 16px;--nav-space: 104px}:root[data-scheme=dark]{--accent: #f08a68;--accent-soft: #3a2620;--accent-text: #f5a98d;--info: var(--blue-500);--info-soft: #1b2a3f;--info-text: #9cc6e4;--ok-soft: #1c3324;--ok-text: #6fcf8f;--wait-soft: #33291a;--wait-text: #e0b070;--hero-from: #4a7ea6;--hero-to: #35617f;--line: rgba(255, 255, 255, .12);--shadow-card: none;--shadow-nav: 0 8px 28px rgba(0, 0, 0, .5)}@media (prefers-color-scheme: dark){:root:not([data-scheme=light]){--accent: #f08a68;--accent-soft: #3a2620;--accent-text: #f5a98d;--info-soft: #1b2a3f;--info-text: #9cc6e4;--ok-soft: #1c3324;--ok-text: #6fcf8f;--wait-soft: #33291a;--wait-text: #e0b070;--hero-from: #4a7ea6;--hero-to: #35617f;--line: rgba(255, 255, 255, .12);--shadow-card: none;--shadow-nav: 0 8px 28px rgba(0, 0, 0, .5)}}*{box-sizing:border-box}body{margin:0;background:var(--canvas);color:var(--text);font:15px/1.45 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;min-height:var(--tg-viewport-stable-height, 100vh)}.app{padding:var(--pad);padding-bottom:var(--nav-space);max-width:640px;margin:0 auto}h1{font-size:21px;margin:0 0 4px;letter-spacing:-.3px}h2{font-size:16px;margin:22px 0 10px;letter-spacing:-.2px}.muted{color:var(--hint);font-size:13px}.center{text-align:center;padding:48px 16px}.top{display:flex;align-items:center;gap:12px;margin-bottom:16px}.top__ava{width:46px;height:46px;border-radius:50%;flex:none;background:linear-gradient(135deg,var(--hero-from),var(--hero-to));color:var(--hero-ink);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:15px;letter-spacing:.3px}.top__name{font-size:17px;font-weight:600;letter-spacing:-.2px}.top__sub{font-size:12px;color:var(--hint);margin-top:2px}.top__debt{color:var(--accent-text);font-weight:600}.hero{background:linear-gradient(135deg,var(--hero-from),var(--hero-to));color:var(--hero-ink);border-radius:var(--r-hero);padding:20px;margin-bottom:var(--gap)}.hero__label{font-size:12px;color:var(--hero-ink-dim)}.hero__title{font-size:26px;font-weight:700;margin-top:6px;letter-spacing:-.6px}.hero__where{font-size:13px;color:var(--hero-ink-dim);margin-top:6px}.hero__btns{display:flex;gap:8px;margin-top:18px}.hero__meta{display:flex;gap:18px;margin-top:16px;font-size:12px;color:var(--hero-ink-dim)}.hero__meta b{color:var(--hero-ink);font-weight:600}.hero button{background:var(--ink-000);color:var(--blue-700)}.hero button.ghost{background:#fff3;color:var(--hero-ink);border:0}.hero .maplink{background:transparent;color:var(--hero-ink);text-decoration:underline}.tiles{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap);margin-bottom:var(--gap)}.tiles--one{grid-template-columns:1fr}.tile{border-radius:var(--r-card);padding:16px}.tile--sky{background:var(--info-soft)}.tile--sand{background:var(--accent-soft)}.tile__label{font-size:13px;font-weight:600}.tile--sky .tile__label{color:var(--info-text)}.tile--sand .tile__label{color:var(--accent-text)}.tile__value{font-size:28px;font-weight:700;letter-spacing:-.8px;margin-top:6px;font-variant-numeric:tabular-nums}.tile--sky .tile__value{color:var(--info-text)}.tile--sand .tile__value{color:var(--accent-text)}.card{background:var(--surface);border-radius:var(--r-card);padding:var(--pad);margin-bottom:var(--gap);box-shadow:var(--shadow-card)}.card--blocked{opacity:.55}.row{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.row+.row{margin-top:6px}.date{font-weight:600;font-size:16px;letter-spacing:-.2px}.price{font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums}.free{font-variant-numeric:tabular-nums;font-size:13px;color:var(--hint)}.free--low{color:var(--accent-text);font-weight:600}.seats{margin-top:14px}.seats__bar{height:8px;border-radius:var(--r-pill);background:var(--canvas);overflow:hidden}.seats__fill{display:block;height:100%;border-radius:var(--r-pill);background:linear-gradient(90deg,var(--blue-300),var(--blue-500));transition:width .3s ease}.seats__fill--full{background:linear-gradient(90deg,var(--coral-400),var(--coral-500))}.seats__legend{display:flex;justify-content:space-between;margin-top:7px;font-size:11px;color:var(--hint)}.tags{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:12px}.tag{display:inline-block;font-size:12px;color:var(--hint);background:var(--canvas);border-radius:var(--r-chip);padding:5px 10px}.tag--beach{background:var(--info);color:var(--info-ink);font-weight:600}.chip{display:inline-block;font-size:11px;font-weight:600;padding:5px 11px;border-radius:var(--r-chip);background:var(--info-soft);color:var(--info-text)}.chip--ok{background:var(--ok-soft);color:var(--ok-text)}.chip--wait{background:var(--wait-soft);color:var(--wait-text)}button{font:inherit;border:0;border-radius:var(--r-field);cursor:pointer;min-height:var(--touch-min);padding:0 18px;background:var(--accent);color:var(--accent-ink);font-weight:600;font-size:14px;transition:opacity .15s ease}button:active{opacity:.75}button:disabled{opacity:.35;cursor:default}button.secondary{background:var(--canvas);color:var(--text)}button.ghost{background:transparent;color:var(--text);border:1px solid var(--line)}.btn-full{width:100%;margin-top:8px}.btn-row{display:flex;gap:8px;margin-top:14px}.btn-row>button{flex:1;padding:0 10px}input,select{font:inherit;width:100%;padding:12px 14px;margin-top:6px;border:1px solid var(--line);border-radius:var(--r-field);background:var(--surface);color:var(--text);font-size:var(--input-min);min-height:var(--touch-min)}input:focus,select:focus{outline:none;border-color:var(--accent)}label{display:block;margin-bottom:14px;font-size:13px;color:var(--hint)}.label--tight{margin-bottom:0}.nav{position:fixed;left:50%;transform:translate(-50%);bottom:calc(16px + env(safe-area-inset-bottom,0px));display:flex;gap:4px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-pill);padding:6px;box-shadow:var(--shadow-nav);z-index:20;max-width:calc(100% - 32px)}.nav button{min-height:var(--touch-min);padding:0 clamp(8px,2.2vw,16px);border-radius:var(--r-pill);background:transparent;color:var(--hint);font-size:13px;font-weight:500;white-space:nowrap}.nav button.on{background:linear-gradient(135deg,var(--hero-from),var(--hero-to));color:var(--hero-ink);font-weight:600}.error{background:var(--destructive);color:var(--ink-000);padding:12px 14px;border-radius:var(--r-field);margin-bottom:var(--gap);font-size:14px}.state{margin-top:10px;padding:9px 13px;border-radius:var(--r-field);background:var(--canvas);color:var(--hint);font-size:13px}.state--in{color:var(--ok-text);background:var(--ok-soft);font-weight:600}.offer{margin-top:12px;padding:16px;border-radius:var(--r-card);background:linear-gradient(135deg,var(--coral-400),var(--coral-500));color:var(--accent-ink)}.offer__title{font-weight:700;font-size:15px}.offer__time{font-size:13px;opacity:.92;margin-top:3px}.offer button{background:var(--ink-000);color:var(--accent-text)}.offer button.secondary{background:#ffffff38;color:var(--ink-000)}.people{list-style:none;margin:0;padding:0}.people li{display:flex;align-items:center;gap:12px;padding:11px 14px;background:var(--surface);font-size:14px;min-height:var(--touch-min)}.people li:first-child{border-radius:var(--r-card) var(--r-card) 0 0}.people li:last-child{border-radius:0 0 var(--r-card) var(--r-card)}.people li:only-child{border-radius:var(--r-card)}.people li+li{box-shadow:inset 0 1px 0 var(--line)}.people__ava{width:36px;height:36px;border-radius:50%;flex:none;background:var(--canvas);color:var(--hint);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600}.people__ava--m{background:var(--blue-500);color:var(--ink-000)}.people__ava--f{background:var(--coral-400);color:var(--ink-000)}.people__name{display:block;font-weight:500}.people__role{display:block;font-size:11px;color:var(--hint);margin-top:1px}.people__lvl{margin-left:auto;font-size:12px;color:var(--hint);font-variant-numeric:tabular-nums}.people__click{cursor:pointer}.people__click:active{background:var(--canvas)}.people--candidates li{box-shadow:inset 0 0 0 1.5px var(--accent)}.roster{display:flex;justify-content:space-between;align-items:center;gap:12px;background:linear-gradient(135deg,var(--hero-from),var(--hero-to));color:var(--hero-ink);border-radius:var(--r-card);padding:16px 18px;margin-bottom:var(--gap)}.roster__label{font-size:12px;color:var(--hero-ink-dim)}.roster__value{font-size:19px;font-weight:700;margin-top:2px;letter-spacing:-.3px}.roster__miss{font-size:11px;color:var(--hero-ink-dim);text-align:right;line-height:1.5}.person{padding:13px 0;border-bottom:1px solid var(--line)}.person:last-child{border-bottom:0}.person__head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.person__name{font-weight:600;font-size:14px}.person__sum{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:700}.person__why{font-size:12px;color:var(--hint);margin-top:3px}.marks{display:flex;gap:6px;margin-top:10px}.marks button{flex:1;min-height:var(--touch-min);padding:0 8px;font-size:13px;background:var(--canvas);color:var(--text);border-radius:var(--r-field)}.marks button.on{background:var(--info);color:var(--info-ink)}.marks button.on--warn{background:var(--accent);color:var(--accent-ink)}.totals{background:linear-gradient(135deg,var(--hero-from),var(--hero-to));color:var(--hero-ink);border-radius:var(--r-card);padding:18px;margin:16px 0}.totals .row{font-variant-numeric:tabular-nums;font-size:13px;color:var(--hero-ink-dim)}.totals .row--main{font-weight:700;font-size:19px;color:var(--hero-ink);letter-spacing:-.3px}.totals .muted{color:var(--hero-ink-dim)}.paid-badge{font-size:12px;color:var(--hero-ink)}.metric{display:flex;justify-content:space-between;align-items:center;padding:11px 0}.metric+.metric{border-top:1px solid var(--line)}.metric__val{font-variant-numeric:tabular-nums;font-weight:700;min-width:3ch;text-align:right}.metric__none{color:var(--hint);font-weight:400}.metric input{width:84px;margin:0;text-align:center}.avg{font-size:32px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.8px;color:var(--info-text)}.grow{font-size:13px;color:var(--ok-text);margin-top:4px}.candidate{box-shadow:inset 0 0 0 1.5px var(--accent),var(--shadow-card)}.badge{display:inline-block;font-size:11px;font-weight:600;padding:3px 9px;border-radius:var(--r-pill);background:var(--accent-soft);color:var(--accent-text);margin-left:6px}.maplink{display:inline-flex;align-items:center;min-height:var(--touch-min);color:var(--info-text);text-decoration:none;font-size:12px;background:none;border:0;padding:0;font-weight:500}.maplink:active{opacity:.6}.roles{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.roles button{min-height:var(--touch-min);padding:0 14px;font-size:13px;border-radius:var(--r-pill);background:var(--canvas);color:var(--text)}.roles button.on{background:var(--info);color:var(--info-ink)}
