
:root{
  --navy:#082b66;
  --blue:#0f4ea8;
  --gold:#e6ad18;
  --bg:#f3f6fa;
  --text:#10213a;
  --muted:#68778d;
  --line:#dde5ef;
  --white:#fff;
  --green:#138a58;
  --shadow:0 12px 34px rgba(15,37,70,.08);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text)}
a{text-decoration:none;color:inherit}
.topbar{height:82px;background:#082b66;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 max(28px,calc((100vw - 1240px)/2));box-shadow:0 5px 20px rgba(4,25,60,.18);position:sticky;top:0;z-index:20}
.brand-wrap{display:flex;align-items:center;gap:14px}
.brand-wrap img{width:148px;height:54px;object-fit:contain;background:#fff;border-radius:9px;padding:4px 8px}
.brand-wrap strong,.brand-wrap span,.user-pill b,.user-pill small{display:block}
.brand-wrap strong{font-size:15px}.brand-wrap span{font-size:10px;color:#cbd7ea;margin-top:2px}
.top-actions{display:flex;align-items:center;gap:14px}
.user-pill{display:flex;align-items:center;gap:9px}
.user-pill b{font-size:11px}.user-pill small{font-size:9px;color:#cbd7ea}
.avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--navy);font-weight:900}
.btn{display:inline-flex;align-items:center;justify-content:center;padding:11px 16px;border-radius:10px;border:1px solid transparent;font-weight:800;font-size:12px;cursor:pointer}
.btn.primary{background:var(--navy);color:#fff}.btn.ghost{border-color:rgba(255,255,255,.3);color:#fff}.btn.full{width:100%}
.container{max-width:1240px;margin:0 auto;padding:34px 28px 50px}
.hero{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px}
.hero h1{font-size:32px;line-height:1.05;margin:6px 0 8px;color:var(--navy)}.hero p{margin:0;color:var(--muted)}
.eyebrow{font-size:10px;font-weight:900;letter-spacing:1.5px;color:var(--gold)}
.date-card{min-width:150px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 18px;box-shadow:var(--shadow);text-align:right}
.date-card span,.date-card strong{display:block}.date-card span{font-size:10px;color:var(--muted);text-transform:uppercase;font-weight:800}.date-card strong{font-size:17px;color:var(--navy);margin-top:3px}
.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:32px}
.summary-card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:17px 18px;box-shadow:var(--shadow);border-top:3px solid var(--navy)}
.summary-card span,.summary-card strong,.summary-card small{display:block}.summary-card span{font-size:10px;color:var(--muted);font-weight:800}.summary-card strong{font-size:24px;color:var(--navy);margin:7px 0 3px}.summary-card small{font-size:9px;color:#8b98aa}
.section-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:14px}.section-head h2{margin:0 0 4px;font-size:21px;color:var(--navy)}.section-head p{margin:0;color:var(--muted);font-size:12px}
.module-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.module-card{background:#fff;border:1px solid var(--line);border-radius:17px;padding:18px;box-shadow:var(--shadow);min-height:220px;display:flex;flex-direction:column;position:relative;overflow:hidden}
.module-card:before{content:"";position:absolute;left:0;top:0;width:100%;height:4px;background:var(--navy)}
.module-card.academic:before{background:#2e6bd3}.module-card.crm:before{background:#8b5cf6}.module-card.quotes:before{background:#ef9f18}.module-card.wpq:before{background:#e35a45}.module-card.cash:before{background:#15935e}.module-card.inventory:before{background:#68778d}.module-card.equipment:before{background:#374b69}.module-card.attendance:before{background:#0a73bd}
.module-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.module-icon{width:42px;height:42px;border-radius:12px;background:#f2f6fb;display:grid;place-items:center;font-size:21px}
.status{font-size:9px;font-weight:900;padding:5px 8px;border-radius:999px}.status.active{background:#e9f8f0;color:#117649}.status.soon{background:#f2f4f7;color:#788599}
.module-card h3{font-size:16px;color:var(--navy);margin:16px 0 7px}.module-card p{font-size:11px;line-height:1.55;color:var(--muted);margin:0 0 18px}
.module-link{margin-top:auto;font-size:11px;font-weight:900;color:var(--blue);display:flex;align-items:center;justify-content:space-between}.module-link.disabled{color:#9aa5b4;font-weight:700}
.roadmap{margin-top:30px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:22px}
.roadmap-head{display:flex;justify-content:space-between;align-items:center}.roadmap-head h2{margin:5px 0 0;color:var(--navy);font-size:20px}.roadmap-head>span{background:var(--navy);color:#fff;padding:7px 10px;border-radius:9px;font-size:10px;font-weight:900}
.roadmap-list{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px}.roadmap-item{border:1px solid var(--line);border-radius:12px;padding:13px;display:flex;align-items:center;gap:10px;position:relative}.roadmap-item.current{background:#f5f9ff;border-color:#aec9ed}
.roadmap-item>b{width:30px;height:30px;border-radius:9px;background:#edf2f8;display:grid;place-items:center;color:var(--navy);font-size:10px}.roadmap-item strong,.roadmap-item span{display:block}.roadmap-item strong{font-size:11px;color:var(--navy)}.roadmap-item span{font-size:9px;color:var(--muted);margin-top:2px}.roadmap-item em{position:absolute;right:10px;top:10px;font-size:8px;font-style:normal;background:#eaf8f0;color:#138a58;padding:4px 6px;border-radius:999px;font-weight:900}
footer{text-align:center;padding:20px;color:#7d899a;font-size:10px}
.auth-body{min-height:100vh;background:linear-gradient(145deg,#062558,#0b3a85);display:grid;place-items:center;padding:24px}
.auth-shell{width:100%;max-width:430px}.auth-card{background:#fff;border-radius:20px;padding:30px;box-shadow:0 25px 70px rgba(0,0,0,.22)}.auth-logo{display:block;width:180px;max-height:75px;object-fit:contain;margin-bottom:20px}.auth-card h1{margin:6px 0 8px;color:var(--navy);font-size:26px}.muted{color:var(--muted);font-size:12px}.auth-form{display:grid;gap:14px;margin-top:22px}.auth-form label{font-size:10px;font-weight:900;color:#41516a}.auth-form input{width:100%;margin-top:6px;border:1px solid #ccd7e5;border-radius:10px;padding:12px;font:inherit;outline:none}.auth-form input:focus{border-color:#6a9ddc;box-shadow:0 0 0 3px rgba(20,89,170,.1)}.auth-note{font-size:9px;text-align:center;color:#8895a7;margin:16px 0 0}
.alert{padding:11px 13px;border-radius:10px;margin:14px 0;font-size:11px}.alert.error{background:#fff0ef;color:#9f2f29;border:1px solid #f2c4c0}
@media(max-width:1050px){.module-grid{grid-template-columns:repeat(2,1fr)}.summary-grid{grid-template-columns:repeat(2,1fr)}.roadmap-list{grid-template-columns:repeat(2,1fr)}}
@media(max-width:680px){.topbar{height:auto;padding:12px 16px}.brand-wrap img{width:120px;height:46px}.brand-wrap>div,.user-pill>div{display:none}.container{padding:24px 15px 40px}.hero{align-items:flex-start;flex-direction:column}.date-card{text-align:left}.summary-grid{grid-template-columns:1fr 1fr;gap:9px}.summary-card{padding:14px}.module-grid{grid-template-columns:1fr}.roadmap-list{grid-template-columns:1fr}.user-pill{display:none}}

/* V2 - Ecosistema CETISOLD */
.module-card.verify:before{background:#15a06a}
.systems-status{margin-top:30px}
.systems-row{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.systems-row>a{background:#fff;border:1px solid var(--line);border-radius:13px;padding:14px 15px;display:flex;align-items:center;gap:11px;box-shadow:var(--shadow)}
.systems-row>a:hover{border-color:#a8bfdc;transform:translateY(-1px)}
.systems-row .live-dot{width:9px;height:9px;border-radius:50%;background:#16a264;box-shadow:0 0 0 4px #e8f8ef;flex:0 0 auto}
.systems-row div{min-width:0;flex:1}.systems-row b,.systems-row small{display:block}.systems-row b{font-size:11px;color:var(--navy)}.systems-row small{font-size:9px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.systems-row em{font-size:9px;font-style:normal;font-weight:900;color:var(--blue)}
@media(max-width:680px){.systems-row{grid-template-columns:1fr}}
