@font-face{font-family:Montserrat;src:url('/assets/fonts/Montserrat.ttf') format('truetype');font-style:normal;font-weight:400 800;font-display:swap}
:root{--purple:#7038b8;--purple2:#8d52d1;--yellow:#ffc21c;--ink:#24222a;--muted:#756f7d;--bg:#f6f5f8;--line:#e8e4ec;--green:#219653;--red:#c0392b;--white:#fff;--shadow:0 16px 45px rgba(63,42,83,.09)}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Montserrat,Arial,sans-serif;color:var(--ink);background:var(--bg)}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button{border:0;border-radius:11px;padding:12px 18px;font-weight:700;background:linear-gradient(135deg,var(--purple),var(--purple2));color:#fff;cursor:pointer}button.ghost{background:#f1edf5;color:var(--purple);padding:8px 12px}button.danger{background:var(--red)}input,select{width:100%;border:1px solid var(--line);border-radius:10px;padding:12px;background:#fff;color:var(--ink);outline:none}input:focus,select:focus{border-color:var(--purple);box-shadow:0 0 0 3px rgba(112,56,184,.1)}label{display:grid;gap:7px;font-size:13px;font-weight:600}.login-page{display:grid;place-items:center;background:radial-gradient(circle at 20% 10%,#f0e7fb,transparent 38%),var(--bg)}.login-shell{width:min(440px,calc(100% - 32px))}.login-card{background:#fff;border:1px solid var(--line);border-radius:24px;padding:38px;box-shadow:var(--shadow)}.login-card form{display:grid;gap:18px;margin-top:24px}.brand-mark{width:54px;height:54px;border-radius:15px;display:grid;place-items:center;background:var(--purple);color:#fff;font-weight:800;font-size:22px}.eyebrow{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--purple);font-weight:800}.login-card h1,.topbar h1{margin:7px 0}.muted{color:var(--muted)}.tiny{font-size:11px;color:var(--muted);margin-top:20px}.alert{padding:13px 15px;border-radius:11px;margin:14px 0;background:#fff5cf;color:#6a5200}.alert.error{background:#fdebea;color:#8f251c}.alert.success{background:#e8f7ee;color:#176c3c}.app-shell{display:grid;grid-template-columns:250px 1fr;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;background:#21152f;color:#fff;padding:24px 16px;display:flex;flex-direction:column}.side-brand{display:flex;align-items:center;gap:10px;padding:4px 8px 24px}.side-brand span{width:36px;height:36px;border-radius:10px;background:var(--yellow);color:#352248;display:grid;place-items:center;font-weight:800}.sidebar nav{display:grid;gap:5px}.sidebar nav a,.logout-link{padding:12px 13px;border-radius:10px;font-size:13px;color:#d9cfdf}.sidebar nav a:hover,.sidebar nav a.active{background:#39244f;color:#fff}.logout-link{margin-top:auto}.content{padding:28px 34px}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}.user-chip{background:#fff;border:1px solid var(--line);padding:10px 14px;border-radius:999px;font-size:12px;font-weight:700}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}.metric,.panel{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}.metric{padding:22px;display:grid;gap:10px}.metric span{font-size:12px;color:var(--muted)}.metric strong{font-size:28px}.metric strong.good{font-size:18px;color:var(--green)}.panel{padding:22px;margin-bottom:20px}.panel h2{margin-top:0}.quick-links{display:flex;gap:10px;flex-wrap:wrap}.quick-links a{background:#f2edf7;color:var(--purple);padding:10px 13px;border-radius:9px;font-weight:700;font-size:12px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:12px}th,td{text-align:left;padding:13px 10px;border-bottom:1px solid var(--line);vertical-align:middle}th{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em}td small{display:block;color:var(--muted);margin-top:4px}.status{display:inline-block;padding:5px 8px;border-radius:999px;font-size:10px;font-weight:800;text-transform:uppercase}.status.ok{background:#e8f7ee;color:#176c3c}.status.off{background:#f3e9e8;color:#8f251c}.actions{display:flex;gap:6px}.actions form{margin:0}.form-grid{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr)) auto;gap:12px;align-items:end}.role-card{border-top:1px solid var(--line);padding:20px 0;display:grid;gap:16px}.role-card:first-of-type{border-top:0}.role-card h3{margin:0}.permission-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.check{display:flex;align-items:flex-start;gap:8px;padding:10px;border:1px solid var(--line);border-radius:10px}.check input{width:auto;margin-top:2px}.check small{display:block;color:var(--muted);font-weight:400;margin-top:3px}.search-row,.inline-form{display:flex;gap:10px;align-items:end}.search-row input{max-width:420px}.secret-box{font-family:monospace;letter-spacing:.12em;background:#21152f;color:#fff;border-radius:12px;padding:18px;word-break:break-all;margin:15px 0}code{font-family:monospace;color:var(--purple)}@media(max-width:1000px){.metric-grid{grid-template-columns:repeat(2,1fr)}.form-grid{grid-template-columns:1fr 1fr}.permission-grid{grid-template-columns:1fr}}@media(max-width:720px){.app-shell{grid-template-columns:1fr}.sidebar{position:relative;height:auto}.sidebar nav{grid-template-columns:repeat(2,1fr)}.content{padding:20px}.topbar{align-items:flex-start;gap:14px}.metric-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.search-row,.inline-form{display:grid}.user-chip{display:none}}
/* STEP 4 NOTIFICATIONS + PULSE */
.nav-badge{margin-left:auto;background:#ffbf17;color:#2b1743;border-radius:999px;min-width:22px;height:22px;display:inline-grid;place-items:center;padding:0 6px;font-style:normal;font-size:11px;font-weight:800}.side-footer{margin-top:auto;display:grid;gap:8px}.pulse-link{display:block;text-align:center;padding:10px;border-radius:12px;background:rgba(255,191,23,.12);color:#ffcf45;text-decoration:none;font-weight:700}.panel-head{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:20px}.filters{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}.filters select{min-width:180px}.event-list{display:grid;gap:12px}.event{display:grid;grid-template-columns:5px 1fr auto;gap:16px;align-items:center;border:1px solid #ebe5f2;border-radius:16px;background:#fff;overflow:hidden;text-decoration:none;color:inherit}.event-marker{height:100%;min-height:88px;background:#9a8ca8}.event-body{padding:16px 0}.event-body h3{margin:4px 0 6px;font-size:16px}.event-body p{margin:0;color:#6b6174;line-height:1.5}.event-meta{display:flex;gap:10px;flex-wrap:wrap;align-items:center;font-size:11px;color:#8c8195}.event-actions{padding:16px}.event-urgent .event-marker{background:#dc3545}.event-important .event-marker{background:#ffbf17}.event-normal .event-marker{background:#6f35b5}.event-info .event-marker{background:#2b8bcb}.severity{font-weight:800;letter-spacing:.08em}.event-urgent .severity{color:#c62d3d}.event-important .severity{color:#9a6900}.event-normal .severity{color:#6f35b5}.button.small{padding:8px 12px;font-size:12px}.button.secondary{background:#fff;color:#6f35b5;border:1px solid #ded2ec}.status-chip{background:#eee8f4;border-radius:999px;padding:7px 10px;font-size:11px}.empty-state{text-align:center;padding:36px;color:#786d82}.rules-list{display:grid;gap:10px}.rule-row{display:grid;grid-template-columns:minmax(210px,1.6fr) 120px repeat(5,auto) auto;gap:12px;align-items:center;padding:12px;border:1px solid #eee7f4;border-radius:14px}.rule-row small{display:block;color:#94899d}.hero-status{display:flex;justify-content:space-between;align-items:center;padding:26px 30px;border-radius:20px;background:linear-gradient(135deg,#6f35b5,#45206e);color:#fff;margin-bottom:22px}.hero-status.has-urgent{background:linear-gradient(135deg,#8e2330,#4d1520)}.hero-status h2{font-size:28px;margin:2px 0 6px}.hero-status p{margin:0;opacity:.8}.autonomy-ring{width:112px;height:112px;border-radius:50%;border:8px solid rgba(255,255,255,.18);display:grid;place-items:center;text-align:center}.autonomy-ring strong{display:block;font-size:22px}.autonomy-ring span{display:block;font-size:11px}.metric.danger strong{color:#c62d3d}.metric.warning strong{color:#a66d00}.event-list.compact .event{grid-template-columns:5px 1fr}.pulse-page{background:#f7f5fb;min-height:100vh}.pulse-header{position:sticky;top:0;z-index:10;display:flex;justify-content:space-between;align-items:center;padding:14px max(18px,env(safe-area-inset-left));background:#26133d;color:#fff;box-shadow:0 8px 24px rgba(38,19,61,.14)}.pulse-header>div{display:flex;align-items:center;gap:12px}.pulse-logo{width:40px;height:40px;border-radius:13px;background:#ffbf17;color:#3c205d;display:grid;place-items:center;font-weight:900}.pulse-header small{display:block;opacity:.65}.pulse-header a{color:#fff;text-decoration:none}.pulse-main{max-width:760px;margin:auto;padding:18px}.pulse-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.pulse-stat{padding:18px;border-radius:18px;background:#fff;border:1px solid #ece5f4;text-align:center}.pulse-stat strong{display:block;font-size:30px}.pulse-stat span{font-size:12px;color:#756a7e}.pulse-stat.urgent strong{color:#c62d3d}.pulse-stat.important strong{color:#a66d00}.pulse-stat.normal strong{color:#6f35b5}.pulse-toolbar{display:flex;gap:10px;margin:16px 0}.pulse-list{display:grid;gap:12px}.pulse-card{background:#fff;border:1px solid #ebe4f1;border-left:5px solid #6f35b5;border-radius:18px;padding:18px;box-shadow:0 8px 24px rgba(68,34,91,.06)}.pulse-card.event-urgent{border-left-color:#dc3545}.pulse-card.event-important{border-left-color:#ffbf17}.pulse-card h2{font-size:18px;margin:8px 0}.pulse-card p{color:#675c70;line-height:1.55}.pulse-card-top,.pulse-actions{display:flex;justify-content:space-between;gap:12px;align-items:center}.pulse-card-top time{font-size:11px;color:#948a9b}.pulse-actions{justify-content:flex-end;margin-top:14px}@media(max-width:900px){.rule-row{grid-template-columns:1fr 120px}.rule-row label{font-size:12px}.panel-head{align-items:flex-start;flex-direction:column}}@media(max-width:600px){.pulse-summary{grid-template-columns:repeat(3,1fr)}.pulse-stat{padding:12px}.pulse-stat strong{font-size:24px}.hero-status{align-items:flex-start}.autonomy-ring{width:90px;height:90px}.event{grid-template-columns:5px 1fr}.event-actions{grid-column:2;padding:0 12px 14px}.pulse-toolbar{flex-direction:column}}
/* Fase 1 / Paso 1 — Catálogo e inventario */
.form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;align-items:end}.form-grid label,.split-actions label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:700}.form-grid input,.form-grid select,.split-actions input{width:100%;box-sizing:border-box}.form-actions{display:flex;align-items:end}.split-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:18px;padding-top:18px;border-top:1px solid #eee7f5}.split-actions form{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end}.table-wrap{overflow:auto;border:1px solid #eee7f5;border-radius:16px}table{width:100%;border-collapse:collapse;min-width:900px}th,td{padding:13px 14px;border-bottom:1px solid #eee7f5;text-align:left;font-size:13px;vertical-align:middle}th{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:#756b7e;background:#faf8fd;position:sticky;top:0}tr:last-child td{border-bottom:0}.status-pill{display:inline-flex;padding:5px 9px;border-radius:999px;background:#f0ebf7;font-size:11px;font-weight:800;text-transform:uppercase}.status-available{background:#e7f7ed;color:#257a48}.status-reserved{background:#fff4d8;color:#926815}.status-agent_custody{background:#eee9ff;color:#6636a4}.status-daas_active{background:#e8f2ff;color:#2d63a8}.status-sold{background:#ececec;color:#555}.good{color:#258a55}.alert.success{background:#e9f8ef;border-color:#bfe7cf;color:#236c43}label small{font-weight:500;color:#82788b;line-height:1.35}
@media(max-width:1100px){.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:680px){.form-grid,.split-actions{grid-template-columns:1fr}.split-actions form{grid-template-columns:1fr}.form-actions button{width:100%}}
.smart-import-policy{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:18px}.smart-import-policy>div{border:1px solid #e8e2f0;border-radius:16px;padding:18px;background:#faf8fd}.smart-import-policy strong{color:#5f2da0}.smart-import-policy p{margin:.45rem 0 0;color:#6e6677;line-height:1.5}@media(max-width:900px){.smart-import-policy{grid-template-columns:1fr}}
