:root{--ink:#0f172a;--muted:#64748b;--line:#e2e8f0;--paper:#fff;--wash:#f8fafc}html,body,#root{height:100%;margin:0}body{background:var(--paper);color:var(--ink);-webkit-text-size-adjust:100%;font-family:system-ui,-apple-system,sans-serif}button,select{font:inherit;color:inherit}.notice{margin:0;padding:24px 16px}.muted{color:var(--muted)}.small{font-size:12px;line-height:1.45}.app{height:100%;position:relative}.map{position:absolute;inset:0}.map .mapboxgl-ctrl-bottom-left,.map .mapboxgl-ctrl-bottom-right{bottom:var(--panel,0px)}.panel{max-height:50vh;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:var(--paper);box-sizing:border-box;z-index:1;position:absolute;bottom:0;left:0;right:0;overflow-y:auto;box-shadow:0 -2px 12px #0f172a26}@media (width>=640px){.panel{border-radius:14px;width:380px;max-height:calc(100% - 24px);padding:14px 16px;inset:12px auto auto 12px;box-shadow:0 2px 12px #0f172a33}}.toast,.hint{top:calc(12px + env(safe-area-inset-top));border-radius:10px;margin:0;padding:10px 14px;font-size:14px;line-height:1.35;position:absolute;left:16px;right:64px}@media (width>=640px){.toast,.hint{left:404px}}.toast{background:var(--ink);color:#fff}.hint{pointer-events:none;background:#ffffffeb;box-shadow:0 1px 4px #0f172a33}.crosshair{left:50%;top:calc((100% - var(--panel,0px)) / 2);border:2px solid var(--ink);pointer-events:none;border-radius:50%;width:18px;height:18px;margin:-9px 0 0 -9px;position:absolute}.stay{grid-template-columns:1.2fr 1fr .9fr;gap:8px;display:grid}.field{flex-direction:column;gap:3px;min-width:0;display:flex}.field span{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-size:11px;font-weight:600}.field select{border:1px solid var(--line);background:var(--wash);border-radius:8px;width:100%;min-width:0;padding:7px 6px;font-size:16px;font-weight:600}.legend{color:var(--muted);flex-wrap:wrap;gap:4px 12px;margin:12px 0 0;padding:0;font-size:12px;list-style:none;display:flex}.legend li{align-items:center;gap:5px;display:flex}.swatch{border-radius:2px;width:16px;height:4px}.swatch.thin{height:2px}.swatch.dashed{border-top:3px dashed;border-radius:0;height:0}.holiday{color:#065f46;background:#ecfdf5;border-radius:8px;margin-top:12px;padding:8px 12px;font-size:13px;line-height:1.4}.holiday p{margin:0}.holiday p+p{margin-top:4px}.warnings{background:#f7f1fa;border-left:4px solid #6b2d8c;border-radius:6px;margin-top:12px;padding:8px 12px;font-size:13px;line-height:1.4}.warnings-head{font-weight:600}.warnings ul{margin:6px 0 0;padding:0;list-style:none}.warnings li{border-top:1px solid #e6d5ef;flex-direction:column;padding:6px 0;display:flex}.toggle{border:1px solid var(--line);background:var(--wash);cursor:pointer;border-radius:10px;width:100%;margin-top:12px;padding:10px;font-weight:600}.nearby{margin:8px 0 0;padding:0;list-style:none}.nearby button{border:0;border-bottom:1px solid var(--line);text-align:left;cursor:pointer;background:0 0;align-items:center;gap:10px;width:100%;padding:10px 2px;display:flex}.dot{border-radius:50%;flex:none;width:10px;height:10px}.spot{flex-direction:column;flex:1;min-width:0;font-size:14px;display:flex}.spot .muted{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.far{white-space:nowrap;flex-direction:column;align-items:flex-end;font-size:14px;font-weight:600;display:flex}.far .muted{font-size:12px;font-weight:400}.card h2{margin:0;font-size:18px}.card p{margin:4px 0 0}.card-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.close{background:var(--wash);cursor:pointer;border:0;border-radius:50%;flex:none;width:32px;height:32px;font-size:22px;line-height:1}.verdict{background:var(--wash);border-left:4px solid;border-radius:6px;margin-top:12px;padding:10px 12px}.verdict strong{font-size:17px}.signs{margin:12px 0 0;padding:0;font-size:13px;list-style:none}.signs li{border:1px solid var(--line);letter-spacing:.01em;border-radius:6px;margin-top:6px;padding:8px 10px;font-weight:600}.signs li.blocking{border-color:var(--ink)}.tag{color:#6b21a8;background:#f3e8ff;border-radius:4px;margin-left:6px;padding:1px 6px;font-size:11px;font-weight:500;display:inline-block}.tag.clean{color:#075985;background:#e0f2fe}.card .small{margin-top:12px}
