:root{--ink:#17324a;--green:#1565d8;--green2:#00a7c4;--paper:#fff;--wash:#f4f8fc;--line:#d7e4ef;--muted:#64788a;--danger:#a43b3b;--gold:#f4b942;--navy:#1259b8;--navy-soft:#087f9f;--shadow:0 18px 45px rgba(21,101,216,.13)}
*{box-sizing:border-box}body{margin:0;min-height:100vh;font-family:Inter,Segoe UI,Arial,sans-serif;color:var(--ink);background:radial-gradient(circle at 85% 0,#dff4fb 0,transparent 30%),#f1f7fc}
button,input,select{font:inherit}.hidden{display:none!important}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:28px}.auth-card{width:min(460px,100%);padding:38px;background:var(--paper);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow)}.auth-brand{display:flex;gap:14px;align-items:center;margin-bottom:28px}.auth-mark{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(145deg,var(--green2),#0b4c35);color:#fff;font-weight:800}.auth-brand h1{font-size:20px;margin:0}.auth-brand p{margin:3px 0 0;color:var(--muted);font-size:13px}.eyebrow{margin:0 0 5px;text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:800;color:var(--green2)}h2{font-family:Georgia,serif;font-size:28px;margin:0 0 8px}.lead{color:var(--muted);margin:0 0 25px;line-height:1.5}.stack{display:grid;gap:16px}.stack label,.field{display:grid;gap:7px;font-size:12px;font-weight:750;color:#4e5d55}.stack input,.stack select,.field input,.field select{width:100%;height:44px;border:1px solid #cbd9d1;border-radius:10px;padding:0 12px;background:#fff;outline:none}.stack input:focus,.stack select:focus,.field input:focus,.field select:focus{border-color:var(--green2);box-shadow:0 0 0 3px rgba(29,139,101,.12)}.primary,.secondary,.danger{border:0;border-radius:10px;padding:12px 18px;font-weight:750;cursor:pointer}.primary{background:linear-gradient(135deg,var(--green),var(--green2));color:#fff}.secondary{background:#e8f1eb;color:var(--green)}.danger{background:#fff0f0;color:var(--danger)}.message{min-height:20px;margin:15px 0 0;font-size:13px;color:var(--danger)}.portal-header{background:#10261d;color:#fff}.portal-header-inner{max-width:1180px;margin:auto;min-height:72px;padding:12px 24px;display:flex;align-items:center;gap:14px}.portal-header .auth-mark{width:40px;height:40px;border-radius:12px}.portal-title strong{display:block}.portal-title span{font-size:12px;color:#b9ccc2}.portal-user{margin-left:auto;display:flex;align-items:center;gap:12px}.portal-user span{font-size:13px;color:#d5e3dc}.portal-user button,.portal-user a{border:0;background:transparent;color:#8ed4b3;font-weight:750;text-decoration:none;cursor:pointer}.portal-main{max-width:1180px;margin:auto;padding:30px 24px 70px}.portal-grid{display:grid;grid-template-columns:340px 1fr;gap:22px}.card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px;box-shadow:var(--shadow)}.card h2,.card h3{margin-top:0}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.span-2{grid-column:span 2}.actions{display:flex;justify-content:flex-end;gap:10px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px}table{width:100%;border-collapse:collapse;font-size:13px}th,td{padding:11px 12px;border-bottom:1px solid var(--line);text-align:left}th{background:var(--wash);color:#53625a;font-size:11px;text-transform:uppercase}.muted{color:var(--muted)}.status-pill{display:inline-flex;padding:4px 8px;border-radius:99px;background:#e2f3e9;color:var(--green);font-size:11px;font-weight:800}.status-pill.off{background:#f3e6e6;color:var(--danger)}.pending-list{display:grid;gap:10px}.pending-row{display:grid;grid-template-columns:130px 100px 100px repeat(4,minmax(120px,1fr)) auto;gap:8px;align-items:end;padding:12px;border:1px solid var(--line);border-radius:12px}.pending-row label{font-size:10px}.pending-row input,.pending-row select{height:38px}.toolbar{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:18px}.toolbar h2{margin:0}.session-actions{display:flex;align-items:center;gap:10px;margin-left:18px}.session-actions a,.session-actions button{border:0;background:transparent;color:#d9e9e1;text-decoration:none;font-size:12px;font-weight:750;cursor:pointer}.session-actions .session-role{color:#8ed4b3}.readonly-banner{padding:9px 14px;background:#fff3d9;color:#72520e;text-align:center;font-size:12px;font-weight:750}
@media(max-width:850px){.portal-grid{grid-template-columns:1fr}.pending-row{grid-template-columns:repeat(2,1fr)}.pending-row .wide{grid-column:span 2}.form-grid{grid-template-columns:1fr}.span-2{grid-column:span 1}.portal-user span{display:none}}

/* Identidad NOMXHOR: azul petróleo + dorado */
.auth-mark{overflow:hidden;background:var(--navy);color:transparent}
.auth-mark img{display:block;width:100%;height:100%;object-fit:cover;transform:scale(1.35)}
.portal-header{background:var(--navy)}
.portal-title span{color:#e2f4fb}
.portal-user span{color:#f1f8fd}
.portal-user button,.portal-user a,.session-actions .session-role{color:#ffe09a}
.secondary{background:#e8f2f9;color:var(--green)}
.status-pill{background:#e7f3fb;color:var(--green)}
.stack label,.field{color:#4c5f64}
.stack input,.stack select,.field input,.field select{border-color:#c8d9dc}
.stack input:focus,.stack select:focus,.field input:focus,.field select:focus{box-shadow:0 0 0 3px rgba(0,167,196,.16)}
