:root{--text:#1f2430;--text-muted:#6b7280;--bg:#f7f7f9;--surface:#fff;--border:#e2e4e9;--accent:#1d4ed8;--accent-hover:#1e40af;--warning:#b45309;--warning-bg:#fef3c7;--danger:#b91c1c;--success:#15803d;color:var(--text);background:var(--bg);font:15px/1.5 system-ui,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{margin:0}h1{margin:0;font-size:24px}h2{margin:24px 0 8px;font-size:18px}h3{border-bottom:1px solid var(--border);margin:20px 0 8px;padding-bottom:4px;font-size:15px}h4{color:var(--text-muted);margin:14px 0 6px;font-size:13px}.installation-category{margin-bottom:8px}.installation-subgroup{margin-left:12px}.installation-children{flex-direction:column;gap:4px;margin-top:4px;margin-left:24px;display:flex}.installation-child-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.installation-child-label{color:var(--text-muted);font-size:.9em}button{font:inherit;border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;border-radius:6px;padding:8px 14px}button:hover{background:var(--accent-hover)}button:disabled{opacity:.6;cursor:default}button[type=button]:not(.active){background:var(--surface);color:var(--accent)}button.btn-primary,button[type=button].btn-primary:not(.active){background:var(--accent);color:#fff}button.btn-primary:hover{background:var(--accent-hover)}input,select,textarea{font:inherit;border:1px solid var(--border);background:var(--surface);border-radius:6px;padding:7px 10px}input:disabled,select:disabled,textarea:disabled{background:var(--bg);color:var(--text-muted);cursor:not-allowed}label{color:var(--text-muted);flex-direction:column;gap:4px;font-size:13px;display:flex}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.page{max-width:960px;margin:0 auto;padding:24px 20px 60px}.page-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.page-header-user{color:var(--text-muted);align-items:center;gap:12px;font-size:14px;display:flex}.page-header-client-name{text-overflow:ellipsis;white-space:nowrap;max-width:40vw;overflow:hidden}.page-loading{text-align:center;color:var(--text-muted);padding:40px}.demo-role-banner{background:#f5f3ff;border:1px solid #7c3aed;border-radius:6px;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;padding:8px 12px;font-size:14px;display:flex}.demo-role-banner-active{background:#ede9fe}.demo-role-banner-btn{color:#7c3aed;cursor:pointer;background:#fff;border:1px solid #7c3aed;border-radius:4px;padding:4px 10px;font-size:13px}.demo-role-banner-btn:hover{color:#fff;background:#7c3aed}.demo-role-banner-exit{margin-left:auto;font-weight:600}.sync-status-bar{color:#1e3a8a;text-align:center;background:#dbeafe;justify-content:center;gap:16px;padding:8px 16px;font-size:13px;display:flex}.sync-status-bar.offline,.sync-status-bar.stalled{color:#92400e;background:#fef3c7}.sync-status-bar.stuck{color:#991b1b;background:#fee2e2}.sync-status-bar.stalled button,.sync-status-bar.stuck button{color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;padding:0}.sync-outbox-detail{color:#374151;background:#fafafa;padding:8px 16px;font-size:13px}.sync-outbox-item{border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:center;gap:12px;padding:4px 0;display:flex}.sync-outbox-item:last-child{border-bottom:none}.sync-outbox-item button{flex-shrink:0}.popup-overlay{z-index:50;background:#1f243066;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.popup-box{background:var(--surface);border-radius:8px;max-width:340px;padding:20px 24px;box-shadow:0 10px 30px #1f243040}.popup-box p{margin:0 0 16px}.auth-page{justify-content:center;align-items:center;min-height:100svh;display:flex}.auth-form{background:var(--surface);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:14px;width:320px;padding:32px;display:flex}.auth-form h1{text-align:center;margin-bottom:8px}.form-error{color:var(--danger);margin:0;font-size:13px}.form-success{color:var(--success);margin:0;font-size:13px}.location-list,.installation-list{flex-direction:column;gap:8px;margin:0 0 16px;padding:0;list-style:none;display:flex}.location-list li,.installation-list li{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:12px 16px}.installation-list a{justify-content:space-between;align-items:center;display:flex}.installation-row-button{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;padding:0;display:flex}.badge{color:var(--text-muted);background:var(--bg);border-radius:999px;padding:2px 8px;font-size:12px}.installation-baja-status{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;margin-top:8px;padding-top:8px;display:flex}.installation-row-actions{align-items:center;gap:12px;margin-top:8px;display:flex}.installation-baja-trigger{color:var(--danger);cursor:pointer;background:0 0;border:none;padding:0;font-size:12px}.baja-form{border-top:1px solid var(--border);flex-direction:column;gap:8px;max-width:420px;margin-top:8px;padding-top:8px;display:flex}.system-group-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.system-group-actions{flex-shrink:0;gap:8px;display:flex}.system-group-actions button{font-size:12px}.pci-edit-panel{background:var(--bg);border:1px solid var(--border);border-radius:8px;margin:8px 0 16px;padding:12px}.tabs{border-bottom:1px solid var(--border);gap:4px;margin-bottom:20px;display:flex}.tabs button{color:var(--text-muted);background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;padding:10px 14px}.tabs button.active{color:var(--accent);border-bottom-color:var(--accent)}.inline-form{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.inline-form-top-aligned{align-items:flex-start}.reading-form,.incident-form{background:var(--surface);border:1px solid var(--border);border-radius:8px;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px;padding:16px;display:grid}.config-box{background:var(--surface);border:1px solid var(--border);border-radius:8px;max-width:280px;margin-bottom:16px;padding:12px 16px}.full-width{grid-column:1/-1}.form-actions{flex-wrap:wrap;grid-column:1/-1;gap:8px;display:flex}.checkbox-label{flex-direction:row;align-items:center;gap:8px}.elemento-check--realizado{flex-wrap:wrap;align-items:center;gap:8px 16px;display:flex}.elemento-check--realizado>.full-width{flex-basis:100%}.resumen-groups{flex-direction:column;gap:4px;display:flex}.resumen-system-name{color:var(--text);margin:12px 0 4px;font-size:13px;font-weight:600}.resumen-system-name:before{content:"Sistema: ";color:var(--text-muted);font-weight:400}.profile-form,.responsibilities-form{flex-direction:column;gap:14px;max-width:480px;display:flex}.tasks-confirm-warning{color:var(--danger);background:#fef2f2;border:1px solid #fecaca;border-radius:8px;max-width:640px;padding:12px 14px;font-size:13px;line-height:1.4}.date-range{gap:12px;display:flex}.saved-hint{color:#15803d;font-size:13px}.readonly-hint{color:var(--text-muted);font-size:13px;font-style:italic}.precalentamiento-toggle{color:var(--text-muted);flex-direction:row;align-items:center;gap:8px;margin-bottom:8px;font-size:13px;display:flex}.field-help{color:var(--text-muted);font-size:11px;font-style:italic;font-weight:400;line-height:1.3}.punto-muestreo-label{color:var(--accent);margin:12px 0;font-size:15px;font-weight:600}.legend-note{color:var(--text-muted);font-size:12px;font-style:italic;font-weight:400}fieldset{border:1px solid var(--border);border-radius:8px;padding:12px 14px}.responsibility-row{justify-content:space-between;align-items:center;gap:12px;padding:6px 0;display:flex}.data-table{border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:8px;width:100%;margin-bottom:16px;overflow:hidden}.data-table th,.data-table td{text-align:left;border-bottom:1px solid var(--border);padding:8px 12px;font-size:14px}.data-table th{background:var(--bg);color:var(--text-muted);font-weight:600}.data-table td.warning{color:var(--warning);font-weight:600}.data-table td.record-ontime{color:var(--success);font-weight:600}.data-table td.record-overdue{color:var(--warning);font-weight:600}.data-table tr.warning{background:var(--warning-bg)}.data-table tr.pending{background:#eef2ff}.table-scroll{overflow-x:auto}.table-scroll .data-table th{white-space:nowrap}.table-scroll .data-table input[type=email]{width:160px;font-size:13px}.derived-access{color:var(--text-muted);font-size:12px;font-style:italic}.client-search{width:100%;max-width:420px;margin-bottom:16px;display:block}.client-role-table-scroll{max-height:230px;overflow-y:auto}.pending-badge{color:var(--accent);font-size:11px;font-weight:600}
