*{box-sizing:border-box}body,html{margin:0;height:100%;background:#0b0b12;color:#f2ecdf;font-family:system-ui,-apple-system,Segoe UI,sans-serif}.app{position:fixed;inset:0;overflow:hidden}.app-title{top:env(safe-area-inset-top,0);left:0;right:0;padding:12px;text-align:center;font-weight:600;letter-spacing:.04em;color:#ffd97a;text-shadow:0 1px 8px rgba(0,0,0,.8);pointer-events:none}.app-title,.fab{position:absolute;z-index:5}.fab{bottom:calc(24px + env(safe-area-inset-bottom, 0px));left:50%;transform:translateX(-50%);padding:14px 26px;min-height:48px;border:none;border-radius:999px;background:linear-gradient(180deg,#ffce6b,#e8a93d);color:#2b1d05;font-size:17px;font-weight:700;box-shadow:0 4px 18px rgba(255,190,80,.35);cursor:pointer}.sheet-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.45);z-index:10}.sheet{position:absolute;bottom:0;left:0;right:0;max-height:86vh;overflow-y:auto;background:#16161f;border-radius:18px 18px 0 0;padding:20px 20px calc(20px + env(safe-area-inset-bottom, 0px));box-shadow:0 -6px 30px rgba(0,0,0,.5)}.sheet-close{position:-webkit-sticky;position:sticky;top:0;float:right;background:none;border:none;color:#f2ecdf;font-size:18px;min-width:44px;min-height:44px;cursor:pointer}.pf-form{display:flex;flex-direction:column;gap:10px}.pf-form label{font-size:14px;font-weight:600}.pf-form input:not([type=checkbox]),.pf-form select,.pf-form textarea{width:100%;padding:12px;border-radius:10px;border:1px solid #3a3a4a;background:#0f0f17;color:#f2ecdf;font-size:16px}.pf-form small{color:#9a9485;text-align:right}.pf-accordion{background:none;border:1px dashed #3a3a4a;border-radius:10px;color:#cfc8b8;padding:12px;min-height:44px;text-align:left;cursor:pointer}.pf-optional{display:flex;flex-direction:column;gap:8px;border:none;padding:0;margin:0}.pf-consent{display:flex;gap:10px;align-items:flex-start;font-size:13px;font-weight:400!important;line-height:1.45}.pf-consent input{width:20px;height:20px;margin-top:2px;flex-shrink:0}.pf-consent a{color:#ffd97a}.pf-error{color:#ff8f8f;font-size:14px;margin:0}.pf-submit{padding:15px;min-height:48px;border:none;border-radius:12px;background:linear-gradient(180deg,#ffce6b,#e8a93d);color:#2b1d05;font-size:17px;font-weight:700;cursor:pointer}.pf-submit:disabled{opacity:.45;cursor:not-allowed}.pf-gate{text-align:center;padding:24px 8px}.pf-gate h2{margin-top:0}.pf-gate p{color:#cfc8b8;line-height:1.5}.pf-gate button{margin-top:8px;padding:14px 26px;min-height:48px;border:none;border-radius:999px;background:linear-gradient(180deg,#ffce6b,#e8a93d);color:#2b1d05;font-size:16px;font-weight:700;cursor:pointer}.pf-status{text-align:center;color:#cfc8b8;padding:24px}.toast{position:absolute;bottom:calc(90px + env(safe-area-inset-bottom, 0px));left:50%;transform:translateX(-50%);width:min(92vw,420px);display:flex;gap:10px;align-items:center;justify-content:space-between;background:#1d1d29;border:1px solid #3a3a4a;border-radius:12px;padding:12px 14px;font-size:14px;z-index:6;box-shadow:0 4px 18px rgba(0,0,0,.5)}.toast button{flex-shrink:0;background:none;border:1px solid #ffd97a;color:#ffd97a;border-radius:8px;padding:8px 10px;cursor:pointer}.privacy{max-width:640px;margin:0 auto;padding:32px 20px 64px;line-height:1.65}.privacy h1{color:#ffd97a}.privacy .version{color:#9a9485;font-size:14px}.privacy a{color:#ffd97a}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.maplibregl-popup.pm-popup .maplibregl-popup-content{background:#1d1d29;color:#f4efe4;border:1px solid #343447;border-radius:12px;padding:12px 14px;font-family:inherit;box-shadow:0 10px 30px rgba(0,0,0,.45)}.maplibregl-popup.pm-popup[class*=anchor-bottom] .maplibregl-popup-tip{border-top-color:#1d1d29}.maplibregl-popup.pm-popup[class*=anchor-top] .maplibregl-popup-tip{border-bottom-color:#1d1d29}.maplibregl-popup.pm-popup[class*=anchor-left] .maplibregl-popup-tip{border-right-color:#1d1d29}.maplibregl-popup.pm-popup[class*=anchor-right] .maplibregl-popup-tip{border-left-color:#1d1d29}.maplibregl-popup.pm-popup .maplibregl-popup-close-button{color:#cfc8b8;font-size:18px;padding:2px 8px}.maplibregl-popup.pm-popup .maplibregl-popup-close-button:hover{background:transparent;color:#ffd97a}.pm-popup-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:7px}.pm-popup-title{font-weight:600;font-size:15px;color:#ffd97a}.pm-popup-time{font-size:12px;color:#a8a192;white-space:nowrap}.pm-popup-text{margin:0;font-size:14px;line-height:1.55;color:#f4efe4;word-break:break-word}.pm-popup-pending{margin:0;font-size:13px;color:#a8a192;font-style:italic}.pf-choose h2{margin:0 0 16px;font-size:20px}.pf-intentions{list-style:none;margin:0;padding:0;display:grid;grid-gap:10px;gap:10px}.pf-intentions button{width:100%;padding:16px 18px;font-size:17px;text-align:left;border:1px solid #2c2c3a;border-radius:12px;background:#16161f;color:#f2ecdf;cursor:pointer}.pf-intentions button:focus-visible,.pf-intentions button:hover{border-color:#ffd97a;background:#1c1c28}.pf-chosen{display:flex;align-items:center;gap:10px;margin:0 0 14px;color:#ffd97a;font-weight:600}.pf-link{background:none;border:0;padding:0;font-size:13px;font-weight:400;color:#9a9485;text-decoration:underline;cursor:pointer}.admin-shell{max-width:820px;margin:0 auto;padding:24px 16px 96px;color:#f2ecdf}.admin-nav{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding-bottom:16px;margin-bottom:20px;border-bottom:1px solid #2c2c3a}.admin-nav nav{display:flex;gap:14px;margin-left:auto}.admin-nav a{color:#cfc8b8;text-decoration:none;font-size:15px}.admin-nav a.is-active,.admin-nav a:hover{color:#ffd97a}.admin-nav button{background:none;border:1px solid #2c2c3a;border-radius:8px;padding:6px 12px;color:#cfc8b8;cursor:pointer}.admin-card{background:#16161f;border:1px solid #2c2c3a;border-radius:12px;padding:18px;margin-bottom:16px}.admin-card h1,.admin-card h2{margin:0 0 6px;font-size:19px}.admin-muted{color:#9a9485;font-size:14px}.admin-error{color:#ff8f8f;font-size:14px}.admin-tabs{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.admin-tabs button{padding:8px 14px;border-radius:999px;border:1px solid #2c2c3a;background:#16161f;color:#cfc8b8;cursor:pointer}.admin-tabs button.is-active{border-color:#ffd97a;color:#ffd97a}.admin-list{list-style:none;margin:0;padding:0}.admin-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}.admin-pill{font-size:12px;padding:3px 10px;border-radius:999px;border:1px solid #2c2c3a;color:#cfc8b8}.admin-pill.is-ok{border-color:#4a7f58;color:#8fd6a4}.admin-pill.is-wait{border-color:#7f6a3a;color:#ffd97a}.admin-text{margin:0 0 14px;line-height:1.55;white-space:pre-wrap;word-break:break-word}.admin-actions{display:flex;gap:8px;flex-wrap:wrap}.admin-actions button,.admin-add button,.admin-login button,.admin-savebar button{padding:9px 16px;border-radius:9px;border:1px solid #2c2c3a;background:#1c1c28;color:#f2ecdf;cursor:pointer;font-size:15px}.admin-actions button.is-primary,.admin-savebar button.is-primary{background:linear-gradient(180deg,#ffce6b,#e8a93d);color:#2b1d05;border:0;font-weight:600}.admin-actions button.is-danger{color:#ff8f8f;border-color:#5a2f2f}.admin-actions button:disabled,.admin-savebar button:disabled{opacity:.5;cursor:not-allowed}.admin-field{margin-bottom:14px;display:flex;flex-direction:column;gap:5px}.admin-field label{font-size:14px;color:#cfc8b8}.admin-add input,.admin-field input,.admin-intentions input[type=text],.admin-intentions li>input,.admin-login input{padding:10px 12px;border-radius:9px;border:1px solid #2c2c3a;background:#0f0f17;color:#f2ecdf;font-size:15px;width:100%}.admin-intentions{list-style:none;margin:0 0 14px;padding:0;display:grid;grid-gap:10px;gap:10px}.admin-intentions li{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.admin-intentions li>input{flex:1 1 220px;width:auto}.admin-toggle{display:flex;align-items:center;gap:6px;font-size:14px;color:#cfc8b8}.admin-intentions code{font-size:12px}.admin-add{display:flex;gap:8px;align-items:center}.admin-add input{flex:1 1}.admin-savebar{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.admin-login{max-width:380px;margin:12vh auto 0;display:flex;flex-direction:column;gap:8px}.admin-login label{font-size:14px;color:#cfc8b8;margin-top:8px}.admin-login button{margin-top:14px}