:root{font-family:Inter,Segoe UI,Arial,sans-serif;color:#13213c;background:#eef3f9}*{box-sizing:border-box}.server-page{min-height:100vh;margin:0;padding:32px;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 10% 10%,#dce8ff,transparent 35%),linear-gradient(135deg,#edf3fa,#dfe8f3)}.login-bg{background:linear-gradient(rgba(4,16,39,.78),rgba(4,16,39,.88)),url('../login_background.jpg') center/cover fixed}.server-card{width:min(480px,100%);padding:30px;border-radius:24px;background:rgba(255,255,255,.96);box-shadow:0 28px 80px rgba(4,20,49,.25);border:1px solid rgba(29,78,216,.12)}.server-card.wide{width:min(760px,100%)}.server-card.extra-wide{width:min(1250px,100%)}.server-logo{display:block;max-width:180px;max-height:80px;object-fit:contain;margin:0 auto 18px}.server-logo.light{filter:drop-shadow(0 3px 12px rgba(0,0,0,.25))}.server-card h1{margin:0 0 8px;font-size:28px}.server-card p{color:#52627a;line-height:1.5}.server-card label{display:grid;gap:7px;margin:14px 0;font-weight:700;font-size:13px}.server-card input,.server-card select{width:100%;padding:12px 13px;border:1px solid #cbd7e6;border-radius:11px;font:inherit;background:#fff}.server-card button{border:0;border-radius:12px;padding:12px 18px;background:#174ea6;color:#fff;font-weight:800;cursor:pointer}.server-card button:hover{filter:brightness(1.08)}.server-card form>button{width:100%;margin-top:8px}.server-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.server-alert{padding:12px 14px;border-radius:12px;margin:14px 0;font-weight:700}.server-alert.error{background:#fee2e2;color:#991b1b}.server-alert.success{background:#dcfce7;color:#166534}.server-alert.warning{background:#fef3c7;color:#92400e}.server-note{margin-top:18px;padding:13px;border-radius:12px;background:#eef5ff;color:#365270;font-size:13px;line-height:1.45}.server-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}.server-actions a{color:#174ea6;font-weight:800;text-decoration:none}.server-top{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.server-table{overflow:auto;margin-top:20px;border:1px solid #dce5ef;border-radius:14px}.server-table table{width:100%;border-collapse:collapse;min-width:1050px}.server-table th,.server-table td{padding:12px;text-align:left;border-bottom:1px solid #e4ebf3;vertical-align:top;font-size:13px}.server-table th{background:#eef4fb}.inline-admin{display:grid;grid-template-columns:auto minmax(220px,1fr) auto;align-items:center;gap:8px}.inline-admin label{display:flex;margin:0;white-space:nowrap}.inline-admin button{padding:10px 13px}@media(max-width:700px){.server-page{padding:14px}.server-card{padding:22px}.server-grid{grid-template-columns:1fr}.server-top{display:block}.inline-admin{grid-template-columns:1fr}.server-table table{min-width:850px}}

.server-alert.info{background:#eaf2ff;border-color:#b9d0f7;color:#17315f}
.permission-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:18px;align-items:start}
.permission-users{display:grid;gap:8px;position:sticky;top:18px}
.permission-user{display:block;padding:11px 12px;border:1px solid #dbe5f1;border-radius:12px;text-decoration:none;color:#17315f;background:#fff}
.permission-user.active{background:#17315f;color:#fff;border-color:#17315f}
.permission-user small{display:block;margin-top:4px;opacity:.75;font-size:11px}
.permission-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:14px}
.permission-group{border:1px solid #dbe5f1;border-radius:14px;padding:12px;background:#fff}
.permission-group legend{font-weight:900;color:#17315f;padding:0 6px}
.permission-item{display:flex!important;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid #edf2f7;margin:0!important}
.permission-item:last-child{border-bottom:0}.permission-item span{display:block}.permission-item small{display:block;color:#64748b;font-size:10px;margin-top:2px}.permission-item input{width:auto!important;min-width:18px;height:18px}.permission-item.locked{opacity:.55}
@media(max-width:900px){.permission-layout{grid-template-columns:1fr}.permission-users{position:static;grid-template-columns:repeat(2,minmax(0,1fr))}.permission-groups{grid-template-columns:1fr}}
#in4StudentServerStatus{position:fixed;right:16px;bottom:16px;z-index:2147482000;padding:8px 12px;border-radius:999px;font:700 12px/1.2 Segoe UI,Arial,sans-serif;box-shadow:0 8px 24px rgba(15,39,66,.16);border:1px solid rgba(15,39,66,.12);background:#fff;color:#334155;pointer-events:none;transition:.2s ease}
#in4StudentServerStatus.ok{background:#ecfdf5;color:#166534;border-color:#bbf7d0}
#in4StudentServerStatus.loading{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe}
#in4StudentServerStatus.error{background:#fff1f2;color:#be123c;border-color:#fecdd3}

.in4-acc-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.in4-acc-toolbar input{width:auto}.in4-acc-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0}.in4-acc-summary>div,.in4-acc-cut>div{background:#fff;border:1px solid #dbe5ef;border-radius:14px;padding:13px}.in4-acc-summary span,.in4-acc-cut span{display:block;color:#64748b;font-size:11px;font-weight:800;text-transform:uppercase}.in4-acc-summary strong,.in4-acc-cut strong{display:block;color:#17315f;font-size:20px;margin-top:4px}.in4-acc-card{background:#fff;border:1px solid #dbe5ef;border-radius:18px;padding:16px;margin:14px 0;box-shadow:0 8px 24px rgba(15,39,66,.05)}.in4-acc-card h3{margin:0 0 10px}.in4-acc-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.in4-acc-head{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}.in4-acc-head p{margin:3px 0;color:#64748b}.in4-acc-cut{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.in4-acc-methods{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.in4-acc-methods span,.in4-acc-pill{padding:5px 9px;border-radius:999px;background:#eff6ff;color:#1d4ed8;font-size:11px;font-weight:800}.in4-acc-pill.ok{background:#dcfce7;color:#166534}.in4-acc-pill.bad{background:#fee2e2;color:#991b1b}.in4-acc-cancelled{opacity:.65;background:#fff7f7}.in4-acc-card table small{color:#64748b}@media(max-width:1050px){.in4-acc-grid,.in4-acc-summary,.in4-acc-cut{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){.in4-acc-grid,.in4-acc-summary,.in4-acc-cut{grid-template-columns:1fr}}


/* INCuatro 10 · Emuna Web · páginas de producción */
.server-page-top{align-items:flex-start}.server-panel{margin:18px 0;padding:18px;border:1px solid #dbe5f1;border-radius:16px;background:#fff}.server-panel summary{cursor:pointer;font-weight:900;color:#17315f}.server-panel h2{margin:0 0 10px}.server-card textarea{width:100%;padding:12px 13px;border:1px solid #cbd7e6;border-radius:11px;font:inherit;background:#fff;resize:vertical}.span-two{grid-column:1/-1}.server-filter{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin:18px 0;padding:13px;border-radius:14px;background:#eef4fb}.server-filter>*{flex:1 1 160px}.server-filter label{margin:0}.server-button{display:inline-flex;align-items:center;justify-content:center;padding:12px 16px;border-radius:12px;background:#174ea6;color:#fff;text-decoration:none;font-weight:800}.server-button.secondary{background:#e2e8f0;color:#17315f}.server-badge{display:inline-block;margin-top:6px;padding:4px 8px;border-radius:999px;background:#eaf2ff;color:#174ea6;font-size:10px;font-weight:900;text-transform:uppercase}.status-active,.status-ready,.status-ok{background:#dcfce7;color:#166534}.status-archived,.status-creating,.status-pending{background:#fef3c7;color:#92400e}.status-deleted,.status-failed,.status-bad{background:#fee2e2;color:#991b1b}.server-actions.compact{gap:7px;margin:0;align-items:flex-start}.server-actions.compact a{display:inline-block;padding:8px 10px;border-radius:9px;background:#eaf2ff}.action-form{display:grid;grid-template-columns:minmax(150px,1fr) auto;gap:6px;margin:0}.action-form input{padding:8px 9px}.action-form button{padding:8px 10px}.server-card button.danger,.danger{background:#991b1b!important;color:#fff!important}.audit-json{white-space:pre-wrap;word-break:break-word;max-width:520px;max-height:220px;overflow:auto;margin:0;font-size:11px}.check-row{display:flex!important;grid-template-columns:none!important;align-items:center;gap:9px}.check-row input{width:auto!important}.diagnostic-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:18px 0}.diagnostic-card{display:grid;gap:5px;padding:14px;border-radius:14px;border:1px solid #dbe5f1;background:#fff}.diagnostic-card.ok{border-left:5px solid #16a34a}.diagnostic-card.bad{border-left:5px solid #dc2626}.diagnostic-card span{color:#52627a;font-size:12px}.diagnostic-card small{color:#92400e;font-weight:800}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.metric-grid>div{padding:14px;border-radius:14px;background:#eef4fb}.metric-grid strong{display:block;font-size:24px;color:#17315f}.metric-grid span{font-size:11px;color:#52627a}.migration-list{display:grid;gap:9px;margin:18px 0}.migration-item{display:flex;justify-content:space-between;gap:12px;padding:12px;border-radius:12px;background:#fff;border:1px solid #dbe5f1}.migration-item.ok{border-left:5px solid #16a34a}.migration-item.pending{border-left:5px solid #f59e0b}@media(max-width:900px){.diagnostic-grid{grid-template-columns:1fr 1fr}.metric-grid{grid-template-columns:1fr 1fr}}@media(max-width:650px){.diagnostic-grid,.metric-grid{grid-template-columns:1fr}.span-two{grid-column:auto}.action-form{grid-template-columns:1fr}.server-filter>*{flex-basis:100%}}

/* P12.2 · Acceso institucional consolidado */
.login-card{width:min(540px,100%);padding:38px 38px 34px}
.login-card .server-logo{max-width:170px;max-height:86px;margin-bottom:16px}
.login-heading{text-align:center;margin:0 0 22px}
.login-kicker{display:inline-flex;align-items:center;justify-content:center;padding:7px 13px;border:1px solid #cbd9ee;border-radius:999px;background:#eef4ff;color:#174ea6;font-size:12px;font-weight:900;letter-spacing:.02em}
.login-card .login-heading h1{margin:14px 0 6px;font-size:32px;line-height:1.15;color:#13213c}
.login-subtitle{max-width:390px;margin:0 auto;color:#52627a;font-size:14px;line-height:1.55}
.login-form{margin-top:4px}
.login-form label{font-size:14px;color:#13213c}
.login-form input{min-height:52px;font-size:16px}
.login-form>button{min-height:52px;margin-top:14px;font-size:16px}
@media(max-width:700px){.login-card{padding:28px 22px 26px}.login-card .login-heading h1{font-size:28px}.login-kicker{font-size:11px}}
