:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#182a40;background:#f4f6fa;font-synthesis:none;font-size:14px;line-height:1.5;--navy:#0c1f63;--navy-dark:#071640;--gold:#efb900;--muted:#63748a;--line:#e4e9f1;--green:#167457;--red:#ae3c44;--radius:18px}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}a{color:var(--navy)}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(25px,2.4vw,36px);letter-spacing:-1.1px;line-height:1.2;margin-bottom:11px;font-weight:750}h2{font-size:18px;line-height:1.3;letter-spacing:-.35px;margin-bottom:4px}h3{font-size:14px;line-height:1.45;margin-bottom:4px}p{color:var(--muted);margin-bottom:16px}small{color:var(--muted);font-size:12px}svg{flex-shrink:0;stroke-width:1.8}button{border:0}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #d9aa0d;outline-offset:3px}input,select,textarea{width:100%;padding:11px 13px;border:1px solid #d5ddea;background:#fff;border-radius:9px;min-height:44px;color:#1e3049}textarea{resize:vertical;min-height:86px}input[type=checkbox]{width:17px;min-height:17px;height:17px;accent-color:var(--navy);flex-shrink:0}input[type=file]{padding:10px}code{font-size:12px;overflow-wrap:anywhere}.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:44px;padding:11px 18px;border-radius:10px;background:var(--navy);color:#fff;font-weight:650;line-height:1.4;white-space:normal;transition:background .15s,transform .15s;text-decoration:none}.button:hover{background:#1a347d}.button:active{transform:translateY(1px)}.button.secondary{background:#fff;color:var(--navy);border:1px solid #d5ddea}.button.secondary:hover{background:#f4f6fa}.button.danger{background:#a83240;color:#fff}.icon-button{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;color:var(--navy);background:transparent;flex-shrink:0}.icon-button:hover{background:#eaf0f8}.text-button{display:inline-flex;gap:6px;align-items:center;color:var(--navy);background:none;font-weight:650;font-size:12px;padding:6px 0;text-align:start}.text-button:hover{text-decoration:underline}.danger-text{color:var(--red)}.good-text{color:var(--green);font-weight:700}.warn-text{color:#ae6420!important;font-weight:700}.button-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.eyebrow{font-size:10px;font-weight:750;letter-spacing:1.7px;color:#6c7c93;display:block;margin-bottom:10px}.brand{display:flex;align-items:center;gap:10px;flex-shrink:0}.brand img{height:95px;width:70px;object-fit:contain;background:#fff;border-radius:5px;padding:4px}.brand strong{display:block;font-size:23px;font-weight:750;letter-spacing:-1px;line-height:1.2;color:var(--navy)}.brand strong span{font-weight:450}.brand small{display:block;font-size:9px;max-width:130px;line-height:1.5;letter-spacing:.3px;margin-top:5px}.brand.large img{height:110px;width:84px}.brand.large strong{font-size:30px}.brand.large small{font-size:11px;max-width:170px}.center-page{min-height:100dvh;padding:50px 24px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:20px;text-align:center}.center-page p{max-width:500px}.password-panel{width:min(100%,510px);text-align:start}.password-panel .brand{margin-bottom:30px}.password-panel h1{font-size:27px}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.login-page{display:grid;grid-template-columns:1fr 1fr;min-height:100dvh}.login-story{position:relative;overflow:hidden;background:var(--navy-dark);color:#fff;padding:48px 8%;display:flex;flex-direction:column;justify-content:space-between;min-height:100dvh}.login-story:before{content:"";position:absolute;width:550px;height:550px;border:1px solid #ffffff11;border-radius:50%;inset-block-start:23%;inset-inline-start:26%;box-shadow:0 0 0 70px #ffffff03,0 0 0 140px #ffffff03;pointer-events:none}.login-story:after{content:"";position:absolute;width:210px;height:210px;background:linear-gradient(140deg,#efb90020,transparent);transform:rotate(45deg);inset-inline-end:-120px;inset-block-end:80px}.login-story .brand{position:relative}.login-story .brand strong{color:#fff}.login-story .brand small{color:#bac7e0}.story-copy{position:relative;margin:60px 0}.story-copy .eyebrow{color:var(--gold);margin-bottom:24px}.story-copy h1{font-size:clamp(40px,4.7vw,68px);letter-spacing:-2.5px;font-weight:650;line-height:1.09;margin-bottom:25px}.story-copy em{font-style:normal;color:var(--gold)}.story-copy p{font-size:17px;line-height:1.8;color:#b2c0db}.story-features{display:flex;flex-direction:column;gap:16px;margin-top:40px}.story-features span{display:flex;gap:12px;align-items:center;font-size:13px;color:#d4dded}.story-features svg{width:20px;color:var(--gold)}.story-footer{font-size:9px;letter-spacing:1.6px;color:#acb9d3;position:relative;display:flex;gap:14px}.story-footer span{color:var(--gold)}.login-main{display:flex;align-items:center;justify-content:center;padding:55px 40px;background:#fff}.login-box{width:100%;max-width:380px}.login-emblem{display:none;text-align:center;margin-bottom:20px}.login-emblem img{width:100px;height:135px;object-fit:contain}.login-box .eyebrow{margin-bottom:10px;color:#7c6b29}.login-box h2{font-size:29px;letter-spacing:-1px;margin-bottom:12px}.login-box>p{font-size:14px;margin-bottom:32px;line-height:1.7}.login-box .button{width:100%;margin-top:10px;justify-content:space-between}.login-help{padding:22px 0;border-bottom:1px solid var(--line);display:flex;gap:9px;align-items:flex-start;font-size:12px;line-height:1.8;color:var(--muted);margin-top:16px}.login-help svg{margin-top:3px}.privacy-copy{font-size:10px;display:block;text-align:center;margin-top:22px}.app-shell{display:flex;min-height:100dvh}.sidebar{width:250px;background:var(--navy-dark);color:#c0cbe1;position:fixed;inset-block:0;inset-inline-start:0;display:flex;flex-direction:column;z-index:40}.sidebar>.brand{background:#fff;margin:20px 17px 26px;border-radius:13px;padding:9px 10px;gap:6px}.sidebar>.brand img{height:94px;width:69px}.sidebar>.brand strong{font-size:23px}.sidebar-label{font-size:9px;font-weight:650;letter-spacing:1.35px;padding:0 25px;margin-bottom:13px;color:#8498bf}.sidebar nav{padding:0 14px;overflow-y:auto;flex:1}.sidebar nav button{display:flex;width:100%;align-items:center;gap:12px;text-align:start;background:transparent;color:#afbfdd;padding:12px 13px;margin-bottom:5px;border-radius:10px;font-size:12px;font-weight:500;min-height:43px;position:relative}.sidebar nav button:hover{color:#fff;background:#ffffff08}.sidebar nav button.active{background:#ffffff12;color:#fff}.sidebar nav button.active:before{content:"";position:absolute;inset-inline-start:-14px;width:4px;height:24px;border-radius:0 3px 3px 0;background:var(--gold)}.sidebar nav button.active svg{color:var(--gold)}.nav-plus{margin-inline-start:auto;color:var(--gold)}.sidebar-bottom{border-top:1px solid #ffffff12;padding:18px 22px}.sidebar-bottom>button{color:#b8c5df;background:none;display:flex;align-items:center;gap:10px;width:100%;padding:11px 0;font-size:12px}.campus-seal{display:flex;gap:10px;align-items:center;font-size:11px;margin-bottom:15px}.campus-seal svg{color:var(--gold)}.campus-seal small{font-size:9px;color:#8da0c5}.workspace{margin-inline-start:250px;width:calc(100% - 250px);min-width:0}.topbar{height:86px;border-bottom:1px solid var(--line);background:#ffffffed;display:flex;justify-content:space-between;align-items:center;padding:0 36px;gap:20px;position:sticky;top:0;z-index:20;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.topbar-left{display:flex;align-items:center;gap:10px;min-width:0}.topbar-left strong{display:block;font-size:14px}.topbar-left small{display:block;font-size:10px;margin-top:3px}.topbar-actions{display:flex;align-items:center;gap:17px}.academic-scope{display:flex;gap:7px}.academic-scope select{font-size:11px;min-height:34px;padding:7px 9px;max-width:142px;background:#f9fafc}.user-chip{display:flex;align-items:center;gap:10px;border-inline-start:1px solid var(--line);padding-inline-start:18px;background:none;text-align:start}.user-chip strong{font-size:11px;display:block;max-width:130px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-chip small{font-size:10px;display:block;text-transform:capitalize}.avatar{display:inline-flex;align-items:center;justify-content:center;width:37px;height:37px;border-radius:50%;background:#f3ead0;color:var(--navy);font-size:12px;font-weight:700;flex-shrink:0}.notification-button{position:relative}.notification-button i{position:absolute;top:8px;right:9px;width:6px;height:6px;background:#d59d00;border-radius:100%;box-shadow:0 0 0 2px #fff}.menu-button{display:none}.main-content{max-width:1660px;margin:0 auto;padding:32px 36px 0;animation:enter .2s ease-out}@keyframes enter{0%{opacity:.7;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}.welcome{position:relative;padding:32px 34px;background:var(--navy);border-radius:var(--radius);color:#fff;display:flex;justify-content:space-between;align-items:center;gap:20px;overflow:hidden;margin-bottom:26px;min-height:174px}.welcome:after{content:"";position:absolute;pointer-events:none;border:1px solid #ffffff12;width:300px;height:300px;border-radius:50%;right:-80px;top:-150px;box-shadow:0 0 0 40px #ffffff03,0 0 0 80px #ffffff03}.welcome h1{font-size:clamp(25px,2.1vw,33px);position:relative;z-index:1;margin-bottom:12px}.welcome .eyebrow{color:var(--gold);font-size:9px}.welcome p{margin:0;color:#c0cbe1;font-size:12px}.welcome>.button{background:var(--gold);color:var(--navy-dark);z-index:1;font-size:12px;font-weight:750}.welcome-meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:17px;font-size:10px;color:#c8d4ee}.welcome-meta span+span{border-inline-start:1px solid #ffffff40;padding-inline-start:10px}.wave{color:var(--gold);font-size:28px}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:26px}.stat{background:#fff;border:1px solid var(--line);border-radius:15px;padding:21px 22px;box-shadow:0 3px 8px #07164002;min-width:0}.stat-top{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--muted);font-size:11px;margin-bottom:13px}.stat-top i{display:flex;width:34px;height:34px;border-radius:9px;align-items:center;justify-content:center;background:#f0f3fb;color:var(--navy)}.stat-top svg{width:18px;height:18px}.stat strong{font-size:32px;letter-spacing:-1px;font-weight:750;line-height:1.15;display:block;margin-bottom:9px;color:var(--navy-dark)}.stat small{font-size:10px;display:block}.two-column{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:24px}.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px;margin-bottom:24px;box-shadow:0 2px 7px #07164002;min-width:0}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px}.panel-head h2{font-size:16px}.panel-head p{font-size:11px;margin:6px 0 0}.panel-head>.search{max-width:320px}.chart-wrap{height:255px;min-width:0}.chart-column{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}.upcoming-lecture{display:flex;gap:13px;align-items:center;width:100%;text-align:start;background:#fff;padding:13px 0;border-top:1px solid #f0f2f7}.upcoming-lecture:first-child{border-top:0;padding-top:0}.upcoming-lecture>div:nth-child(2){flex:1;min-width:0}.upcoming-lecture strong{display:block;font-size:12px}.upcoming-lecture small{display:block;font-size:10px}.date-tile{background:#f2f5fb;border-radius:10px;color:var(--navy);font-size:19px;font-weight:750;display:flex;flex-direction:column;align-items:center;justify-content:center;width:46px;height:53px;flex-shrink:0}.date-tile small{font-size:9px;font-weight:500;text-transform:uppercase}.page-title{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:4px 0 26px}.page-title h1{font-size:29px}.page-title p{font-size:12px;margin-bottom:0}.page-title>select{max-width:320px}.toolbar{display:flex;gap:14px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:22px}.toolbar>select{max-width:190px}.search{display:flex;align-items:center;border:1px solid #dce3ee;border-radius:10px;padding-inline-start:12px;color:#8a97a8;max-width:360px;width:100%;background:#fff}.search input{border:0;background:transparent;min-height:41px;font-size:12px;padding:10px;min-width:0}.search input:focus{outline:0}.search:focus-within{outline:2px solid #b6c5e2}.tabs{display:flex;gap:5px;border-bottom:1px solid var(--line);margin-bottom:22px;padding-bottom:9px}.toolbar>.tabs{margin:0;border:0;padding:0}.tabs button{border:0;padding:9px 13px;border-radius:8px;background:none;font-size:12px;color:var(--muted);white-space:nowrap}.tabs button.active{background:#ebf0fb;color:var(--navy);font-weight:700}.scroll-tabs{overflow-x:auto}.table-wrap{overflow-x:auto;width:100%;-webkit-overflow-scrolling:touch}table{border-collapse:collapse;width:100%;text-align:start;font-size:12px}th{padding:13px 12px;background:#f7f9fc;color:#738297;font-size:9px;letter-spacing:.6px;text-transform:uppercase;white-space:nowrap;font-weight:700;border-bottom:1px solid var(--line);text-align:start}td{padding:15px 12px;border-bottom:1px solid #eef1f6;vertical-align:middle}td strong{display:block;font-size:12px;font-weight:650}td small{display:block;font-size:10px;margin-top:3px;max-width:260px}td .button-row{flex-wrap:nowrap;gap:15px}tr:last-child td{border-bottom:0}.badge{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;padding:4px 9px;border-radius:6px;background:#eef2f8;color:#60748d;text-transform:capitalize;font-size:10px;font-weight:650}.badge.present,.badge.active,.badge.approved{background:#e6f4ef;color:#17694e}.badge.absent,.badge.deleted,.badge.rejected{background:#fbeaec;color:#a93a44}.badge.late,.badge.pending,.badge.suspended{background:#fff3d7;color:#8b6515}.badge.excused{background:#eeebfb;color:#6c55a3}.badge.planned,.badge.scheduled{background:#e8eefb;color:#3d5d9b}.badge.open{background:#daf2e8;color:#13714d}.badge.archived,.badge.closed,.badge.graduated{background:#edf0f5;color:#5c6c82}.empty{text-align:center;padding:35px 20px;color:#8a98aa;font-size:12px;background:linear-gradient(180deg,transparent,#fcfdff);border-radius:10px}.field{display:flex;flex-direction:column;gap:7px;margin-bottom:17px;min-width:0}.field>span{font-size:11px;color:#43546b;font-weight:650}.field>small{font-size:10px;line-height:1.6}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}.filter-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:0 17px}.form-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding-top:22px;margin-top:15px;border-top:1px solid var(--line);flex-wrap:wrap}.form-actions>small{margin-inline-end:auto}.checkbox{display:flex;align-items:center;gap:9px;font-size:11px;color:var(--muted);margin-bottom:12px}.toolbar .checkbox{margin-bottom:0}.check-list{border:1px solid var(--line);border-radius:10px;max-height:210px;overflow:auto;padding:7px 12px}.check-list>label{display:flex;align-items:center;gap:8px;padding:8px 0;font-size:11px}.notice{display:flex;gap:12px;align-items:flex-start;border:1px solid #e4d8ae;background:#fffaf0;border-radius:11px;padding:15px 17px;color:#6b5c35;font-size:12px;line-height:1.65;margin-bottom:22px}.notice svg{color:#b28b19;margin-top:2px;flex-shrink:0}.notice p{margin:8px 0 0;color:#6b5c35}.error{padding:13px 16px;background:#fff0f1;color:#a12e3b;border:1px solid #f0cbd0;border-radius:9px;font-size:12px;margin:16px 0;line-height:1.65;overflow-wrap:anywhere}.fine-print{font-size:10px;color:#7c8da1;line-height:1.8;margin-top:20px;margin-bottom:0}.fine-print svg{vertical-align:middle;margin-inline-end:5px}.modal{border:0;box-shadow:0 20px 100px #07164040;border-radius:18px;padding:27px;max-width:550px;width:calc(100% - 32px);max-height:90dvh;color:#203047;overflow:auto}.modal::backdrop{background:#07164080;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal.wide{max-width:850px}.modal>header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;gap:14px}.modal>header h2{font-size:21px}.modal p{font-size:12px;line-height:1.8}.import-preview{max-height:350px;margin:20px 0}.credential{font-family:ui-monospace,monospace;color:var(--navy);font-size:13px;-webkit-user-select:all;user-select:all}.toast{position:fixed;inset-block-end:25px;inset-inline-start:50%;transform:translate(-50%);background:#10283f;color:#fff;padding:15px 23px;border-radius:12px;box-shadow:0 8px 30px #07164030;z-index:1000;max-width:min(600px,90vw);font-size:12px;line-height:1.6}.demo-banner{background:#fff1c6;border-bottom:1px solid #f0dea5;color:#6c5816;text-align:center;padding:6px 15px;font-size:10px;letter-spacing:.4px}.offline-banner,.workspace-error{background:#fceced;color:#982e3a;padding:12px 25px;font-size:12px;display:flex;gap:12px;align-items:center;justify-content:center}.workspace-error button{background:transparent;text-decoration:underline;color:inherit}.install-banner{display:flex;gap:14px;justify-content:center;align-items:center;background:#e8eef8;padding:9px 20px;font-size:12px}.install-banner .button{min-height:34px;padding:7px 12px;font-size:11px}.app-footer{display:flex;align-items:center;gap:10px;border-top:1px solid var(--line);padding:22px 0 24px;margin-top:20px;color:#8b98a9;font-size:9px}.app-footer>span{color:#c7aa46;font-size:6px}.app-footer>small{margin-inline-start:auto;font-size:9px}.bottom-nav,.menu-backdrop{display:none}.lecture-item{display:flex;gap:18px;align-items:center;padding:17px 0;border-top:1px solid #eff2f7}.lecture-item:first-child{border-top:0;padding-top:4px}.lecture-item>div:nth-child(2){flex:1;min-width:0}.lecture-item h3{font-size:12px}.lecture-item p{font-size:10px;margin:3px 0 0}.time-block{width:75px;font-weight:750;color:var(--navy);font-size:12px;flex-shrink:0}.time-block small{display:block;font-size:10px;font-weight:400;margin-top:4px}.course-progress{padding:14px 0;border-top:1px solid #eff2f7}.course-progress:first-child{border-top:0;padding-top:0}.course-progress>div:first-child{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:10px;font-size:12px}.course-progress strong{font-weight:600}.course-progress b{color:var(--navy);white-space:nowrap}.progress-track{height:6px;background:#edf1f8;border-radius:8px;overflow:hidden;margin-bottom:7px}.progress-track i{display:block;height:100%;background:linear-gradient(90deg,var(--navy),#425daf);border-radius:8px;transition:width .3s}.course-progress small{font-size:10px}.notification{display:flex;gap:12px;padding:16px 0;border-top:1px solid #eff2f7;align-items:flex-start}.notification:first-child{border-top:0;padding-top:0}.notification>div{flex:1}.notification strong{display:block;font-size:12px;font-weight:650}.notification p{font-size:11px;line-height:1.7;margin:4px 0 5px}.notification small{font-size:9px}.notification-dot{display:block;width:7px;height:7px;border-radius:50%;background:var(--gold);margin-top:6px;flex-shrink:0}.notification.read .notification-dot{background:#d8dfeb}.notification.read{opacity:.8}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;text-align:center}.calendar>b{font-size:10px;color:#8995a5;font-weight:600;padding:8px 0}.calendar-day{min-height:49px;border-radius:9px;padding:8px 2px;color:#7b889a;font-size:12px}.calendar-day.has-lecture{background:#f0f4fb;color:#1f3455}.calendar-day>div{display:flex;gap:3px;justify-content:center;margin-top:6px;flex-wrap:wrap}.calendar-day i,.legend i{display:inline-block;width:5px;height:5px;border-radius:100%}.present{--status-color:#238566}.late{--status-color:#dca635}.absent{--status-color:#c55260}.excused{--status-color:#8e73be}.calendar-day i,.legend i{background:var(--status-color)}.legend{display:flex;gap:15px;justify-content:center;margin-top:20px;flex-wrap:wrap}.legend span{font-size:9px;color:#6e7d92;display:flex;align-items:center;gap:5px;text-transform:capitalize}.timetable-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:15px}.timetable-card{padding:18px;border-radius:13px;background:#f4f7fc;border-inline-start:3px solid var(--gold)}.timetable-card .eyebrow{font-size:9px;color:#8b6e1c}.timetable-card p{font-size:11px;margin:8px 0}.schedule-day{padding-top:10px;margin-top:18px}.schedule-day>h3{font-size:12px;color:#8291a6;border-bottom:1px solid var(--line);padding-bottom:12px}.scan-page{max-width:560px;margin:15px auto;text-align:center}.scan-page>p{font-size:13px}.scan-page>.eyebrow{color:#9c7e26}.scanner-panel{text-align:start;padding:24px}.camera-view{height:300px;background:#edf1f8;border-radius:14px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;margin-bottom:23px;text-align:center;color:#7a8ca9}.camera-view>div:first-of-type p{font-size:11px;margin-top:15px}.camera-view.scanning{background:#0c1732}.camera-view video{width:100%;height:100%;object-fit:cover}.scan-corners{position:absolute;width:200px;height:200px;border:2px solid #d3b44e;border-radius:15px;pointer-events:none;box-shadow:0 0 0 999px #07164008}.scanner-panel details{margin-top:22px;border-top:1px solid var(--line);padding-top:16px}.scanner-panel summary{cursor:pointer;color:#748198;font-size:11px;margin-bottom:13px}.upload-button{position:relative;overflow:hidden}.upload-button input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%;padding:0}.receipt{text-align:center;padding:35px}.success-icon{color:#168261;margin:15px auto 20px}.receipt h2{font-size:25px}.receipt>p{margin-top:10px;margin-bottom:5px}dl{display:grid;grid-template-columns:auto 1fr;gap:12px 20px;text-align:start;margin:25px 0;padding:20px;border-radius:12px;background:#f7f9fc;font-size:12px}dt{color:var(--muted)}dd{margin:0;text-align:end;color:#2c4059}.profile-card{text-align:center}.profile-card>.brand{justify-content:center;margin-bottom:25px}.profile-card>.avatar{width:65px;height:65px;font-size:23px;margin-bottom:15px}.profile-card>h2{font-size:23px}.profile-card>p{margin:6px 0 13px;font-size:12px}.install-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.install-grid h3{color:var(--navy)}.install-grid p{font-size:12px;line-height:1.8;margin:8px 0}.steps{padding-inline-start:20px}.steps li{padding-inline-start:5px;margin-bottom:15px;font-size:12px;line-height:1.8}.reason-cell{max-width:250px;font-size:11px;line-height:1.7}.audit-json{background:#f6f8fc;padding:18px;border-radius:10px;max-height:370px;overflow:auto;font-size:11px;white-space:pre-wrap;overflow-wrap:anywhere}.course-toolbar>select{max-width:none;flex:1;min-width:220px}.session-banner{background:#fff;border:1px solid var(--line);border-inline-start:4px solid var(--gold);border-radius:15px;padding:23px 26px;display:flex;justify-content:space-between;align-items:center;margin-bottom:22px;gap:20px}.session-banner h2{font-size:23px;margin:10px 0 7px}.session-banner p{font-size:12px;margin:0}.register-summary{display:grid;grid-template-columns:repeat(5,1fr);background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;margin-bottom:24px}.register-summary>div{text-align:center;border-inline-start:1px solid var(--line);display:flex;align-items:center;justify-content:center;gap:12px}.register-summary>div:first-child{border-inline-start:0}.register-summary strong{font-size:23px;color:var(--navy)}.projector{position:fixed;inset:0;z-index:200;background:#f7f9fd;overflow:auto;color:var(--navy)}.projector>header{padding:18px 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:#fff}.projector>header .brand img{height:83px;width:62px}.projector>main{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:7%;padding:45px 8%;min-height:calc(100dvh - 190px)}.projector-copy .eyebrow{color:#9d7c10}.projector-copy h1{font-size:clamp(24px,3vw,45px);margin:20px 0}.projector-copy h2{font-weight:450;font-size:27px;margin-bottom:17px}.projector-copy p{font-size:13px}.projector-copy ol{padding-inline-start:22px;margin:32px 0;font-size:16px;line-height:2.2;color:#4f6280}.projector-qr{padding:25px;background:#fff;border:1px solid var(--line);border-radius:24px;text-align:center;box-shadow:0 10px 40px #07164008}.projector-qr>img{display:block;width:100%;max-height:52dvh;object-fit:contain}.projector-qr>p{font-size:11px;margin:13px 0 8px}.qr-placeholder{aspect-ratio:1;display:flex;align-items:center;justify-content:center;padding:40px}.qr-timer{background:#f2f5fb;border-radius:10px;padding:12px;display:flex;align-items:center;justify-content:center;gap:7px;font-size:12px}.live-dot{width:7px;height:7px;background:#2b946b;border-radius:100%;display:inline-block}.live-counter{display:flex;align-items:center;gap:12px;font-size:13px}.live-counter svg{color:#7b90b8}.live-counter strong{font-size:35px}.projector>footer{text-align:center;font-size:10px;letter-spacing:2px;padding:15px;color:#7b89a1}.projector>footer span{color:var(--gold);margin:0 15px}@media(min-width:1550px){.main-content{padding:38px 45px 0}.topbar{padding-inline:45px}}@media(max-width:1200px){.sidebar{width:220px}.workspace{margin-inline-start:220px;width:calc(100% - 220px)}.sidebar>.brand{margin-inline:12px;padding:7px}.sidebar>.brand strong{font-size:19px}.sidebar>.brand small{font-size:8px}.sidebar>.brand img{width:60px;height:82px}.sidebar nav button{font-size:11px;padding:11px 10px;gap:10px}.main-content{padding:26px 25px 0}.topbar{padding-inline:25px}.user-chip>span:last-child{display:none}.topbar-actions{gap:11px}.stats-grid{gap:12px}.stat{padding:18px 17px}.stat-top{font-size:10px}.stat small{font-size:9px}.two-column{gap:18px}.panel{padding:20px}.page-title>.button-row{max-width:310px;justify-content:flex-end}.register-summary>div{gap:7px}.register-summary strong{font-size:21px}}@media(max-width:1000px){.two-column,.chart-column{grid-template-columns:1fr}.chart-column .panel{margin-bottom:6px}.chart-column .panel:last-child{margin-bottom:24px}.academic-scope select{max-width:122px}.topbar-left small{display:none}.welcome{padding:27px}.panel-head>.search{max-width:250px}.projector>main{gap:4%;padding:30px 5%}.projector-copy ol{font-size:13px}.projector-copy h2{font-size:21px}.login-story{padding-inline:9%}.story-copy h1{font-size:44px}.login-main{padding-inline:30px}.story-features span{font-size:11px}.story-footer{font-size:8px;letter-spacing:.7px}}@media(max-width:800px){.sidebar{transform:translate(-100%);transition:transform .2s;width:250px;z-index:60}.sidebar.open{transform:translate(0)}[dir=rtl] .sidebar{transform:translate(100%)}[dir=rtl] .sidebar.open{transform:translate(0)}.sidebar>.brand{margin:20px 17px 26px;padding:9px 10px}.sidebar>.brand strong{font-size:23px}.sidebar>.brand img{height:94px;width:69px}.workspace{margin-inline-start:0;width:100%}.menu-button{display:flex}.topbar{height:76px;padding:0 20px}.menu-backdrop{display:block;position:fixed;inset:0;background:#07164080;z-index:50}.main-content{padding:25px 20px 0}.topbar-left strong{font-size:12px}.topbar-actions{gap:10px}.user-chip{padding-inline-start:9px}.academic-scope select{font-size:10px;max-width:113px;min-height:33px}.stats-grid{gap:12px}.stat strong{font-size:29px}.login-page{grid-template-columns:1fr}.login-story{display:none}.login-main{min-height:100dvh;padding:30px 25px}.login-emblem{display:block}.login-box>.eyebrow,.login-box>h2,.login-box>p{text-align:center}.login-box h2{font-size:26px}.login-box>p{font-size:12px}.login-main{background:linear-gradient(180deg,#f7f9ff,#fff 40%)}.login-box{max-width:400px}.student-shell .menu-button{display:none}.student-shell .topbar-left strong{font-size:14px}.student-shell .bottom-nav{display:flex;position:fixed;bottom:0;inset-inline:0;z-index:45;background:#fffffffa;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--line);justify-content:space-around;padding:9px 7px max(9px,env(safe-area-inset-bottom));height:calc(72px + env(safe-area-inset-bottom));align-items:center;box-shadow:0 -3px 20px #07164006}.bottom-nav button{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:4px;color:#8a97aa;background:none;min-width:55px;font-size:9px;padding:5px}.bottom-nav button.active{color:var(--navy);font-weight:700}.bottom-nav .scan-nav{position:relative;margin-top:-24px}.bottom-nav .scan-nav svg{padding:11px;background:var(--navy);color:var(--gold);width:49px;height:49px;border:4px solid #fff;border-radius:17px;box-shadow:0 4px 12px #0c1f6320;box-sizing:content-box;width:25px;height:25px}.student-shell .main-content{padding-bottom:80px}.student-shell .toast{bottom:95px}.student-shell .app-footer small{display:none}.install-grid{grid-template-columns:1fr;gap:15px}.welcome h1{font-size:27px}.page-title h1{font-size:25px}}@media(max-width:550px){.main-content{padding:20px 15px 0}.topbar{padding:12px 15px;height:auto;min-height:80px;gap:8px;align-items:flex-start}.topbar-left{padding-top:8px;gap:4px}.topbar-left strong{font-size:11px}.topbar-actions{display:grid;grid-template-columns:auto auto;gap:4px 8px;justify-items:end}.academic-scope{grid-column:1/3;order:2;gap:5px}.academic-scope select{padding:4px 7px;min-height:29px;max-width:113px;font-size:9px;border-radius:7px}.topbar-actions>.user-chip{display:none}.topbar-actions>.notification-button{grid-column:2;grid-row:1;height:30px;width:32px}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin-bottom:20px}.stat{border-radius:13px;padding:16px}.stat-top{font-size:10px;margin-bottom:8px;gap:5px;align-items:flex-start}.stat-top i{width:27px;height:27px;border-radius:8px}.stat-top svg{width:15px;height:15px}.stat strong{font-size:28px}.stat small{font-size:9px;line-height:1.6}.welcome{display:block;padding:25px 23px;border-radius:15px;margin-bottom:20px;min-height:0}.welcome>.button{margin-top:22px;width:100%;font-size:12px}.welcome .eyebrow{font-size:8px}.welcome h1{font-size:25px;letter-spacing:-.8px}.welcome p{font-size:11px}.welcome-meta{font-size:9px;gap:8px}.welcome-meta span:last-child{border:0;padding:0;width:100%}.two-column{display:block}.panel{padding:19px 17px;border-radius:15px;margin-bottom:20px}.panel-head{gap:9px;align-items:flex-start;margin-bottom:17px}.panel-head h2{font-size:15px}.panel-head p,.panel-head .text-button{font-size:10px}.panel-head>.search{max-width:180px}.panel-head .search input{font-size:10px}.page-title{display:block;margin:4px 0 22px}.page-title h1{font-size:25px;letter-spacing:-.8px}.page-title p{font-size:11px}.page-title>.button,.page-title>.button-row{margin-top:18px;max-width:none;justify-content:flex-start}.page-title>.button-row .button{font-size:11px;min-height:39px;padding:9px 12px}.page-title>select{margin-top:15px;max-width:none}.eyebrow{font-size:9px;letter-spacing:1.4px}.button{font-size:12px;padding:10px 14px}.toolbar{gap:12px}.toolbar>.search{max-width:none}.toolbar>.tabs{width:100%}.toolbar>select{max-width:none}.toolbar .checkbox{font-size:10px}.text-button{font-size:11px}.tabs button{font-size:11px;padding:8px 12px}.scroll-tabs{margin-bottom:16px;padding-bottom:8px}.form-grid,.filter-grid{grid-template-columns:1fr;gap:0}.filter-grid .field{margin-bottom:13px}.field input,.field select,.field textarea{font-size:13px}.field>span{font-size:11px}.form-actions{padding-top:18px}.form-actions .button{flex:1}.form-actions>small{width:100%}.modal{padding:23px 19px;border-radius:16px;max-height:92dvh}.modal>header h2{font-size:19px}.modal>header .icon-button{height:28px;width:28px}.notice{font-size:11px;padding:13px}.notice svg{width:19px}.table-wrap table{min-width:620px}.lecture-item{gap:11px;padding:16px 0}.lecture-item .time-block{width:62px;font-size:11px}.lecture-item h3{font-size:11px}.lecture-item .badge{font-size:9px;padding:4px 6px}.course-progress strong{font-size:11px}.notification p{font-size:10px}.notification .text-button{font-size:9px;max-width:50px}.notification>div{min-width:0}.app-footer{font-size:8px;flex-wrap:wrap;margin-top:15px;padding:17px 0 20px;gap:7px}.app-footer>small{width:100%;margin:0;font-size:8px}.calendar{gap:3px}.calendar-day{min-height:44px;font-size:11px}.calendar>b{font-size:9px}.panel-head input[type=month]{font-size:10px;max-width:140px;min-height:34px;padding:6px}.legend{gap:12px}.camera-view{height:280px}.scanner-panel{padding:17px}.scanner-panel .button-row{display:grid;grid-template-columns:1fr 1fr;gap:9px}.scanner-panel .button-row .button{font-size:11px;padding:10px;min-height:45px}.scan-page{margin-top:12px}.scan-page>h1{font-size:28px}.session-banner{display:block;padding:21px}.session-banner h2{font-size:22px}.session-banner>.button-row{margin-top:20px}.session-banner .button{font-size:11px}.register-summary{padding:14px 7px;gap:4px;margin-bottom:20px}.register-summary>div{flex-direction:column;gap:5px}.register-summary strong{font-size:22px}.register-summary .badge{font-size:8px;padding:3px 5px}.course-toolbar>select{min-width:100%;font-size:12px}.projector>header{padding:14px 18px;gap:15px}.projector>header .brand{gap:5px}.projector>header .brand img{height:68px;width:50px}.projector>header .brand strong{font-size:19px}.projector>header .brand small{font-size:7px;max-width:100px}.projector>header .button{font-size:9px;padding:7px 9px;min-height:34px}.projector>header .button-row{max-width:90px;gap:5px;justify-content:flex-end}.projector>main{display:flex;flex-direction:column;padding:25px 22px;min-height:0;gap:25px}.projector-copy{width:100%;text-align:center}.projector-copy h1{font-size:24px;margin:13px 0}.projector-copy h2{font-size:20px}.projector-copy .eyebrow{font-size:8px}.projector-copy p{font-size:10px}.projector-copy ol{display:none}.live-counter{justify-content:center;font-size:11px}.live-counter strong{font-size:25px}.projector-qr{width:100%;max-width:380px;padding:15px}.projector-qr>img{max-height:none}.projector>footer{font-size:8px}.demo-banner{font-size:8px;letter-spacing:0}.install-banner{font-size:10px;gap:8px;padding:9px 14px}.install-banner .button{font-size:9px;padding:6px 8px}.student-shell .topbar-left{padding-top:12px}.student-shell .topbar-left strong{font-size:15px}.student-shell .topbar-left small{display:block;font-size:8px;max-width:130px}.student-shell .topbar-actions{gap:3px}.student-shell .topbar{min-height:89px}.center-page{padding-inline:20px}.toast{font-size:11px;width:90vw}.timetable-grid{grid-template-columns:1fr}.password-panel .brand{margin-bottom:25px}.password-panel h1{font-size:24px}.profile-card>.brand img{height:95px;width:70px}.profile-card>h2{font-size:22px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@media print{.sidebar,.topbar,.button,.bottom-nav,.app-footer,.toolbar,.demo-banner{display:none!important}.workspace{width:100%;margin:0}.main-content{padding:0}.panel{border:0;padding:0;box-shadow:none}.table-wrap{overflow:visible}.table-wrap table{min-width:0}}.mobile-university-logo{height:58px;width:43px;object-fit:contain;margin-inline-end:7px;flex-shrink:0}@media(max-width:550px){.mobile-university-logo{height:55px;width:40px;margin-inline-end:5px}.student-shell .topbar-left{padding-top:2px}.student-shell .topbar-left strong{font-size:13px}.student-shell .topbar-left small{font-size:7px;max-width:105px}}.upload-button:focus-within{outline:3px solid #d9aa0d;outline-offset:3px}
