*{box-sizing:border-box;margin:0;padding:0}body,html{height:100%;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:#111827;color:#f9fafb}.app{display:flex;flex-direction:column;height:100dvh}.topbar{flex-wrap:wrap;padding:.6rem .8rem;background:#1f2937}.brand,.topbar{display:flex;gap:.5rem;align-items:center}.brand{margin-right:auto}.brand img{height:30px;width:30px;border-radius:7px}.topbar h1{font-size:1rem}.byline{font-size:.68rem;font-weight:300;color:#9ca3af}.topbar input{padding:.4rem .6rem;border-radius:6px;border:1px solid #374151;background:#111827;color:#f9fafb;width:10rem}.topbar button{padding:.4rem .8rem;border-radius:6px;border:none;background:#059669;color:#fff;cursor:pointer;font-weight:600}.topbar button:disabled{opacity:.5;cursor:wait}.topbar button.btn-update{background:transparent;border:1px solid #4b5563;color:#9ca3af;font-weight:400;font-size:.78rem;padding:.3rem .55rem}.topbar button.btn-update.available{background:#facc15;border-color:#facc15;color:#1f2937;font-weight:700}.status{padding:.6rem .8rem;font-weight:600;text-align:center;border:none;color:inherit;font-family:inherit;font-size:.95rem;cursor:pointer;width:100%}.status.ok{background:#065f46}.status.forbidden{background:#991b1b}.status.unknown{background:#92400e}.status small{display:block;font-weight:400;opacity:.9}.map-wrap{flex:1 1;min-height:0}.disclaimer{line-height:1.35;background:#1f2937;text-align:center}.disclaimer,.legal-toggle{font-size:.72rem;color:#9ca3af}.legal-toggle{display:block;width:100%;padding:.35rem .8rem;background:none;border:none;cursor:pointer}.legal-body{padding:0 .8rem .5rem}.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal{background:#1f2937;border-radius:12px;padding:1.2rem;max-width:32rem;width:100%;max-height:80dvh;overflow-y:auto}.modal h2{font-size:1.05rem;margin-bottom:.8rem}.modal ul{list-style:none;display:flex;flex-direction:column;gap:.6rem;margin-bottom:.5rem}.modal p{font-size:.85rem;line-height:1.45;color:#d1d5db}.modal .ref{font-size:.75rem;color:#9ca3af}.law-text,.modal .ref a{color:#d1d5db}.law-text{white-space:pre-wrap;font-family:inherit;font-size:.82rem;line-height:1.5;margin-bottom:.6rem}.modal-actions{display:flex;gap:.5rem;margin-top:.8rem}.modal-actions button{padding:.45rem .9rem;border-radius:6px;border:none;background:#059669;color:#fff;font-weight:600;cursor:pointer}.modal-actions button.secondary{background:transparent;border:1px solid #4b5563;color:#9ca3af;font-weight:400}.disclaimer .legal{margin-top:.3rem}.user-pin{background:#3b82f6;border:3px solid #fff;border-radius:50%;box-shadow:0 1px 4px rgba(0,0,0,.5);cursor:-webkit-grab;cursor:grab}.disclaimer a{color:#d1d5db}