:root{--bg:#F6F1E7;--surface:#FFFCF6;--ink:#2B2A26;--muted:#5E5A50;--line:#DDD3C0;--accent:#B4532A;--accent-ink:#FFFCF6;--olive:#55612F;--sign:#E3A33B;--sign-ink:#2B2A26;color-scheme:light}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){color-scheme:dark;--bg:#1E1D1A;--surface:#2B2A26;--ink:#F6F1E7;--muted:#B8B0A0;--line:#433F37;--accent:#E08A62;--accent-ink:#2B2A26;--olive:#A9B86A}}
:root[data-theme="dark"]{color-scheme:dark;--bg:#1E1D1A;--surface:#2B2A26;--ink:#F6F1E7;--muted:#B8B0A0;--line:#433F37;--accent:#E08A62;--accent-ink:#2B2A26;--olive:#A9B86A}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:400 16px/1.5 "Instrument Sans",system-ui,sans-serif}
a{color:var(--accent)}
header{padding:28px 20px 8px;max-width:1080px;margin:0 auto;display:flex;align-items:center;gap:20px}
.htext{flex:1}
.sello{width:120px;height:120px;flex:none}
@media(max-width:599px){header{gap:12px;align-items:flex-start;flex-wrap:wrap}.sello{width:48px;height:48px}.sello .sello-txt{display:none}.account{width:100%}}
h1{font:800 clamp(2.2rem,7vw,3.6rem)/1 "Fraunces",Georgia,serif;margin:0 0 10px;letter-spacing:-.01em}
.sub{color:var(--muted);margin:0;max-width:56ch}
.account{display:flex;flex-direction:column;align-items:flex-end;gap:4px;font-size:.9rem;color:var(--muted)}
@media(max-width:599px){.account{align-items:flex-start}}
.roles{max-width:1080px;margin:16px auto 0;padding:0 20px}
.roles h2,aside h2,dialog h2{font:800 1.3rem/1.1 "Fraunces",Georgia,serif;margin:0 0 8px}
.row{display:flex;flex-wrap:wrap;gap:8px}
main{display:grid;gap:24px;max-width:1080px;margin:0 auto;padding:20px 20px 48px;grid-template-columns:1fr}
@media(min-width:900px){main{grid-template-columns:1fr 340px;align-items:start}}
.chip{padding:8px 14px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);font:inherit;cursor:pointer}
.chip[aria-pressed=true]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.hint{margin:10px 0 0;color:var(--muted);max-width:70ch}
input,select,textarea{width:100%;padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font:inherit}
input[type=checkbox]{width:auto;margin:3px 0 0}
.tools{display:grid;gap:10px;margin-bottom:14px}
.list{display:grid;gap:12px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:14px 16px;display:grid;grid-template-columns:1fr auto;gap:4px 14px}
.card h3{font:600 1.2rem/1.2 "Fraunces",Georgia,serif;margin:0}
.meta{color:var(--muted);font-size:.9rem;margin:0}
.card .body{grid-column:1/-1;margin:4px 0 0;white-space:pre-line}
.cond{grid-column:1/-1;font-weight:600;margin:0}
.plate{background:var(--sign);color:var(--sign-ink);border:3px solid var(--sign-ink);border-radius:6px;padding:2px 8px;text-align:center;font:800 1.1rem/1.1 "Fraunces",Georgia,serif;align-self:start}
.plate small{display:block;font:600 .65rem/1 "Instrument Sans",sans-serif}
.tag{display:inline-block;font-size:.8rem;border:1px solid var(--accent);color:var(--accent);border-radius:999px;padding:1px 9px;margin-right:6px}
.tag.demo{border-color:var(--line);color:var(--muted)}
.tag.ok{border-color:var(--olive);color:var(--olive)}
.tag.off{border-color:var(--muted);color:var(--muted)}
.btn{margin-top:6px;padding:9px 14px;border-radius:8px;border:1px solid var(--accent);background:var(--accent);color:var(--accent-ink);font:600 .95rem "Instrument Sans",sans-serif;cursor:pointer}
.btn.ghost{background:transparent;color:var(--accent)}
.btn.small{padding:5px 10px;font-size:.85rem;margin:0}
.btn:disabled{opacity:.6;cursor:wait}
.actions{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px}
.linkbtn{background:none;border:0;padding:0;color:var(--accent);font:inherit;text-decoration:underline;cursor:pointer;justify-self:start}
aside{display:grid;gap:18px}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:16px;display:grid;gap:10px}
.panel form,dialog form{display:grid;gap:10px}
label{font-weight:600;font-size:.9rem;display:grid;gap:4px}
label.check{display:flex;gap:8px;align-items:flex-start;font-weight:400}
.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.saved{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.saved li{display:flex;justify-content:space-between;gap:8px;align-items:center}
.saved button{border:1px solid var(--line);background:transparent;color:var(--ink);border-radius:6px;width:30px;height:30px;cursor:pointer;flex:none}
.empty{color:var(--muted);margin:0}
.toast{min-height:1.3em;color:var(--muted);font-size:.9rem;margin:0}
.pueblos{max-width:1080px;margin:24px auto 0;padding:0 20px;display:grid;gap:12px}
.pueblos h2{font:800 1.3rem/1.1 "Fraunces",Georgia,serif;margin:0}
.pueblos .hint{margin:0}
.ptools{display:grid;gap:10px}
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.town{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:14px 16px;display:grid;gap:8px;align-content:start}
.town h3{font:600 1.2rem/1.2 "Fraunces",Georgia,serif;margin:0}
.town p{margin:0}
.svc{list-style:none;margin:0;padding:8px 0 0;border-top:1px solid var(--line);display:grid;gap:2px;font-size:.92rem}
.svc li{display:flex;justify-content:space-between;gap:8px}
.svc .si{font-weight:600;color:var(--olive)}
.svc .no{color:var(--muted)}
.town .btn{justify-self:start;margin-top:2px}
.note{color:var(--muted);font-size:.85rem;margin:0}
dialog{border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);padding:20px;width:min(420px,calc(100vw - 32px))}
dialog::backdrop{background:rgba(0,0,0,.45)}
footer{max-width:1080px;margin:0 auto;padding:16px 20px 40px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:16px;color:var(--muted);font-size:.9rem}
.legal{max-width:760px;margin:0 auto;padding:32px 20px 60px}
.legal h1{font-size:clamp(1.8rem,6vw,2.6rem)}
.legal h2{font:600 1.2rem/1.2 "Fraunces",Georgia,serif;margin:28px 0 8px}
