.top { align-items: center; }
.top-actions, .action-row { display:flex; flex-wrap:wrap; gap:7px; align-items:center; }
.top-actions { margin-left:auto; }
.ui-btn { border:1px solid var(--line); border-radius:8px; background:var(--surface-2); color:var(--ink); padding:9px 12px; font:600 13px var(--f-body); cursor:pointer; }
.ui-btn:hover { border-color:var(--accent); }
.ui-btn.primary { background:var(--accent); color:var(--on-accent); border-color:var(--accent); }
.ui-btn.danger { color:#ae3535; }
.ui-btn:disabled { opacity:.45; cursor:default; }
.ui-btn:focus-visible, .editor-field:focus-visible { outline:3px solid var(--accent); outline-offset:2px; }
.install-section { display:grid; gap:10px; padding-bottom:14px; border-bottom:1px solid var(--line); }
.install-title { display:flex; gap:8px; align-items:center; justify-content:space-between; }
.install-title h2 { margin:0; font:600 22px/1 var(--f-display); }
.install-count { font-size:12px; color:var(--muted); }
.install-intro { margin:0; color:var(--muted); font-size:13px; }
.point-key { display:flex; flex-wrap:wrap; gap:10px; font-size:12px; color:var(--muted); }
.point-key span { display:flex; align-items:center; gap:5px; }
.key-dot { width:9px; height:9px; border-radius:50%; display:inline-block; }
.key-dot.bio { background:#ae4370; }.key-dot.site { background:#007f83; }.key-dot.other { background:#876825; }
.point-item { display:grid; grid-template-columns:30px minmax(0,1fr); gap:9px; width:100%; padding:9px 6px; border:0; border-radius:8px; text-align:left; background:transparent; color:var(--ink); cursor:pointer; font:inherit; }
.point-item:hover { background:var(--surface-2); }
.point-item[aria-current=true] { background:color-mix(in srgb,var(--accent) 14%,transparent); }
.point-item strong, .point-item small { display:block; overflow-wrap:anywhere; }
.point-item strong { font-size:14px; line-height:1.3; font-weight:500; }
.point-item small { color:var(--muted); font-size:12px; }
.p-biometrico { --point-color:#ae4370; }.p-site { --point-color:#007f83; }.p-otro { --point-color:#876825; }
.point-badge { width:28px; height:28px; display:grid; place-items:center; border-radius:8px; background:var(--point-color); color:white; font:700 14px var(--f-display); }
.point-marker { cursor:pointer; }
.point-marker .point-circle { fill:var(--point-color); stroke:white; stroke-width:2; }
.point-marker .point-letter { fill:white; font:700 12px var(--f-display); text-anchor:middle; dominant-baseline:central; }
.point-marker .point-caption { fill:var(--ink); stroke:var(--halo); stroke-width:3px; paint-order:stroke; stroke-linejoin:round; font:600 12px var(--f-body); }
.point-marker.selected .point-circle { stroke:var(--ink); stroke-width:3; }
.point-marker.dim { opacity:.25; }
.point-marker:focus-visible .point-circle { stroke:var(--accent); stroke-width:4; }
.l3.point3d, .l3.point3d.tiny { width:28px; height:28px; border-radius:8px; border:2px solid white; font-size:13px; background:var(--point-color); }
.l3.point3d.sel { outline:3px solid var(--ink); }
.editor-toolbar { display:grid; gap:9px; padding:12px; background:var(--surface-2); border:1px solid var(--line); border-radius:10px; }
.editor-toolbar p, .editor-context p { margin:0; }
.editor-status { font-size:12px; color:var(--muted); min-height:1.5em; margin:0; overflow-wrap:anywhere; }
.editor-status.error { color:#ae3535; }
.editor-status.dirty { color:var(--accent); font-weight:600; }
.editor-context { display:grid; gap:10px; border:1px solid var(--line); border-radius:10px; padding:12px; }
.editor-context h3 { margin:0; font:600 20px var(--f-display); }
.editor-context label, .login-form label { display:grid; gap:5px; font-size:13px; font-weight:500; }
.editor-field { width:100%; min-width:0; box-sizing:border-box; padding:9px 10px; border:1px solid var(--line); border-radius:7px; background:var(--surface); color:var(--ink); font:14px var(--f-body); }
textarea.editor-field { resize:vertical; min-height:76px; }
.editor-help { font-size:12px; color:var(--muted); }
.editor-placement { position:absolute; z-index:5; top:12px; left:12px; right:66px; padding:10px 12px; display:flex; align-items:center; gap:10px; justify-content:space-between; background:var(--surface); border:2px solid var(--accent); border-radius:10px; box-shadow:0 4px 18px #0002; font-size:13px; }
.placing #map { cursor:crosshair; }
.point-details { margin:0; white-space:pre-wrap; font-size:13px; color:var(--muted); overflow-wrap:anywhere; }
.map-dialog { width:min(400px,calc(100vw - 48px)); border:1px solid var(--line); border-radius:14px; padding:22px; color:var(--ink); background:var(--surface); box-shadow:0 15px 70px #0005; }
.map-dialog::backdrop { background:#10202b88; }
.map-dialog h2 { margin:0 0 10px; font:600 26px var(--f-display); }
.map-dialog p { font-size:13px; color:var(--muted); }
.login-form { display:grid; gap:15px; }
.share-field { margin:10px 0 16px; }
.section-label { margin:0; font:600 14px var(--f-display); letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }
.card { max-width:400px; }
.card strong, .card small { overflow-wrap:anywhere; }
@media(max-width:899px) { .top-actions { margin-left:0; }.top { gap:12px; }.editor-toolbar .ui-btn { min-height:38px; }.panel { gap:16px; }.editor-placement { font-size:12px; } }
@media print { .top-actions,.editor-toolbar,.editor-context,.editor-status,.editor-placement,.search,.ctrls,.modes { display:none!important; } }
