/* IESTP Hermanos Cárcamo — Biblioteca Virtual 2026\n   Paleta institucional inspirada en el logotipo oficial: azul, celeste, rojo, amarillo, blanco y negro. */
:root{
  --hc-navy:#082d6b;
  --hc-blue:#124394;
  --hc-blue-2:#1758b3;
  --hc-sky:#46c8f2;
  --hc-sky-soft:#e9f9ff;
  --hc-red:#f31d2b;
  --hc-yellow:#f3d315;
  --hc-black:#0a1220;
  --hc-ink:#172033;
  --hc-muted:#6d7b91;
  --hc-line:#e4eaf2;
  --hc-bg:#f4f7fb;
  --hc-white:#ffffff;
  --shadow-sm:0 8px 24px rgba(8,45,107,.06);
  --shadow-md:0 18px 48px rgba(8,45,107,.10);
  --shadow-lg:0 32px 90px rgba(8,45,107,.19);
  --radius-sm:12px;
  --radius-md:18px;
  --radius-lg:26px;
}
*{box-sizing:border-box}
html{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--hc-ink);background:var(--hc-bg)}
body{margin:0;background:var(--hc-bg)}
a{color:inherit;text-decoration:none}button,input,select{font:inherit}
::selection{background:rgba(70,200,242,.28)}

/* LOGO */
.logo-img{display:block;object-fit:contain}
.logo-login{width:118px;height:118px;filter:drop-shadow(0 16px 25px rgba(0,0,0,.12))}
.logo-sidebar{width:64px;height:64px;flex:0 0 64px;background:#fff;border-radius:16px;padding:5px;box-shadow:0 10px 24px rgba(0,0,0,.15)}
.logo-small{width:76px;height:76px;margin-bottom:18px}

/* LOGIN */
.login-page{min-height:100vh;background:#eef4fb;position:relative;overflow:auto}
.login-bg{position:fixed;inset:0;background:
  radial-gradient(circle at 8% 12%,rgba(70,200,242,.25),transparent 25%),
  radial-gradient(circle at 42% 82%,rgba(243,29,43,.10),transparent 22%),
  linear-gradient(132deg,var(--hc-navy) 0%,#0f4387 48%,#eff5fb 48.1%,#f7f9fc 100%)}
.login-bg:before{content:"";position:absolute;left:-130px;bottom:-150px;width:430px;height:430px;border:1px solid rgba(255,255,255,.15);border-radius:50%;box-shadow:0 0 0 60px rgba(255,255,255,.035),0 0 0 120px rgba(255,255,255,.025)}
.login-wrap{position:relative;z-index:1;min-height:100vh;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(420px,.92fr);align-items:center;max-width:1220px;margin:auto;padding:44px}
.identity-panel{color:#fff;padding:28px 70px 28px 6px;min-height:650px;display:flex;flex-direction:column;position:relative}
.brand{display:flex;gap:16px;align-items:center}
.brand-login strong{display:block;font-size:17px;line-height:1.25;max-width:360px}.brand-login span{display:block;color:#cbe9f6;font-size:13px;margin-top:5px}
.identity-copy{margin:auto 0;max-width:650px}.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:11px;font-weight:900;letter-spacing:.13em;text-transform:uppercase;color:var(--hc-blue)}
.identity-copy .eyebrow{color:#fff;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.16);padding:7px 11px;border-radius:999px;backdrop-filter:blur(10px)}
.identity-copy h1{font-size:50px;line-height:1.04;letter-spacing:-.035em;max-width:680px;margin:18px 0 16px}.identity-copy h1 span{color:#86e3ff}
.identity-copy p{font-size:17px;line-height:1.68;max-width:590px;color:#d9ebf6;margin:0}
.identity-foot{display:flex;align-items:center;gap:9px;font-size:12px;color:#c4dceb}.identity-foot:before{content:"";width:32px;height:3px;border-radius:99px;background:linear-gradient(90deg,var(--hc-yellow),var(--hc-red))}
.login-card{background:rgba(255,255,255,.96);max-width:520px;width:100%;justify-self:end;padding:46px;border-radius:30px;border:1px solid rgba(255,255,255,.9);box-shadow:var(--shadow-lg);backdrop-filter:blur(18px);position:relative;overflow:hidden}
.login-card:before{content:"";position:absolute;inset:0 0 auto 0;height:5px;background:linear-gradient(90deg,var(--hc-blue),var(--hc-sky) 58%,var(--hc-red) 58% 82%,var(--hc-yellow) 82%)}
.login-card h2{font-size:31px;letter-spacing:-.025em;margin:10px 0 6px}.login-card .muted{margin-top:0}.muted{color:var(--hc-muted)}
.login-card form{margin-top:27px}label{display:block;font-size:12px;font-weight:800;color:#35415a;letter-spacing:.01em}
input,select{width:100%;margin-top:8px;border:1px solid #dce5ef;background:#fbfdff;border-radius:13px;padding:13px 14px;outline:none;color:var(--hc-ink);transition:.16s ease}
input:hover,select:hover{border-color:#c8d5e4}input:focus,select:focus{border-color:var(--hc-sky);box-shadow:0 0 0 4px rgba(70,200,242,.16);background:#fff}
form label+label{margin-top:18px}.password-row{position:relative}.password-row input{padding-right:62px}.eye{position:absolute;right:8px;top:15px;border:0;background:#edf6fb;color:var(--hc-blue);border-radius:8px;padding:6px 9px;font-weight:900;font-size:11px;cursor:pointer}.eye:hover{background:#dff2fb}
.login-options{display:flex;justify-content:space-between;gap:16px;align-items:center;margin:17px 0 22px;font-size:11px}.login-options a{color:var(--hc-blue);font-weight:800}.login-options a:hover{text-decoration:underline}.check{display:flex;align-items:center;gap:7px;font-weight:550}.check input{width:auto;margin:0;accent-color:var(--hc-blue)}
.btn{display:inline-flex;justify-content:center;align-items:center;border:0;border-radius:12px;padding:11px 16px;font-weight:850;cursor:pointer;background:#edf2f8;color:#23415e;transition:transform .16s ease,box-shadow .16s ease,background .16s ease}.btn:hover{transform:translateY(-1px)}.btn.primary{background:linear-gradient(135deg,var(--hc-navy),var(--hc-blue-2));color:#fff;box-shadow:0 10px 24px rgba(8,45,107,.18)}.btn.primary:hover{box-shadow:0 14px 30px rgba(8,45,107,.24)}.btn.light{background:#fff;color:var(--hc-navy);box-shadow:0 8px 24px rgba(0,0,0,.08)}.btn.wide{width:100%;padding:14px}.btn.small{font-size:11px;padding:8px 11px}
.demo-box{margin-top:22px;background:linear-gradient(135deg,#f7fbff,#eef8fc);border:1px solid #dbeaf3;border-radius:13px;padding:13px 14px;display:grid;gap:4px;font-size:11px;color:#5f6d84}.demo-box strong{color:#253954}.copyright{text-align:center;font-size:11px;color:#99a5b7;margin:25px 0 0}.mobile-brand{display:none}
.simple-card{position:relative;z-index:2;background:#fff;max-width:490px;margin:8vh auto;padding:42px;border-radius:26px;box-shadow:var(--shadow-lg);border-top:5px solid var(--hc-blue)}.simple-card h1{margin:4px 0 8px}.simple-card form{margin:26px 0}.back-link{color:var(--hc-blue);font-weight:800;font-size:12px}

/* APP LAYOUT */
.app-shell{display:grid;grid-template-columns:276px 1fr;min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:276px;background:linear-gradient(180deg,#06285f 0%,#0b3472 58%,#08295f 100%);color:#fff;padding:22px 18px;display:flex;flex-direction:column;z-index:30;box-shadow:10px 0 30px rgba(8,45,107,.08)}
.sidebar:after{content:"";position:absolute;right:0;top:0;width:3px;height:100%;background:linear-gradient(180deg,var(--hc-sky),transparent 45%,var(--hc-red))}
.brand-side{padding:0 6px 22px;border-bottom:1px solid rgba(255,255,255,.11);position:relative;z-index:2}.brand-side strong{display:block;font-size:13px;line-height:1.25;max-width:160px}.brand-side span{display:block;color:#b9d7ea;font-size:10px;margin-top:5px;letter-spacing:.05em;text-transform:uppercase}
.nav{display:grid;gap:7px;margin-top:22px;position:relative;z-index:2}.nav a{display:flex;align-items:center;gap:12px;padding:12px 13px;border:1px solid transparent;border-radius:12px;color:#d9e8f3;font-size:13px;font-weight:650;transition:.16s ease}.nav a:hover{background:rgba(255,255,255,.095);border-color:rgba(255,255,255,.08);color:#fff;transform:translateX(2px)}.nav a:first-child{background:rgba(70,200,242,.11)}
.sidebar-foot{margin-top:auto;border-top:1px solid rgba(255,255,255,.10);padding:18px 8px 0;display:grid;gap:8px;position:relative;z-index:2}.sidebar-foot small{color:#8fb7cf}.sidebar-foot a{font-size:12px;color:#ffe24e;font-weight:750}
.content{grid-column:2;min-width:0;background:radial-gradient(circle at 95% 0%,rgba(70,200,242,.09),transparent 23%),var(--hc-bg)}
.topbar{height:88px;background:rgba(255,255,255,.92);border-bottom:1px solid rgba(224,231,240,.95);padding:0 32px;display:flex;align-items:center;gap:18px;position:sticky;top:0;z-index:20;backdrop-filter:blur(16px)}.topbar h1{font-size:19px;letter-spacing:-.015em;margin:0}.topbar p{font-size:11px;color:#8190a4;margin:4px 0 0}.menu-btn{display:none;border:0;background:#edf4fb;color:var(--hc-navy);border-radius:10px;padding:9px}.user-chip{margin-left:auto;display:flex;gap:10px;align-items:center;background:#f7f9fc;border:1px solid #e5ebf2;border-radius:14px;padding:7px 10px 7px 7px}.user-chip strong,.user-chip span{display:block}.user-chip strong{font-size:11px}.user-chip span{font-size:10px;color:#8390a4;margin-top:2px}.avatar{width:38px;height:38px;border-radius:11px;background:linear-gradient(145deg,var(--hc-navy),var(--hc-blue-2));display:grid;place-items:center;font-weight:900;color:#fff;box-shadow:0 7px 16px rgba(8,45,107,.16)}
.main-section{padding:30px;max-width:1500px;margin:auto}.app-footer{text-align:center;padding:24px;color:#8b96a7;font-size:10px}

/* HERO */
.hero{background:linear-gradient(125deg,#072d69 0%,#0e438b 55%,#1560aa 100%);color:#fff;border-radius:24px;padding:32px 34px;display:flex;justify-content:space-between;gap:30px;align-items:center;box-shadow:0 18px 45px rgba(8,45,107,.16);position:relative;overflow:hidden;isolation:isolate}.hero:before{content:"";position:absolute;right:-34px;bottom:-62px;width:260px;height:260px;background:url('logo-hc.png') center/contain no-repeat;opacity:.12;filter:saturate(.8);z-index:-1}.hero:after{content:"";position:absolute;left:0;top:0;width:100%;height:4px;background:linear-gradient(90deg,var(--hc-sky) 0 58%,var(--hc-red) 58% 82%,var(--hc-yellow) 82%)}.hero h2{font-size:29px;letter-spacing:-.025em;margin:9px 0 8px}.hero p{margin:0;color:#d8eaf6}.hero .eyebrow{color:#9fe8ff}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:17px;margin:20px 0}.stat{background:rgba(255,255,255,.96);border:1px solid #e4eaf2;border-radius:18px;padding:20px;box-shadow:var(--shadow-sm);position:relative;overflow:hidden}.stat:before{content:"";position:absolute;left:0;top:0;width:4px;height:100%;background:var(--hc-sky)}.stat:nth-child(2):before{background:var(--hc-blue)}.stat:nth-child(3):before{background:var(--hc-yellow)}.stat:nth-child(4):before{background:var(--hc-red)}.stat span,.stat small,.stat strong{display:block}.stat span{font-size:11px;color:#718096;font-weight:800}.stat strong{font-size:31px;letter-spacing:-.03em;margin:8px 0;color:var(--hc-navy)}.stat small{color:#98a3b4;font-size:10px}.danger-stat strong{color:#c62b36}
.grid-two{display:grid;grid-template-columns:1.25fr .75fr;gap:20px}.panel{background:rgba(255,255,255,.98);border:1px solid #e5eaf1;border-radius:18px;padding:20px;margin-bottom:20px;box-shadow:var(--shadow-sm)}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:16px}.panel-head h3{font-size:15px;letter-spacing:-.01em;margin:0}.panel-head p{font-size:11px;color:#8794a6;margin:4px 0 0}.panel-head a{font-size:11px;color:var(--hc-blue);font-weight:850}.table-wrap{overflow:auto;border-radius:12px}table{width:100%;border-collapse:collapse;font-size:11px}th{text-align:left;color:#768398;font-size:10px;text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid #e7ebf0;padding:10px;background:#fbfcfe}td{padding:12px 10px;border-bottom:1px solid #edf0f4;vertical-align:middle}tbody tr:hover{background:#fbfdff}td small{color:#8491a4}.empty{text-align:center;color:#8b97a8;padding:28px}.badge{display:inline-block;border-radius:999px;padding:5px 8px;font-size:9px;font-weight:900}.badge.warning{background:#fff6cf;color:#795d00}.badge.success{background:#dff7ea;color:#17673b}.badge.danger{background:#fee6e8;color:#ad2935}
.quick-actions{display:grid;gap:9px}.quick-actions a{display:grid;grid-template-columns:30px 1fr;column-gap:8px;align-items:center;border:1px solid #e3eaf2;border-radius:13px;padding:12px;font-size:12px;font-weight:850;transition:.15s ease;background:#fff}.quick-actions a:hover{border-color:#bcecfb;background:#f8fdff;transform:translateY(-1px);box-shadow:0 8px 22px rgba(8,45,107,.06)}.quick-actions a span{grid-column:2;font-size:10px;font-weight:500;color:#8794a6;margin-top:-3px}
.search-form{display:flex;gap:8px;min-width:min(520px,100%)}.search-form input{margin:0}.book-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.book-card{border:1px solid #e3eaf2;border-radius:16px;padding:14px;display:grid;grid-template-columns:70px 1fr;gap:13px;min-width:0;background:linear-gradient(145deg,#fff,#fbfdff);transition:.16s ease}.book-card:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(8,45,107,.08);border-color:#cfe3ef}.book-cover{height:96px;border-radius:11px;background:linear-gradient(145deg,var(--hc-navy),var(--hc-blue-2));display:grid;place-items:center;color:#fff;font-size:29px;font-weight:900;position:relative;overflow:hidden}.book-cover:after{content:"";position:absolute;right:-12px;bottom:-15px;width:48px;height:48px;border-radius:50%;background:var(--hc-sky);opacity:.28}.book-info{min-width:0}.book-code{font-size:9px;color:#8a97a7}.book-info h4{margin:5px 0;font-size:13px;line-height:1.25}.book-info p{margin:0;color:#66768c;font-size:11px}.book-meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.book-meta span{font-size:9px;background:#f0f5fa;color:#607289;border-radius:999px;padding:4px 7px}.text-link{display:inline-block;margin-top:10px;color:var(--hc-blue);font-size:10px;font-weight:850}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px 18px}.form-grid label{margin:0}.span-2{grid-column:span 2}.form-action{display:flex;align-items:end}.alert{border-radius:12px;padding:12px 14px;margin-bottom:17px;font-size:12px}.alert.error{background:#feecef;color:#9f2933;border:1px solid #f9ced3}.alert.success{background:#e3f7eb;color:#27643b;border:1px solid #c7ead4}

@media(max-width:1050px){.book-grid{grid-template-columns:repeat(2,1fr)}.stats{grid-template-columns:repeat(2,1fr)}.grid-two{grid-template-columns:1fr}.identity-copy h1{font-size:40px}.login-wrap{padding:28px}.identity-panel{padding-right:38px}}
@media(max-width:820px){.login-bg{background:radial-gradient(circle at 10% 0%,rgba(70,200,242,.16),transparent 28%),#eef4fb}.login-wrap{display:block;padding:20px;min-height:auto}.identity-panel{display:none}.login-card{justify-self:auto;margin:5vh auto;padding:34px}.mobile-brand{display:flex;align-items:center;gap:12px;margin-bottom:27px}.mobile-brand .logo-img{width:66px;height:66px}.mobile-brand strong,.mobile-brand span{display:block}.mobile-brand strong{font-size:12px}.mobile-brand span{font-size:10px;color:#7b8799;margin-top:3px}.app-shell{display:block}.sidebar{transform:translateX(-101%);transition:.22s ease}.menu-open .sidebar{transform:translateX(0)}.content{grid-column:auto}.menu-btn{display:block}.topbar{padding:0 18px}.main-section{padding:20px}.user-chip div:last-child{display:none}.book-grid{grid-template-columns:1fr}.responsive-head{align-items:stretch;flex-direction:column}.search-form{min-width:0}.hero{align-items:flex-start;flex-direction:column}.hero h2{font-size:23px}.hero:before{width:190px;height:190px}}
@media(max-width:560px){.login-card{padding:27px 22px;border-radius:22px}.login-card h2{font-size:27px}.login-options{align-items:flex-start;flex-direction:column}.stats{grid-template-columns:1fr 1fr;gap:10px}.stat{padding:15px}.stat strong{font-size:25px}.form-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.book-card{grid-template-columns:58px 1fr}.book-cover{height:80px}.topbar h1{font-size:16px}.hero{padding:23px}.main-section{padding:14px}.panel{padding:15px}.user-chip{padding:5px}.search-form{flex-direction:column}}
\n/* Cuenta y administrador general */
.profile-hero{display:flex;align-items:center;gap:18px;padding:6px 0 22px;border-bottom:1px solid #e7ebf0}.profile-hero img{width:92px;height:92px;object-fit:contain;background:#fff;border-radius:20px;padding:8px;box-shadow:0 12px 30px rgba(18,58,104,.12)}.profile-hero h2{margin:7px 0 4px;font-size:23px}.profile-hero p{margin:0;color:#718096}.profile-data{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}.profile-data div{background:#f7f9fc;border:1px solid #e6ebf2;border-radius:13px;padding:13px}.profile-data span,.profile-data strong{display:block}.profile-data span{font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:#8190a4}.profile-data strong{font-size:13px;margin-top:5px;word-break:break-word}@media(max-width:560px){.profile-data{grid-template-columns:1fr}.profile-hero img{width:76px;height:76px}.profile-hero h2{font-size:19px}}\n

/* ============================== ADMINISTRADOR GENERAL V4 ============================== */
.nav .nav-general{background:linear-gradient(90deg,rgba(70,200,242,.16),rgba(255,229,49,.08));border-color:rgba(70,200,242,.18);color:#fff}.nav .nav-general:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--hc-yellow);box-shadow:0 0 0 4px rgba(255,229,49,.09)}
.general-hero{min-height:250px;border-radius:26px;padding:34px 36px;background:linear-gradient(120deg,#05295f 0%,#0a3a82 55%,#0d5aa6 100%);color:#fff;display:flex;align-items:center;justify-content:space-between;position:relative;overflow:hidden;box-shadow:0 20px 50px rgba(8,45,107,.18);isolation:isolate}.general-hero:before{content:"";position:absolute;width:440px;height:440px;border:1px solid rgba(255,255,255,.08);border-radius:50%;right:-140px;top:-250px;box-shadow:0 0 0 70px rgba(255,255,255,.025),0 0 0 140px rgba(255,255,255,.018);z-index:-1}.general-hero:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:5px;background:linear-gradient(90deg,var(--hc-sky) 0 55%,var(--hc-red) 55% 78%,var(--hc-yellow) 78%)}.general-hero-copy{max-width:780px}.general-kicker{display:flex;align-items:center;gap:9px;font-size:11px;font-weight:850;text-transform:uppercase;letter-spacing:.11em;color:#bfefff}.pulse-dot{width:9px;height:9px;border-radius:50%;background:#67e2ff;box-shadow:0 0 0 5px rgba(103,226,255,.12)}.general-hero h2{font-size:34px;letter-spacing:-.035em;margin:15px 0 10px}.general-hero p{max-width:690px;color:#d9eaf7;line-height:1.65;margin:0;font-size:14px}.general-hero-logo{width:170px;height:170px;object-fit:contain;background:rgba(255,255,255,.95);padding:9px;border-radius:28px;box-shadow:0 24px 55px rgba(0,0,0,.22);margin-left:28px}.general-chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:22px}.general-chips span{font-size:10px;font-weight:800;color:#e7f6ff;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.08);border-radius:999px;padding:7px 10px;backdrop-filter:blur(8px)}
.general-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin:20px 0}.general-stats article{background:#fff;border:1px solid #e4eaf2;border-radius:18px;padding:17px;display:flex;gap:13px;align-items:center;box-shadow:var(--shadow-sm);min-width:0}.general-stats article.metric-alert{border-color:#f1d5d9;background:linear-gradient(145deg,#fff,#fffafa)}.general-stats span,.general-stats small,.general-stats strong{display:block}.general-stats span{font-size:10px;font-weight:850;color:#768399;text-transform:uppercase;letter-spacing:.05em}.general-stats strong{font-size:27px;color:var(--hc-navy);line-height:1.1;margin:4px 0}.general-stats small{font-size:9px;color:#99a4b3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.metric-icon{width:43px;height:43px;min-width:43px;border-radius:13px;display:grid;place-items:center;font-weight:950;font-size:17px}.metric-icon.blue{color:#0b438d;background:#e8f0fb}.metric-icon.cyan{color:#0a7391;background:#e1f8fd}.metric-icon.yellow{color:#806500;background:#fff6c6}.metric-icon.red{color:#bd2632;background:#fee9eb}
.admin-modules{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin-bottom:20px}.admin-modules a{background:#fff;border:1px solid #e3e9f1;border-radius:16px;padding:15px;display:flex;align-items:center;gap:12px;box-shadow:0 5px 17px rgba(8,45,107,.035);transition:.17s ease}.admin-modules a:hover{transform:translateY(-2px);border-color:#acddec;box-shadow:0 13px 30px rgba(8,45,107,.08)}.admin-modules .module-icon{width:42px;height:42px;min-width:42px;border-radius:12px;background:linear-gradient(145deg,#edf5fd,#e4f7fb);color:var(--hc-navy);display:grid;place-items:center;font-size:17px;font-weight:900}.admin-modules div{min-width:0}.admin-modules strong,.admin-modules small{display:block}.admin-modules strong{font-size:12px}.admin-modules small{font-size:9px;color:#8a96a8;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-modules b{margin-left:auto;color:#3b86b7}
.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.admin-grid-main{grid-template-columns:1.45fr .55fr}.status-pill{font-size:9px;font-weight:900;border-radius:999px;padding:6px 9px}.red-pill{background:#fee8ea;color:#b22530}.role-summary{display:grid;gap:15px}.role-summary div{position:relative;padding-bottom:9px}.role-summary span{font-size:10px;color:#6f7e92;font-weight:750}.role-summary strong{float:right;color:var(--hc-navy);font-size:12px}.role-summary i{position:absolute;left:0;bottom:0;width:100%;height:5px;background:#eef3f8;border-radius:5px;overflow:hidden}.role-summary i:after{content:"";display:block;width:var(--w);height:100%;background:linear-gradient(90deg,var(--hc-blue),var(--hc-sky));border-radius:5px}.role-list{margin-top:22px;border-top:1px solid #edf0f4;padding-top:10px}.role-list div{display:flex;justify-content:space-between;padding:7px 0;font-size:10px}.role-list span{color:#7c899b}.role-list b{color:#31435a}
.staff-cards{display:grid;gap:10px}.staff-card{display:grid;grid-template-columns:40px 1fr auto;gap:10px;align-items:center;border:1px solid #e7ebf1;border-radius:14px;padding:11px;background:#fff}.staff-avatar{width:40px;height:40px;border-radius:12px;background:linear-gradient(145deg,var(--hc-navy),var(--hc-blue-2));display:grid;place-items:center;color:#fff;font-size:13px;font-weight:900}.staff-main strong,.staff-main span{display:block}.staff-main strong{font-size:11px}.staff-main span{font-size:9px;color:#8995a6;margin-top:3px}.staff-actions{grid-column:1/-1;display:flex;gap:8px;align-items:center;flex-wrap:wrap;border-top:1px solid #f0f2f5;padding-top:9px}.staff-actions form{margin:0}.inline-role{display:flex;gap:5px;align-items:center}.inline-role select{margin:0;padding:7px 25px 7px 9px;font-size:9px;width:auto}.mini-action{border:1px solid #dbe4ed;background:#f6f9fc;color:#41566e;border-radius:8px;padding:7px 9px;font-size:9px;font-weight:850;cursor:pointer}.primary-mini{background:var(--hc-navy);border-color:var(--hc-navy);color:#fff}.staff-actions details{font-size:9px;color:#65758a}.staff-actions summary{cursor:pointer;font-weight:800}.reset-row{display:flex;gap:6px;margin-top:8px!important}.reset-row input{margin:0;padding:7px 9px;font-size:9px;max-width:190px}.admin-empty{border:1px dashed #d9e1ea;border-radius:12px}.audit-list{display:grid}.audit-item{display:grid;grid-template-columns:14px 1fr;gap:9px;padding:10px 0;border-bottom:1px solid #edf0f4}.audit-item:last-child{border-bottom:0}.audit-dot{width:8px;height:8px;background:var(--hc-sky);border:2px solid #fff;box-shadow:0 0 0 2px #cbeef8;border-radius:50%;margin-top:4px}.audit-item strong{font-size:10px}.audit-item p{font-size:9px;color:#758398;margin:3px 0;line-height:1.4}.audit-item small{font-size:8px;color:#a1aab7}.recent-users{display:grid}.recent-users>div{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:9px;padding:9px 0;border-bottom:1px solid #edf0f4}.small-avatar{width:34px;height:34px;border-radius:10px;font-size:11px}.recent-users p{margin:0}.recent-users strong,.recent-users small{display:block}.recent-users strong{font-size:10px}.recent-users small{font-size:8px;color:#8c98a8;margin-top:3px}
@media(max-width:1180px){.general-stats{grid-template-columns:repeat(2,1fr)}.admin-modules{grid-template-columns:repeat(2,1fr)}.admin-grid-main{grid-template-columns:1fr}.admin-grid{grid-template-columns:1fr}}
@media(max-width:820px){.general-hero{padding:26px;min-height:0}.general-hero-logo{width:110px;height:110px;border-radius:20px}.general-hero h2{font-size:26px}.general-stats{grid-template-columns:1fr 1fr}.admin-modules{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.general-hero{display:block}.general-hero-logo{position:absolute;right:-18px;top:16px;width:92px;height:92px;opacity:.25}.general-hero-copy{position:relative;z-index:2}.general-hero h2{font-size:22px;max-width:80%}.general-hero p{font-size:12px}.general-stats{grid-template-columns:1fr}.admin-modules{grid-template-columns:1fr}.general-chips{gap:5px}.staff-card{grid-template-columns:36px 1fr auto}.staff-actions{display:grid}.inline-role{display:grid;grid-template-columns:1fr auto}.inline-role select{width:100%}.reset-row{display:grid;grid-template-columns:1fr auto}.reset-row input{max-width:none}.admin-panel-wide{min-width:0}}

/* V5 · Acceso institucional por matrícula pagada */
.student-access-box .btn{margin-top:8px;background:#fff;border:1px solid #cfe1ec;color:var(--hc-navy)}
.activation-card{max-width:560px}.activation-card .demo-box{margin-top:24px}.access-search{max-width:620px;margin:0 0 18px}.access-banner{display:flex;align-items:center;justify-content:space-between;gap:20px;background:linear-gradient(135deg,#f8fcff,#edf8fc)}.access-banner h3{margin:7px 0 5px}.access-banner p{margin:0;color:var(--hc-muted);font-size:12px}.student-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}.student-meta span{font-size:10px;font-weight:800;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.09);border-radius:999px;padding:6px 9px}
@media(max-width:700px){.access-banner{align-items:flex-start;flex-direction:column}.access-banner .btn{width:100%}}

/* V7 · Gestión académica, libros digitales y analítica */
.metric-big{display:grid;place-items:center;min-height:150px;background:#f7f9fc;border:1px solid #e7edf4;border-radius:16px;margin:10px 0 16px}.metric-big strong{font-size:46px;color:var(--hc-navy);line-height:1}.metric-big span{font-size:11px;color:#7d8999;margin-top:-30px}.book-card .btn.small{display:inline-flex;margin-top:10px}.book-info .badge{display:inline-flex}.form-grid small{display:block;color:#8390a1;font-size:10px;margin-top:5px}.check{display:flex!important;align-items:flex-start;gap:9px}.check input{width:auto!important;margin-top:2px}.table-wrap .inline-role{margin-top:6px}.table-wrap .inline-role select{min-width:90px}.nav a span{min-width:0}.danger-stat strong{color:#b22530}

/* V8 · Previsualizador PDF integrado */
.pdf-viewer-panel{padding:0;overflow:hidden}.pdf-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 18px;border-bottom:1px solid var(--hc-line);background:#fff}.pdf-toolbar-main{display:flex;align-items:center;gap:15px;min-width:0}.pdf-book-heading{min-width:0}.pdf-book-heading h3{margin:2px 0 3px;font-size:16px;color:var(--hc-navy);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:760px}.pdf-book-heading p{margin:0;font-size:10px;color:var(--hc-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:760px}.pdf-toolbar-actions{display:flex;gap:8px;flex-wrap:wrap}.pdf-notice{padding:9px 18px;background:#f6fbfe;color:#53667c;font-size:10px;border-bottom:1px solid #e3edf3}.pdf-frame-wrap{background:#40454d;min-height:680px}.pdf-frame{display:block;width:100%;height:calc(100vh - 235px);min-height:680px;border:0;background:#52565d}.external-resource-box{padding:48px 24px;text-align:center}.external-resource-box h3{color:var(--hc-navy);margin:0 0 8px}.external-resource-box p{max-width:620px;margin:0 auto 20px;color:var(--hc-muted);line-height:1.6}.external-resource-box .btn{display:inline-flex}
@media(max-width:820px){.pdf-toolbar{align-items:flex-start;flex-direction:column}.pdf-toolbar-main{width:100%;align-items:flex-start}.pdf-book-heading h3,.pdf-book-heading p{max-width:calc(100vw - 150px)}.pdf-toolbar-actions{width:100%}.pdf-toolbar-actions .btn{width:100%;justify-content:center}.pdf-frame,.pdf-frame-wrap{min-height:560px}.pdf-frame{height:70vh}}
