:root{font-family:Inter,"Segoe UI",sans-serif;color:#1b2d43;background:#f4f6fa;font-synthesis:none}*{box-sizing:border-box}body{margin:0}a{color:#13665e;text-decoration:none}h1{font-size:34px;letter-spacing:-1px;margin:10px 0 12px}h2{font-size:20px;margin:0 0 16px}p{line-height:1.65}.muted,.help{color:#68788b}.help{font-size:13px}.eyebrow{font-size:11px;font-weight:750;letter-spacing:2px;color:#18786b}button{background:#116c60;color:white;border:1px solid #116c60;border-radius:7px;padding:12px 20px;font:inherit;font-size:14px;font-weight:600;cursor:pointer}button:hover{background:#0b554b}button:disabled{opacity:.45;cursor:not-allowed}.button-secondary{background:transparent;color:#405267;border-color:#d6dfe7}input,select{font:inherit;font-size:14px;border:1px solid #d5dde6;border-radius:7px;padding:12px;background:white;color:#1b2d43;width:100%;margin-top:8px}input:focus,select:focus{outline:2px solid #209184;outline-offset:2px}label{display:block;font-size:13px;font-weight:600;margin-bottom:20px}input[type=checkbox]{width:17px;height:17px;margin:0;accent-color:#116c60}.check{display:flex;gap:10px;align-items:center;line-height:1.6}.brand{display:flex;align-items:center;gap:12px;color:inherit;font-size:15px;line-height:1.4}.brand-icon{display:grid;place-items:center;width:44px;height:44px;border:1px solid #547378;border-radius:10px;color:#84d6b9;font-weight:700}.login-shell{display:grid;grid-template-columns:1fr 1fr;min-height:100vh}.login-story{background:radial-gradient(ellipse at 90% 85%,#215752 0,transparent 60%),#122f38;color:#fff;padding:52px 10%;display:flex;flex-direction:column;justify-content:space-between;gap:70px}.login-story h1{font-size:clamp(32px,3.5vw,52px);line-height:1.17;letter-spacing:-1.7px;margin:24px 0}.login-story p{color:#c0d1d2;max-width:440px}.login-story .eyebrow{color:#85d8b9}.login-story small{color:#91abad}.login-features{display:grid;gap:16px;margin-top:40px;font-size:13px;color:#c0d7d5}.login-panel{display:grid;place-items:center;background:#fff;padding:60px 32px}.login-card{width:100%;max-width:380px}.login-card h2{font-size:32px;letter-spacing:-1px;margin:15px 0 8px}.login-card form{margin-top:30px}.full{width:100%;margin-top:4px}.login-note{border-top:1px solid #e5e9ec;padding-top:24px;margin-top:35px;font-size:12px;color:#83909c}.login-card .help{text-align:center;margin-top:28px}.app-shell{display:flex;min-height:100vh}.sidebar{width:250px;flex-shrink:0;background:#132e39;color:white;padding:32px 22px;display:flex;flex-direction:column}.nav-caption{font-size:9px;letter-spacing:1.6px;color:#91aab4;margin:55px 12px 20px}.sidebar nav{display:grid;gap:8px}.sidebar nav a{color:#c6d7dd;font-size:14px;padding:13px;border-radius:7px}.sidebar nav a.active{background:#244852;color:#9de5c8}.sidebar-foot{margin-top:auto;padding:55px 12px 0;color:#8ba6ae;font-size:10px;line-height:2}.workspace{flex:1;min-width:0}.topbar{min-height:80px;background:white;border-bottom:1px solid #e1e7ed;display:flex;align-items:center;justify-content:flex-end;gap:24px;padding:16px 36px;font-size:12px;color:#60748a}.topbar>span:first-child{margin-right:auto}.page-content{max-width:1400px;margin:auto;padding:40px}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:22px;margin-top:24px}.panel{background:white;border:1px solid #e0e6ec;border-radius:12px;padding:24px;margin-bottom:22px}.module{color:inherit;padding:28px}.module p{color:#68788b;font-size:14px;min-height:48px}.module strong{font-size:13px;color:#147b68}.module-icon{display:inline-grid;place-items:center;border-radius:10px;background:#edf6f2;color:#248572;width:44px;height:44px;margin-bottom:28px;font-size:14px}.notice,.alert,.success{padding:16px 20px;border-radius:8px;margin:20px 0;font-size:14px;line-height:1.6}.notice{background:#eaf1f6;color:#4b657b;border:1px solid #dce6ee}.alert{background:#fff0ef;color:#a83232}.success{background:#e5f5ed;color:#176b48}.narrow{max-width:540px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 24px;margin-top:24px}.filters{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap;margin:26px 0}.filters label{margin:0;flex:1;min-width:130px}.filters a{padding:12px}.section-heading{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#708195}.section-heading h2{color:#1b2d43}summary{cursor:pointer;font-size:14px}.user-row{padding:18px 0;border-top:1px solid #e8edf2}.user-row summary{display:flex;gap:22px;align-items:center}.user-row summary>span:first-of-type{margin-left:auto;color:#697c8e}.badge{display:inline-block;border-radius:20px;background:#edf3f4;color:#426577;font-size:11px;padding:5px 10px}.permission-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:12px}th{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:#6e8195;padding:16px 12px;background:#f7f9fb}td{padding:18px 12px;border-bottom:1px solid #e7edf2;vertical-align:top}td small{display:block;color:#7a8a99;font-size:10px;margin-top:6px;overflow-wrap:anywhere}.pagination{display:flex;gap:24px;justify-content:center;font-size:13px;margin:24px}#blazor-error-ui{display:none}h1:focus{outline:none}@media(max-width:900px){.sidebar{width:205px}.page-content{padding:24px}.topbar{padding:16px}.login-story{padding:40px 8%}.login-story h1{font-size:36px}}@media(max-width:650px){.login-shell{grid-template-columns:1fr}.login-story{padding:28px;gap:28px}.login-story h1{font-size:30px}.login-features,.login-story>small{display:none}.login-panel{padding:40px 24px}.app-shell{display:block}.sidebar{width:100%;padding:20px}.sidebar nav{display:flex;flex-wrap:wrap;margin-top:16px}.nav-caption,.sidebar-foot{display:none}.topbar{flex-wrap:wrap;gap:12px}.form-grid{grid-template-columns:1fr}.user-row summary{flex-wrap:wrap;gap:10px}.user-row summary>span:first-of-type{margin-left:0}.page-content{padding:24px 16px}}
pre{white-space:pre-wrap;overflow-wrap:anywhere;max-width:380px;font-size:11px;line-height:1.6}

/* Propuesta de identidad: acceso empresarial. */
.login-shell {
    --login-red: #b6383f;
    --login-red-dark: #922a31;
    --login-ink: #29272a;
    --login-muted: #716c70;
    --login-paper: #faf9f8;
    color: var(--login-ink);
    grid-template-columns: 1fr 1fr;
}
.login-story {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    background: var(--login-red);
    padding: 48px 11%;
    gap: 64px;
}
.login-story::before, .login-story::after {
    content: "";
    position: absolute;
    z-index: -1;
    width: 520px;
    height: 520px;
    border: 1px solid #ffffff18;
    border-radius: 50%;
    right: -290px;
    bottom: -175px;
    pointer-events: none;
}
.login-story::after { width: 710px; height: 710px; right: -385px; bottom: -270px; }
.login-story .brand { gap: 14px; font-size: 10px; font-weight: 600; letter-spacing: 2px; }
.login-story .brand-icon { width: 46px; height: 46px; color: white; border-color: #ffffff70; border-radius: 12px; font-size: 17px; letter-spacing: -1px; }
.login-story .eyebrow { color: #ffe0df; font-size: 10px; letter-spacing: 2.3px; }
.login-story h1 { font-size: clamp(36px, 4.2vw, 66px); font-weight: 650; line-height: 1.08; letter-spacing: -2.5px; margin: 23px 0 28px; }
.login-story p { color: #ffe8e6; font-size: 16px; line-height: 1.8; }
.login-features { display: flex; flex-wrap: wrap; gap: 12px 22px; border-top: 1px solid #ffffff35; padding-top: 24px; margin-top: 38px; color: #ffe8e6; font-size: 11px; }
.login-features span::before { content: ""; display: inline-block; width: 5px; height: 5px; background: #ffd1cb; border-radius: 50%; margin-right: 9px; vertical-align: middle; }
.login-story small { color: #ffdbd9; font-size: 11px; letter-spacing: .3px; }
.login-panel { background: var(--login-paper); padding: 64px 40px; }
.login-card { max-width: 390px; }
.login-card .eyebrow { color: var(--login-red); letter-spacing: 2.2px; }
.login-card h2 { font-size: 34px; font-weight: 650; margin-top: 16px; }
.login-card .muted, .login-card .help { color: var(--login-muted); }
.login-card .muted { font-size: 14px; }
.login-card form { margin-top: 32px; }
.login-card label { font-size: 13px; font-weight: 600; margin-bottom: 23px; }
.login-card input { min-height: 52px; background: #fff; border: 1px solid #dad5d5; border-radius: 8px; color: var(--login-ink); margin-top: 10px; padding: 14px 16px; }
.login-card input::placeholder { color: #878186; }
.login-card input:focus { outline: 2px solid var(--login-red); outline-offset: 3px; border-color: var(--login-red); }
.login-card button.rz-button { min-height: 52px; background: var(--login-red); border: 1px solid var(--login-red); border-radius: 8px; color: #fff; box-shadow: none; text-transform: none; font-size: 14px; letter-spacing: .1px; }
.login-card button.rz-button:hover:not(:disabled) { background: var(--login-red-dark); border-color: var(--login-red-dark); }
.login-card button.rz-button:focus-visible { outline: 2px solid var(--login-red-dark); outline-offset: 3px; }
.login-card button.rz-button:disabled { opacity: 1; background: #d6b3b5; border-color: #d6b3b5; color: #49383b; cursor: not-allowed; }
.login-card .notice { background: #f1eded; border: 1px solid #e3dada; color: #67595d; font-size: 12px; padding: 13px 16px; }
.login-card .login-note { border-color: #e5dfdf; color: var(--login-muted); text-align: center; font-size: 11px; }
@media (max-width: 900px) { .login-story { padding: 40px 8%; } .login-story h1 { font-size: 40px; letter-spacing: -1.6px; } .login-panel { padding: 48px 28px; } }
@media (max-width: 650px) { .login-shell { grid-template-columns: 1fr; } .login-story { padding: 28px; gap: 36px; } .login-story h1 { font-size: 42px; margin: 16px 0; } .login-story p { font-size: 14px; margin-bottom: 0; } .login-story .eyebrow { font-size: 9px; } .login-features, .login-story>small { display: none; } .login-panel { padding: 40px 24px; } .login-card h2 { font-size: 30px; } }

/* Identidad simplificada: título y copyright. */
.login-story { gap: 32px; }
.login-intro { margin-block: auto; padding-block: 48px; }
.login-story::before, .login-story::after { content: none; }
.login-story h1 { margin: 24px 0 0; line-height: 1.12; }
.login-title-light, .login-title-strong { display: block; }
.login-title-light { font-weight: 300; letter-spacing: -1.5px; }
.login-title-strong { font-weight: 700; }
.login-copyright { color: #ffdbd9; font-size: 12px; letter-spacing: .4px; }
@media (max-width: 650px) {
    .login-intro { padding-block: 20px; }
    .login-story h1 { font-size: clamp(30px, 8.5vw, 42px); }
    .login-copyright { font-size: 11px; }
}

/* Tokens compartidos: identidad aprobada para login y módulos. */
:root {
    --ce-primary: #b6383f;
    --ce-primary-hover: #922a31;
    --ce-background: #faf9f8;
    --ce-surface: #ffffff;
    --ce-text: #29272a;
    --ce-muted: #716c70;
    --ce-border: #e5dfdf;
    --ce-tint: #f8eded;
    --rz-primary: var(--ce-primary);
    --rz-primary-dark: var(--ce-primary-hover);
    --rz-primary-light: #d6b3b5;
    --rz-primary-lighter: var(--ce-tint);
    color: var(--ce-text);
    background: var(--ce-background);
}
.login-shell {
    --login-red: var(--ce-primary);
    --login-red-dark: var(--ce-primary-hover);
    --login-ink: var(--ce-text);
    --login-muted: var(--ce-muted);
    --login-paper: var(--ce-background);
}
.app-shell { color: var(--ce-text); background: var(--ce-background); }
.app-shell a { color: var(--ce-primary); }
.app-shell .sidebar { width: 270px; background: var(--ce-primary); padding: 44px 26px 28px; }
.sidebar-identity .eyebrow { color: #ffe0df; font-size: 8px; letter-spacing: 1.5px; line-height: 1.8; }
.app-shell .sidebar .brand { color: white; margin-top: 18px; font-size: 26px; font-weight: 300; line-height: 1.12; letter-spacing: -.9px; }
.sidebar .brand strong { font-weight: 700; }
.app-shell .nav-caption { color: #ffdbd9; margin: 52px 12px 18px; font-size: 9px; }
.app-shell .sidebar nav a { color: #fff0ee; padding: 14px 16px; border-radius: 8px; border: 1px solid transparent; }
.app-shell .sidebar nav a:hover { background: #ffffff12; }
.app-shell .sidebar nav a.active { background: #fff; color: var(--ce-primary-hover); font-weight: 650; }
.app-shell .sidebar-foot { color: #ffdbd9; padding: 48px 12px 0; font-size: 11px; }
.app-shell .topbar { background: var(--ce-surface); border-color: var(--ce-border); color: var(--ce-muted); padding: 18px 40px; gap: 20px; }
.app-shell .topbar>span { overflow-wrap: anywhere; }
.app-shell .page-content { padding: 48px 40px; }
.app-shell .eyebrow { color: var(--ce-primary); }
.app-shell .sidebar .eyebrow { color: #ffe0df; }
.app-shell .muted, .app-shell .help { color: var(--ce-muted); }
.home-heading { padding: 8px 0 12px; }
.home-heading h1 { font-size: clamp(30px, 3vw, 44px); font-weight: 300; line-height: 1.2; letter-spacing: -1.5px; margin: 18px 0 14px; }
.home-heading h1 strong { font-weight: 650; }
.home-heading p { font-size: 14px; }
.app-shell .cards { gap: 20px; margin-top: 24px; }
.app-shell .panel { background: var(--ce-surface); border-color: var(--ce-border); border-radius: 12px; }
.app-shell .module { color: var(--ce-text); padding: 28px; transition: border-color .15s ease, box-shadow .15s ease; }
.app-shell .module:hover { border-color: var(--ce-primary); box-shadow: 0 6px 22px #29272a08; }
.app-shell .module h2 { font-weight: 650; letter-spacing: -.4px; }
.app-shell .module p { color: var(--ce-muted); }
.app-shell .module strong { color: var(--ce-primary); }
.app-shell .module-icon { background: var(--ce-tint); color: var(--ce-primary); border-radius: 8px; font-weight: 650; }
.app-shell .notice { background: #f1eded; color: #67595d; border-color: var(--ce-border); font-size: 13px; }
.app-shell button { background: var(--ce-primary); border-color: var(--ce-primary); border-radius: 8px; }
.app-shell button:hover:not(:disabled) { background: var(--ce-primary-hover); }
.app-shell button.button-secondary { background: transparent; color: var(--ce-text); border-color: var(--ce-border); }
.app-shell button.button-secondary:hover:not(:disabled) { background: var(--ce-tint); border-color: var(--ce-primary); color: var(--ce-primary-hover); }
.app-shell input, .app-shell select { color: var(--ce-text); border-color: #dad5d5; border-radius: 8px; }
.app-shell input[type=checkbox] { accent-color: var(--ce-primary); }
.app-shell input:focus, .app-shell select:focus, .app-shell a:focus-visible, .app-shell button:focus-visible { outline: 2px solid var(--ce-primary); outline-offset: 3px; }
.app-shell .sidebar a:focus-visible { outline-color: white; }
.app-shell .section-heading, .app-shell td small, .app-shell .user-row summary>span:first-of-type { color: var(--ce-muted); }
.app-shell .section-heading h2 { color: var(--ce-text); }
.app-shell .badge { background: var(--ce-tint); color: var(--ce-primary-hover); }
.app-shell th { background: var(--ce-background); color: var(--ce-muted); }
.app-shell td, .app-shell .user-row { border-color: var(--ce-border); }
@media (max-width: 1000px) {
    .app-shell .sidebar { width: 235px; padding-inline: 20px; }
    .app-shell .sidebar .brand { font-size: 24px; }
    .app-shell .page-content { padding: 32px 24px; }
    .app-shell .topbar { padding: 16px 24px; flex-wrap: wrap; }
}
@media (max-width: 650px) {
    .app-shell .sidebar { width: 100%; padding: 28px 24px 20px; }
    .app-shell .sidebar nav { gap: 6px; margin-top: 26px; }
    .app-shell .sidebar nav a { padding: 10px 12px; font-size: 13px; }
    .app-shell .sidebar-foot { display: block; padding: 24px 0 0; }
    .app-shell .page-content { padding: 28px 20px; }
    .app-shell .topbar { padding: 16px 20px; gap: 12px; }
    .app-shell .cards { grid-template-columns: 1fr; }
}

/* Navegación adaptable: la barra de iconos permanece visible. */
.app-shell { display: flex; --sidebar-rail: 76px; }
.app-shell .sidebar { position: sticky; top: 0; height: 100dvh; overflow-y: auto; width: 270px; padding: 24px 20px; flex-shrink: 0; }
.app-shell .nav-toggle { display: grid; place-items: center; flex-shrink: 0; width: 44px; height: 44px; padding: 0; margin-bottom: 28px; color: white; background: transparent; border: 1px solid #ffffff50; border-radius: 8px; }
.app-shell .nav-toggle:hover { background: #ffffff18; }
.app-shell .nav-toggle:focus-visible { outline-color: white; }
.app-shell .sidebar nav { display: grid; gap: 8px; margin-top: 0; }
.app-shell .sidebar nav a { display: flex; align-items: center; gap: 12px; min-height: 46px; padding: 12px; }
.app-shell .sidebar nav .rzi { flex-shrink: 0; font-size: 22px; width: 22px; height: 22px; }
.app-shell .nav-label { font-size: 13px; line-height: 1.4; }
.app-shell .nav-caption { display: block; margin-top: 40px; }
.app-shell .sidebar-foot { display: block; }
.app-shell.nav-collapsed .sidebar { width: var(--sidebar-rail); padding: 24px 12px; }
.app-shell.nav-collapsed .sidebar-identity,
.app-shell.nav-collapsed .nav-caption,
.app-shell.nav-collapsed .nav-label,
.app-shell.nav-collapsed .sidebar-foot { display: none; }
.app-shell.nav-collapsed .nav-toggle { margin-inline: auto; }
.app-shell.nav-collapsed .sidebar nav a { justify-content: center; padding: 12px 0; }
@media (max-width: 900px) {
    .app-shell.nav-auto .sidebar { width: var(--sidebar-rail); padding: 24px 12px; }
    .app-shell.nav-auto .sidebar-identity,
    .app-shell.nav-auto .nav-caption,
    .app-shell.nav-auto .nav-label,
    .app-shell.nav-auto .sidebar-foot { display: none; }
    .app-shell.nav-auto .sidebar nav a { justify-content: center; padding: 12px 0; }
    .app-shell.nav-auto .nav-toggle { margin-inline: auto; }
    .app-shell.nav-expanded .sidebar { position: fixed; left: 0; z-index: 20; width: min(270px, calc(100vw - 48px)); box-shadow: 8px 0 24px #29272a22; }
    .app-shell.nav-expanded .workspace { margin-left: var(--sidebar-rail); }
    .app-shell .cards { grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); }
}
@media (max-width: 650px) {
    .app-shell .sidebar { padding-block: 18px; }
    .app-shell .page-content { padding: 24px 16px; }
    .app-shell .topbar { padding: 16px; }
    .app-shell .topbar>span:first-child { flex-basis: 100%; }
    .app-shell .module { padding: 22px; }
    .app-shell .filters label { min-width: 0; flex-basis: 100%; }
    .app-shell .permission-grid { grid-template-columns: 1fr; }
}

/* Mismos grupos en navegación y asignación de permisos. */
.app-shell .nav-group { display: grid; gap: 6px; border-top: 1px solid #ffffff35; margin-top: 12px; padding-top: 12px; }
.app-shell .nav-group-title { color: #ffdbd9; font-size: 10px; font-weight: 650; letter-spacing: 1px; padding: 4px 12px 8px; }
.app-shell.nav-collapsed .nav-group-title { display: none; }
.permission-group { min-width: 0; border: 1px solid var(--ce-border); border-radius: 8px; padding: 16px; margin: 0 0 22px; }
.permission-group legend { color: var(--ce-text); font-weight: 650; font-size: 14px; padding: 0 8px; }
.permission-group .permission-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); }
.permission-group .check { margin-bottom: 8px; }
.permission-group input[type=checkbox] { flex-shrink: 0; }
@media (max-width: 900px) { .app-shell.nav-auto .nav-group-title { display: none; } }
