:root{font-family:"Segoe UI Variable","Segoe UI",system-ui,Arial,sans-serif;color:#17365e;font-synthesis:none}*{box-sizing:border-box}body{margin:0}.desktop{min-height:100vh;display:flex;flex-direction:column;background:radial-gradient(ellipse at 15% 87%,#b7cfff 0%,transparent 43%),radial-gradient(ellipse at 56% 72%,#c5f1f6 0%,transparent 46%),radial-gradient(ellipse at 90% 30%,#d9e0f6 0%,transparent 48%),linear-gradient(115deg,#eaf3ff,#d7e6fa 58%,#e1e4f8)}.header{height:62px;display:flex;justify-content:space-between;align-items:center;padding:0 25px}.identity{display:flex;align-items:center;gap:10px}.identity-icon{width:32px;height:32px;border-radius:10px;background:#fff;color:#2675b8;display:grid;place-items:center;font-size:21px}.identity strong,.identity small{display:block}.identity strong{font-size:13px;letter-spacing:2px}.identity small{font-size:9px;letter-spacing:2.3px;color:#5480b6;margin-top:3px}.header-status{font-size:10px;letter-spacing:1px;color:#009f87;font-weight:700;display:flex;align-items:center;gap:6px}.status-dot{width:7px;height:7px;display:inline-block;border-radius:50%;background:#0aa78f;flex:none}.today{color:#7c9ac4;font-weight:400;letter-spacing:0;margin-left:16px}.workspace{width:min(100% - 36px,966px);margin:66px auto 30px;flex:1}.kicker{font-size:10px;font-weight:800;letter-spacing:3px;color:#167aa8;margin:0 0 14px}h1{font-size:32px;letter-spacing:-1.3px;margin:0;font-weight:750;color:#17345b}.subtitle{font-size:12px;color:#7c9ec2;margin:9px 0 34px}.launchers{display:flex;align-items:flex-start;flex-wrap:wrap;gap:31px;margin:0 0 30px}.launcher{display:flex;flex-direction:column;align-items:center;gap:10px;min-width:72px;color:#173c6d}.launcher strong{font-size:11px;font-weight:650}.tile{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;box-shadow:0 10px 20px #41659e24,inset 0 1px 0 #ffffff55;color:#fff}.tile svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.blue{background:linear-gradient(135deg,#44a2ee,#1463bc)}.purple{background:linear-gradient(135deg,#a892ef,#6451ce)}.teal{background:linear-gradient(135deg,#2dd1c0,#00a69d)}.orange{background:linear-gradient(135deg,#ffcb7e,#e8933f)}.slate{background:linear-gradient(135deg,#91a3c3,#506b9d)}.indigo{background:linear-gradient(135deg,#84a0f2,#5669cc)}.quick{max-width:566px;border:1px solid #ffffffbb;background:#ffffff70;border-radius:14px;padding:16px 18px 14px;box-shadow:0 20px 45px #3d78ba13;backdrop-filter:blur(15px)}.quick-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.quick-head>strong{font-size:10px;letter-spacing:1.7px;color:#52749b}.quick-head>span{font-size:9px;letter-spacing:1.5px;color:#00a38e;font-weight:700;display:flex;align-items:center;gap:6px}.metrics{display:grid;grid-template-columns:repeat(4,1fr);margin-top:15px}.metrics>div{border-right:1px solid #c9d8e8;padding:0 16px}.metrics>div:first-child{padding-left:0}.metrics>div:last-child{border-right:0}.metrics b{display:block;font-size:23px;color:#234469}.metrics small{display:block;font-size:10px;color:#7f9bbc;margin-top:6px}.demo-note{font-size:11px;color:#7292b5;margin-top:20px}.taskbar{height:46px;background:#f5f9ffcc;border-top:1px solid #ffffffbd;display:flex;align-items:center;justify-content:space-between;padding:0 22px}.footer-brand{font-size:11px;font-weight:800;letter-spacing:-.5px;color:#182c41}.squares{color:#00b59d;margin-left:2px}.footer-right{display:flex;align-items:center;gap:12px;color:#6f90bb;font-size:11px}.footer-right #date{border-left:1px solid #cbd9e8;padding-left:12px}@media(max-width:700px){.header{padding:0 16px}.today{display:none}.workspace{margin:45px auto 25px}h1{font-size:26px}.launchers{gap:22px 12px;justify-content:flex-start}.launcher{min-width:83px}.quick{max-width:100%}.metrics>div{padding:0 8px}.metrics b{font-size:20px}.metrics small{font-size:9px}.footer-right{gap:7px}}
/* Identidad CEDECSI Campus: logo original en la barra inferior */
.footer-brand{display:flex;align-items:center}.footer-logo{display:block;width:75px;max-height:27px;height:auto;object-fit:contain;object-position:left center}

/* Login estilo CEDECSI Campus */
.login-main{flex:1;display:grid;place-items:center;padding:35px 18px 55px}.login-card{width:min(100%,430px);background:#ffffffaa;border:1px solid #ffffffd9;border-radius:23px;padding:35px;box-shadow:0 24px 65px #487bb52c;backdrop-filter:blur(22px)}.login-symbol{width:51px;height:51px;border-radius:15px;background:linear-gradient(135deg,#368bdf,#5e6dd8);display:grid;place-items:center;color:white;font-size:26px;margin-bottom:23px}.login-card h1{font-size:27px;letter-spacing:-1px}.login-card .subtitle{margin-bottom:28px}.login-card form{display:flex;flex-direction:column;gap:10px}.login-card label{font-size:12px;font-weight:650;color:#345377}.login-card input{height:45px;border:1px solid #cfdbed;border-radius:11px;background:#ffffffde;padding:0 13px;color:#17345b;font:inherit;font-size:13px;outline:none;margin-bottom:12px}.login-card input:focus{border-color:#3e8ddf;box-shadow:0 0 0 3px #438ddf25}.login-card button{border:0;border-radius:11px;background:linear-gradient(120deg,#2688dd,#4368cf);color:white;padding:14px;font:inherit;font-size:13px;font-weight:700;cursor:pointer}.login-card button:hover{filter:brightness(1.05)}.login-error{border-radius:10px;background:#fff0f0;color:#a33d48;font-size:12px;padding:12px;margin-bottom:16px}.login-note{text-align:center;font-size:11px;color:#829ab7;margin:23px 0 0}

/* Responsive integral del login: altura visible, anchura y pantallas pequeñas */
html{min-height:100%}
.login-desktop{min-height:100vh;min-height:100dvh;overflow-x:hidden}
.login-desktop .header{flex:0 0 auto;min-height:58px;height:auto;padding-block:10px}
.login-desktop .login-main{min-height:0;flex:1 1 auto;display:flex;align-items:center;justify-content:center;padding:clamp(12px,3vh,30px) 18px}
.login-desktop .login-card{width:min(100%,430px);padding:clamp(20px,3.5vh,35px);margin:auto;max-width:100%}
.login-desktop .login-symbol{width:clamp(40px,6vh,51px);height:clamp(40px,6vh,51px);margin-bottom:clamp(12px,2vh,23px)}
.login-desktop .login-card .subtitle{margin-bottom:clamp(15px,2.7vh,28px)}
.login-desktop .login-card input{height:clamp(39px,5.5vh,45px);margin-bottom:clamp(5px,1.3vh,12px)}
.login-desktop .login-card button{padding:clamp(10px,1.8vh,14px)}
.login-desktop .login-note{margin-top:clamp(12px,2vh,23px)}
.login-desktop .taskbar{flex:0 0 auto;min-height:42px;height:auto;padding-block:8px}
@media(max-width:480px){.login-desktop .header{padding-inline:14px}.login-desktop .header-status{font-size:9px}.login-desktop .login-main{padding:12px}.login-desktop .login-card{border-radius:17px;padding:22px 19px}.login-desktop .login-card h1{font-size:clamp(21px,6vw,27px)}.login-desktop .kicker{letter-spacing:1.6px;font-size:9px}.login-desktop .taskbar{padding-inline:14px}.login-desktop .footer-right{font-size:10px}}
@media(max-height:690px) and (min-width:481px){.login-desktop .header{min-height:46px;padding-block:5px}.login-desktop .login-main{padding:8px 16px}.login-desktop .login-card{padding:18px 26px}.login-desktop .login-symbol{width:38px;height:38px;margin-bottom:9px}.login-desktop .login-card h1{font-size:23px}.login-desktop .login-card .subtitle{margin-bottom:12px}.login-desktop .login-card input{height:36px;margin-bottom:3px}.login-desktop .login-card button{padding:10px}.login-desktop .login-note{margin-top:10px}.login-desktop .taskbar{min-height:36px;padding-block:5px}}
@media(max-height:510px){.login-desktop .login-main{align-items:flex-start}.login-desktop .login-card{margin:auto}.login-desktop .login-symbol{display:none}}

/* Banner corporativo del acceso SmartCitas */
.login-desktop .login-card{width:min(100%,540px);padding:clamp(15px,2.8vh,24px)}
.login-banner{width:100%;display:flex;justify-content:center;align-items:center;overflow:hidden;border-radius:12px;background:#edf5ff;margin-bottom:clamp(12px,2vh,18px)}
.login-banner img{display:block;width:100%;height:auto;max-height:clamp(95px,20vh,155px);object-fit:contain}
.login-card-content{max-width:365px;margin-inline:auto;width:100%}
.login-card-content h1{font-size:clamp(21px,2.5vw,26px)}
@media(max-width:480px){.login-desktop .login-card{padding:15px}.login-banner{border-radius:10px}.login-banner img{max-height:125px}.login-card-content{padding-inline:2px}}
@media(max-height:690px){.login-banner img{max-height:clamp(75px,14vh,105px)}.login-banner{margin-bottom:9px}.login-card-content .subtitle{margin-bottom:12px}}

/* Refinamiento visual: banner a ancho completo y formulario proporcionado */
.login-desktop .login-card{width:min(100%,490px);padding:0;overflow:hidden;border-radius:22px;background:rgba(250,253,255,.88);box-shadow:0 24px 60px rgba(37,91,153,.19)}
.login-desktop .login-banner{display:block;width:100%;margin:0;background:#eaf5ff;border-radius:0;overflow:hidden}
.login-desktop .login-banner img{width:100%;height:auto;max-height:none;object-fit:initial;display:block}
.login-desktop .login-card-content{width:100%;max-width:none;padding:clamp(18px,3vh,27px) clamp(24px,5vw,44px) clamp(17px,2.7vh,24px)}
.login-desktop .login-card-content h1{font-size:clamp(22px,2.4vw,26px);margin:0 0 4px}
.login-desktop .login-card-content .subtitle{margin:0 0 clamp(17px,2.6vh,24px)}
.login-desktop .login-card form{gap:7px}
.login-desktop .login-card label{font-size:12px}
.login-desktop .login-card input{width:100%;height:42px;margin:0 0 8px;border-radius:10px}
.login-desktop .login-card button{min-height:42px;padding:10px 14px;margin-top:3px}
.login-desktop .login-note{margin:14px 0 0}
@media(max-width:520px){.login-desktop .login-card{width:min(100%,420px);border-radius:17px}.login-desktop .login-card-content{padding:20px 21px}.login-desktop .login-card-content h1{font-size:22px}}
@media(max-height:740px) and (min-width:521px){.login-desktop .login-card{width:min(100%,445px)}.login-desktop .login-card-content{padding:13px 30px 15px}.login-desktop .login-card-content .subtitle{margin-bottom:12px}.login-desktop .login-card input{height:37px;margin-bottom:4px}.login-desktop .login-card button{min-height:37px}.login-desktop .login-note{margin-top:9px}}
@media(max-height:540px){.login-desktop .login-main{align-items:flex-start}.login-desktop .login-card{margin:auto}}

/* Escritorio principal con sesión y permisos diferenciados */
.dashboard-desktop{min-height:100vh;min-height:100dvh}
.dashboard-workspace{margin-top:clamp(35px,7vh,75px)}
.dashboard-workspace .subtitle{margin-bottom:13px}
.desktop-meta{display:flex;align-items:center;gap:16px;margin-bottom:28px;flex-wrap:wrap}
.role-chip{font-size:10px;letter-spacing:1px;font-weight:750;color:#376da5;background:#ffffff8c;border:1px solid #ffffffcf;border-radius:999px;padding:8px 12px}
.desktop-meta form{margin:0}
.logout-btn{border:1px solid #c7d8ee;background:#ffffffb5;color:#3c6390;border-radius:9px;padding:8px 12px;font-family:inherit;font-size:11px;cursor:pointer}
.logout-btn:hover{background:#fff;border-color:#8bb6e8}
.dashboard-workspace .launcher{cursor:default}
.dashboard-workspace .launcher .tile{transition:transform .18s,box-shadow .18s}
.dashboard-workspace .launcher:hover .tile{transform:translateY(-2px);box-shadow:0 14px 25px #41659e35}
@media(max-width:600px){.dashboard-workspace{margin-top:34px}.dashboard-workspace h1{font-size:clamp(23px,6vw,30px)}.dashboard-workspace .launchers{gap:20px 10px}.dashboard-workspace .launcher{min-width:85px}.dashboard-workspace .quick{width:100%}.dashboard-workspace .quick-head{flex-wrap:wrap}}
