:root{--primary:#233876;--primary2:#4965b5;--ink:#172033;--muted:#6f788a;--bg:#f4f6fb;--line:#e5e9f2;--shadow:0 18px 50px rgba(33,49,91,.12)}*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;background:var(--bg);color:var(--ink)}a{text-decoration:none;color:inherit}button,input{font:inherit}.topbar{height:78px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,5vw);position:sticky;top:0;z-index:10}.brand{display:flex;gap:12px;align-items:center;font-weight:800}.brand small{display:block;color:var(--muted);font-weight:500}.brand-mark{width:44px;height:44px;border-radius:14px;background:linear-gradient(135deg,var(--primary),var(--primary2));display:grid;place-items:center;color:#fff;font-weight:900}.topbar nav{display:flex;gap:20px;align-items:center}.user-pill{background:#eef1fb;padding:9px 14px;border-radius:999px}.logout{color:#a33342}.shell{max-width:1240px;margin:auto;padding:28px 24px 60px}.alert{padding:14px 16px;border-radius:14px;margin-bottom:18px;background:#eef3ff}.danger{background:#ffe9ec!important;color:#922d3b}.success{background:#e7f8ef!important;color:#19633d}.warning{background:#fff4d8!important;color:#765400}.login-wrap{min-height:100vh;display:grid;grid-template-columns:1.2fr .8fr;background:#fff}.login-visual{padding:8vw;background:radial-gradient(circle at 75% 20%,rgba(255,255,255,.18),transparent 24%),linear-gradient(145deg,#152557,#4965b5);color:#fff;display:flex;flex-direction:column;justify-content:space-between}.login-visual h1{font-size:clamp(42px,5vw,72px);line-height:1.03;max-width:760px;margin:15px 0}.login-visual p{font-size:20px;opacity:.85}.feature-grid{display:flex;flex-wrap:wrap;gap:10px}.feature-grid span{border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.08);padding:10px 15px;border-radius:999px}.login-card{padding:8vw 7vw;display:flex;flex-direction:column;justify-content:center}.login-card h2{font-size:38px;margin:30px 0 5px}.login-card>p,.login-card>small{color:var(--muted)}.mobile-logo{display:flex;align-items:center;gap:12px}.login-card form,.center-card form{display:grid;gap:18px;margin:28px 0}.login-card label,.center-card label{font-weight:700;display:grid;gap:8px}.login-card input,.center-card input{width:100%;border:1px solid var(--line);border-radius:14px;padding:14px 15px;outline:none}.password-row{display:flex}.password-row input{border-radius:14px 0 0 14px}.password-row button{border:1px solid var(--line);border-left:0;border-radius:0 14px 14px 0;background:#f7f8fb;padding:0 16px}.btn{border:0;border-radius:13px;padding:12px 18px;font-weight:800;cursor:pointer}.btn.primary{background:var(--primary);color:#fff}.btn.full{width:100%}.btn.install{margin-top:14px;background:#eef1fb;color:var(--primary)}.hero{background:linear-gradient(135deg,#1b2d68,#506bbc);color:#fff;border-radius:28px;padding:34px;display:flex;justify-content:space-between;align-items:center;box-shadow:var(--shadow)}.hero h1{font-size:40px;margin:8px 0}.hero p{opacity:.85}.eyebrow{text-transform:uppercase;letter-spacing:.13em;font-size:12px;font-weight:900;opacity:.72}.hero-date{font-size:26px}.role-line{margin:18px 3px;color:var(--muted)}.role-line span{display:inline-block;background:#fff;border:1px solid var(--line);padding:5px 9px;border-radius:999px;margin-left:6px;font-size:12px;font-weight:800}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:22px 0}.stats article,.modules a,.timeline-card,.center-card,.notification-list,.page-head{background:#fff;border:1px solid var(--line);border-radius:20px}.stats article{padding:22px}.stats b{font-size:30px;display:block}.stats span,.modules span{color:var(--muted)}.modules{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.modules a{padding:24px;min-height:120px;transition:.2s}.modules a:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.modules strong,.modules span{display:block}.modules strong{font-size:18px;margin-bottom:8px}.timeline-card{margin-top:22px;padding:26px;display:flex;justify-content:space-between;align-items:center}.center-card{max-width:560px;margin:8vh auto;padding:36px}.expiry{padding:12px;background:#eef1fb;border-radius:12px;margin-top:18px}.expired{background:#ffe9ec;color:#922d3b}.page-head{padding:28px;display:flex;justify-content:space-between;align-items:center}.notification-list{margin-top:18px;padding:10px}.notification-list article{display:flex;gap:14px;padding:18px;border-bottom:1px solid var(--line)}.notif-dot{width:10px;height:10px;border-radius:50%;background:var(--primary2);margin-top:7px}.empty{text-align:center;padding:70px 20px}.empty b,.empty span{display:block}.empty b{font-size:24px}.empty span{color:var(--muted);margin-top:8px}@media(max-width:900px){.login-wrap{grid-template-columns:1fr}.login-visual{display:none}.login-card{min-height:100vh;padding:28px}.stats{grid-template-columns:repeat(2,1fr)}.modules{grid-template-columns:repeat(2,1fr)}.topbar nav>a:first-child,.user-pill{display:none}}@media(max-width:560px){.shell{padding:18px 14px 45px}.hero{padding:24px;display:block}.hero-date{display:none}.hero h1{font-size:31px}.stats,.modules{grid-template-columns:1fr}.timeline-card,.page-head{display:block}.page-head .btn{margin-top:15px}.topbar{padding:0 14px}.brand small{display:none}}.toolbar{display:flex;gap:10px;margin:18px 0}.toolbar input{flex:1;border:1px solid var(--line);border-radius:14px;padding:13px 15px;background:#fff}.table-card,.form-card{background:#fff;border:1px solid var(--line);border-radius:20px;margin-top:18px;overflow:hidden}.table-card{overflow:auto}.table-card table{width:100%;border-collapse:collapse;min-width:760px}.table-card th,.table-card td{padding:16px 18px;border-bottom:1px solid var(--line);text-align:left}.table-card th{background:#f8f9fc;font-size:12px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}.table-card tr:hover td{background:#fbfcff}.badge{display:inline-block;padding:5px 10px;border-radius:999px;background:#eef1fb;color:var(--primary);font-size:12px;font-weight:800}.empty-cell{text-align:center!important;color:var(--muted);padding:40px!important}.form-card{padding:26px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-bottom:24px}.form-grid label{display:grid;gap:8px;font-weight:750}.form-grid input,.form-grid select,.form-grid textarea{width:100%;border:1px solid var(--line);border-radius:13px;padding:13px 14px;background:#fff}.form-grid textarea{min-height:100px;resize:vertical}.form-grid small{color:var(--muted);font-weight:500}.span2{grid-column:span 2}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:25px}.steps span{background:#f3f5fa;border:1px solid var(--line);padding:11px;border-radius:12px;text-align:center;font-size:12px;font-weight:800;color:var(--muted)}.steps .active{background:#e9edfb;color:var(--primary);border-color:#cfd7f4}@media(max-width:900px){.topbar nav a:not(.logout){display:none}.form-grid{grid-template-columns:1fr}.span2{grid-column:auto}.steps{grid-template-columns:1fr 1fr}}@media(max-width:560px){.toolbar{display:grid}.form-card{padding:18px}.steps{grid-template-columns:1fr}}


/* ===== CAMPUS SANTA ROSA · PWA PREMIUM v1.6.0 ===== */
:root{
  --sr-blue:#102a8a;
  --sr-blue-2:#183ec7;
  --sr-green:#6ed400;
  --sr-green-2:#98ef16;
}
.login-premium{background:#eef2fb}
.login-premium .login-visual{
  position:relative;
  min-height:100vh;
  padding:54px clamp(38px,6vw,92px);
  background:
    linear-gradient(180deg,rgba(10,31,112,.22),rgba(8,25,90,.88)),
    url('../img/fachada-campus.webp') center/cover no-repeat;
  isolation:isolate;
}
.login-visual-overlay{
  position:absolute;inset:0;z-index:-1;
  background:
    radial-gradient(circle at 75% 18%,rgba(152,239,22,.22),transparent 24%),
    linear-gradient(120deg,rgba(7,28,112,.88),rgba(17,51,164,.35) 58%,rgba(5,24,87,.82));
}
.login-institution{display:flex;align-items:center;gap:15px}
.login-institution img{
  width:74px;height:74px;object-fit:cover;border-radius:22px;
  box-shadow:0 14px 35px rgba(0,0,0,.22);border:2px solid rgba(255,255,255,.55)
}
.login-institution strong{font-size:20px;display:block}.login-institution .eyebrow{opacity:.78}
.login-message{max-width:720px;margin:auto 0}
.login-message h1{font-size:clamp(48px,5.4vw,82px);letter-spacing:-.05em;margin:13px 0 18px}
.login-message p{max-width:650px;font-size:19px;line-height:1.65}
.login-location{display:flex;flex-direction:column;gap:4px}.login-location small{opacity:.72}
.login-panel{display:grid;place-items:center;padding:38px;background:linear-gradient(145deg,#f8faff,#eef3fb)}
.login-premium .login-card{
  width:min(100%,540px);padding:42px;border-radius:30px;background:rgba(255,255,255,.96);
  box-shadow:0 28px 80px rgba(16,42,138,.18);border:1px solid rgba(16,42,138,.08)
}
.login-premium .mobile-logo{margin-bottom:38px}
.login-premium .mobile-logo img{width:64px;height:64px;object-fit:cover;border-radius:19px;box-shadow:0 10px 24px rgba(16,42,138,.16)}
.login-premium .mobile-logo strong,.login-premium .mobile-logo small{display:block}
.login-premium .mobile-logo strong{font-size:18px}.login-premium .mobile-logo small{color:var(--muted);margin-top:3px}
.login-kicker{color:var(--sr-blue-2);font-weight:900;text-transform:uppercase;letter-spacing:.14em;font-size:11px}
.login-premium .login-card h2{font-size:36px;letter-spacing:-.03em;margin:8px 0 8px}
.input-icon{position:relative;display:flex!important;align-items:center}
.input-icon>span{position:absolute;left:15px;z-index:2;opacity:.65}
.login-premium .input-icon input{padding-left:46px;height:54px;background:#f9fbff;border-color:#dfe6f3}
.login-premium .input-icon input:focus{border-color:var(--sr-blue-2);box-shadow:0 0 0 4px rgba(24,62,199,.10)}
.login-submit{min-height:54px;background:linear-gradient(135deg,var(--sr-blue),var(--sr-blue-2))!important;box-shadow:0 12px 25px rgba(16,42,138,.24)}
.install-card{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  margin-top:18px;padding:16px;border-radius:18px;background:#f1f6ff;border:1px solid #dfe8fb
}
.install-card strong,.install-card small{display:block}.install-card small{margin-top:4px;color:var(--muted)}
.btn.install{background:linear-gradient(135deg,var(--sr-green),var(--sr-green-2));color:#173a00;white-space:nowrap}
.ios-install-help{margin-top:12px;padding:13px;border-radius:14px;background:#fff8df;color:#6e5200;font-size:13px}
.login-legal{display:block;text-align:center;margin-top:22px}
.campus-brand-logo{overflow:hidden;background:#fff!important;padding:3px}
.campus-brand-logo img{width:100%;height:100%;object-fit:cover;border-radius:11px}
.pwa-update-banner{
  position:fixed;left:50%;bottom:22px;transform:translateX(-50%);z-index:9999;
  display:flex;align-items:center;gap:14px;max-width:calc(100% - 28px);
  padding:13px 14px 13px 18px;border-radius:16px;background:#12245e;color:#fff;
  box-shadow:0 18px 50px rgba(0,0,0,.28)
}
.pwa-update-banner button{border:0;border-radius:10px;padding:9px 12px;background:var(--sr-green);font-weight:900;cursor:pointer}
.offline-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(145deg,#102a8a,#183ec7)}
.offline-card{width:min(100%,480px);text-align:center;padding:42px;border-radius:28px;background:#fff;box-shadow:0 28px 80px rgba(0,0,0,.25)}
.offline-card img{width:100px;height:100px;object-fit:cover;border-radius:26px}.offline-card h1{font-size:34px;margin:15px 0 10px}.offline-card p{line-height:1.65;color:var(--muted)}
@media(max-width:900px){
  .login-premium{display:block;background:linear-gradient(180deg,#102a8a 0 33%,#eef2fb 33%)}
  .login-premium .login-visual{
    display:flex;min-height:340px;padding:28px 24px 100px;
    background:linear-gradient(180deg,rgba(12,39,139,.30),rgba(7,28,100,.82)),url('../img/fachada-campus.webp') center/cover
  }
  .login-message h1{font-size:38px}.login-message p,.feature-grid,.login-location{display:none}
  .login-institution img{width:58px;height:58px}.login-panel{padding:0 16px 28px;margin-top:-72px;background:transparent;position:relative;z-index:2}
  .login-premium .login-card{padding:28px 22px;border-radius:27px}
  .login-premium .mobile-logo{display:none}
}
@media(max-width:560px){
  .login-premium .login-visual{min-height:300px}
  .login-premium .login-card h2{font-size:30px}
  .install-card{align-items:flex-start;flex-direction:column}
  .install-card .btn{width:100%}
}
