:root{--bg: #0b1220;--panel: #151e2e;--panel2: #1d2840;--text: #e6edf6;--muted: #93a1b5;--line: #2a364c;--accent: #3b82f6;--accent2:#2563eb;--ok: #22c55e;--warn: #f59e0b;--bad: #ef4444}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}h1,h2,h3{margin:0}a{color:var(--accent)}button{cursor:pointer;border:none;border-radius:9px;padding:9px 14px;background:var(--accent);color:#fff;font-weight:600;font-size:14px;transition:.15s}button:hover{background:var(--accent2)}button.ghost{background:var(--panel2);color:var(--text)}button.mini{padding:5px 10px;font-size:12px;background:var(--panel2)}button.ok-btn{background:var(--ok)}button.bad-btn{background:var(--bad)}button.x{background:transparent;color:var(--muted);padding:4px 8px}button:disabled{opacity:.55}input,select,textarea{width:100%;padding:10px;border-radius:9px;border:1px solid var(--line);background:var(--panel2);color:var(--text);font-size:15px;font-family:inherit}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent)}textarea{resize:vertical}.centered{min-height:100vh;display:grid;place-items:center;padding:20px}.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px}.login{width:350px;max-width:100%}.login h1{margin-bottom:4px}.login label{display:block;margin:12px 0;color:var(--muted);font-size:14px}.login input{margin-top:5px}.login button{width:100%;margin-top:8px}.error{color:var(--bad);margin:8px 0}.shell{display:flex;min-height:100vh}.sidebar{width:230px;background:var(--panel);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:16px 12px;position:sticky;top:0;height:100vh}.brand{font-size:17px;font-weight:800;padding:8px 10px 16px;display:flex;gap:8px;align-items:center}.brand span{font-size:15px}.sidebar nav{display:flex;flex-direction:column;gap:4px;flex:1}.nav-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:9px;color:var(--muted);text-decoration:none;font-weight:600;font-size:14px}.nav-item:hover{background:var(--panel2);color:var(--text)}.nav-item.active{background:var(--accent);color:#fff}.nav-item .ic{width:20px;text-align:center}.side-foot{border-top:1px solid var(--line);padding-top:12px;display:flex;flex-direction:column;gap:8px}.side-foot button{width:100%}.main-area{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:12px;padding:14px 20px;background:var(--panel);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}.burger{display:none;background:var(--panel2)}.spacer{flex:1}.content{padding:22px;max-width:1200px;width:100%;margin:0 auto}.page-title{font-size:22px}.page-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.section-title{font-size:16px;color:var(--muted);margin:22px 0 10px}.small{font-size:12px}.muted{color:var(--muted)}.dim{opacity:.5}.metrics{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px;margin-bottom:8px}.metric{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px 18px}.metric-value{font-size:26px;font-weight:800}.metric-label{color:var(--muted);font-size:13px;margin-top:2px}.metric.ok .metric-value{color:#4ade80}.metric.warn .metric-value{color:#fbbf24}.metric.bad .metric-value{color:#f87171}.grid{width:100%;border-collapse:collapse}.grid th,.grid td{text-align:left;padding:11px 10px;border-bottom:1px solid var(--line);font-size:14px}.grid th{color:var(--muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.3px}.grid tr:last-child td{border-bottom:none}.code{font-family:ui-monospace,monospace;letter-spacing:1px}.actions{display:flex;gap:6px;flex-wrap:wrap}.badge{padding:3px 9px;border-radius:999px;font-size:12px;font-weight:700}.badge.ok{background:#22c55e2e;color:#4ade80}.badge.warn{background:#f59e0b2e;color:#fbbf24}.badge.bad{background:#ef44442e;color:#f87171}.muted-badge{background:var(--panel2);color:var(--muted)}.bad-text{color:#f87171}.warn-text{color:#fbbf24}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}.card.pago .big{font-size:24px;font-weight:800;margin:6px 0}.row{display:flex;justify-content:space-between;align-items:center}.card.pago .actions{margin-top:12px}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:grid;place-items:center;padding:20px;z-index:50}.modal{background:var(--panel);border:1px solid var(--line);border-radius:14px;width:460px;max-width:100%;max-height:90vh;overflow:auto}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--line)}.modal-body{padding:20px}.modal-body button{width:100%;margin-top:8px}.field{display:block;margin-bottom:12px}.field span{display:block;color:var(--muted);font-size:13px;margin-bottom:5px}.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.check{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:14px;margin:10px 0}.check input{width:auto}.list{display:flex;flex-direction:column;gap:8px}.list-btn{background:var(--panel2);color:var(--text);text-align:left;display:flex;justify-content:space-between}.toast{background:var(--panel2);border-left:3px solid var(--accent);padding:10px 14px;border-radius:9px;margin-bottom:14px}.toast-bad{border-left-color:var(--bad)}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.grid2 .card h3{margin-bottom:12px}.grid2 .card button{margin-top:6px}.app{min-height:100vh}.app header{display:flex;align-items:center;gap:12px;padding:14px 18px;background:var(--panel);border-bottom:1px solid var(--line)}.portal{display:grid;gap:14px;max-width:520px;margin:18px auto;padding:0 16px}.estado-big{font-size:28px;font-weight:800;margin:6px 0}.clave-big{font-size:40px;font-weight:800;letter-spacing:4px;font-family:ui-monospace,monospace}.card.estado.ok{border-color:var(--ok)}.card.estado.warn{border-color:var(--warn)}.card.estado.bad{border-color:var(--bad)}.portal label{display:block;color:var(--muted);font-size:14px;margin:10px 0}.portal input,.portal select{margin-top:5px}.pago-row{padding:8px 0;border-bottom:1px solid var(--line)}@media (max-width: 860px){.grid2{grid-template-columns:1fr}.sidebar{position:fixed;left:-240px;z-index:40;transition:left .2s}.sidebar.open{left:0}.burger{display:inline-block}}
