/* Panel de gestión: el tótem en Modo Operate. Mismos tokens y piezas que resources/css/app.css, servidos aparte (/recursos/) para no tocar el bundle público. Sin estilos en línea: la CSP no los admite. */
@font-face { font-family:'Barlow'; font-weight:400; font-display:swap; src:url('/fonts/barlow-400.woff2') format('woff2'); }
@font-face { font-family:'Barlow'; font-weight:600; font-display:swap; src:url('/fonts/barlow-600.woff2') format('woff2'); }
@font-face { font-family:'Barlow Semi Condensed'; font-weight:600; font-display:swap; src:url('/fonts/barlow-semicondensed-600.woff2') format('woff2'); }
@font-face { font-family:'Doto'; font-weight:600 900; font-display:swap; src:url('/fonts/doto.woff2') format('woff2'); }
:root { --bg:#0B0C0F; --panel:#14161A; --panel2:#1C1F25; --frame:#2B2F37; --frame-hi:#3A3F49; --ink:#F4F5F7; --ink2:#B9BEC9; --ink3:#8B919E; --led:#F0A500; --soft:#F7BE3F; --green:#3FE27A; --red:#FF5A5A;
  --sans:'Barlow',system-ui,sans-serif; --label:'Barlow Semi Condensed','Barlow',system-ui,sans-serif; --shadow:0 6px 18px -8px rgb(0 0 0 / .8), 0 1px 0 0 var(--frame-hi) inset; }
*, *::before, *::after { box-sizing:border-box; }
html { background:var(--bg); color-scheme:dark; scrollbar-color:var(--frame-hi) var(--bg); -webkit-text-size-adjust:100%; }
body { margin:0; background:var(--bg); color:var(--ink); font:400 1rem/1.5 var(--sans); -webkit-tap-highlight-color:transparent; }
::selection { background:var(--led); color:#0B0C0F; }
:focus-visible { outline:2px solid var(--led); outline-offset:2px; border-radius:4px; }
[tabindex="-1"]:focus { outline:none; }
a { color:var(--soft); text-underline-offset:3px; }
h1, h2, h3, p, dl, dd, ol, ul, blockquote { margin:0; padding:0; }
ol, ul { list-style:none; }
.icon { width:16px; height:16px; flex:none; }
.sr { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.label { font:600 .75rem/1.2 var(--label); letter-spacing:.08em; text-transform:uppercase; color:var(--ink2); }
.label-sm { font:600 .6875rem/1.2 var(--label); letter-spacing:.08em; text-transform:uppercase; color:var(--ink3); }
.muted { color:var(--ink2); font-size:.875rem; }
.faint { color:var(--ink3); }
.panel { background:var(--panel); border:1px solid var(--frame); border-radius:10px; box-shadow:var(--shadow); }
.row { background:var(--panel2); border:1px solid var(--frame); border-radius:8px; }

.btn { display:inline-flex; align-items:center; justify-content:center; gap:.5rem; min-height:44px; padding:0 1.1rem; border-radius:8px; font:600 .9375rem/1.1 var(--sans); border:1px solid var(--frame-hi); background:var(--panel2); color:var(--ink); text-decoration:none; cursor:pointer; transition:background-color .15s, border-color .15s, transform .1s; }
.btn:hover { background:var(--frame); }
.btn:active { transform:translateY(1px); }
.btn:disabled, .btn[aria-busy="true"] { opacity:.55; cursor:default; transform:none; }
.btn-led { background:var(--led); border-color:var(--led); color:#0B0C0F; }
.btn-led:hover { background:var(--soft); }
.btn-led:focus-visible { outline-color:var(--ink); }
.btn-ghost { background:transparent; border-color:transparent; color:var(--ink2); }
.btn-ghost:hover { background:var(--panel2); color:var(--ink); }
.btn-icon { width:44px; padding:0; }
kbd { display:inline-flex; align-items:center; justify-content:center; min-width:1.45em; height:1.45em; padding:0 .3em; border:1px solid currentColor; border-radius:4px; font:600 .6875rem/1 var(--label); opacity:.75; }
.inline-link { display:inline-flex; align-items:center; gap:.35rem; min-height:44px; }

.field { width:100%; min-height:48px; padding:0 .9rem; border-radius:8px; border:1px solid var(--frame-hi); background:var(--bg); color:var(--ink); font:400 1rem/1.25 var(--sans); }
.field:focus { outline:none; border-color:var(--led); box-shadow:0 0 0 1px var(--led); }
.field-label { display:grid; gap:4px; font-size:.875rem; color:var(--ink2); }

.wordmark { font:700 1.35rem/1 'Doto','Barlow',monospace; letter-spacing:.06em; }


.queue { display:grid; grid-template-columns:320px minmax(0,1fr); gap:16px; align-items:start; }
.rail-row { display:grid; gap:4px; padding:10px 12px; min-height:60px; color:var(--ink); text-decoration:none; transition:border-color .15s, background-color .15s; }
.rail-row:hover { border-color:var(--frame-hi); }
.rail-row.is-current { border-color:var(--led); background:rgb(240 165 0 / .08); }
.rail-head { display:flex; justify-content:space-between; gap:8px; }
.rail-title { font-weight:600; font-size:.9375rem; line-height:1.25; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.rail-flag { display:inline-flex; align-items:center; gap:6px; font-size:.8125rem; color:var(--ink2); }
.dot { display:inline-block; width:6px; height:6px; border-radius:50%; flex:none; background:var(--ink3); }
.dot-led { background:var(--led); }
.dot-green { background:var(--green); }
.dot-red { background:var(--red); }

.pager { display:none; align-items:center; gap:8px; margin-bottom:8px; min-height:44px; }
.js .pager { display:flex; }
.pager-keys { margin-left:auto; display:flex; flex-wrap:wrap; gap:4px 14px; color:var(--ink3); font-size:.8125rem; }
.pager-keys span { display:inline-flex; align-items:center; gap:5px; }
.pager-count { font-weight:600; font-variant-numeric:tabular-nums; }
.card { margin-bottom:16px; scroll-margin-top:72px; }
[data-cards] .card:not(:first-child) { display:none; }
.js .card { display:none; }
.js .card.is-current { display:block; animation:card-in .18s cubic-bezier(.16,1,.3,1); }
@keyframes card-in { from { opacity:0; transform:translateY(4px); } to { opacity:1; transform:none; } }
.card-head { padding:16px 16px 12px; border-bottom:1px solid var(--frame); }
.card-title { caret-color:transparent; font-size:1.25rem; font-weight:600; line-height:1.3; overflow-wrap:anywhere; }
.card-title span { color:var(--ink2); font-weight:400; }
.meta { display:flex; flex-wrap:wrap; align-items:center; gap:2px 12px; margin-top:4px; font-size:.9375rem; color:var(--ink2); }
.meta a { display:inline-flex; align-items:center; min-height:44px; }
.card-body { display:grid; grid-template-columns:minmax(0,1fr) minmax(320px,420px); gap:20px; padding:16px; align-items:start; }
.card-body.no-map { grid-template-columns:minmax(0,1fr); }
.stack { display:grid; gap:16px; min-width:0; }
.section { display:grid; gap:8px; min-width:0; }
.statement { font-weight:600; }

.tags { display:flex; flex-wrap:wrap; gap:4px 16px; }
.tag { display:inline-flex; align-items:center; gap:6px; font-weight:600; font-size:.9375rem; min-height:28px; }
.tag .icon { color:var(--ink2); }
.tag-no { font-weight:400; color:var(--ink3); }
.tag-no .icon { color:var(--ink3); }
.facts { display:grid; grid-template-columns:auto minmax(0,1fr); gap:2px 16px; font-size:.9375rem; }
.facts dt { color:var(--ink3); }
.facts dd { overflow-wrap:anywhere; }

.diff { display:grid; gap:4px; }
.diff-row { display:grid; grid-template-columns:minmax(110px,160px) minmax(0,1fr) 16px minmax(0,1fr); gap:10px; align-items:center; padding:8px 12px; }
.diff-label { color:var(--ink2); font-size:.875rem; }
.diff-before { color:var(--ink3); overflow-wrap:anywhere; }
.diff-after { font-weight:600; overflow-wrap:anywhere; }
.diff-row .icon { color:var(--ink3); }

.note { padding:10px 12px; background:var(--panel2); border:1px solid var(--frame); border-radius:8px; white-space:pre-wrap; overflow-wrap:anywhere; max-width:70ch; }
details > summary { cursor:pointer; display:flex; align-items:center; gap:8px; min-height:44px; font-weight:600; font-size:.9375rem; color:var(--ink2); list-style:none; }
details > summary::-webkit-details-marker { display:none; }
details > summary:hover { color:var(--ink); }
details > summary .icon-chevron { transition:transform .15s; }
details[open] > summary .icon-chevron { transform:rotate(180deg); }
.fold { border-top:1px solid var(--frame); }
.fold-body { display:grid; gap:12px; padding-bottom:12px; }

.edit-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(170px,1fr)); gap:10px 12px; }
.tri-list { display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:8px 16px; }
.tri { display:flex; align-items:center; justify-content:space-between; gap:8px; border:0; margin:0; padding:0; min-width:0; }
.tri legend { float:left; padding:0; font-size:.875rem; color:var(--ink2); }
.seg { display:inline-flex; gap:3px; padding:3px; background:var(--bg); border:1px solid var(--frame); border-radius:10px; }
.seg label { display:flex; align-items:center; justify-content:center; min-width:44px; min-height:44px; padding:0 8px; border-radius:7px; font-size:.875rem; color:var(--ink2); cursor:pointer; }
.seg input { position:absolute; opacity:0; width:1px; height:1px; }
.seg input:checked + span { color:var(--soft); }
.seg label:has(input:checked) { background:rgb(240 165 0 / .12); }
.seg label:has(input:focus-visible) { outline:2px solid var(--led); outline-offset:1px; }

.map-box { display:grid; gap:8px; min-width:0; }
.map { height:300px; border-radius:8px; border:1px solid var(--frame); background:#0E1013; isolation:isolate; overflow:hidden; }
.leaflet-container { background:#0E1013; font-family:var(--sans); }
.leaflet-tile-pane { filter:invert(1) hue-rotate(180deg) brightness(.82) contrast(.92) saturate(.18); }
.leaflet-control-zoom a { width:44px !important; height:44px !important; line-height:44px !important; background:var(--panel) !important; color:var(--ink) !important; border-color:var(--frame) !important; }
.leaflet-bar { border:1px solid var(--frame) !important; box-shadow:var(--shadow) !important; }
.leaflet-control-attribution { background:rgb(11 12 15 / .8) !important; color:var(--ink3) !important; font-size:10px; }
.leaflet-control-attribution a { color:var(--ink2) !important; }
.leaflet-tooltip { background:var(--panel2); color:var(--ink); border:1px solid var(--frame-hi); box-shadow:none; }
.leaflet-tooltip::before { display:none; }
.pin { border-radius:50%; background:var(--ink); border:4px solid var(--led); box-shadow:0 4px 10px -4px rgb(0 0 0 / .9); }
.pin-from { background:transparent; border:3px solid var(--ink); }
.dupes { display:grid; gap:2px; font-size:.875rem; color:var(--ink2); }
.links { display:flex; flex-wrap:wrap; gap:0 16px; font-size:.9375rem; }

.card-error { display:flex; align-items:flex-start; gap:8px; padding:0 16px 12px; color:var(--red); font-size:.9375rem; }
.card-error[hidden] { display:none; }
.card-actions { position:sticky; bottom:0; z-index:5; display:flex; flex-wrap:wrap; align-items:center; gap:8px; padding:12px 16px calc(12px + env(safe-area-inset-bottom)); background:var(--panel); border-top:1px solid var(--frame); border-radius:0 0 10px 10px; }
.card-actions .btn-.card-actions .spacer { flex:1 1 auto; }

.toast[hidden] { display:none; }
.toast-text { flex:1 1 220px; font-size:.9375rem; }

.empty { display:grid; justify-items:center; gap:8px; padding:64px 24px; text-align:center; grid-column:1 / -1; }
.empty[hidden] { display:none; }
.empty h2 { font-size:1.25rem; font-weight:600; margin-top:8px; }
.empty p { max-width:46ch; color:var(--ink2); }

.list { display:grid; gap:8px; }
.mark { display:inline-flex; align-items:center; gap:6px; font:600 .6875rem/1.2 var(--label); letter-spacing:.06em; text-transform:uppercase; color:var(--ink2); }
.hist-title { font-weight:600; font-size:.9375rem; overflow-wrap:anywhere; }
.hist-title span { font-weight:400; color:var(--ink2); }
.hist-acts { display:flex; flex-wrap:wrap; gap:8px; justify-content:flex-end; min-width:44px; }




/* --- Cáscara --- */
body.app { display:grid; grid-template-columns:236px minmax(0,1fr); min-height:100dvh; }
.skip { position:absolute; left:8px; top:-60px; z-index:50; padding:10px 14px; background:var(--panel2); border:1px solid var(--led); border-radius:8px; }
.skip:focus { top:8px; }
.side { position:sticky; top:0; height:100dvh; display:flex; flex-direction:column; gap:16px; padding:14px 12px 12px; background:var(--bg); border-right:1px solid var(--frame); }
.brand { display:inline-flex; align-items:center; gap:10px; color:var(--ink); text-decoration:none; min-height:44px; }
.brand-text { display:grid; gap:3px; }
.wordmark { font:700 1.2rem/1 'Doto','Barlow',monospace; letter-spacing:.06em; }
.side-nav { display:grid; gap:2px; }
.side-nav a, .side-me { display:flex; align-items:center; gap:10px; min-height:44px; padding:0 10px; border-radius:8px; color:var(--ink2); font-weight:600; font-size:.9375rem; text-decoration:none; transition:background-color .15s, color .15s; }
.side-nav a .icon, .side-me .icon { width:20px; height:20px; color:var(--ink3); }
.side-nav a:hover, .side-me:hover { background:var(--panel2); color:var(--ink); }
.side-nav a[aria-current], .side-me[aria-current] { background:var(--panel2); color:var(--soft); box-shadow:0 1px 0 0 var(--frame-hi) inset; }
.side-nav a[aria-current] .icon, .side-me[aria-current] .icon { color:var(--soft); }
.count { margin-left:auto; min-width:24px; padding:1px 7px; border-radius:999px; background:rgb(240 165 0 / .12); color:var(--soft); font:600 .8125rem/1.45 var(--sans); font-variant-numeric:tabular-nums; text-align:center; }
.side-foot { margin-top:auto; display:flex; align-items:center; gap:4px; padding-top:10px; border-top:1px solid var(--frame); }
.side-me { flex:1; min-width:0; }
.side-me-text { display:grid; gap:2px; min-width:0; }
.side-name { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; line-height:1.15; }
.work { min-width:0; display:flex; flex-direction:column; }
.mobile-top, .bottom { display:none; }
.main { width:100%; margin:0 auto; padding:20px 24px 56px; }
.main.wide { max-width:1480px; }
.main.narrow { max-width:640px; }
.page-head { display:flex; flex-wrap:wrap; align-items:center; gap:10px 20px; margin-bottom:12px; }
.page-head .page-title { margin-bottom:0; }
.page-title { font-size:1.5rem; font-weight:600; line-height:1.25; margin-bottom:12px; overflow-wrap:anywhere; }
.page-note { margin-bottom:12px; }
.crumb { margin-bottom:2px; }
.seg-nav { display:inline-flex; flex-wrap:wrap; gap:3px; padding:3px; background:var(--bg); border:1px solid var(--frame); border-radius:10px; }
.seg-nav a { display:inline-flex; align-items:center; gap:6px; min-height:40px; padding:0 .85rem; border-radius:7px; color:var(--ink2); font-weight:600; font-size:.9375rem; text-decoration:none; transition:background-color .15s, color .15s; }
.seg-nav a:hover { color:var(--ink); }
.seg-nav a[aria-current] { background:var(--panel2); color:var(--ink); box-shadow:0 1px 0 0 var(--frame-hi) inset; }
.tab { font-variant-numeric:tabular-nums; }
.flash { display:flex; align-items:center; gap:8px; margin-bottom:12px; padding:10px 12px; background:var(--panel2); border:1px solid var(--frame); border-radius:8px; font-size:.9375rem; }
.flash .icon { color:var(--ink2); }
.flash-error { color:var(--red); }
.banner { display:flex; align-items:center; gap:8px; padding:10px 24px; background:var(--panel2); border-bottom:1px solid var(--frame); font-size:.9375rem; color:var(--ink2); }
.banner[hidden] { display:none; }
.toast { position:fixed; top:16px; right:16px; z-index:40; width:min(480px,calc(100vw - 32px)); display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; padding:8px 8px 8px 16px; min-height:60px; background:var(--panel2); border:1px solid var(--frame-hi); border-radius:8px; box-shadow:0 12px 28px -12px rgb(0 0 0 / .9); animation:card-in .18s cubic-bezier(.16,1,.3,1); }
.toast[hidden] { display:none; }
.toast-text { flex:1 1 220px; font-size:.9375rem; }
.toast-note { flex:1 1 100%; font-size:.875rem; color:var(--ink2); }
.confirm { width:min(440px,calc(100vw - 32px)); padding:20px; background:var(--panel); color:var(--ink); border:1px solid var(--frame-hi); border-radius:10px; box-shadow:var(--shadow); }
.confirm::backdrop { background:rgb(0 0 0 / .6); }
.confirm-acts { display:flex; justify-content:flex-end; gap:8px; margin-top:16px; }
::-webkit-scrollbar { width:10px; height:10px; }
::-webkit-scrollbar-thumb { background:var(--frame-hi); border-radius:999px; border:2px solid var(--bg); }
::-webkit-scrollbar-track { background:var(--bg); }

/* --- Entrada --- */
body.guest { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; min-height:100dvh; padding:16px; }
.gate { width:min(430px,100%); display:grid; gap:14px; padding:22px; }
.gate-title { font-size:1.25rem; font-weight:600; line-height:1.3; }
.gate-form { display:grid; gap:10px; }
.gate-acts { display:flex; flex-wrap:wrap; gap:8px; }
.gate-foot { font-size:.8125rem; color:var(--ink3); text-align:center; max-width:430px; }
.muted-lg { color:var(--ink2); font-size:.9375rem; overflow-wrap:anywhere; }
.btn-wide { width:100%; }
.field-code { font-size:1.25rem; font-variant-numeric:tabular-nums; letter-spacing:.14em; text-align:center; }
.field-error { color:var(--red); font-size:.875rem; }
.field-error[hidden] { display:none; }
.or { display:flex; align-items:center; gap:12px; color:var(--ink3); font-size:.8125rem; }
.or::before, .or::after { content:''; flex:1; height:1px; background:var(--frame); }
.steps { display:grid; gap:4px; padding-left:1.3em; list-style:decimal; color:var(--ink2); font-size:.9375rem; }
.qr { justify-self:center; padding:8px; background:#fff; border-radius:8px; line-height:0; }
.qr svg { display:block; width:216px; height:216px; }
.secret { padding:10px 12px; background:var(--bg); border:1px solid var(--frame-hi); border-radius:8px; font-variant-numeric:tabular-nums; letter-spacing:.06em; overflow-wrap:anywhere; }
.codes { display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:6px; margin-top:12px; }
.codes li { padding:8px 10px; background:var(--bg); border:1px solid var(--frame-hi); border-radius:8px; font-variant-numeric:tabular-nums; text-align:center; user-select:all; }

/* --- Bloques --- */
.block { padding:14px 16px; }
.block-title { font-size:1.0625rem; font-weight:600; line-height:1.3; margin-bottom:10px; }
.block-note { margin-top:10px; }
.home { display:grid; grid-template-columns:minmax(300px,420px) minmax(0,1fr); gap:12px; align-items:start; }
.home > :first-child { grid-row:span 2; }
.calm { display:flex; align-items:center; gap:8px; margin-bottom:6px; color:var(--ink2); font-size:.9375rem; }
.lines { display:grid; gap:6px; }
.line { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:60px; padding:8px 12px; background:var(--panel2); border:1px solid var(--frame); border-radius:8px; color:var(--ink); text-decoration:none; transition:border-color .15s; }
.line:hover { border-color:var(--frame-hi); }
.line-text { display:grid; gap:1px; min-width:0; }
.line-text b { font-weight:600; }
.num { font:600 1.75rem/1 var(--sans); font-variant-numeric:tabular-nums; color:var(--ink2); }
.num-lit { color:var(--soft); }
.kv { display:grid; gap:0; margin-top:12px; }
.kv > div { display:flex; justify-content:space-between; gap:12px; padding:7px 0; border-top:1px solid var(--frame); font-size:.9375rem; }
.kv dt { color:var(--ink2); }
.kv dd { font-variant-numeric:tabular-nums; text-align:right; }
.table-wrap { overflow-x:auto; }
.table { width:100%; border-collapse:collapse; font-size:.9375rem; }
.table th, .table td { padding:7px 10px 7px 0; border-top:1px solid var(--frame); text-align:left; white-space:nowrap; font-weight:400; }
.table thead th { border-top:0; font:600 .6875rem/1.2 var(--label); letter-spacing:.08em; text-transform:uppercase; color:var(--ink3); }
.table tbody th { font-weight:600; }
.table .r { text-align:right; padding-right:0; padding-left:10px; }
.mark-plain { font:400 .9375rem/1.4 var(--sans); letter-spacing:0; text-transform:none; color:var(--ink); }
.log { display:grid; }
.log-row { display:grid; grid-template-columns:128px minmax(90px,150px) minmax(0,1fr); gap:0 14px; padding:8px 0; border-top:1px solid var(--frame); font-size:.9375rem; }
.log-row:first-child { border-top:0; padding-top:0; }
.log-when { color:var(--ink3); font-variant-numeric:tabular-nums; }
.log-who { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--ink2); }
.log-what { overflow-wrap:anywhere; }
.log-detail { grid-column:3; display:flex; flex-wrap:wrap; gap:0 12px; font-size:.8125rem; color:var(--ink3); overflow-wrap:anywhere; }

/* --- Filtros --- */
.filters { display:grid; grid-template-columns:repeat(auto-fill,minmax(170px,1fr)); gap:8px 10px; align-items:end; margin-bottom:12px; }
.filters-q { grid-column:span 2; }
.filters-go { display:flex; gap:6px; }
.filters-go .btn { min-height:48px; }
select.field { appearance:none; padding-right:2.2rem; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238B919E' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right .7rem center; background-size:16px; }
.field::placeholder { color:var(--ink3); }
.filter-fold { margin-bottom:8px; border-top:0; }
.filter-fold > .filters { margin-top:4px; }
.filter-fold .count { margin-left:4px; }
.list > li > a { color:inherit; text-decoration:none; }
.point-row { display:flex; align-items:center; gap:12px; min-height:60px; padding:8px 12px; background:var(--panel2); border:1px solid var(--frame); border-radius:8px; transition:border-color .15s; }
.point-row:hover { border-color:var(--frame-hi); }
.point-row > .icon { color:var(--ink3); }
.point-main { flex:1; display:grid; gap:1px; min-width:0; }
.point-name { font-weight:600; overflow-wrap:anywhere; }
.paging { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:12px; margin-top:12px; }
.detail { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:12px; align-items:start; }
.facts-gap { margin-top:10px; }
.facts dd form { margin:2px 0 4px; }
.inline-form { display:flex; flex-wrap:wrap; align-items:flex-end; gap:8px; }
.inline-form .field-label { flex:1 1 200px; }
.inline-form .btn { min-height:48px; }
.plain-list { display:grid; gap:0; font-size:.9375rem; }
.plain-list li { padding:7px 0; border-top:1px solid var(--frame); overflow-wrap:anywhere; }
.plain-list li:first-child { border-top:0; padding-top:0; }
.plain-list a { min-height:0; }
.invite { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px; }
.member { display:grid; gap:10px; padding:12px; background:var(--panel2); border:1px solid var(--frame); border-radius:8px; scroll-margin-top:16px; }
.member-main { min-width:0; overflow-wrap:anywhere; }
.member-acts { display:grid; gap:8px; }
.member-btns { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; }
.more-nav { display:none; gap:8px; margin-bottom:12px; }
.map-page { padding:8px; }
.map-full { height:calc(100dvh - 300px); min-height:420px; }
.map-tall { height:420px; }
.result { display:grid; gap:6px; margin-bottom:12px; }
.result-acts { display:flex; flex-wrap:wrap; gap:8px; margin-top:6px; }
.statement-line { margin-bottom:4px; }

/* --- Cola --- */
.queue { align-items:start; grid-template-columns:330px minmax(0,1fr); }
.queue-main { min-width:0; }
.rail-col { position:sticky; top:12px; max-height:calc(100dvh - 24px); display:flex; flex-direction:column; min-height:0; }
.rail-col[hidden] { display:none; }
.rail-fold { display:flex; flex-direction:column; min-height:0; max-height:100%; overflow:auto; }
.rail-fold > summary { display:none; }
.rail { display:grid; gap:6px; padding:1px; }
.rail-more { padding:8px 4px; }
.rail-item { display:grid; grid-template-columns:40px minmax(0,1fr); background:var(--panel2); border:1px solid var(--frame); border-radius:8px; transition:border-color .15s, background-color .15s; }
.rail-item:hover { border-color:var(--frame-hi); }
.rail-item.is-current { border-color:var(--led); background:rgb(240 165 0 / .08); }
.rail-check { display:flex; align-items:center; justify-content:center; min-height:44px; cursor:pointer; }
.rail-check input { width:18px; height:18px; accent-color:var(--led); cursor:pointer; }
.rail-row { display:grid; gap:3px; padding:9px 12px 9px 0; min-height:60px; min-width:0; color:var(--ink); text-decoration:none; }
.rail-foot { display:flex; justify-content:space-between; gap:8px; font-size:.8125rem; color:var(--ink2); }
.bulk { display:grid; gap:8px; padding:10px 12px; margin-bottom:8px; background:var(--panel); border:1px solid var(--frame-hi); border-radius:8px; }
.bulk[hidden] { display:none; }
.bulk-count { font-weight:600; }
.bulk-acts { display:grid; grid-template-columns:1fr 1fr; gap:6px; }
.bulk-acts .btn { padding:0 .5rem; font-size:.875rem; }
.hist { display:grid; grid-template-columns:110px minmax(0,1fr) minmax(0,1.2fr) 110px auto; gap:4px 16px; align-items:center; padding:10px 12px; min-height:64px; background:var(--panel2); border:1px solid var(--frame); border-radius:8px; }
.hist a { color:inherit; text-decoration-color:var(--frame-hi); }
.diff-row { background:var(--panel2); border:1px solid var(--frame); border-radius:8px; }
kbd { background:transparent; }

/* --- Adaptación --- */
@media (max-width:1240px) { .card-body { grid-template-columns:minmax(0,1fr); } .map-box { order:-1; } .detail { grid-template-columns:minmax(0,1fr); } .detail > :nth-child(2) { order:-1; } .home { grid-template-columns:minmax(0,1fr); } .home > :first-child { grid-row:auto; } }
@media (max-width:980px) {
  body.app { display:block; padding-bottom:calc(60px + env(safe-area-inset-bottom)); }
  .side { display:none; }
  .mobile-top { position:sticky; top:0; z-index:30; display:flex; align-items:center; justify-content:space-between; min-height:52px; padding:0 8px 0 16px; background:var(--bg); border-bottom:1px solid var(--frame); }
  .bottom { position:fixed; left:0; right:0; bottom:0; z-index:30; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); background:var(--bg); border-top:1px solid var(--frame); padding-bottom:env(safe-area-inset-bottom); }
  .bottom a { position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; min-height:60px; padding:4px 2px; color:var(--ink3); font:600 .6875rem/1.1 var(--label); letter-spacing:.04em; text-decoration:none; text-align:center; }
  .bottom a .icon { width:22px; height:22px; }
  .bottom a[aria-current] { color:var(--soft); }
  .bottom .count { position:absolute; top:4px; left:calc(50% + 6px); margin:0; min-width:18px; padding:0 4px; font-size:.6875rem; background:var(--led); color:var(--bg); }
  .main { padding:14px 16px 32px; }
  .more-nav { display:grid; grid-template-columns:1fr 1fr; }
  .banner { padding:10px 16px; }
  .toast { top:auto; bottom:calc(68px + env(safe-area-inset-bottom)); left:16px; right:16px; width:auto; }
  .queue { grid-template-columns:minmax(0,1fr); gap:8px; }
  .rail-col { position:static; max-height:none; }
  .rail-fold { overflow:visible; max-height:none; }
  .rail-fold > summary { display:flex; margin-bottom:8px; color:var(--ink); }
  .card-actions { bottom:calc(60px + env(safe-area-inset-bottom)); }
  .card-actions .btn-reject { order:-1; }
  .card { scroll-margin-top:60px; }
  .hist { grid-template-columns:minmax(0,1fr) auto; }
  .hist-outcome, .hist-title-cell { grid-column:1 / -1; }
  .hist-acts { grid-column:1 / -1; justify-content:flex-start; }
  .log-row { grid-template-columns:minmax(0,1fr) auto; gap:0 8px; }
  .log-when { grid-column:2; grid-row:1; font-size:.8125rem; }
  .log-who { grid-column:1; grid-row:1; }
  .log-what, .log-detail { grid-column:1 / -1; }
}
@media (max-width:640px) {
  .filters { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .filters-q, .filters-go { grid-column:1 / -1; }
  .filters-go .btn { flex:1; }
  .seg-nav { width:100%; }
  .seg-nav a { flex:1; justify-content:center; padding:0 6px; font-size:.875rem; text-align:center; }
  .map { height:220px; }
  .map-tall { height:260px; }
  .map-full { height:calc(100dvh - 330px); min-height:320px; }
  .diff-row { grid-template-columns:minmax(0,1fr) 16px minmax(0,1fr); }
  .diff-label { grid-column:1 / -1; }
  .member-btns { justify-content:stretch; }
  .member-btns form, .member-btns .btn { flex:1; }
  .table th, .table td { padding-right:14px; }
}
@media (pointer:coarse) { kbd, .pager-keys { display:none; } .facts a, .plain-list a, .log-what a, .dupes a { display:inline-flex; align-items:center; min-height:44px; } }
@media (prefers-reduced-motion:reduce) { *, *::before, *::after { animation:none !important; transition:none !important; } }
