:root{--primary:#123B72;--primary-dark:#0B2850;--primary-900:#071D3A;--primary-light:#EAF2FB;--accent:#2F6FED;--background:#F6F8FC;--surface:#FFFFFF;--surface-soft:#F9FAFC;--text-primary:#172033;--text-secondary:#667085;--success:#16A34A;--warning:#D97706;--danger:#DC2626;--info:#2563EB;--border:#E5E7EB;--border-strong:#D8DEE8;--radius-sm:10px;--radius:16px;--radius-lg:22px;--shadow-sm:0 2px 8px rgba(17,39,72,.05);--shadow:0 12px 35px rgba(17,39,72,.08);--sidebar-w:276px;--sidebar-collapsed:84px;--transition:180ms ease}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--background);color:var(--text-primary);font-family:Inter,Manrope,"Plus Jakarta Sans","Segoe UI",Arial,sans-serif;font-size:14px;line-height:1.5}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:3px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(47,111,237,.25)}
.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar-w);background:var(--primary-dark);color:#D8E3F1;padding:18px 14px;z-index:40;display:flex;flex-direction:column;transition:width var(--transition),transform var(--transition);overflow-y:auto}.brand-wrap{display:flex;align-items:center;gap:12px;padding:4px 6px 18px;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:12px}.logo-mark{width:42px;height:42px;border-radius:13px;background:#fff;color:var(--primary-dark);display:grid;place-items:center;font-weight:900;letter-spacing:-1px;box-shadow:0 7px 20px rgba(0,0,0,.16);flex:none}.brand-copy{min-width:0;display:flex;flex-direction:column}.brand-copy strong{color:#fff;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand-copy small{font-size:10px;color:#9FB3C8;white-space:nowrap}.sidebar-collapse{margin-left:auto;border:0;background:rgba(255,255,255,.08);color:#fff;width:28px;height:28px;border-radius:8px;cursor:pointer}.nav-menu{display:flex;flex-direction:column;gap:3px}.navtitle{padding:14px 11px 6px;color:#7891AB;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.09em}.admin-title{margin-top:10px;border-top:1px solid rgba(255,255,255,.08);padding-top:20px}.navlink{min-height:42px;border-radius:11px;padding:9px 11px;display:flex;align-items:center;gap:11px;color:#CBD8E6;transition:background var(--transition),color var(--transition),transform var(--transition)}.navlink:hover{background:rgba(255,255,255,.08);color:#fff;transform:translateX(1px)}.navlink.active{background:#fff;color:var(--primary-dark);font-weight:750;box-shadow:0 7px 20px rgba(0,0,0,.08)}.navicon{width:22px;text-align:center;font-size:17px;flex:none}.navbadge{margin-left:auto;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#DCEAFF;color:#174E93;display:grid;place-items:center;font-size:10px;font-weight:800}.workspace{min-height:100vh;margin-left:var(--sidebar-w);transition:margin-left var(--transition);display:flex;flex-direction:column}.sidebar-collapsed .sidebar{width:var(--sidebar-collapsed)}.sidebar-collapsed .workspace{margin-left:var(--sidebar-collapsed)}.sidebar-collapsed .brand-copy,.sidebar-collapsed .navlink>span:not(.navicon):not(.navbadge),.sidebar-collapsed .navtitle,.sidebar-collapsed .sidebar-collapse{display:none}.sidebar-collapsed .brand-wrap{justify-content:center}.sidebar-collapsed .navlink{justify-content:center}.sidebar-collapsed .navbadge{position:absolute;margin-left:24px;margin-top:-22px}.sidebar-overlay{display:none}
.topbar{height:72px;position:sticky;top:0;z-index:30;background:rgba(246,248,252,.93);backdrop-filter:blur(14px);border-bottom:1px solid rgba(216,222,232,.8);display:flex;align-items:center;justify-content:space-between;padding:0 30px}.header-left,.header-actions{display:flex;align-items:center;gap:10px}.breadcrumb-inline{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-secondary)}.breadcrumb-inline strong{color:var(--text-primary)}.mobile-menu{display:none;border:0;background:transparent;font-size:22px}.searchbox{width:min(380px,30vw);height:40px;border:1px solid var(--border);background:var(--surface);display:flex;align-items:center;gap:8px;border-radius:12px;padding:0 11px;box-shadow:var(--shadow-sm)}.searchbox input{width:100%;border:0;background:transparent;color:var(--text-primary)}.header-icon{position:relative;width:40px;height:40px;border:1px solid var(--border);border-radius:12px;background:var(--surface);display:grid;place-items:center;font-size:17px;transition:transform var(--transition),border-color var(--transition)}.header-icon:hover{transform:translateY(-1px);border-color:#B7C5DA}.count-dot{position:absolute;right:-4px;top:-6px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--danger);color:white;font-size:9px;display:grid;place-items:center}.user-menu{position:relative}.user-trigger{display:flex;align-items:center;gap:9px;border:0;background:transparent;border-radius:12px;padding:4px 6px;cursor:pointer}.avatar{width:38px;height:38px;border-radius:50%;background:var(--primary-light);color:var(--primary);display:grid;place-items:center;font-size:12px;font-weight:900;flex:none}.user-copy{display:flex;flex-direction:column;text-align:left;line-height:1.15}.user-copy small{color:var(--text-secondary);font-size:10px}.user-copy strong{font-size:12px}.user-dropdown{display:none;position:absolute;right:0;top:48px;width:210px;background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);padding:8px;z-index:60}.user-dropdown.open{display:grid}.user-dropdown a,.user-dropdown button{border:0;background:transparent;text-align:left;padding:10px 11px;border-radius:9px;width:100%;cursor:pointer}.user-dropdown a:hover,.user-dropdown button:hover{background:var(--primary-light)}
.main-content{padding:28px 32px 40px;flex:1;min-width:0}.app-footer{display:flex;justify-content:space-between;padding:18px 32px;border-top:1px solid var(--border);font-size:11px;color:var(--text-secondary)}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin:0 0 22px}.page-head h1{font-size:28px;line-height:1.15;margin:5px 0 6px;letter-spacing:-.025em}.page-head p{margin:0}.breadcrumbs{font-size:11px;color:var(--text-secondary)}.eyebrow{font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.12em;color:var(--primary)}
h1,h2,h3{letter-spacing:-.015em}h2{font-size:18px;margin:28px 0 13px}h3{font-size:15px;margin:0 0 8px}.muted{color:var(--text-secondary)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:18px;transition:box-shadow var(--transition),transform var(--transition),border-color var(--transition)}.interactive-card:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:#CED7E5}.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.55fr);gap:18px}.stack{display:grid;gap:12px}.metric-card{min-height:122px;position:relative;overflow:hidden}.metric-icon{width:38px;height:38px;border-radius:11px;background:var(--primary-light);color:var(--primary);display:grid;place-items:center;margin-bottom:15px}.metric-label{font-size:11px;color:var(--text-secondary);font-weight:700}.metric{font-size:28px;font-weight:850;line-height:1.1;margin-top:4px}.metric-foot{font-size:10px;color:var(--text-secondary);margin-top:8px}.status{display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border-radius:999px;font-size:10px;font-weight:800}.status-ok{background:#EAF8EF;color:#137A3B}.status-off{background:#FDECEC;color:#B42318}.status-warn{background:#FFF4E5;color:#9A5B00}.status-info{background:#EAF2FB;color:#174E93}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;border:0;border-radius:10px;background:var(--primary);color:#fff;padding:8px 13px;font-weight:750;cursor:pointer;transition:transform var(--transition),background var(--transition),box-shadow var(--transition)}.btn:hover{background:var(--primary-dark);transform:translateY(-1px)}.btn.secondary{background:var(--primary-light);color:var(--primary)}.btn.ghost{background:#fff;color:var(--text-primary);border:1px solid var(--border)}.btn.danger{background:var(--danger)}.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.input,select,textarea{width:100%;border:1px solid var(--border-strong);border-radius:10px;background:#fff;padding:10px 11px;color:var(--text-primary);transition:border-color var(--transition),box-shadow var(--transition)}.input:focus,select:focus,textarea:focus{border-color:#9DB7E0;box-shadow:0 0 0 4px rgba(47,111,237,.08)}textarea{min-height:100px;resize:vertical}label{font-size:12px;font-weight:700;color:#344054}.formgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.formgrid .full{grid-column:1/-1}.filterbar{display:flex;align-items:center;gap:10px;margin-bottom:16px}.filterbar .input{max-width:360px}.view-switch{margin-left:auto;display:flex;border:1px solid var(--border);border-radius:10px;padding:3px;background:#fff}.view-switch button{border:0;background:transparent;padding:6px 9px;border-radius:7px;color:var(--text-secondary);cursor:pointer}.view-switch button.active{background:var(--primary-light);color:var(--primary)}
.welcome-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 26px;background:linear-gradient(100deg,#0B2850,#123B72 68%,#1D4E89);border-radius:var(--radius-lg);color:white;box-shadow:0 18px 40px rgba(11,40,80,.17);margin-bottom:18px;overflow:hidden;position:relative}.welcome-hero:after{content:"";position:absolute;width:240px;height:240px;border:1px solid rgba(255,255,255,.12);border-radius:50%;right:-70px;top:-120px}.welcome-hero h1{margin:2px 0 7px;font-size:27px}.welcome-hero p{margin:0;color:#D7E3F1}.hero-label{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#AEC4DE;font-weight:800}.hero-actions{position:relative;z-index:2}.next-class{display:grid;grid-template-columns:84px 1fr auto;align-items:center;gap:16px;border-left:4px solid var(--accent)}.date-tile{width:70px;height:70px;border-radius:15px;background:var(--primary-light);display:grid;place-items:center;text-align:center;color:var(--primary)}.date-tile strong{font-size:24px;line-height:1}.date-tile span{font-size:10px;text-transform:uppercase}.coursegrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.course-card{padding:0;overflow:hidden}.course-cover{height:122px;background:linear-gradient(135deg,#DDEAF8,#BFD5EF);position:relative}.course-cover img{width:100%;height:100%;object-fit:cover}.course-cover .course-code{position:absolute;left:14px;top:14px;background:rgba(255,255,255,.9);backdrop-filter:blur(5px);padding:5px 8px;border-radius:8px;font-size:10px;font-weight:850;color:var(--primary-dark)}.course-body{padding:17px}.course-body h3{font-size:16px;margin-bottom:4px}.course-meta{display:flex;gap:12px;flex-wrap:wrap;color:var(--text-secondary);font-size:11px;margin:13px 0}.progress{height:6px;background:#EAEFF5;border-radius:99px;overflow:hidden}.progress>span{display:block;height:100%;background:var(--accent);border-radius:99px}.subject-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.subject-card{display:flex;gap:13px;align-items:flex-start}.subject-icon{width:42px;height:42px;border-radius:12px;background:var(--primary-light);color:var(--primary);display:grid;place-items:center;font-weight:900;flex:none}.document-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.document-card{display:flex;flex-direction:column;min-height:220px}.pdficon{width:46px;height:54px;border-radius:10px;background:#FFF0F0;color:#B42318;border:1px solid #F8D1D1;display:grid;place-items:center;font-weight:900;font-size:10px;margin-bottom:14px}.document-card .actions{margin-top:auto}.forum-list{display:grid;gap:10px}.forum-topic{display:grid;grid-template-columns:42px 1fr auto;gap:12px;align-items:start}.forum-meta{font-size:11px;color:var(--text-secondary);display:flex;gap:9px;flex-wrap:wrap}.avatar.small{width:34px;height:34px}.topic-stats{text-align:right;font-size:11px;color:var(--text-secondary)}
.tablewrap{overflow:auto;border:1px solid var(--border);border-radius:var(--radius);background:#fff}.table{width:100%;border-collapse:collapse}.table th{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);font-weight:800;background:#FAFBFD}.table th,.table td{padding:12px 14px;border-bottom:1px solid #EEF1F5;text-align:left;white-space:nowrap}.table tr:last-child td{border-bottom:0}.tabs{display:flex;gap:5px;overflow:auto;border-bottom:1px solid var(--border);padding:0 0 9px}.tabs a,.tabs button{border:0;background:transparent;padding:8px 11px;border-radius:9px;white-space:nowrap;color:var(--text-secondary);cursor:pointer}.tabs a:hover,.tabs button:hover,.tabs .active{background:var(--primary-light);color:var(--primary);font-weight:700}.tabpane{display:none;margin-top:16px}.tabpane.active{display:block}.course-hero{border-radius:var(--radius-lg);overflow:hidden;background:linear-gradient(120deg,var(--primary-dark),var(--primary));color:white;padding:25px;position:relative;margin-bottom:16px}.course-hero p{color:#D7E3F1}.course-hero .status{background:rgba(255,255,255,.13);color:white}.course-hero-grid{display:grid;grid-template-columns:1fr auto;gap:20px}.course-facts{display:flex;gap:20px;flex-wrap:wrap;margin-top:18px;font-size:11px;color:#D7E3F1}.course-facts strong{color:#fff;display:block;font-size:14px}
.calendar-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.calendarlist{display:grid;gap:10px}.event{display:grid;grid-template-columns:120px 1fr auto;gap:14px;align-items:center}.event-time{font-size:11px;color:var(--text-secondary)}.event-dot{width:9px;height:9px;border-radius:50%;background:var(--accent);display:inline-block;margin-right:6px}.calendar-agenda{background:#fff;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.calendar-day{padding:11px 15px;background:#FAFBFD;border-bottom:1px solid var(--border);font-weight:800;color:#344054}.calendar-event{display:grid;grid-template-columns:90px 1fr auto;gap:13px;padding:14px 15px;border-bottom:1px solid #EEF1F5;align-items:center}.calendar-event:last-child{border-bottom:0}
.chat{display:grid;grid-template-columns:330px minmax(0,1fr);gap:14px;height:calc(100vh - 150px);min-height:560px}.chatlist{padding:0;overflow:hidden;display:flex;flex-direction:column}.chatlist-head{padding:15px;border-bottom:1px solid var(--border)}.chat-scroll{overflow:auto}.chatitem{width:100%;border:0;background:#fff;text-align:left;padding:12px 14px;border-bottom:1px solid #EEF1F5;display:grid;grid-template-columns:38px 1fr auto;gap:10px;align-items:center;cursor:pointer}.chatitem:hover,.chatitem.active{background:#F1F6FD}.chatitem strong{display:block;font-size:12px}.chatitem small{display:block;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.online-dot{width:8px;height:8px;background:#22A35A;border:2px solid #fff;border-radius:50%;position:absolute;right:0;bottom:1px}.avatar-wrap{position:relative;width:38px}.chat-panel{padding:0;display:flex;flex-direction:column;overflow:hidden}.chat-head{height:64px;padding:12px 15px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.messages{flex:1;overflow:auto;background:#F8FAFD;padding:20px}.msg{margin:9px 0;display:flex}.msg.mine{justify-content:flex-end}.bubble{max-width:min(72%,560px);background:#fff;border:1px solid var(--border);border-radius:14px 14px 14px 4px;padding:9px 11px;box-shadow:var(--shadow-sm)}.msg.mine .bubble{background:var(--primary);border-color:var(--primary);color:#fff;border-radius:14px 14px 4px 14px}.msgmeta{font-size:9px;color:#98A2B3;margin-top:4px}.msg.mine .msgmeta{color:#D6E4F7}.chat-compose{padding:12px;border-top:1px solid var(--border);display:flex;gap:8px;background:#fff}.chat-compose .input{margin:0}.chat-empty{height:100%;display:grid;place-items:center;text-align:center;color:var(--text-secondary)}
.notification-list{display:grid;gap:9px}.notification-item{display:grid;grid-template-columns:42px 1fr auto;gap:12px;align-items:start}.notification-item.unread{border-left:3px solid var(--accent);background:#FBFDFF}.notification-icon{width:40px;height:40px;border-radius:12px;background:var(--primary-light);color:var(--primary);display:grid;place-items:center}.toastmsg{padding:12px 14px;border-radius:11px;margin-bottom:14px;box-shadow:var(--shadow-sm);animation:toastIn .2s ease}.toastmsg.success{background:#EAF8EF;color:#137A3B}.toastmsg.error{background:#FDECEC;color:#B42318}@keyframes toastIn{from{opacity:0;transform:translateY(-6px)}}.chattoast{position:fixed;right:18px;bottom:18px;background:var(--primary-dark);color:#fff;padding:11px 14px;border-radius:10px;box-shadow:var(--shadow);z-index:100}.empty{display:grid;place-items:center;text-align:center;gap:6px;min-height:180px;color:var(--text-secondary)}.empty-icon{width:50px;height:50px;border-radius:14px;background:var(--primary-light);color:var(--primary);display:grid;place-items:center;font-size:20px}.skeleton{background:linear-gradient(90deg,#EEF1F5 25%,#F7F8FA 37%,#EEF1F5 63%);background-size:400% 100%;animation:skeleton 1.2s ease infinite;border-radius:8px}@keyframes skeleton{0%{background-position:100% 0}100%{background-position:0 0}}.profile-hero{display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center}.profile-avatar{width:78px;height:78px;border-radius:20px;background:var(--primary);color:#fff;display:grid;place-items:center;font-size:25px;font-weight:900}.profile-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:15px}.fact{padding:13px;background:var(--surface-soft);border:1px solid var(--border);border-radius:12px}.fact span{display:block;color:var(--text-secondary);font-size:10px}.fact strong{font-size:13px}.activity-list{display:grid}.activity-item{padding:11px 0;border-bottom:1px solid var(--border)}.activity-item:last-child{border-bottom:0}.bar-chart{display:flex;align-items:end;gap:9px;height:170px;padding-top:15px}.bar-col{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%;gap:5px}.bar{width:100%;max-width:34px;background:var(--accent);border-radius:6px 6px 2px 2px;min-height:4px}.bar-label{font-size:9px;color:var(--text-secondary)}
.loginpage{min-height:100vh;display:grid;place-items:center;background:linear-gradient(145deg,#EEF4FB,#F8FAFD)}.loginbox{width:min(430px,92vw);padding:30px;border-radius:22px}.loginbox h1{margin-bottom:3px}.pagination{display:flex;gap:6px;margin-top:16px}.pagination a{width:34px;height:34px;border:1px solid var(--border);border-radius:9px;background:#fff;display:grid;place-items:center}.pagination a.active{background:var(--primary);color:#fff}.logbox{background:#0A1727;color:#DDE7F1;padding:17px;border-radius:12px;max-height:560px;overflow:auto;white-space:pre-wrap;font-size:11px}
@media(max-width:1180px){.grid{grid-template-columns:repeat(2,1fr)}.coursegrid,.subject-grid,.document-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.user-copy{display:none}.searchbox{width:280px}.profile-facts{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.sidebar{transform:translateX(-100%);width:var(--sidebar-w)}.workspace,.sidebar-collapsed .workspace{margin-left:0}.sidebar-collapsed .sidebar{width:var(--sidebar-w)}.sidebar-collapsed .brand-copy,.sidebar-collapsed .navlink>span:not(.navicon):not(.navbadge),.sidebar-collapsed .navtitle,.sidebar-collapsed .sidebar-collapse{display:initial}.navopen .sidebar{transform:translateX(0)}.navopen .sidebar-overlay{display:block;position:fixed;inset:0;background:rgba(5,20,40,.45);z-index:35}.mobile-menu{display:block}.sidebar-collapse{display:none}.topbar{padding:0 16px}.main-content{padding:20px 16px 34px}.breadcrumb-inline{display:none}.chat{grid-template-columns:1fr;height:auto}.chatlist{max-height:330px}.chat-panel{min-height:520px}.app-footer{padding:16px}.searchbox{width:min(42vw,300px)}}
@media(max-width:620px){body{font-size:13px}.topbar{height:64px}.searchbox{display:none}.header-icon{width:36px;height:36px}.user-trigger>span:last-child,.user-copy{display:none}.main-content{padding:16px 12px 28px}.page-head{align-items:flex-start;flex-direction:column}.page-head h1{font-size:23px}.welcome-hero{padding:20px;align-items:flex-start;flex-direction:column}.welcome-hero h1{font-size:22px}.hero-actions{width:100%}.hero-actions .btn{width:100%}.grid,.grid3,.coursegrid,.subject-grid,.document-grid,.formgrid,.profile-facts{grid-template-columns:1fr}.formgrid .full{grid-column:auto}.next-class{grid-template-columns:64px 1fr}.next-class>.btn{grid-column:1/-1;width:100%}.date-tile{width:58px;height:58px}.event,.calendar-event{grid-template-columns:1fr}.filterbar{align-items:stretch;flex-direction:column}.filterbar .input{max-width:none}.view-switch{margin-left:0;align-self:flex-end}.responsive-table thead{display:none}.responsive-table,.responsive-table tbody,.responsive-table tr,.responsive-table td{display:block;width:100%}.responsive-table tr{padding:10px 12px;border-bottom:1px solid var(--border)}.responsive-table td{border:0;padding:5px 0;white-space:normal}.chat{display:block}.chatlist{max-height:280px;margin-bottom:10px}.chat-panel{min-height:calc(100vh - 270px)}.bubble{max-width:88%}.forum-topic{grid-template-columns:38px 1fr}.topic-stats{grid-column:2;text-align:left}.notification-item{grid-template-columns:38px 1fr}.notification-item>time{grid-column:2}.course-hero-grid{grid-template-columns:1fr}.profile-hero{grid-template-columns:auto 1fr}.profile-hero>.btn{grid-column:1/-1;width:100%}.app-footer{flex-direction:column;gap:3px}}


/* Sistema de iconografía Universidad Digital */
.ui-icon{width:1.15em;height:1.15em;display:block;flex:none;vector-effect:non-scaling-stroke}
.navicon{width:22px;height:22px;display:grid;place-items:center;flex:none}
.navicon .ui-icon{width:19px;height:19px;stroke-width:1.8}
.header-icon{display:grid;place-items:center}
.header-icon .ui-icon{width:19px;height:19px}
.searchbox>span{display:grid;place-items:center;color:var(--text-secondary)}
.searchbox .ui-icon{width:18px;height:18px}
.mobile-menu .ui-icon,.sidebar-collapse .ui-icon{width:18px;height:18px;margin:auto}
.user-chevron{display:grid;place-items:center}.user-chevron .ui-icon{width:15px;height:15px}
.module-heading{display:flex;align-items:flex-start;gap:13px}
.module-heading-icon{width:42px;height:42px;border-radius:12px;background:var(--primary-light);color:var(--primary);display:grid;place-items:center;flex:none;border:1px solid rgba(18,59,114,.08)}
.module-heading-icon .ui-icon{width:21px;height:21px}
.empty-icon{display:grid;place-items:center}
.empty-icon .ui-icon{width:28px;height:28px}
.metric-icon{display:grid;place-items:center}
.metric-icon .ui-icon{width:22px;height:22px}
.notification-icon{display:grid;place-items:center}.notification-icon .ui-icon{width:20px;height:20px}
.btn .ui-icon{width:16px;height:16px;display:inline-block;vertical-align:-3px;margin-right:6px}
.action-icon{display:inline-grid;place-items:center}.action-icon .ui-icon{width:16px;height:16px}
@media(max-width:700px){.module-heading-icon{width:38px;height:38px;border-radius:11px}.module-heading-icon .ui-icon{width:19px;height:19px}}

.view-switch button{display:inline-flex;align-items:center;gap:6px}.view-switch .ui-icon{width:15px;height:15px}.pdficon{display:flex!important;align-items:center;gap:7px}.pdficon .ui-icon{width:22px;height:22px}

.course-title-row{display:flex;align-items:center;gap:12px;margin-top:5px}.course-title-row h1{margin:0}.course-title-row .module-heading-icon{background:rgba(255,255,255,.12);color:inherit;border-color:rgba(255,255,255,.14)}


/* ==========================================================
   V3.7 · NAVEGACIÓN UNIVERSIDAD DIGITAL
   Desktop: sidebar expandido/compacto. Tablet: rail compacto.
   Smartphone: drawer con overlay.
   ========================================================== */
:root{
  --sidebar-open:276px;
  --sidebar-compact:78px;
  --nav-speed:240ms cubic-bezier(.2,.8,.2,1);
  --tooltip-speed:150ms ease;
}

/* Base desktop */
body.menu-open{overflow:auto}
.app-shell{min-height:100vh}
.sidebar{
  width:var(--sidebar-open)!important;
  transform:translateX(0)!important;
  box-shadow:none!important;
  transition:width var(--nav-speed),transform var(--nav-speed),box-shadow var(--nav-speed)!important;
  overflow-x:visible;
}
.workspace{
  margin-left:var(--sidebar-open)!important;
  transition:margin-left var(--nav-speed)!important;
}
.sidebar-overlay{display:none!important}
.sidebar-close{display:none!important}
.mobile-menu{display:grid!important}
.header-brand-mobile{display:none;align-items:center;gap:8px;min-width:0}
.header-brand-mobile strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.header-brand-mark{width:28px;height:28px;display:grid;place-items:center;color:var(--primary)}
.header-brand-mark .ui-icon{width:22px;height:22px}
.logo-mark .ui-icon{width:24px;height:24px}

/* Compactación desktop */
body.sidebar-collapsed .sidebar{width:var(--sidebar-compact)!important}
body.sidebar-collapsed .workspace{margin-left:var(--sidebar-compact)!important}
body.sidebar-collapsed .brand-wrap{justify-content:center;padding-inline:0}
body.sidebar-collapsed .brand-copy,
body.sidebar-collapsed .navtitle,
body.sidebar-collapsed .navlabel,
body.sidebar-collapsed .submenu-chevron{display:none!important}
body.sidebar-collapsed .navlink,
body.sidebar-collapsed .nav-group-toggle{justify-content:center!important;padding-inline:8px}
body.sidebar-collapsed .navicon{width:22px;margin:0}
body.sidebar-collapsed .navbadge{position:absolute!important;right:5px;top:3px;margin:0!important;min-width:17px;height:17px;padding:0 4px;font-size:9px}
body.sidebar-collapsed .nav-submenu{display:none!important}
body.sidebar-collapsed .admin-title{border:0;margin:5px 0 0;padding:0}

/* Menú y submenús */
.nav-menu{overflow:visible}
.navlink,.nav-group-toggle{position:relative;min-height:44px}
.nav-group-toggle{
  width:100%;border:0;background:transparent;color:#CBD8E6;border-radius:11px;padding:9px 11px;
  display:flex;align-items:center;gap:11px;text-align:left;cursor:pointer;font:inherit;
  transition:background 150ms ease,color 150ms ease,transform 150ms ease;
}
.nav-group-toggle:hover{background:rgba(255,255,255,.08);color:#fff;transform:translateX(1px)}
.nav-group.is-current>.nav-group-toggle{color:#fff;background:rgba(255,255,255,.06)}
.submenu-chevron{margin-left:auto;display:grid;place-items:center;transition:transform 200ms ease}
.submenu-chevron .ui-icon{width:16px;height:16px}
.nav-group-toggle[aria-expanded="true"] .submenu-chevron{transform:rotate(180deg)}
.nav-submenu{max-height:0;opacity:0;overflow:hidden;transition:max-height 220ms ease,opacity 180ms ease;padding-left:9px}
.nav-submenu.open{max-height:680px;opacity:1}
.nav-subitem{min-height:39px;font-size:12px;margin-left:7px;border-left:1px solid rgba(255,255,255,.10);border-radius:0 10px 10px 0}
.nav-subitem .navicon{width:19px}
.nav-subitem .ui-icon{width:17px;height:17px}
.navlink.active{position:relative}
.navlink.active::before{content:"";position:absolute;left:-5px;top:10px;bottom:10px;width:3px;border-radius:4px;background:#6EA8FF}

/* Tooltips generales para controles sólo-icono */
[data-tooltip]{position:relative}
[data-tooltip]::after{
  content:attr(data-tooltip);position:absolute;z-index:120;pointer-events:none;white-space:nowrap;
  background:#172033;color:#fff;font-size:11px;font-weight:650;line-height:1;padding:8px 9px;border-radius:8px;
  box-shadow:0 8px 24px rgba(7,29,58,.22);opacity:0;visibility:hidden;transform:translateY(-2px);
  transition:opacity var(--tooltip-speed),transform var(--tooltip-speed),visibility var(--tooltip-speed);
}
[data-tooltip]::before{
  content:"";position:absolute;z-index:121;pointer-events:none;opacity:0;visibility:hidden;
  border:5px solid transparent;transition:opacity var(--tooltip-speed),visibility var(--tooltip-speed);
}
[data-tooltip]:hover::after,[data-tooltip]:focus-visible::after,
[data-tooltip]:hover::before,[data-tooltip]:focus-visible::before{opacity:1;visibility:visible}
.header-icon[data-tooltip]::after,.mobile-menu[data-tooltip]::after,.sidebar-close[data-tooltip]::after{top:calc(100% + 9px);left:50%;transform:translate(-50%,-2px)}
.header-icon[data-tooltip]:hover::after,.mobile-menu[data-tooltip]:hover::after{transform:translate(-50%,0)}
.header-icon[data-tooltip]::before,.mobile-menu[data-tooltip]::before{top:calc(100% - 1px);left:50%;transform:translateX(-50%);border-bottom-color:#172033}

/* Tooltip lateral sólo cuando la barra está compacta */
body.sidebar-collapsed .navlink[data-tooltip]::after,
body.sidebar-collapsed .nav-group-toggle[data-tooltip]::after{
  left:calc(100% + 13px);top:50%;transform:translate(0,-50%);
}
body.sidebar-collapsed .navlink[data-tooltip]::before,
body.sidebar-collapsed .nav-group-toggle[data-tooltip]::before{
  left:calc(100% + 3px);top:50%;transform:translateY(-50%);border-right-color:#172033;
}
body:not(.sidebar-collapsed) .navlink[data-tooltip]::after,
body:not(.sidebar-collapsed) .navlink[data-tooltip]::before,
body:not(.sidebar-collapsed) .nav-group-toggle[data-tooltip]::after,
body:not(.sidebar-collapsed) .nav-group-toggle[data-tooltip]::before{display:none}

/* Foco accesible */
.navlink:focus-visible,.nav-group-toggle:focus-visible,.mobile-menu:focus-visible,.sidebar-close:focus-visible,.header-icon:focus-visible,.user-trigger:focus-visible{
  outline:3px solid rgba(110,168,255,.55);outline-offset:2px;
}
.user-dropdown a,.user-dropdown button{display:flex;align-items:center;gap:9px}
.user-dropdown .ui-icon{width:17px;height:17px}

/* Tablet: rail compacto de inicio; al abrir, panel completo sobre contenido. */
@media (min-width:768px) and (max-width:1099px){
  body .sidebar{width:var(--sidebar-compact)!important;transform:translateX(0)!important;box-shadow:none!important}
  body .workspace{margin-left:var(--sidebar-compact)!important}
  body .brand-wrap{justify-content:center;padding-inline:0}
  body .brand-copy,body .navtitle,body .navlabel,body .submenu-chevron{display:none!important}
  body .navlink,body .nav-group-toggle{justify-content:center!important;padding-inline:8px}
  body .nav-submenu{display:none!important}
  body .navbadge{position:absolute!important;right:5px;top:3px;margin:0!important;min-width:17px;height:17px;padding:0 4px;font-size:9px}
  body.tablet-menu-open{overflow:hidden}
  body.tablet-menu-open .sidebar{width:var(--sidebar-open)!important;box-shadow:18px 0 46px rgba(7,29,58,.20)!important}
  body.tablet-menu-open .brand-wrap{justify-content:flex-start;padding:4px 6px 18px}
  body.tablet-menu-open .brand-copy,body.tablet-menu-open .navtitle,body.tablet-menu-open .navlabel,body.tablet-menu-open .submenu-chevron{display:flex!important}
  body.tablet-menu-open .navtitle{display:block!important}
  body.tablet-menu-open .navlink,body.tablet-menu-open .nav-group-toggle{justify-content:flex-start!important;padding-inline:11px}
  body.tablet-menu-open .nav-submenu.open{display:block!important}
  body.tablet-menu-open .navbadge{position:static!important;margin-left:auto!important}
  body.tablet-menu-open .sidebar-overlay{display:block!important;position:fixed;inset:0;background:rgba(5,20,40,.46);z-index:35;opacity:1;visibility:visible;pointer-events:auto;backdrop-filter:blur(2px)}
  body:not(.tablet-menu-open) .navlink[data-tooltip]::after,body:not(.tablet-menu-open) .nav-group-toggle[data-tooltip]::after{left:calc(100% + 13px);top:50%;transform:translate(0,-50%)}
  body:not(.tablet-menu-open) .navlink[data-tooltip]::before,body:not(.tablet-menu-open) .nav-group-toggle[data-tooltip]::before{left:calc(100% + 3px);top:50%;transform:translateY(-50%);border-right-color:#172033}
  body:not(.tablet-menu-open) .navlink[data-tooltip]::after,body:not(.tablet-menu-open) .navlink[data-tooltip]::before,body:not(.tablet-menu-open) .nav-group-toggle[data-tooltip]::after,body:not(.tablet-menu-open) .nav-group-toggle[data-tooltip]::before{display:block}
  body.tablet-menu-open .navlink[data-tooltip]::after,body.tablet-menu-open .navlink[data-tooltip]::before,body.tablet-menu-open .nav-group-toggle[data-tooltip]::after,body.tablet-menu-open .nav-group-toggle[data-tooltip]::before{display:none}
}

/* Smartphone: drawer lateral completo */
@media (max-width:767px){
  body .workspace,body.sidebar-collapsed .workspace{margin-left:0!important}
  body .sidebar,body.sidebar-collapsed .sidebar{
    width:min(304px,calc(100vw - 24px))!important;transform:translateX(-105%)!important;
    box-shadow:18px 0 46px rgba(7,29,58,.20)!important;
  }
  body.navopen{overflow:hidden}
  body.navopen .sidebar{transform:translateX(0)!important}
  body .brand-wrap{justify-content:flex-start!important;padding:4px 6px 18px!important}
  body .brand-copy,body .navtitle,body .navlabel,body .submenu-chevron{display:flex!important}
  body .navtitle{display:block!important}
  body .navlink,body .nav-group-toggle{justify-content:flex-start!important;padding-inline:11px!important}
  body .nav-submenu.open{display:block!important}
  body .navbadge{position:static!important;margin-left:auto!important}
  body.navopen .sidebar-overlay{display:block!important;position:fixed;inset:0;background:rgba(5,20,40,.48);backdrop-filter:blur(2px);z-index:35;opacity:1;visibility:visible;pointer-events:auto}
  .sidebar-close{display:grid!important}
  .breadcrumb-inline{display:none!important}
  .header-brand-mobile{display:flex}
  .topbar{padding-left:12px;padding-right:12px}
  .navlink[data-tooltip]::after,.navlink[data-tooltip]::before,.nav-group-toggle[data-tooltip]::after,.nav-group-toggle[data-tooltip]::before{display:none!important}
}

@media (max-width:520px){
  .header-brand-mobile strong{max-width:145px}
  .header-actions .header-icon[href*="calendario"]{display:none}
}

/* Posición por defecto para tooltips de botones sólo-icono. */
[data-tooltip]::after{bottom:calc(100% + 9px);left:50%;transform:translate(-50%,2px)}
[data-tooltip]::before{bottom:calc(100% - 1px);left:50%;transform:translateX(-50%);border-top-color:#172033}
[data-tooltip]:hover::after,[data-tooltip]:focus-visible::after{transform:translate(-50%,0)}
/* Cabecera: tooltip hacia abajo para no salir del viewport superior. */
.header-icon[data-tooltip]::after,.mobile-menu[data-tooltip]::after,.sidebar-close[data-tooltip]::after{bottom:auto;top:calc(100% + 9px);left:50%;transform:translate(-50%,-2px)}
.header-icon[data-tooltip]:hover::after,.mobile-menu[data-tooltip]:hover::after,.sidebar-close[data-tooltip]:hover::after{transform:translate(-50%,0)}
.header-icon[data-tooltip]::before,.mobile-menu[data-tooltip]::before,.sidebar-close[data-tooltip]::before{bottom:auto;top:calc(100% - 1px);left:50%;transform:translateX(-50%);border:5px solid transparent;border-bottom-color:#172033}
/* Rail compacto: tooltip siempre a la derecha. */
body.sidebar-collapsed .navlink[data-tooltip]::after,body.sidebar-collapsed .nav-group-toggle[data-tooltip]::after{bottom:auto;left:calc(100% + 13px);top:50%;transform:translate(0,-50%)}
body.sidebar-collapsed .navlink[data-tooltip]::before,body.sidebar-collapsed .nav-group-toggle[data-tooltip]::before{bottom:auto;left:calc(100% + 3px);top:50%;transform:translateY(-50%);border:5px solid transparent;border-right-color:#172033}


/* ==========================================================
   V3.8 · CORRECCIONES DE NAVEGACIÓN E ICONOGRAFÍA
   ========================================================== */
:root{--sidebar-open:268px;--sidebar-compact:72px;--nav-icon:18px}

/* Iconografía: ningún icono de interfaz supera 22px salvo avatar/logotipo. */
.ui-icon{width:18px!important;height:18px!important;max-width:22px!important;max-height:22px!important;stroke-width:1.8!important}
.navicon{width:20px!important;height:20px!important;display:grid!important;place-items:center!important;flex:0 0 20px!important}
.navicon .ui-icon{width:18px!important;height:18px!important}
.nav-subitem .navicon{width:18px!important;height:18px!important;flex-basis:18px!important}
.nav-subitem .ui-icon{width:16px!important;height:16px!important}
.logo-mark{width:34px!important;height:34px!important;border-radius:10px!important;box-shadow:none!important}
.logo-mark .ui-icon{width:19px!important;height:19px!important}
.header-brand-mark .ui-icon{width:19px!important;height:19px!important}
.header-icon .ui-icon,.mobile-menu .ui-icon,.sidebar-close .ui-icon{width:18px!important;height:18px!important}
.user-chevron .ui-icon{width:14px!important;height:14px!important}

/* Quitar los iconos decorativos grandes de encabezados. */
.module-heading-icon{display:none!important}
.module-heading{gap:0!important}
.metric-icon{width:30px!important;height:30px!important;border-radius:9px!important;margin-bottom:10px!important}
.metric-icon .ui-icon{width:16px!important;height:16px!important}
.empty-icon{width:30px!important;height:30px!important;border-radius:9px!important;font-size:0!important}
.empty-icon .ui-icon{width:17px!important;height:17px!important}
.notification-icon{width:32px!important;height:32px!important;border-radius:9px!important}
.notification-icon .ui-icon{width:17px!important;height:17px!important}
.pdficon{width:34px!important;height:38px!important;border-radius:8px!important;margin-bottom:10px!important;font-size:9px!important}
.pdficon .ui-icon{width:17px!important;height:17px!important}
.btn .ui-icon,.action-icon .ui-icon{width:15px!important;height:15px!important}

/* Sidebar hamburguesa: una sola lógica visual. */
.sidebar{
  width:var(--sidebar-open)!important;
  transform:translateX(0)!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  scrollbar-width:thin;
  scrollbar-color:rgba(255,255,255,.16) transparent;
}
.workspace{margin-left:var(--sidebar-open)!important}
body.sidebar-collapsed .sidebar{width:var(--sidebar-compact)!important}
body.sidebar-collapsed .workspace{margin-left:var(--sidebar-compact)!important}
body.sidebar-collapsed .brand-wrap{justify-content:center!important;padding-inline:0!important}
body.sidebar-collapsed .brand-copy,
body.sidebar-collapsed .navtitle,
body.sidebar-collapsed .navlabel,
body.sidebar-collapsed .submenu-chevron{display:none!important}
body.sidebar-collapsed .navlink,
body.sidebar-collapsed .nav-group-toggle{justify-content:center!important;padding:9px 7px!important}
body.sidebar-collapsed .nav-submenu{display:none!important}
body.sidebar-collapsed .navbadge{position:absolute!important;right:3px!important;top:3px!important;margin:0!important}
.mobile-menu{display:grid!important;place-items:center!important;width:38px!important;height:38px!important;border:1px solid var(--border)!important;border-radius:10px!important;background:var(--surface)!important;color:var(--primary-dark)!important;cursor:pointer!important}
.mobile-menu:hover{background:var(--primary-light)!important}
.mobile-menu[aria-expanded="false"]{background:var(--surface)!important;color:var(--primary-dark)!important}
.mobile-menu[aria-expanded="true"]{background:var(--primary-light)!important;color:var(--primary)!important;border-color:#C8D8EC!important}

/* Desactivar pseudo-tooltips del rail: se usa tooltip flotante JS para evitar recortes. */
.sidebar .navlink[data-tooltip]::before,.sidebar .navlink[data-tooltip]::after,
.sidebar .nav-group-toggle[data-tooltip]::before,.sidebar .nav-group-toggle[data-tooltip]::after{display:none!important}
.nav-floating-tooltip{position:fixed;z-index:9999;pointer-events:none;background:#172033;color:#fff;padding:7px 9px;border-radius:7px;font-size:11px;font-weight:650;line-height:1;white-space:nowrap;box-shadow:0 8px 22px rgba(7,29,58,.22);opacity:0;transform:translateY(-50%) translateX(-3px);transition:opacity 120ms ease,transform 120ms ease}
.nav-floating-tooltip.show{opacity:1;transform:translateY(-50%) translateX(0)}
.nav-floating-tooltip::before{content:"";position:absolute;left:-8px;top:50%;transform:translateY(-50%);border:4px solid transparent;border-right-color:#172033}

/* Tablet: compacto y expansión temporal mediante hamburguesa. */
@media (min-width:768px) and (max-width:1099px){
  body .sidebar{width:var(--sidebar-compact)!important;transform:translateX(0)!important}
  body .workspace{margin-left:var(--sidebar-compact)!important}
  body .brand-copy,body .navtitle,body .navlabel,body .submenu-chevron{display:none!important}
  body .brand-wrap{justify-content:center!important;padding-inline:0!important}
  body .navlink,body .nav-group-toggle{justify-content:center!important;padding:9px 7px!important}
  body .nav-submenu{display:none!important}
  body.tablet-menu-open .sidebar{width:var(--sidebar-open)!important;box-shadow:16px 0 38px rgba(7,29,58,.18)!important;overflow-y:auto!important}
  body.tablet-menu-open .brand-copy,body.tablet-menu-open .navlabel,body.tablet-menu-open .submenu-chevron{display:flex!important}
  body.tablet-menu-open .navtitle{display:block!important}
  body.tablet-menu-open .brand-wrap{justify-content:flex-start!important;padding:4px 6px 18px!important}
  body.tablet-menu-open .navlink,body.tablet-menu-open .nav-group-toggle{justify-content:flex-start!important;padding:9px 11px!important}
  body.tablet-menu-open .nav-submenu.open{display:block!important}
  body.tablet-menu-open .sidebar-overlay{display:block!important;position:fixed!important;inset:0!important;background:rgba(5,20,40,.42)!important;z-index:35!important;opacity:1!important;visibility:visible!important;pointer-events:auto!important}
}

/* Móvil: drawer hamburguesa real. */
@media (max-width:767px){
  body .workspace,body.sidebar-collapsed .workspace{margin-left:0!important}
  body .sidebar,body.sidebar-collapsed .sidebar{width:min(286px,calc(100vw - 24px))!important;transform:translateX(-105%)!important;overflow-y:auto!important;overflow-x:hidden!important;box-shadow:16px 0 38px rgba(7,29,58,.18)!important}
  body.navopen .sidebar{transform:translateX(0)!important}
  body .brand-copy,body .navtitle,body .navlabel,body .submenu-chevron{display:flex!important}
  body .navtitle{display:block!important}
  body .brand-wrap{justify-content:flex-start!important;padding:4px 6px 18px!important}
  body .navlink,body .nav-group-toggle{justify-content:flex-start!important;padding:9px 11px!important}
  body .nav-submenu.open{display:block!important}
  body.navopen .sidebar-overlay{display:block!important;position:fixed!important;inset:0!important;background:rgba(5,20,40,.46)!important;z-index:35!important;opacity:1!important;visibility:visible!important;pointer-events:auto!important}
  .sidebar-close{display:grid!important}
  .main-content{padding-left:14px!important;padding-right:14px!important}
}


/* ==========================================================
   V3.9 · INICIO CORREGIDO
   Reduce espacios vacíos y evita desbordamientos del dashboard.
   ========================================================== */
.dashboard-home{
  width:100%;
  max-width:100%;
  min-width:0;
  overflow-x:clip;
}
.dashboard-home > *{min-width:0}
.dashboard-welcome{
  margin-bottom:14px!important;
  padding:20px 22px!important;
  min-height:0!important;
}
.dashboard-welcome .welcome-copy{
  min-width:0;
  max-width:760px;
  position:relative;
  z-index:2;
}
.dashboard-welcome h1{
  margin:2px 0 4px!important;
  font-size:clamp(22px,2vw,27px)!important;
}
.dashboard-welcome p{
  max-width:680px;
  line-height:1.45;
}
.dashboard-next-class{
  margin:0 0 16px!important;
  padding:14px 16px!important;
  grid-template-columns:62px minmax(0,1fr) auto!important;
  gap:13px!important;
}
.dashboard-next-class .date-tile{
  width:56px!important;
  height:56px!important;
  border-radius:12px!important;
}
.dashboard-next-class .date-tile strong{font-size:20px!important}
.next-class-copy{min-width:0}
.next-class-copy h3{
  margin:2px 0 3px!important;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.next-class-copy .muted{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.dashboard-section-head,
.dashboard-block-title{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:14px;
  min-width:0;
}
.dashboard-section-head{
  margin:0 0 12px;
}
.dashboard-section-head h2,
.dashboard-block-title h2{
  margin:2px 0 2px!important;
  font-size:17px!important;
}
.dashboard-section-head p{margin:0}
.dashboard-block-title{
  margin:0 0 10px;
}
.text-link{
  color:var(--primary);
  font-size:11px;
  font-weight:800;
  white-space:nowrap;
}

.dashboard-metrics{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(175px,1fr));
  gap:12px;
  width:100%;
  min-width:0;
}
.dashboard-metrics .metric-card{
  min-height:94px!important;
  padding:14px!important;
  display:grid;
  grid-template-columns:32px minmax(0,1fr);
  column-gap:11px;
  align-items:center;
}
.dashboard-metrics .metric-icon{
  width:30px!important;
  height:30px!important;
  margin:0!important;
}
.dashboard-metrics .metric-copy{min-width:0}
.dashboard-metrics .metric{
  font-size:23px!important;
  margin-top:1px!important;
}
.dashboard-metrics .metric-foot{
  margin-top:3px!important;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.dashboard-main-grid{
  margin-top:16px!important;
  grid-template-columns:minmax(0,1.65fr) minmax(250px,.65fr)!important;
  align-items:start;
  gap:14px!important;
  min-width:0;
}
.dashboard-primary,
.dashboard-side{min-width:0}
.dashboard-side{
  display:grid;
  gap:12px;
}
.dashboard-side .card{margin:0!important}
.dashboard-agenda{
  gap:8px!important;
}
.dashboard-event{
  grid-template-columns:118px minmax(0,1fr) auto!important;
  gap:10px!important;
  padding:13px 14px!important;
  min-width:0;
}
.dashboard-event .event-copy{
  min-width:0;
}
.dashboard-event .event-copy strong,
.dashboard-event .event-copy .muted{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.dashboard-event .event-action{white-space:nowrap}
.dashboard-empty{
  min-height:130px!important;
  padding:18px!important;
}
.dashboard-chart-card,
.dashboard-activity-card,
.dashboard-shortcuts{
  min-width:0;
}
.dashboard-chart-card .bar-chart{
  height:128px!important;
  padding-top:8px!important;
}
.dashboard-activity-card .activity-list{
  max-height:260px;
  overflow:auto;
  overscroll-behavior:contain;
}
.dashboard-activity-card .activity-item{
  overflow-wrap:anywhere;
}
.dashboard-shortcuts .stack{
  gap:8px!important;
}
.dashboard-shortcuts .btn{
  justify-content:flex-start;
  width:100%;
  min-width:0;
}

.dashboard-announcements{
  margin-top:18px;
}
.dashboard-announcement-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:12px;
}
.dashboard-announcement-grid .card{
  min-width:0;
  padding:15px;
}
.dashboard-announcement-grid h3{
  margin:9px 0 5px!important;
}
.dashboard-announcement-grid p{
  margin:0 0 7px;
  overflow-wrap:anywhere;
}

/* Evitar desbordamiento por hijos grid/flex del inicio */
.dashboard-home .card,
.dashboard-home section,
.dashboard-home aside,
.dashboard-home article,
.dashboard-home div{
  min-width:0;
}

@media(max-width:1180px){
  .dashboard-main-grid{
    grid-template-columns:minmax(0,1fr)!important;
  }
  .dashboard-side{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .dashboard-side > :only-child{
    grid-column:1/-1;
  }
}
@media(max-width:760px){
  .dashboard-welcome{
    padding:17px!important;
    gap:12px!important;
  }
  .dashboard-welcome .hero-actions{
    width:auto!important;
  }
  .dashboard-welcome .hero-actions .btn{
    width:auto!important;
  }
  .dashboard-section-head{
    align-items:flex-start;
    flex-direction:column;
    gap:7px;
  }
  .dashboard-metrics{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .dashboard-side{
    grid-template-columns:1fr;
  }
}
@media(max-width:620px){
  .dashboard-home{overflow-x:hidden}
  .dashboard-welcome{
    margin-bottom:10px!important;
    padding:15px!important;
  }
  .dashboard-welcome p{
    font-size:12px;
  }
  .dashboard-welcome .hero-actions,
  .dashboard-welcome .hero-actions .btn{
    width:100%!important;
  }
  .dashboard-next-class{
    grid-template-columns:48px minmax(0,1fr)!important;
    padding:12px!important;
  }
  .dashboard-next-class .date-tile{
    width:44px!important;
    height:44px!important;
  }
  .dashboard-next-class .date-tile strong{font-size:17px!important}
  .dashboard-next-class>.btn{
    grid-column:1/-1;
    width:100%;
  }
  .dashboard-metrics{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
  }
  .dashboard-metrics .metric-card{
    grid-template-columns:1fr!important;
    gap:5px!important;
    min-height:104px!important;
    padding:12px!important;
  }
  .dashboard-metrics .metric-icon{margin-bottom:1px!important}
  .dashboard-metrics .metric-foot{display:none}
  .dashboard-event{
    grid-template-columns:1fr!important;
    gap:6px!important;
  }
  .dashboard-event .event-action{
    justify-self:start;
  }
  .dashboard-event .event-copy strong,
  .dashboard-event .event-copy .muted,
  .next-class-copy h3,
  .next-class-copy .muted{
    white-space:normal;
    overflow:visible;
    text-overflow:clip;
    overflow-wrap:anywhere;
  }
  .dashboard-announcement-grid{
    grid-template-columns:1fr;
  }
}
@media(max-width:390px){
  .dashboard-metrics{
    grid-template-columns:1fr;
  }
}
