:root{font-family:system-ui,-apple-system,Segoe UI,sans-serif;color:#122c40;background:#eef5fa;font-size:14px}*{box-sizing:border-box}body{margin:0}header.top{background:white;border-bottom:2px solid #a5bbca;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px max(16px,calc((100% - 1380px)/2));flex-wrap:wrap}header small{font-size:11px;font-weight:800;letter-spacing:.18em;color:#1c6b94}h1{margin:0;font-size:clamp(20px,3.4vw,28px);line-height:1.25;color:#0c4e78}.version{font-size:12px;color:#547183}.top-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}main{max-width:1380px;margin:14px auto;padding:0 14px}.login{max-width:470px;background:white;border:1px solid #b5c9d7;margin:40px auto;padding:22px;border-radius:14px}.login p{color:#415e70}.login form{display:grid;gap:16px}label{font-weight:750;display:grid;gap:5px}input,select{min-height:38px;border-radius:8px;border:2px solid #93afc2;background:white;color:#13344b;font-size:15px;padding:7px}.btn{border-radius:8px;border:2px solid #86a8bd;background:white;color:#164b69;font-weight:750;padding:9px 12px;font-size:13px;cursor:pointer}.btn.primary{background:#0a6eaa;color:white;border-color:#0a6eaa}.btn:disabled{opacity:.55;cursor:not-allowed}.btn:hover:not(:disabled){filter:brightness(.94)}.tag,.pill{border:1px solid #93b2c5;background:#ecf7ff;color:#164868;padding:7px 10px;border-radius:8px;font-size:12px;font-weight:800}.tag.good{background:#dcf6e6;color:#076037;border-color:#60ac83}.tag.bad{background:#fff0e7;color:#96370d;border-color:#d6a277}.toolbar{display:flex;align-items:end;gap:10px;margin:10px 0;flex-wrap:wrap}.toolbar select{min-width:236px}.toolbar .pill{align-self:end}.muted{color:#4b6579}.banner{border:1px solid #d2ac68;border-radius:9px;background:#fff5da;color:#704b15;padding:10px;margin:8px 0 12px;font-weight:750}.banner.good{background:#e3f7eb;color:#075e37;border-color:#81c29b}.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.card{background:white;border:2px solid #a6bfce;border-radius:11px;padding:11px;box-shadow:0 2px 8px #213d4c1a;min-width:0}.card-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px}.card-heading h2{margin:0;font-size:19px}.idphy{font-size:12px;color:#536d7d}.tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.tile{background:#f0f7fb;border:1px solid #bfd0dc;border-radius:8px;padding:9px;min-width:0}.tile .name{font-size:11px;color:#234b62;font-weight:750;line-height:1.2;min-height:26px}.tile .number{font-size:clamp(18px,2.2vw,25px);font-weight:850;color:#075838;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.tile .unit{font-size:11px;font-weight:750;color:#315b72}.tile .details{font-size:10px;color:#45687c;min-height:24px;margin-top:4px}.tile.unavailable .number{color:#667f8d}.modeBar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;border-top:1px solid #bfd2db;margin-top:8px;padding-top:8px;font-size:12px}.mode{font-weight:800;color:#285a78}.chip{border-radius:6px;background:#e8eff3;padding:4px 7px;color:#405e71}.foot{font-size:12px;color:#496679;margin:15px 0}.error{color:#a32620;font-weight:700}.settings{background:white;border:1px solid #b2c6d2;border-radius:10px;padding:15px}.settings p{color:#45677a}.cal-table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:660px}td,th{padding:8px;border:1px solid #c1d1db;text-align:center}th{background:#dbeaf2}td input{width:114px;max-width:100%}.actions{display:flex;gap:8px;margin-top:12px}@media(max-width:760px){.cards{grid-template-columns:1fr}.tiles{grid-template-columns:repeat(3,minmax(0,1fr))}.tile .number{font-size:22px}main{padding:0 8px}.card{padding:8px}.toolbar{gap:7px}.toolbar select{min-width:172px}header.top{padding:9px 12px}}@media(max-width:360px){.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}

.password-section{max-width:570px;margin:18px auto;}
.password-section form{display:grid;gap:13px;}
.password-section .actions{justify-content:flex-start;}
.good-text{color:#126c34;font-weight:750;}
/* Instalación Android integrada */
a.btn{display:inline-block;text-decoration:none;line-height:1.35}a.btn:focus-visible{outline:3px solid #0a6eaa;outline-offset:3px}
.install-main{max-width:990px;margin:24px auto;padding:0 16px 40px}
.install-header{margin-bottom:18px}.install-header h1{margin:6px 0;color:#09537e;font-size:clamp(24px,4vw,31px)}
.install-header p{color:#425e71;font-size:15px}.install-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.install-card{background:#fff;border:1px solid #b4cada;border-radius:12px;padding:20px;min-width:0}
.install-card h2{margin:0 0 8px;font-size:20px}.install-card p{color:#405c6d;line-height:1.5}
.install-card ol{line-height:1.75;padding-left:22px}.install-card li{margin:7px 0}
.install-primary{display:inline-block;background:#086fa8;border:2px solid #086fa8;border-radius:9px;color:white;text-decoration:none;padding:11px 15px;font-weight:750;max-width:100%}
.install-secondary{display:inline-block;border:2px solid #97b7c9;border-radius:9px;text-decoration:none;color:#14516f;padding:10px 14px;font-weight:750;margin-left:4px}
.install-note{border-radius:9px;border:1px solid #abc5d4;background:#f0f8fb;padding:10px;margin-top:11px;font-size:13px;color:#244d64}
.install-warn{border-color:#d1b16c;background:#fff7df;color:#734a06}
.install-status{display:flex;align-items:center;gap:8px;margin:7px 0;font-size:13px}
.install-status strong{font-weight:800}.install-status .ok{color:#096039}.install-status .err{color:#a03418}
.install-url{display:block;border:1px solid #acc4d4;border-radius:8px;background:#f5fafc;padding:11px;word-break:break-all;margin:10px 0;user-select:all}
.install-footer{margin-top:20px;font-size:12px;color:#536e7c}
@media(max-width:740px){.install-grid{grid-template-columns:1fr}.install-card{padding:16px}.install-secondary{margin:10px 0 0}}

/* Acceso de operarios v2.1.9 */
[hidden]{display:none!important}
.issue-code-form{display:flex;flex-wrap:wrap;gap:10px;align-items:end;max-width:660px}
.issue-code-form label{flex:1;min-width:230px}
.issued-code{margin:16px 0;padding:14px;border:2px solid #97b5cb;border-radius:9px;background:#f0f8ff;max-width:520px}
.issued-code strong{display:block;font-size:28px;letter-spacing:2px;color:#07557e;user-select:all}
.device-items{display:grid;gap:8px;margin:12px 0 22px}
.device-item{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #b4cada;background:#f5fafc;border-radius:9px;padding:12px}
.device-item p{font-size:12px;margin:4px 0 0}
@media(max-width:550px){.device-item{flex-direction:column;align-items:start}.device-item .btn{width:100%}}
