:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#23342f;background:#f4f7f6;font-synthesis:none;text-rendering:optimizeLegibility;--ink:#23342f;--muted:#70807b;--line:#dfe7e4;--soft:#f5f8f7;--brand:#1e665d;--brand-dark:#173f3a;--brand-light:#dceeea;--blue:#4b6da9;--purple:#7b5c9e;--orange:#cb7a34;--danger:#b94b50;--white:#fff;--shadow:0 8px 30px rgba(25,64,57,.07);--radius:18px}html,body,#root{margin:0;min-width:320px;min-height:100%;height:100%}body{min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin-top:0}h1,h2,h3,strong{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}svg{flex:none}.app-loading{height:100vh;display:grid;place-content:center;text-align:center;gap:16px;background:#f5f8f7}.app-loading .brand-mark{margin:auto}.app-loading strong{font-size:17px}.app-loading>span{height:3px;width:140px;background:#dce7e4;position:relative;border-radius:9px;overflow:hidden}.app-loading>span:after{content:"";position:absolute;inset:0;width:45%;background:var(--brand);animation:loadbar 1.2s infinite ease-in-out}@keyframes loadbar{0%{transform:translate(-100%)}to{transform:translate(240%)}}.app-shell{display:grid;grid-template-columns:254px minmax(0,1fr);min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:254px;background:var(--brand-dark);color:#fff;padding:22px 16px 18px;display:flex;flex-direction:column;z-index:40;transition:width .22s ease,transform .22s ease}.main-area{grid-column:2;min-width:0}.brand{height:49px;display:flex;align-items:center;gap:11px;padding:0 7px}.brand-mark{width:43px;height:43px;border-radius:13px;display:grid;place-items:center;color:#fff;background:linear-gradient(145deg,#3b9487,#247266);box-shadow:0 8px 20px #00000026}.brand-text{display:flex;flex-direction:column;min-width:0}.brand-text strong{font-size:18px;line-height:1.15}.brand-text span{font-size:11px;color:#a9c7c1;margin-top:3px;letter-spacing:.03em}.mobile-close{display:none}.course-chip{margin:26px 5px 20px;padding:11px 14px;background:#ffffff12;border:1px solid rgba(255,255,255,.08);border-radius:12px;display:flex;flex-direction:column}.course-chip span{font-size:10px;text-transform:uppercase;letter-spacing:.11em;color:#99bdb6}.course-chip strong{font-size:13px;margin-top:3px}.nav-caption{display:block;text-transform:uppercase;font-size:10px;letter-spacing:.14em;color:#779d96;padding:0 13px;margin:3px 0 8px}.main-nav{display:flex;flex-direction:column;gap:3px}.main-nav button,.export-link{border:0;background:transparent;color:#b8d0cb;min-height:44px;border-radius:11px;padding:0 13px;display:flex;align-items:center;gap:12px;text-align:left;position:relative;transition:.15s ease}.main-nav button:hover,.export-link:hover{background:#ffffff12;color:#fff}.main-nav button.active{background:#5cb5a62e;color:#fff}.main-nav button.active i{position:absolute;width:3px;height:21px;border-radius:5px;background:#6fc3b5;right:0}.main-nav button span,.export-link span{font-size:14px;font-weight:500;white-space:nowrap}.sidebar-bottom{margin-top:auto}.export-link{margin-bottom:8px}.sidebar-user{border-top:1px solid rgba(255,255,255,.09);padding:17px 5px 0;display:grid;grid-template-columns:38px minmax(0,1fr) 27px;align-items:center;gap:9px}.avatar{width:38px;height:38px;border-radius:12px;background:#d9eee9;color:#235d55;display:grid;place-items:center;font:700 12px Manrope}.sidebar-user>div:nth-child(2){display:flex;flex-direction:column;min-width:0}.sidebar-user strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user span{font-size:10px;color:#8fb0aa;margin-top:2px}.sidebar-user button{color:#98b4af;border:0;background:transparent;padding:4px}.collapse-button{position:absolute;right:-13px;top:88px;width:27px;height:27px;border-radius:50%;border:3px solid #f4f7f6;background:#315f59;color:#d6e8e4;display:grid;place-items:center}.sidebar-collapsed{grid-template-columns:82px minmax(0,1fr)}.sidebar-collapsed .sidebar{width:82px}.sidebar-collapsed .brand-text,.sidebar-collapsed .course-chip,.sidebar-collapsed .nav-caption,.sidebar-collapsed .main-nav span,.sidebar-collapsed .export-link span,.sidebar-collapsed .sidebar-user>div:nth-child(2),.sidebar-collapsed .sidebar-user button{display:none}.sidebar-collapsed .brand{padding:0 3px}.sidebar-collapsed .main-nav button,.sidebar-collapsed .export-link{justify-content:center;padding:0}.sidebar-collapsed .sidebar-user{grid-template-columns:1fr;padding-left:5px}.sidebar-collapsed .avatar{margin:auto}.sidebar-collapsed .collapse-button svg{transform:rotate(180deg)}.topbar{height:70px;background:#fffffff0;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 34px;position:sticky;top:0;z-index:25;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.breadcrumb{display:flex;align-items:center;gap:9px;font-size:13px}.breadcrumb span{color:var(--muted)}.breadcrumb i{color:#b5c0bd;font-style:normal}.breadcrumb strong{font-size:13px}.top-actions{display:flex;align-items:center;gap:18px;position:relative}.status-pill{font-size:11px;color:#52716a;display:flex;align-items:center;gap:7px}.status-pill i{width:7px;height:7px;border-radius:50%;background:#4eaf79;box-shadow:0 0 0 4px #e4f4ea}.profile-button{border:0;background:transparent;display:flex;align-items:center;gap:8px;color:var(--ink);padding:4px}.profile-button>span{font-size:12px;font-weight:600;max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.avatar-small{width:32px;height:32px;border-radius:10px}.profile-menu{position:absolute;right:0;top:49px;width:230px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:14px;padding:10px;z-index:30}.profile-menu>div{padding:8px;display:flex;flex-direction:column;border-bottom:1px solid var(--line);margin-bottom:5px}.profile-menu strong{font-size:13px}.profile-menu span{font-size:11px;color:var(--muted);margin-top:3px}.profile-menu button{width:100%;border:0;background:transparent;padding:9px 8px;border-radius:8px;display:flex;gap:8px;color:var(--danger);font-size:12px}.profile-menu button:hover{background:#fff2f2}.menu-button{display:none;border:0;background:transparent;color:var(--ink)}.page-content{padding:34px;max-width:1640px;margin:0 auto}.sidebar-overlay{display:none}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:25px;margin-bottom:27px}.page-heading h1{font-size:30px;letter-spacing:-.035em;margin:4px 0 6px}.page-heading p{color:var(--muted);font-size:14px;margin:0;max-width:650px}.eyebrow{text-transform:uppercase;letter-spacing:.13em;color:#4c7770;font-size:10px;font-weight:700}.eyebrow.light{color:#94c6bd}.heading-actions{display:flex;gap:9px}.button{border:0;min-height:40px;padding:0 16px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:13px;font-weight:600;transition:.15s ease}.button-primary{background:var(--brand);color:#fff;box-shadow:0 5px 14px #1e665d29}.button-primary:hover{background:#17574f;transform:translateY(-1px)}.button-secondary{background:#fff;color:#315c55;border:1px solid #cfdcd9}.button-secondary:hover{background:#f4f8f7}.button-ghost{background:transparent;color:#5c6e69}.button-ghost:hover{background:#eef3f1}.button-danger{background:var(--danger);color:#fff}.icon-button{width:36px;height:36px;border-radius:10px;border:0;background:#f1f5f4;color:#5b6c68;display:grid;place-items:center}.text-button{border:0;background:transparent;color:var(--brand);font-size:12px;font-weight:700;display:flex;align-items:center;gap:5px}.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 2px 8px #183e3806}.panel-header{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:21px 23px}.panel-header h2{font-size:16px;margin:3px 0 0;letter-spacing:-.015em}.badge{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;border-radius:7px;padding:4px 8px;font-size:10px;font-weight:700}.badge-neutral{background:#eef3f1;color:#5f706c}.badge-blue{background:#e8eef8;color:#44649d}.badge-purple{background:#f0eaf7;color:#735495}.badge-success{background:#e4f3eb;color:#347456}.badge-warning{background:#fff0df;color:#a76325}.badge-danger{background:#fde8e9;color:#a33e44}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:19px}.metric-card{min-height:116px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px;display:flex;align-items:center;gap:17px}.metric-card>div:last-child{display:flex;flex-direction:column}.metric-card span{font-size:11px;color:var(--muted);font-weight:600}.metric-card strong{font-size:27px;line-height:1.2;margin:4px 0 2px;letter-spacing:-.04em}.metric-card small{font-size:10px;color:#81908c}.metric-icon{width:48px;height:48px;border-radius:14px;display:grid;place-items:center}.metric-icon svg{width:22px}.metric-mint{background:#e0f0ec;color:#236c61}.metric-blue{background:#e7edf7;color:#4a6aa2}.metric-purple{background:#efe8f6;color:#78589b}.metric-orange{background:#fff0df;color:#b76d2c}.metric-green{background:#e3f3e9;color:#38805a}.skeleton{display:flex!important}.skeleton>*{background:#edf2f0;border-radius:7px;animation:pulse 1.3s infinite alternate}.skeleton>span{width:48px;height:48px}.skeleton>strong{width:80px;height:24px}.skeleton>i{width:40px;height:10px}@keyframes pulse{to{opacity:.45}}.dashboard-heading{align-items:center}.date-card{border:1px solid var(--line);background:#fff;border-radius:13px;padding:10px 15px;display:flex;align-items:center;gap:10px;color:#477069}.date-card>svg{width:20px}.date-card span{display:flex;flex-direction:column;text-align:left}.date-card small{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:#85938f}.date-card strong{font-size:11px;margin-top:2px}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(310px,1fr);gap:18px}.chart-panel{min-height:340px}.chart-wrap{height:255px;padding:0 15px 14px}.legend{font-size:10px;color:var(--muted);display:flex;align-items:center;gap:6px}.legend i{width:7px;height:7px;border-radius:50%;background:var(--brand)}.course-list{padding:0 22px 19px}.course-row{display:flex;align-items:center;gap:12px;padding:14px 0;border-top:1px solid #edf1f0}.course-token{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;font:700 13px Manrope}.course-3{background:#e8eef8;color:#45669f}.course-4{background:#f0eaf7;color:#735594}.course-6{background:#e4f3eb;color:#347456}.course-info{flex:1;min-width:0;display:flex;flex-direction:column}.course-info strong{font-size:12px}.course-info>span{font-size:10px;color:var(--muted);margin:2px 0 7px}.progress{height:4px;background:#edf1f0;border-radius:5px;overflow:hidden}.progress i{height:100%;display:block;background:#478f84;border-radius:5px}.agenda-preview{grid-column:1/2}.agenda-list{padding:0 22px 16px}.agenda-line{display:grid;grid-template-columns:8px 34px minmax(130px,1fr) auto minmax(150px,.8fr);gap:10px;align-items:center;padding:11px 0;border-top:1px solid #edf1f0}.activity-dot{width:6px;height:28px;border-radius:4px;background:#6e8fc3}.dot-libre{background:#c8d1ce}.dot-planta{background:#52a284}.dot-ah{background:#9b72b0}.dot-ac{background:#d08b4e}.student-avatar{width:32px;height:32px;border-radius:10px;background:#edf3f1;color:#476b64;display:grid;place-items:center;font:700 10px Manrope}.agenda-person,.agenda-supervisor{display:flex;flex-direction:column;min-width:0}.agenda-person strong,.agenda-supervisor strong{font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agenda-person span,.agenda-supervisor span{font-size:9px;color:var(--muted);margin-top:2px}.ranking-panel{grid-column:2/3;grid-row:2}.mini-chart{height:263px;padding:0 15px 15px}.agenda-panel{overflow:hidden}.agenda-toolbar{min-height:71px;padding:14px 18px;display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--line)}.search-box{height:40px;min-width:270px;max-width:440px;flex:1;border:1px solid #d7e1de;border-radius:10px;display:flex;align-items:center;gap:9px;padding:0 12px;background:#fbfcfc;color:#84928f}.search-box input{border:0;outline:0;background:transparent;min-width:0;width:100%;font-size:12px;color:var(--ink)}.filter-toggle{height:40px;border:1px solid #d7e1de;border-radius:10px;background:#fff;color:#586b66;display:flex;align-items:center;gap:7px;padding:0 13px;font-size:12px;font-weight:600}.filter-toggle.has-filters{border-color:#76a59d;color:var(--brand)}.filter-toggle b{width:19px;height:19px;border-radius:50%;background:var(--brand);color:#fff;display:grid;place-items:center;font-size:9px}.result-count{margin-left:auto;color:var(--muted);font-size:11px}.filter-bar{background:#f7f9f8;border-bottom:1px solid var(--line);padding:14px 18px;display:flex;align-items:end;gap:10px;flex-wrap:wrap}.filter-bar label{display:flex;flex-direction:column;gap:5px}.filter-bar label span{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:#768681;font-weight:700}.filter-bar input,.filter-bar select,.toolbar-select{height:35px;border:1px solid #d4dfdc;border-radius:8px;background:#fff;padding:0 9px;min-width:130px;font-size:11px;color:var(--ink)}.clear-filters{height:35px;border:0;background:transparent;color:var(--danger);font-size:10px;display:flex;align-items:center;gap:5px}.table-scroll{overflow:auto}.data-table{width:100%;border-collapse:collapse;min-width:930px}.data-table th{text-align:left;background:#fbfcfc;border-bottom:1px solid var(--line);padding:11px 15px;font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:#788883;white-space:nowrap}.data-table td{padding:12px 15px;border-bottom:1px solid #edf1f0;font-size:11px;vertical-align:middle}.data-table tbody tr:hover{background:#fbfdfc}.data-table tbody tr:last-child td{border-bottom:0}.date-cell,.person-cell,.stack-cell,.number-cell{display:flex;flex-direction:column}.date-cell strong,.person-cell strong,.stack-cell strong,.number-cell strong{font-size:11px}.date-cell span,.person-cell span,.stack-cell span,.number-cell span{font-size:9px;color:var(--muted);margin-top:2px}.date-cell span{text-transform:capitalize}.person-cell{max-width:190px}.person-cell strong,.person-cell span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.action-cell{text-align:right!important;white-space:nowrap}.action-cell button{width:30px;height:30px;border:0;background:transparent;border-radius:8px;color:#6c7d78;display:inline-grid;place-items:center}.action-cell button:hover{background:#edf3f1;color:var(--brand)}.action-cell button.danger-icon:hover{background:#fff0f0;color:var(--danger)}.action-cell svg{width:15px}.activity-label{display:inline-flex;align-items:center;gap:6px;font-size:10px;white-space:nowrap}.activity-label i{width:7px;height:7px;border-radius:50%;background:#6e8fc3}.activity-libre i{background:#bcc8c5}.activity-planta i{background:#52a284}.activity-ah i{background:#9b72b0}.activity-ac i{background:#d08b4e}.pagination{border-top:1px solid var(--line);height:60px;display:flex;justify-content:flex-end;align-items:center;gap:12px;padding:0 19px}.pagination button{width:32px;height:32px;border:1px solid var(--line);background:#fff;border-radius:8px;display:grid;place-items:center}.pagination button svg{width:16px}.pagination span{font-size:10px;color:var(--muted)}.calendar-layout{display:grid;grid-template-columns:minmax(600px,1.65fr) minmax(290px,.75fr);gap:18px}.calendar-panel{overflow:hidden}.calendar-header{height:70px;padding:0 21px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.calendar-header button{width:35px;height:35px;border:1px solid var(--line);background:#fff;border-radius:10px;color:#5c706a;display:grid;place-items:center}.calendar-header h2{text-transform:capitalize;font-size:17px;margin:0;text-align:center}.calendar-header span{font-size:10px;color:var(--muted);display:block;text-align:center;margin-top:2px}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);background:#fafcfc;border-bottom:1px solid var(--line)}.calendar-weekdays span{text-align:center;padding:10px;font-size:9px;text-transform:uppercase;color:#7c8c87;font-weight:700}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr)}.calendar-grid>button{position:relative;min-height:108px;border:0;border-right:1px solid #e9efed;border-bottom:1px solid #e9efed;background:#fff;padding:11px;text-align:left;color:var(--ink);display:flex;flex-direction:column;transition:.12s ease}.calendar-grid>button:nth-child(7n){border-right:0}.calendar-grid>button:hover{background:#f6faf8}.calendar-grid>button.outside{color:#bdc6c3;background:#fbfcfc}.calendar-grid>button.selected{background:#edf7f4;box-shadow:inset 0 0 0 2px #5aa397}.calendar-grid>button strong{font-size:15px;margin-top:13px;color:#315f58}.calendar-grid>button small{font-size:8px;color:#70817c}.day-number{font-size:11px;font-weight:600}.course-dots{display:flex;gap:3px;margin-top:auto}.course-dots i{width:13px;height:3px;border-radius:4px}.course-dot-3{background:#6080b8}.course-dot-4{background:#8a68a8}.course-dot-6{background:#4b9873}.day-panel{overflow:hidden;min-height:540px}.day-panel-header{height:96px;padding:19px 21px;display:flex;align-items:center;gap:15px;border-bottom:1px solid var(--line);background:#fafcfc}.large-day{width:55px;height:60px;background:var(--brand);color:#fff;border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center}.large-day strong{font-size:23px;line-height:1}.large-day span{font-size:9px;text-transform:uppercase;margin-top:4px}.day-panel-header>div:last-child>span{font-size:10px;text-transform:capitalize;color:var(--muted)}.day-panel-header h2{font-size:15px;margin:4px 0 0}.day-assignments{padding:14px;display:flex;flex-direction:column;gap:10px;max-height:650px;overflow:auto}.day-card{border:1px solid var(--line);border-left:4px solid #6e8fc3;border-radius:12px;padding:12px;background:#fff}.card-course-4{border-left-color:#8a68a8}.card-course-6{border-left-color:#4b9873}.day-card-top{display:flex;align-items:center;gap:7px;margin-bottom:9px}.day-card-top>span{font-size:9px;color:var(--muted);flex:1}.day-card-top button{border:0;background:transparent;color:#6d7d79;padding:2px}.day-card>strong{display:block;font-size:12px}.day-card>small{font-size:9px;color:var(--muted)}.day-supervisor{display:flex;align-items:center;gap:6px;margin-top:9px;color:#4d6963}.day-supervisor span{font-size:9px}.day-card p{background:#f5f8f7;border-radius:7px;padding:7px;margin:8px 0 0;font-size:9px;color:#667773}.empty-state{min-height:250px;padding:35px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.empty-icon{width:52px;height:52px;border-radius:16px;background:#edf4f2;color:#62817a;display:grid;place-items:center;margin-bottom:13px}.empty-state h3{font-size:14px;margin:0 0 5px}.empty-state p{font-size:11px;color:var(--muted);max-width:300px;margin-bottom:14px}.inline-stats{display:flex;gap:12px;margin-bottom:16px}.inline-stats>div{background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 14px;display:flex;align-items:center;gap:8px;color:#56736d}.inline-stats svg{width:18px}.inline-stats span{font-size:10px;color:var(--muted)}.inline-stats strong{color:var(--ink);font-size:12px}.inline-stats .stat-warning{border-color:#f0cfaa;background:#fffaf4;color:#aa672a}.list-panel{overflow:hidden}.list-toolbar{padding:14px 18px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:15px;justify-content:space-between}.segmented{display:inline-flex;background:#f0f4f3;border-radius:9px;padding:3px;gap:2px}.segmented button{height:30px;padding:0 11px;border:0;background:transparent;border-radius:7px;color:#74847f;font-size:10px;font-weight:600}.segmented button.active{background:#fff;color:var(--brand);box-shadow:0 1px 5px #1a3d3714}.code-chip{font-family:ui-monospace,monospace;background:#eef3f1;padding:4px 7px;border-radius:6px;font-size:10px;color:#506963}.text-warning{color:#b46d2d}.muted{color:#9aa6a3;font-size:10px}.email-link{display:flex;align-items:center;gap:5px;color:#4e7069;font-size:9px;max-width:150px;overflow:hidden;text-overflow:ellipsis}.email-link svg{width:13px}.eligibility-badges{display:flex;gap:3px}.eligibility-badges span{width:25px;height:23px;border-radius:6px;display:grid;place-items:center;background:#e7f2ef;color:#337267;font-size:9px;font-weight:700}.toolbar-select{height:40px;min-width:170px}.check-row{display:flex;gap:8px}.check-row label{position:relative}.check-row input{position:absolute;opacity:0}.check-row span{width:50px;height:40px;border:1px solid var(--line);border-radius:9px;display:grid;place-items:center;color:#798984;font-size:12px;font-weight:700}.check-row label.checked span{border-color:#6aa69c;background:#e7f3f0;color:var(--brand)}.quality-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-bottom:17px}.quality-summary article{background:#fff;border:1px solid var(--line);border-radius:15px;padding:17px;display:grid;grid-template-columns:42px 1fr;column-gap:12px}.quality-summary article>div{grid-row:1/3;width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:#eff3f2;color:#627a74}.quality-summary article>span{font-size:12px;align-self:end}.quality-summary article>span strong{font-size:19px;margin-right:4px}.quality-summary article>small{font-size:9px;color:var(--muted);margin-top:2px}.quality-summary article.danger>div{background:#fdebec;color:var(--danger)}.quality-summary article.warning>div{background:#fff0df;color:#b36b2b}.quality-summary article.success>div{background:#e5f4ea;color:#3f845d}.quality-panel{overflow:hidden}.issue-list{padding:0 20px 15px}.issue-list article{display:grid;grid-template-columns:40px 1fr auto;align-items:center;gap:12px;padding:13px 0;border-top:1px solid #edf1f0}.issue-icon{width:38px;height:38px;border-radius:11px;display:grid;place-items:center}.issue-icon svg{width:18px}.issue-danger{background:#fdebec;color:var(--danger)}.issue-warning{background:#fff0df;color:#ad682a}.issue-list strong{font-size:11px}.issue-list p{font-size:10px;color:var(--muted);margin:3px 0 0}.load-more{display:block;margin:14px auto 2px;border:1px solid #cfddda;background:#f7faf9;color:var(--brand);border-radius:9px;padding:9px 15px;font-size:10px;font-weight:700}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px;margin-bottom:17px}.settings-card{padding:23px;display:grid;grid-template-columns:48px 1fr;gap:16px}.settings-icon{width:46px;height:46px;border-radius:13px;background:#e1f0ec;color:#2d7469;display:grid;place-items:center}.settings-icon.icon-blue{background:#e8eef8;color:#4a6aa2}.settings-icon.icon-purple{background:#f0eaf7;color:#745495}.settings-icon.icon-green{background:#e4f3ea;color:#3b7d59}.settings-copy h2{font-size:15px;margin:2px 0 5px}.settings-copy>p{font-size:10px;line-height:1.5;color:var(--muted);margin-bottom:14px}.source-info{background:#f5f8f7;border-radius:10px;padding:10px 12px;margin-bottom:12px;display:grid}.source-info span{display:flex;align-items:center;gap:5px;font-size:9px;color:var(--muted)}.source-info span svg{width:13px}.source-info strong{font-size:10px;margin:4px 0;overflow:hidden;text-overflow:ellipsis}.source-info small{font-size:8px;color:#8c9996}.download-buttons{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.download-buttons svg{width:15px}.password-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}.system-card dl{margin:9px 0 0}.system-card dl>div{display:flex;justify-content:space-between;padding:8px 0;border-top:1px solid #edf1f0}.system-card dt,.system-card dd{font-size:10px}.system-card dt{color:var(--muted)}.system-card dd{margin:0;font-weight:600}.accounts-panel{overflow:hidden;margin-bottom:17px}.audit-panel{overflow:hidden}.audit-list{padding:0 22px 15px}.audit-list article{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:11px;padding:10px 0;border-top:1px solid #edf1f0}.audit-icon{width:32px;height:32px;border-radius:9px;background:#edf3f1;color:#58756f;display:grid;place-items:center}.audit-icon svg{width:15px}.audit-list article>div:nth-child(2){display:flex;flex-direction:column}.audit-list strong{font-size:10px}.audit-list span{font-size:8px;color:var(--muted);margin-top:2px}.audit-list time{font-size:8px;color:var(--muted);display:flex;align-items:center;gap:5px}.audit-list time svg{width:12px}.import-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}.import-summary>div{background:#f3f7f6;border-radius:11px;padding:14px;text-align:center;display:flex;flex-direction:column}.import-summary strong{font-size:21px}.import-summary span{font-size:9px;color:var(--muted)}.modal-backdrop{position:fixed;inset:0;background:#1325217a;z-index:100;display:grid;place-items:center;padding:20px;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:fade .15s ease}.modal{width:min(520px,100%);max-height:calc(100vh - 40px);background:#fff;border-radius:18px;box-shadow:0 25px 70px #0c1f1b40;overflow:auto;animation:rise .18s ease}.modal-wide{width:min(760px,100%)}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{transform:translateY(8px);opacity:.4}}.modal-header{padding:20px 22px 16px;border-bottom:1px solid var(--line);display:flex;align-items:flex-start;justify-content:space-between;gap:15px;position:sticky;top:0;background:#fff;z-index:2}.modal-header h2{font-size:17px;margin:0}.modal-header p{font-size:10px;color:var(--muted);margin:4px 0 0}.modal-body{padding:20px 22px}.modal-body>p{font-size:12px;line-height:1.55;color:#5c6d69}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:19px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field>span{font-size:10px;font-weight:700;color:#526660}.field input,.field select,.field textarea{width:100%;border:1px solid #d4dfdc;border-radius:9px;background:#fff;min-height:40px;padding:0 11px;color:var(--ink);font-size:12px;outline:none;transition:.15s}.field textarea{padding:10px 11px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:#65a297;box-shadow:0 0 0 3px #e8f3f0}.field input:disabled,.field select:disabled{background:#f1f4f3;color:#97a29f}.field small{font-size:8px;color:var(--muted)}.field-full{grid-column:1/-1}.eligibility-note{margin-top:13px;padding:9px 11px;background:#f2f7f5;border-radius:8px;color:#6c7d78;font-size:9px;display:flex;align-items:center;gap:5px}.eligibility-note strong{color:var(--brand)}.alert{border-radius:10px;padding:10px 12px;margin-bottom:13px;display:flex;align-items:flex-start;gap:9px;font-size:10px;line-height:1.45}.alert-info{background:#eef5f9;color:#426779}.alert-success{background:#e9f5ed;color:#347553}.alert-warning{background:#fff4e8;color:#9c622e}.alert-danger{background:#fdebed;color:#9e4146}.loading{min-height:230px;display:flex;align-items:center;justify-content:center;gap:9px;color:#72837e;font-size:11px}.spin{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.toast-stack{position:fixed;right:22px;bottom:22px;z-index:200;display:flex;flex-direction:column;gap:8px}.toast{width:min(360px,calc(100vw - 30px));min-height:50px;background:#fff;border:1px solid var(--line);box-shadow:0 12px 35px #15342e29;border-radius:12px;padding:10px 11px;display:grid;grid-template-columns:21px 1fr 21px;align-items:center;gap:8px;font-size:11px}.toast-success>svg{color:#3d8b61}.toast-danger>svg{color:var(--danger)}.toast button{border:0;background:transparent;color:#889692;padding:0}.toast button svg{width:15px}.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(420px,1.05fr) minmax(480px,.95fr);background:#fff}.login-hero{background:linear-gradient(145deg,#163f3a,#1f6058 62%,#2b756b);color:#fff;padding:46px 56px;position:relative;overflow:hidden;display:flex;flex-direction:column}.login-brand{display:flex;align-items:center;gap:12px;font:700 16px Manrope}.login-brand .brand-mark{background:#ffffff1f;border:1px solid rgba(255,255,255,.15)}.hero-copy{margin:auto 0;position:relative;z-index:2}.hero-copy h1{font-size:55px;line-height:1.04;letter-spacing:-.055em;margin:13px 0 19px;max-width:600px}.hero-copy p{color:#c1d8d3;font-size:16px;line-height:1.55;max-width:480px}.hero-stats{display:flex;gap:43px;position:relative;z-index:2}.hero-stats div{display:flex;flex-direction:column}.hero-stats strong{font-size:25px}.hero-stats span{font-size:10px;color:#a4c3bd;text-transform:uppercase;letter-spacing:.09em}.hero-orbit{position:absolute;border:1px solid rgba(255,255,255,.08);border-radius:50%}.orbit-one{width:540px;height:540px;right:-280px;top:100px}.orbit-two{width:360px;height:360px;right:-180px;top:190px;background:#ffffff06}.login-panel{display:grid;place-items:center;padding:45px}.login-box{width:min(410px,100%)}.mobile-login-brand{display:none}.login-box h2{font-size:31px;letter-spacing:-.04em;margin:7px 0 4px}.login-intro{color:var(--muted);font-size:13px;margin-bottom:25px}.login-box form{display:flex;flex-direction:column;gap:14px}.login-box form>.button{margin-top:4px;flex-direction:row-reverse;height:45px}.password-input{position:relative}.password-input input{padding-right:42px}.password-input button{position:absolute;right:5px;top:4px;width:32px;height:32px;border:0;background:transparent;color:#7f8e8a}.password-input svg{width:17px}.demo-divider{height:38px;display:flex;align-items:center}.demo-divider:before,.demo-divider:after{content:"";height:1px;background:var(--line);flex:1}.demo-divider span{font-size:9px;color:#87938f;margin:0 10px;text-transform:uppercase;letter-spacing:.07em}.demo-users{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.demo-users button{border:1px solid var(--line);background:#fff;border-radius:10px;padding:9px;text-align:left;display:flex;align-items:center;gap:7px;color:#62756f}.demo-users button.selected{border-color:#69a89d;background:#f0f8f6;color:var(--brand)}.demo-users svg{width:17px}.demo-users span{display:flex;flex-direction:column}.demo-users strong{font-size:9px}.demo-users small{font-size:7px;color:#8a9793;margin-top:1px}.login-note{text-align:center;font-size:9px;color:#8b9794;margin-top:13px}.login-note code{font-size:9px;background:#f0f3f2;padding:2px 4px;border-radius:4px}@media(max-width:1200px){.metric-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.agenda-preview,.ranking-panel{grid-column:auto;grid-row:auto}.settings-grid,.calendar-layout{grid-template-columns:1fr}.day-panel{min-height:300px}.password-fields{grid-template-columns:1fr}.login-hero{padding:40px}.hero-copy h1{font-size:45px}}@media(max-width:850px){.app-shell,.sidebar-collapsed{display:block}.sidebar,.sidebar-collapsed .sidebar{width:254px;transform:translate(-105%);box-shadow:15px 0 40px #081e1933}.sidebar.mobile-open{transform:translate(0)}.sidebar-overlay{display:block;position:fixed;inset:0;background:#14231f66;z-index:35;border:0}.sidebar-collapsed .brand-text,.sidebar-collapsed .course-chip,.sidebar-collapsed .nav-caption,.sidebar-collapsed .main-nav span,.sidebar-collapsed .export-link span,.sidebar-collapsed .sidebar-user>div:nth-child(2),.sidebar-collapsed .sidebar-user button{display:flex}.sidebar-collapsed .main-nav button,.sidebar-collapsed .export-link{justify-content:flex-start;padding:0 13px}.sidebar-collapsed .sidebar-user{grid-template-columns:38px minmax(0,1fr) 27px}.sidebar-collapsed .avatar{margin:0}.collapse-button{display:none}.mobile-close{display:grid;margin-left:auto;border:0;background:transparent;color:#b8d0cb}.topbar{padding:0 20px}.menu-button{display:grid}.breadcrumb span,.breadcrumb i{display:none}.status-pill,.profile-button>span,.profile-button>svg{display:none}.page-content{padding:25px 20px}.login-page{grid-template-columns:1fr}.login-hero{display:none}.login-panel{min-height:100vh}.mobile-login-brand{display:flex;align-items:center;gap:10px;font:700 15px Manrope;margin-bottom:45px}.mobile-login-brand .brand-mark{width:38px;height:38px}.calendar-grid>button{min-height:86px}.quality-summary{grid-template-columns:1fr}.agenda-line{grid-template-columns:8px 34px 1fr auto}.agenda-supervisor{display:none}}@media(max-width:600px){.page-content{padding:21px 13px}.page-heading{align-items:flex-start;flex-direction:column}.page-heading h1{font-size:25px}.heading-actions{width:100%;flex-wrap:wrap}.metric-grid{grid-template-columns:1fr}.metric-card{min-height:92px;padding:15px}.dashboard-heading .date-card{display:none}.panel-header{padding:17px}.agenda-toolbar{flex-wrap:wrap}.search-box{min-width:100%;max-width:none}.result-count{margin-left:auto}.filter-bar>label{width:calc(50% - 5px)}.filter-bar input,.filter-bar select{width:100%}.calendar-weekdays span{font-size:8px;padding:8px 2px}.calendar-grid>button{min-height:67px;padding:6px}.calendar-grid>button strong{font-size:11px;margin-top:7px}.calendar-grid>button small{display:none}.course-dots i{width:7px}.list-toolbar{align-items:stretch;flex-direction:column}.list-toolbar .search-box{min-width:0}.segmented{align-self:flex-start}.settings-card{grid-template-columns:1fr;padding:18px}.settings-icon{width:40px;height:40px}.form-grid{grid-template-columns:1fr}.field-full{grid-column:auto}.modal-backdrop{padding:8px}.modal{max-height:calc(100vh - 16px);border-radius:14px}.modal-header,.modal-body{padding:16px}.modal-actions{flex-wrap:wrap}.modal-actions .button{flex:1}.login-panel{padding:28px 22px}.mobile-login-brand{margin-bottom:35px}.demo-users{grid-template-columns:1fr}.demo-users button{justify-content:center}.toast-stack{right:15px;bottom:15px}.inline-stats{flex-wrap:wrap}.import-summary{grid-template-columns:1fr}.audit-list time{display:none}}.hero-authors{display:block;color:#d4e5e1;font-size:11px;letter-spacing:.01em;margin-top:20px}@media(max-width:1200px){.hero-authors{margin-top:15px}}@media(max-width:850px){.hero-authors{color:var(--muted)}}.activity-l i{background:#bcc8c5}.activity-ah i{background:#3f8f78}.activity-ac i{background:#b96f37}.dot-l{background:#c8d1ce}.main-nav{min-height:0;overflow-y:auto;scrollbar-width:thin}.action-cell .button{width:auto;height:34px;display:inline-flex;padding:0 11px;color:inherit}.free-choice-panel{margin-top:16px}.free-choice-panel .data-table{min-width:820px}.evaluations-panel .data-table{min-width:1220px}.score-pill{display:inline-grid;place-items:center;min-width:42px;height:30px;padding:0 9px;border-radius:9px;background:#e4f3eb;color:#2d7452;font:700 12px Manrope}.evaluation-comment{display:block;max-width:270px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#52645f}.evaluation-form{display:grid;grid-template-columns:160px 1fr;gap:14px}.evaluation-form .field-full{grid-column:1/-1}.evaluation-form textarea{resize:vertical}.free-choice-panel+.modal-backdrop select,.evaluation-form input{font-variant-numeric:tabular-nums}.load-balance-strip{display:grid;grid-template-columns:1fr 1fr;gap:9px;padding:0 22px 14px}.load-balance-strip>div{background:#f5f8f7;border:1px solid var(--line);border-radius:11px;padding:10px 12px;display:grid;grid-template-columns:1fr auto;align-items:center}.load-balance-strip span{font-size:10px;font-weight:700;color:#52716a}.load-balance-strip strong{font-size:20px}.load-balance-strip small{grid-column:1/-1;color:var(--muted);font-size:8px}.ranking-panel .mini-chart{height:190px}@media(max-width:600px){.evaluation-form{grid-template-columns:1fr}.evaluation-form .field-full{grid-column:auto}.free-choice-panel+.modal-backdrop .modal-actions .button{flex-basis:100%}}.calendar-export-range{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.calendar-export-range>span{font-size:10px;font-weight:700;color:#526660}.calendar-export-options{display:grid;gap:9px}.calendar-export-card{border:1px solid var(--line);border-radius:12px;padding:12px;display:grid;grid-template-columns:38px 1fr 22px;align-items:center;gap:11px;transition:.15s ease}.calendar-export-card:hover{border-color:#79aaa2;background:#f4faf8;transform:translateY(-1px)}.calendar-export-card>div{width:38px;height:38px;border-radius:10px;background:#e5f2ef;color:var(--brand);display:grid;place-items:center}.calendar-export-card>div svg{width:19px}.calendar-export-card>span{display:flex;flex-direction:column}.calendar-export-card strong{font-size:11px}.calendar-export-card small{font-size:8px;color:var(--muted);margin-top:3px}.calendar-export-card>svg{width:16px;color:#70817c}.free-request-summary{background:#f4f8f7;border:1px solid var(--line);border-radius:12px;padding:14px;display:flex;flex-direction:column}.free-request-summary span{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.free-request-summary strong{font-size:14px;margin:5px 0}.free-request-summary small{font-size:9px;color:#667773}.whatsapp-date{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:12px}.whatsapp-date label{display:flex;flex-direction:column;gap:5px}.whatsapp-date label span{font-size:9px;font-weight:700;color:#526660}.whatsapp-date input{height:39px;border:1px solid #d4dfdc;border-radius:9px;padding:0 10px;color:var(--ink)}.share-message{width:100%;border:1px solid #d4dfdc;border-radius:11px;background:#f8faf9;padding:13px;font:11px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace;color:#334b45;resize:vertical}.disabled-link{pointer-events:none;opacity:.5}.student-import-card .settings-icon{background:#eee8f5;color:#735497}@media(max-width:600px){.calendar-export-range{align-items:flex-start;flex-direction:column}.calendar-export-range .segmented{width:100%}.calendar-export-range .segmented button{flex:1}.whatsapp-date{align-items:flex-start;flex-direction:column}.calendar-export-card{grid-template-columns:34px 1fr 18px}}.login-box{width:min(430px,100%)}.institution-logos{display:grid;grid-template-columns:64px 1px minmax(0,1fr);align-items:center;gap:18px;margin:0 0 29px;padding:0 0 23px;border-bottom:1px solid #e7edeb}.institution-logos>span{width:1px;height:46px;background:#dfe7e4}.institution-logos img{display:block;object-fit:contain}.institution-logos .ucm-logo{width:62px;height:70px}.institution-logos .huil-logo{width:100%;max-width:264px;height:auto}.login-security-note{margin:18px 0 0;display:flex;align-items:center;justify-content:center;gap:6px;color:#87948f;font-size:9px}.login-security-note svg{width:14px;color:#59776f}.login-logout{display:flex;align-items:center;gap:6px;margin:17px auto 0;border:0;background:transparent;color:#71817d;font-size:10px}.password-setup-page .login-box form>.button{flex-direction:row}.password-setup-page .login-intro{margin-bottom:17px}.login-logout:hover{color:var(--danger)}.alert-center{position:relative}.alert-button{position:relative;width:36px;height:36px;border:1px solid var(--line);background:#fff;border-radius:11px;color:#647671;display:grid;place-items:center}.alert-button:hover,.alert-button.has-alerts{color:#9b5c26;background:#fff9f1;border-color:#edcfaa}.alert-button>b{position:absolute;right:-7px;top:-7px;min-width:19px;height:19px;border-radius:10px;padding:0 5px;background:#b94b50;color:#fff;border:2px solid #fff;display:grid;place-items:center;font-size:8px}.alert-menu{position:absolute;right:0;top:47px;width:min(400px,calc(100vw - 28px));background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:0 18px 50px #14342e2e;overflow:hidden;z-index:35}.alert-menu-header{padding:15px 16px;background:#f8faf9;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.alert-menu-header>div{display:flex;flex-direction:column}.alert-menu-header span{font-size:8px;text-transform:uppercase;letter-spacing:.11em;color:#788984}.alert-menu-header strong{font-size:13px;margin-top:3px}.alert-menu-header>b{min-width:28px;height:28px;border-radius:9px;background:#fff0df;color:#a56228;display:grid;place-items:center;font-size:11px}.alert-menu-header>svg{color:#43805c}.alert-menu-list{padding:7px}.alert-menu-list>button{width:100%;border:0;background:transparent;border-radius:10px;padding:10px;display:grid;grid-template-columns:35px minmax(0,1fr) 28px;align-items:center;gap:10px;text-align:left;color:var(--ink)}.alert-menu-list>button:hover{background:#f5f8f7}.alert-menu-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center}.alert-menu-icon svg{width:16px}.alert-menu-icon.warning{background:#fff0df;color:#a8662b}.alert-menu-icon.danger{background:#fde8e9;color:#a44247}.alert-menu-list>button>span{display:flex;flex-direction:column;min-width:0}.alert-menu-list strong{font-size:10px}.alert-menu-list small{font-size:8px;color:var(--muted);line-height:1.45;margin-top:3px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.alert-menu-list>button>b{justify-self:end;color:#6f807b;font-size:11px}.alerts-empty{padding:26px;display:flex;flex-direction:column;align-items:center;text-align:center}.alerts-empty svg{color:#4b8b65;margin-bottom:8px}.alerts-empty strong{font-size:12px}.alerts-empty span{font-size:9px;color:var(--muted);margin-top:3px}.availability-panel{padding:22px;margin-bottom:22px}.availability-heading{display:flex;justify-content:space-between;align-items:center;gap:20px}.availability-heading h2{margin:5px 0;font-size:20px}.availability-heading p,.availability-date-list{color:var(--muted);font-size:13px;line-height:1.5}.availability-panel>.alert{margin:14px 0}.availability-panel>.muted{margin-bottom:0}.substitution-heading{font-size:15px;margin:20px 0 12px}.substitution-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.substitution-card{padding:16px;border:1px solid var(--line);border-radius:12px;background:#fbfcfc}.substitution-card-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.substitution-card p{font-size:13px;margin:8px 0}.substitution-card small{display:block;color:var(--muted);line-height:1.6}.substitution-actions{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}.substitution-card>.button{margin-top:14px}.availability-rules{padding-left:22px;line-height:1.65;font-size:14px}.availability-rules li{margin:8px 0}.availability-option{display:flex;align-items:flex-start;gap:12px;padding:16px 0;border-top:1px solid var(--line);cursor:pointer}.availability-option input{width:18px;height:18px;flex:none;margin-top:2px}.availability-option span{display:grid;gap:6px}.availability-option strong{font-size:14px}.availability-option small{font-size:12px;color:var(--muted);line-height:1.5}.substitution-outcome{display:grid;gap:9px;padding:15px 0;border-bottom:1px solid var(--line)}.substitution-outcome .badge{justify-self:start}.substitution-outcome p{margin:0;line-height:1.5}.calendar-grid .unavailable-day{background:#fff3e9}.calendar-grid .unavailable-label{color:#8a4f1a;font-size:10px;font-weight:700;white-space:normal}.day-card>.badge{align-self:flex-start;margin-bottom:8px}.person-cell>.badge{align-self:flex-start}@media(max-width:850px){.availability-heading{align-items:stretch;flex-direction:column}.substitution-list{grid-template-columns:1fr}.availability-panel{padding:16px}.availability-heading .heading-actions{flex-wrap:wrap}}.feedback-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin-bottom:17px}.feedback-summary article{background:#fff;border:1px solid var(--line);border-radius:15px;padding:16px;display:grid;grid-template-columns:42px minmax(0,1fr);column-gap:12px;align-items:center}.feedback-summary article>div{grid-row:1/4;width:42px;height:42px;border-radius:12px;background:#e7f3f0;color:#2f7469;display:grid;place-items:center}.feedback-summary article>div svg{width:20px}.feedback-summary span{font-size:9px;color:var(--muted)}.feedback-summary strong{font-size:18px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.feedback-summary small{font-size:8px;color:#87948f}.feedback-panel{overflow:hidden}.feedback-panel .list-toolbar>div:first-child h2{font-size:15px;margin:3px 0 0}.feedback-table{min-width:1080px}.feedback-comment{display:block;max-width:330px;white-space:normal;line-height:1.5;color:#50645e}.feedback-form{display:grid;grid-template-columns:170px 1fr;gap:14px}.feedback-form .field-full{grid-column:1/-1}.subscription-box{border:1px solid #cfe0dc;background:#f8fbfa;border-radius:14px;padding:14px;margin-bottom:18px}.subscription-heading{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:10px;margin-bottom:12px}.subscription-heading>div{width:39px;height:39px;border-radius:11px;background:#dceeea;color:var(--brand);display:grid;place-items:center}.subscription-heading>div svg{width:19px}.subscription-heading>span{display:flex;flex-direction:column}.subscription-heading strong{font-size:11px}.subscription-heading small{font-size:8px;color:var(--muted);margin-top:3px}.subscription-box .alert{margin-bottom:11px}.subscription-url{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.subscription-url input{width:100%;height:40px;border:1px solid #cddbd8;border-radius:9px;padding:0 10px;background:#fff;color:#39534d;font:9px ui-monospace,SFMono-Regular,Menlo,monospace}.subscription-help{display:flex;align-items:center;gap:8px;margin:10px 0;color:#4f7169}.subscription-help svg{width:17px}.subscription-help span{display:flex;flex-direction:column}.subscription-help strong{font-size:9px}.subscription-help small{font-size:8px;color:var(--muted);margin-top:2px}.subscription-actions{display:flex;justify-content:flex-end;gap:7px;margin-top:9px}.subscription-note{font-size:9px!important;margin:0 0 10px!important;color:#697b76!important}.subscription-providers{border-top:1px solid #dce6e3;margin-top:13px;padding-top:10px;display:grid;gap:4px}.subscription-providers span{font-size:8px;color:#6e807b}.subscription-providers strong{display:inline-block;min-width:49px;color:#3e625a}.calendar-download-title{display:flex;align-items:center;gap:9px;margin:0 0 13px;color:#4a6962}.calendar-download-title>svg{width:19px}.calendar-download-title>span{display:flex;flex-direction:column}.calendar-download-title strong{font-size:11px}.calendar-download-title small{font-size:8px;color:var(--muted);margin-top:2px}@media(max-width:850px){.alert-menu{right:-95px}.institution-logos{margin-bottom:26px}}@media(max-width:600px){.institution-logos{grid-template-columns:52px 1px minmax(0,1fr);gap:12px;padding-bottom:18px}.institution-logos .ucm-logo{width:50px;height:58px}.institution-logos .huil-logo{max-width:220px}.alert-menu{position:fixed;top:64px;right:9px}.feedback-summary,.feedback-form{grid-template-columns:1fr}.feedback-form .field-full{grid-column:auto}.subscription-heading{grid-template-columns:38px minmax(0,1fr)}.subscription-heading>.badge{grid-column:2;justify-self:start}.subscription-url{grid-template-columns:1fr}.subscription-actions{align-items:stretch;flex-direction:column}.subscription-actions .button{width:100%}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:80px}body{min-width:320px}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button:focus-visible,a:focus-visible{outline:3px solid #71b0a2;outline-offset:3px}.main-area,.page-content,.panel,.settings-copy{min-width:0}.mobile-bottom-nav{display:none}.login-install{margin-top:22px}.mobile-preferences{padding:24px;margin-bottom:24px}.mobile-feature-title{display:flex;align-items:center;gap:16px}.mobile-feature-title>svg{width:44px;height:44px;padding:8px;background:#e8f3ef;border-radius:12px}.mobile-feature-title h2{margin:4px 0;font-size:21px}.mobile-feature-title p{margin:0;color:#536963}.mobile-preferences-columns{display:grid;grid-template-columns:1fr 1.3fr;gap:28px;margin-top:20px}.mobile-preferences h3{font-size:17px;margin:0 0 10px}.mobile-preferences p{font-size:14px;line-height:1.6}.mobile-preferences small{display:block;font-size:12px;line-height:1.6;color:#60736d;margin-top:12px}.mobile-feature-actions{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px}.install-steps{padding-left:24px;line-height:1.65}.install-steps li{padding:8px 0}.connection-banner{display:flex;gap:10px;align-items:center;background:#fff4df;padding:14px 16px;border-radius:12px;margin-bottom:16px;color:#74460b;font-size:14px}.notification-list article{padding:22px;border-top:1px solid #e1e9e5}.notification-list article.unread{background:#f0f7f4}.notification-list article>div{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.notification-list p{line-height:1.6;font-size:15px}.notification-list small{display:block;color:#61736c;margin:10px 0}.notice-unread{background:#d9ece3;color:#215342;padding:4px 8px;border-radius:9px;font-size:12px}.install-compact{width:100%;font-size:11px;padding:9px 6px}.sidebar .install-compact{margin:0 0 10px}.nav-notice-icon{position:relative;display:flex}.nav-notice-icon b{position:absolute;top:-9px;right:-14px;background:#a73739;color:#fff;font-size:10px;padding:2px 5px;border-radius:10px}.mobile-preferences .alert{margin-top:12px}@media(pointer:coarse){button,.button,.icon-button,.text-button,a.export-link{min-height:44px}input:not([type=checkbox]):not([type=radio]),select{min-height:46px}input[type=checkbox],input[type=radio]{width:22px;height:22px;flex-shrink:0}.action-cell button{width:44px;height:44px}}@media(max-width:900px){.app-shell,.app-shell.sidebar-collapsed{display:block;padding-left:0}.main-area,.sidebar-collapsed .main-area{margin-left:0;width:100%}.sidebar,.sidebar-collapsed .sidebar{width:280px;max-width:calc(100vw - 40px);position:fixed;inset:0 auto 0 0;transform:translate(-100%);z-index:160;padding-bottom:env(safe-area-inset-bottom)}.sidebar.mobile-open{transform:translate(0)}.sidebar .brand-text,.sidebar .course-chip,.sidebar .main-nav span,.sidebar .sidebar-user>div,.sidebar .export-link span{display:initial}.sidebar-overlay{display:block;position:fixed;inset:0;border:0;background:#112b2566;z-index:150}.mobile-close,.menu-button{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px}.collapse-button{display:none}.sidebar .main-nav button{min-height:48px;font-size:15px}.sidebar-user strong{font-size:13px}.main-nav{overscroll-behavior:contain}.topbar{height:auto;min-height:68px;padding:8px max(14px,env(safe-area-inset-right)) 8px max(10px,env(safe-area-inset-left));gap:8px;position:sticky;top:0;z-index:50}.breadcrumb{font-size:14px;min-width:0;overflow:hidden}.breadcrumb>span,.breadcrumb>i,.status-pill,.profile-button>span,.profile-button>svg{display:none}.top-actions{gap:7px;margin-left:auto}.profile-button{min-width:44px;min-height:44px;padding:3px}.alert-button{min-width:44px;min-height:44px}.alert-menu,.profile-menu{position:fixed;top:72px;left:12px;right:12px;width:auto;max-width:440px;margin-left:auto;max-height:calc(100dvh - 170px);overflow:auto}.page-content{padding:22px 18px calc(100px + env(safe-area-inset-bottom))}.mobile-bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:70;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:7px max(6px,env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left));border-top:1px solid #dce6e0;background:#fffffff5;box-shadow:0 -4px 20px #173f3a0a;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.mobile-bottom-nav>button{min-height:56px;min-width:0;background:transparent;border:0;border-radius:12px;color:#586e65;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;font-size:12px;font-weight:650}.mobile-bottom-nav>button.active{background:#e6f1ec;color:#173f3a}.mobile-bottom-nav svg{width:22px;height:22px}.calendar-layout,.dashboard-grid{grid-template-columns:minmax(0,1fr)}.day-panel,.day-assignments{max-height:none}.settings-grid{grid-template-columns:minmax(0,1fr)}.page-heading{align-items:flex-start;flex-direction:column;gap:16px}.heading-actions{flex-wrap:wrap;width:100%;gap:10px}.heading-actions>.button{white-space:normal;min-height:46px}.button{font-size:14px;min-height:46px;padding:11px 15px;border-radius:11px;line-height:1.35;justify-content:center;white-space:normal}.icon-button,.calendar-header>button,.pagination button{min-width:44px;min-height:44px}.page-heading h1{font-size:28px;line-height:1.2}.page-heading p{font-size:15px;line-height:1.5}.eyebrow{font-size:11px}.panel h2{font-size:19px}.panel-header{gap:14px;flex-wrap:wrap}.alert{font-size:13px;line-height:1.5;padding:14px}.field>span{font-size:13px}.field small{font-size:12px}.field input,.field select,.field textarea,.filter-bar input,.filter-bar select,.toolbar-select,.search-box input{font-size:16px;min-height:46px}.search-box{height:48px;min-width:0}.search-box input{width:100%}.filter-toggle{height:48px;font-size:14px}.result-count{font-size:13px}.badge{font-size:12px;padding:6px 10px}.pagination{gap:10px;justify-content:center;height:auto;padding:15px;flex-wrap:wrap}.pagination span{font-size:14px}.empty-state h3{font-size:18px}.empty-state p{font-size:14px}.availability-heading{align-items:stretch;flex-direction:column}.availability-heading p,.substitution-card p{font-size:14px;line-height:1.5}.availability-option{padding:14px 0;font-size:14px;line-height:1.5}.availability-option input{min-width:22px;min-height:22px}.substitution-card-title{align-items:flex-start;gap:10px;flex-wrap:wrap}.substitution-card small{font-size:12px}.modal-backdrop{padding:12px;z-index:200}.modal,.modal-wide{width:min(760px,100%);max-height:calc(100dvh - 24px);overscroll-behavior:contain}.modal-header h2{font-size:20px}.modal-header p{font-size:13px;line-height:1.45}.modal-body>p{font-size:15px}.modal-actions{flex-wrap:wrap;position:sticky;bottom:-20px;background:#fff;padding:14px 0;margin-top:16px;z-index:3}.modal-actions>.button{flex:1 1 170px}.share-message{font-size:15px;min-height:200px}.toast-stack{bottom:calc(90px + env(safe-area-inset-bottom));left:14px;right:14px}.toast{max-width:100%;font-size:14px}.evaluation-form{grid-template-columns:minmax(0,1fr)}.mobile-preferences-columns{grid-template-columns:minmax(0,1fr);gap:24px}.mobile-preferences{padding:20px}.notifications-panel>.panel-header .button{width:100%}}@media(max-width:700px){.mobile-friendly-table{display:block;min-width:0!important;width:100%!important;table-layout:auto!important;border-collapse:separate}.mobile-friendly-table colgroup{display:none}.mobile-friendly-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.mobile-friendly-table tbody{display:grid;gap:14px;padding:12px}.mobile-friendly-table tbody tr{display:block;min-width:0;border:1px solid #dce6e0;border-radius:14px;overflow:hidden;background:#fff}.mobile-friendly-table td{display:grid;grid-template-columns:96px minmax(0,1fr);align-items:start;gap:12px;padding:11px 12px;border:0;border-bottom:1px solid #eff3f0;font-size:14px;overflow-wrap:anywhere;min-width:0;text-align:left!important}.mobile-friendly-table td:before{content:attr(data-label);font-size:12px;font-weight:650;line-height:1.5;color:#60756b}.mobile-friendly-table td:last-child{border-bottom:0}.mobile-friendly-table td>*{min-width:0;max-width:100%}.mobile-friendly-table td:empty{display:none}.mobile-friendly-table .action-cell{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.mobile-friendly-table .action-cell:before{margin-right:auto}.mobile-friendly-table .action-cell button{min-width:44px;min-height:44px}.mobile-friendly-table input:not([type=checkbox]),.mobile-friendly-table select{width:100%;min-width:0!important;font-size:16px;min-height:46px}.mobile-friendly-table .person-cell,.mobile-friendly-table .stack-cell{max-width:none}.mobile-friendly-table strong,.mobile-friendly-table .person-cell strong,.mobile-friendly-table .date-cell strong,.mobile-friendly-table .stack-cell strong{font-size:14px;white-space:normal;overflow:visible;text-overflow:clip}.mobile-friendly-table .person-cell span,.mobile-friendly-table small,.mobile-friendly-table .stack-cell span,.mobile-friendly-table .date-cell span{font-size:12px;white-space:normal;overflow:visible}.mobile-friendly-table .activity-label{font-size:13px;white-space:normal;line-height:1.5}.mobile-friendly-table .evaluation-comment{white-space:normal;font-size:13px;max-width:none}.table-scroll:has(.mobile-friendly-table){overflow-x:visible;max-height:none!important}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.metric-card{padding:14px 10px;gap:9px;min-width:0;min-height:120px;align-items:flex-start;flex-direction:column}.metric-card span{font-size:12px;line-height:1.3}.metric-card strong{font-size:26px}.metric-card small{font-size:11px;line-height:1.3;white-space:normal}.metric-icon{width:32px;height:32px;flex-shrink:0}.metric-icon svg{width:19px}.agenda-line{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:10px;padding:16px}.agenda-line .activity-dot{display:none}.agenda-person{min-width:0}.agenda-person strong,.agenda-supervisor strong{font-size:14px;white-space:normal}.agenda-person span,.agenda-supervisor span{font-size:12px;white-space:normal}.agenda-supervisor{grid-column:2/-1;justify-self:start;text-align:left}.course-row{padding:17px;gap:12px}.course-token{width:42px;height:42px}.course-info{min-width:0}.course-info strong{font-size:15px}.course-info span{font-size:12px}.calendar-header{padding:16px 10px;gap:8px}.calendar-header h2{font-size:19px}.calendar-header span{font-size:12px}.calendar-weekdays span{font-size:11px;padding:12px 0}.calendar-grid>button{padding:6px 4px;min-height:68px;min-width:0}.calendar-grid>button .day-number{font-size:14px}.calendar-grid>button strong{font-size:14px;margin-top:4px}.calendar-grid>button small{display:none}.calendar-grid>button.unavailable-day:after{content:"×";position:absolute;bottom:3px;right:4px;color:#9d3a3a;font-weight:700}.course-dots{gap:3px}.course-dots i{width:6px;height:4px}.day-panel-header{padding:18px;gap:16px}.day-card{padding:16px}.day-card>strong{font-size:16px}.day-card>small{font-size:13px}.day-card-top>span,.day-supervisor{font-size:14px}.day-card-top button{min-height:44px;min-width:44px}.day-supervisor span{white-space:normal;line-height:1.5}.settings-card{padding:20px;grid-template-columns:minmax(0,1fr)}.settings-copy p,.source-info strong{font-size:14px;overflow-wrap:anywhere}.source-info span,.source-info small,.system-info{font-size:12px}.form-grid{grid-template-columns:minmax(0,1fr)}.field-full{grid-column:auto}.filter-bar>label{width:100%}.filter-bar{align-items:stretch;gap:14px}.filter-bar input,.filter-bar select{width:100%;max-width:100%}.filter-bar label span{font-size:12px}.heading-actions>.button{flex:1 1 190px}.segmented{display:flex;flex-wrap:wrap;max-width:100%}.segmented button{min-height:44px;font-size:14px}.audit-list article{align-items:flex-start}.audit-list strong{font-size:13px}.audit-list span{font-size:12px}.mobile-feature-actions>.button{width:100%}.login-page{display:block;min-height:100dvh}.login-hero{display:none}.login-panel{padding:30px 22px max(28px,env(safe-area-inset-bottom));min-height:100dvh}.login-box{max-width:440px;width:100%;margin:auto}.institution-logos{margin-bottom:26px;padding-bottom:24px}.institution-logos .ucm-logo{max-width:56px}.institution-logos .huil-logo{min-width:0;width:calc(100% - 92px);max-width:240px}.login-box h2{font-size:30px}.login-intro{font-size:16px;line-height:1.5}.login-box form{gap:20px}.login-box form input{font-size:16px;min-height:52px}.login-box form>.button{min-height:54px;font-size:17px}.password-input button{min-width:48px;min-height:48px}.login-install>.button{width:100%;min-height:50px}.login-security-note{font-size:12px}.modal-header,.modal-body{padding:18px}.modal-actions{bottom:-18px}.modal-body .availability-option{font-size:14px}.chart-wrap{height:230px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.huil-app-icon{width:64px;height:64px;border-radius:50%;flex-shrink:0;box-shadow:0 5px 16px #174f3c24}.install-huil{min-height:54px;max-width:100%;text-align:left;line-height:1.4}.install-app-preview{display:flex;align-items:center;gap:18px;margin:0 0 22px}.install-app-preview img{width:84px;height:84px;border-radius:50%;box-shadow:0 6px 22px #174f3c26}.install-app-preview strong{display:block;font-size:25px}.install-app-preview span{display:block;color:#5c756a;margin-top:4px}.reminder-explainer{display:flex;gap:12px;padding:18px;background:#edf5f0;border-radius:14px;margin-top:22px;color:#184f42}.reminder-explainer>svg{flex-shrink:0}.reminder-explainer p{margin:8px 0 0!important}.notification-options{display:grid;gap:16px;margin:20px 0}.notification-options label{display:flex;align-items:flex-start;gap:12px;cursor:pointer;line-height:1.5}.notification-options input{min-width:22px;min-height:22px;margin-top:2px;accent-color:#235b4d}.notification-options strong{display:block;font-size:14px}.notification-options small{display:block!important;font-size:12px;line-height:1.5;margin-top:4px!important}.scheduler-status{display:flex;flex-direction:column;gap:6px;border-top:1px solid #e1eae5;margin-top:22px;padding-top:18px;font-size:13px;color:#5c756a}.notification-list article>p{white-space:pre-line}.install-steps svg{vertical-align:middle}.install-compact{font-size:12px;padding:8px 10px}@media(max-width:700px){.huil-app-icon{width:56px;height:56px}.mobile-feature-title h2{font-size:22px}.install-huil{width:100%;font-size:15px;justify-content:flex-start}.notification-options strong{font-size:15px}.notification-options small{font-size:13px}.reminder-explainer{font-size:15px}.scheduler-status{font-size:13px}}.install-huil{justify-content:center;text-align:center;white-space:normal;overflow-wrap:normal;gap:0;padding:12px 14px;min-height:48px;line-height:1.4}.install-full-label{display:block;min-width:0}.install-short-label{display:none}.sidebar .install-compact{width:100%;font-size:13px;min-height:48px;padding:12px 10px}.app-setup-step{border-top:1px solid #e2ebe7;padding:18px 0}.app-setup-step h3{font-size:18px;margin:0 0 12px}.app-setup-step p{font-size:15px;line-height:1.6}.app-setup-step small,.setup-permission-note{font-size:13px;line-height:1.6;color:#566d64}.app-setup-step>.button{margin:8px 8px 0 0}.setup-complete{display:flex;align-items:center;gap:10px;color:#226047}.setup-complete svg{flex-shrink:0}.setup-notifications .mobile-feature-actions{margin-top:18px}.setup-notifications small{display:block;font-size:12px;line-height:1.6;color:#60736d;margin-top:10px}.setup-notifications .alert{margin:14px 0}.setup-preferences{margin:16px 0}.setup-preferences summary{cursor:pointer;font-size:13px;line-height:1.5;color:#49665a;padding:8px 0}.setup-notifications .notification-options{margin:12px 0 20px}@media(min-width:901px){.sidebar-collapsed .install-compact{font-size:12px;padding:8px 2px}.sidebar-collapsed .install-compact .install-full-label{display:none}.sidebar-collapsed .install-compact .install-short-label{display:block}}@media(max-width:700px){.install-huil{font-size:15px}.app-setup-step>.button,.setup-notifications .mobile-feature-actions>.button{width:100%;min-height:50px}.app-setup-step .install-steps{font-size:15px}.setup-preferences summary{font-size:14px;min-height:44px}}.change-history{margin-top:18px}.history-heading,.change-card-title{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.history-heading h3{font-size:17px;margin:0}.change-history-card,.coordination-card{display:flex;flex-direction:column;gap:10px;border:1px solid #dce6e0;border-radius:14px;padding:18px;margin:14px 0;background:#fff}.change-history-card p,.coordination-card p{margin:0;line-height:1.5;overflow-wrap:anywhere}.change-history-card>.button,.coordination-card>.button{align-self:flex-start}.change-receipts{display:flex;flex-direction:column;gap:7px;font-size:13px;color:#596c66}.change-history-card small,.coordination-card small{color:#61756c}.history-pagination{display:flex;justify-content:center;align-items:center;gap:16px;margin-top:18px}.change-marker{display:flex;align-items:center;gap:6px;font-size:12px;line-height:1.4;color:#72591c;border:1px solid #e3ce91;border-radius:8px;background:#fff8e5;padding:8px 10px;margin:8px 0;cursor:pointer;text-align:left;white-space:normal}.coordination-panel{padding:22px}.coordination-tabs{margin-bottom:18px}.preserve-lines,.notification-list p{white-space:pre-line}.audit-details{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;background:#f6f8f7;padding:12px;border-radius:8px;max-height:300px;overflow:auto}.coordination-card summary{cursor:pointer;color:#3a6b5d;padding:8px 0}.coordination-card .badge{align-self:flex-start}@media(max-width:700px){.coordination-panel{padding:16px}.change-marker{min-height:44px;font-size:13px}.change-history-card,.coordination-card{padding:14px}.change-history-card>.button,.coordination-card>.button{align-self:stretch}.coordination-tabs{display:grid;grid-template-columns:1fr 1fr}.coordination-tabs button{min-height:48px;white-space:normal}.change-receipts{font-size:13px}.history-heading{align-items:flex-start}.change-card-title strong{font-size:15px;line-height:1.45}}.sidebar .install-compact.install-huil{background:transparent;border:0;box-shadow:none;color:#b8d0cb;border-radius:0;font-size:14px;font-weight:500;line-height:1.4;min-height:40px;padding:8px 13px 8px 44px;margin:0;text-align:left;justify-content:flex-start;white-space:nowrap}.sidebar .install-compact.install-huil:hover{background:transparent;color:#fff;text-decoration:underline;text-underline-offset:4px}@media(min-width:901px){.sidebar-collapsed .install-compact.install-huil{justify-content:center;padding:8px 0;text-align:center}}@media(max-width:700px){.sidebar .install-compact.install-huil{min-height:44px;font-size:15px}}:root{--ink:#202b39;--muted:#536174;--line:#cfd8e3;--soft:#f2f5f9;--brand:#1f6156;--brand-dark:#194e45;--brand-light:#edf5f2;--shadow:0 4px 16px #0000000a;--radius:12px;--ui-accent:#2563eb;--ui-active:#dbeafe;--workspace:#edf1f6;--section-heading:#f1f5f9;--nav-bg:#243746;--nav-text:#e5edf5;--nav-muted:#b9cad9;--nav-hover:#334c60;--ui-font:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-family:var(--ui-font);color:var(--ink);background:var(--workspace)}body{font-size:14px;line-height:1.5;background:var(--workspace)}.main-area{background:var(--workspace)}h1,h2,h3,strong,.avatar,.course-token,.student-avatar,.score-pill,.login-brand{font-family:var(--ui-font)}strong{font-weight:600}button,a,input,select,textarea{outline-color:var(--ui-accent)}button:focus-visible,a:focus-visible{outline:2px solid var(--ui-accent);outline-offset:3px}.sidebar{background:var(--nav-bg);color:#fff;border-right:1px solid #1c2d3b;padding:20px 12px 14px;box-shadow:none}.brand{gap:10px;padding:0 9px;height:42px}.brand-mark{width:36px;height:36px;border-radius:8px;background:#fff;color:var(--brand);border:1px solid var(--line);box-shadow:none}.brand-text strong{font-size:16px;font-weight:600;letter-spacing:-.02em}.brand-text span{font-size:11px;color:var(--nav-muted);letter-spacing:0}.course-chip{margin:20px 8px 18px;padding:0;border:0;border-radius:0;background:transparent;flex-direction:row;align-items:center;justify-content:space-between;gap:8px}.course-chip span{font-size:11px;letter-spacing:0;text-transform:none;color:var(--nav-muted)}.course-chip strong{font-size:12px;margin:0;font-weight:500}.nav-caption{text-transform:none;letter-spacing:0;color:var(--nav-muted);font-size:11px;font-weight:500;padding:0 12px;margin:4px 0 8px}.main-nav{gap:2px;scrollbar-color:#6f879a transparent}.main-nav button,.export-link{border-radius:6px;min-height:38px;padding:0 12px;gap:10px;color:var(--nav-text)}.main-nav button span,.export-link span{font-size:13px;font-weight:500}.main-nav button>svg,.export-link>svg{width:17px;height:17px;color:var(--nav-muted)}.main-nav button:hover,.export-link:hover{background:var(--nav-hover);color:#fff}.main-nav button.active{background:var(--ui-active);color:#173f73;box-shadow:inset 3px 0 #77adf0}.main-nav button.active>svg{color:#245995}.main-nav button.active i{display:none}.sidebar-bottom{padding-top:12px}.sidebar-user{border-color:#496071;padding:14px 8px 0;grid-template-columns:32px minmax(0,1fr) 24px;gap:9px}.sidebar-user strong{font-size:12px}.sidebar-user span{color:var(--nav-muted);font-size:11px}.sidebar-user button,.mobile-close{color:var(--nav-text)}.sidebar .avatar{background:#385165;color:#edf4fb;border-color:#546d81}.sidebar button:focus-visible,.sidebar a:focus-visible{outline-color:#9ec9ff}.avatar{width:32px;height:32px;border-radius:999px;background:#f0f0f0;color:#525252;font-size:11px;font-weight:500;border:1px solid #e5e5e5}.collapse-button{background:#fff;border:1px solid #d4d4d4;color:#737373;width:24px;height:24px;right:-12px;top:77px}.topbar{height:60px;background:#fff;border-bottom:1px solid var(--line);-webkit-backdrop-filter:none;backdrop-filter:none;padding:0 32px}.breadcrumb,.breadcrumb strong{font-size:13px;font-weight:500}.top-actions{gap:16px}.status-pill{color:#737373;font-size:11px}.profile-button>span{font-weight:500;font-size:12px}.page-content{padding:28px 32px;max-width:1550px}.page-heading{margin-bottom:24px;gap:20px}.page-heading h1{font-size:28px;font-weight:500;line-height:1.25;letter-spacing:-.025em;margin:3px 0 6px}.page-heading p{font-size:14px;line-height:1.5;color:var(--muted)}.eyebrow,.eyebrow.light{font-size:11px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--muted)}.button{min-height:36px;border-radius:8px;font-size:13px;font-weight:500;padding:8px 13px;line-height:1.35}.button-primary{background:#171717;color:#fff;box-shadow:0 1px 2px #00000008}.button-primary:hover{background:#333;transform:none}.button-secondary{border-color:#d4d4d4;color:#404040;background:#fff}.button-secondary:hover,.button-ghost:hover{background:#f5f5f5}.button-ghost{color:#525252}.text-button{font-size:12px;font-weight:500;color:#1d4ed8}.icon-button{border-radius:8px;background:#f5f5f5;color:#525252}.panel,.metric-card,.quality-summary article,.feedback-summary article{background:#fff;border-color:var(--line);border-radius:12px;box-shadow:0 2px 5px #20344d09}.panel-header{padding:20px;gap:16px;background:var(--section-heading);border-bottom:1px solid #d8e1eb;border-radius:11px 11px 0 0}.panel-header h2,.panel h2{font-size:17px;font-weight:600;letter-spacing:-.015em;color:#253b51}.badge{border-radius:999px;font-size:11px;font-weight:500;padding:3px 8px;line-height:1.5}.badge-neutral{background:#f5f5f5;color:#525252}.metric-grid{gap:14px;margin-bottom:20px}.metric-card{padding:18px;gap:14px;min-height:108px;align-items:flex-start}.metric-card span{font-size:12px;font-weight:400;color:#666}.metric-card strong{font-size:29px;font-weight:500;letter-spacing:-.035em;font-variant-numeric:tabular-nums}.metric-card small{font-size:11px;color:#737373;line-height:1.45}.metric-icon{width:34px;height:34px;border-radius:8px;background:#e8eef5;color:#486581}.metric-icon svg{width:19px;height:19px}.metric-orange{background:#fff7ed;color:#b45309}.date-card{border-radius:8px;color:#525252;padding:8px 12px}.date-card small{font-size:10px;text-transform:none;letter-spacing:0;color:#737373}.date-card strong{font-size:12px;font-weight:500}.dashboard-grid{gap:20px}.legend{font-size:11px}.course-list,.agenda-list{padding:0 20px 16px}.course-row,.agenda-line{border-color:#ededed}.course-info strong{font-size:13px;font-weight:500}.course-info>span{font-size:12px}.course-token{border-radius:8px;font-size:14px;font-weight:500}.course-row:nth-child(1) .progress i{background:#6080b8}.course-row:nth-child(2) .progress i{background:#8a68a8}.course-row:nth-child(3) .progress i{background:#4b9873}.progress{height:3px;background:#f0f0f0}.student-avatar{border-radius:999px;background:#f5f5f5;color:#525252;font-size:11px}.agenda-person strong,.agenda-supervisor strong{font-size:12px;font-weight:500}.agenda-person span,.agenda-supervisor span{font-size:11px}.load-balance-strip{padding:0 20px 16px}.load-balance-strip>div{border-color:#d8e1eb;border-radius:8px;background:#f1f5f9}.load-balance-strip span{font-size:11px;color:#666;font-weight:500}.load-balance-strip strong{font-size:22px;font-weight:500}.load-balance-strip small{font-size:10px}.search-box,.filter-toggle,.toolbar-select{border-color:#d4d4d4;border-radius:6px;background:#fff}.search-box input,.filter-toggle,.toolbar-select{font-size:13px}.filter-bar{background:var(--section-heading);border-color:#d8e1eb}.filter-bar label span{font-size:11px;text-transform:none;letter-spacing:0;font-weight:500;color:#485a70}.filter-bar input,.filter-bar select{font-size:13px;border-color:#d4d4d4;border-radius:6px;height:36px}.result-count{font-size:12px}.data-table th{font-size:11px;text-transform:none;letter-spacing:0;font-weight:600;color:#42566d;background:#eaf0f6;padding:11px 14px}.data-table td{font-size:13px;border-color:#ededed;padding:13px 14px}.data-table tbody tr:hover{background:#f0f5fb}.date-cell strong,.person-cell strong,.stack-cell strong,.number-cell strong{font-size:13px;font-weight:500}.date-cell span,.person-cell span,.stack-cell span,.number-cell span{font-size:11px;color:#737373}.person-cell{max-width:230px}.activity-label{font-size:12px}.email-link,.code-chip{font-size:11px}.code-chip{background:#f5f5f5;color:#525252}.eligibility-badges span{border-radius:6px;font-size:11px}.action-cell svg{width:16px}.pagination{height:58px}.pagination span{font-size:12px}.pagination button{border-radius:6px}.segmented{background:#e5ecf3;border:1px solid #cbd6e2;border-radius:8px;padding:3px}.segmented button{font-size:12px;font-weight:500;border-radius:6px;color:#666;padding:0 12px;min-height:34px}.segmented button.active{color:#171717;box-shadow:0 1px 2px #00000012}.calendar-header{height:70px;padding:0 18px;background:var(--section-heading)}.calendar-header h2{font-size:18px;font-weight:500}.calendar-header span{font-size:12px}.calendar-header button{border-radius:6px;color:#525252}.calendar-weekdays{background:#eaf0f6}.calendar-weekdays span{font-size:11px;font-weight:600;color:#485a70}.calendar-grid>button{border-color:#dbe3ed}.calendar-grid>button:hover{background:#f0f5fb}.calendar-grid>button.outside{background:#f2f5f9;color:#8794a6}.calendar-grid>button.selected{background:#e5efff;box-shadow:inset 0 0 0 2px #5885c0}.calendar-grid>button strong{color:#404040;font-size:16px;font-weight:500}.calendar-grid>button small{font-size:10px;color:#737373}.day-number{font-size:12px;font-weight:500}.day-panel-header{background:var(--section-heading);border-color:var(--line)}.large-day{background:#dfeaf7;color:#244a70;border:1px solid #bdcee2;border-radius:8px}.large-day span{font-size:10px}.large-day strong{font-weight:500}.day-panel-header>div:last-child>span{font-size:12px}.day-panel-header h2{font-size:16px}.day-card{border-radius:8px;border-left-width:3px;padding:14px}.day-card>strong{font-size:13px;font-weight:500}.day-card>small{font-size:11px}.day-card-top>span,.day-supervisor span{font-size:12px}.day-supervisor{color:#666}.day-card p{background:#fafafa;color:#666;font-size:12px}.field>span{font-size:12px;font-weight:500;color:#404040}.field input,.field select,.field textarea{border-color:#d4d4d4;border-radius:6px;color:#171717;font-size:14px;min-height:40px}.field input:focus,.field select:focus,.field textarea:focus{border-color:#2563eb;box-shadow:0 0 0 3px #dbeafe}.field small{font-size:11px;line-height:1.5}.field input:disabled,.field select:disabled{background:#f5f5f5;color:#737373}.alert{font-size:13px;line-height:1.5;border-radius:8px;padding:12px 14px}.muted,.empty-state p,.loading{font-size:13px;color:#737373}.empty-state h3{font-size:16px;font-weight:500}.empty-icon{background:#f5f5f5;color:#737373;border-radius:12px}.settings-card{padding:20px}.settings-icon{width:38px;height:38px;background:#f5f5f5!important;color:#666!important;border-radius:8px}.settings-copy h2{font-size:16px}.settings-copy>p{font-size:13px;line-height:1.6}.system-card dt,.system-card dd{font-size:12px}.source-info{background:#fafafa;border-radius:8px}.source-info strong{font-size:12px}.source-info span,.source-info small{font-size:11px}.inline-stats{gap:10px}.inline-stats>div{border-radius:8px;color:#525252}.inline-stats span{font-size:12px}.inline-stats strong{font-size:14px;font-weight:500}.audit-list strong,.issue-list strong{font-size:13px}.audit-list span,.audit-list time,.issue-list p{font-size:11px}.quality-summary article>small,.feedback-summary span,.feedback-summary small{font-size:11px}.quality-summary article>span{font-size:13px}.feedback-comment,.evaluation-comment{font-size:12px;color:#525252}.score-pill{font-size:13px;font-weight:500;border-radius:8px}.modal{border-radius:12px;box-shadow:0 12px 36px #00000024}.modal-backdrop{background:#17171766;-webkit-backdrop-filter:none;backdrop-filter:none}.modal-header h2{font-size:20px;font-weight:500}.modal-header p{font-size:12px}.modal-body>p{font-size:14px;color:#525252}.profile-menu,.alert-menu{border-radius:12px;box-shadow:0 8px 24px #00000012}.alert-button{border-radius:8px}.alert-menu-header{background:#fafafa}.alert-menu-header span{font-size:11px;text-transform:none;letter-spacing:0}.alert-menu-header strong{font-size:14px}.alert-menu-list strong{font-size:13px}.alert-menu-list small,.alerts-empty span{font-size:12px}.alerts-empty strong{font-size:14px}.toast{font-size:13px;box-shadow:0 4px 18px #00000012;border-radius:8px}.change-history-card,.coordination-card,.substitution-card{border-radius:8px;border-color:var(--line);background:#fff}.coordination-card summary{color:#525252}.audit-details{background:#fafafa}.change-receipts{color:#666}.notification-list article{border-color:var(--line)}.notification-list article.unread{background:#eaf2ff}.notice-unread{background:#dbe8ff;color:#1e40af;font-weight:500;border-radius:999px}.mobile-preferences{padding:22px}.mobile-feature-title>svg{background:#f5f5f5;color:#666;border-radius:8px}.reminder-explainer{background:#fafafa;border:1px solid var(--line);color:#525252;border-radius:8px}.scheduler-status{border-color:var(--line);color:#666}.sidebar .install-compact.install-huil{color:var(--nav-text);background:transparent;border:0;box-shadow:none;font-size:13px;min-height:38px;padding:8px 12px 8px 39px;text-align:left;justify-content:flex-start;white-space:nowrap}.sidebar .install-compact.install-huil:hover{color:#fff;background:transparent;text-decoration:underline;text-underline-offset:3px}.app-loading{background:#fff}.app-loading>span{background:#ededed}.login-page{background:#fff}.login-hero{background:#e8eef5;border-right:1px solid var(--line);color:#20364a;padding:44px 56px}.login-brand{font-size:15px;font-weight:500}.login-brand .brand-mark{background:#fff;border:1px solid var(--line);color:var(--brand)}.hero-copy h1{font-size:48px;line-height:1.1;letter-spacing:-.035em;font-weight:500;max-width:440px;margin:16px 0 20px}.hero-copy p{font-size:17px;color:#666;line-height:1.6;max-width:410px}.hero-authors{color:#737373;font-size:12px;line-height:1.7;max-width:440px;letter-spacing:0}.login-box h2{font-size:30px;font-weight:500;letter-spacing:-.03em}.login-intro{font-size:14px;color:#666;line-height:1.6}.login-box form{gap:18px}.login-box form input{font-size:15px;min-height:46px}.login-box form>.button{height:46px;font-size:14px}.login-install>.button{background:#fff;color:#525252;border:1px solid #d4d4d4;box-shadow:none;font-size:13px;width:100%;min-height:42px}.login-install>.button:hover{background:#fafafa}.login-security-note{font-size:11px;color:#737373}.institution-logos{border-color:var(--line)}.institution-logos>span{background:var(--line)}@media(min-width:901px){.app-shell{grid-template-columns:240px minmax(0,1fr)}.sidebar{width:240px}.app-shell.sidebar-collapsed{grid-template-columns:82px minmax(0,1fr)}.sidebar-collapsed .sidebar{width:82px}.sidebar-collapsed .install-compact.install-huil{padding:8px 0;justify-content:center;text-align:center}}@media(max-width:900px){.topbar{min-height:64px;height:auto;padding:8px 14px}.page-content{padding:24px 18px calc(96px + env(safe-area-inset-bottom))}.sidebar,.sidebar-collapsed .sidebar{width:280px;box-shadow:none}.sidebar.mobile-open{box-shadow:12px 0 32px #00000014}.sidebar-overlay{background:#17171755}.sidebar .main-nav button{min-height:44px}.sidebar .main-nav button span,.sidebar .export-link span{font-size:14px}.sidebar .install-compact.install-huil,.export-link{min-height:44px;font-size:14px}.mobile-bottom-nav{background:var(--nav-bg);border-color:#496071;box-shadow:0 -3px 12px #20344d1a;-webkit-backdrop-filter:none;backdrop-filter:none}.mobile-bottom-nav>button{border-radius:8px;color:var(--nav-text);font-weight:500}.mobile-bottom-nav>button.active{background:var(--ui-active);color:#173f73}.mobile-bottom-nav>button:focus-visible{outline-color:#9ec9ff}.button,.heading-actions>.button{min-height:44px;font-size:14px;padding:11px 14px;border-radius:8px}.page-heading h1{font-size:27px}.panel-header{padding:18px}.panel-header h2,.panel h2{font-size:18px}.field input,.field select,.field textarea,.filter-bar input,.filter-bar select,.search-box input,.toolbar-select{font-size:16px;min-height:46px}.calendar-layout,.dashboard-grid{grid-template-columns:minmax(0,1fr)}.profile-menu,.alert-menu{top:70px}.modal-backdrop{z-index:200}.modal,.modal-wide{max-height:calc(100dvh - 24px)}}@media(max-width:700px){.page-content{padding:20px 14px calc(96px + env(safe-area-inset-bottom))}.metric-card{padding:14px;min-height:130px;gap:8px}.metric-card strong{font-size:27px}.metric-card small{font-size:11px}.metric-grid{gap:10px}.course-info strong{font-size:14px}.course-info>span{font-size:12px}.course-row{padding:16px 0}.mobile-friendly-table tbody tr{border-color:var(--line);border-radius:8px}.mobile-friendly-table td{padding:12px;font-size:14px;border-color:#ededed}.mobile-friendly-table td:before{color:#737373;font-weight:500;font-size:12px}.mobile-friendly-table .person-cell strong,.mobile-friendly-table .stack-cell strong{font-weight:500}.agenda-supervisor{display:flex}.agenda-person strong,.agenda-supervisor strong{font-size:14px}.agenda-person span,.agenda-supervisor span{font-size:12px}.calendar-header{padding:12px 10px;height:auto;min-height:68px}.calendar-header h2{font-size:18px}.calendar-grid>button{padding:6px 4px;min-height:70px}.calendar-grid>button strong{font-size:14px;margin-top:5px}.calendar-grid>button .day-number{font-size:13px}.calendar-weekdays span{font-size:10px;padding:10px 0}.day-card>strong{font-size:15px}.day-card>small,.day-supervisor span{font-size:13px}.day-card-top>span{font-size:12px}.day-panel-header{padding:18px}.day-panel-header h2{font-size:17px}.segmented button{min-height:44px;font-size:13px}.coordination-tabs button{min-height:48px}.mobile-preferences{padding:18px}.change-marker{min-height:44px}.modal-header h2{font-size:20px}.login-panel{padding:32px 22px;min-height:100dvh}.login-box form input{font-size:16px;min-height:50px}.login-box form>.button{min-height:50px;font-size:16px}.login-install>.button{min-height:46px;font-size:14px}.login-security-note{font-size:12px}.login-intro{font-size:15px}}
