:root{--bg: #f1f3f7;--surface: #ffffff;--border: #e4e7ec;--text: #101828;--text-muted: #667085;--primary: #4f46e5;--primary-dark: #4338ca;--ok: #12b76a;--warn: #f79009;--danger: #f04438;--gray: #98a2b3;--radius: 12px;--shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 1px 3px rgba(16, 24, 40, .08)}*{box-sizing:border-box}body{margin:0;font-family:Segoe UI,system-ui,-apple-system,Roboto,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}h2,h3{margin-top:0;letter-spacing:-.01em}h3{font-size:15px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-weight:700}.topbar{display:flex;align-items:center;gap:24px;padding:14px 24px;background:#111827;color:#fff;position:sticky;top:0;z-index:10}.topbar .brand{color:#fff;font-weight:700;text-decoration:none;font-size:16px;letter-spacing:-.01em}.topbar nav{display:flex;gap:18px;flex:1}.topbar nav a{color:#9ca3af;text-decoration:none;font-size:14px;font-weight:500;transition:color .15s}.topbar nav a:hover{color:#fff}.topbar button{background:#ffffff14;color:#fff;border:1px solid rgba(255,255,255,.12);padding:7px 14px;border-radius:8px;cursor:pointer;font-size:13px;transition:background .15s}.topbar button:hover{background:#ffffff29}main{padding:24px;max-width:1080px;margin:0 auto}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px 22px;margin-bottom:18px;box-shadow:var(--shadow)}table{width:100%;border-collapse:collapse;margin-top:8px}th{text-align:left;padding:10px 8px;font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);border-bottom:1px solid var(--border)}td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--border);font-size:14px}tbody tr:hover{background:#fafbfc}tbody tr:last-child td{border-bottom:none}.inline-form{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap;align-items:center}.inline-form input,.inline-form select{padding:8px 10px;border:1px solid var(--border);border-radius:8px;font-size:14px;background:#fff}.inline-form input:focus,.inline-form select:focus{outline:2px solid var(--primary);outline-offset:-1px}.inline-form button{padding:8px 14px;border:none;border-radius:8px;background:var(--primary);color:#fff;cursor:pointer;font-weight:600;font-size:14px;transition:background .15s}.inline-form button:hover{background:var(--primary-dark)}.inline-form button:disabled{opacity:.6;cursor:default}.inline-form span{color:var(--ok);font-size:13px;font-weight:600}.equipo-form{align-items:center}.cliente-header,.sitio-header{cursor:pointer;padding:10px 0;font-weight:600;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.cliente-block:not(:last-child),.sitio-block:not(:last-child){border-bottom:1px solid var(--border)}.sitios-list,.equipos-list{padding-left:22px;padding-bottom:8px}.equipo-row{padding:6px 0;font-size:14px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.equipo-row a{color:var(--primary);text-decoration:none}.equipo-row a:hover{text-decoration:underline}.notif-toggles{display:flex;gap:24px}.notif-toggles label{display:flex;align-items:center;gap:8px;font-size:14px;cursor:pointer}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:radial-gradient(circle at top,#1e2536,#0f1420 60%)}.login-card{width:340px;display:flex;flex-direction:column;gap:12px;background:var(--surface);padding:32px 28px;border-radius:16px;box-shadow:0 20px 60px #0000004d}.login-card h1{margin:0 0 6px;font-size:20px}.login-card label{display:flex;flex-direction:column;gap:5px;font-size:13px;color:var(--text-muted);font-weight:600}.login-card input{padding:10px 12px;border:1px solid var(--border);border-radius:8px;font-size:14px}.login-card input:focus{outline:2px solid var(--primary);outline-offset:-1px}.login-card button{padding:11px;border:none;border-radius:8px;background:var(--primary);color:#fff;cursor:pointer;font-weight:700;margin-top:6px;transition:background .15s}.login-card button:hover{background:var(--primary-dark)}.error{color:var(--danger);font-size:14px}.canales-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;margin-top:10px}.canal-card{border:1px solid var(--border);border-radius:10px;padding:14px;background:#fcfcfd}.canal-card-header{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:10px;font-size:14px}.canal-nombre{color:var(--text-muted)}.canal-tipo{color:var(--text-muted);font-size:12px}.canal-card-body{display:flex;flex-direction:column;gap:12px}.imagen-referencia{display:flex;flex-direction:column;gap:6px}.imagen-referencia img{width:100%;max-height:160px;object-fit:cover;border-radius:8px;border:1px solid var(--border);display:block}.imagen-placeholder{width:100%;height:90px;border:1px dashed var(--border);border-radius:8px;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:13px;background:#f8f9fb}.imagen-referencia input[type=file]{font-size:12px}.timeline{display:flex;flex-direction:column;gap:8px}.timeline-header{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.timeline-title{font-weight:700;font-size:14px}.timeline-rangos{display:flex;gap:4px}.timeline-rangos button{padding:4px 10px;font-size:12px;border:1px solid var(--border);background:#fff;border-radius:6px;cursor:pointer;color:var(--text-muted)}.timeline-rangos button.activo{background:var(--primary);border-color:var(--primary);color:#fff}.timeline-bar{display:flex;gap:2px;height:26px}.timeline-bucket{flex:1;border-radius:3px}.timeline-ok{background:var(--ok);opacity:.85}.timeline-problema{background:var(--danger)}.timeline-sin-datos{background:var(--border)}.timeline-resumen{margin:0;font-size:12px;color:var(--text-muted)}
