:root{--navy:#1746ce;--ink:#17243b;--muted:#52627b;--line:#dce3f0;--bg:#f3f6fc;--card:#fff;--accent:#c7f270;--accent2:#1746ce;--green:#087348;--shadow:0 8px 24px #17243b0a;color-scheme:light}html[data-theme="dark"]{--navy:#1746ce;--ink:#eef3ff;--muted:#b4c1d8;--line:#35425b;--bg:#101a2c;--card:#1b2941;--accent:#c7f270;--accent2:#a3baff;--green:#76e6ad;color-scheme:dark}
.top{background:var(--card);color:var(--ink);border-bottom:1px solid var(--line);padding-top:max(16px,env(safe-area-inset-top));padding-bottom:16px}.brand p{color:var(--muted)}.brand h1{letter-spacing:-.6px}.logo,.register-logo{background:none;box-shadow:none;flex-shrink:0}.logo img{width:100%;height:100%;border-radius:12px}.register-logo img{border-radius:16px}.icon-btn{color:var(--ink);background:var(--bg);border-color:var(--line)}.intro{margin:0 0 18px}.intro h2{font-size:clamp(24px,3vw,32px);letter-spacing:-.7px}.eyebrow{font-size:13px;color:var(--navy);letter-spacing:.8px}.free-label{background:var(--accent);color:#18301a;border:0}.search input{color:var(--ink)}.add,.submit{background:var(--navy);color:white}.card{border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);padding:22px}.card h3{font-size:21px}.card time{font-size:13px}.avatar{background:#e7eeff;color:#1746ce}.pay{font-size:24px}.tag{background:#eef2f9;color:#40516c;border-radius:7px}.primary{background:var(--navy);border-color:var(--navy);color:white}.primary,.secondary,.submit{min-height:46px}.card .desc{line-height:1.6}.geo-search{border-radius:18px;box-shadow:var(--shadow)}.map-panel{border-radius:18px}.promo-banner{background:var(--card);color:var(--ink);border:1px solid var(--line);box-shadow:none}.promo-banner small{color:var(--muted)}.promo-banner button{background:var(--bg);border:1px solid var(--line);color:var(--ink)}.chip.active{background:var(--navy);color:white;border-color:var(--navy)}.nav.active{background:#e8eeff;color:#1746ce}.bottom-inner{border-radius:18px}.register-dialog .register-hero{padding:20px 22px 12px}.register-hero h2{font-size:24px}.register-actions .submit{color:white}.role-card:has(input:checked){border-color:var(--navy);box-shadow:0 0 0 2px #1746ce18}.photo-pick{width:72px;height:72px;border-color:var(--line)}.photo-section{gap:5px}.photo-section .hint{font-size:13px}.field:focus{border-color:var(--navy);box-shadow:0 0 0 3px #1746ce20}.search:focus-within{outline-color:var(--navy)}button:focus-visible,a:focus-visible,input:focus-visible{outline-color:var(--accent2)}.role-card input,.consent input{accent-color:var(--navy)}#bootPanel{display:none;text-align:center;padding:30px 24px;color:var(--muted)}body.booting #bootPanel{display:block}body.booting #profileForm,body.booting .register-actions{display:none}.boot-spinner{display:inline-block;width:28px;height:28px;border:3px solid var(--line);border-top-color:var(--navy);border-radius:50%;animation:boot-turn 1s linear infinite}@keyframes boot-turn{to{transform:rotate(360deg)}}html[data-theme="dark"] .primary,html[data-theme="dark"] .chip.active{background:#adc1ff;border-color:#adc1ff;color:#102149}html[data-theme="dark"] .submit,html[data-theme="dark"] .add{background:#adc1ff;color:#102149}html[data-theme="dark"] .eyebrow{color:#adc1ff}html[data-theme="dark"] .nav.active{background:#30466b;color:#eef3ff}html[data-theme="dark"] .promo-banner{background:var(--card)}html[data-theme="dark"] .avatar{color:#adc1ff}html[data-theme="dark"] .tag{background:#273955;color:#dce7fb}.leaflet-popup-content{color:#17243b;color-scheme:light}html[data-theme="dark"] .leaflet-popup-content .tag{background:#eef2f9;color:#17243b}html[data-theme="dark"] .contact-buttons .primary,html[data-theme="dark"] .register-actions .submit{color:#102149}@media(max-width:699px){.card{padding:18px}.top-controls{gap:5px}.brand{gap:9px}.brand h1{font-size:19px}.icon-btn{min-width:38px;height:40px;padding:0 8px}.intro h2{max-width:none;font-size:25px}.bottom .nav{min-height:52px}.register-hero p{font-size:14px}.register-dialog .register-logo{width:44px;height:44px;margin-bottom:8px}.register-logo img{width:100%;height:100%}}@media(prefers-reduced-motion:reduce){.boot-spinner{animation:none}}
