:root{--bg:#f4f6f9;--panel:#fff;--ink:#1a2230;--muted:#6b7688;--line:#e2e7ef;--brand:#0091d3;--brand-d:#0077b0;--ok:#1a7f4b;--danger:#c0392b;--warn:#b5820b}
*{box-sizing:border-box}
body{margin:0;font:14px/1.5 -apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:var(--ink);background:var(--bg)}
a{color:var(--brand)}
h1,h2,h3{margin:0 0 .6rem}
.topbar{display:flex;align-items:center;gap:.8rem;background:var(--brand);color:#fff;padding:.6rem 1.2rem}
.topbar img.logo{height:26px;display:block;filter:brightness(0) invert(1)}
.topbar .marca{font-weight:600;opacity:.9;font-size:.95rem}
.marca-login{text-align:center;margin-bottom:.6rem}
.marca-login img{height:36px;display:inline-block}
.topbar .sp{flex:1}
.topbar .who{font-size:.85rem;opacity:.95}
.wrap{max-width:1000px;margin:1.4rem auto;padding:0 1.2rem}
.card{background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:0 1px 3px rgba(20,30,50,.08);padding:1.1rem 1.2rem;margin-bottom:1.2rem}
label{display:block;font-weight:600;font-size:.82rem;margin:.6rem 0 .2rem}
input,select{width:100%;padding:.5rem .6rem;border:1px solid var(--line);border-radius:8px;font:inherit;background:#fff}
input:focus,select:focus{outline:2px solid rgba(31,95,191,.25);border-color:var(--brand)}
input[readonly]{background:var(--bg);color:var(--muted);cursor:default}
.nowrap{white-space:nowrap}
td.right form.inline+form.inline{margin-left:.3rem}
.row{display:flex;gap:.7rem;flex-wrap:wrap}
.row>*{flex:1;min-width:140px}
.btn{background:var(--brand);color:#fff;border:none;padding:.55rem .9rem;border-radius:8px;font-weight:600;cursor:pointer;text-decoration:none;display:inline-block}
.btn:hover{background:var(--brand-d)}
.btn.ghost{background:#eef2f8;color:var(--brand-d)}
.btn.small{padding:.3rem .6rem;font-size:.8rem}
.btn.danger{background:var(--danger)}
table{width:100%;border-collapse:collapse}
th,td{text-align:left;padding:.55rem .6rem;border-bottom:1px solid var(--line);font-size:.88rem;vertical-align:top}
th{color:var(--muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.4px}
.mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.82rem;word-break:break-all}
.chip{display:inline-block;padding:.1rem .55rem;border-radius:999px;font-size:.74rem;font-weight:700}
.chip.on{background:#e4f4ec;color:var(--ok)}
.chip.off{background:#fdecea;color:var(--danger)}
.chip.si{background:#e4f4ec;color:var(--ok)}
.chip.no{background:#fbf1dc;color:var(--warn)}
.err{background:#fdecea;color:var(--danger);padding:.55rem .7rem;border-radius:8px;margin:.5rem 0}
.ok{background:#e4f4ec;color:var(--ok);padding:.55rem .7rem;border-radius:8px;margin:.5rem 0}
.muted{color:var(--muted)}
.login{max-width:360px;margin:8vh auto}
.right{text-align:right}
form.inline{display:inline}
.kv{display:grid;grid-template-columns:150px 1fr;gap:.3rem .8rem;font-size:.9rem}
.kv div:nth-child(odd){color:var(--muted)}
.toolbar{display:flex;gap:.6rem;align-items:center;margin-bottom:.8rem;flex-wrap:wrap}
.toolbar .sp{flex:1}
.toolbar input{max-width:240px;margin:0}
th[data-col]{cursor:pointer;user-select:none;white-space:nowrap}
th[data-col]:hover{color:var(--brand)}
th.asc::after{content:" \25B2";font-size:.7em}
th.desc::after{content:" \25BC";font-size:.7em}
tfoot td{border-top:2px solid var(--line);border-bottom:none}
.modal{position:fixed;inset:0;background:rgba(20,30,50,.45);display:none;align-items:flex-start;justify-content:center;padding:6vh 1rem;z-index:50}
.modal.abierto{display:flex}
.modal>.card{width:100%;max-width:480px;margin:0}
