*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select,textarea{font:inherit}.app-shell{grid-template-columns:270px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{background:var(--navy);color:#fff;z-index:30;height:100vh;padding:24px 18px;position:sticky;top:0;overflow-y:auto}.brand{align-items:center;gap:12px;margin-bottom:28px;padding:0 8px;display:flex}.brand>span,.profile>span{width:42px;height:42px;color:var(--navy);background:#fff;border-radius:12px;place-items:center;font-weight:800;display:grid}.brand strong,.brand small,.profile strong,.profile small{display:block}.brand small,.profile small{color:#aebfd0;margin-top:2px}.nav-label{color:#849bb1;letter-spacing:.11em;text-transform:uppercase;margin:24px 12px 8px;font-size:11px;font-weight:700}.nav-link{color:#d8e3ed;border-radius:10px;margin:3px 0;padding:10px 12px;font-size:14px;text-decoration:none;display:block}.nav-link:hover,.nav-link.active{color:#fff;background:#1e466a}.profile{border-top:1px solid #345574;align-items:center;gap:10px;margin-top:28px;padding:14px 10px;display:flex}.profile>span{width:36px;height:36px;color:var(--teal);background:#d8f0ed}.topbar{border-bottom:1px solid var(--border);z-index:20;background:#fffffff0;justify-content:space-between;align-items:center;gap:20px;height:72px;padding:0 32px;display:flex;position:sticky;top:0}.search{background:var(--bg);border:1px solid var(--border);border-radius:11px;align-items:center;gap:9px;width:min(430px,50vw);height:42px;padding:0 13px;display:flex}.search input{background:0 0;border:0;outline:0;width:100%}.term{border:1px solid var(--border);background:#fff;border-radius:10px;padding:9px 12px;font-size:13px}.icon{border:1px solid var(--border);background:#fff;border-radius:10px;width:40px;height:40px}.menu{display:none}.content{max-width:1600px;margin:auto;padding:32px}.heading{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:28px;display:flex}.heading h1{color:var(--navy);margin:5px 0 8px;font:700 clamp(28px,3vw,40px)/1.1 Inter}.heading p{color:var(--muted);margin:0}.eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-weight:700;color:var(--teal)!important}.button{border:1px solid var(--border);color:var(--text);cursor:pointer;white-space:nowrap;background:#fff;border-radius:10px;padding:10px 14px}.button.primary{background:var(--blue);border-color:var(--blue);color:#fff}.stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px;display:grid}.stat,.panel{border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);background:#fff}.stat{padding:20px}.stat small,.stat span{color:var(--muted);display:block}.stat strong{color:var(--navy);margin:8px 0;font:700 32px Inter;display:block}.dashboard{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;display:grid}.wide{grid-column:span 2}.panel{min-width:0;padding:22px}.panel-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.panel h2{color:var(--navy);margin:0 0 5px;font:700 19px Inter}.panel p,.panel-head p{color:var(--muted);margin:0;font-size:14px}.panel-head a{color:var(--blue);font-size:13px;text-decoration:none}.list{border-bottom:1px solid #edf1f5;align-items:center;gap:14px;padding:14px 0;display:flex}.list:last-child{border-bottom:0}.list>b{width:54px;color:var(--blue);font-size:12px}.list i{background:var(--teal);border-radius:50%;flex:none;width:9px;height:9px}.list div{flex:1;min-width:0}.list strong,.list small{display:block}.list small{color:var(--muted);margin-top:3px}.donut{background:conic-gradient(var(--teal) 76%,#e5ebf1 0);border-radius:50%;place-items:center;width:138px;height:138px;margin:20px auto;display:grid;position:relative}.donut:after{content:"";background:#fff;border-radius:50%;position:absolute;inset:17px}.donut span{z-index:1;font:700 26px Inter}.legend{gap:8px;font-size:13px;display:grid}.tasks{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.task{border:1px solid var(--border);border-radius:12px;padding:15px}.task strong,.task small{margin-top:8px;display:block}.task small{color:var(--muted)}.badge{color:var(--teal);background:#e8f5f2;border-radius:999px;padding:4px 9px;font-size:11px;font-weight:700;display:inline-flex}.tabs{background:#e8edf3;border-radius:12px;gap:5px;width:max-content;max-width:100%;margin-bottom:20px;padding:5px;display:flex;overflow-x:auto}.tabs button{color:var(--muted);white-space:nowrap;background:0 0;border:0;border-radius:9px;padding:9px 15px}.tabs button.active{color:var(--navy);background:#fff;box-shadow:0 2px 8px #102a4314}.columns{grid-template-columns:minmax(0,1.55fr) minmax(300px,.75fr);gap:20px;display:grid}.calendar{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;display:grid}.calendar b,.calendar span{border-radius:9px;place-items:center;min-height:48px;display:grid}.calendar b{min-height:30px;color:var(--muted);font-size:12px}.calendar span{border:1px solid #edf1f5}.calendar .marked{color:var(--teal);background:#dff1ef;font-weight:700}.form{align-content:start;gap:16px;display:grid}.form label{gap:7px;font-size:13px;font-weight:600;display:grid}.form [hidden]{display:none!important}.form input,.form select,.form textarea,.filters input,.filters select{border:1px solid var(--border);background:#fff;border-radius:10px;outline:none;width:100%;padding:11px 12px}.mission{border-bottom:1px solid var(--border);gap:18px;padding:15px 0;display:flex}.mission b{color:var(--teal)}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.form-grid .full{grid-column:1/-1}.step{border-left:3px solid var(--teal);background:#f4f8fa;border-radius:0 10px 10px 0;margin-top:10px;padding:14px}.filters{gap:9px;max-width:420px;display:flex}.table-wrap{-webkit-overflow-scrolling:touch;border:1px solid var(--border);border-radius:12px;width:100%;overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:820px}th,td{text-align:left;border-bottom:1px solid var(--border);padding:13px 14px;font-size:13px}th{color:var(--muted);text-transform:uppercase;background:#f5f8fb;font-size:11px}td strong,td small{display:block}td small{color:var(--muted);margin-top:3px}.link{color:var(--blue);background:0 0;border:0}.backdrop{display:none}@media (width<=1100px){.stats{grid-template-columns:repeat(2,1fr)}.dashboard{grid-template-columns:repeat(2,minmax(0,1fr))}.columns,.tasks{grid-template-columns:1fr}.sidebar{transition:left .2s;position:fixed;left:-290px}.sidebar.open{left:0}.app-shell{grid-template-columns:1fr}.menu{display:block}.backdrop.show{z-index:25;background:#09182673;display:block;position:fixed;inset:0}}@media (width<=700px){.content{padding:22px 16px}.topbar{padding:0 16px}.search{flex:1;width:auto}.term{display:none}.heading{flex-direction:column;align-items:flex-start}.stats,.dashboard{grid-template-columns:1fr}.wide{grid-column:auto}.panel{padding:17px}.panel-head{flex-direction:column}.filters{flex-direction:column;width:100%}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.calendar span{min-height:39px}}.flash{color:var(--teal);background:#e8f5f2;border-radius:11px;margin-bottom:18px;padding:13px 16px;font-weight:600}.row-actions{white-space:nowrap;align-items:center;gap:10px;display:flex}.row-actions form{margin:0}.danger,.field-error{color:#b23b2d}.empty{text-align:center;color:var(--muted);padding:30px}.pagination{margin-top:18px}.pagination nav>div:first-child{display:none}.pagination nav>div:last-child{justify-content:space-between;align-items:center;gap:15px;display:flex}.pagination svg{width:18px}.pagination a,.pagination span{font-size:13px}.form-actions{justify-content:flex-end;gap:10px;padding-top:10px;display:flex}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0;display:grid}.detail-grid>div{border-bottom:1px solid var(--border);padding:18px}.detail-grid small,.detail-grid strong{display:block}.detail-grid small{color:var(--muted);margin-bottom:6px}@media (width<=700px){.detail-grid{grid-template-columns:1fr}.row-actions{gap:7px}}.auth-body{background:#eaf0f6;place-items:center;min-height:100vh;padding:24px;display:grid}.auth-card{border:1px solid var(--border);width:min(440px,100%);box-shadow:var(--shadow);background:#fff;border-radius:22px;padding:34px}.auth-card h1{color:var(--navy);margin:8px 0;font-size:28px}.auth-brand{background:var(--navy);color:#fff;border-radius:14px;place-items:center;width:50px;height:50px;font-weight:800;display:grid}.auth-copy{color:var(--muted);margin-bottom:24px}.check{justify-content:start;align-items:center;grid-template-columns:auto 1fr!important;display:flex!important}.check input{width:auto}.error{color:#a33b2b;background:#fff0ed;border-radius:9px;padding:10px;font-size:13px}.demo-login{background:var(--bg);border-radius:10px;margin-top:20px;padding:13px}.demo-login strong,.demo-login small{display:block}.demo-login small{color:var(--muted);margin-top:4px}.top-actions select{border:1px solid var(--border);background:#fff;border-radius:9px;max-width:170px;padding:8px}.task{color:var(--text);text-decoration:none}.role-chip{color:var(--teal);background:#e8f5f2;border-radius:999px;padding:8px 11px;font-size:12px;font-weight:700}.semester-gate{border:1px solid var(--border);background:#fff;border-radius:14px;justify-content:space-between;align-items:center;gap:24px;margin-bottom:20px;padding:18px 20px;display:flex}.semester-gate>div{align-items:center;gap:13px;display:flex}.semester-gate strong,.semester-gate small{display:block}.semester-gate small{color:var(--muted);margin-top:3px}.semester-gate select{border:1px solid var(--border);background:#fff;border-radius:10px;min-width:260px;padding:11px}.step-number{background:var(--navy);color:#fff;border-radius:50%;place-items:center;width:34px;height:34px;font-weight:700;display:grid}.calendar-empty{text-align:center;background:#fff;border:1px dashed #becbd7;border-radius:18px;place-content:center;justify-items:center;min-height:420px;display:grid}.calendar-empty h2{margin:16px 0 5px}.calendar-empty p{color:var(--muted)}.calendar-illustration{width:82px;height:82px;color:var(--blue);border:8px solid #dce7f1;border-radius:20px;place-items:center;font-size:30px;font-weight:800;display:grid}.calendar-shell{border:1px solid var(--border);box-shadow:var(--shadow);background:#fff;border-radius:18px;overflow:hidden}.calendar-toolbar{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:22px 24px;display:flex}.calendar-toolbar h2{color:var(--navy);margin:3px 0 0;font-size:25px}.month-nav{align-items:center;gap:7px;display:flex}.month-nav a{border:1px solid var(--border);min-width:40px;height:40px;color:var(--navy);background:#fff;border-radius:10px;place-items:center;padding:0 12px;font-weight:700;text-decoration:none;display:grid}.month-nav .today-link{font-size:13px}.calendar-weekdays,.month-grid{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.calendar-weekdays span{border-bottom:1px solid var(--border);color:var(--muted);text-transform:uppercase;padding:11px 12px;font-size:11px;font-weight:700}.day-cell{border:0;border-right:1px solid var(--border);border-bottom:1px solid var(--border);text-align:left;cursor:pointer;background:#fff;min-height:142px;padding:10px;position:relative;overflow:hidden}.day-cell:nth-child(7n){border-right:0}.day-cell.outside{color:#9cabb8;background:#f7f9fb}.day-number{border-radius:50%;place-items:center;width:27px;height:27px;font-size:13px;font-weight:700;display:grid}.today .day-number{background:var(--teal);color:#fff}.add-hint{width:25px;height:25px;color:var(--blue);opacity:0;border-radius:8px;place-items:center;display:grid;position:absolute;top:9px;right:9px}.day-cell:hover .add-hint{opacity:1;background:#e6f0f8}.day-events{gap:4px;margin-top:7px;display:grid}.event-chip{max-width:100%;color:var(--blue);white-space:nowrap;text-overflow:ellipsis;background:#eaf1f8;border-radius:6px;padding:4px 7px;font-size:11px;font-weight:600;display:block;overflow:hidden}.type-holiday{color:#a84b37;background:#fff0eb}.type-exam{color:#8a5a10;background:#fff4dc}.type-meeting{color:#6551a4;background:#eeeafd}.type-activity{color:var(--teal);background:#e8f5f2}.more-events{color:var(--muted);font-size:10px}.calendar-side-panel{z-index:60;pointer-events:none;visibility:hidden;position:fixed;inset:0}.calendar-side-panel.open{pointer-events:auto;visibility:visible}.panel-overlay{opacity:0;background:#0a1a296b;transition:all .2s;position:absolute;inset:0}.calendar-side-panel.open .panel-overlay{opacity:1}.calendar-side-panel aside{background:#fff;width:min(480px,100%);height:100%;padding:26px;transition:all .25s;position:absolute;top:0;right:0;overflow-y:auto;transform:translate(100%)}.calendar-side-panel.open aside{transform:none}.calendar-side-panel aside>header{justify-content:space-between;gap:20px;margin-bottom:24px;display:flex}.calendar-side-panel h2{color:var(--navy);margin:4px 0}.panel-close{border:1px solid var(--border);background:#fff;border-radius:10px;width:38px;height:38px;font-size:23px}.selected-events{border-top:1px solid var(--border);margin-top:28px;padding-top:20px}.selected-events h3{font-size:15px}.selected-event{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:10px 0;display:flex}.selected-event>div{min-width:0}.selected-event small{color:var(--muted);margin-top:4px;display:block}.selected-event .link{flex:none;text-decoration:none}.muted{color:var(--muted)}@media (width<=900px){.semester-gate{flex-direction:column;align-items:stretch}.semester-gate select{width:100%;min-width:0}.day-cell{min-height:110px}.calendar-toolbar{align-items:flex-start;gap:14px}.calendar-weekdays span{text-align:center;padding:9px 5px}.event-chip{padding:3px;font-size:9px}}@media (width<=600px){.calendar-toolbar{flex-direction:column}.day-cell{min-height:72px;padding:5px}.day-number{width:22px;height:22px;font-size:11px}.day-events{margin-top:3px}.event-chip{border-radius:3px;height:5px;padding:0;font-size:0}.more-events,.add-hint{display:none}.month-nav{width:100%}.month-nav .today-link{flex:1}.calendar-side-panel aside{padding:20px}}.calendar-legend{border-bottom:1px solid var(--border);color:var(--muted);align-items:center;gap:18px;padding:10px 24px;font-size:11px;display:flex}.calendar-legend span:before{content:"";vertical-align:-1px;border-radius:3px;width:9px;height:9px;margin-right:6px;display:inline-block}.calendar-legend .source-calendar:before{background:#7f96aa}.calendar-legend .source-semester-program:before{background:#1f5f99}.calendar-legend .source-program-activity:before{background:#c88724}.event-chip.source-calendar{border-left:3px solid #7f96aa}.event-chip.source-semester-program{border-left:3px solid #1f5f99}.event-chip.source-program-activity{color:#8a5a10;background:#fff4dc;border-left:3px solid #c88724}.schedule-section+.schedule-section{margin-top:20px}.date-list{gap:10px;display:grid}.date-list-row{grid-template-columns:minmax(0,1fr) auto;gap:8px;display:grid}.date-list-row .button{padding:8px 13px;font-size:20px;line-height:1}.date-list>small{color:var(--muted);font-weight:400}.schedule-date{color:#8a5a10;white-space:nowrap;background:#fff4dc;border-radius:7px;margin:2px 4px 2px 0;padding:4px 7px;font-size:11px;display:inline-flex}.schedule-calendar{border:1px solid var(--border);background:#f8fafc;border-radius:14px;gap:12px;padding:18px;display:grid}.schedule-calendar-toolbar{grid-template-columns:40px 1fr 40px;align-items:center;gap:10px;display:grid}.schedule-calendar-toolbar strong{text-align:center;color:var(--navy);text-transform:capitalize;font-size:16px}.schedule-calendar-toolbar button{border:1px solid var(--border);height:38px;color:var(--navy);cursor:pointer;background:#fff;border-radius:9px}.schedule-calendar-weekdays,.schedule-calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;display:grid}.schedule-calendar-weekdays span{text-align:center;color:var(--muted);text-transform:uppercase;font-size:10px;font-weight:700}.schedule-calendar-grid button{aspect-ratio:1;color:var(--text);cursor:pointer;background:#fff;border:1px solid #0000;border-radius:9px;font-size:12px;position:relative}.schedule-calendar-grid button:hover:not(:disabled){border-color:var(--teal);background:#e8f5f2}.schedule-calendar-grid button.outside{color:#9baab8;background:0 0}.schedule-calendar-grid button.in-period{box-shadow:inset 0 0 0 1px #dcebe8}.schedule-calendar-grid button.today span{border:1px solid var(--teal);border-radius:50%;place-items:center;width:24px;height:24px;margin:auto;display:grid}.schedule-calendar-grid button.selected{border-color:var(--amber);background:var(--amber);color:#fff;box-shadow:0 4px 10px #c887243d}.schedule-calendar-grid button:disabled{cursor:not-allowed;opacity:.34;background:#edf1f5}.schedule-selection{border-top:1px solid var(--border);gap:8px;padding-top:12px;display:grid}.schedule-selection>strong{color:var(--navy);font-size:12px}.schedule-date-chips{flex-wrap:wrap;gap:7px;display:flex}.schedule-date-chips button{color:#8a5a10;cursor:pointer;background:#fff4dc;border:1px solid #efd8ae;border-radius:999px;align-items:center;gap:7px;padding:6px 9px;font-size:11px;display:inline-flex}.schedule-date-chips button span{font-size:15px;line-height:1}.schedule-calendar>small{color:var(--muted);font-weight:400}.schedule-time-list{gap:9px;display:grid}.schedule-time-row{border:1px solid var(--border);background:#fff;border-radius:11px;grid-template-columns:minmax(150px,1fr) minmax(120px,.7fr) minmax(120px,.7fr);align-items:end;gap:10px;padding:11px;display:grid}.schedule-time-date{justify-content:space-between;align-self:center;align-items:center;gap:8px;display:flex}.schedule-time-date strong{color:var(--navy);font-size:12px}.schedule-time-date button{color:#a33b2b;cursor:pointer;background:0 0;border:0;font-size:20px}.schedule-time-row label{font-size:11px}.schedule-time-row input[type=time]{padding:8px 9px}@media (width<=700px){.schedule-time-row{grid-template-columns:1fr 1fr}.schedule-time-date{grid-column:1/-1}}.lesson-calendar{border:1px solid var(--border);box-shadow:var(--shadow);background:#fff;border-radius:18px;overflow:hidden}.lesson-calendar>header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-end;gap:20px;padding:22px 24px;display:flex}.lesson-calendar>header h2{color:var(--navy);margin:4px 0 0}.lesson-calendar>header small{color:var(--muted)}.lesson-week-grid{grid-template-columns:repeat(6,minmax(170px,1fr));min-height:480px;display:grid;overflow-x:auto}.lesson-day{border-right:1px solid var(--border);cursor:pointer;background:#fff;min-width:170px}.lesson-day:last-child{border-right:0}.lesson-day:hover{background:#f8fbfd}.lesson-day-head{z-index:1;border-bottom:1px solid var(--border);color:var(--navy);background:#f5f8fb;justify-content:space-between;align-items:center;padding:14px;display:flex;position:sticky;top:0}.lesson-day-head button{width:28px;height:28px;color:var(--blue);cursor:pointer;background:#fff;border:1px solid #cbdbea;border-radius:8px;place-items:center;font-size:18px;display:grid}.lesson-day-events{align-content:start;gap:9px;padding:10px;display:grid}.lesson-event{border-left:4px solid var(--teal);color:var(--text);background:#e8f5f2;border-radius:9px;gap:4px;padding:11px;text-decoration:none;display:grid;box-shadow:0 2px 7px #102a430f}.lesson-event time{color:var(--teal);font-size:11px;font-weight:800}.lesson-event strong{color:var(--navy);font-size:13px}.lesson-event span,.lesson-event small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.lesson-event span{font-size:12px}.lesson-event small{color:var(--muted)}.lesson-day-empty{border:1px dashed var(--border);min-height:100px;color:var(--muted);text-align:center;border-radius:10px;place-items:center;padding:12px;font-size:11px;display:grid}@media (width<=900px){.lesson-week-grid{grid-template-columns:repeat(6,minmax(210px,1fr))}}@media (width<=600px){.lesson-calendar>header{flex-direction:column;align-items:flex-start}.lesson-week-grid{min-height:390px}.lesson-day{min-width:220px}}.progress-status-list{gap:12px;margin-top:20px;display:grid}.progress-status-list>div{border:1px solid var(--border);background:#f8fafc;border-radius:11px;justify-content:space-between;align-items:center;padding:14px;display:flex}.progress-status-list strong{color:var(--navy);font-size:24px}.dashboard-period{color:var(--blue);margin-left:7px;font-weight:600;display:inline-block}.task-empty{grid-column:1/-1;width:100%}.flash.danger{color:#a33b2b;background:#fff0ed}.profile-photo{border:1px solid var(--border);color:#71869a;vertical-align:middle;background:#e8eef4;border-radius:50%;place-items:center;width:52px;height:52px;display:inline-grid;overflow:hidden}.profile-photo img{object-fit:cover;width:100%;height:100%}.profile-photo svg{fill:currentColor;width:68%;height:68%}.profile-photo-table{width:42px;height:42px}.profile-photo-detail{width:96px;height:96px}.profile-photo-field{border:1px solid var(--border);background:#f8fafc;border-radius:12px;align-items:center;gap:18px;padding:15px;display:flex}.profile-photo-field>div{flex:1;gap:7px;display:grid}.profile-photo-field small{color:var(--muted);font-weight:400;line-height:1.45}.profile-photo-preview{flex:none;width:88px;height:88px}.operator-stats{grid-template-columns:repeat(2,minmax(0,1fr));max-width:760px}.operator-dashboard{grid-template-columns:minmax(0,760px)}.operator-dashboard .wide{grid-column:auto}.operator-tasks{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:18px}@media (width<=700px){.profile-photo-field{flex-direction:column;align-items:flex-start}.operator-stats,.operator-tasks{grid-template-columns:1fr}}.meeting-plan-list{gap:10px;display:grid}.meeting-plan-row{border:1px solid var(--border);background:#fff;border-radius:12px;grid-template-columns:minmax(140px,.45fr) minmax(140px,.45fr);gap:11px;padding:13px;display:grid}.meeting-plan-date{border-bottom:1px solid var(--border);grid-column:1/-1;justify-content:space-between;align-items:center;gap:12px;padding-bottom:8px;display:flex}.meeting-plan-date strong{color:var(--navy);text-transform:capitalize;font-size:13px}.meeting-plan-date button{color:#a33b2b;cursor:pointer;background:0 0;border:0;font-size:21px}.meeting-plan-row label{font-size:11px}.meeting-plan-row input,.meeting-plan-row select,.meeting-plan-row textarea{padding:9px 10px}.meeting-target,.meeting-notes{grid-column:1/-1}@media (width<=700px){.meeting-plan-row{grid-template-columns:1fr}.meeting-plan-date,.meeting-target,.meeting-notes{grid-column:auto}}.calendar-legend .source-class-schedule:before{background:#6551a4}.calendar-legend .source-lesson-plan:before{background:#1b817c}.event-chip.source-class-schedule{color:#6551a4;background:#eeeafd;border-left:3px solid #6551a4}.event-chip.source-lesson-plan{color:#1b817c;background:#e8f5f2;border-left:3px solid #1b817c}.teacher-calendar-events{border-top:0;margin-top:0;padding-top:0}.event-chip.meeting-status-done{color:#176b4b;background:#dff1e7;border-left-color:#1b817c;text-decoration:none}.selected-event-actions{flex:none;justify-items:end;gap:7px;display:grid}.meeting-status-form{align-items:center;gap:6px;display:flex}.meeting-status-form select,.meeting-status-form button{border:1px solid var(--border);background:#fff;border-radius:8px;padding:6px 8px;font-size:11px}.meeting-status-form button{background:var(--teal);border-color:var(--teal);color:#fff;cursor:pointer}@media (width<=600px){.selected-event{flex-direction:column;align-items:stretch}.selected-event-actions{justify-items:stretch}.meeting-status-form{grid-template-columns:1fr auto;display:grid}}.student-report-list{gap:16px;display:grid}.student-report-card{border:1px solid var(--border);background:#fff;border-radius:14px;overflow:hidden}.student-report-card>header{border-bottom:1px solid var(--border);background:#f8fafc;justify-content:space-between;align-items:flex-start;gap:20px;padding:17px 18px;display:flex}.student-report-card h2{margin:0 0 4px;font-size:18px}.student-report-card header p,.student-report-card header time{color:var(--muted);margin:0;font-size:12px}.student-report-assessment{border-bottom:1px solid var(--border);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.student-report-assessment>div{border-right:1px solid var(--border);padding:15px 18px}.student-report-assessment>div:last-child{border-right:0}.student-report-assessment small,.student-report-assessment strong,.student-report-copy small{display:block}.student-report-assessment small,.student-report-copy small{color:var(--muted);margin-bottom:5px}.student-report-copy{padding:16px 18px}.student-report-copy-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.student-report-copy-head small{margin:0}.student-report-copy p{margin:0;line-height:1.55}@media (width<=700px){.student-report-card>header{flex-direction:column}.student-report-assessment{grid-template-columns:1fr}.student-report-assessment>div{border-right:0;border-bottom:1px solid var(--border)}.student-report-assessment>div:last-child{border-bottom:0}}.daily-report-filters{max-width:620px}.daily-report-subject-hint{color:var(--muted);font-weight:400}.delivery-status-notice{background:#fff8e9;border:1px solid #efd8ae;border-radius:11px;gap:4px;padding:13px 15px;display:grid}.delivery-status-notice strong{color:#8a5a10;font-size:13px}.delivery-status-notice span{color:var(--muted);font-size:12px;line-height:1.5}.student-report-filter-panel .panel-head{align-items:center;margin-bottom:0}.student-report-filters{flex-wrap:wrap;align-items:center;width:100%;max-width:none}.student-report-filters select{field-sizing:content;width:auto;min-width:150px;max-width:min(360px,100%)}.student-report-filters input[type=month]{field-sizing:content;width:auto;min-width:185px}@media (width<=700px){.student-report-filter-panel .panel-head{align-items:stretch}.student-report-filters select,.student-report-filters input[type=month],.student-report-filters .button{width:100%;max-width:none}}.calendar-legend .source-attendance-complete:before{background:#1b817c}.attendance-table table{min-width:720px}.attendance-table select,.attendance-table input[type=text]{border:1px solid var(--border);background:#fff;border-radius:9px;width:100%;padding:9px 10px}.attendance-table td:first-child{min-width:220px}.attendance-table td:nth-child(2){width:190px}.flash.warn{color:#8a5a10;background:#fff8e9;border:1px solid #efd8ae}.demo-login-button{text-align:left;gap:4px;width:100%;padding:15px 18px;display:grid}.demo-login-button span{font-size:16px;font-weight:750}.demo-login-button small{color:#dcecfb;font-size:12px}.auth-divider{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;align-items:center;gap:12px;margin:24px 0;font-size:11px;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--border);flex:1;height:1px}.manager-login-button{transition:background-color .18s,border-color .18s,color .18s,box-shadow .18s}.manager-login-button:hover,.manager-login-button:focus-visible{border-color:var(--blue);background:var(--blue);color:#fff;outline:none;box-shadow:0 7px 18px #1f5f9933}.demo-readonly-banner{color:var(--teal);background:#eef8f6;border:1px solid #c7dfda;border-radius:11px;align-items:center;gap:10px;margin-bottom:18px;padding:11px 14px;font-size:13px;display:flex}.demo-readonly-banner strong{white-space:nowrap}.demo-selected-events{border-top:0;margin-top:0;padding-top:0}.role-switcher{position:relative}.role-switcher-trigger{color:#16827e;letter-spacing:-.01em;cursor:pointer;white-space:nowrap;background:#e7f4f1;border:0;border-radius:999px;justify-content:center;align-items:center;gap:10px;min-height:44px;padding:0 18px;font-size:15px;font-weight:750;line-height:1;display:inline-flex}.role-switcher-label{display:block}.role-switcher-trigger svg{fill:none;stroke:currentColor;stroke-width:2.25px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:16px;height:16px;transition:transform .18s}.role-switcher.open .role-switcher-trigger svg{transform:rotate(180deg)}.role-switcher-trigger:hover,.role-switcher-trigger:focus-visible{background:#dcefeb;outline:none}.role-switcher-trigger:focus-visible{box-shadow:0 0 0 3px #1b817c2e}.role-menu{border:1px solid var(--border);z-index:45;background:#fff;border-radius:13px;width:230px;padding:8px;display:none;position:absolute;top:calc(100% + 9px);right:0;box-shadow:0 16px 38px #102a4329}.role-menu>small{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;padding:7px 9px;font-size:10px;font-weight:700}.role-menu form{margin:0}.role-menu button{width:100%;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:9px;justify-content:space-between;align-items:center;padding:10px;display:flex}.role-menu button:hover,.role-menu button.active{color:var(--teal);background:#e8f5f2}.contact-modal{z-index:100;pointer-events:none;visibility:hidden;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.contact-modal.open{pointer-events:auto;visibility:visible}.contact-modal-backdrop{opacity:0;background:#08192899;transition:opacity .2s;position:absolute;inset:0}.contact-modal.open .contact-modal-backdrop{opacity:1}.contact-modal section{opacity:0;background:#fff;border-radius:22px;width:min(470px,100%);padding:32px;transition:all .22s;position:relative;transform:translateY(16px)scale(.98);box-shadow:0 24px 70px #0514214d}.contact-modal.open section{opacity:1;transform:none}.contact-modal h2{color:var(--navy);margin:7px 0 8px;font-size:28px}.contact-modal p:not(.eyebrow){color:var(--muted);margin:0 0 22px;line-height:1.6}.contact-modal-close{border:1px solid var(--border);width:36px;height:36px;color:var(--muted);cursor:pointer;background:#fff;border-radius:10px;font-size:22px;position:absolute;top:14px;right:14px}.contact-modal-icon{width:48px;height:48px;color:var(--teal);background:#e8f5f2;border-radius:14px;place-items:center;margin-bottom:18px;font-size:22px;display:grid}.contact-whatsapp{text-align:center;width:100%;text-decoration:none;display:block}.lesson-day.readonly{cursor:default}.lesson-day.readonly:hover{background:#fff}@media (width<=700px){.demo-readonly-banner{flex-direction:column;align-items:flex-start;gap:3px}.role-switcher-trigger{max-width:190px;min-height:42px;padding:0 15px;font-size:14px}.role-switcher-label{text-overflow:ellipsis;overflow:hidden}.role-menu{position:fixed;top:68px;right:12px}.contact-modal section{padding:27px 22px}.contact-whatsapp{white-space:normal}.top-actions{gap:6px}}:root{--navy:#3a3b45;--blue:#1b68ff;--teal:#3ad29f;--amber:#f7b924;--bg:#f8f9fa;--surface:#fff;--border:#e9ecef;--muted:#6c757d;--text:#3a3b45;--radius:.5rem;--shadow:0 .125rem .25rem #00000013}body.vertical.light{color:var(--text);background:#f8f9fa;font-family:Overpass,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.875rem}.app-shell{min-height:100vh;display:block}.main{min-width:0}.vertical .main-content.main{margin-left:16rem;padding:1.5rem 1.75rem 2.5rem;overflow:visible}.content{width:100%;max-width:1480px;margin:0 auto;padding:0}.vertical .sidebar-left.sidebar{color:#3a3b45;z-index:1000;width:16rem;min-width:16rem;height:100vh;padding:0;position:fixed;inset:0 auto 0 0;overflow:hidden auto;background:#fff!important;box-shadow:inset -1px 0 #12263f0d!important}.sidebar .vertnav{padding:1rem;display:block}.tinydash-brand{color:#3a3b45;align-items:center;gap:.8rem;margin:.15rem .35rem 1.35rem;padding:.65rem .5rem;text-decoration:none;display:flex}.tinydash-brand:hover{color:#1b68ff;text-decoration:none}.tinydash-brand svg{fill:#1b68ff;flex:none;width:2.3rem;height:2.3rem}.tinydash-brand span,.tinydash-brand strong,.tinydash-brand small{display:block}.tinydash-brand strong{letter-spacing:-.01em;font-size:1rem}.tinydash-brand small{color:#adb5bd;margin-top:.1rem;font-size:.72rem}.sidebar .nav-label{color:#adb5bd;letter-spacing:.08em;text-transform:uppercase;margin:1.35rem .75rem .4rem;font-size:.68rem;font-weight:600}.sidebar .nav-link{color:#6c757d;border-radius:.35rem;align-items:center;gap:.85rem;margin:.15rem 0;padding:.62rem .75rem;font-size:.875rem;line-height:1.2;text-decoration:none;transition:color .15s,background-color .15s;display:flex}.sidebar .nav-link i{text-align:center;flex:none;width:1.1rem}.sidebar .nav-link:hover{color:#1b68ff;background:#f8f9fa}.sidebar .nav-link.active{color:#1b68ff;background:#1b68ff17;font-weight:600}.sidebar-profile.profile{border-top:1px solid #e9ecef;align-items:center;gap:.7rem;margin:2rem .25rem .5rem;padding:1rem .5rem;display:flex}.sidebar-profile.profile>span{color:#1b68ff;background:#eef3ff;border-radius:50%;flex:none;place-items:center;width:2.35rem;height:2.35rem;font-weight:700;display:grid}.sidebar-profile strong,.sidebar-profile small{text-overflow:ellipsis;white-space:nowrap;max-width:150px;display:block;overflow:hidden}.sidebar-profile strong{color:#3a3b45;font-size:.8rem}.sidebar-profile small{color:#adb5bd;margin-top:.15rem;font-size:.69rem}.vertical .topnav.topbar{z-index:990;background:#fffffff7;border:0;border-bottom:1px solid #f1f3f5;justify-content:space-between;align-items:center;gap:1rem;width:auto;height:64px;margin-left:16rem;padding:0 2.2rem;display:flex;position:sticky;top:0;box-shadow:0 1px 2px #12263f06}.topbar .menu{display:none}.topbar .icon{color:#6c757d;background:0 0;border:0;border-radius:50%;place-items:center;width:2.35rem;height:2.35rem;padding:0;display:grid}.topbar .icon:hover{color:#1b68ff;background:#f1f3f5}.topbar .search{background:0 0;border:0;align-items:center;width:min(430px,42vw);height:40px;padding:0 0 0 1.8rem;display:flex;position:relative}.topbar .search:before{color:#adb5bd;content:"";font-family:feather;position:absolute;left:.15rem}.topbar .search input{color:#3a3b45;background:0 0;border:0;outline:0;width:100%;height:100%;padding:0}.topbar .search input::placeholder{color:#adb5bd}.top-actions{align-items:center;gap:.65rem;display:flex}.top-actions form{margin:0}.term{color:#6c757d;background:#fff;border:1px solid #e9ecef;border-radius:.35rem;align-items:center;gap:.45rem;padding:.48rem .75rem;font-size:.75rem;display:inline-flex}.role-chip{color:#16827e;background:#e7f4f1;border-radius:999px;align-items:center;min-height:38px;padding:0 .9rem;font-size:.78rem;font-weight:700;display:inline-flex}.role-switcher-trigger{min-height:40px;padding:0 1rem;font-size:.82rem}.role-menu.dropdown-menu{margin:0;display:none;top:calc(100% + .55rem)}.role-switcher.open .role-menu{display:grid}.topbar-logout{cursor:pointer}.heading{align-items:flex-start;margin:0 0 1.5rem}.heading h1{color:#3a3b45;letter-spacing:-.02em;margin:.22rem 0 .4rem;font:600 clamp(1.35rem,2.2vw,1.75rem)/1.25 Overpass,sans-serif}.heading p{color:#6c757d;font-size:.84rem}.eyebrow{letter-spacing:.08em;font-size:.67rem;font-weight:700;color:#1b68ff!important}.button{color:#3a3b45;box-shadow:none;background:#fff;border:1px solid #dee2e6;border-radius:.35rem;justify-content:center;align-items:center;gap:.4rem;padding:.52rem .85rem;font-size:.8rem;line-height:1.25;text-decoration:none;transition:all .15s;display:inline-flex}.button:hover{color:#1b68ff;background:#f8f9fa;border-color:#cbd3da;text-decoration:none}.button.primary{color:#fff;background:#1b68ff;border-color:#1b68ff}.button.primary:hover{color:#fff;background:#0052ed;border-color:#0052ed}.button.danger{color:#dc3545;background:#fff5f4;border-color:#fadbd8}.link{color:#1b68ff;cursor:pointer;background:0 0;border:0;padding:0;font-size:.78rem}.link:hover{text-decoration:underline}.danger{color:#dc3545}.stat,.panel,.calendar-shell,.lesson-calendar,.semester-gate,.student-report-card{background:#fff;border:1px solid #edf0f2;border-radius:.5rem;box-shadow:0 .125rem .25rem #0000000e}.stats{gap:1rem;margin-bottom:1.25rem}.stat{padding:1.25rem;position:relative}.stat:before{content:"";background:#1b68ff;border-radius:50%;width:.55rem;height:.55rem;position:absolute;top:1.2rem;right:1.2rem}.stat small{color:#6c757d;font-size:.72rem}.stat strong{color:#3a3b45;margin:.55rem 0 .2rem;font:600 1.75rem Overpass,sans-serif}.stat span{color:#adb5bd;font-size:.72rem}.dashboard{gap:1rem}.panel{padding:1.25rem}.panel h2{color:#3a3b45;font:600 1rem Overpass,sans-serif}.panel p,.panel-head p{font-size:.76rem}.panel-head{margin-bottom:1rem}.panel-head a{color:#1b68ff}.tasks{gap:.75rem}.task{background:#fff;border:1px solid #e9ecef;border-radius:.4rem;padding:1rem;transition:all .15s}.task:hover{background:#f8faff;border-color:#cfe0ff;text-decoration:none;transform:translateY(-1px)}.task strong{color:#3a3b45;font-size:.82rem}.task small{font-size:.72rem}.list{border-color:#f1f3f5;padding:.85rem 0}.badge{color:#20a47a;background:#e6f8f2;border-radius:999px;padding:.3rem .55rem;font-size:.65rem}.badge.warn{color:#b78000;background:#fff5dc}.progress-status-list>div{background:#f8f9fa;border-color:#e9ecef;border-radius:.4rem}.progress-status-list strong{color:#3a3b45}.form{gap:1rem}.form label{color:#495057;gap:.4rem;font-size:.76rem}.form input,.form select,.form textarea,.filters input,.filters select,.semester-gate select,.attendance-table select,.attendance-table input[type=text]{color:#495057;min-height:38px;box-shadow:none;background:#fff;border:1px solid #d8dce0;border-radius:.3rem;padding:.5rem .7rem;font-size:.8rem;transition:border-color .15s,box-shadow .15s}.form textarea{min-height:auto}.form input:focus,.form select:focus,.form textarea:focus,.filters input:focus,.filters select:focus{border-color:#80aaff;outline:0;box-shadow:0 0 0 .2rem #1b68ff1f}.check input{min-height:0}.filters{gap:.5rem}.form-card{max-width:980px}.profile-photo-field{background:#f8f9fa;border-color:#e9ecef;border-radius:.4rem}.table-wrap{background:#fff;border:1px solid #e9ecef;border-radius:.4rem}table{color:#495057}th,td{vertical-align:middle;border-color:#edf0f2;padding:.78rem .85rem;font-size:.76rem}th{color:#6c757d;letter-spacing:.04em;background:#f8f9fa;font-size:.65rem;font-weight:600}tbody tr:hover{background:#fbfcfd}.pagination{color:#6c757d}.detail-grid>div{border-color:#edf0f2}.detail-grid small{color:#adb5bd}.semester-gate{padding:1rem 1.15rem}.step-number{background:#1b68ff;width:2rem;height:2rem;font-size:.75rem}.calendar-toolbar{padding:1.15rem 1.25rem}.calendar-toolbar h2{color:#3a3b45;font-size:1.2rem}.month-nav a{color:#495057;border-color:#e9ecef;border-radius:.3rem;min-width:36px;height:36px}.month-nav a:hover{color:#1b68ff;background:#f5f8ff;border-color:#cfe0ff}.calendar-legend,.calendar-weekdays span{border-color:#e9ecef}.day-cell{border-color:#edf0f2}.day-cell:hover{background:#f8faff}.day-cell.today{box-shadow:inset 0 0 0 2px #1b68ff}.today .day-number{background:#1b68ff}.calendar-side-panel aside{box-shadow:-8px 0 30px #12263f1f}.panel-close{color:#6c757d;border-color:#e9ecef;border-radius:.35rem}.lesson-calendar>header,.lesson-day,.lesson-day-head{border-color:#e9ecef}.lesson-day-head{color:#3a3b45;background:#f8f9fa}.lesson-event{box-shadow:none;background:#eef3ff;border-left-color:#1b68ff;border-radius:.35rem}.lesson-event:hover{background:#e4edff}.lesson-event time{color:#1b68ff}.lesson-event strong{color:#3a3b45}.flash,.demo-readonly-banner{color:#1b68ff;background:#eef5ff;border:1px solid #cfe3ff;border-radius:.4rem}.demo-readonly-banner{padding:.7rem 1rem}.demo-readonly-banner span{color:#52709d}.flash.warn{color:#956b00;background:#fff8e6;border-color:#ffe7ad}.flash.danger{color:#b52b38;background:#fff5f5;border-color:#f5c6cb}.contact-modal section{border-radius:.65rem}.contact-modal-icon{color:#1b68ff;background:#eef3ff;border-radius:.4rem}.contact-modal h2{color:#3a3b45}.contact-whatsapp{gap:.5rem}.auth-body.light{background:#f8f9fa}.auth-card{background:#fff;border:0;border-radius:.5rem;width:min(380px,100%);padding:2rem;box-shadow:0 .25rem 1rem #12263f14}.auth-card h1{color:#3a3b45;text-align:center;margin:.65rem 0 1.4rem;font-size:1.25rem;font-weight:600}.auth-card>.eyebrow{text-align:center}.auth-brand{color:#1b68ff;background:0 0;border-radius:0;width:58px;height:58px;margin:0 auto 1rem;font-size:0}.auth-brand:before{clip-path:polygon(0 8%,72% 8%,62% 26%,9% 26%,27% 42%,100% 42%,90% 60%,36% 60%,54% 76%,81% 76%,72% 94%,0 94%,10% 76%,63% 76%,45% 60%,0 60%,10% 42%,55% 42%,37% 26%,0 26%);content:"";background:#1b68ff;width:58px;height:58px;display:block}.demo-login-form{margin-top:0}.demo-login-button{border-radius:.35rem}.auth-divider{margin:1.5rem 0}.manager-login-button{width:100%;min-height:42px}.manager-login-button:hover,.manager-login-button:focus-visible{background:#1b68ff;border-color:#1b68ff;box-shadow:0 4px 12px #1b68ff2e}@media (width<=991.98px){.vertical .sidebar-left.sidebar{border:0;width:0;min-width:0;padding:0;box-shadow:none!important}.vertical .sidebar-left.sidebar.open{border-right:1px solid #e9ecef;width:16rem;min-width:16rem;box-shadow:4px 0 24px #12263f24!important}.vertical .topnav.topbar,.vertical .main-content.main{width:100%;margin-left:0}.vertical .topnav.topbar{padding:0 1.2rem}.vertical .main-content.main{padding:1rem}.topbar .menu{display:grid}.backdrop.show{z-index:995;background:#12263f59;display:block;position:fixed;inset:0}.sidebar{z-index:1000}.content{max-width:none}}@media (width<=700px){.topbar .search,.term{display:none}.top-actions{margin-left:auto}.heading{margin-bottom:1.15rem}.stats{gap:.75rem}.panel,.stat{padding:1rem}.auth-card{padding:1.5rem}.role-menu{top:62px}.vertical .main-content.main{padding:.85rem}}.auth-card .demo-login-button{text-align:center;justify-content:center;align-items:center;width:100%;min-height:48px;display:flex}.auth-card .demo-login-button span{white-space:nowrap;font-size:1rem;line-height:1.2}.tinydash-brand{padding-left:.75rem}.auth-card>.eyebrow{margin-top:0}.auth-card .manager-login-button:hover,.auth-card .manager-login-button:focus-visible{color:#fff}.vertical .topnav.topbar{flex-wrap:nowrap;overflow:visible}.topbar .search{flex:220px;width:auto;min-width:0;max-width:430px}.top-actions{flex:none;min-width:0}.role-switcher{z-index:1100}.role-menu.dropdown-menu{z-index:1200}.demo-readonly-banner{flex-wrap:wrap}.demo-readonly-banner span{min-width:0}@media (width<=1199.98px){.vertical .sidebar-left.sidebar{border:0;width:0;min-width:0;padding:0;box-shadow:none!important}.vertical .sidebar-left.sidebar.open{border-right:1px solid #e9ecef;width:16rem;min-width:16rem;box-shadow:4px 0 24px #12263f24!important}.vertical .topnav.topbar,.vertical .main-content.main{width:100%;margin-left:0}.vertical .topnav.topbar{padding:0 1.2rem}.vertical .main-content.main{padding:1rem}.topbar .menu{display:grid}.backdrop.show{z-index:995;background:#12263f59;display:block;position:fixed;inset:0}.sidebar{z-index:1000}.content{max-width:none}}@media (width<=900px){.topbar .search{display:none}}@media (width<=820px){.topbar .term{display:none}}@media (width<=700px){.role-switcher .role-menu.dropdown-menu{z-index:2000;width:min(230px,100vw - 24px);position:fixed;top:60px;left:auto;right:12px}.role-switcher.open .role-menu.dropdown-menu{display:grid}.demo-readonly-banner{flex-direction:column;align-items:flex-start}}
