:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#18233b;background:#f5f7fb;font-synthesis:none;text-rendering:optimizeLegibility;--navy: #25388e;--navy-2: #1e2f78;--blue: #3553b7;--orange: #f5a623;--text: #18233b;--muted: #6d7890;--border: #e3e8f1;--surface: #ffffff;--soft: #f3f6fc;--success: #14804a;--danger: #c53939;--shadow: 0 12px 35px rgba(24, 39, 75, .07)}*{box-sizing:border-box}body{margin:0;min-width:320px;background:#f5f7fb;color:var(--text)}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}img{max-width:100%;display:block}.muted{color:var(--muted)}.eyebrow{display:inline-block;color:var(--navy);font-size:11px;font-weight:800;letter-spacing:.13em}.required{color:#d83b3b;font-weight:800}.full-width{width:100%}.primary-button,.secondary-button,.logout-button,.text-button,.link-button,.icon-button,.notification-button,.mobile-menu,.nav-button,.quick-card,.choice-card,.download-button{border:0;background:transparent}.primary-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 16px;border-radius:9px;color:#fff;background:var(--navy);font-weight:700;box-shadow:0 6px 16px #25388e29;transition:.18s ease}.primary-button:hover{background:var(--navy-2);transform:translateY(-1px)}.secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 14px;border-radius:9px;border:1px solid var(--border);color:var(--text);background:#fff;font-weight:700}.text-button,.link-button{color:var(--navy);font-weight:700;display:inline-flex;align-items:center;gap:6px}.link-button:hover,.text-button:hover{text-decoration:underline}.login-page{min-height:100vh;display:grid;grid-template-columns:48% 52%;background:#fff}.login-brand-side{position:relative;overflow:hidden;color:#fff;padding:44px 7vw 32px;background:linear-gradient(145deg,#1f317d,#293d98 58%,#1f327c)}.login-brand-side:after{content:"";position:absolute;width:520px;height:520px;border-radius:50%;border:1px solid rgba(255,255,255,.1);right:-230px;bottom:-220px;box-shadow:0 0 0 70px #ffffff06,0 0 0 140px #ffffff05}.brand-lockup{display:flex;align-items:center;gap:14px;position:relative;z-index:1}.brand-lockup img{width:66px;height:66px;object-fit:contain}.brand-lockup strong{display:block;font-size:18px}.brand-lockup span{display:block;opacity:.72;font-size:12px;margin-top:4px}.login-hero{position:relative;z-index:1;max-width:570px;margin-top:18vh}.login-hero .eyebrow{color:#ffb43d}.login-hero h1{font-size:clamp(40px,5vw,70px);line-height:1.04;margin:16px 0 22px;letter-spacing:-.04em}.login-hero h1 em{color:#ffb43d;font-style:normal}.login-hero p{max-width:560px;line-height:1.8;color:#ffffffbf;font-size:15px}.hero-feature-list{display:flex;flex-wrap:wrap;gap:9px;margin-top:30px}.hero-feature-list span{display:inline-flex;align-items:center;gap:7px;padding:9px 11px;border-radius:999px;background:#ffffff14;color:#ffffffdb;font-size:12px}.login-brand-footer{position:absolute;bottom:28px;color:#ffffff8c;font-size:12px;z-index:1}.login-form-side{display:grid;place-items:center;padding:30px;background:#f8faff}.login-card{width:min(470px,100%);padding:36px;background:#fff;border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow)}.mobile-logo{display:none}.login-card h2{margin:8px 0 6px;font-size:29px;letter-spacing:-.03em}.login-card>.muted{margin:0 0 26px;font-size:14px}.field{margin-bottom:17px}.field>label,.single-field>label{display:block;margin-bottom:7px;font-size:12px;font-weight:800;color:#34415b}.field-control,.input-wrap{display:flex;align-items:center;gap:9px;min-height:45px;border:1px solid var(--border);background:#fff;border-radius:9px;padding:0 12px;transition:.15s ease}.field-control:focus-within,.input-wrap:focus-within{border-color:#7d91da;box-shadow:0 0 0 3px #3553b717}.field-control>svg,.input-wrap>svg{color:#8791a7;flex:0 0 auto}.field-control input,.field-control select,.field-control textarea,.input-wrap input{width:100%;border:0;outline:0;background:transparent;color:var(--text);min-width:0}.field-control textarea{padding:12px 0;min-height:100px;resize:vertical}.field-control select{height:43px}.input-icon-button{display:inline-grid;place-items:center;border:0;background:transparent;color:#8791a7;padding:3px}.login-options{display:flex;justify-content:space-between;align-items:center;margin:3px 0 18px;font-size:12px}.checkbox-label{display:inline-flex;align-items:center;gap:7px;color:var(--muted)}.checkbox-label input,.course-check input{accent-color:var(--navy)}.error-message{display:flex;align-items:flex-start;gap:8px;color:#9b2d2d;background:#fff0f0;border:1px solid #ffd1d1;padding:10px 11px;border-radius:8px;font-size:12px;margin-bottom:12px}.demo-login{margin-top:24px;padding-top:18px;border-top:1px solid var(--border)}.demo-title{font-size:11px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:9px}.demo-row{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:7px 0;font-size:11px;color:var(--muted)}.demo-row button{border:1px solid var(--border);background:var(--soft);border-radius:7px;padding:5px 9px;font-weight:700;color:var(--navy)}.portal{min-height:100vh;display:flex}.sidebar{width:255px;background:#fff;border-right:1px solid var(--border);position:fixed;left:0;top:0;bottom:0;display:flex;flex-direction:column;z-index:20}.sidebar-brand{display:flex;align-items:center;gap:11px;padding:20px 19px;border-bottom:1px solid var(--border)}.sidebar-brand img{width:44px;height:44px;object-fit:contain}.sidebar-brand strong{display:block;color:var(--navy);font-size:18px}.sidebar-brand span{display:block;font-size:10px;color:var(--muted);margin-top:2px}.role-pill{margin:18px 16px 10px;padding:7px 9px;border-radius:7px;font-size:9px;font-weight:900;letter-spacing:.12em;text-align:center}.role-pill.admin{color:#9a6714;background:#fff5df}.role-pill.teacher{color:#2c4b9e;background:#edf1ff}.role-pill.student{color:#17714c;background:#eaf9f2}.sidebar-nav{padding:4px 10px;overflow:auto}.nav-button{width:100%;display:flex;align-items:center;gap:11px;padding:10px 11px;border-radius:8px;color:#6c7890;font-size:13px;font-weight:650;text-align:left;margin-bottom:3px}.nav-button:hover{background:#f3f5fb;color:var(--navy)}.nav-button.active{color:var(--navy);background:#edf1ff}.nav-button.active:after{content:"";margin-left:auto;width:4px;height:20px;border-radius:4px;background:var(--orange)}.sidebar-footer{margin-top:auto;padding:15px;border-top:1px solid var(--border)}.profile-mini{display:flex;gap:9px;align-items:center;min-width:0;margin-bottom:13px}.profile-mini>div:last-child{min-width:0}.profile-mini strong,.profile-mini span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-mini strong{font-size:11px}.profile-mini span{color:var(--muted);font-size:9px;margin-top:2px}.logout-button{width:100%;display:flex;align-items:center;justify-content:center;gap:7px;border:1px solid var(--border);padding:9px;border-radius:8px;color:#5e6a80;font-weight:700;font-size:12px}.logout-button:hover{color:var(--danger);border-color:#f2cccc;background:#fff7f7}.portal-main{margin-left:255px;width:calc(100% - 255px)}.topbar{height:78px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 32px;position:sticky;top:0;z-index:10}.breadcrumb{font-size:10px;color:#8a94a8;text-transform:uppercase;letter-spacing:.08em;margin-bottom:3px}.topbar h2{margin:0;font-size:19px;letter-spacing:-.02em}.topbar-actions{display:flex;align-items:center;gap:18px}.notification-button{width:35px;height:35px;border-radius:50%;display:grid;place-items:center;position:relative;color:#6d7890}.notification-button i{width:6px;height:6px;border-radius:50%;background:#e0a020;position:absolute;top:7px;right:7px;border:1px solid white}.top-profile{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700}.avatar{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;flex:0 0 auto;color:var(--navy);background:#e9edff;font-size:11px;font-weight:900}.mobile-menu{display:none;color:var(--navy)}.page-content{padding:29px 32px 50px;max-width:1500px;margin:0 auto}.page-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:23px}.page-intro h1{margin:5px 0 7px;font-size:27px;letter-spacing:-.035em}.page-intro p{margin:0;color:var(--muted);font-size:13px;max-width:750px;line-height:1.6}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:18px}.stat-card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:17px;box-shadow:0 3px 12px #14204106}.stat-icon{width:36px;height:36px;border-radius:9px;display:grid;place-items:center;color:var(--navy);background:#edf1ff;margin-bottom:15px}.stat-card>span,.stat-card>small{display:block;color:var(--muted);font-size:11px}.stat-card>strong{display:block;font-size:24px;letter-spacing:-.04em;margin:4px 0 3px}.stat-card>small{font-size:10px}.dashboard-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:18px;margin-bottom:18px}.panel{background:#fff;border:1px solid var(--border);border-radius:12px;padding:20px;margin-bottom:18px;box-shadow:0 3px 12px #14204106}.panel-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:15px;margin-bottom:17px}.panel-heading h3{margin:0;font-size:15px;letter-spacing:-.01em}.panel-heading p{color:var(--muted);font-size:11px;margin:5px 0 0;line-height:1.5}.activity-list{display:grid;gap:1px}.activity-row{display:flex;gap:11px;padding:10px 0}.activity-dot{width:31px;height:31px;flex:0 0 auto;border-radius:8px;display:grid;place-items:center;color:var(--navy);background:#f0f3fc}.activity-row strong{font-size:12px}.activity-row p{margin:2px 0 3px;font-size:11px;color:#6e798d}.activity-row small{font-size:9px;color:#9ba4b4}.snapshot-list{display:grid;gap:17px}.snapshot-list>div{display:grid;grid-template-columns:1fr auto;gap:3px 10px}.snapshot-list span{font-size:11px;color:var(--muted)}.snapshot-list strong{font-size:13px}.progress{grid-column:1 / -1;height:7px;border-radius:99px;background:#eef1f6;overflow:hidden;margin-top:5px}.progress i{display:block;height:100%;background:var(--orange);border-radius:inherit}.quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.quick-card{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:13px;border:1px solid var(--border);border-radius:9px;text-align:left;color:var(--text)}.quick-card:hover{border-color:#c9d2ec;background:#fbfcff}.quick-icon{width:32px;height:32px;border-radius:8px;display:grid;place-items:center;color:var(--navy);background:#edf1ff}.quick-card strong,.quick-card span{display:block}.quick-card strong{font-size:11px}.quick-card span{color:var(--muted);font-size:9px;margin-top:3px;line-height:1.4}.segmented{display:inline-flex;padding:4px;background:#eef1f7;border-radius:9px;margin-bottom:15px}.segmented button{border:0;background:transparent;padding:8px 13px;border-radius:7px;color:#718097;font-size:11px;font-weight:800}.segmented button.selected{background:#fff;color:var(--navy);box-shadow:0 2px 8px #18274b14}.form-panel{padding:0;overflow:hidden}.form-section{padding:22px;border-bottom:1px solid var(--border)}.form-section h3{margin:0 0 15px;font-size:14px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0 17px}.form-grid .field:last-child:nth-child(odd){grid-column:1 / -1}.choice-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.choice-card{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;border:1px solid var(--border);padding:14px;border-radius:10px;text-align:left;color:var(--text)}.choice-card.selected{border-color:#7185cf;background:#f7f9ff;box-shadow:0 0 0 2px #3553b714}.choice-icon{width:37px;height:37px;border-radius:9px;display:grid;place-items:center;background:#edf1ff;color:var(--navy)}.choice-card strong,.choice-card span{display:block}.choice-card strong{font-size:12px}.choice-card div span{color:var(--muted);font-size:10px;line-height:1.4;margin-top:3px}.radio{width:17px;height:17px;border:1px solid #cad2e0;border-radius:50%;display:grid;place-items:center;color:#fff}.radio.checked{background:var(--navy);border-color:var(--navy)}.upload-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:11px}.upload-box{border:1px dashed #cbd3e2;border-radius:10px;padding:17px 14px;min-height:126px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;cursor:pointer;background:#fbfcfe;transition:.15s ease}.upload-box:hover{border-color:#7185cf;background:#f8faff}.upload-box input{display:none}.upload-icon{width:32px;height:32px;border-radius:8px;display:grid;place-items:center;color:var(--navy);background:#edf1ff;margin-bottom:9px}.upload-box strong{font-size:11px}.upload-box>span{font-size:9px;color:var(--muted);margin-top:4px;line-height:1.4}.upload-box small{color:var(--navy);font-size:9px;font-weight:800;margin-top:8px}.upload-box small.uploaded{color:var(--success)}.single-field{max-width:560px;margin-bottom:17px}.select-wrap{position:relative;display:flex;align-items:center}.select-wrap select{width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border);background:#fff;min-height:45px;border-radius:9px;padding:0 37px 0 12px;outline:0;color:var(--text)}.select-wrap>svg{position:absolute;right:12px;pointer-events:none;color:#8b95a8}.select-wrap.compact{width:280px}.course-check-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.course-check{display:flex;gap:8px;align-items:center;padding:10px 12px;border:1px solid var(--border);border-radius:8px;font-size:11px;color:#536077}.form-actions{display:flex;justify-content:flex-end;gap:9px;padding:17px 22px;background:#fbfcfe}.success-message{display:flex;gap:10px;align-items:flex-start;background:#edf9f2;color:#16643e;border:1px solid #c8ead7;border-radius:9px;padding:11px 13px;font-size:12px;margin:0 22px 18px}.success-message svg{flex:0 0 auto}.success-message p{margin:3px 0 0;color:#4e8067;font-size:10px;line-height:1.5}.table-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:15px}.search-box{display:flex;align-items:center;gap:8px;border:1px solid var(--border);border-radius:8px;padding:0 10px;min-height:39px;width:min(360px,100%);color:#8b95a8}.search-box input{border:0;outline:0;width:100%;font-size:11px}.filter-chip,.date-pill{padding:8px 10px;background:#f2f4f8;border-radius:7px;color:#68748a;font-size:10px;font-weight:800}.responsive-table{width:100%;overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:11px;min-width:700px}th{text-align:left;color:#8a94a8;font-size:9px;text-transform:uppercase;letter-spacing:.06em;padding:10px;border-bottom:1px solid var(--border)}td{padding:12px 10px;border-bottom:1px solid #eef1f5;color:#5b667a}td strong{color:var(--text)}.person-cell{display:flex;align-items:center;gap:8px}.status{display:inline-block;border-radius:999px;padding:5px 8px;font-size:9px;font-weight:800}.status.active,.status.present{color:#17714c;background:#eaf9f2}.status.pending,.status.due{color:#9b6a13;background:#fff5df}.status.leave,.status.absent{color:#a23b3b;background:#fff0f0}.icon-button{display:inline-grid;place-items:center;color:#7d879a;padding:5px;border-radius:6px}.icon-button:hover{background:#f1f3f7;color:var(--navy)}.activity-feed{display:grid}.activity-item{display:grid;grid-template-columns:auto 1fr auto;gap:11px;align-items:center;padding:13px 2px;border-bottom:1px solid #eef1f5}.activity-icon{width:32px;height:32px;border-radius:8px;display:grid;place-items:center;background:#edf1ff;color:var(--navy)}.activity-body strong{font-size:12px}.activity-body p{margin:3px 0 0;color:var(--muted);font-size:10px}.activity-meta{text-align:right}.activity-meta span,.activity-meta small{display:block}.activity-meta span{color:var(--navy);font-weight:800;font-size:9px}.activity-meta small{color:#9aa3b3;font-size:9px;margin-top:3px}.week-switcher{display:flex;align-items:center;justify-content:center;gap:16px;margin:0 0 15px}.week-switcher button{border:1px solid var(--border);background:#fff;width:29px;height:29px;border-radius:7px}.week-switcher strong{font-size:12px}.announcement-grid,.event-grid,.test-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.announcement-card,.event-card,.test-card{border:1px solid var(--border);border-radius:10px;padding:15px}.announcement-top{display:flex;justify-content:space-between;align-items:center}.tag{display:inline-block;color:var(--navy);background:#edf1ff;border-radius:999px;padding:5px 8px;font-size:9px;font-weight:800}.announcement-top small{color:#9ba4b4;font-size:9px}.announcement-card h3,.event-card h3,.test-card h3{font-size:13px;margin:12px 0 6px}.announcement-card p,.event-card p,.test-card p{color:var(--muted);font-size:10px;line-height:1.55}.event-card p{display:flex;align-items:center;gap:5px;margin:7px 0}.event-card .text-button{margin-top:7px}.billing-summary,.attendance-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:18px}.attendance-summary{grid-template-columns:repeat(4,1fr)}.billing-summary>div,.attendance-summary>div{background:#f7f9fc;border:1px solid var(--border);border-radius:9px;padding:14px}.billing-summary span,.attendance-summary span{display:block;color:var(--muted);font-size:10px}.billing-summary strong,.attendance-summary strong{display:block;margin-top:4px;font-size:17px}.settings-grid{display:grid;gap:11px}.setting-card{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;border:1px solid var(--border);padding:15px;border-radius:9px}.setting-card>svg{color:var(--navy)}.setting-card strong{font-size:12px}.setting-card p{margin:3px 0 0;color:var(--muted);font-size:10px}.material-grid{display:grid;gap:9px}.material-card,.assignment-row{display:grid;grid-template-columns:auto 1fr auto;gap:11px;align-items:center;padding:12px;border:1px solid var(--border);border-radius:9px}.file-icon,.test-icon{width:36px;height:36px;border-radius:9px;display:grid;place-items:center;color:var(--navy);background:#edf1ff}.material-card strong,.assignment-row strong{display:block;font-size:11px}.material-card span,.assignment-row span{display:block;color:var(--muted);font-size:9px;margin-top:3px}.download-button{display:inline-flex;align-items:center;gap:6px;color:var(--navy);font-size:10px;font-weight:800}.assignment-list{display:grid;gap:9px}.attendance-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.attendance-list{display:grid;gap:7px}.attendance-row{display:grid;grid-template-columns:auto 1fr auto auto;gap:10px;align-items:center;padding:11px 12px;border:1px solid var(--border);border-radius:9px}.attendance-row span strong,.attendance-row span small{display:block}.attendance-row span small{font-size:9px;color:var(--muted);margin-top:2px}.attendance-row input{width:17px;height:17px;accent-color:var(--navy)}.attendance-row b{font-size:9px;min-width:47px;text-align:center}.present{color:var(--success)}.absent{color:var(--danger)}.attention-list{display:grid;gap:11px}.attention-list>div{display:flex;align-items:center;gap:10px}.attention-number{width:33px;height:33px;display:grid;place-items:center;border-radius:8px;color:var(--navy);background:#edf1ff;font-weight:900;font-size:11px}.attention-list strong,.attention-list small{display:block}.attention-list strong{font-size:11px}.attention-list small{color:var(--muted);font-size:9px;margin-top:2px}.notice-list{display:grid;gap:11px}.notice-list>div{border-bottom:1px solid #eef1f5;padding-bottom:11px}.notice-list>div:last-child{border-bottom:0;padding-bottom:0}.notice-list strong,.notice-list small{display:block}.notice-list strong{font-size:11px;margin:7px 0 3px}.notice-list small{color:var(--muted);font-size:9px}.schedule-list{display:grid;gap:7px}.schedule-row{display:grid;grid-template-columns:115px 1fr auto;gap:10px;align-items:center;padding:10px;border:1px solid var(--border);border-radius:8px}.schedule-time{display:flex;align-items:center;gap:5px;color:var(--navy);font-size:9px;font-weight:800}.schedule-row strong,.schedule-row small{display:block}.schedule-row strong{font-size:10px}.schedule-row small{color:var(--muted);font-size:9px;margin-top:2px}.test-card .test-icon{margin-bottom:11px}.test-card p{margin-bottom:15px}.test-card .primary-button{width:100%}.leave-form{max-width:760px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#10182a7a;z-index:100;display:grid;place-items:center;padding:20px}.modal{width:min(500px,100%);background:#fff;border-radius:13px;box-shadow:0 25px 70px #0003}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:17px 19px;border-bottom:1px solid var(--border)}.modal-header h3{margin:0;font-size:16px}.modal-body{padding:19px}.modal-body>.muted{font-size:11px;line-height:1.6;margin-top:0}.modal-body .success-message{margin:0}@media(max-width:1050px){.login-page{grid-template-columns:42% 58%}.login-brand-side{padding-left:5vw;padding-right:5vw}.stat-grid,.quick-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.announcement-grid,.event-grid,.test-grid{grid-template-columns:1fr 1fr}.upload-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:780px){.login-page{display:block}.login-brand-side{min-height:260px;padding:24px}.login-hero{margin-top:34px}.login-hero h1{font-size:36px}.login-hero p,.hero-feature-list,.login-brand-footer{display:none}.login-form-side{padding:18px;min-height:calc(100vh - 260px)}.login-card{padding:24px}.mobile-logo{display:block;margin-bottom:16px}.mobile-logo img{width:55px;height:55px;object-fit:contain}.sidebar{transform:translate(-100%);transition:transform .2s ease;box-shadow:15px 0 40px #0000001f}.sidebar.sidebar-open{transform:translate(0)}.portal-main{margin-left:0;width:100%}.mobile-menu{display:grid;place-items:center;margin-right:11px}.topbar{padding:0 17px}.topbar>div:first-of-type{margin-right:auto}.top-profile span,.top-profile>svg{display:none}.page-content{padding:21px 17px 40px}.page-intro{align-items:flex-start;flex-direction:column}.form-grid,.choice-grid,.course-check-grid,.upload-grid,.announcement-grid,.event-grid,.test-grid{grid-template-columns:1fr}.billing-summary,.attendance-summary{grid-template-columns:repeat(2,1fr)}.form-actions{justify-content:stretch}.form-actions button{flex:1}.table-toolbar{align-items:stretch;flex-direction:column}.search-box{width:100%}.activity-meta{display:none}.quick-grid{grid-template-columns:1fr}}@media(max-width:500px){.login-card{border-radius:12px}.login-form-side{padding:12px}.stat-grid{grid-template-columns:1fr 1fr;gap:9px}.stat-card{padding:12px}.stat-card>strong{font-size:19px}.panel{padding:14px}.panel-heading{margin-bottom:12px}.attendance-header{align-items:stretch;flex-direction:column;gap:8px}.select-wrap.compact{width:100%}.schedule-row{grid-template-columns:1fr}}.form-stack{display:flex;flex-direction:column;gap:16px}.form-stack textarea{width:100%;border:1px solid #d9e0ea;border-radius:10px;padding:11px 12px;font:inherit;resize:vertical;box-sizing:border-box}.form-stack select,.form-stack input[type=text],.form-stack input[type=date],.form-stack input[type=number]{width:100%;box-sizing:border-box}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:4px}.material-actions{display:flex;align-items:center;gap:8px;margin-left:auto}.material-card>div:nth-child(2){min-width:0}.material-card>div:nth-child(2) strong,.material-card>div:nth-child(2) span,.material-card>div:nth-child(2) small{display:block;overflow-wrap:anywhere}.empty-state{min-height:180px;border:1px dashed #d6dde8;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#6b7280;text-align:center;padding:20px}.empty-state strong{color:#172033}.empty-state span{max-width:480px}@media(max-width:700px){.material-actions{margin-left:0;width:100%;justify-content:flex-start}.modal-actions{flex-wrap:wrap}}.assignment-actions{display:flex;align-items:center;gap:6px}.assignment-actions .secondary-button{white-space:nowrap}.status-pill{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;font-size:10px;font-weight:700}.status-pill.active{background:#e8f7ef;color:#167a45}.status-pill.pending{background:#fff4df;color:#9a6400}
