:root{
  --navy:#07295F;--navy2:#041D42;--blue:#0056B8;--green:#178443;--green2:#0B6B38;--gold:#D59A22;--gold2:#F2B233;
  --bg:#F4F7FB;--card:#FFFFFF;--text:#14213D;--muted:#6B778C;--line:#DCE4EE;--danger:#C93A3A;--warn:#B96C13;
  --shadow:0 14px 35px rgba(7,41,95,.08);--shadow2:0 22px 55px rgba(7,41,95,.13);--radius:18px
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:var(--text);background:var(--bg)}
button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}a{color:var(--blue)}
#toast>div{box-shadow:0 12px 30px rgba(0,0,0,.16)}.muted{color:var(--muted)}.eyebrow{text-transform:uppercase;letter-spacing:.13em;font-size:11px;font-weight:850;color:var(--green)}
.loading{position:fixed;inset:0;background:linear-gradient(135deg,#fff,#eef8f1);display:flex;flex-direction:column;gap:9px;align-items:center;justify-content:center;z-index:500;color:var(--navy)}
.loading-mark{width:82px;height:82px;border:4px solid var(--green);border-radius:50%;display:grid;place-items:center;font-size:48px;color:var(--green);background:#fff;box-shadow:var(--shadow)}
.loading span{font-size:12px;color:var(--muted)}

.btn{border:0;border-radius:11px;padding:10px 15px;font-weight:780;transition:.18s ease}.btn:hover{transform:translateY(-1px)}.btn.primary{background:var(--navy);color:#fff}.btn.primary:hover{background:#0A377D}.btn.soft{background:#EAF5EE;color:var(--green2)}.btn.ghost{background:#fff;border:1px solid var(--line);color:var(--text)}.btn.gold{background:var(--gold);color:#fff}.btn.danger{background:#FFF0F0;border:1px solid #F3C0C0;color:var(--danger)}.btn.full{width:100%}.btn.large{padding:13px 18px}.btn.small{padding:7px 10px;font-size:11px}
#view[data-module="students"] .btn{padding:6px 9px;font-size:11px;line-height:1.3;min-height:28px;border-radius:7px;transition:background-color .18s ease,border-color .18s ease}
#view[data-module="students"] .btn.small{padding:4px 7px;font-size:10.5px;min-height:24px}
#view[data-module="students"] .btn:hover{transform:none}
#view[data-module="students"] .toolbar{gap:6px;flex-wrap:wrap}
#view[data-module="students"] .caip-student-access-actions{display:flex;gap:4px;flex-wrap:wrap;margin-top:4px}
#view[data-module="students"] #student-body td:last-child{min-width:150px}
.link{border:0;background:transparent;color:var(--blue);font-weight:800;padding:5px;cursor:pointer}

.public-shell{min-height:100vh;background:#fff}.pub-head{height:84px;padding:0 5vw;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:rgba(255,255,255,.96);backdrop-filter:blur(12px);position:sticky;top:0;z-index:20}.public-brand{display:flex;align-items:center;gap:12px}.public-brand strong,.public-brand small,.public-brand span{display:block}.public-brand strong{font-size:21px;color:var(--navy)}.public-brand small{color:var(--muted);font-size:11px}.brand-kicker{font-size:9px;text-transform:uppercase;letter-spacing:.12em;color:var(--green);font-weight:900}
.brand-seal{width:54px;height:54px;border:3px solid var(--green);border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--green);font-size:31px;font-weight:900;box-shadow:0 7px 20px rgba(23,132,67,.12)}.public-actions{display:flex;gap:9px}
.hero{min-height:590px;padding:72px 7vw 92px;display:grid;grid-template-columns:1.25fr .62fr;gap:48px;align-items:center;background:radial-gradient(circle at 80% 30%,rgba(242,178,51,.12),transparent 25%),linear-gradient(125deg,#fff 0%,#EDF8F1 52%,#EAF2FF 100%);position:relative;overflow:hidden}
.hero:after{content:"";position:absolute;width:520px;height:520px;border:1px solid rgba(23,132,67,.13);border-radius:50%;right:-180px;bottom:-240px}.hero-copy{position:relative;z-index:2}.hero h1{font-size:clamp(42px,5.4vw,72px);line-height:1.02;margin:11px 0 21px;max-width:980px;color:var(--navy);letter-spacing:-.035em}.hero p{font-size:18px;line-height:1.65;color:#4B5870;max-width:790px}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:25px}
.hero-emblem{position:relative;justify-self:center;width:330px;height:330px}.emblem-ring{position:absolute;inset:20px;border:7px double var(--green);border-radius:50%;background:#fff;display:grid;place-items:center;align-content:center;box-shadow:var(--shadow2)}.emblem-ring span{font-size:142px;line-height:.9;color:var(--green);font-weight:750}.emblem-ring small{font-size:15px;letter-spacing:.34em;font-weight:900;color:var(--navy);padding-left:.34em}.leaf{position:absolute;width:58px;height:28px;border-radius:70% 0 70% 0;background:linear-gradient(135deg,var(--green),#4dbf6d);transform:rotate(-35deg);right:-2px}.leaf:after{content:"";position:absolute;left:4px;right:5px;top:50%;height:2px;background:rgba(255,255,255,.7);transform:rotate(-8deg)}.leaf1{top:76px}.leaf2{top:141px;right:-19px;transform:rotate(-17deg)}.leaf3{top:205px;right:11px;transform:rotate(8deg)}
.public-grid{padding:0 7vw 50px;display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:-46px;position:relative;z-index:3}.public-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:23px;box-shadow:var(--shadow)}.public-card .card-num{font-size:11px;color:var(--gold);font-weight:900}.public-card h3{margin:10px 0 7px;color:var(--navy)}.public-card p{margin:0;color:var(--muted);line-height:1.6;font-size:13px}
.home-public-section{padding:56px 7vw;background:var(--bg)}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:18px}.section-heading h2{margin:5px 0 0;color:var(--navy)}.cards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.home-card,.skeleton-card{background:#fff;border:1px solid var(--line);border-radius:16px;min-height:132px;padding:17px}.skeleton-card{background:linear-gradient(100deg,#eef2f5 20%,#f7f9fb 40%,#eef2f5 60%);background-size:200% 100%;animation:shine 1.2s infinite}.home-card small{color:var(--green);font-weight:850}.home-card h4{margin:8px 0 6px}.home-card p{margin:0;color:var(--muted);font-size:13px;line-height:1.55}@keyframes shine{to{background-position:-200% 0}}
.requirements-public{padding:62px 7vw;background:#fff;display:grid;grid-template-columns:.8fr 1.2fr;gap:45px;align-items:start}.requirements-public h2{font-size:32px;margin:8px 0;color:var(--navy)}.requirements-public p{color:var(--muted);line-height:1.6}.requirements-list{display:grid;gap:10px}.requirements-list>div{display:grid;grid-template-columns:35px 1fr;gap:10px;align-items:start;border:1px solid var(--line);padding:13px;border-radius:13px}.requirements-list b{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#EAF8EF;color:var(--green)}.requirements-list strong,.requirements-list small{display:block}.requirements-list small{color:var(--muted);margin-top:3px}
.public-footer{padding:25px 7vw;background:var(--navy2);color:#fff;display:flex;align-items:center;justify-content:space-between}.public-footer strong,.public-footer span{display:block}.public-footer span,.public-footer small{color:#B9C9DF;font-size:11px}

.modal{position:fixed;inset:0;background:rgba(4,20,45,.64);display:grid;place-items:center;padding:20px;z-index:300}.modal-card{width:min(570px,96vw);max-height:92vh;overflow:auto;background:#fff;border-radius:20px;padding:25px;position:relative;box-shadow:0 30px 80px rgba(3,20,44,.28)}.modal-card.wide{width:min(1040px,97vw)}.auth-card{border-top:5px solid var(--green)}.x{position:absolute;right:12px;top:10px;border:0;background:#EEF2F6;width:36px;height:36px;border-radius:50%;font-size:22px}.auth-brand{display:flex;align-items:center;gap:10px;margin-bottom:16px}.auth-brand strong,.auth-brand span{display:block}.auth-brand span{font-size:11px;color:var(--muted)}.tabs{display:flex;gap:7px;margin-bottom:18px}.tabs button{flex:1;padding:9px;border:1px solid var(--line);border-radius:10px;background:#fff;font-weight:800}.tabs button.active{background:var(--navy);color:#fff}.pane{display:none}.pane.active{display:block}
form{display:grid;gap:12px}label{display:grid;gap:6px;font-size:12px;font-weight:780}input,select,textarea,.field{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--text)}textarea{min-height:96px;resize:vertical}input:focus,select:focus,textarea:focus{outline:3px solid rgba(0,86,184,.10);border-color:#90AED3}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.check{grid-template-columns:20px 1fr;align-items:start}.check input{width:auto;margin-top:3px}

.app{min-height:100vh;display:grid;grid-template-columns:286px 1fr}.app aside{height:100vh;position:sticky;top:0;background:linear-gradient(180deg,#062552 0%,#071F44 100%);padding:22px 16px;color:#fff;display:flex;flex-direction:column;z-index:50}.brand{display:flex;gap:12px;align-items:center;padding:0 7px 21px;border-bottom:1px solid rgba(255,255,255,.14)}.brand .psi{width:58px;height:58px;border-radius:50%;background:#fff;color:var(--green);border:3px solid #B9E4C7;display:grid;place-items:center;font-size:35px;font-weight:900}.brand small,.brand strong,.brand span{display:block}.brand small{color:#9FB5D9;font-size:9px;text-transform:uppercase;letter-spacing:.11em}.brand strong{font-size:20px}.brand span{font-size:10px;color:#9FB5D9;margin-top:2px}
.app nav{display:grid;gap:4px;padding:17px 0;overflow:auto}.nav-section{font-size:9px;letter-spacing:.11em;text-transform:uppercase;color:#7F9AC2;font-weight:900;padding:12px 12px 4px}.nav-btn{border:0;background:transparent;color:#DBE7FB;text-align:left;padding:11px 12px;border-radius:11px;font-weight:680;display:flex;align-items:center;gap:10px}.nav-btn:hover,.nav-btn.active{background:rgba(255,255,255,.10);color:#fff}.nav-btn.active{box-shadow:inset 3px 0 0 #56C477}.nav-icon{width:23px;text-align:center;opacity:.95}.nav-text{white-space:nowrap}.sidebar-foot{margin-top:auto;border-top:1px solid rgba(255,255,255,.14);padding-top:15px}.uip-wordmark{display:flex;align-items:center;gap:9px;background:#fff;border-radius:9px;color:#111;padding:7px 9px;margin-bottom:10px}.uip-wordmark b{color:#0876C9;font-size:30px;line-height:1}.uip-wordmark span{font-size:8px;line-height:1.15;font-weight:800}.logout{width:100%;background:rgba(255,255,255,.08);color:#fff}
.main{min-width:0}.top{height:92px;background:#fff;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 34px;position:sticky;top:0;z-index:40}.top h1{margin:2px 0 1px;font-size:22px;color:var(--navy)}.top p{margin:0;color:var(--muted);font-size:12px}.top-kicker{font-size:9px;text-transform:uppercase;letter-spacing:.12em;color:var(--green);font-weight:850}.who{display:flex;gap:11px;align-items:center;text-align:right}.who b,.who span{display:block}.who span{font-size:10px;color:var(--muted)}.avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--navy),var(--blue));color:#fff;display:grid;place-items:center;font-weight:900}
#view{padding:25px 34px 60px}.banner{margin:16px 34px 0;padding:12px 15px;border-radius:12px;background:#FFF4D8;color:#754B00;border:1px solid #F2D27C;font-size:12px}
.page-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-end;margin-bottom:18px}.page-head h2,.page-head h3{margin:4px 0;color:var(--navy)}.page-head h2{font-size:29px}.page-head p{margin:3px 0;color:var(--muted);font-size:12px}.page-actions,.action-row{display:flex;gap:7px;flex-wrap:wrap}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:17px}.stat{background:#fff;border:1px solid var(--line);border-radius:16px;padding:17px;box-shadow:var(--shadow);position:relative;overflow:hidden}.stat:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--green)}.stat.gold:before{background:var(--gold)}.stat.blue:before{background:var(--blue)}.stat small{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.08em;font-weight:800}.stat strong{display:block;font-size:28px;margin-top:5px;color:var(--navy)}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.grid.three{grid-template-columns:repeat(3,1fr)}.panel,.doc-card,.module-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}.panel h3,.module-card h3{margin:0 0 12px;color:var(--navy)}.panel-title{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px}.panel-title h3{margin:0}.module-card{transition:.18s ease}.module-card:hover{transform:translateY(-2px);box-shadow:var(--shadow2)}.module-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:#EAF5EE;color:var(--green);font-size:20px;margin-bottom:13px}.module-card p{color:var(--muted);font-size:12px;line-height:1.55}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:var(--shadow)}table{width:100%;border-collapse:collapse;min-width:820px}th,td{padding:11px 12px;border-bottom:1px solid var(--line);text-align:left;font-size:12px;vertical-align:top}th{background:#F8FAFC;color:#59677A;font-size:9px;text-transform:uppercase;letter-spacing:.08em}tbody tr:hover{background:#FAFCFE}
.pill{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:9px;font-weight:900;background:#EEF2F6;color:#526071;text-transform:capitalize}.pill.ok,.pill.validated,.pill.bajo,.pill.activo{background:#E7F7ED;color:#116C38}.pill.pending,.pill.pendiente,.pill.medio,.pill.solicitada{background:#FFF2D8;color:#8B5D0E}.pill.rejected,.pill.rechazado,.pill.alto,.pill.cancelada{background:#FFE9E9;color:#A72A2A}.pill.crítico,.pill.critico{background:#852121;color:#fff}.pill.supervisor{background:#EAF2FF;color:#164F9B}.pill.admin{background:#EDE8FF;color:#563E9C}.pill.assistant{background:#E8F7F7;color:#146B70}
.code{border:0;background:transparent;color:var(--blue);font-weight:900;cursor:pointer;padding:0}.code:hover{text-decoration:underline}.empty{padding:30px;text-align:center;color:var(--muted)}.list{display:grid;gap:8px}.item{border:1px solid var(--line);border-radius:12px;padding:12px;display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.item small{color:var(--muted);display:block;margin-top:3px}.item p{margin:5px 0;color:var(--muted);font-size:12px}.notice{padding:12px 14px;border:1px solid #CBDCF1;background:#F4F8FD;border-radius:11px;font-size:12px}.notice.warn{border-color:#EAD09A;background:#FFF8E9;color:#76521A}.notice.success{border-color:#BDE1C6;background:#F0FAF3;color:#176A38}
.room-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.room{border:1px solid var(--line);border-radius:14px;padding:13px;min-height:108px}.room b{color:var(--navy)}.room p{font-size:11px;color:var(--muted)}.room.available{background:#E8F8EE;border:2px solid #2EB75A}.room.available b,.room.available small{color:#176B36}.room.occupied{background:#FFF0F0;border:2px solid #D84646}.room.occupied b,.room.occupied small{color:#A52E2E}.room.closed{background:#F0F2F5;color:#8D97A6}.room .dot{width:10px;height:10px;border-radius:50%;display:inline-block;margin-right:5px}.room.available .dot{background:#2EB75A}.room.occupied .dot{background:#D84646}.room.closed .dot{background:#9CA5B0}
.case-head{background:linear-gradient(125deg,#fff,#EEF8F1);border:1px solid var(--line);border-radius:18px;padding:20px;margin-bottom:16px;display:flex;justify-content:space-between;align-items:center;gap:15px}.case-code{font-size:25px;color:var(--navy);font-weight:900}.case-ident{display:grid;gap:4px}.case-ident small{color:var(--muted)}
.timeline{display:grid;gap:10px}.timeline-entry{border-left:3px solid #B9DBC4;background:#FAFCFB;padding:12px 14px;border-radius:0 12px 12px 0}.timeline-entry b{color:var(--navy)}.timeline-entry p{font-size:12px;line-height:1.55;color:#4E5A6D}
.tabs-inline{display:flex;gap:7px;border-bottom:1px solid var(--line);margin-bottom:15px}.tabs-inline button{border:0;background:transparent;padding:10px 12px;font-weight:800;color:var(--muted);border-bottom:3px solid transparent}.tabs-inline button.active{color:var(--navy);border-bottom-color:var(--green)}
.upload-box{border:1.5px dashed #B8C7D8;border-radius:13px;padding:18px;background:#FAFCFE;text-align:center}.upload-box input{margin-top:8px}
.financial-positive{color:var(--green2)}.financial-negative{color:var(--danger)}.research-hero{background:linear-gradient(125deg,#fff,#FFF8E7 55%,#EDF3FF);border:1px solid #E7D2A0;border-radius:18px;padding:22px;display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center}.research-symbol{width:96px;height:96px;border:3px solid var(--gold);border-radius:50%;display:grid;place-items:center;color:var(--navy);font-size:42px;background:#fff}
.admin-home-preview{border:1px solid var(--line);background:#F8FBFF;border-radius:13px;padding:15px}.tag{display:inline-block;padding:4px 8px;border-radius:999px;background:#EEF2F6;color:#526071;font-size:9px;font-weight:900;text-transform:uppercase}
@media(max-width:1100px){.stats{grid-template-columns:repeat(2,1fr)}.room-grid{grid-template-columns:repeat(3,1fr)}.hero{grid-template-columns:1fr .48fr}.hero-emblem{width:270px;height:270px}.emblem-ring span{font-size:110px}.app{grid-template-columns:250px 1fr}}
@media(max-width:900px){.hero,.requirements-public,.grid,.grid.three{grid-template-columns:1fr}.hero-emblem{order:-1;width:190px;height:190px;justify-self:start}.emblem-ring{inset:8px}.emblem-ring span{font-size:78px}.leaf{display:none}.public-grid,.cards-grid{grid-template-columns:1fr}.public-grid{margin-top:0;padding-top:20px}.app{grid-template-columns:82px 1fr}.brand>div:last-child,.nav-text,.nav-section,.uip-wordmark span{display:none}.brand{justify-content:center}.brand .psi{width:48px;height:48px}.nav-btn{justify-content:center}.nav-icon{font-size:18px}.uip-wordmark{justify-content:center}.uip-wordmark b{font-size:22px}.top{padding:0 18px}#view{padding:20px 18px}.banner{margin-left:18px;margin-right:18px}}
@media(max-width:650px){.pub-head{padding:0 16px;height:76px}.public-brand small,.public-brand .brand-kicker,.public-actions .ghost{display:none}.hero{padding:42px 18px 55px;min-height:auto}.hero h1{font-size:39px}.public-grid,.home-public-section,.requirements-public{padding-left:18px;padding-right:18px}.public-footer{padding:20px 18px;gap:10px;align-items:flex-start;flex-direction:column}.grid2,.stats,.room-grid{grid-template-columns:1fr}.top-kicker,.who>div:first-child{display:none}.page-head{align-items:flex-start;flex-direction:column}.modal{padding:10px}.modal-card{padding:20px}.app{grid-template-columns:70px 1fr}.app aside{padding-left:10px;padding-right:10px}}


/* ===== CAIP FINAL APROBADO · 22 SEP 2026 ===== */
.approved-layout{grid-template-columns:246px 1fr;background:#f5f8fc}
.approved-sidebar{width:246px;padding:16px 10px 12px!important;background:linear-gradient(180deg,#0b2c5c 0%,#082754 100%)!important}
.approved-brand{min-height:84px;padding:2px 10px 16px!important;gap:12px!important}
.caip-mini-seal{width:58px;height:58px;min-width:58px;border-radius:50%;display:grid;place-items:center;background:#fff;color:#1a7440;border:3px solid #d8e9de;box-shadow:0 4px 12px rgba(0,0,0,.14);font-size:34px;font-weight:900}
.approved-brand small{font-size:9px!important;line-height:1.25!important;letter-spacing:.09em!important;color:#b8c9e5!important}
.approved-brand strong{font-size:20px!important;line-height:1.05!important;margin-top:3px!important;color:#fff!important}
.approved-sidebar nav{padding:16px 0 6px!important;gap:4px!important}
.approved-sidebar .nav-btn{min-height:42px;padding:10px 12px!important;border-radius:10px!important;color:#f2f6ff!important;font-size:13px!important;font-weight:760!important}
.approved-sidebar .nav-btn.active{background:#254b7d!important;box-shadow:inset 3px 0 0 #56c987!important}
.approved-sidebar .nav-btn:hover{background:#1d426f!important}
.approved-sidebar .nav-icon{width:19px!important;font-size:14px!important}
.approved-sidebar .sidebar-foot{padding:14px 4px 0!important}
.approved-uip{background:#fff!important;border-radius:8px!important;padding:6px 8px!important;max-width:170px!important}
.approved-uip b{font-size:37px!important;font-weight:400!important;letter-spacing:-4px!important;color:#1680c9!important}
.approved-uip span{font-size:8px!important;line-height:1.1!important;color:#0b2c5c!important;font-weight:800!important}
.env-label{display:block;color:#8fa7cc;font-size:9px;margin:6px 2px 10px}
.approved-sidebar .logout{font-size:11px;padding:8px 10px!important}

.approved-main{background:#f5f8fc}
.approved-top{height:86px!important;padding:0 30px!important;background:#fff!important;border-bottom:1px solid #dfe7f1!important}
.top-brand-copy h1{margin:0!important;font-size:18px!important;color:#12213f!important;font-weight:850!important}
.top-brand-copy p{margin:4px 0 0!important;font-size:10px!important;color:#7b8799!important}
.top-mode{display:flex;align-items:center;gap:9px}
.top-mode>span{font-size:10px;color:#6e7789}
.top-mode select{width:auto;min-width:200px;padding:9px 12px;border:1px solid #dbe3ee;border-radius:10px;background:#fff;color:#1e2c48;font-size:12px}
.top-mode .avatar{width:34px!important;height:34px!important;background:#0a3876!important;font-size:12px!important}
#banner .banner{margin:16px 30px 0!important;padding:10px 14px!important;border-radius:10px!important;background:#fff4d9!important;border:1px solid #e9ca77!important;color:#7a4f00!important}
#view{padding:22px 30px 50px!important}

.approved-home-hero{display:grid;grid-template-columns:1.35fr .42fr;gap:34px;align-items:center;min-height:306px;padding:30px 34px;margin-bottom:24px;background:linear-gradient(115deg,#fff 0%,#eef9f3 58%,#e8f3ff 100%);border:1px solid #d7e2ed;border-radius:20px;box-shadow:0 12px 28px rgba(12,41,86,.06)}
.approved-home-copy h2{margin:7px 0 13px;font-size:29px;line-height:1.12;color:#0c2147;letter-spacing:-.01em}
.approved-home-copy p{max-width:760px;margin:0 0 18px;color:#60718a;line-height:1.55;font-size:13px}
.approved-logo-card{width:245px;height:245px;justify-self:end;background:#fff;border:1px solid #e5ebf2;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:18px;text-align:center}
.approved-logo-mark{width:128px;height:128px;border:5px double #236b3d;border-radius:50%;display:grid;place-items:center;color:#1f7c42;font-size:76px;font-weight:900;position:relative}
.approved-logo-mark:after{content:"";position:absolute;right:-18px;top:23px;width:42px;height:18px;border-radius:90% 0 90% 0;background:#329255;transform:rotate(-32deg);box-shadow:18px 38px 0 -2px #329255,3px 73px 0 -5px #329255}
.approved-logo-text{margin-top:6px;font-size:10px;line-height:1.25;font-weight:900;color:#1d2940}
.approved-logo-text b{color:#2d8c4b}
.approved-logo-text small{display:block;font-size:6px;letter-spacing:.13em;margin-top:4px;color:#536277}

.approved-home-grid{display:grid;grid-template-columns:1.02fr 1.2fr;gap:18px}
.approved-register-card,.approved-events-card{background:#fff;border:1px solid #dbe4ef;border-radius:18px;padding:18px;box-shadow:0 8px 24px rgba(12,41,86,.05);min-height:330px}
.card-head-row{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.card-head-row h3{margin:4px 0 0;font-size:17px;color:#12213f}
.requirements-compact{display:grid;gap:8px;margin-top:12px}
.requirements-compact>div{display:grid;grid-template-columns:28px 1fr;gap:10px;align-items:start;border:1px solid #dbe4ef;border-radius:10px;padding:9px 10px;background:#fbfdff}
.requirements-compact>div>b{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#e9f7ee;color:#1c8a49}
.requirements-compact strong,.requirements-compact small{display:block}
.requirements-compact strong{font-size:11px;color:#102348}
.requirements-compact small{font-size:10px;line-height:1.35;color:#758196;margin-top:2px}
.approved-events-body{min-height:250px;display:flex;flex-direction:column;gap:10px;justify-content:flex-start;padding-top:6px}
.approved-empty-events{flex:1;display:grid;place-items:center;text-align:center;color:#8590a1;font-size:13px}
.home-event{border:1px solid #e2e8f0;border-radius:11px;padding:11px 12px;background:#fbfdff}
.home-event small{color:#a86d0c;font-size:9px;font-weight:850}
.home-event h4{margin:5px 0 4px;color:#11233f;font-size:13px}
.home-event p{margin:0;color:#6a778b;font-size:11px;line-height:1.45}
.home-event a{display:inline-block;margin-top:6px;font-size:10px;font-weight:800}

@media(max-width:1100px){
  .approved-layout{grid-template-columns:220px 1fr}
  .approved-sidebar{width:220px}
  .approved-home-hero{grid-template-columns:1fr 220px}
  .approved-logo-card{width:210px;height:225px}
  .approved-home-grid{grid-template-columns:1fr}
}
@media(max-width:900px){
  .approved-layout{grid-template-columns:82px 1fr}
  .approved-sidebar{width:82px}
  .approved-brand>div:last-child,.approved-sidebar .nav-text,.approved-uip span,.env-label{display:none!important}
  .approved-brand{justify-content:center!important}
  .approved-uip{max-width:none!important;justify-content:center!important}
  .approved-top{padding:0 16px!important}
  .top-mode>span,.top-mode select{display:none}
  #view{padding:18px!important}
  #banner .banner{margin:14px 18px 0!important}
  .approved-home-hero{grid-template-columns:1fr;padding:24px}
  .approved-logo-card{justify-self:start;width:180px;height:190px}
}
@media(max-width:600px){
  .approved-home-copy h2{font-size:24px}
  .approved-home-grid{grid-template-columns:1fr}
  .approved-register-card,.approved-events-card{padding:15px}
}

.caip-mini-logo{width:58px;height:58px;object-fit:contain;border-radius:50%;background:#fff;flex:0 0 58px}
.approved-uip img{display:block;width:155px;height:auto;object-fit:contain}
.approved-logo-card{padding:12px!important;overflow:hidden}
.approved-logo-image{display:block;width:100%;height:100%;object-fit:contain}
.research-logo-wrap{padding:0!important;overflow:hidden;background:#fff!important;border-color:var(--gold)!important}
.research-logo-wrap img{width:100%;height:100%;object-fit:contain;display:block}
@media(max-width:900px){
 .caip-mini-logo{width:48px;height:48px;flex-basis:48px}
 .approved-uip img{width:48px}
}

/* Public entry mirrors the approved final CAIP layout */
.public-approved{min-height:100vh;display:grid;grid-template-columns:246px 1fr;background:#f5f8fc}
.public-approved-sidebar{width:246px;min-height:100vh;background:linear-gradient(180deg,#0b2c5c 0%,#082754 100%);padding:16px 10px 12px;color:#fff;display:flex;flex-direction:column;position:sticky;top:0}
.public-nav{display:grid;gap:4px;padding:16px 0 6px;overflow:auto}
.public-nav .nav-btn{min-height:42px;padding:10px 12px;border-radius:10px;color:#f2f6ff;font-size:13px;font-weight:760}
.public-nav .nav-btn.active{background:#254b7d;box-shadow:inset 3px 0 0 #56c987}
.public-nav .nav-btn:hover{background:#1d426f}
.public-approved-main{min-width:0;background:#f5f8fc}
.public-approved-top{position:sticky;top:0;z-index:40}
.public-top-actions{display:flex;align-items:center;gap:9px}
.public-top-actions select{width:auto;min-width:200px;padding:9px 12px;border:1px solid #dbe3ee;border-radius:10px;background:#fff;color:#1e2c48;font-size:12px}
.public-mode-label{font-size:10px;color:#6e7789}
.public-prod-banner{margin:16px 30px 0;padding:10px 14px;border-radius:10px;background:#fff4d9;border:1px solid #e9ca77;color:#7a4f00;font-size:12px}
.public-approved-view{padding:22px 30px 50px}
.public-home-hero{margin-bottom:24px}
.public-approved .sidebar-foot{margin-top:auto;border-top:1px solid rgba(255,255,255,.14);padding-top:14px}
@media(max-width:900px){
 .public-approved{grid-template-columns:82px 1fr}
 .public-approved-sidebar{width:82px}
 .public-approved-sidebar .approved-brand>div:last-child,.public-approved-sidebar .nav-text,.public-approved-sidebar .env-label{display:none}
 .public-approved-sidebar .approved-brand{justify-content:center}
 .public-approved-sidebar .nav-btn{justify-content:center}
 .public-approved-sidebar .approved-uip{max-width:none}
 .public-approved-sidebar .approved-uip img{width:48px}
 .public-mode-label,.public-top-actions select{display:none}
 .public-prod-banner{margin:14px 18px 0}
 .public-approved-view{padding:18px}
}

/* Operational norms / induction / patient route */
.operational-section{margin-top:26px}
.op-heading{margin:0 0 16px}
.op-heading h2{margin:5px 0 0;color:#102348;font-size:20px}
.op-norm-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.op-norm-card{background:#fff;border:1px solid #dbe4ef;border-radius:18px;padding:18px;min-height:134px;box-shadow:0 8px 24px rgba(12,41,86,.04)}
.op-norm-card>span{font-size:10px;font-weight:900;color:#07823c}
.op-norm-card h3{font-size:15px;margin:8px 0 8px;color:#102348}
.op-norm-card p{margin:0;color:#61708a;font-size:12px;line-height:1.55}
.op-bottom-grid{display:grid;grid-template-columns:1.45fr 1fr;gap:16px;margin-top:22px}
.op-media-panel,.op-flow-panel{background:#fff;border:1px solid #dbe4ef;border-radius:18px;padding:18px;box-shadow:0 8px 24px rgba(12,41,86,.04)}
.op-media-panel h3,.op-flow-panel h3{margin:4px 0 12px;color:#102348;font-size:17px}
.op-video-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.op-video-card{border:1px solid #dbe4ef;border-radius:13px;overflow:hidden;background:#fff}
.op-video-card video,.op-video-card iframe,.op-video-placeholder{display:block;width:100%;aspect-ratio:16/9;background:linear-gradient(120deg,#073568,#158147);object-fit:cover}
.op-video-placeholder{display:grid;place-items:center}
.op-video-placeholder span{font-size:40px;color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.2)}
.op-video-copy{padding:10px 12px}
.op-video-copy b,.op-video-copy small{display:block}
.op-video-copy b{font-size:13px;color:#102348}
.op-video-copy small{margin-top:4px;color:#728096;font-size:10px;line-height:1.4}
.op-flow-list{display:grid}
.op-flow-row{display:grid;grid-template-columns:25px 105px 1fr;gap:9px;align-items:start;padding:9px 0;border-bottom:1px solid #dbe4ef}
.op-flow-row>span{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#e9f7ee;color:#0b7b3b;font-size:10px;font-weight:900}
.op-flow-row b{font-size:12px;color:#102348}
.op-flow-row p{margin:0;font-size:10px;color:#65738a;line-height:1.45}
@media(max-width:1000px){
 .op-norm-grid{grid-template-columns:repeat(2,1fr)}
 .op-bottom-grid{grid-template-columns:1fr}
}
@media(max-width:650px){
 .op-norm-grid,.op-video-grid{grid-template-columns:1fr}
 .op-flow-row{grid-template-columns:25px 95px 1fr}
}

/* Approved Administration layout */
.admin-approved-head{margin-bottom:14px}
.admin-approved-head h2{margin:3px 0 2px;color:#102348;font-size:21px}
.admin-approved-head p{margin:0;color:#6c788c;font-size:11px}
.admin-approved-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.admin-card{min-height:325px}
.admin-card h3,.admin-control-card h3,.admin-summary-card h3,.admin-access-panel h3{font-size:14px;margin:0 0 13px;color:#102348}
.admin-inline-form{display:grid;gap:9px}
.admin-inline-form label{font-size:10px}
.admin-inline-form input,.admin-inline-form select,.admin-inline-form textarea{font-size:11px;padding:9px 10px;border-radius:7px}
.admin-inline-form textarea{min-height:58px}
.admin-mini-list{display:grid;gap:7px;margin-top:11px;max-height:180px;overflow:auto}
.admin-mini-row{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;border:1px solid #e0e6ee;border-radius:9px;padding:8px 9px;background:#fbfdff}
.admin-mini-row b,.admin-mini-row small{display:block}
.admin-mini-row b{font-size:10px;color:#102348;margin-top:2px}
.admin-mini-row small{font-size:9px;color:#718097;margin-top:2px;line-height:1.35}
.admin-approved-lower{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}
.admin-control-card,.admin-summary-card{min-height:205px}
.admin-stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.admin-stat-grid>div{border:1px solid #dbe4ef;border-radius:10px;padding:10px;background:#fdfefe}
.admin-stat-grid strong,.admin-stat-grid small{display:block}
.admin-stat-grid strong{font-size:22px;color:#082e69}
.admin-stat-grid small{font-size:9px;color:#778499;margin-top:2px}
.admin-control-buttons{display:grid;gap:7px;margin-top:10px}
.admin-file-button{display:block;text-align:center}
.admin-summary-list{display:grid;gap:8px}
.admin-summary-list>div{display:flex;justify-content:space-between;gap:15px;border-bottom:1px solid #e2e8f0;padding:9px 0}
.admin-summary-list b{font-size:10px;color:#102348}
.admin-summary-list span{font-size:10px;color:#65738a;text-align:right}
.admin-access-panel{margin-top:16px}
.admin-access-table{min-width:1000px}
.admin-access-table td{font-size:10px;line-height:1.45}
.admin-access-table th{font-size:8px}
@media(max-width:1000px){
 .admin-approved-grid,.admin-approved-lower{grid-template-columns:1fr}
}
@media(max-width:600px){
 .admin-stat-grid{grid-template-columns:1fr}
}

/* Module description / instructions / generated documents */
.module-guide{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.85fr);gap:16px;margin-bottom:18px}
.module-guide-card,.module-doc-card{background:#fff;border:1px solid #dbe4ef;border-radius:16px;padding:18px;box-shadow:0 8px 24px rgba(12,41,86,.045)}
.module-guide-card h3,.module-doc-card h3{margin:5px 0 7px;color:#102348;font-size:17px}
.module-guide-card p,.module-doc-card p{margin:0 0 10px;color:#61708a;font-size:11px;line-height:1.5}
.module-guide-card ol{margin:8px 0 0;padding-left:20px;color:#56647a}
.module-guide-card li{font-size:11px;line-height:1.5;margin:4px 0}
.module-doc-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:12px}
.module-doc-actions .btn{text-align:left;font-size:10px;padding:9px 10px}
@media(max-width:1000px){
 .module-guide{grid-template-columns:1fr}
}
@media(max-width:600px){
 .module-doc-actions{grid-template-columns:1fr}
}

/* Approved clinical descriptions, privacy notes and document generation */
.privacy-note{background:#f4f8fd;border:1px solid #c9d8ec;border-left:4px solid #0b4f9c;border-radius:11px;padding:12px 14px;color:#50617a;font-size:11px;line-height:1.5}
.privacy-note strong{color:#0b2c5c}
.import-help{display:flex;align-items:center;justify-content:space-between;gap:14px;background:#fff;border:1px solid #dbe4ef;border-radius:12px;padding:12px 14px}
.import-help strong,.import-help span{display:block}
.import-help strong{font-size:11px;color:#102348}
.import-help span{font-size:10px;color:#6c788c;margin-top:2px;line-height:1.4}

.doc-grid,.approved-doc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}
.doc-card{appearance:none;text-align:left;background:#fff;border:1px solid #dbe4ef;border-radius:15px;padding:16px;min-height:142px;box-shadow:0 7px 20px rgba(12,41,86,.045);transition:.18s ease;color:#14213d}
.doc-card:hover,.doc-card.active{transform:translateY(-1px);border-color:#8fb0d8;box-shadow:0 10px 24px rgba(12,41,86,.08)}
.doc-card.active{box-shadow:inset 0 0 0 2px #0b4f9c,0 10px 24px rgba(12,41,86,.08)}
.doc-card>span{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#eaf3ff;color:#0b4f9c;font-size:18px;margin-bottom:11px}
.doc-card strong,.doc-card small{display:block}
.doc-card strong{font-size:12px;color:#102348;line-height:1.35}
.doc-card small{font-size:9px;color:#6f7c91;line-height:1.45;margin-top:5px}
.doc-builder-panel{margin-bottom:4px}
.doc-builder-panel>label{max-width:540px}
.doc-preview{margin-top:14px;min-height:210px;border:1px solid #dbe4ef;border-radius:12px;background:#f9fbfd;padding:16px}
.doc-preview-sheet{background:#fff;border:1px solid #e0e6ee;border-radius:10px;padding:18px;max-width:850px;margin:auto;box-shadow:0 5px 18px rgba(12,41,86,.04)}
.doc-preview-sheet h3{margin:5px 0 12px;color:#102348}
.doc-preview-sheet table{min-width:0;margin:8px 0 12px}
.doc-preview-sheet th,.doc-preview-sheet td{font-size:10px}
.doc-preview-sheet p{font-size:11px;line-height:1.55;color:#56647a}
.doc-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}

.panel-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:11px}
.panel-title-row h3{margin:4px 0 0;color:#102348}

@media(max-width:1200px){.doc-grid,.approved-doc-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){
 .doc-grid,.approved-doc-grid{grid-template-columns:1fr}
 .import-help{align-items:flex-start;flex-direction:column}
 .doc-actions{justify-content:stretch;flex-direction:column}
 .doc-actions .btn{width:100%}
}

/* ===== Production aligned to approved test-version information architecture ===== */
.test-parity-panel{background:#fff;border:1px solid #dbe4ef;border-radius:16px;padding:17px;margin:0 0 18px;box-shadow:0 8px 24px rgba(12,41,86,.04)}
.test-parity-panel h3{margin:4px 0 0;color:#102348;font-size:16px}
.test-parity-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}
.test-parity-grid article{border:1px solid #e1e8f0;background:#fbfdff;border-radius:11px;padding:11px 12px}
.test-parity-grid b{display:block;color:#102348;font-size:11px}
.test-parity-grid p{margin:4px 0 0;color:#68768c;font-size:10px;line-height:1.45}

.clinical-record-panel{padding:18px}
.clinical-tabs{display:flex;gap:6px;overflow:auto;padding:4px 0 12px;margin-bottom:12px;border-bottom:1px solid #e1e7ef}
.clinical-tabs button{flex:0 0 auto;border:1px solid #dbe4ef;background:#fff;color:#5b6880;border-radius:9px;padding:8px 10px;font-size:10px;font-weight:800;white-space:nowrap}
.clinical-tabs button:hover{background:#f4f8fd;color:#0b2c5c}
.clinical-tabs button.active{background:#0b2c5c;border-color:#0b2c5c;color:#fff}
#clinical-section-content{min-height:180px}
.clinical-summary-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:9px;margin-bottom:12px}
.clinical-summary-grid>div{background:#f8fbff;border:1px solid #dce5ef;border-radius:10px;padding:11px}
.clinical-summary-grid small,.clinical-summary-grid strong{display:block}
.clinical-summary-grid small{font-size:8px;color:#78859a;text-transform:uppercase;letter-spacing:.05em}
.clinical-summary-grid strong{margin-top:5px;font-size:16px;color:#102348}
.clinical-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.clinical-form-grid label:has(textarea){grid-column:span 2}
.clinical-form-grid textarea{min-height:92px}
.clinical-section-footer{display:flex;justify-content:flex-end;align-items:end;gap:10px;margin-top:14px;padding-top:12px;border-top:1px solid #e1e7ef}
.clinical-section-footer label{min-width:190px}
.clinical-linked-block{background:#f8fbff;border:1px solid #dce5ef;border-radius:11px;padding:12px;margin-bottom:12px}
.clinical-linked-block h4{margin:0 0 8px;color:#102348}

.home-test-extras{display:grid;gap:16px;margin-top:22px}
.use-steps-approved{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:12px}
.use-steps-approved>div{border:1px solid #dbe4ef;border-radius:12px;padding:12px;background:#fbfdff}
.use-steps-approved>div>span{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#e9f7ee;color:#0c7b3d;font-size:10px;font-weight:900;margin-bottom:8px}
.use-steps-approved b{display:block;color:#102348;font-size:11px}
.use-steps-approved p{margin:5px 0 0;color:#68768c;font-size:10px;line-height:1.45}
.home-test-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.home-test-grid h3{margin:5px 0 6px;color:#102348;font-size:15px}

@media(max-width:1150px){
 .test-parity-grid{grid-template-columns:1fr 1fr}
 .clinical-summary-grid{grid-template-columns:repeat(3,1fr)}
 .use-steps-approved{grid-template-columns:1fr 1fr}
}
@media(max-width:700px){
 .test-parity-grid,.clinical-form-grid,.home-test-grid,.use-steps-approved{grid-template-columns:1fr}
 .clinical-form-grid label:has(textarea){grid-column:auto}
 .clinical-summary-grid{grid-template-columns:1fr 1fr}
 .clinical-section-footer{align-items:stretch;flex-direction:column}
 .clinical-section-footer label,.clinical-section-footer .btn{width:100%}
}

.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.form-section-title{font-size:10px;font-weight:900;color:#0b2c5c;text-transform:uppercase;letter-spacing:.06em;margin:2px 0 -4px}
.authorized-courses-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;max-height:145px;overflow:auto}
.authorized-courses-list span{display:inline-flex;border:1px solid #dbe4ef;background:#f8fbff;border-radius:999px;padding:5px 8px;font-size:9px;color:#54637a}

/* Test-version parity sections: detailed approved information */
.test-parity-sections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}
.test-parity-section{background:#fbfdff;border:1px solid #dde6ef;border-radius:12px;padding:13px}
.test-parity-section h4{margin:0 0 5px;color:#102348;font-size:12px}
.test-parity-section p{margin:0 0 9px;color:#68768c;font-size:10px;line-height:1.5}
.test-field-chips{display:flex;flex-wrap:wrap;gap:5px}
.test-field-chips span{background:#eef4fb;border:1px solid #d6e1ee;color:#44536b;border-radius:999px;padding:4px 7px;font-size:8px;font-weight:750}
@media(max-width:900px){.test-parity-sections{grid-template-columns:1fr}}

/* Explicit visual parity with approved test version */
.approved-source-panel{border-top:4px solid #178443}
.approved-source-panel>.panel-title-row{align-items:flex-start}
.test-parity-section.expanded{display:grid;grid-template-columns:38px 1fr;gap:11px;align-items:start;background:#fff;border:1px solid #dde6ef;border-radius:13px;padding:13px}
.test-section-index{width:32px;height:32px;border-radius:9px;background:#e9f7ee;color:#0b7b3b;display:grid;place-items:center;font-size:10px;font-weight:900}
.test-section-body h4{margin:1px 0 5px;color:#102348;font-size:12px}
.test-section-body p{margin:0 0 10px;color:#66748a;font-size:10px;line-height:1.5}
.test-field-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.test-field-list>div{display:flex;gap:7px;align-items:flex-start;border:1px solid #e5ebf2;background:#f9fbfd;border-radius:8px;padding:7px 8px}
.test-field-list span{width:18px;height:18px;flex:0 0 18px;border-radius:50%;display:grid;place-items:center;background:#eaf7ef;color:#147e41;font-size:9px;font-weight:900}
.test-field-list b{font-size:9px;line-height:1.35;color:#435269;font-weight:750}
@media(max-width:760px){
 .test-field-list{grid-template-columns:1fr}
 .test-parity-section.expanded{grid-template-columns:30px 1fr}
 .test-section-index{width:26px;height:26px}
}

/* Approved test-version informational structure ported to production */
.approved-detail-wrap{display:grid;gap:14px;margin:0 0 18px}
.approved-info-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.approved-info-card{background:#fff;border:1px solid #dbe4ef;border-radius:15px;padding:15px;min-height:122px;box-shadow:0 7px 20px rgba(12,41,86,.04)}
.approved-info-card>span{font-size:9px;font-weight:900;color:#07823c}
.approved-info-card h4{margin:7px 0 7px;color:#102348;font-size:13px}
.approved-info-card p{margin:0;color:#65738a;font-size:10px;line-height:1.5}
.approved-detail-panel{background:#fff;border:1px solid #dbe4ef;border-radius:16px;padding:16px;box-shadow:0 7px 20px rgba(12,41,86,.04)}
.approved-detail-list{display:grid}
.approved-detail-list>div{display:grid;grid-template-columns:180px 1fr;gap:14px;padding:10px 0;border-bottom:1px solid #e4e9f0}
.approved-detail-list>div:last-child{border-bottom:0}
.approved-detail-list b{font-size:11px;color:#102348}
.approved-detail-list span{font-size:10px;color:#65738a;line-height:1.5}
.approved-callout{display:grid;gap:4px;background:linear-gradient(110deg,#f7fbff,#f0f9f3);border:1px solid #cfddeb;border-left:4px solid #12834a;border-radius:13px;padding:14px 16px}
.approved-callout b{font-size:13px;color:#102348}
.approved-callout span{font-size:10px;line-height:1.55;color:#607087}
.approved-expediente-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.approved-expediente-grid article{background:#fff;border:1px solid #dbe4ef;border-radius:13px;padding:13px}
.approved-expediente-grid b{font-size:11px;color:#0b2c5c}
.approved-expediente-grid p{margin:5px 0 0;font-size:9px;color:#68768c;line-height:1.45}
@media(max-width:1200px){.approved-info-grid{grid-template-columns:repeat(2,1fr)}.approved-expediente-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.approved-info-grid,.approved-expediente-grid{grid-template-columns:1fr}.approved-detail-list>div{grid-template-columns:1fr;gap:4px}}

.video-open-link{display:inline-block;margin-top:8px;font-weight:800;color:#0056b8;text-decoration:none}.video-open-link:hover{text-decoration:underline}


/* Consultantes migrados desde CAIP al módulo Post-terremoto */
.eq-migrated-row > td{
  background:#fff7c7 !important;
  border-top-color:#ead36c !important;
  border-bottom-color:#ead36c !important;
}
.eq-migrated-row:hover > td{background:#ffef9d !important}
.eq-migrated-card{
  background:#fff7c7 !important;
  border:1px solid #ead36c !important;
  border-radius:12px;
  padding:12px;
}
.eq-migrated-pill{
  background:#f4cf45 !important;
  color:#4b3a00 !important;
  border-color:#d4ad21 !important;
  font-weight:800;
}

/* Video preview and looping norms videos */
.admin-video-preview{border:1px solid #dbe4ef;border-radius:14px;overflow:hidden;background:#071b3b;min-height:180px;display:grid;place-items:center}
.admin-video-preview>.op-video-card{width:100%;border:0;border-radius:0}
.admin-video-preview-player{display:block;width:100%;max-height:360px;aspect-ratio:16/9;object-fit:contain;background:#071b3b}
.admin-video-preview-meta{width:100%;padding:9px 12px;background:#fff}
.admin-video-preview-meta b,.admin-video-preview-meta small{display:block}
.admin-video-preview-meta b{font-size:12px;color:#102348}
.admin-video-preview-meta small{font-size:10px;color:#718097;margin-top:2px}
.op-video-loop .caip-home-video,.caip-home-video-loop{object-fit:contain!important;background:#071b3b!important;max-height:420px}
.op-video-loop .op-video-copy .pill{display:inline-flex;margin:8px 8px 0 0}
.op-video-loop .video-open-link{display:inline-block;margin-top:8px}

/* Dashboard CAIP · presencia y conexiones */
.caip-presence-panel{margin-top:16px}
.presence-stats{grid-template-columns:repeat(3,1fr)!important}
.presence-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:#23b35b;box-shadow:0 0 0 3px rgba(35,179,91,.12);margin-right:7px;vertical-align:middle}
.caip-presence-panel h4{margin:3px 0 10px;color:#102348;font-size:13px}
.caip-presence-panel .table-wrap table{min-width:620px}
.caip-presence-panel .table-wrap{max-height:340px;overflow:auto}
@media(max-width:900px){.presence-stats{grid-template-columns:1fr 1fr!important}}
@media(max-width:600px){.presence-stats{grid-template-columns:1fr!important}}

/* Citas y pagos · modos de atención */
.payment-view-tabs,.payment-mode-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 14px}
.payment-view-tabs button,.payment-mode-tabs button{border:1px solid #dbe4ef;background:#fff;color:#526071;border-radius:999px;padding:8px 12px;font-size:11px;font-weight:800;cursor:pointer}
.payment-view-tabs button.active,.payment-mode-tabs button.active{background:#0b2c5c;color:#fff;border-color:#0b2c5c}
.payment-mode-modal{margin-top:4px}
.payment-mode-modal button[data-pay-mode="trial"].active{background:#8b6a12;border-color:#8b6a12}
.payment-mode-modal button[data-pay-mode="earthquake"].active{background:#178443;border-color:#178443}
@media(max-width:600px){.payment-view-tabs,.payment-mode-tabs{display:grid;grid-template-columns:1fr}.payment-view-tabs button,.payment-mode-tabs button{width:100%}}

/* Pruebas psicológicas y asignación múltiple */
.bulk-supervisor-help{border-left:4px solid #0b2c5c}
[data-approve-ireq]{white-space:nowrap}
#student-body td:first-child,#select-all-students{width:42px;text-align:center}
.student-bulk-check{width:16px;height:16px;accent-color:#0b2c5c}

/* Docente supervisor · estudiantes y consultantes */
.supervisor-privacy{border-left:4px solid #0b2c5c}
.supervisor-stats{grid-template-columns:repeat(6,minmax(120px,1fr))}
.supervisor-dashboard-grid{align-items:start}
.supervisor-student-cards{display:grid;gap:10px}
.supervisor-student-card{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;border:1px solid #dbe4ef;border-radius:12px;padding:12px;background:#fbfdff}
.supervisor-student-card b,.supervisor-student-card small{display:block}
.supervisor-student-card small{margin-top:3px;color:#718097;font-size:10px}
.supervisor-card-metrics{display:flex;gap:8px;flex-wrap:wrap}
.supervisor-card-metrics span{background:#eef4fb;border-radius:999px;padding:6px 9px;font-size:10px;color:#32445f}
.supervisor-case-list .item>div:first-child small{display:block;margin-top:4px;color:#718097}
.supervisor-filters{margin-bottom:12px}
@media(max-width:1200px){.supervisor-stats{grid-template-columns:repeat(3,1fr)}}
@media(max-width:850px){.supervisor-student-card{grid-template-columns:1fr}.supervisor-card-metrics{justify-content:flex-start}}
@media(max-width:650px){.supervisor-stats{grid-template-columns:1fr 1fr}}

/* Avisos CAIP · formato blog */
.caip-blog-panel{overflow:hidden}
.caip-blog-grid{display:grid;grid-template-columns:1fr;gap:14px}
.caip-blog-card{display:grid;grid-template-columns:130px minmax(0,1fr);border:1px solid #dbe4ef;border-radius:16px;background:#fff;overflow:hidden;box-shadow:0 8px 24px rgba(12,41,86,.05);transition:transform .18s ease,box-shadow .18s ease}
.caip-blog-card:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(12,41,86,.09)}
.caip-blog-card.featured{border-color:#d7b25c;background:linear-gradient(180deg,#fffdf7 0%,#fff 100%)}
.caip-blog-cover{appearance:none;border:0;padding:0;margin:0;background:#edf3f9;display:block;width:100%;height:100%;min-height:165px;cursor:pointer;overflow:hidden}
.caip-blog-cover img{width:100%;height:100%;display:block;object-fit:cover;object-position:top center}
.caip-blog-cover-placeholder{display:grid;place-items:center;background:linear-gradient(135deg,#0b2c5c,#187145);color:#fff;font-weight:900;letter-spacing:.08em}
.caip-blog-content{padding:14px 15px;min-width:0}
.caip-blog-meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:7px}
.caip-blog-meta span{font-size:9px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:#08723a;background:#eaf7ef;border-radius:999px;padding:4px 7px}
.caip-blog-meta time{font-size:9px;color:#78869a}
.caip-blog-meta b{font-size:8px;text-transform:uppercase;letter-spacing:.08em;color:#8a5b0d;background:#fff1c8;border-radius:999px;padding:4px 7px}
.caip-blog-card h4{margin:0 0 7px;color:#102348;font-size:15px;line-height:1.2}
.caip-blog-card p{margin:0;color:#65738a;font-size:11px;line-height:1.5}
.caip-blog-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:11px}
.caip-blog-external{font-size:10px;font-weight:800}
.caip-blog-modal{max-width:760px;margin:auto}
.caip-blog-modal-image{display:block;width:min(100%,560px);max-height:72vh;object-fit:contain;object-position:top center;margin:0 auto 18px;border-radius:16px;border:1px solid #dbe4ef;background:#f6f8fb}
.caip-blog-modal h2{color:#102348;margin:8px 0 14px}
.caip-blog-article-body{display:grid;gap:8px}
.caip-blog-article-body p{margin:0;padding:10px 12px;border-left:3px solid #d7b25c;background:#f8fafc;border-radius:0 9px 9px 0;color:#44536b;line-height:1.55}
#public-home-items .caip-blog-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
#public-home-items .caip-blog-card{grid-template-columns:1fr}
#public-home-items .caip-blog-cover{min-height:220px;max-height:320px}
#public-home-items .caip-blog-card.featured{grid-column:span 2;grid-template-columns:minmax(220px,.8fr) 1.2fr}
@media(max-width:900px){
 #public-home-items .caip-blog-grid{grid-template-columns:1fr}
 #public-home-items .caip-blog-card.featured{grid-column:auto;grid-template-columns:150px 1fr}
}
@media(max-width:650px){
 .caip-blog-card,#public-home-items .caip-blog-card.featured{grid-template-columns:1fr}
 .caip-blog-cover,#public-home-items .caip-blog-cover{min-height:240px;max-height:430px}
 .caip-blog-cover img{object-fit:contain;background:#f2f5f9}
}

/* Administración · aviso destacado */
.admin-featured-notice{display:grid;grid-template-columns:88px 1fr;gap:10px;align-items:center;margin:12px 0;border:1px solid #d7b25c;border-radius:12px;padding:9px;background:#fffdf7}
.admin-featured-notice img{width:88px;height:112px;object-fit:cover;object-position:top;border-radius:8px;border:1px solid #e3e8ef;background:#fff}
.admin-featured-notice b,.admin-featured-notice small{display:block}
.admin-featured-notice b{margin-top:4px;color:#102348;font-size:11px}
.admin-featured-notice small{margin-top:3px;color:#718097;font-size:9px;line-height:1.4}
@media(max-width:600px){.admin-featured-notice{grid-template-columns:64px 1fr}.admin-featured-notice img{width:64px;height:86px}}

.caip-blog-card.featured .caip-blog-cover img{object-fit:contain;background:#f4f8fc}

/* Avisos CAIP · logos oficiales y lectura */
.caip-blog-media{display:flex;flex-direction:column;background:#f4f8fc;border-right:1px solid #dbe4ef}
.caip-blog-brandbar{display:grid;grid-template-columns:1fr 1px 1fr;align-items:center;gap:10px;padding:9px 10px;background:#fff;border-bottom:1px solid #dbe4ef;min-height:58px}
.caip-blog-brandbar span,.caip-blog-modal-brand span{display:block;width:1px;height:34px;background:#d6ac43;justify-self:center}
.caip-blog-brandbar img{display:block;max-width:100%;height:38px;object-fit:contain}
.caip-blog-brandbar img:first-child{height:44px}
.caip-blog-modal-brand{display:grid;grid-template-columns:1fr 1px 1fr;align-items:center;gap:18px;max-width:560px;margin:0 auto 14px;padding:12px 16px;border:1px solid #dbe4ef;border-radius:14px;background:#fff}
.caip-blog-modal-brand img{display:block;width:100%;height:58px;object-fit:contain}
.caip-blog-modal-brand img:first-child{height:68px}
.caip-blog-actions .btn.primary{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:8px 13px;cursor:pointer;position:relative;z-index:2}
.caip-blog-actions .btn.primary::after{content:" →";font-weight:900}
.caip-blog-cover{position:relative;z-index:1}
.caip-blog-card.featured .caip-blog-media{background:#fff}
@media(max-width:650px){
 .caip-blog-media{border-right:0}
 .caip-blog-brandbar{grid-template-columns:1fr 1px 1fr}
 .caip-blog-modal-brand{gap:10px}
}

/* Administración · edición de avisos e imagen de portada */
.admin-home-image-preview{min-height:150px;border:1px dashed #c9d5e4;border-radius:12px;background:#f7f9fc;display:grid;place-items:center;overflow:hidden}
.admin-home-image-preview img{display:block;width:100%;max-height:300px;object-fit:contain;background:#eef3f8}
.admin-home-image-preview small{display:block;width:100%;padding:7px 10px;background:#fff;color:#718097;font-size:9px;text-align:center}
.admin-home-image-empty{color:#8190a5;font-size:11px;font-weight:700;padding:24px;text-align:center}
.admin-home-row{display:grid!important;grid-template-columns:56px minmax(0,1fr) auto!important;align-items:center!important}
.admin-home-row-cover{width:56px;height:56px;border-radius:9px;object-fit:cover;border:1px solid #dbe4ef;background:#f4f7fb}
.admin-home-row-noimage{display:grid;place-items:center;background:linear-gradient(135deg,#0b2c5c,#197345);color:#fff;font-size:9px;font-weight:900}
.admin-home-row-copy{min-width:0}
.admin-home-row-copy b,.admin-home-row-copy small{display:block}
#admin-home-edit-state{margin-bottom:2px}
#admin-home-cancel-edit{min-width:140px}
@media(max-width:720px){
 .admin-home-row{grid-template-columns:48px minmax(0,1fr)!important}
 .admin-home-row>.action-row{grid-column:1/-1}
 .admin-home-row-cover{width:48px;height:48px}
 #admin-home-form>.action-row{display:grid;grid-template-columns:1fr}
 #admin-home-cancel-edit{width:100%}
}

/* Duplicados de estudiantes y docentes */
.pill.duplicate{background:#fff1f1;color:#a32727;border:1px solid #efc7c7}
[data-delete-student-duplicate],[data-delete-teacher-duplicate]{white-space:nowrap}

/* Citas CAIP · solicitud, confirmación y cancelación */
.appointment-confirm-flow{border-left:4px solid #0b2c5c}
[data-appt-confirm]{white-space:nowrap}
[data-appt-delete],[data-student-cancel]{white-space:nowrap}
.appointments-v2-panel td:last-child .action-row{align-items:center;gap:6px;flex-wrap:wrap}
#confirm-appt-form .check{margin-top:6px}
#confirm-appt-form input[readonly]{background:#f4f7fb}
@media(max-width:720px){
 .appointments-v2-panel td:last-child .action-row{display:grid;grid-template-columns:1fr}
 .appointments-v2-panel td:last-child .btn{width:100%}
}

/* Consultorios · agenda visual por día y hora */
.room-availability-panel{overflow:hidden}
.room-agenda-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:12px}
.room-day-strip{display:grid;grid-template-columns:repeat(7,minmax(78px,1fr));gap:7px;margin:4px 0 14px;overflow-x:auto;padding-bottom:3px}
.room-day-strip button{border:1px solid #dbe4ef;background:#fff;border-radius:11px;padding:8px 7px;cursor:pointer;color:#53627a;text-align:center;min-width:78px}
.room-day-strip button b,.room-day-strip button span{display:block}
.room-day-strip button b{font-size:11px;text-transform:capitalize;color:#18345d}
.room-day-strip button span{font-size:9px;margin-top:2px;color:#738198}
.room-day-strip button.active{background:#0b2c5c;border-color:#0b2c5c}
.room-day-strip button.active b,.room-day-strip button.active span{color:#fff}
.room-agenda-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:5px 0 9px}
.room-agenda-summary span{font-weight:900;color:#102348;text-transform:capitalize}
.room-agenda-summary small{color:#718097}
.room-agenda-table-wrap{overflow:auto;border:1px solid #dbe4ef;border-radius:14px;background:#fff;max-height:590px}
.room-agenda-table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%}
.room-agenda-table th,.room-agenda-table td{border-right:1px solid #e6edf5;border-bottom:1px solid #e6edf5;padding:0;vertical-align:stretch}
.room-agenda-table thead th{position:sticky;top:0;z-index:3;background:#f4f7fb;min-width:135px;padding:9px 8px;text-align:center}
.room-agenda-table thead th small{display:block;color:#718097;font-size:8px;margin-top:2px;font-weight:600}
.room-agenda-table thead .room-agenda-hour-head{left:0;z-index:5;min-width:74px;background:#eaf0f7}
.room-agenda-table .room-agenda-hour{position:sticky;left:0;z-index:2;background:#f7f9fc;color:#18345d;min-width:74px;text-align:center;font-size:10px;font-weight:900;padding:8px}
.room-agenda-slot{width:100%;min-width:135px;min-height:58px;border:0;padding:7px 8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer}
.room-agenda-slot .dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-bottom:1px}
.room-agenda-slot b{font-size:9px;letter-spacing:.04em;text-transform:uppercase}
.room-agenda-slot small{font-size:8px;line-height:1.25}
.room-agenda-slot.available{background:#edf9f1;color:#176b36}
.room-agenda-slot.available:hover{background:#def4e6}
.room-agenda-slot.available .dot{background:#2eb75a}
.room-agenda-slot.occupied{background:#fff0f0;color:#a52e2e}
.room-agenda-slot.occupied:hover{background:#ffe3e3}
.room-agenda-slot.occupied .dot{background:#d84646}
.room-agenda-slot.closed{background:#f0f2f5;color:#8d97a6;cursor:not-allowed}
.room-agenda-slot.closed .dot{background:#9ca5b0}
.room-agenda-subtitle{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:15px 0 8px}
.room-agenda-subtitle b{color:#102348;font-size:12px}
.room-agenda-subtitle small{color:#718097}
@media(max-width:900px){
 .room-agenda-controls{grid-template-columns:1fr 1fr}
 .room-agenda-controls label:last-child{grid-column:1/-1}
 .room-day-strip{grid-template-columns:repeat(7,86px)}
}
@media(max-width:600px){
 .room-agenda-controls{grid-template-columns:1fr}
 .room-agenda-controls label:last-child{grid-column:auto}
 .room-agenda-summary,.room-agenda-subtitle{align-items:flex-start;flex-direction:column}
 .room-agenda-table thead th,.room-agenda-slot{min-width:120px}
}
