:root{--font-head: "Montserrat", system-ui, sans-serif;--font-body: "PT Sans", system-ui, sans-serif;--brand: #e10600;--brand-press: #b30500;--on-brand: #fff;--bg: #f2f3f5;--card: #ffffff;--text: #0f1115;--muted: #7a7f87;--line: #e6e8eb}:root[data-theme=dark],:root[data-theme=auto]{color-scheme:dark}:root[data-theme=dark]{--bg: #15171a;--card: #1e2227;--text: #f4f5f7;--muted: #9aa0a8;--line: #2b3036}@media (prefers-color-scheme: dark){:root[data-theme=auto]{--bg: #15171a;--card: #1e2227;--text: #f4f5f7;--muted: #9aa0a8;--line: #2b3036}}*{box-sizing:border-box}body{margin:0;font-family:var(--font-body);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}.app{max-width:480px;margin:0 auto;min-height:var(--tg-viewport-stable-height, 100vh);display:flex;flex-direction:column}.screen{flex:1;padding:14px 14px calc(84px + env(safe-area-inset-bottom,0px))}.appbar{display:flex;align-items:center;gap:8px;padding:12px 14px 4px;font-family:var(--font-head);font-weight:800;font-size:19px;letter-spacing:-.2px}.logo{width:30px;height:30px;border-radius:8px;background:var(--brand) url(/racket-mark-white.png) center/70% no-repeat;flex:0 0 auto}.hdrback{background:none;border:none;color:var(--brand);cursor:pointer;font-size:26px;line-height:1;padding:0 4px 0 0;margin-left:-4px;font-weight:700}.selector{display:flex;align-items:center;gap:8px;padding:6px 14px 10px}.sportpick{display:flex;gap:8px}.sp{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;color:var(--muted);background:var(--card);border:1px solid var(--line);cursor:pointer}.sp.on{background:var(--brand);border-color:var(--brand);color:#fff}.langsw{margin-left:auto;display:flex;gap:2px;font-size:12px;font-weight:700}.langsw span{padding:4px 6px;border-radius:6px;color:var(--muted);cursor:pointer;text-transform:uppercase}.langsw span.on{background:#e106001f;color:var(--brand)}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px;margin-bottom:10px}.actioncard{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px 14px;margin-bottom:10px;color:var(--text);cursor:pointer;font-family:var(--font-head);font-weight:700;font-size:15px}.actioncard.pri{background:var(--brand);border-color:var(--brand);color:#fff}.actioncard .ico{width:26px;height:26px;flex:0 0 auto}.actioncard .sub2{font-family:var(--font-body);font-weight:400;font-size:12px;opacity:.75;margin-top:2px}.actioncard .arr{margin-left:auto;font-size:20px;opacity:.6}.title{font-family:var(--font-head);font-weight:800;font-size:15px}.sub{color:var(--muted);font-size:12px;margin-top:2px}.tag{display:inline-block;font-size:10px;font-weight:700;color:var(--brand);text-transform:uppercase;letter-spacing:.6px}.chip{font-size:10px;font-weight:700;padding:3px 9px;border-radius:999px;background:#e106001f;color:var(--brand);text-transform:uppercase}.chip.gray{background:var(--line);color:var(--muted)}.field{margin-bottom:12px}.field label{font-size:10px;color:var(--muted);display:block;margin-bottom:4px;text-transform:uppercase;letter-spacing:.4px;font-weight:700}.field input,.field textarea,.field select{width:100%;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:11px 12px;font-size:14px;color:var(--text);font-family:var(--font-body)}.field textarea{resize:vertical;min-height:64px}.seg{display:flex;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:3px}.seg button{flex:1;text-align:center;padding:8px;border-radius:8px;color:var(--muted);background:none;border:none;font-size:13px;cursor:pointer;font-family:var(--font-body)}.seg button.on{background:var(--brand);color:#fff;font-weight:700}.btn{background:var(--brand);color:var(--on-brand);border:none;border-radius:11px;padding:13px;font-family:var(--font-head);font-weight:700;font-size:15px;width:100%;cursor:pointer}.btn:disabled{opacity:.5}.btn.sec{background:transparent;color:var(--brand);border:1.5px solid var(--brand)}.btn.ghost{background:transparent;color:var(--muted);border:1px solid var(--line)}.sectionhdr{display:flex;align-items:center;gap:8px;font-family:var(--font-head);font-weight:800;font-size:14px;margin:16px 0 8px}.sectionhdr:before{content:"";width:4px;height:18px;background:var(--brand);border-radius:2px}.rowbtns{display:flex;gap:8px}.err{color:var(--brand);font-size:13px;margin:8px 0}.warn{font-size:13px;line-height:1.35;padding:8px 10px;border-radius:8px;color:#7a4b00;background:#fff6e5;border:1px solid #f0c674}.warn strong{display:block;font-weight:700}:root[data-theme=dark] .warn{color:#ffd591;background:#f0c6741f;border-color:#f0c67473}@media (prefers-color-scheme: dark){:root[data-theme=auto] .warn{color:#ffd591;background:#f0c6741f;border-color:#f0c67473}}.empty{color:var(--muted);font-size:13px;text-align:center;padding:32px 0}.backbtn{color:var(--brand);font-weight:700;background:none;border:none;font-size:14px;cursor:pointer;padding:0}.bottomnav{position:fixed;bottom:0;left:0;right:0;max-width:480px;margin:0 auto;display:flex;border-top:1px solid var(--line);background:var(--card);padding-bottom:env(safe-area-inset-bottom,0px)}.bottomnav button{flex:1;text-align:center;padding:10px 4px;font-size:10px;color:var(--muted);background:none;border:none;cursor:pointer;font-family:var(--font-body);font-weight:700}.bottomnav button.on{color:var(--brand)}:root[data-theme=dark] .maplibregl-canvas{filter:invert(1) hue-rotate(180deg) brightness(.95) contrast(.9)}.maplibregl-ctrl-attrib{font-size:10px}
