/* TechPro LAN-ready styles */
@import url('https://fonts.googleapis.com/css2?family=Tajawal:wght@400;500;600;700;800&display=swap');
:root{--ui-focus:#1677d2;--ui-focus-ring:rgba(22,119,210,.22);--ui-touch:44px;--ui-motion-fast:160ms;--ui-motion-base:240ms}
:root{--navy:#101c3d;--navy2:#172751;--primary:#5b5ce2;--primary2:#7778ed;--cyan:#27c2d3;--green:#19ad78;--red:#ef596f;--orange:#f6a23b;--bg:#f5f7fb;--text:#17213c;--muted:#7c859d;--line:#e8ebf2;--white:#fff;--shadow:0 8px 28px rgba(27,39,79,.07)}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:'Tajawal',Tahoma,sans-serif;color:var(--text);background:var(--bg)}a{color:var(--primary);text-decoration:none}button,input,select,textarea{font:inherit}.app-shell{display:flex;min-height:100vh}.sidebar{width:255px;background:linear-gradient(180deg,var(--navy),#0d1733);color:#fff;position:fixed;right:0;top:0;bottom:0;z-index:30;padding:22px 15px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:11px;color:#fff;padding:0 9px 23px;border-bottom:1px solid #ffffff12}.brand-mark{width:39px;height:39px;background:linear-gradient(145deg,#7375f3,#5556dd);display:inline-flex;align-items:center;justify-content:center;border-radius:12px;color:#fff;font-weight:800;box-shadow:0 8px 20px #5556dd55}.brand-mark.big{width:58px;height:58px;font-size:20px;border-radius:17px}.brand b{display:block;font-size:16px}.brand small{font-size:9px;letter-spacing:3px;color:#8c98be}.sidebar nav{overflow:auto;flex:1;padding:18px 0}.sidebar nav a{display:flex;color:#9aa5c8;align-items:center;gap:13px;padding:10px 13px;border-radius:9px;margin:2px 0;font-size:14px;transition:.2s}.sidebar nav a i{font-style:normal;width:22px;text-align:center;font-size:17px}.sidebar nav a:hover,.sidebar nav a.active{background:#ffffff12;color:#fff}.sidebar nav a.active{box-shadow:inset -3px 0 0 #7476f2}.sidebar-foot{padding:15px;font-size:12px;color:#8e9abc;border-top:1px solid #ffffff12}.status-dot{display:inline-block;width:7px;height:7px;background:#2bd39a;border-radius:50%;margin-left:6px}.main{margin-right:255px;width:calc(100% - 255px)}.topbar{height:72px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 28px;position:sticky;top:0;z-index:20}.top-search{display:flex;align-items:center;gap:8px;background:#f7f8fc;padding:9px 13px;border-radius:10px;width:310px}.top-search input{border:0;background:transparent;outline:0;width:100%}.top-actions{margin-right:auto;display:flex;align-items:center;gap:10px}.icon-btn{border:0;background:#f5f6fa;border-radius:10px;width:38px;height:38px;cursor:pointer;position:relative}.notify-dot{position:absolute;width:7px;height:7px;background:var(--red);border:2px solid #fff;border-radius:50%;top:6px;left:7px}.user-chip{display:flex;align-items:center;gap:9px;color:var(--text);padding:0 8px}.user-chip b,.user-chip small{display:block}.user-chip small{color:var(--muted);font-size:11px}.avatar{width:38px;height:38px;border-radius:11px;background:#e9e9ff;color:var(--primary);display:inline-flex;align-items:center;justify-content:center;font-weight:700}.avatar.xl{width:65px;height:65px;border-radius:18px;font-size:25px}.page{padding:28px;max-width:1600px;margin:auto}.page-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:23px}.page-head h1{font-size:27px;margin:3px 0}.page-head p,.panel-head p{color:var(--muted);margin:0;font-size:13px}.eyebrow{color:var(--primary);font-size:12px;font-weight:700}.btn{border:0;border-radius:10px;padding:10px 17px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-weight:600}.btn.primary{background:linear-gradient(135deg,var(--primary),#696be8);color:#fff;box-shadow:0 6px 16px #5b5ce233}.btn.ghost{background:#fff;color:var(--text);border:1px solid var(--line)}.btn.block{width:100%}.head-actions{display:flex;gap:9px}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:20px}.stats-grid.four{grid-template-columns:repeat(4,1fr)}.stat-card,.info-card{background:#fff;border:1px solid #eef0f5;border-radius:14px;padding:18px;box-shadow:var(--shadow);display:flex;align-items:center;gap:13px}.stat-icon{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:12px;font-size:20px}.stat-icon.blue{background:#e7f1ff;color:#3484ed}.stat-icon.violet{background:#efebff;color:#775be5}.stat-icon.cyan{background:#e3f9fb;color:#20adbc}.stat-icon.orange{background:#fff2e2;color:#e98a1c}.stat-icon.green{background:#e6f8f1;color:#17a975}.stat-icon.indigo{background:#ededff;color:#5b5ce2}.stat-icon.red{background:#ffeaed;color:#ea5168}.stat-icon.teal{background:#e2f8f5;color:#16a695}.stat-card span,.info-card span{color:var(--muted);font-size:12px;display:block}.stat-card strong{display:block;font-size:22px;margin-top:3px}.panel{background:#fff;border:1px solid #ebedf3;border-radius:15px;padding:20px;margin-bottom:20px;box-shadow:var(--shadow)}.panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:17px}.panel-head h2{font-size:17px;margin:0}.dash-grid{display:grid;grid-template-columns:2fr 1fr;gap:20px}.chart-panel canvas{max-height:260px}.badge{display:inline-flex;padding:4px 9px;border-radius:20px;font-size:11px;font-weight:700}.badge.success{background:#e6f8f0;color:#119a68}.badge.danger{background:#ffeaee;color:#e14860}.badge.warning{background:#fff3df;color:#d47e10}.badge.info{background:#e9edff;color:#5154d2}.badge.muted{background:#eff1f5;color:#757e92}.alert-row{display:flex;align-items:center;gap:11px;padding:11px 0;border-bottom:1px solid var(--line)}.alert-row i{font-style:normal;width:31px;height:31px;border-radius:9px;display:flex;align-items:center;justify-content:center}.alert-row.warning i{background:#fff3df;color:#d47e10}.alert-row.danger i{background:#ffeaee;color:#e14860}.alert-row.info i{background:#e9edff;color:#5154d2}.alert-row b,.alert-row small{display:block}.alert-row small{color:var(--muted)}.capacity-list{display:grid;gap:15px}.capacity-item{display:grid;grid-template-columns:180px 1fr 60px;align-items:center;gap:18px}.capacity-item small{color:var(--muted);display:block}.progress{height:7px;background:#edf0f6;border-radius:20px;overflow:hidden}.progress span{display:block;height:100%;background:linear-gradient(90deg,var(--primary),var(--cyan));border-radius:20px}.table-panel{padding:0;overflow:hidden}.table-tools{padding:16px 18px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.search-box{background:#f6f8fb;border:1px solid var(--line);border-radius:9px;padding:8px 11px;display:flex;gap:7px;width:300px}.search-box input{border:0;background:none;outline:0;width:100%}.muted{color:var(--muted)}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;white-space:nowrap}th{background:#fafbfc;color:#7e879c;font-size:12px;text-align:right;padding:12px 15px}td{padding:13px 15px;border-top:1px solid var(--line);font-size:13px}tr:hover td{background:#fcfcfe}.row-actions{display:flex;gap:5px}.row-actions form{margin:0}.action{border:0;background:#f1f3f8;width:31px;height:31px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text)}.action.edit{color:var(--primary)}.action.delete{color:var(--red)}.capacity-cell{min-width:140px}.capacity-cell .progress{margin:4px 0}.empty{text-align:center;color:var(--muted);padding:40px;display:flex;flex-direction:column;gap:5px}.empty div{font-size:30px}.modal{position:fixed;inset:0;background:#0b1330aa;z-index:100;display:none;align-items:center;justify-content:center;padding:20px}.modal.open{display:flex}.modal-card{background:#fff;width:min(760px,100%);max-height:92vh;overflow:auto;border-radius:17px;box-shadow:0 20px 70px #07102b66}.modal-head{display:flex;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--line)}.modal-head h2{margin:0;font-size:19px}.modal-head p{margin:3px 0 0;color:var(--muted);font-size:12px}.modal-head button{border:0;background:#f3f4f8;width:33px;height:33px;border-radius:8px;font-size:20px;cursor:pointer}.modal-form{padding:22px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}.form-grid label,.filter-bar label,.login-form label,.simple-card label,.install-card label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600}.form-grid label.wide{grid-column:1/-1}label em{color:var(--red)}input,select,textarea{border:1px solid #dfe3ec;border-radius:9px;padding:10px 11px;background:#fff;outline:0;color:var(--text)}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #5b5ce215}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px;padding-top:17px;border-top:1px solid var(--line)}.toast,.alert{padding:12px 15px;border-radius:10px;margin-bottom:16px}.toast.success,.alert.success{background:#e5f8f0;color:#087a51}.toast.danger,.alert.danger{background:#ffeaed;color:#bd3047}.alert.info{background:#e9edff;color:#4044b1}.filter-bar{display:flex;align-items:end;gap:15px}.filter-bar label{min-width:220px}.attendance-row{display:grid;grid-template-columns:45px 1fr auto;align-items:center;padding:11px 0;border-top:1px solid var(--line)}.segment{display:flex;background:#f3f5f8;border-radius:9px;padding:3px}.segment input{display:none}.segment span{display:block;padding:7px 11px;border-radius:7px;cursor:pointer;font-size:12px}.segment input:checked+span.present{background:#dff7ed;color:#078b5c}.segment input:checked+span.absent{background:#ffe3e8;color:#d63a51}.segment input:checked+span.late{background:#fff0d7;color:#c97308}.panel-footer{text-align:left;padding-top:17px;border-top:1px solid var(--line)}.sticky-save{position:sticky;bottom:15px;text-align:left}.settings-section{padding:24px}.timeline-item{display:grid;grid-template-columns:14px 1fr auto;gap:11px;padding:13px 0;border-bottom:1px solid var(--line);align-items:start}.timeline-dot{width:9px;height:9px;background:var(--primary);border-radius:50%;margin-top:6px}.timeline-item small{display:block;color:var(--muted);margin-top:4px}.profile-hero,.profile-panel{display:flex;align-items:center;gap:16px}.profile-hero .badge{margin-right:auto}.info-card{display:block}.info-card b{display:block;margin-top:6px}.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.group-card{background:#fff;padding:20px;border-radius:14px;box-shadow:var(--shadow)}.group-meta{display:flex;justify-content:space-between;color:var(--muted);font-size:12px;border-top:1px solid var(--line);padding-top:12px}.auth-body{background:linear-gradient(135deg,#f5f6fb,#ebeefe);display:flex;align-items:center;justify-content:center;padding:25px}.auth-shell{width:min(950px,100%)}.login-card{display:grid;grid-template-columns:1fr 1fr;background:#fff;border-radius:24px;overflow:hidden;box-shadow:0 25px 70px #1d2a5d22;min-height:560px}.login-side{background:linear-gradient(145deg,#111d40,#283b76);color:#fff;padding:60px;position:relative;overflow:hidden}.login-side h1{font-size:29px;margin-bottom:5px}.login-side p{color:#aeb8d7}.login-art span{position:absolute;border:1px solid #ffffff15;border-radius:50%}.login-art span:nth-child(1){width:320px;height:320px;left:-120px;bottom:-110px}.login-art span:nth-child(2){width:220px;height:220px;left:50px;bottom:0}.login-art span:nth-child(3){width:100px;height:100px;left:120px;bottom:85px;background:#6265e533}.login-form{padding:65px 55px;display:flex;flex-direction:column;justify-content:center}.login-form h2{font-size:28px;margin:0}.login-form form{display:grid;gap:16px;margin-top:25px}.login-form small{color:var(--muted);text-align:center;margin-top:25px}.form-row{text-align:left;font-size:12px}.simple-card,.install-card{background:#fff;padding:40px;border-radius:18px;box-shadow:var(--shadow);width:min(500px,100%);margin:auto}.simple-card form,.install-card form{display:grid;gap:14px}.back-link{display:block;text-align:center;margin-top:17px}.print-page{background:#fff;padding:35px}.print-doc{max-width:750px;margin:auto;border:1px solid #ccd1df;padding:40px}.print-doc header{display:flex;align-items:center;gap:14px;border-bottom:2px solid var(--primary);padding-bottom:20px}.print-doc header b{margin-right:auto}.doc-title{text-align:center;font-size:28px;font-weight:800;margin:30px}.print-doc dl{display:grid;grid-template-columns:160px 1fr}.print-doc dt,.print-doc dd{padding:12px;border-bottom:1px solid var(--line)}.print-doc footer{text-align:center;margin:30px}.certificate{max-width:1000px;margin:auto;text-align:center;border:12px solid var(--navy);padding:10px}.cert-border{border:3px solid var(--primary);padding:60px}.certificate h1{font-size:44px;color:var(--navy)}.certificate h2{font-size:38px;color:var(--primary);border-bottom:1px solid #aaa;display:inline-block}.certificate h3{font-size:28px}.cert-foot{display:flex;justify-content:space-between;margin-top:60px}.menu-toggle{display:none}.overlay{display:none}
@media(max-width:1100px){.stats-grid{grid-template-columns:repeat(2,1fr)}.dash-grid{grid-template-columns:1fr}.sidebar{transform:translateX(100%);transition:.25s}.sidebar.open{transform:none}.main{margin-right:0;width:100%}.menu-toggle{display:block}.overlay.show{display:block;position:fixed;inset:0;background:#08102a88;z-index:25}}
@media(max-width:700px){.page{padding:17px}.topbar{padding:0 14px}.top-search{display:none}.user-chip span:not(.avatar){display:none}.page-head{align-items:flex-start;gap:14px}.page-head,.head-actions{flex-wrap:wrap}.stats-grid,.stats-grid.four,.card-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.capacity-item{grid-template-columns:110px 1fr}.capacity-item>.badge{display:none}.filter-bar{display:grid}.attendance-row{grid-template-columns:40px 1fr}.segment{grid-column:1/-1;margin-top:8px}.login-card{grid-template-columns:1fr}.login-side{display:none}.login-form{padding:40px 28px}.table-tools{align-items:flex-start;gap:10px;flex-direction:column}.search-box{width:100%}}
.receipt-actions{max-width:820px;margin:0 auto 18px;display:flex;justify-content:flex-end;gap:9px}.payment-receipt{position:relative;max-width:820px;min-height:1040px;margin:auto;background:#fff;border:1px solid #dfe4ef;padding:52px 58px 35px;overflow:hidden;box-shadow:0 18px 55px #14224a18}.receipt-accent{position:absolute;top:0;right:0;left:0;height:10px;background:linear-gradient(90deg,#5b5ce2,#27c2d3)}.receipt-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:24px;border-bottom:1px solid #dfe4ef}.receipt-brand{display:flex;align-items:center;gap:15px}.receipt-brand h1{margin:0;color:#101c3d;font-size:25px}.receipt-brand p{margin:3px 0 0;color:#7c859d;font-size:11px}.receipt-logo{width:68px;height:68px;object-fit:contain}.receipt-logo-fallback{width:68px;height:68px;border-radius:18px;background:linear-gradient(145deg,#172751,#5b5ce2);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 9px 22px #5b5ce238}.receipt-logo-fallback b{font-size:24px;line-height:1}.receipt-logo-fallback span{font-size:7px;letter-spacing:2px;margin-top:5px}.receipt-number{text-align:left}.receipt-number span,.receipt-number strong{display:block}.receipt-number span{color:#7c859d;font-size:11px}.receipt-number strong{color:#5b5ce2;font-size:17px;margin-top:5px;direction:ltr}.receipt-contact{display:flex;justify-content:center;gap:20px;flex-wrap:wrap;padding:13px;background:#f7f8fc;color:#68738c;font-size:11px;border-radius:0 0 12px 12px}.receipt-title{text-align:center;margin:36px 0 27px}.receipt-title span{font-size:10px;letter-spacing:5px;color:#27aabb}.receipt-title h2{font-size:31px;color:#101c3d;margin:4px 0}.receipt-title p{font-size:11px;color:#8a93a8;margin:0}.receipt-student{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px;margin-bottom:18px}.receipt-student>div{background:#f8f9fc;border:1px solid #ebedf3;border-radius:11px;padding:14px}.receipt-student small,.receipt-student strong{display:block}.receipt-student small{color:#858ea3;font-size:10px;margin-bottom:6px}.receipt-student strong{font-size:13px;color:#17213c}.receipt-payment{border:1px solid #e2e5ee;border-radius:15px;overflow:hidden}.receipt-amount{background:linear-gradient(135deg,#111d40,#273a73);color:#fff;text-align:center;padding:24px}.receipt-amount small{display:block;color:#b9c4e5;font-size:11px}.receipt-amount strong{display:block;font-size:36px;margin-top:5px}.receipt-amount em{font-size:14px;font-style:normal;color:#65d4df}.receipt-payment dl{margin:0;padding:7px 22px 15px}.receipt-payment dl>div{display:grid;grid-template-columns:150px 1fr;padding:12px 0;border-bottom:1px dashed #dfe3ec}.receipt-payment dl>div:last-child{border:0}.receipt-payment dt{color:#7c859d;font-size:12px}.receipt-payment dd{margin:0;font-weight:700;font-size:13px}.receipt-status{color:#118d63;background:#e7f8f1;border-radius:20px;padding:4px 10px}.receipt-note{margin-top:16px;padding:13px 16px;background:#fff8e8;border-right:4px solid #f6a23b;border-radius:8px;font-size:12px}.receipt-footer{display:flex;align-items:flex-end;justify-content:space-between;margin-top:55px}.receipt-thanks b,.receipt-thanks span{display:block}.receipt-thanks b{color:#172751;font-size:13px}.receipt-thanks span{color:#8a93a8;font-size:10px;margin-top:5px}.receipt-signature{width:185px;text-align:center;border-top:1px solid #8f98aa;padding-top:8px;color:#7c859d;font-size:10px}.receipt-meta{position:absolute;right:58px;left:58px;bottom:24px;display:flex;justify-content:space-between;border-top:1px solid #edf0f5;padding-top:10px;color:#9aa2b4;font-size:9px;direction:ltr}@page{size:A4;margin:10mm}@media(max-width:700px){.print-page{padding:10px}.payment-receipt{padding:30px 20px;min-height:auto}.receipt-header,.receipt-footer{align-items:flex-start;gap:18px}.receipt-student{grid-template-columns:1fr}.receipt-contact{gap:8px}.receipt-meta{position:static;margin-top:35px}.receipt-payment dl>div{grid-template-columns:110px 1fr}}
@media print{.sidebar,.topbar,.page-head .btn,.no-print{display:none!important}.main{margin:0;width:100%}.page{padding:0}.panel{box-shadow:none}.print-page{padding:0}.payment-receipt{box-shadow:none;border:0;min-height:277mm;max-width:none}.receipt-accent{-webkit-print-color-adjust:exact;print-color-adjust:exact}.receipt-amount,.receipt-logo-fallback,.receipt-contact,.receipt-student>div,.receipt-status{-webkit-print-color-adjust:exact;print-color-adjust:exact}}

/* A5 branded payment receipt */
.payment-receipt{max-width:560px;min-height:790px;padding:28px 32px 24px;border-radius:5px;border-color:#d9dee9}.receipt-accent{height:7px;background:linear-gradient(90deg,#061c49 0 62%,#ff6900 62%)}.receipt-header{padding-bottom:13px}.receipt-brand{gap:11px}.receipt-logo{width:78px;height:66px}.receipt-brand h1{font-size:19px}.receipt-brand p{font-size:9px}.receipt-number span{font-size:9px}.receipt-number strong{font-size:13px;color:#ff6900}.receipt-contact{padding:8px 10px;gap:7px 14px;font-size:8.5px;line-height:1.45;background:#f6f8fc}.receipt-title{margin:17px 0 14px}.receipt-title span{font-size:8px;color:#ff6900}.receipt-title h2{font-size:24px;margin:2px 0}.receipt-title p{font-size:9px}.receipt-student{gap:7px;margin-bottom:10px}.receipt-student>div{padding:9px}.receipt-student small{font-size:8px;margin-bottom:3px}.receipt-student strong{font-size:10px}.receipt-amount{padding:13px;background:linear-gradient(135deg,#061c49,#123c76)}.receipt-amount small{font-size:9px}.receipt-amount strong{font-size:27px;margin-top:2px}.receipt-amount em{color:#ff8a27;font-size:12px}.receipt-payment dl{padding:3px 16px 7px}.receipt-payment dl>div{grid-template-columns:105px 1fr;padding:7px 0}.receipt-payment dt{font-size:9px}.receipt-payment dd{font-size:10px}.receipt-status{padding:3px 8px}.receipt-note{margin-top:9px;padding:8px 11px;font-size:9px}.receipt-footer{margin-top:27px}.receipt-thanks b{font-size:10px}.receipt-thanks span,.receipt-signature{font-size:8px}.receipt-signature{width:140px}.receipt-meta{right:32px;left:32px;bottom:16px;font-size:7px}.receipt-actions{max-width:560px}
@page{size:A5 portrait;margin:6mm}
@media print{html,body{width:148mm;height:210mm}.print-page{padding:0;background:#fff}.payment-receipt{width:136mm;max-width:136mm;min-height:198mm;height:198mm;padding:7mm 8mm 6mm;box-shadow:none;border:0;border-radius:0}.receipt-meta{right:8mm;left:8mm;bottom:4mm}.receipt-accent,.receipt-amount,.receipt-contact,.receipt-student>div,.receipt-status{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}}

/* Refined A5 receipt layout */
.payment-receipt:before{content:"";position:absolute;width:170px;height:170px;border:32px solid #ff690008;border-radius:50%;left:-105px;top:145px;pointer-events:none}.receipt-header{position:relative}.receipt-header:after{content:"";position:absolute;bottom:-1px;right:0;width:92px;height:3px;background:#ff6900;border-radius:5px}.receipt-logo{width:92px;height:76px;border-radius:8px}.receipt-brand h1{font-size:18px;letter-spacing:.2px}.receipt-brand p{color:#ff6900;font-weight:700}.receipt-number{background:#f6f8fc;border:1px solid #e3e7ef;border-radius:9px;padding:8px 10px}.receipt-contact{justify-content:flex-start;text-align:right;border-bottom:1px solid #e7eaf1;border-radius:0;min-height:31px}.receipt-title{position:relative}.receipt-title:after{content:"";display:block;width:38px;height:3px;margin:8px auto 0;border-radius:4px;background:#ff6900}.receipt-title h2{letter-spacing:.3px}.receipt-section-title{display:flex;align-items:center;gap:7px;margin:8px 0 6px;color:#071c48;font-size:10px}.receipt-section-title:after{content:"";height:1px;background:#e7eaf1;flex:1}.receipt-section-title span{width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;background:#071c48;color:#fff;font-size:8px;direction:ltr}.receipt-student{grid-template-columns:1.45fr 1fr 1fr}.receipt-student>div{background:#fff;border-color:#e1e5ed;border-top:3px solid #ff6900}.receipt-student .student-name{border-top-color:#071c48}.receipt-payment{border:0;box-shadow:0 0 0 1px #dfe4ec}.receipt-amount{position:relative}.receipt-amount:after{content:"PAID";position:absolute;left:16px;top:50%;transform:translateY(-50%);font-size:27px;font-weight:900;letter-spacing:4px;color:#ffffff0d;direction:ltr}.receipt-balance{display:grid;grid-template-columns:repeat(3,1fr);margin-top:8px;border:1px solid #e0e4ec;border-radius:10px;overflow:hidden}.receipt-balance div{padding:8px 10px;text-align:center;border-left:1px solid #e6e9f0;background:#fff}.receipt-balance div:last-child{border-left:0}.receipt-balance small,.receipt-balance b{display:block}.receipt-balance small{font-size:8px;color:#7c859d;margin-bottom:3px}.receipt-balance b{font-size:10px;color:#071c48;direction:ltr}.receipt-balance .remaining{background:#fff5ed}.receipt-balance .remaining b{color:#df5900}.receipt-note{border-right-color:#ff6900;background:#fff7f0}.receipt-footer{border-top:1px dashed #d9dde6;padding-top:13px}.receipt-signature{position:relative;border-top:0;padding-top:32px}.receipt-signature:before{content:"";position:absolute;top:26px;right:0;left:0;border-top:1px solid #8f98aa}.receipt-meta{direction:rtl}.receipt-meta span:last-child{direction:ltr}
@media print{.payment-receipt:before,.receipt-header:after,.receipt-title:after,.receipt-section-title span,.receipt-amount,.receipt-balance .remaining{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}}

/* Receipt typography and Arabic alignment */
.payment-receipt{direction:rtl;text-align:right;line-height:1.45}.receipt-brand,.receipt-header,.receipt-student,.receipt-payment dl>div,.receipt-balance,.receipt-footer{direction:rtl}.receipt-contact{display:grid;grid-template-columns:1fr auto;align-items:center}.receipt-contact .contact-address{grid-column:1/-1;font-weight:600;color:#38445e}.receipt-contact b{color:#071c48}.receipt-title{text-align:center}.receipt-section-title b{font-size:10.5px}.receipt-student small,.receipt-balance small{line-height:1.4}.receipt-student strong{line-height:1.5;word-break:break-word}.receipt-payment dt{font-weight:600}.receipt-payment dd{text-align:right}.receipt-amount{text-align:center}.receipt-amount em{font-size:10px;font-weight:700}.receipt-note{display:flex;align-items:flex-start;gap:6px}.receipt-note b{white-space:nowrap}.receipt-note span{line-height:1.6}.receipt-thanks{line-height:1.55}.receipt-meta{direction:rtl;text-align:right}
.receipt-student [dir="ltr"],.receipt-number strong{unicode-bidi:isolate;letter-spacing:.25px;font-variant-numeric:tabular-nums}
.receipt-contact>span{display:flex;align-items:flex-start;gap:6px}.receipt-contact-icon{width:17px;height:17px;min-width:17px;display:inline-flex;align-items:center;justify-content:center;border-radius:5px;background:#fff0e6;color:#f26500}.receipt-contact-icon svg{width:11px;height:11px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.receipt-contact strong{font-weight:700;color:#071c48}.receipt-contact .contact-address>b,.receipt-contact span>b{font-weight:700;color:#071c48}
.multi-check-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:3px}.multi-check-grid span{display:flex;align-items:center;gap:7px;border:1px solid #dfe3ec;border-radius:9px;padding:9px 10px;background:#fff;cursor:pointer}.multi-check-grid input{width:17px;height:17px;accent-color:var(--primary);padding:0}.multi-check-grid b{font-size:12px;font-weight:600}@media(max-width:650px){.multi-check-grid{grid-template-columns:repeat(2,1fr)}}
.wa-card-actions form{margin:0}.wa-card-actions .action.delete{background:#ffeaee;color:#d93b53}.wa-card-actions .action.delete:hover{background:#ef596f;color:#fff}
@media print{.receipt-contact-icon{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}}

/* Keep every payment receipt on exactly one A5 sheet */
@page{size:A5 portrait;margin:0}
@media print{
  html,body{width:148mm!important;height:210mm!important;min-height:210mm!important;margin:0!important;padding:0!important;overflow:hidden!important;background:#fff}
  .print-page{width:148mm!important;height:210mm!important;margin:0!important;padding:0!important;overflow:hidden!important}
  .payment-receipt{box-sizing:border-box!important;width:148mm!important;max-width:148mm!important;height:210mm!important;min-height:210mm!important;max-height:210mm!important;margin:0!important;padding:6mm 8mm 5mm!important;border:0!important;border-radius:0!important;box-shadow:none!important;overflow:hidden!important;break-inside:avoid!important;page-break-inside:avoid!important;page-break-after:avoid!important}
  .receipt-header{padding-bottom:2.5mm}.receipt-logo{width:22mm;height:17mm}.receipt-contact{padding:1.5mm 2mm;line-height:1.25}.receipt-title{margin:2.5mm 0 2mm}.receipt-title:after{margin-top:1mm}.receipt-section-title{margin:1.4mm 0 1mm}.receipt-student{margin-bottom:1.5mm}.receipt-student>div{padding:1.8mm}.receipt-amount{padding:2.4mm}.receipt-payment dl>div{padding:1.35mm 0}.receipt-balance{margin-top:1.5mm}.receipt-balance div{padding:1.6mm 1.5mm}.receipt-note{margin-top:1.5mm;padding:1.5mm 2mm}.receipt-footer{margin-top:3mm;padding-top:2mm}.receipt-meta{right:8mm;left:8mm;bottom:3mm;padding-top:1.5mm}
  .payment-receipt,.payment-receipt *{orphans:2;widows:2}
}

/* Full-page A5 timetable print theme */
@media print{
  html.calendar-printing,
  html.calendar-printing body.calendar-printing{width:210mm!important;height:148mm!important;min-height:148mm!important;overflow:hidden!important}
  body.calendar-printing .main,
  body.calendar-printing .page{width:200mm!important;max-width:200mm!important;height:138mm!important;margin:0!important;padding:0!important;overflow:hidden!important}
  .calendar-printing .compact-calendar{box-sizing:border-box!important;width:200mm!important;max-width:200mm!important;height:138mm!important;margin:0!important;padding:0!important;border:0!important;overflow:hidden!important}
  .calendar-printing .compact-calendar{position:relative!important;background:#fff!important}
  .calendar-printing .compact-calendar:after{content:"TECH PRO";position:absolute;left:-8mm;bottom:24mm;z-index:0;color:#071c4808;font-size:38pt;font-weight:900;letter-spacing:2mm;transform:rotate(-12deg);pointer-events:none}
  .calendar-printing .calendar-print-header{position:relative;z-index:1;margin-bottom:1.5mm!important;padding:2mm 3mm 0;background:linear-gradient(120deg,#071c48 0 74%,#ff6900 74%)!important;color:#fff!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  .calendar-printing .calendar-print-brand{border-bottom:1px solid #ffffff38!important}
  .calendar-printing .calendar-print-brand h1{color:#fff!important}.calendar-printing .calendar-print-brand p{color:#c7d2eb!important}
  .calendar-printing .calendar-print-contact{margin:0 -3mm;padding:1mm 3mm!important;background:#ffffff12!important;border:0!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  .calendar-printing .calendar-print-title{margin:0 -3mm!important;padding:1.3mm 3mm;text-align:center;background:#fff!important;color:#071c48!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  .calendar-printing .calendar-print-title h2{display:inline;margin:0 3mm 0 0!important}.calendar-printing .calendar-print-title small{display:inline-block;white-space:nowrap!important;overflow-wrap:normal}
  .calendar-printing .calendar-print-table{position:relative;z-index:1;height:99mm!important;max-height:99mm!important;margin-top:2mm!important}
  .calendar-printing .calendar-print-table table{width:100%!important;max-width:100%!important;height:99mm!important;table-layout:fixed!important;white-space:normal!important;border-collapse:separate!important;border-spacing:.7mm!important;background:#eef1f6!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  .calendar-printing .calendar-print-table th{border:0!important}
  .calendar-printing .calendar-print-table thead th:first-child,
  .calendar-printing .calendar-print-table tbody th{width:18mm!important;white-space:normal!important;overflow-wrap:anywhere!important}
  .calendar-printing .calendar-print-table thead th{height:9mm;border-radius:1.5mm}.calendar-printing .calendar-print-table thead th:nth-child(even){background:#123c76!important}.calendar-printing .calendar-print-table thead th:nth-child(4n){background:#ff6900!important}
  .calendar-printing .calendar-print-table tbody th{background:#fff!important;color:#071c48!important;border-right:1.2mm solid #ff6900!important;border-radius:1.5mm}
  .calendar-printing .calendar-print-table td{height:auto!important;min-width:0!important;padding:.8mm!important;border:0!important;border-radius:1.5mm;background:#fff!important;vertical-align:middle!important;font-size:5.2pt!important;white-space:normal!important;overflow:hidden!important;overflow-wrap:anywhere!important;word-break:break-word!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  .calendar-printing .calendar-print-table tbody tr:nth-child(even) td{background:#f9faff!important}
  .calendar-printing .print-session{max-width:100%!important;margin:0 auto .7mm!important;padding:1.2mm .7mm!important;border-right:1mm solid #5b5ce2;border-radius:1.2mm!important;background:linear-gradient(135deg,#eef0ff,#e4f7fb)!important;color:#17213c!important;box-shadow:0 .5mm 1.5mm #17213c12;overflow:hidden!important;overflow-wrap:anywhere!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  .calendar-printing .print-session span{display:block!important;max-width:100%!important;white-space:normal!important;overflow-wrap:anywhere!important}
  .calendar-printing .print-session span:first-child{font-weight:900!important;color:#071c48!important}.calendar-printing .print-session span:nth-child(2){margin:.3mm 0;font-weight:800!important;color:#ff6900!important}.calendar-printing .print-session span:nth-child(n+3){color:#5f687d!important;font-size:4.8pt!important}
}

/* Larger, more readable A5 receipt */
.payment-receipt{font-size:11.5px}.receipt-brand h1{font-size:21px}.receipt-brand p{font-size:10px}.receipt-logo{width:102px;height:82px}.receipt-number span{font-size:10px}.receipt-number strong{font-size:15px}.receipt-contact{font-size:9.5px}.receipt-contact-icon{width:19px;height:19px;min-width:19px}.receipt-contact-icon svg{width:12px;height:12px}.receipt-title h2{font-size:27px}.receipt-title span{font-size:9px}.receipt-title p{font-size:10px}.receipt-section-title b{font-size:12px}.receipt-section-title span{width:22px;height:22px;font-size:9px}.receipt-student small{font-size:9px}.receipt-student strong{font-size:11.5px}.receipt-amount small{font-size:10px}.receipt-amount strong{font-size:31px}.receipt-amount em{font-size:11px}.receipt-payment dt{font-size:10px}.receipt-payment dd{font-size:11px}.receipt-balance small{font-size:9px}.receipt-balance b{font-size:11px}.receipt-note{font-size:10px}.receipt-thanks b{font-size:11px}.receipt-thanks span,.receipt-signature{font-size:9px}.receipt-meta{font-size:8px}
@media print{.payment-receipt{font-size:10.5px}.receipt-logo{width:24mm;height:18mm}.receipt-brand h1{font-size:19px}.receipt-title h2{font-size:25px}.receipt-amount strong{font-size:29px}.receipt-footer{margin-top:2.5mm}}
.receipt-section-title b{font-size:14px}.receipt-student small{font-size:10px;font-weight:600}.receipt-student strong{font-size:13px}.receipt-student>div{min-height:58px;display:flex;flex-direction:column;justify-content:center}
@media print{.receipt-section-title b{font-size:12.5px}.receipt-student small{font-size:9.5px}.receipt-student strong{font-size:12px}.receipt-student>div{min-height:13mm}}

/* Dynamic Tech Pro Academy certificate */
.certificate-actions{width:min(820px,100%);margin:0 auto 16px;display:flex;justify-content:flex-end;gap:8px}.certificate-template{page:certificatePage;position:relative;width:794px;min-height:1123px;margin:auto;background:#f1dda0;color:#171d36;padding:26px;overflow:hidden;box-shadow:0 20px 55px #111a3630}.certificate-template:before{content:"";position:absolute;inset:18px;border:2px solid #fff9df}.certificate-template:after{content:"TP";position:absolute;left:50%;top:47%;transform:translate(-50%,-50%);font-size:300px;font-weight:900;color:#d9b94b20;z-index:0}.certificate-inner{position:relative;z-index:1;min-height:1071px;border:2px solid #0c214f;padding:30px 55px 24px;text-align:center}.certificate-ribbon{position:absolute;top:0;left:52px;width:94px;height:670px;z-index:2}.certificate-ribbon i,.certificate-ribbon b{position:absolute;top:0;width:27px;height:100%;clip-path:polygon(0 0,100% 0,100% 94%,50% 100%,0 94%)}.certificate-ribbon i{left:0;background:#f25b20}.certificate-ribbon b{right:0;background:#0a2454}.certificate-brand{position:absolute;top:35px;left:31px;width:165px;text-align:center}.certificate-brand img{width:125px;height:125px;object-fit:contain}.certificate-brand div{display:none}.certificate-template h1{font-family:Georgia,serif;font-size:66px;letter-spacing:7px;margin:18px 0 4px;color:#0a214e;text-shadow:2px 2px 0 #fff0bd}.certificate-stars{font-size:28px;color:#e3bd3f;margin:8px 0 25px}.certificate-intro{font-size:18px;font-style:italic;margin:0}.certificate-template h2{font-family:Georgia,serif;font-size:44px;color:#1e2b5a;margin:14px 0 6px;text-transform:uppercase;border:0}.certificate-follow{font-size:19px;font-style:italic;margin:0}.certificate-template h3{font-size:29px;margin:12px auto 17px;max-width:570px;color:#111;font-style:italic}.certificate-emblem{width:120px;height:120px;margin:0 auto -102px;border:10px double #d8b74255;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:50px;font-weight:900;color:#d8b74244}.certificate-statement{font-size:16px;font-weight:600;font-style:italic;line-height:1.8;max-width:570px;margin:25px auto 20px}.certificate-details{text-align:left;width:72%;margin:0 auto;font-size:16px;font-style:italic;line-height:1.5}.certificate-details p{margin:7px 0}.certificate-signature{margin:27px auto 0;width:310px;display:flex;flex-direction:column;gap:5px;font-style:italic}.certificate-signature span{border-bottom:2px solid #10182f;padding-bottom:5px;font-size:18px}.certificate-signature b{font-size:18px}.certificate-bottom{position:absolute;right:25px;left:25px;bottom:17px;border-top:2px solid #e56025;padding-top:8px;display:flex;justify-content:space-between;gap:15px;font-size:10px;font-weight:700}.certificate-bottom span{direction:rtl}.print-certificate{background:#f2f2f2}.print-certificate .certificate-template{margin:20px auto}
@page certificatePage{size:A4 portrait;margin:0}
@media print{.print-certificate{width:210mm!important;height:297mm!important;min-height:297mm!important;overflow:hidden!important}.print-certificate .certificate-template{width:210mm!important;height:297mm!important;min-height:297mm!important;margin:0!important;padding:6mm!important;box-shadow:none!important;break-inside:avoid!important;page-break-inside:avoid!important}.print-certificate .certificate-inner{height:285mm!important;min-height:285mm!important;padding:8mm 14mm 6mm!important}.certificate-template,.certificate-template *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}}
.certificate-brand{z-index:4}
.brand-logo-img{width:46px;height:46px;object-fit:contain;background:#fff;border-radius:12px;padding:3px;box-shadow:0 7px 18px #0003}.auth-logo-img{width:150px;height:150px;object-fit:contain;background:#fff;border-radius:24px;padding:7px;box-shadow:0 15px 35px #07102b45}.register-brand .auth-logo-img{margin:0 auto 18px}.login-side .auth-logo-img{display:block;margin-bottom:20px}
.avatar.user-photo{overflow:hidden;padding:0}.avatar.user-photo img{width:100%;height:100%;object-fit:cover}.user-profile-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:20px}.profile-avatar-large{width:120px;height:120px;border-radius:25px;overflow:hidden;background:linear-gradient(145deg,#e8e9ff,#f5f6ff);display:flex;align-items:center;justify-content:center;color:var(--primary);font-size:44px;font-weight:800;box-shadow:0 10px 25px #17213c16}.profile-avatar-large img{width:100%;height:100%;object-fit:cover}.profile-user-info h2{margin:0 0 4px}.profile-user-info p{margin:0 0 10px;color:var(--muted)}.avatar-upload-form{display:grid;grid-template-columns:1fr 1fr;gap:8px;min-width:260px}.avatar-upload-form small{grid-column:1/-1;color:var(--muted);font-size:10px}@media(max-width:750px){.user-profile-card{grid-template-columns:1fr;text-align:center}.profile-avatar-large{margin:auto}.avatar-upload-form{min-width:0}}
.student-link{display:inline-flex;align-items:center;gap:9px;color:var(--text)}.student-link:hover{color:var(--primary)}.student-link img{width:38px;height:38px;border-radius:11px;object-fit:cover}.student-profile-hero{display:flex;align-items:center;gap:22px;background:linear-gradient(135deg,#fff,#f4f3ff)}.student-photo{width:125px;height:125px;border-radius:24px;background:#e8e9ff;overflow:hidden;display:flex;align-items:center;justify-content:center;color:var(--primary);font-size:46px;font-weight:800;box-shadow:0 10px 30px #3436a51c}.student-photo img{width:100%;height:100%;object-fit:cover}.student-identity h2{font-size:27px;margin:10px 0 3px}.student-identity p{color:var(--muted);margin:0}.identity-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:17px}.identity-tags span{background:#fff;border:1px solid var(--line);padding:7px 11px;border-radius:9px;font-size:12px}.profile-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:20px}.details-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin:0}.details-grid div{padding-bottom:12px;border-bottom:1px solid var(--line)}.details-grid dt{color:var(--muted);font-size:12px}.details-grid dd{margin:5px 0 0;font-weight:600}.document-grid{display:grid;gap:9px}.document-card{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:11px;padding:12px;color:var(--text)}.document-card i{font-style:normal;font-size:24px;color:var(--primary)}.document-card span{flex:1}.document-card b,.document-card small{display:block}.document-card small{color:var(--muted)}.document-card em{font-style:normal;color:var(--primary);font-size:12px}.mini-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;text-align:center}.mini-stats div{padding:13px 5px;border-radius:10px}.mini-stats strong,.mini-stats span{display:block}.mini-stats .green{background:#e6f8f0;color:#119a68}.mini-stats .red{background:#ffeaee;color:#e14860}.mini-stats .orange{background:#fff3df;color:#d47e10}.payment-summary strong{font-size:25px;display:block;margin:5px 0 12px}.payment-summary small{color:var(--muted);display:block;margin-top:7px}.payment-line{display:grid;grid-template-columns:1fr auto auto;gap:10px;padding:10px 0;border-top:1px solid var(--line);font-size:12px;margin-top:10px}@media(max-width:850px){.profile-layout{grid-template-columns:1fr}.student-profile-hero{align-items:flex-start}.student-photo{width:90px;height:90px}.details-grid{grid-template-columns:1fr}}
.enrolled-link{display:inline-flex;align-items:center;gap:7px;background:#eeefff;color:var(--primary);padding:5px 9px;border-radius:8px}.enrolled-link span{font-size:11px}.group-progress{height:11px}.btn.small{padding:6px 10px;font-size:11px}
.group-schedule-print-head,.group-schedule-print-footer{display:none}.group-schedule-meta{display:flex;gap:18px;color:var(--muted);font-size:12px}.group-schedule-table td,.group-schedule-table th{text-align:center}.group-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.group-detail-grid .panel{min-width:0}@media(max-width:900px){.group-detail-grid{grid-template-columns:1fr}.group-schedule-meta{align-items:flex-end;flex-direction:column;gap:3px}}
.financial-stats{grid-template-columns:repeat(3,1fr)}.financial-report-grid{display:grid;grid-template-columns:1fr 1.35fr;gap:20px}.financial-report-grid .panel{min-width:0}.money-income,.net-positive{color:#087a51}.money-expense,.net-negative{color:#c83f55}@media(max-width:950px){.financial-stats,.financial-report-grid{grid-template-columns:1fr}}
@media print{
  html:has(body.group-schedule-printing),body.group-schedule-printing{width:277mm!important;height:190mm!important;min-height:0!important;max-height:190mm!important;margin:0!important;padding:0!important;overflow:hidden!important;background:#fff!important}
  body.group-schedule-printing .sidebar,body.group-schedule-printing .topbar,body.group-schedule-printing .page>*{display:none!important}
  body.group-schedule-printing .app-shell,body.group-schedule-printing .main,body.group-schedule-printing .page{display:block!important;width:277mm!important;height:190mm!important;min-height:0!important;max-width:277mm!important;max-height:190mm!important;margin:0!important;padding:0!important;overflow:hidden!important}
  body.group-schedule-printing .page>.group-schedule-panel{display:block!important;box-sizing:border-box!important;width:277mm!important;height:auto!important;max-height:190mm!important;margin:0!important;padding:8mm!important;border:0!important;border-radius:0!important;box-shadow:none!important;overflow:hidden!important;break-inside:avoid!important;page-break-inside:avoid!important;page-break-after:avoid!important}
  body.group-schedule-printing .group-schedule-print-head{display:flex!important;align-items:center;gap:5mm;padding-bottom:4mm;border-bottom:1mm solid #5b5ce2}
  body.group-schedule-printing .group-schedule-print-head img{width:28mm;height:18mm;object-fit:contain}
  body.group-schedule-printing .group-schedule-print-head h1{margin:0;color:#101c3d;font-size:22pt}body.group-schedule-printing .group-schedule-print-head p{margin:1mm 0 0;color:#68738c;font-size:9pt}
  body.group-schedule-printing .group-schedule-panel .panel-head{margin:6mm 0 4mm}body.group-schedule-printing .group-schedule-panel .panel-head h2{font-size:20pt}body.group-schedule-printing .group-schedule-panel .panel-head p{font-size:11pt}
  body.group-schedule-printing .group-schedule-meta{font-size:10pt}
  body.group-schedule-printing .table-scroll{overflow:visible!important}
  body.group-schedule-printing .group-schedule-table{width:100%!important;table-layout:fixed!important;white-space:normal!important;border-collapse:collapse!important}
  body.group-schedule-printing .group-schedule-table th{padding:4mm 2mm!important;background:#101c3d!important;color:#fff!important;border:1px solid #101c3d!important;font-size:12pt!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  body.group-schedule-printing .group-schedule-table td{padding:4mm 2mm!important;border:1px solid #ccd3e0!important;font-size:12pt!important}
  body.group-schedule-printing .group-schedule-table tbody tr:nth-child(even) td{background:#f3f5fa!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  body.group-schedule-printing .group-schedule-print-footer{display:block!important;margin-top:5mm;padding-top:3mm;border-top:1px solid #dfe3ec;text-align:center;color:#68738c;font-size:9pt;white-space:nowrap}
}
.password-notice{position:fixed;left:22px;bottom:22px;z-index:90;display:flex;align-items:center;flex-wrap:wrap;gap:5px 10px;direction:rtl;unicode-bidi:isolate;text-align:right;background:#172751;color:#fff;padding:13px 18px;border-radius:12px;box-shadow:0 12px 35px #101c3d55;font-size:13px}.password-notice span,.password-notice a{direction:rtl;unicode-bidi:isolate}.password-notice a{color:#c8c9ff;font-weight:700}
.whatsapp-action{background:#e3f8ec!important;color:#149a59!important;font-weight:800}.whatsapp-btn{background:#1fbf68;color:#fff;box-shadow:0 6px 17px #1fbf6840}.whatsapp-btn:hover{background:#18aa5b;color:#fff}
.message-preview{max-width:330px;white-space:pre-line;line-height:1.45;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-family:'Tajawal','Segoe UI Emoji','Apple Color Emoji',sans-serif}.auto-send{background:#e8edff!important;color:#4f52d3!important}.whatsapp-action{font-family:'Segoe UI Emoji',sans-serif}
.message-preview,textarea[name="message"]{direction:rtl!important;text-align:right!important;unicode-bidi:plaintext}.message-preview{white-space:pre-line}
.copy-message{background:#f1edff!important;color:#6750cc!important;font-size:17px}.copy-message.copied{background:#dff7eb!important;color:#128651!important}
.message-preview{display:flex!important;align-items:center;gap:9px;max-width:360px!important;background:#f8f9fc;border:1px solid var(--line);border-radius:9px;padding:8px 10px;white-space:normal!important}.message-preview p{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;direction:rtl;text-align:right;flex:1}.message-icon{width:25px;height:25px;border-radius:7px;background:#e8edff;color:var(--primary);display:flex;align-items:center;justify-content:center;flex:none}.view-message{background:#eaf5ff!important;color:#2477ba!important}.message-modal-card{width:min(620px,100%)}.whatsapp-bubble{background:#efeae2;padding:28px;min-height:300px}.whatsapp-bubble pre{font-family:'Tajawal','Segoe UI Emoji',sans-serif;direction:rtl;text-align:right;unicode-bidi:plaintext;white-space:pre-wrap;line-height:1.9;margin:0 0 0 auto;background:#d9fdd3;border-radius:12px 4px 12px 12px;padding:16px 18px;max-width:92%;box-shadow:0 2px 5px #00000012;color:#17213c}.preview-actions{padding:16px 22px;margin:0}
.wa-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}.wa-stat{background:#fff;border:1px solid var(--line);border-radius:13px;padding:15px;display:flex;align-items:center;gap:12px;color:var(--text);box-shadow:var(--shadow)}.wa-stat.active{border-color:#a8dcbc;box-shadow:0 0 0 3px #1fbf6812}.wa-stat i{font-style:normal;width:39px;height:39px;border-radius:11px;background:#e4f8ec;color:#159a57;display:flex;align-items:center;justify-content:center;font-size:18px}.wa-stat i.orange{background:#fff3df;color:#d47e10}.wa-stat i.green{background:#e6f8f0;color:#119a68}.wa-stat i.red{background:#ffeaee;color:#e14860}.wa-stat b,.wa-stat small{display:block}.wa-stat b{font-size:20px}.wa-stat small{color:var(--muted)}.wa-panel{padding:20px}.wa-message-list{display:grid;gap:10px}.wa-message-card{display:grid;grid-template-columns:46px minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid var(--line);border-radius:13px;padding:13px 14px;transition:.2s}.wa-message-card:hover{border-color:#cdd3e2;box-shadow:0 5px 18px #1727510b}.wa-avatar{width:44px;height:44px;border-radius:12px;background:#e4f8ec;color:#159a57;display:flex;align-items:center;justify-content:center;font-weight:800;overflow:hidden}.wa-avatar img{width:100%;height:100%;object-fit:cover}.wa-message-head{display:flex;justify-content:space-between;align-items:start;gap:10px}.wa-message-head b,.wa-message-head small{display:block}.wa-message-head small{color:var(--muted);font-size:11px;margin-top:2px}.wa-snippet{border:0;background:transparent;padding:5px 0 0;text-align:right;cursor:pointer;width:100%;overflow:hidden}.wa-snippet b,.wa-snippet span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wa-snippet b{font-size:12px;color:var(--text)}.wa-snippet span{font-size:12px;color:var(--muted);margin-top:2px}.wa-card-actions{display:flex;gap:5px}@media(max-width:850px){.wa-stats{grid-template-columns:repeat(2,1fr)}.wa-message-card{grid-template-columns:42px minmax(0,1fr)}.wa-card-actions{grid-column:1/-1;justify-content:flex-end}.wa-message-head{flex-direction:column}}@media(max-width:480px){.wa-stats{grid-template-columns:1fr}}
.calendar-panel{padding:18px}.fc{font-family:'Tajawal',sans-serif}.fc .fc-button-primary{background:var(--primary);border-color:var(--primary)}.fc-event{border:0!important;border-radius:7px;padding:3px 5px;cursor:grab}.fc-event small{display:block;opacity:.85}.installment-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.installment-card{background:#fff;border:1px solid var(--line);border-top:4px solid var(--primary);border-radius:14px;padding:17px;box-shadow:var(--shadow)}.installment-card.overdue{border-top-color:var(--red)}.installment-card.paid{border-top-color:var(--green)}.installment-head,.installment-values,.installment-card footer{display:flex;justify-content:space-between;align-items:center;gap:10px}.installment-head small{display:block;color:var(--muted)}.installment-card h3{margin:17px 0 10px}.installment-values{font-size:12px;margin:10px 0}.installment-values span,.installment-values b{display:block}.installment-card footer{border-top:1px solid var(--line);padding-top:12px;font-size:12px}.student-id-card{width:850px;max-width:100%;margin:30px auto;background:linear-gradient(135deg,#101c3d,#273a77);color:#fff;border-radius:24px;padding:30px;box-shadow:0 25px 60px #101c3d44}.id-top{display:flex;align-items:center;gap:12px;border-bottom:1px solid #ffffff22;padding-bottom:18px}.id-top b,.id-top small{display:block}.id-top small{color:#b5bedb}.id-body{display:grid;grid-template-columns:135px 1fr 100px;gap:25px;align-items:center;padding:28px 0}.id-photo{width:125px;height:145px;border-radius:18px;background:#ffffff18;display:flex;align-items:center;justify-content:center;font-size:45px;overflow:hidden}.id-photo img{width:100%;height:100%;object-fit:cover}.student-id-card footer{border-top:1px solid #ffffff22;padding-top:16px;color:#b5bedb}.qr-layout{display:grid;grid-template-columns:1fr 1fr;gap:20px}.qr-display{text-align:center}.qr-display #attendanceCode{display:inline-block;background:#fff;padding:12px}.scan-result{text-align:center;max-width:650px;margin:60px auto;padding:50px}.scan-result i{font-style:normal;width:75px;height:75px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:auto;font-size:36px;background:#e6f8f0;color:var(--green)}.public-register{display:grid;grid-template-columns:1fr 1.2fr;background:#fff;border-radius:24px;overflow:hidden;box-shadow:0 25px 70px #1d2a5d22}.register-brand{background:linear-gradient(145deg,#101c3d,#293d7c);color:#fff;padding:70px 50px}.register-form{padding:45px}.register-form form{display:grid;gap:13px}.register-form label{display:flex;flex-direction:column;gap:5px}.success-state{text-align:center;padding:60px 10px}.success-state i{font-style:normal;width:70px;height:70px;background:#e6f8f0;color:var(--green);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:35px;margin:auto}.search-results{display:grid}.search-results>a{display:flex;align-items:center;gap:12px;padding:12px;border-bottom:1px solid var(--line);color:var(--text)}.search-results>a div{flex:1}.search-results small{display:block;color:var(--muted)}.result-line{display:flex;justify-content:space-between;padding:12px;border-bottom:1px solid var(--line)}.notification-item{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:12px;padding:15px;border-bottom:1px solid var(--line);color:var(--text)}.notification-item>i{font-style:normal;width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center}.notification-item.danger>i{background:#ffeaee;color:var(--red)}.notification-item.warning>i{background:#fff3df;color:#d47e10}.notification-item.info>i{background:#e9edff;color:var(--primary)}.notification-item small{display:block;color:var(--muted)}.twofa-card{text-align:center;max-width:650px;margin:auto}.twofa-card #twoFactorQr{display:inline-block;padding:12px;background:#fff}.twofa-card code{display:block;margin:12px}.twofa-card form{display:flex;justify-content:center;gap:8px}.security-success{font-size:40px;color:var(--green)}@media(max-width:950px){.installment-grid{grid-template-columns:1fr 1fr}.qr-layout{grid-template-columns:1fr}}@media(max-width:650px){.installment-grid{grid-template-columns:1fr}.public-register{grid-template-columns:1fr}.register-brand{padding:35px}.id-body{grid-template-columns:90px 1fr}.id-body>#studentQr{grid-column:1/-1}.id-photo{width:85px;height:100px}}
/* Per-user permissions */
.permissions-form{display:grid;gap:18px}.permissions-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;background:#fff;padding:18px 20px;border-radius:16px;box-shadow:var(--shadow)}.permissions-toolbar p{margin:0;color:var(--muted)}.permissions-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px}.permission-card{background:#fff;border:1px solid #e8edf5;border-radius:16px;padding:17px;box-shadow:var(--shadow)}.permission-card h3{margin:0 0 12px}.permission-card label{display:flex;align-items:center;gap:11px;padding:9px 0;cursor:pointer}.permission-card label+label{border-top:1px solid #eef1f6}.permission-card input{width:19px;height:19px;accent-color:var(--primary)}.permission-card span{display:grid;gap:2px}.permission-card small{direction:ltr;text-align:left;color:var(--muted);font-family:monospace}.permission-save{position:sticky;bottom:14px;display:flex;justify-content:flex-start;background:#ffffffdf;backdrop-filter:blur(8px);padding:12px;border-radius:14px;box-shadow:var(--shadow)}
.teacher-rates-form table input,.teacher-rates-form table select{min-width:150px}.money-input{display:flex;align-items:center;gap:7px}.money-input input{width:140px;min-width:0!important}.money-input span{font-weight:700;color:var(--muted)}
.teacher-total-head{margin-top:32px}.teacher-grand-total{background:linear-gradient(135deg,var(--navy),var(--primary));color:#fff;padding:14px 22px;border-radius:14px;min-width:190px;box-shadow:var(--shadow)}.teacher-grand-total span,.teacher-grand-total strong{display:block}.teacher-grand-total span{font-size:12px;color:#dce0ff}.teacher-grand-total strong{font-size:22px;margin-top:3px;direction:ltr}
.calendar-filter{display:grid;grid-template-columns:auto minmax(180px,1fr) auto minmax(180px,1fr) minmax(180px,1fr);align-items:center;gap:12px;margin-bottom:18px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:#f8faff}.calendar-filter label{font-weight:700}.calendar-filter select{width:100%}.calendar-filter span{color:var(--muted);font-size:13px}@media(max-width:650px){.calendar-filter{grid-template-columns:1fr}}

/* Compact weekly timetable */
.compact-calendar{max-width:1120px;margin-inline:auto;padding:16px;border:0;border-radius:22px;background:linear-gradient(145deg,#fff,#f9faff);box-shadow:0 18px 50px rgba(31,43,93,.10)}
.compact-calendar .calendar-filter{display:flex;flex-wrap:nowrap;align-items:center;gap:10px;margin-bottom:14px;padding:11px 13px;border-color:#e5e8f2;border-radius:14px;background:#f4f6fc}
.compact-calendar .calendar-filter select{width:auto;min-width:190px;flex:1 1 240px}.compact-calendar .calendar-filter span{flex:1 1 auto;white-space:nowrap}
.compact-calendar .calendar-filter select{height:40px;border:0;border-radius:10px;background:#fff;box-shadow:0 3px 12px rgba(27,39,79,.07);font-weight:700;color:var(--navy)}
.compact-calendar .fc{font-size:12px}
.compact-calendar .fc .fc-toolbar{margin-bottom:12px;padding:0 3px}
.compact-calendar .fc .fc-toolbar-title{font-size:16px;font-weight:800;color:var(--navy)}
.compact-calendar .fc .fc-button-primary{padding:7px 11px;border:0;border-radius:9px;background:#eef0ff;color:var(--primary);box-shadow:none;font-size:11px;font-weight:700}
.compact-calendar .fc .fc-button-primary:hover,.compact-calendar .fc .fc-button-primary:focus{background:var(--primary);color:#fff}
.compact-calendar .fc .fc-button-primary:not(:disabled).fc-button-active,.compact-calendar .fc .fc-button-primary:not(:disabled):active{background:var(--primary);color:#fff}
.compact-calendar .fc-theme-standard td,.compact-calendar .fc-theme-standard th{border-color:#edf0f6}
.compact-calendar .fc-theme-standard .fc-scrollgrid{border:0;border-radius:15px;overflow:hidden;box-shadow:inset 0 0 0 1px #edf0f6}
.compact-calendar .fc-col-header-cell{background:#f7f8fc}
.compact-calendar .fc-col-header-cell-cushion{padding:9px 4px;color:#59647e;font-size:11px;font-weight:800}
.compact-calendar .fc-timegrid-slot{height:1.65em}
.compact-calendar .fc-timegrid-slot-label-cushion{color:#98a0b3;font-size:10px;padding:0 7px}
.compact-calendar .fc-timegrid-now-indicator-line{border-color:#ff6b57;border-width:2px}
.compact-calendar .fc-timegrid-now-indicator-arrow{border-color:#ff6b57;border-top-color:transparent;border-bottom-color:transparent}
.compact-calendar .fc-event{margin:1px 2px;padding:4px 6px;border-radius:9px!important;box-shadow:0 5px 12px rgba(42,52,100,.18);overflow:hidden}
.compact-calendar .fc-event b{display:block;font-size:11px;white-space:normal;line-height:1.25}
.compact-calendar .fc-event small{font-size:9px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.compact-calendar .fc-day-today{background:#f4f5ff!important}
@media(max-width:700px){.compact-calendar{padding:10px;border-radius:15px}.compact-calendar .calendar-filter{grid-template-columns:1fr}.compact-calendar .calendar-filter span{display:none}.compact-calendar .fc .fc-toolbar{align-items:flex-start;gap:8px}.compact-calendar .fc .fc-toolbar-title{font-size:13px}.compact-calendar .fc .fc-button-primary{padding:6px 8px}.compact-calendar .fc{font-size:10px}}
.calendar-print-header,.calendar-print-table{display:none}
@media print{
  html.calendar-printing,body.calendar-printing{width:200mm!important;height:138mm!important;min-height:0!important;max-height:138mm!important;margin:0!important;padding:0!important;overflow:hidden!important;background:#fff!important}
  .calendar-printing .app-shell{display:block!important;width:200mm!important;height:136mm!important;min-height:0!important;overflow:hidden!important}
  .calendar-printing .main{display:block!important;width:200mm!important;height:136mm!important;min-height:0!important;margin:0!important;overflow:hidden!important}
  .calendar-printing .page{display:block!important;width:200mm!important;height:136mm!important;max-width:200mm!important;max-height:136mm!important;margin:0!important;padding:0!important;overflow:hidden!important}
  .calendar-printing .page-head,.calendar-printing .calendar-filter,.calendar-printing .fc,.calendar-printing .password-notice,.calendar-printing .toast,.calendar-printing .alert{display:none!important}
  .calendar-printing .compact-calendar{display:block!important;width:200mm!important;height:136mm!important;max-width:200mm!important;max-height:136mm!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;background:#fff!important;overflow:hidden!important;break-inside:avoid!important;page-break-inside:avoid!important;page-break-after:avoid!important}
  .calendar-printing .calendar-print-header{display:block!important;margin-bottom:1.5mm;color:#101c3d}
  .calendar-printing .calendar-print-brand{display:flex;align-items:center;gap:2.5mm;padding-bottom:1.2mm;border-bottom:.7mm solid #ff6900}
  .calendar-printing .calendar-print-brand img{width:22mm;height:11mm;object-fit:contain}
  .calendar-printing .calendar-print-brand>span{width:11mm;height:11mm;display:flex;align-items:center;justify-content:center;border-radius:2mm;background:#071c48;color:#fff;font-size:12pt;font-weight:800}
  .calendar-printing .calendar-print-brand h1{margin:0;font-size:12pt}.calendar-printing .calendar-print-brand p{margin:.3mm 0 0;color:#68738c;font-size:5.5pt}
  .calendar-printing .calendar-print-contact{padding:1mm 2mm;background:#f5f7fb;border-bottom:1px solid #e1e5ed;font-size:5.5pt}
  .calendar-printing .calendar-print-contact p{margin:0 0 .5mm}.calendar-printing .calendar-print-contact div{display:flex;gap:5mm;flex-wrap:wrap}.calendar-printing .calendar-print-contact span{display:inline-flex;gap:.7mm}.calendar-printing .calendar-print-contact i{font-style:normal}
  .calendar-printing .calendar-print-title{text-align:center;margin:1mm 0}.calendar-printing .calendar-print-title h2{margin:0;color:#071c48;font-size:9pt}.calendar-printing .calendar-print-title p{display:inline;margin:0 2mm;font-size:7pt;font-weight:800;color:#ff6900}.calendar-printing .calendar-print-title small{color:#7c859d;font-size:5pt}
  .calendar-printing .calendar-print-table{display:block!important;margin-top:2mm;max-height:99mm;overflow:hidden;break-inside:avoid!important;page-break-inside:avoid!important;page-break-after:avoid!important}
  .calendar-printing .calendar-print-table table{width:100%;table-layout:fixed;border-collapse:collapse;white-space:normal;direction:rtl}
  .calendar-printing .calendar-print-table th{padding:1.4mm .6mm;background:#071c48!important;color:#fff!important;border:1px solid #071c48;text-align:center;font-size:6pt;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  .calendar-printing .calendar-print-table thead th:first-child{width:18mm;background:#ff6900!important;border-color:#ff6900!important}
  .calendar-printing .calendar-print-table tbody th{width:18mm;background:#edf1f7!important;color:#071c48!important;border-color:#d9dee9!important;direction:ltr;white-space:nowrap}
  .calendar-printing .calendar-print-table tr{break-inside:avoid!important;page-break-inside:avoid!important}.calendar-printing .calendar-print-table td{height:11mm;padding:.5mm;border:1px solid #dfe3ec;text-align:center;vertical-align:top;font-size:5pt;line-height:1.15;overflow-wrap:anywhere}
  .calendar-printing .calendar-print-table tbody tr:nth-child(even) td{background:#f5f7fb!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  .calendar-printing .print-session{margin-bottom:.5mm;padding:.7mm;border-radius:1mm;background:#e9edff!important;color:#17213c;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.calendar-printing .print-session:last-child{margin-bottom:0}.calendar-printing .print-session span{display:block}.calendar-printing .print-session span:first-child{font-weight:800;color:#4044b1}.calendar-printing .print-session span:nth-child(2){font-weight:700}.calendar-printing .print-session span:nth-child(n+3){color:#5f687d;font-size:4.7pt}
  .calendar-printing .calendar-print-empty{padding:10mm!important;color:#7c859d}
}

/* Readable A5 timetable typography */
@media print{
  .calendar-printing .calendar-print-brand h1{font-size:19pt!important;font-weight:900!important}
  .calendar-printing .calendar-print-brand p{font-size:9pt!important;font-weight:700!important}
  .calendar-printing .calendar-print-contact{font-size:9pt!important;line-height:1.25!important}
  .calendar-printing .calendar-print-contact b{font-weight:900!important}
  .calendar-printing .calendar-print-title h2{font-size:15pt!important;font-weight:900!important}
  .calendar-printing .calendar-print-title p{font-size:12pt!important}
  .calendar-printing .calendar-print-title small{font-size:8.5pt!important}
  .calendar-printing .calendar-print-table th{font-size:12pt!important;font-weight:900!important;line-height:1.15!important}
  .calendar-printing .calendar-print-table td{font-size:10pt!important;line-height:1.18!important}
  .calendar-printing .print-session{padding:.7mm .4mm!important}
  .calendar-printing .print-session span:first-child{font-size:11pt!important;line-height:1.15!important}
  .calendar-printing .print-session span:nth-child(2){font-size:10pt!important;line-height:1.15!important}
  .calendar-printing .print-session span:nth-child(n+3){font-size:9pt!important;line-height:1.15!important;font-weight:700!important}
  html.calendar-printing,html.calendar-printing body.calendar-printing{width:198mm!important;height:132mm!important;min-height:0!important;max-height:132mm!important;page-break-after:avoid!important;break-after:avoid-page!important;overflow:hidden!important}
  body.calendar-printing .app-shell,body.calendar-printing .main,body.calendar-printing .page{position:static!important;width:198mm!important;height:132mm!important;min-height:0!important;max-height:132mm!important;margin:0!important;padding:0!important;overflow:hidden!important;break-after:avoid-page!important;page-break-after:avoid!important}
  .calendar-printing .compact-calendar{width:198mm!important;height:132mm!important;max-width:198mm!important;max-height:132mm!important;overflow:hidden!important}
  .calendar-printing .calendar-print-table{height:91mm!important;max-height:91mm!important;overflow:hidden!important}
  .calendar-printing .calendar-print-table table{height:91mm!important;max-height:91mm!important}
  .calendar-printing .calendar-print-table tbody tr{height:var(--calendar-print-row-height,11mm)!important;max-height:var(--calendar-print-row-height,11mm)!important}
  .calendar-printing .calendar-print-table tbody th,.calendar-printing .calendar-print-table td{height:var(--calendar-print-row-height,11mm)!important;max-height:var(--calendar-print-row-height,11mm)!important;overflow:hidden!important}
  html.calendar-print-dense .calendar-print-table th{font-size:8pt!important}
  html.calendar-print-dense .calendar-print-table td{font-size:7pt!important;line-height:1.05!important}
  html.calendar-print-dense .print-session{margin-bottom:.25mm!important;padding:.35mm .25mm!important}
  html.calendar-print-dense .print-session span:first-child{font-size:8pt!important}
  html.calendar-print-dense .print-session span:nth-child(2){font-size:7.5pt!important}
  html.calendar-print-dense .print-session span:nth-child(n+3){font-size:7pt!important}
}

.top-actions .icon-btn[href$="/notifications"]{font-size:0}
.top-actions .icon-btn[href$="/notifications"]::before{content:"";width:21px;height:21px;display:block;background:currentColor;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round' d='M18 8a6 6 0 0 0-12 0c0 7-3 7-3 9h18c0-2-3-2-3-9M10 21h4'/%3E%3C/svg%3E") center/contain no-repeat;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round' d='M18 8a6 6 0 0 0-12 0c0 7-3 7-3 9h18c0-2-3-2-3-9M10 21h4'/%3E%3C/svg%3E") center/contain no-repeat}
.top-actions .icon-btn[href$="/notifications"],.top-actions form[action$="/logout"] .icon-btn{background:transparent;border-radius:0;color:#687089;display:inline-flex;align-items:center;justify-content:center}
.top-actions .icon-btn[href$="/notifications"]:hover,.top-actions form[action$="/logout"] .icon-btn:hover{color:var(--primary)}
.top-actions form[action$="/logout"] .icon-btn{font-size:0}
.top-actions form[action$="/logout"] .icon-btn::before{content:"";width:21px;height:21px;display:block;background:currentColor;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round' d='M10 17l5-5-5-5M15 12H3M15 4h4a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-4'/%3E%3C/svg%3E") center/contain no-repeat;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round' d='M10 17l5-5-5-5M15 12H3M15 4h4a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-4'/%3E%3C/svg%3E") center/contain no-repeat}

/* Lessons */
.lesson-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:18px}.lesson-card{position:relative;display:flex;gap:16px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px;box-shadow:var(--shadow)}.lesson-icon{width:48px;height:48px;flex:0 0 48px;display:flex;align-items:center;justify-content:center;border-radius:14px;background:#eef0ff;color:var(--primary);font-size:24px}.lesson-content{min-width:0;flex:1}.lesson-content h2{margin:10px 0 7px;font-size:19px}.lesson-content p{margin:0 0 12px;color:var(--muted);line-height:1.7}.lesson-content>small{display:block;color:var(--muted);font-size:11px}.lesson-meta{display:flex;gap:7px;flex-wrap:wrap}.lesson-meta span{padding:4px 9px;border-radius:999px;background:#f4f6fa;color:#59647e;font-size:11px;font-weight:700}.lesson-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.lesson-actions .btn{padding:9px 13px;font-size:12px}.lesson-video{background:#fff0ee;color:#e34234}.lesson-delete{position:absolute;top:13px;left:13px}.lesson-empty{grid-column:1/-1;background:#fff;border-radius:18px;padding:55px}.modal-form label small{color:var(--muted);font-weight:400}@media(max-width:600px){.lesson-grid{grid-template-columns:1fr}.lesson-card{padding:16px}.lesson-icon{width:40px;height:40px;flex-basis:40px}.lesson-actions .btn{width:100%;justify-content:center}}
.lesson-progress-panel{display:grid;grid-template-columns:minmax(210px,auto) 1fr;align-items:center;gap:22px;margin-bottom:20px;padding:18px 22px;border-radius:17px;background:linear-gradient(135deg,#172751,#5b5ce2);color:#fff;box-shadow:0 10px 30px #3436a52c}.lesson-progress-panel span,.lesson-progress-panel strong,.lesson-progress-panel small{display:block}.lesson-progress-panel strong{font-size:27px;margin:3px 0}.lesson-progress-panel small{color:#daddff}.lesson-progress-track{height:12px;border-radius:30px;background:#ffffff2e;overflow:hidden}.lesson-progress-track span{height:100%;border-radius:30px;background:linear-gradient(90deg,#28d59a,#74f0bf);transition:width .35s}.lesson-card.lesson-completed{border-color:#a8dfc9;background:linear-gradient(145deg,#fff,#f2fcf8)}.lesson-completed .lesson-icon{background:#dff7ed;color:#128651}.lesson-done{background:#dff7ed;color:#128651}.lesson-actions form{margin:0}@media(max-width:600px){.lesson-progress-panel{grid-template-columns:1fr}.lesson-progress-track{width:100%}}
.lesson-tracking-head{margin-top:34px}.lesson-tracking-head h2{margin:3px 0;font-size:23px}.student-registration{display:block;margin-top:3px;color:var(--muted);font-size:11px}.student-lesson-progress{display:grid;grid-template-columns:45px minmax(100px,180px) 38px;align-items:center;gap:9px}.student-lesson-progress small{color:var(--muted)}.lesson-status{display:inline-flex;padding:6px 10px;border-radius:999px;font-size:11px;font-weight:800}.lesson-status.complete{background:#dff7ed;color:#128651}.lesson-status.progress{background:#fff3df;color:#c9780b}.lesson-status.not-started{background:#ffeaee;color:#c83f55}.lesson-status.empty{background:#eff1f5;color:#757e92}@media(max-width:650px){.lesson-tracking .table-tools{align-items:stretch;flex-direction:column}.lesson-tracking .search-box{width:100%}}
.lesson-formation-filter{display:flex;align-items:end;gap:10px;margin:-5px 0 22px;padding:15px 18px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:var(--shadow)}.lesson-formation-filter label{display:grid;gap:6px;min-width:280px;font-size:12px;font-weight:800}.lesson-edit{position:absolute;top:13px;left:50px}.lesson-delete{z-index:2}@media(max-width:600px){.lesson-formation-filter{align-items:stretch;flex-direction:column}.lesson-formation-filter label{min-width:0}}

/* Premium student identity card */
.student-card-page{min-height:100vh;display:grid;place-content:center;gap:18px;padding:30px;background:radial-gradient(circle at top,#eef1ff,#e7ebf3)}.student-card-actions{display:flex;justify-content:center}.academy-student-card{position:relative;width:856px;max-width:100%;aspect-ratio:1.585/1;overflow:hidden;padding:29px 34px 22px;border-radius:27px;background:linear-gradient(128deg,#071c48 0%,#102b67 57%,#183a7b 100%);color:#fff;box-shadow:0 28px 70px #071c4850}.academy-student-card:before{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 58%,#ff690018 58%,#ff690040 70%,transparent 70%)}.card-orbit{position:absolute;border:1px solid #ffffff16;border-radius:50%}.orbit-one{width:390px;height:390px;left:-145px;bottom:-185px}.orbit-two{width:275px;height:275px;left:-55px;bottom:-122px}.student-card-header,.student-card-main,.student-card-footer{position:relative;z-index:2}.student-card-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:19px;border-bottom:1px solid #ffffff25}.student-card-brand{display:flex;align-items:center;gap:15px}.student-card-brand img,.student-card-logo-fallback{width:73px;height:60px;border-radius:14px;background:#fff;object-fit:contain;padding:5px;box-shadow:0 8px 24px #0004}.student-card-logo-fallback{display:flex;align-items:center;justify-content:center;background:#ff6900;color:#fff;font-size:23px;font-weight:900}.student-card-brand strong,.student-card-brand small{display:block}.student-card-brand strong{font-size:25px;letter-spacing:.4px}.student-card-brand small{margin-top:3px;color:#bfcbea;font-size:11px;letter-spacing:1.5px}.card-year{padding:8px 15px;border:1px solid #ffffff3a;border-radius:999px;background:#ffffff0d;color:#dbe4ff;font-weight:800}.student-card-main{display:grid;grid-template-columns:150px minmax(0,1fr) 105px;gap:25px;align-items:center;padding:25px 0 20px}.student-card-photo{width:142px;height:171px;overflow:hidden;display:flex;align-items:center;justify-content:center;border:5px solid #fff;border-radius:20px;background:linear-gradient(145deg,#e9ecf8,#fff);color:#17356e;font-size:58px;font-weight:900;box-shadow:0 10px 30px #0005}.student-card-photo img{width:100%;height:100%;object-fit:cover}.student-card-identity>small{color:#aebde3;font-size:11px}.student-card-identity h1{margin:5px 0 18px;font-size:27px;line-height:1.2}.student-card-fields{display:grid;grid-template-columns:1fr 1.3fr;gap:11px 24px}.student-card-fields div:last-child{grid-column:1/-1}.student-card-fields span,.student-card-fields b{display:block}.student-card-fields span{margin-bottom:3px;color:#9fafd5;font-size:10px}.student-card-fields b{font-size:14px}.student-card-qr{justify-self:end;text-align:center;padding:8px 8px 6px;border-radius:14px;background:#fff;color:#071c48;box-shadow:0 10px 25px #0004}.student-card-qr #studentQr{width:76px;height:76px}.student-card-qr img,.student-card-qr canvas{display:block!important}.student-card-qr small{display:block;margin-top:4px;font-size:8px;font-weight:900;letter-spacing:2px}.student-card-footer{display:flex;justify-content:space-between;align-items:center;padding-top:13px;border-top:1px solid #ffffff25;color:#bac6e5;font-size:10px}.student-card-footer div{display:flex;gap:15px}.student-card-footer b{color:#fff;font-size:10px}.print-page:has(.student-card-page){padding:0;background:#e9edf5}@media(max-width:760px){.student-card-page{padding:12px}.academy-student-card{width:100%;padding:20px;border-radius:20px}.student-card-brand img,.student-card-logo-fallback{width:55px;height:48px}.student-card-brand strong{font-size:17px}.student-card-main{grid-template-columns:100px 1fr 85px;gap:15px}.student-card-photo{width:95px;height:120px}.student-card-identity h1{font-size:19px}.student-card-fields{gap:7px}.student-card-qr{transform:scale(.85)}}
@page studentCard{size:85.6mm 54mm;margin:0}@media print{.student-card-page{display:block;min-height:0;padding:0;background:#fff}.academy-student-card{page:studentCard;width:85.6mm;height:54mm;max-width:none;aspect-ratio:auto;margin:0;padding:2.8mm 3.4mm 2mm;border-radius:2.5mm;box-shadow:none;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.student-card-header{padding-bottom:1.7mm}.student-card-brand{gap:1.4mm}.student-card-brand img,.student-card-logo-fallback{width:8mm;height:6.4mm;padding:.4mm;border-radius:1.2mm}.student-card-brand strong{font-size:7pt}.student-card-brand small{font-size:3.4pt}.card-year{padding:.8mm 1.5mm;font-size:5pt}.student-card-main{grid-template-columns:15mm 1fr 11mm;gap:2.2mm;padding:2.3mm 0 1.8mm}.student-card-photo{width:14.5mm;height:17.5mm;border-width:.6mm;border-radius:1.8mm;font-size:16pt}.student-card-identity>small{font-size:3.3pt}.student-card-identity h1{margin:.4mm 0 1.4mm;font-size:7.2pt}.student-card-fields{gap:.8mm 1.8mm}.student-card-fields span{font-size:3.1pt}.student-card-fields b{font-size:4.4pt}.student-card-qr{padding:.7mm;border-radius:1mm}.student-card-qr #studentQr,.student-card-qr #studentQr img,.student-card-qr #studentQr canvas{width:9mm!important;height:9mm!important}.student-card-qr small{font-size:2.5pt;margin-top:.3mm}.student-card-footer{padding-top:1mm;font-size:3pt}.student-card-footer b{font-size:3.1pt}.orbit-one{width:39mm;height:39mm}.orbit-two{width:27mm;height:27mm}}

/* Student card QR and registration-number refinements */
.student-card-qr{padding:7px 7px 5px;border-radius:12px}.student-card-qr #studentQr,.student-card-qr #studentQr img,.student-card-qr #studentQr canvas{width:58px!important;height:58px!important}.student-card-qr small{margin-top:3px;font-size:7px;letter-spacing:1.5px}.student-registration-number b{display:inline-block!important;padding:5px 10px;border:1px solid #ffffff35;border-radius:8px;background:#ffffff15;color:#fff;font-size:17px!important;letter-spacing:1px;direction:ltr}
@media print{.student-card-main{grid-template-columns:15mm 1fr 10mm}.student-registration-number b{padding:.5mm 1mm;border-radius:.8mm;font-size:6pt!important}.student-card-qr{padding:.55mm}.student-card-qr #studentQr,.student-card-qr #studentQr img,.student-card-qr #studentQr canvas{width:8mm!important;height:8mm!important}.student-card-qr small{font-size:2.3pt;margin-top:.2mm}}

/* Vertical school-style student card */
.vertical-card-page{background:linear-gradient(145deg,#dce5f7,#f5f7fb)}.vertical-student-card{position:relative;width:380px;min-height:602px;overflow:hidden;border:4px solid #e8edf6;border-radius:24px;background:#fff;color:#171d2b;box-shadow:0 25px 65px #102d6760;direction:rtl}.vertical-student-card:after{content:"";position:absolute;inset:5px;border:1px solid #8da9dd;border-radius:18px;pointer-events:none}.vertical-card-header{position:relative;z-index:1;min-height:210px;padding:25px 25px 42px;background:linear-gradient(145deg,#174bb5,#285dca);color:#fff;text-align:center}.vertical-card-brand{display:flex;align-items:center;justify-content:center;gap:12px}.vertical-card-brand img,.vertical-card-brand>span{width:72px;height:72px;flex:none;border:4px solid #fff;border-radius:50%;background:#fff;object-fit:contain;padding:4px;box-shadow:0 5px 15px #08286d60}.vertical-card-brand>span{display:flex;align-items:center;justify-content:center;background:#ff6900;color:#fff;font-size:22px;font-weight:900}.vertical-card-brand h1{margin:0;font-size:25px;text-shadow:0 2px 2px #06236c}.vertical-card-brand b{display:block;margin-top:4px;font-size:13px}.vertical-card-header p{max-width:270px;margin:9px auto 2px;font-size:12px;line-height:1.35}.vertical-card-header>strong{font-size:13px}.vertical-card-wave{position:absolute;z-index:2;top:175px;left:-5%;width:110%;height:73px;border-radius:50% 50% 0 0/45% 45% 0 0;background:#fff;transform:rotate(-4deg);box-shadow:0 -13px 0 #86adf350}.vertical-card-profile{position:relative;z-index:3;margin-top:-28px;text-align:center}.vertical-student-photo{width:142px;height:165px;display:flex;align-items:center;justify-content:center;margin:0 auto;border:3px solid #2258c2;border-radius:3px;background:#edf2fb;color:#2454ae;font-size:55px;font-weight:900;overflow:hidden;box-shadow:0 5px 15px #173e8f30}.vertical-student-photo img{width:100%;height:100%;object-fit:cover}.vertical-card-profile h2{margin:8px 16px 4px;font-size:22px;line-height:1.15}.vertical-registration{display:inline-block;padding:3px 12px;border-radius:999px;background:#e8efff;color:#1649aa;font-size:12px;font-weight:900;direction:ltr}.vertical-card-details{margin:10px 35px 0}.vertical-card-details div{display:grid;grid-template-columns:105px 1fr;border-bottom:1px solid #d9dde5;min-height:25px;align-items:center}.vertical-card-details dt{padding-left:8px;border-left:1px solid #d9dde5;font-size:11px;font-weight:800}.vertical-card-details dd{margin:0;padding-right:9px;font-size:11px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vertical-card-bottom{position:relative;display:grid;grid-template-columns:1fr 58px 70px;gap:8px;align-items:end;margin:9px 30px 0}.vertical-card-address{align-self:center;font-size:10px;line-height:1.35}.vertical-card-qr{text-align:center}.vertical-card-qr #studentQr,.vertical-card-qr img,.vertical-card-qr canvas{width:48px!important;height:48px!important;margin:auto}.vertical-card-qr small{display:block;margin-top:2px;color:#667085;font-size:6px}.vertical-card-signature{text-align:center;color:#1749aa}.vertical-card-signature i{display:block;font-family:cursive;font-size:18px;font-weight:800;transform:rotate(-8deg)}.vertical-card-signature span{display:block;border-top:1px solid #222;padding-top:2px;color:#222;font-size:8px}.vertical-student-card footer{display:flex;justify-content:space-between;margin:8px 26px 14px;padding-top:5px;border-top:1px solid #d9dde5;color:#4c5568;font-size:9px}.vertical-student-card footer b{color:#1749aa}.print-page:has(.vertical-card-page){padding:0}
@page studentCard{size:54mm 85.6mm;margin:0}@media print{.vertical-card-page{display:block;padding:0;background:#fff}.vertical-student-card{page:studentCard;width:54mm;height:85.6mm;min-height:0;border-width:.5mm;border-radius:3mm;box-shadow:none;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.vertical-student-card:after{inset:.6mm;border-radius:2.3mm}.vertical-card-header{min-height:26.5mm;padding:3mm 3mm 5.5mm}.vertical-card-brand{gap:1.5mm}.vertical-card-brand img,.vertical-card-brand>span{width:9.5mm;height:9.5mm;border-width:.5mm;padding:.4mm}.vertical-card-brand h1{font-size:9pt}.vertical-card-brand b{margin-top:.4mm;font-size:4pt}.vertical-card-header p{max-width:38mm;margin:1mm auto .3mm;font-size:3.7pt}.vertical-card-header>strong{font-size:4pt}.vertical-card-wave{top:22.3mm;height:9mm}.vertical-card-profile{margin-top:-3.6mm}.vertical-student-photo{width:18mm;height:21mm;border-width:.4mm;font-size:18pt}.vertical-card-profile h2{margin:1mm 2mm .5mm;font-size:7.5pt}.vertical-registration{padding:.4mm 1.5mm;font-size:4pt}.vertical-card-details{margin:1.2mm 4.5mm 0}.vertical-card-details div{grid-template-columns:15mm 1fr;min-height:3.2mm}.vertical-card-details dt{padding-left:1mm;font-size:3.5pt}.vertical-card-details dd{padding-right:1mm;font-size:3.5pt}.vertical-card-bottom{grid-template-columns:1fr 8mm 10mm;gap:1mm;margin:1.2mm 4mm 0}.vertical-card-address{font-size:3pt}.vertical-card-qr #studentQr,.vertical-card-qr img,.vertical-card-qr canvas{width:7mm!important;height:7mm!important}.vertical-card-qr small{font-size:2pt}.vertical-card-signature i{font-size:6pt}.vertical-card-signature span{font-size:2.6pt}.vertical-student-card footer{margin:1mm 3.5mm 1.5mm;padding-top:.7mm;font-size:2.8pt}}
.student-role-badge{display:inline-block;margin:1px 4px 5px;padding:3px 10px;border-radius:999px;background:#1749aa;color:#fff;font-size:9px;letter-spacing:.7px}.student-role-badge+.vertical-registration{margin-right:3px}@media print{.student-role-badge{margin:.1mm .4mm .5mm;padding:.35mm 1.1mm;font-size:2.8pt}.student-role-badge+.vertical-registration{margin-right:.4mm}}

/* Lanyard badge preview */
.student-badge-display{position:relative;padding-top:175px}.badge-lanyard{position:absolute;z-index:5;top:0;left:50%;width:250px;height:205px;transform:translateX(-50%);pointer-events:none}.badge-lanyard i{position:absolute;top:-55px;width:43px;height:205px;background:linear-gradient(90deg,#c8b785,#eadba9 45%,#b9a873);box-shadow:inset 4px 0 7px #7d70464a,inset -4px 0 7px #fff7cf66}.badge-lanyard i:first-child{left:30px;transform:rotate(-7deg)}.badge-lanyard i:nth-child(2){right:30px;transform:rotate(7deg)}.badge-lanyard span{position:absolute;left:50%;bottom:42px;width:58px;height:72px;transform:translateX(-50%);border-radius:7px;background:linear-gradient(90deg,#09140c,#172719 50%,#081109);box-shadow:0 7px 12px #0005}.badge-lanyard span:after{content:"";position:absolute;left:13px;right:13px;bottom:-17px;height:25px;border-radius:0 0 7px 7px;background:#101d12}.badge-lanyard b{position:absolute;left:50%;bottom:3px;width:38px;height:25px;transform:translateX(-50%);border:5px solid #e9edf5;border-top:0;border-radius:0 0 12px 12px;box-shadow:0 3px 3px #0003}.badge-lanyard b:after{content:"";position:absolute;left:50%;bottom:-14px;width:42px;height:18px;transform:translateX(-50%);border-radius:5px 5px 0 0;background:#111d13}.student-badge-display .vertical-student-card{position:relative;z-index:2}@media(max-width:500px){.student-badge-display{padding-top:145px}.badge-lanyard{transform:translateX(-50%) scale(.82);transform-origin:bottom center}}
@media print{.student-badge-display{padding:0}.student-badge-display .vertical-student-card{margin:0}}

/* TechPro branded lanyard */
.student-badge-display{padding-top:190px}.badge-lanyard{width:280px;height:220px}.badge-lanyard i{top:-62px;width:48px;height:210px;border:0;border-radius:8px;background:linear-gradient(90deg,#071c48 0 30%,#ff6900 30% 39%,#164bb0 39% 100%);box-shadow:inset 5px 0 8px #0004,inset -3px 0 5px #ffffff25,0 6px 12px #071c4830}.badge-lanyard i:first-child{left:33px;transform:rotate(-10deg)}.badge-lanyard i:nth-child(2){right:33px;transform:rotate(10deg);background:linear-gradient(90deg,#164bb0 0 61%,#ff6900 61% 70%,#071c48 70% 100%)}.badge-lanyard:before{content:"TECHPRO  •  ACADEMY";position:absolute;z-index:2;top:73px;left:-5px;color:#fff;font-size:8px;font-weight:900;letter-spacing:1px;transform:rotate(80deg);text-shadow:0 1px 2px #0008}.badge-lanyard:after{content:"TECHPRO  •  ACADEMY";position:absolute;z-index:2;top:73px;right:-5px;color:#fff;font-size:8px;font-weight:900;letter-spacing:1px;transform:rotate(-80deg);text-shadow:0 1px 2px #0008}.badge-lanyard span{bottom:44px;width:62px;height:76px;border:1px solid #34518c;border-radius:10px;background:linear-gradient(145deg,#0d2353,#061536);box-shadow:inset 0 1px 2px #ffffff35,0 8px 16px #071c4866}.badge-lanyard span:before{content:"TP";position:absolute;top:12px;left:50%;transform:translateX(-50%);color:#fff;font-size:13px;font-weight:900}.badge-lanyard span:after{left:15px;right:15px;bottom:-18px;height:27px;background:linear-gradient(#142e68,#071c48)}.badge-lanyard b{bottom:2px;width:40px;height:27px;border-color:#ff6900;box-shadow:0 3px 5px #0004}.badge-lanyard b:before{content:"";position:absolute;left:50%;top:-7px;width:12px;height:12px;transform:translateX(-50%);border-radius:50%;background:#ff6900}.badge-lanyard b:after{bottom:-16px;width:46px;height:20px;background:linear-gradient(#173c85,#071c48)}
@media(max-width:500px){.student-badge-display{padding-top:155px}.badge-lanyard{transform:translateX(-50%) scale(.8)}}@media print{.student-badge-display{padding-top:0}}

/* Alternative executive lanyard */
.student-badge-display{padding-top:178px}.badge-lanyard{width:260px;height:210px}.badge-lanyard i{top:-70px;width:38px;height:205px;border-radius:3px;background:linear-gradient(90deg,#050b18,#12213b 44%,#203557 50%,#0a1325 100%);box-shadow:inset 2px 0 3px #ffffff28,inset -4px 0 5px #0008,0 5px 9px #0004}.badge-lanyard i:first-child{left:40px;transform:rotate(-7deg);border-right:3px solid #ff6900}.badge-lanyard i:nth-child(2){right:40px;transform:rotate(7deg);border-left:3px solid #ff6900;background:linear-gradient(90deg,#0a1325,#203557 50%,#12213b 56%,#050b18)}.badge-lanyard:before{content:"TECHPRO";top:54px;left:3px;font-size:7px;letter-spacing:2px;transform:rotate(82deg);color:#fff}.badge-lanyard:after{content:"ACADEMY";top:54px;right:0;font-size:7px;letter-spacing:2px;transform:rotate(-82deg);color:#fff}.badge-lanyard span{bottom:43px;width:54px;height:66px;border:0;border-radius:6px;background:linear-gradient(145deg,#26364e,#070c14 70%);box-shadow:inset 0 0 0 1px #ffffff18,0 8px 14px #0006}.badge-lanyard span:before{content:"";top:13px;width:17px;height:17px;border:3px solid #9ba8ba;border-radius:50%;background:#111b2c}.badge-lanyard span:after{left:13px;right:13px;bottom:-15px;height:22px;border-radius:0 0 5px 5px;background:#17243a}.badge-lanyard b{bottom:5px;width:34px;height:22px;border:4px solid #aeb7c4;border-top:0;border-radius:0 0 11px 11px;background:transparent}.badge-lanyard b:before{top:-6px;width:10px;height:10px;background:#b9c2cf}.badge-lanyard b:after{bottom:-15px;width:42px;height:18px;border-radius:4px 4px 0 0;background:linear-gradient(#263b60,#0b172c)}
@media(max-width:500px){.student-badge-display{padding-top:148px}.badge-lanyard{transform:translateX(-50%) scale(.8)}}@media print{.student-badge-display{padding-top:0}}

/* Print the student card on one card-sized page */
@media print{html,body.print-page:has(.vertical-card-page){width:54mm!important;height:85.6mm!important;min-height:0!important;margin:0!important;padding:0!important;overflow:hidden!important}.vertical-card-page{width:54mm!important;height:85.6mm!important;min-height:0!important;margin:0!important;padding:0!important;overflow:hidden!important}.vertical-student-card{display:block!important;break-inside:avoid!important;page-break-inside:avoid!important;page-break-after:avoid!important}}

/* A5 student-card print sheet */
@page studentCard{size:A5 portrait;margin:0}@media print{html,body.print-page:has(.vertical-card-page){width:148mm!important;height:210mm!important}.vertical-card-page{display:flex!important;align-items:center!important;justify-content:center!important;width:148mm!important;height:210mm!important}.vertical-student-card{width:54mm!important;height:85.6mm!important;margin:auto!important}}

@media print{.vertical-student-card{transform:scale(1.55)!important;transform-origin:center center!important}}
.student-dashboard-stats .info-card{display:block}.student-dashboard-stats .progress{margin-top:10px}.student-dashboard-stats small{display:block;margin-top:7px;color:var(--muted)}.card-expiry-warning{color:#d47e10!important;font-weight:800}.student-dashboard-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.student-dashboard-list{display:grid}.student-dashboard-list>a,.student-dashboard-list>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 2px;border-top:1px solid var(--line);color:var(--text)}.student-dashboard-list small{color:var(--muted)}@media(max-width:950px){.student-dashboard-grid{grid-template-columns:1fr}.student-dashboard-stats{grid-template-columns:repeat(2,1fr)}}@media(max-width:550px){.student-dashboard-stats{grid-template-columns:1fr}}
.backup-health{display:flex;align-items:center;gap:13px;margin-bottom:16px;padding:16px 18px;border-radius:14px}.backup-health i{width:38px;height:38px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-style:normal;font-size:20px}.backup-health b,.backup-health span{display:block}.backup-health span{margin-top:3px;font-size:12px}.backup-health.healthy{background:#e6f8f0;color:#087a51}.backup-health.healthy i{background:#fff}.backup-health.warning{background:#fff3df;color:#a45e08}.backup-health.warning i{background:#fff}.alert code{display:block;margin-top:9px;padding:10px;border-radius:8px;background:#fff;direction:ltr;text-align:left;overflow:auto}
.lesson-video-frame{position:relative;margin:14px 0;border-radius:13px;overflow:hidden;background:#071c48;aspect-ratio:16/9}.lesson-video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.renewal-panel{display:flex;align-items:center;justify-content:space-between;gap:20px}.renewal-panel h2,.renewal-panel p{margin:0}.renewal-panel p{margin-top:5px;color:var(--muted)}.student-monthly-report{max-width:850px;margin:auto;padding:35px;background:#fff;color:#17213c}.student-monthly-report>header{display:flex;align-items:center;gap:15px;border-bottom:3px solid #1749aa;padding-bottom:18px}.student-monthly-report>header img{width:85px;height:65px;object-fit:contain}.student-monthly-report>header h1,.student-monthly-report>header p{margin:0}.student-monthly-report>header .btn{margin-right:auto}.report-student{padding:22px 0}.report-student h2,.report-student p{margin:0}.report-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.report-stats div{padding:15px;border-radius:12px;background:#f2f5fb}.report-stats span,.report-stats b{display:block}.report-stats span{color:#68738c;font-size:12px}.report-stats b{margin-top:5px;font-size:19px}.student-monthly-report h3{margin-top:25px}.student-monthly-report footer{margin-top:25px;padding-top:12px;border-top:1px solid #ddd;text-align:center;color:#68738c;font-size:11px}@media print{.student-monthly-report{max-width:none;padding:10mm}.student-monthly-report table{white-space:normal}}@media(max-width:650px){.renewal-panel{align-items:stretch;flex-direction:column}.report-stats{grid-template-columns:repeat(2,1fr)}}
.announcement-grid{display:grid;gap:15px}.announcement-card{display:grid;grid-template-columns:65px 1fr;gap:18px;padding:20px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:var(--shadow)}.announcement-date{width:60px;height:60px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:14px;background:#e9edff;color:var(--primary)}.announcement-date b{font-size:21px}.announcement-date span{font-size:9px}.announcement-card h2{margin:8px 0}.announcement-card p{margin:0 0 12px;line-height:1.8;color:#4c5568}.announcement-card small{color:var(--muted)}
.announcement-content{position:relative;min-width:0;padding-left:38px}.announcement-delete{position:absolute;top:0;left:0;margin:0}.announcement-delete .action{background:#ffeaee;color:#d93b53}.announcement-delete .action:hover{background:#ef596f;color:#fff}
.announcement-image{display:block;margin-top:16px;overflow:hidden;border-radius:14px;background:#f1f3f8}.announcement-image img{display:block;width:100%;max-height:420px;object-fit:cover;transition:transform .25s}.announcement-image:hover img{transform:scale(1.015)}
/* Lamp-inspired login */
.auth-body{--lamp-x:0deg;--lamp-y:0px;min-height:100vh;padding:0;background:#080a0e;color:#f5f1e8;overflow:hidden}.auth-shell{width:100%;min-height:100vh}.lamp-login{min-height:100vh;display:grid;grid-template-columns:minmax(430px,1.15fr) minmax(420px,.85fr);direction:ltr;background:linear-gradient(90deg,#080a0e 0 56%,#0d1015 100%)}.lamp-scene{position:relative;min-height:100vh;overflow:hidden}.lamp-scene:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0 64%,#ffffff08 100%);pointer-events:none}.lamp{position:absolute;left:24%;top:50%;width:280px;height:520px;transform:translateY(-47%) translateY(var(--lamp-y));transition:transform .45s ease}.lamp-pole{position:absolute;left:72px;top:122px;width:11px;height:326px;border-radius:8px;background:linear-gradient(90deg,#6d532d,#d2a85c 52%,#533d21);box-shadow:0 0 14px #000}.lamp-base{position:absolute;left:8px;top:440px;width:142px;height:18px;border-radius:50%;background:linear-gradient(#bc8d47,#3a2a18);box-shadow:0 13px 25px #000b}.lamp-arm{position:absolute;left:72px;top:113px;width:145px;height:10px;transform:rotate(-42deg);transform-origin:left center;border-radius:8px;background:linear-gradient(#c99c55,#4e391f)}.lamp-neck{position:absolute;left:176px;top:38px;width:10px;height:108px;transform:rotate(14deg);border-radius:8px;background:#98713c}.lamp-shade{position:absolute;z-index:3;left:134px;top:9px;width:142px;height:75px;border-radius:70px 70px 15px 15px;background:linear-gradient(100deg,#1a1d23,#4e5156 50%,#121419);box-shadow:inset 0 -9px 0 #0d0f13,0 10px 28px #000b;transform:rotate(var(--lamp-x));transform-origin:center bottom;transition:transform .45s ease}.lamp-bulb{position:absolute;z-index:2;left:188px;top:66px;width:36px;height:18px;border-radius:0 0 18px 18px;background:#ffd98c;box-shadow:0 8px 18px #ffc65a}.lamp-light{position:absolute;z-index:1;left:81px;top:70px;width:355px;height:470px;clip-path:polygon(33% 0,58% 0,100% 100%,0 100%);background:linear-gradient(180deg,#ffd9935c,#ffd9931d 66%,transparent);filter:blur(2px);transform:rotate(var(--lamp-x));transform-origin:45% 0;transition:transform .45s ease}.floor-glow{position:absolute;left:7%;right:4%;bottom:4%;height:110px;border-radius:50%;background:#e7aa4b18;filter:blur(34px)}.scene-brand{position:absolute;left:54px;bottom:42px;display:flex;align-items:center;gap:13px;direction:ltr}.scene-brand img,.scene-logo{width:52px;height:52px;border-radius:50%;object-fit:contain;background:#fff;padding:3px}.scene-logo{display:grid;place-items:center;background:#ec8d28;color:#fff;font-weight:900}.scene-brand strong,.scene-brand small{display:block}.scene-brand strong{font-size:17px}.scene-brand small{margin-top:3px;color:#8d929c;font-size:11px}.lamp-login-form{position:relative;z-index:4;align-self:center;width:min(440px,calc(100% - 56px));margin:auto;padding:48px 44px;direction:rtl;border:1px solid #ffffff12;border-radius:8px;background:#11141ae8;box-shadow:0 30px 80px #0008;backdrop-filter:blur(12px)}.login-kicker{color:#e8a94c;font-size:12px;font-weight:800}.lamp-login-form h1{margin:9px 0 8px;color:#fff;font-size:31px;line-height:1.3}.lamp-login-form>p{margin:0 0 28px;color:#969ca7;font-size:13px;line-height:1.7}.lamp-login-form form{display:grid;gap:17px}.lamp-login-form label{display:grid;gap:7px;color:#cdd1d8;font-size:12px;font-weight:700}.lamp-login-form input{height:48px;border:1px solid #ffffff17;border-radius:6px;background:#090b0f;color:#fff;padding:0 14px}.lamp-login-form input:focus{border-color:#d59a47;box-shadow:0 0 0 3px #d59a4718}.lamp-login-form .form-row{text-align:left}.lamp-login-form .form-row a{color:#cfa15f;font-size:11px}.lamp-submit{height:50px;border:0;border-radius:6px;background:#e2a44e;color:#171107;font-weight:900;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;transition:.2s}.lamp-submit:hover{background:#f0b760;transform:translateY(-1px);box-shadow:0 10px 25px #e2a44e25}.lamp-submit span{font-size:18px}.login-security{display:block;margin-top:23px;color:#686f79;text-align:center;font-size:10px}.lamp-login-form .alert{font-size:12px}
@media(max-width:900px){.auth-body{overflow:auto}.lamp-login{grid-template-columns:1fr;align-items:center;padding:28px 18px}.lamp-scene{position:absolute;inset:0;min-height:100%;opacity:.58}.lamp{left:-35px;top:47%;transform:translateY(-50%) scale(.72)}.scene-brand{left:24px;bottom:22px}.lamp-login-form{width:min(430px,100%);margin:auto;padding:38px 28px;background:#11141af2}.lamp-login-form h1{font-size:27px}}
@media(prefers-reduced-motion:reduce){.lamp,.lamp-shade,.lamp-light,.lamp-submit{transition:none}}
/* Reel-matched compact composition */
.lamp-login{position:relative;grid-template-columns:330px 410px;place-content:center;gap:36px;padding:40px;background:radial-gradient(circle at 48% 51%,#8b65242d 0,#30271920 25%,#0b0d11 58%,#06080b 100%)}.lamp-login:before{content:"";position:absolute;left:50%;top:50%;width:min(940px,88vw);height:650px;transform:translate(-50%,-50%);border:1px solid #ffffff08;border-radius:8px;background:linear-gradient(120deg,#ffffff02,#d6a65008 48%,#ffffff02);box-shadow:0 35px 100px #0008}.lamp-scene{min-height:650px}.lamp{left:31px;top:50%;transform:translateY(-44%) scale(.72) translateY(var(--lamp-y));transform-origin:center bottom}.lamp-light{left:77px;width:400px;height:510px;background:linear-gradient(180deg,#ffd99366,#d7a95020 68%,transparent)}.floor-glow{left:0;right:-40px;bottom:7%;height:85px;background:#e7aa4b2b}.scene-brand{left:50%;bottom:35px;transform:translateX(-50%);white-space:nowrap}.lamp-login-form{width:390px;margin:0;padding:36px 34px;border-color:#d9ad5a22;background:#0e1117f2;box-shadow:0 24px 70px #000b,0 0 45px #bf8b2d0c}.lamp-login-form:before{content:"TECHPRO ACADEMY";display:inline-flex;margin-bottom:20px;padding:5px 9px;border:1px solid #d9a64b38;border-radius:999px;color:#dfa84b;font-size:8px;font-weight:900;letter-spacing:1.2px;direction:ltr}.lamp-login-form h1{font-size:27px}.lamp-login-form>p{margin-bottom:22px}.lamp-login-form input{height:44px}.lamp-submit{height:46px}
@media(max-width:900px){.lamp-login{display:grid;grid-template-columns:1fr;place-content:center;padding:20px}.lamp-login:before{width:calc(100% - 24px);height:calc(100% - 32px)}.lamp-scene{position:absolute;inset:0;min-height:100%;opacity:.42}.lamp{left:-72px;top:48%;transform:translateY(-50%) scale(.55)}.scene-brand{left:24px;bottom:18px;transform:none}.lamp-login-form{width:min(390px,100%);padding:34px 28px}}
/* Slender curved lamp from the reference */
.scene-brand{display:none}.lamp{left:52px;width:245px}.lamp-pole{left:58px;top:223px;width:7px;height:214px;background:linear-gradient(90deg,#59401f,#c89547 48%,#4a341d)}.lamp-arm{left:58px;top:101px;width:124px;height:128px;border:7px solid #9b7138;border-right:0;border-bottom:0;border-radius:82px 0 0 0;background:transparent;transform:none;box-shadow:inset 2px 2px #d5aa62}.lamp-neck{display:none}.lamp-shade{left:139px;top:69px;width:92px;height:48px;border-radius:52px 52px 9px 9px;background:linear-gradient(100deg,#15171d,#42454d 55%,#101216);box-shadow:inset 0 -7px #090b0e,0 8px 22px #000c}.lamp-bulb{left:169px;top:109px;width:30px;height:12px;box-shadow:0 5px 16px #ffc75b}.lamp-base{left:18px;top:431px;width:91px;height:12px;background:linear-gradient(#c39246,#382818);box-shadow:0 9px 20px #000b}.lamp-chain{position:absolute;z-index:4;top:113px;width:1px;background:#b88a46;box-shadow:0 0 8px #e2b761}.lamp-chain:after{content:"";position:absolute;left:50%;bottom:-7px;width:9px;height:9px;transform:translateX(-50%);border-radius:50%;background:#d2a252;box-shadow:0 0 14px #e7b95e}.chain-one{left:177px;height:57px}.chain-two{left:202px;height:83px}.chain-two:after{width:13px;height:13px}.lamp-light{left:91px;top:108px;width:260px;height:390px;clip-path:polygon(31% 0,51% 0,100% 100%,0 100%);background:linear-gradient(180deg,#ffd98c68,#d9aa5222 72%,transparent)}.floor-glow{left:5px;right:-30px;bottom:8%;height:65px}.lamp-login-form{transform:scale(.92);transform-origin:center center}.lamp-login-form h1{margin-top:7px}.lamp-login-form:before{margin-bottom:16px}
@media(max-width:900px){.lamp{left:-65px}.lamp-login-form{transform:none}.scene-brand{display:flex}}
/* Animated mobile-style login */
.mobile-login-stage{min-height:100vh;display:grid;place-items:center;padding:28px;background:radial-gradient(circle at 50% 32%,#5332a536,transparent 31%),radial-gradient(circle at 58% 65%,#00d9c51a,transparent 28%),#05060a;direction:rtl}.mobile-login-card{position:relative;width:min(410px,100%);overflow:hidden;padding:24px 26px 22px;border:1px solid #ffffff1c;border-radius:38px;background:linear-gradient(165deg,#10121bfa,#08090ff8);box-shadow:0 35px 90px #000,0 0 0 7px #10131d,0 0 0 8px #ffffff12;color:#f7f8fc}.mobile-login-card:before{content:"";position:absolute;inset:-35% 20% 72%;background:#7458ff38;filter:blur(35px);animation:loginAura 5s ease-in-out infinite alternate}.mobile-login-head{position:relative;z-index:2}.mobile-login-brand{display:flex;align-items:center;gap:8px;direction:ltr;color:#9e8cff;font-size:9px;letter-spacing:1.2px}.mobile-login-brand span{width:25px;height:25px;display:grid;place-items:center;border-radius:8px;background:linear-gradient(135deg,#795cff,#24d9d0);color:#fff;font-size:9px}.mobile-login-head>small{display:block;margin-top:19px;color:#7df5df;font-size:9px;font-weight:800}.mobile-login-head h1{margin:4px 0 2px;font-size:29px;letter-spacing:0}.mobile-login-head p{margin:0;color:#888e9e;font-size:11px}.mascot-wrap{position:relative;height:165px;display:grid;place-items:center;margin-top:-5px}.mascot-wrap img{position:relative;z-index:2;width:190px;height:190px;object-fit:contain;filter:drop-shadow(0 16px 18px #0008);animation:mascotFloat 3.2s ease-in-out infinite}.mascot-glow{position:absolute;width:190px;height:65px;bottom:9px;border-radius:50%;background:linear-gradient(90deg,#815dff55,#1be2d155);filter:blur(24px);animation:mascotGlow 2.4s ease-in-out infinite alternate}.mobile-login-error{position:relative;z-index:3;margin:0 0 10px;font-size:11px}.mobile-login-form{position:relative;z-index:3;display:grid;gap:14px}.mobile-login-form>label{display:grid;gap:6px;color:#bdc1cc;font-size:10px;font-weight:700}.neon-input{position:relative;display:flex;align-items:center;height:47px;border:1px solid #373c4e;border-radius:10px;background:#0c0e15;transition:.25s}.neon-input:focus-within{border-color:#765dff;box-shadow:0 0 0 3px #765dff1c,0 0 25px #6249df20}.neon-input i{width:42px;color:#747b8e;text-align:center;font-style:normal;font-size:12px}.neon-input input{width:100%;height:100%;min-width:0;border:0;background:transparent;color:#f7f8fc;box-shadow:none;padding:0 2px}.neon-input input:focus{border:0;box-shadow:none}.neon-input>b,.password-peek{width:39px;color:#42e7b0;text-align:center}.password-peek{height:100%;border:0;background:transparent;color:#747b8e;cursor:pointer}.mobile-login-options{display:flex;justify-content:space-between;align-items:center;font-size:9px}.mobile-login-options>label{display:flex;align-items:center;gap:5px;color:#868c9b;cursor:pointer}.mobile-login-options input{width:13px;height:13px;accent-color:#6b58ee}.mobile-login-options a{color:#64dfd3}.neon-login-submit{position:relative;height:48px;overflow:hidden;border:0;border-radius:11px;background:linear-gradient(100deg,#7659f4,#7964f1 42%,#3de0d2);color:#fff;font-weight:900;cursor:pointer;box-shadow:0 9px 28px #6250e246;transition:.2s}.neon-login-submit:before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,#ffffff42 50%,transparent 70%);transform:translateX(-130%);animation:buttonShine 3s ease-in-out infinite}.neon-login-submit:hover{transform:translateY(-1px);box-shadow:0 12px 34px #6250e266}.neon-login-submit span{margin-right:9px}.mobile-login-foot{display:flex;align-items:center;gap:10px;margin-top:19px;color:#555c6c}.mobile-login-foot span{height:1px;flex:1;background:#242834}.mobile-login-foot small{font-size:7px;letter-spacing:2px}.auth-body:has(.mobile-login-stage){overflow:auto;background:#05060a}.auth-body:has(.mobile-login-stage) .auth-shell{min-height:100vh}
@keyframes mascotFloat{0%,100%{transform:translateY(3px) rotate(-1deg)}50%{transform:translateY(-8px) rotate(1deg)}}@keyframes mascotGlow{from{opacity:.55;transform:scale(.9)}to{opacity:1;transform:scale(1.08)}}@keyframes buttonShine{0%,55%{transform:translateX(-130%)}85%,100%{transform:translateX(130%)}}@keyframes loginAura{from{transform:translateX(-18px)}to{transform:translateX(18px)}}
@media(max-width:520px){.mobile-login-stage{padding:14px}.mobile-login-card{padding:21px 21px 19px;border-radius:31px}.mobile-login-head h1{font-size:26px}.mascot-wrap{height:150px}.mascot-wrap img{width:175px;height:175px}}
@media(prefers-reduced-motion:reduce){.mascot-wrap img,.mascot-glow,.mobile-login-card:before,.neon-login-submit:before{animation:none}}
.mascot-wrap{animation:mascotFloat 3.2s ease-in-out infinite}.mascot-wrap img{position:absolute;animation:none;transition:opacity .32s ease,transform .42s cubic-bezier(.2,.8,.2,1)}.mascot-private{opacity:0;transform:translateY(8px) scale(.9)}.mobile-login-card.password-active .mascot-normal{opacity:0;transform:translateY(10px) scale(.9)}.mobile-login-card.password-active .mascot-private{opacity:1;transform:translateY(-5px) scale(1)}.mobile-login-card.password-active .mascot-glow{background:linear-gradient(90deg,#815dff77,#1be2d177);transform:scale(1.12)}
/* Embossed electric login */
.embossed-login-stage{position:relative;min-height:100vh;display:grid;place-items:center;overflow:hidden;padding:34px;background:#e8edf5;color:#273247;direction:rtl}.embossed-login-stage:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 25% 20%,#fff9,transparent 28%),radial-gradient(circle at 78% 75%,#cbd8ea88,transparent 31%)}.embossed-shape{position:absolute;width:310px;height:310px;border-radius:70px;background:#e8edf5;box-shadow:22px 22px 45px #c4cbd6,-22px -22px 45px #fff;transform:rotate(35deg)}.shape-one{top:-130px;left:-100px}.shape-two{right:-100px;bottom:-145px;transform:rotate(58deg)}.embossed-login-card{position:relative;z-index:2;width:min(410px,100%);padding:35px 34px 30px;border:1px solid #ffffffb8;border-radius:38px;background:#e8edf5;box-shadow:24px 24px 54px #bcc4d0,-24px -24px 54px #fff}.embossed-login-card:before,.embossed-login-card:after{content:"";position:absolute;z-index:-1;width:105px;height:105px;border-radius:28px;background:#e8edf5;box-shadow:13px 13px 28px #c0c8d4,-13px -13px 28px #fff}.embossed-login-card:before{top:-28px;right:-34px;transform:rotate(18deg)}.embossed-login-card:after{bottom:-30px;left:-35px;transform:rotate(-20deg)}.embossed-lock{width:76px;height:76px;display:grid;place-items:center;margin:0 auto 17px;border-radius:50%;background:#e8edf5;box-shadow:inset 5px 5px 10px #c4ccd7,inset -5px -5px 10px #fff,8px 8px 20px #c4ccd7,-8px -8px 20px #fff;font-size:28px}.embossed-login-card header{text-align:center}.embossed-login-card header h1{margin:0;color:#202b40;font-size:29px}.embossed-login-card header p{margin:6px 0 25px;color:#8993a5;font-size:11px}.embossed-error{font-size:11px}.embossed-login-form{display:grid;gap:17px}.embossed-login-form>label{display:grid;gap:7px;color:#6f7b90;font-size:10px;font-weight:800}.electric-field{position:relative;display:flex;align-items:center;height:52px;padding:2px;border-radius:13px;background:#e8edf5;box-shadow:inset 6px 6px 12px #c6ceda,inset -6px -6px 12px #fff}.electric-field:before{content:"";position:absolute;inset:-2px;border-radius:14px;padding:2px;background:conic-gradient(from var(--electric-angle,0deg),transparent 0 62%,#23d7ee 72%,#4a7cff 79%,transparent 88%);opacity:0;transition:.25s;pointer-events:none;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude}.electric-field:focus-within:before{opacity:1;animation:electricSpin 2.2s linear infinite}.electric-field input{width:100%;height:100%;min-width:0;border:0;background:transparent;color:#344057;padding:0 14px;box-shadow:none}.electric-field input:focus{border:0;box-shadow:none}.embossed-peek{width:44px;height:100%;border:0;background:transparent;color:#69758a;cursor:pointer}.embossed-options{display:flex;align-items:center;justify-content:space-between;font-size:9px}.embossed-options>label{display:flex;align-items:center;gap:6px;color:#788397}.embossed-options input{width:14px;height:14px;accent-color:#3f82d9}.embossed-options a{color:#347cd0}.embossed-submit{height:50px;border:0;border-radius:13px;background:#e8edf5;color:#286db9;font-weight:900;cursor:pointer;box-shadow:8px 8px 17px #c2cad6,-8px -8px 17px #fff;transition:.18s}.embossed-submit:hover{color:#155793;box-shadow:5px 5px 11px #c2cad6,-5px -5px 11px #fff}.embossed-submit:active{box-shadow:inset 5px 5px 10px #c2cad6,inset -5px -5px 10px #fff}.embossed-login-card footer{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:25px;color:#98a1b1;font-size:9px}.embossed-login-card footer b{width:27px;height:27px;display:grid;place-items:center;border-radius:50%;color:#3f7ec6;box-shadow:4px 4px 9px #c2cad6,-4px -4px 9px #fff;font-size:8px}.auth-body:has(.embossed-login-stage){overflow:auto;background:#e8edf5}.auth-body:has(.embossed-login-stage) .auth-shell{min-height:100vh}
@property --electric-angle{syntax:"<angle>";initial-value:0deg;inherits:false}@keyframes electricSpin{to{--electric-angle:360deg}}
@media(max-width:520px){.embossed-login-stage{padding:18px}.embossed-login-card{padding:29px 23px 25px;border-radius:31px}.embossed-lock{width:67px;height:67px}.embossed-login-card:before,.embossed-login-card:after{display:none}}
@media(prefers-reduced-motion:reduce){.electric-field:focus-within:before{animation:none;background:#4a8edb}}
/* Login polish: brand, validation and submit feedback */
.embossed-login-card{animation:embossedCardIn .7s cubic-bezier(.2,.8,.2,1) both}.embossed-logo{width:78px;height:78px;display:flex;flex-direction:column;align-items:center;justify-content:center;margin:0 auto 17px;border-radius:50%;background:#e8edf5;box-shadow:inset 5px 5px 10px #c4ccd7,inset -5px -5px 10px #fff,8px 8px 20px #c4ccd7,-8px -8px 20px #fff;color:#286db9;direction:ltr}.embossed-logo b{font-size:20px;line-height:1}.embossed-logo span{margin-top:4px;font-size:6px;font-weight:800;letter-spacing:1px}.embossed-lock{display:none}.field-error{min-height:12px;margin-top:-3px;color:#cf5264;font-size:9px;font-weight:600}.electric-field.has-error{box-shadow:inset 6px 6px 12px #c6ceda,inset -6px -6px 12px #fff,0 0 0 1px #df7180}.electric-field.has-error:before{opacity:0}.embossed-submit{position:relative;display:grid;place-items:center}.embossed-submit:disabled{cursor:wait;color:#7f8ba0}.submit-label,.submit-loader{grid-area:1/1}.submit-loader{width:19px;height:19px;border:2px solid #b8c6d8;border-top-color:#347cd0;border-radius:50%;opacity:0}.embossed-login-form.is-loading .submit-label{opacity:0}.embossed-login-form.is-loading .submit-loader{opacity:1;animation:submitSpin .75s linear infinite}@keyframes embossedCardIn{from{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:none}}@keyframes submitSpin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.embossed-login-card{animation:none}.embossed-login-form.is-loading .submit-loader{animation:none}}
.embossed-logo{overflow:hidden}.embossed-logo img{width:62px;height:62px;display:block;object-fit:contain;border-radius:50%}.social-login{margin-top:21px}.social-divider{display:flex;align-items:center;gap:10px;color:#8d97a8;font-size:9px}.social-divider:before,.social-divider:after{content:"";height:1px;flex:1;background:#d3dae4;box-shadow:0 1px #fff}.social-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:13px;direction:ltr}.social-button{height:45px;min-width:0;display:flex;align-items:center;justify-content:center;gap:7px;border:0;border-radius:11px;background:#e8edf5;color:#6f7b8f;cursor:pointer;box-shadow:5px 5px 11px #c5cdd8,-5px -5px 11px #fff;transition:.18s}.social-button:hover{transform:translateY(-1px);color:#263247}.social-button:active{transform:none;box-shadow:inset 3px 3px 7px #c5cdd8,inset -3px -3px 7px #fff}.social-button b{font-family:Arial,sans-serif;font-size:15px}.social-button span{overflow:hidden;font-size:9px;font-weight:700;text-overflow:ellipsis}.social-button.google b{color:#4285f4}.social-button.facebook b{color:#1877f2;font-size:20px}.social-button.microsoft b{width:14px;height:14px;display:grid;grid-template-columns:1fr 1fr;gap:1px}.social-button.microsoft i{display:block}.social-button.microsoft i:nth-child(1){background:#f35325}.social-button.microsoft i:nth-child(2){background:#81bc06}.social-button.microsoft i:nth-child(3){background:#05a6f0}.social-button.microsoft i:nth-child(4){background:#ffba08}.social-note{display:block;min-height:12px;margin-top:8px;color:#347cd0;text-align:center;font-size:9px}.social-login+footer{margin-top:12px}
@media(max-width:380px){.social-button span{display:none}.social-button{gap:0}}
/* Larger, more readable login scale */
.embossed-login-card{width:min(480px,100%);padding:40px 40px 34px}.embossed-logo{width:92px;height:92px;margin-bottom:21px}.embossed-logo img{width:76px;height:76px}.embossed-login-card header h1{font-size:36px}.embossed-login-card header p{margin:8px 0 29px;font-size:14px}.embossed-login-form{gap:19px}.embossed-login-form>label{gap:8px;font-size:13px}.electric-field{height:58px;border-radius:15px}.electric-field:before{border-radius:16px}.electric-field input{padding:0 17px;font-size:15px}.embossed-peek{width:50px;font-size:16px}.field-error{min-height:14px;font-size:11px}.embossed-options{font-size:12px}.embossed-options input{width:17px;height:17px}.embossed-submit{height:57px;font-size:17px}.social-login{margin-top:25px}.social-divider{font-size:11px}.social-buttons{gap:11px;margin-top:16px}.social-button{height:52px}.social-button span{font-size:11px}.social-button b{font-size:18px}.social-button.facebook b{font-size:23px}.social-note{min-height:14px;font-size:11px}.embossed-login-card footer{margin-top:15px;font-size:11px}.embossed-login-card footer b{width:31px;height:31px;font-size:9px}
@media(max-width:520px){.embossed-login-card{padding:31px 25px 27px}.embossed-logo{width:82px;height:82px}.embossed-logo img{width:68px;height:68px}.embossed-login-card header h1{font-size:32px}.embossed-login-card header p{font-size:13px}.embossed-login-form>label{font-size:12px}.electric-field{height:55px}.embossed-options{font-size:11px}.embossed-submit{height:54px;font-size:16px}.social-button{height:49px}}
@media(min-width:521px) and (max-height:850px){.embossed-login-stage{padding:22px}.embossed-login-card{padding:25px 38px 22px}.embossed-logo{width:76px;height:76px;margin-bottom:12px}.embossed-logo img{width:63px;height:63px}.embossed-login-card header h1{font-size:34px}.embossed-login-card header p{margin:5px 0 19px}.embossed-login-form{gap:13px}.electric-field{height:53px}.embossed-submit{height:52px}.social-login{margin-top:17px}.social-buttons{margin-top:10px}.social-button{height:45px}.social-note{margin-top:5px}.embossed-login-card footer{margin-top:7px}}
.login-tools{position:absolute;z-index:3;top:22px;left:22px;display:flex;gap:8px;direction:ltr}.login-tool{width:35px;height:35px;padding:0;border:0;border-radius:50%;background:#e8edf5;color:#657287;cursor:pointer;box-shadow:4px 4px 9px #c2cad6,-4px -4px 9px #fff;font-size:11px;font-weight:800}.login-tool:active{box-shadow:inset 3px 3px 7px #c2cad6,inset -3px -3px 7px #fff}.academic-year{display:block;margin:-21px 0 24px;color:#347cd0;font-size:10px;font-weight:700}.caps-warning{display:none;min-height:12px;margin-top:-3px;color:#c98518;font-size:10px;font-weight:700}.caps-warning.show{display:block}.login-dark .embossed-login-stage{background:#202733;color:#e7edf6}.login-dark .embossed-login-stage:before{background:radial-gradient(circle at 25% 20%,#39445599,transparent 28%),radial-gradient(circle at 78% 75%,#10151e99,transparent 31%)}.login-dark .embossed-shape,.login-dark .embossed-login-card,.login-dark .embossed-login-card:before,.login-dark .embossed-login-card:after,.login-dark .embossed-logo,.login-dark .electric-field,.login-dark .embossed-submit,.login-dark .social-button,.login-dark .login-tool{background:#202733;box-shadow:8px 8px 18px #141922,-8px -8px 18px #303a4a}.login-dark .embossed-logo{box-shadow:inset 5px 5px 10px #141922,inset -5px -5px 10px #303a4a,8px 8px 18px #141922,-8px -8px 18px #303a4a}.login-dark .electric-field{box-shadow:inset 6px 6px 12px #141922,inset -6px -6px 12px #303a4a}.login-dark .embossed-login-card header h1,.login-dark .electric-field input{color:#edf3fb}.login-dark .embossed-login-card header p,.login-dark .embossed-login-form>label,.login-dark .embossed-options>label,.login-dark .social-button{color:#aeb9c9}.login-dark .social-divider:before,.login-dark .social-divider:after{background:#394454;box-shadow:none}.login-dark .embossed-submit{color:#62a8f4}.login-dark .embossed-login-card{border-color:#ffffff12}.login-dark.auth-body{background:#202733}
@media(max-width:520px){.login-tools{top:17px;left:17px}.login-tool{width:32px;height:32px}.academic-year{margin-bottom:22px}}
html[lang="fr"] .embossed-login-stage{direction:ltr}html[lang="fr"] .embossed-login-form>label{text-align:left}html[lang="fr"] .electric-field input{text-align:left}html[lang="fr"] .embossed-options{direction:ltr}
.login-dark .electric-field input:-webkit-autofill,.login-dark .electric-field input:-webkit-autofill:hover,.login-dark .electric-field input:-webkit-autofill:focus{-webkit-text-fill-color:#edf3fb;-webkit-box-shadow:0 0 0 1000px #202733 inset;transition:background-color 9999s ease-out}
/* Translucent glass treatment */
.embossed-login-card{background:rgba(232,237,245,.68);border-color:rgba(255,255,255,.72);box-shadow:24px 24px 54px rgba(150,162,179,.48),-20px -20px 45px rgba(255,255,255,.78);backdrop-filter:blur(18px) saturate(125%);-webkit-backdrop-filter:blur(18px) saturate(125%)}.embossed-logo,.electric-field,.embossed-submit,.social-button,.login-tool{background:rgba(232,237,245,.58)}.electric-field input{background:rgba(255,255,255,.08)}.embossed-login-card:before,.embossed-login-card:after{background:rgba(232,237,245,.52);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.login-dark .embossed-login-card{background:rgba(26,33,44,.7);border-color:rgba(255,255,255,.1);box-shadow:24px 24px 54px rgba(5,8,13,.55),-12px -12px 36px rgba(62,76,96,.3)}.login-dark .embossed-logo,.login-dark .electric-field,.login-dark .embossed-submit,.login-dark .social-button,.login-dark .login-tool{background:rgba(32,39,51,.62)}.login-dark .embossed-login-card:before,.login-dark .embossed-login-card:after{background:rgba(32,39,51,.52)}
.electric-field{background:rgba(232,237,245,.3);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.electric-field input,.electric-field input:focus{background:transparent!important}.electric-field input:-webkit-autofill,.electric-field input:-webkit-autofill:hover,.electric-field input:-webkit-autofill:focus{-webkit-text-fill-color:#344057;-webkit-box-shadow:0 0 0 1000px rgba(232,237,245,.18) inset!important;box-shadow:0 0 0 1000px rgba(232,237,245,.18) inset!important;caret-color:#344057;transition:background-color 9999s ease-out}.login-dark .electric-field{background:rgba(22,28,38,.32)}.login-dark .electric-field input:-webkit-autofill,.login-dark .electric-field input:-webkit-autofill:hover,.login-dark .electric-field input:-webkit-autofill:focus{-webkit-text-fill-color:#edf3fb;-webkit-box-shadow:0 0 0 1000px rgba(32,39,51,.2) inset!important;box-shadow:0 0 0 1000px rgba(32,39,51,.2) inset!important;caret-color:#edf3fb}
.embossed-login-card .login-signature{display:flex;flex-direction:column;gap:4px;direction:ltr}.login-signature span{font-size:11px}.login-signature strong{color:#477caf;font-size:12px;font-weight:800;letter-spacing:1px}.login-dark .login-signature strong{color:#73a9e6}
.embossed-login-card header .platform-title{margin:0;color:#202b40;font-size:32px;line-height:1.35}.embossed-login-card header h2{margin:4px 0 0;color:#5684b8;font-size:18px}.login-dark .embossed-login-card header .platform-title{color:#edf3fb}.login-dark .embossed-login-card header h2{color:#73a9e6}@media(max-width:520px){.embossed-login-card header .platform-title{font-size:28px}.embossed-login-card header h2{font-size:17px}}@media(min-width:521px) and (max-height:850px){.embossed-login-card header .platform-title{font-size:30px}.embossed-login-card header h2{font-size:16px}}
/* Dashboard actions, filters, charts and saved dark theme */
.dashboard-head-actions{display:flex;align-items:center;gap:9px}.dashboard-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px;padding:12px;background:#fff;border:1px solid var(--dash-line);border-radius:8px}.quick-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.quick-actions a{min-height:42px;display:flex;align-items:center;gap:7px;padding:7px 12px;border:1px solid #e2e8f0;border-radius:7px;color:#33415a;background:#f8fafc;font-size:12px;font-weight:700}.quick-actions a:hover{border-color:#b9c9e2;background:#eef4ff;color:#1d4ed8}.quick-actions b{width:25px;height:25px;display:grid;place-items:center;border-radius:6px;background:#e7efff;color:#2563eb;font-size:14px}.period-filter{display:flex;flex:0 0 auto;padding:3px;background:#eef2f7;border-radius:7px}.period-filter a{min-width:64px;padding:8px 12px;border-radius:5px;color:#64748b;text-align:center;font-size:12px;font-weight:700}.period-filter a.active{background:#fff;color:#1d4ed8;box-shadow:0 2px 7px rgba(30,41,59,.1)}.dashboard-chart-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,.8fr);gap:16px;margin-bottom:16px}.dashboard-chart-grid .panel{margin-bottom:0}.dashboard-chart-grid canvas{width:100%!important;height:285px!important}.attendance-chart canvas{max-width:300px;margin:auto}.dashboard-dark{background:#101722!important;color:#e8edf5}.dashboard-dark .main{background:#101722}.dashboard-dark .topbar,.dashboard-dark .panel,.dashboard-dark .stat-card,.dashboard-dark .info-card,.dashboard-dark .dashboard-toolbar{background:#182231;border-color:#2b3a4e;color:#e8edf5}.dashboard-dark .top-search,.dashboard-dark input,.dashboard-dark select,.dashboard-dark textarea{background:#111a27;border-color:#34445a;color:#e8edf5}.dashboard-dark .icon-btn,.dashboard-dark .period-filter a.active{background:#202c3d;border-color:#35465c;color:#e8edf5}.dashboard-dark .period-filter{background:#111a27}.dashboard-dark .quick-actions a{background:#202c3d;border-color:#35465c;color:#d8e1ee}.dashboard-dark .quick-actions a:hover{background:#26364c;border-color:#4b6590}.dashboard-dark .quick-actions b{background:#243d68;color:#8cb7ff}.dashboard-dark .page-head p,.dashboard-dark .panel-head p,.dashboard-dark .stat-card span,.dashboard-dark .info-card span,.dashboard-dark .capacity-item small,.dashboard-dark .alert-row small{color:#9eabc0}.dashboard-dark .alert-row,.dashboard-dark .capacity-item{border-color:#2b3a4e}.dashboard-dark .progress{background:#28364a}.dashboard-dark .user-chip{color:#e8edf5}.dashboard-dark table th{background:#141e2b;color:#aebbd0}.dashboard-dark table td{border-color:#2b3a4e}.dashboard-dark tr:hover td{background:#1d2939}@media(max-width:900px){.dashboard-toolbar{align-items:stretch;flex-direction:column}.period-filter{align-self:flex-start}.dashboard-chart-grid{grid-template-columns:1fr}}@media(max-width:600px){.dashboard-head-actions{width:100%}.dashboard-head-actions .btn{flex:1}.quick-actions{display:grid;grid-template-columns:repeat(2,1fr)}.quick-actions a{justify-content:flex-start}.period-filter{width:100%}.period-filter a{flex:1;min-width:0}.dashboard-chart-grid canvas{height:250px!important}}
/* UI/UX Pro Max accessibility and interaction pass */
.embossed-login-card{background:rgba(232,237,245,.78)}.embossed-login-card header p{color:#69768b}.academic-year{font-size:12px}.embossed-login-form>label{color:#536178}.electric-field input{font-size:16px}.embossed-options{font-size:13px}.login-tool{width:var(--ui-touch);height:var(--ui-touch)}.embossed-peek{min-width:var(--ui-touch)}.social-button{min-height:48px}.embossed-submit{min-height:52px}.login-tool,.embossed-peek,.embossed-submit,.social-button,.embossed-options a{touch-action:manipulation}.login-tool:focus-visible,.embossed-peek:focus-visible,.embossed-submit:focus-visible,.social-button:focus-visible,.embossed-options a:focus-visible,.electric-field input:focus-visible{outline:3px solid var(--ui-focus);outline-offset:3px}.electric-field:focus-within{box-shadow:inset 6px 6px 12px #c6ceda,inset -6px -6px 12px #fff,0 0 0 4px var(--ui-focus-ring)}.login-dark .embossed-login-card{background:rgba(26,33,44,.82)}.login-dark .embossed-login-card header p,.login-dark .embossed-options>label{color:#c3cddb}.login-dark .embossed-login-form>label{color:#d1d9e4}.login-dark .academic-year,.login-dark .embossed-options a{color:#8fc5ff}@media(max-width:520px){.login-tools{top:14px;left:14px}.login-tool{width:44px;height:44px}.embossed-options{font-size:12px}.social-button span{font-size:12px}}@media(prefers-reduced-motion:reduce){.login-tool,.embossed-peek,.embossed-submit,.social-button{transition:none!important}}
/* Shared productivity layer */
.search-shortcut{margin-inline-start:auto;border:1px solid #d8deeb;background:#f7f9fc;color:#687386;border-radius:6px;padding:4px 8px;font:600 11px/1.2 inherit;white-space:nowrap;cursor:pointer}
.command-palette{position:fixed;inset:0;z-index:1200;display:none;align-items:flex-start;justify-content:center;padding:12vh 16px;background:rgba(15,23,42,.48);backdrop-filter:blur(6px)}
.command-palette.open{display:flex}.command-dialog{width:min(620px,100%);overflow:hidden;border:1px solid rgba(255,255,255,.55);border-radius:8px;background:#fff;box-shadow:0 28px 80px rgba(15,23,42,.25)}
.command-search{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid #e8ecf3}.command-search>span{font-size:24px;color:#667085}.command-search input{min-width:0;flex:1;border:0;outline:0;background:transparent;font:600 16px/1.5 inherit;color:#111827}.command-search kbd{padding:4px 7px;border:1px solid #d8deeb;border-bottom-width:2px;border-radius:5px;background:#f7f9fc;color:#667085;font:600 11px inherit}
.command-list{max-height:380px;overflow:auto;padding:8px}.command-list a{display:flex;align-items:center;gap:12px;min-height:48px;padding:8px 10px;border-radius:6px;color:#253047;text-decoration:none}.command-list a:hover,.command-list a:focus,.command-list a.selected{background:#eef2ff;color:#4244c7;outline:0}.command-list i{display:grid;place-items:center;width:32px;height:32px;border-radius:6px;background:#f1f4f9;font-style:normal}.command-list span{flex:1;font-weight:700}.command-list small{color:#8b95a7}.command-dialog footer{display:flex;justify-content:space-between;padding:10px 16px;border-top:1px solid #e8ecf3;background:#fafbfc;color:#7a8496;font-size:12px}
.table-tools{flex-wrap:wrap;gap:10px}.table-local-search{min-width:220px;min-height:42px;padding:8px 12px;border:1px solid #dde3ed;border-radius:6px;background:#fff;color:#162033;font:inherit}.table-local-search:focus{border-color:#5b5ce2;outline:3px solid rgba(91,92,226,.14)}
th.sortable{cursor:pointer;user-select:none;position:relative;padding-inline-end:24px}th.sortable::after{content:'⇅';position:absolute;inset-inline-end:7px;color:#98a2b3;font-size:12px}.table-pager{display:flex;align-items:center;justify-content:center;gap:12px;padding:14px;border-top:1px solid #edf0f5}.table-pager button{display:grid;place-items:center;width:38px;height:38px;border:1px solid #dbe1ea;border-radius:6px;background:#fff;color:#374151;font-size:22px;cursor:pointer}.table-pager button:disabled{opacity:.4;cursor:not-allowed}.table-pager span{min-width:130px;text-align:center;color:#687386;font-size:13px;font-variant-numeric:tabular-nums}
.profile-tabs{display:flex;gap:6px;margin:16px 0;padding:5px;border-bottom:1px solid #dfe5ee;overflow-x:auto}.profile-tabs button{min-height:42px;padding:8px 16px;border:0;border-bottom:3px solid transparent;background:transparent;color:#697386;font:700 14px inherit;white-space:nowrap;cursor:pointer}.profile-tabs button.active{border-color:#5b5ce2;color:#4244c7}.profile-layout [hidden]{display:none!important}
.dashboard-insights{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin:14px 0;overflow:hidden;border:1px solid #e2e7ef;border-radius:8px;background:#e2e7ef}.dashboard-insights>div{display:grid;grid-template-columns:1fr auto;gap:3px 12px;padding:14px 16px;background:#fff}.dashboard-insights span{color:#667085;font-size:13px}.dashboard-insights strong{grid-row:1/3;grid-column:2;font-size:22px;font-variant-numeric:tabular-nums}.dashboard-insights small{color:#98a2b3}.dashboard-insights .positive{color:#16835c}.dashboard-insights .negative{color:#d13c55}.dashboard-dark .dashboard-insights{border-color:#29364b;background:#29364b}.dashboard-dark .dashboard-insights>div{background:#172236}.dashboard-dark .dashboard-insights span,.dashboard-dark .dashboard-insights small{color:#aab5c7}
.empty{min-height:180px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center}.empty>div{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#f1f4f9;color:#667085;font-size:20px}
button,a,input,select,textarea{touch-action:manipulation}:focus-visible{outline:3px solid rgba(91,92,226,.3);outline-offset:2px}
.is-loading{position:relative;cursor:wait!important;opacity:.72}.is-loading::before{content:'';display:inline-block;width:14px;height:14px;margin-inline-end:8px;border:2px solid currentColor;border-inline-start-color:transparent;border-radius:50%;vertical-align:-2px;animation:ui-spin .7s linear infinite}@keyframes ui-spin{to{transform:rotate(360deg)}}
.sidebar-collapse{position:absolute;left:-14px;top:84px;display:grid;place-items:center;width:30px;height:30px;border:1px solid #dce2ec;border-radius:50%;background:#fff;color:#40506b;box-shadow:0 4px 14px #101c3d22;cursor:pointer;z-index:2;transition:transform .2s}.sidebar-collapsed .sidebar-collapse{transform:rotate(180deg)}
.breadcrumbs{display:flex;align-items:center;gap:8px;margin:-7px 0 12px;color:#8a94a6;font-size:12px}.breadcrumbs a{color:#667085}.breadcrumbs a:hover{color:#4f51d2}.breadcrumbs strong{color:#344054;font-weight:700}.global-theme-toggle{flex:0 0 auto}
@media(min-width:1001px){.sidebar,.main{transition:width .22s,margin .22s}.sidebar-collapsed .sidebar{width:78px;padding-inline:11px}.sidebar-collapsed .main{width:calc(100% - 78px);margin-right:78px}.sidebar-collapsed .brand{justify-content:center;padding-inline:0}.sidebar-collapsed .brand>span:last-child,.sidebar-collapsed .sidebar nav a span,.sidebar-collapsed .sidebar-foot{display:none}.sidebar-collapsed .sidebar nav a{justify-content:center;padding-inline:8px}.sidebar-collapsed .sidebar nav a i{width:28px}.sidebar-collapsed .brand-logo-img{max-width:48px}}
.top-actions{position:relative}.notification-popover{position:absolute;top:52px;left:48px;z-index:90;display:none;width:350px;padding:8px;border:1px solid #e1e6ef;border-radius:8px;background:#fff;box-shadow:0 20px 55px #17213c26}.notification-popover.open{display:block}.notification-popover header{display:flex;align-items:center;justify-content:space-between;padding:10px 10px 12px;border-bottom:1px solid #edf0f5}.notification-popover header b,.notification-popover header small{display:block}.notification-popover header small{margin-top:3px;color:#8b95a7}.notification-popover header>a{font-size:12px;font-weight:700}.notification-popover> a{display:flex;align-items:center;gap:11px;padding:11px 9px;border-radius:6px;color:#253047}.notification-popover>a:hover{background:#f6f8fc}.notification-popover>a i{display:grid;place-items:center;width:34px;height:34px;border-radius:7px;font-style:normal;font-weight:800}.notification-popover>a i.danger{background:#ffeaee;color:#d33b54}.notification-popover>a i.warning{background:#fff2dd;color:#b96b08}.notification-popover>a i.info{background:#e9edff;color:#4d50c9}.notification-popover>a span{min-width:0}.notification-popover>a b,.notification-popover>a small{display:block}.notification-popover>a small{margin-top:2px;color:#8993a5;font-size:11px}
.mobile-bottom-nav{display:none}.table-status-filter{min-height:42px;min-width:150px}.column-picker{position:relative}.column-picker summary{display:flex;align-items:center;min-height:42px;padding:8px 12px;border:1px solid #dde3ed;border-radius:6px;background:#fff;color:#42506a;font-weight:700;cursor:pointer;list-style:none}.column-picker summary::-webkit-details-marker{display:none}.column-picker>div{position:absolute;left:0;top:48px;z-index:15;display:grid;gap:3px;min-width:190px;padding:8px;border:1px solid #dfe5ee;border-radius:7px;background:#fff;box-shadow:0 15px 40px #17213c20}.column-picker label{display:flex;align-items:center;gap:8px;padding:7px;border-radius:5px;cursor:pointer}.column-picker label:hover{background:#f4f6fa}.column-picker input{width:16px;height:16px;accent-color:#5b5ce2}
.confirm-layer{position:fixed;inset:0;z-index:1400;display:none;place-items:center;padding:18px;background:rgba(15,23,42,.55);backdrop-filter:blur(5px)}.confirm-layer.open{display:grid}.confirm-dialog{width:min(430px,100%);padding:25px;border-radius:8px;background:#fff;box-shadow:0 28px 80px #0f172a45;text-align:center}.confirm-dialog>i{display:grid;place-items:center;width:52px;height:52px;margin:0 auto 13px;border-radius:50%;background:#ffedf0;color:#d83c55;font-style:normal;font-size:24px;font-weight:900}.confirm-dialog h2{margin:0;color:#17213c;font-size:20px}.confirm-dialog p{margin:8px auto 21px;max-width:330px;color:#697386;line-height:1.7}.confirm-dialog>div{display:flex;justify-content:center;gap:9px}.btn.danger{background:#dc4059;color:#fff}.confirm-dialog button{min-width:110px;min-height:44px}
.dashboard-dark .notification-popover,.dashboard-dark .column-picker>div,.dashboard-dark .column-picker summary,.dashboard-dark .confirm-dialog{background:#182231;border-color:#34445a;color:#e8edf5}.dashboard-dark .notification-popover>a{color:#e8edf5}.dashboard-dark .notification-popover>a:hover{background:#202c3d}.dashboard-dark .confirm-dialog h2{color:#f3f6fa}
.dashboard-dark .modal-card,.dashboard-dark .installment-card,.dashboard-dark .announcement-card,.dashboard-dark .wa-message-card,.dashboard-dark .lesson-card,.dashboard-dark .group-card,.dashboard-dark .simple-card,.dashboard-dark .settings-nav{background:#182231;border-color:#2b3a4e;color:#e8edf5}.dashboard-dark .modal-head,.dashboard-dark .table-tools,.dashboard-dark .table-pager,.dashboard-dark .timeline-item,.dashboard-dark .payment-line{border-color:#2b3a4e}.dashboard-dark .btn.ghost,.dashboard-dark .action,.dashboard-dark .search-box,.dashboard-dark .table-local-search,.dashboard-dark .table-status-filter{background:#202c3d;border-color:#35465c;color:#e8edf5}.dashboard-dark .breadcrumbs strong{color:#e5eaf2}.dashboard-dark .breadcrumbs a,.dashboard-dark .breadcrumbs{color:#aab5c7}.dashboard-dark .empty,.dashboard-dark .muted,.dashboard-dark .modal-head p{color:#aab5c7}.dashboard-dark .mobile-bottom-nav{background:rgba(24,34,49,.97);border-color:#35465c}.dashboard-dark .mobile-bottom-nav a.active{background:#283852;color:#a9c7ff}
.table-role-filter{min-height:42px;min-width:145px}.user-list-identity{display:flex;align-items:center;gap:10px}.user-list-identity .avatar{flex:0 0 auto;width:36px;height:36px;border-radius:7px}.user-list-identity b,.user-list-identity small{display:block}.user-list-identity small{max-width:180px;margin-top:2px;overflow:hidden;color:#8a94a6;font-size:11px;text-overflow:ellipsis}.role-badge{display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border-radius:5px;font-size:11px;font-weight:800}.role-admin{background:#eeeaff;color:#6547c5}.role-secretary{background:#e6f1ff;color:#2670bf}.role-teacher{background:#e5f7ef;color:#16815b}.role-student{background:#fff1dc;color:#ac680c}.last-login b,.last-login small{display:block;font-variant-numeric:tabular-nums}.last-login small{margin-top:2px;color:#8a94a6}.user-details-action{font-family:Georgia,serif;font-weight:800}.user-details-card{width:min(520px,100%)}.user-detail-content{padding:22px}.user-detail-hero{display:flex;align-items:center;gap:13px;padding-bottom:18px;border-bottom:1px solid #e8ecf2}.user-detail-hero .avatar{width:52px;height:52px;font-size:20px}.user-detail-hero div{flex:1}.user-detail-hero h3,.user-detail-hero p{margin:0}.user-detail-hero p{margin-top:3px;color:#8a94a6}.user-detail-content dl{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin:16px 0;background:#e7ebf1}.user-detail-content dl>div{padding:12px;background:#fff}.user-detail-content dt{color:#8a94a6;font-size:11px}.user-detail-content dd{margin:4px 0 0;font-weight:700;overflow-wrap:anywhere}.user-detail-actions{display:flex;justify-content:flex-end}.permission-presets{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;margin:0 0 18px;padding:15px 17px;border:1px solid #dfe5ee;border-radius:8px;background:#fff}.permission-presets b,.permission-presets small{display:block}.permission-presets small{margin-top:3px;color:#8a94a6}.preset-buttons{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.preset-buttons button{min-height:38px;padding:7px 12px;border:1px solid #dbe1eb;border-radius:6px;background:#f8f9fc;color:#475467;font-weight:700;cursor:pointer}.preset-buttons button:hover,.preset-buttons button.active{border-color:#686ae1;background:#eef0ff;color:#4c4fc4}.permission-count{min-width:115px;color:#596579;font-size:12px;font-weight:700;text-align:left}.dashboard-dark .user-detail-content dl{background:#2b3a4e}.dashboard-dark .user-detail-content dl>div,.dashboard-dark .permission-presets{background:#182231;color:#e8edf5;border-color:#34445a}.dashboard-dark .preset-buttons button{background:#202c3d;border-color:#35465c;color:#dce4ef}.dashboard-dark .user-detail-hero{border-color:#34445a}
.personal-schedule-panel{overflow:hidden}.personal-schedule-days{display:grid;grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:10px}.schedule-day{min-width:0;border:1px solid #e2e7ef;border-radius:7px;background:#f8fafc;overflow:hidden}.schedule-day>header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid #e2e7ef;background:#f1f4f8}.schedule-day>header b{font-size:13px}.schedule-day>header span{padding:3px 7px;border-radius:4px;background:#5b5ce2;color:#fff;font-size:10px;font-weight:800}.schedule-day.is-today{border-color:#8f91ed;box-shadow:0 0 0 2px rgba(91,92,226,.1)}.schedule-day>div{display:grid;gap:7px;padding:8px}.schedule-session{padding:10px;border-inline-start:3px solid #5b5ce2;border-radius:5px;background:#fff;box-shadow:0 2px 8px rgba(31,41,55,.05)}.schedule-session time{display:block;color:#4f51c7;font-size:11px;font-weight:800;direction:ltr;text-align:right}.schedule-session strong,.schedule-session small{display:block;margin-top:4px}.schedule-session small{color:#7d8798;font-size:11px;white-space:normal}.schedule-session footer{display:flex;justify-content:space-between;gap:6px;margin-top:8px;padding-top:7px;border-top:1px dashed #e2e7ef;color:#7d8798;font-size:10px}.schedule-empty{min-height:150px}.dashboard-dark .schedule-day{background:#131d2b;border-color:#334258}.dashboard-dark .schedule-day>header{background:#202c3d;border-color:#334258}.dashboard-dark .schedule-session{background:#182638}.dashboard-dark .schedule-session footer{border-color:#334258}
.student-schedule-print-head,.student-schedule-print-footer{display:none}.student-schedule-table-panel .panel-head{align-items:center}.student-schedule-table-wrap{border:1px solid var(--line);border-radius:10px;overflow-x:auto}.student-schedule-table{width:100%;min-width:760px;border-collapse:collapse;white-space:normal}.student-schedule-table th,.student-schedule-table td{text-align:center;vertical-align:middle}.student-schedule-table th{padding:13px 12px;background:#18243f;color:#fff;font-size:12px}.student-schedule-table td{padding:14px 12px;border-bottom:1px solid var(--line);font-size:13px}.student-schedule-table tbody tr:last-child td{border-bottom:0}.student-schedule-table tbody tr:nth-child(even) td{background:rgba(91,92,226,.035)}.student-schedule-table tr.is-today td{background:rgba(91,92,226,.1)}.today-label{display:inline-flex;margin-inline-start:7px;padding:2px 7px;border-radius:999px;background:#5b5ce2;color:#fff;font-size:9px;font-weight:800}.student-schedule-table-panel .btn{min-height:44px}.dashboard-dark .student-schedule-table-wrap{border-color:#334258}.dashboard-dark .student-schedule-table th{background:#101a2b}.dashboard-dark .student-schedule-table td{border-color:#334258}
@media(max-width:800px){.student-schedule-table-panel .panel-head{align-items:stretch;flex-direction:column}.student-schedule-table-panel .panel-head .btn{width:100%}.student-schedule-table-wrap{border-radius:8px}.student-schedule-table th,.student-schedule-table td{padding:12px 10px}}
@page studentSchedule{size:A4 landscape;margin:10mm}
@media print{
  body.student-schedule-printing{background:#fff!important;color:#111!important}
  body.student-schedule-printing .sidebar,body.student-schedule-printing .topbar,body.student-schedule-printing .page>*{display:none!important}
  body.student-schedule-printing .app-shell,body.student-schedule-printing .main,body.student-schedule-printing .page{display:block!important;width:100%!important;max-width:none!important;margin:0!important;padding:0!important}
  body.student-schedule-printing .page>.student-schedule-table-panel{page:studentSchedule;display:block!important;width:100%!important;margin:0!important;padding:8mm!important;border:0!important;border-radius:0!important;box-shadow:none!important;break-inside:avoid!important;page-break-inside:avoid!important}
  body.student-schedule-printing .student-schedule-print-head{display:flex!important;align-items:center;gap:5mm;padding-bottom:4mm;border-bottom:1mm solid #5b5ce2}
  body.student-schedule-printing .student-schedule-print-head img{width:28mm;height:18mm;object-fit:contain}
  body.student-schedule-printing .student-schedule-print-head h1{margin:0;color:#101c3d;font-size:22pt}
  body.student-schedule-printing .student-schedule-print-head p{margin:1mm 0 0;color:#68738c;font-size:10pt}
  body.student-schedule-printing .student-schedule-table-panel .panel-head{display:block!important;margin:5mm 0 3mm}
  body.student-schedule-printing .student-schedule-table-panel .panel-head h2{margin:0;font-size:17pt}
  body.student-schedule-printing .student-schedule-table-panel .panel-head p{margin:1mm 0 0;font-size:9pt}
  body.student-schedule-printing .student-schedule-table-wrap{overflow:visible!important;border:0!important}
  body.student-schedule-printing .student-schedule-table{width:100%!important;min-width:0!important;table-layout:fixed!important;border-collapse:collapse!important}
  body.student-schedule-printing .student-schedule-table th{padding:3.5mm 2mm!important;background:#18243f!important;color:#fff!important;border:1px solid #18243f!important;font-size:10pt!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  body.student-schedule-printing .student-schedule-table td{padding:3.5mm 2mm!important;border:1px solid #ccd3e0!important;background:#fff!important;color:#111!important;font-size:10pt!important}
  body.student-schedule-printing .student-schedule-table tbody tr:nth-child(even) td{background:#f3f5fa!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  body.student-schedule-printing .today-label{background:#5b5ce2!important;color:#fff!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  body.student-schedule-printing .student-schedule-print-footer{display:block!important;margin-top:5mm;padding-top:3mm;border-top:1px solid #dfe3ec;text-align:center;color:#68738c;font-size:9pt}
}

.student-schedule-table tbody tr{height:clamp(120px,calc(420px / var(--schedule-slot-count)),210px)}.student-schedule-table .schedule-time-cell{color:var(--navy)!important}
.student-schedule-table{min-width:880px}.student-schedule-table thead th{padding:11px 5px;font-size:13px}.student-schedule-table tbody tr{height:clamp(118px,calc(320px / var(--schedule-slot-count)),160px)}.student-schedule-table tbody td{padding:6px}.schedule-grid-session{max-width:150px;margin-inline:auto;padding:10px 7px;overflow:hidden}.schedule-grid-session strong{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;min-height:34px;overflow-wrap:anywhere;font-size:12px}.schedule-grid-session b{margin-top:4px}.schedule-grid-session span,.schedule-grid-session small{display:flex;justify-content:center;gap:4px;overflow-wrap:anywhere}.schedule-grid-session span i,.schedule-grid-session small i{color:var(--muted);font-style:normal;font-weight:400}.schedule-time-cell{padding:12px 5px!important}.schedule-time-cell span{font-size:15px}.student-schedule-table caption{padding:12px 15px}.student-schedule-table caption strong{font-size:18px}
@media(max-width:800px){.student-schedule-table{min-width:850px}.student-schedule-table tbody tr{height:140px}.schedule-grid-session{max-width:130px;padding:8px 5px}.schedule-grid-session strong{font-size:11px}.schedule-grid-session span,.schedule-grid-session small{font-size:10px}}
@media print{body.student-schedule-printing .schedule-grid-session{max-width:none!important}body.student-schedule-printing .schedule-grid-session strong{display:block!important;min-height:0!important;overflow:visible!important;-webkit-line-clamp:unset!important;line-clamp:unset!important}body.student-schedule-printing .schedule-grid-session span,body.student-schedule-printing .schedule-grid-session small{display:block!important}}
@media print{body.student-schedule-printing .student-schedule-table tbody tr{height:calc(125mm / var(--schedule-slot-count))!important}}

/* Student weekly timetable - mirrors the printable academy schedule. */
.student-schedule-table{min-width:1040px;table-layout:fixed;direction:rtl}.student-schedule-table caption{padding:16px 18px;text-align:right;background:#fff;border-bottom:1px solid var(--line);caption-side:top}.student-schedule-table caption strong,.student-schedule-table caption span{display:block}.student-schedule-table caption strong{color:var(--navy);font-size:21px}.student-schedule-table caption span{margin-top:4px;color:var(--muted);font-size:12px}.student-schedule-table thead th{width:calc((100% - 104px)/7);padding:13px 8px;border-left:3px solid #fff;border-radius:8px 8px 0 0;background:var(--navy);font-size:15px}.student-schedule-table thead th.is-today{background:#ff6500}.student-schedule-table thead .schedule-time-heading{width:104px;background:#ff6500}.student-schedule-table tbody tr{height:210px}.student-schedule-table tbody td,.student-schedule-table tbody th{border:3px solid #eef1f6;background:#fff}.student-schedule-table tbody td{padding:8px;vertical-align:middle}.student-schedule-table tbody td.is-today{background:#fffaf6}.schedule-time-cell{width:104px;padding:18px 8px!important;background:#f0f3f8!important;color:var(--navy);text-align:center!important}.schedule-time-cell span,.schedule-time-cell i{display:block}.schedule-time-cell span{font-size:17px;font-style:normal;font-weight:900}.schedule-time-cell i{margin:5px 0;color:var(--muted);font-size:11px;font-style:normal}.schedule-grid-session{padding:12px 8px;border-inline-end:4px solid var(--primary);border-radius:8px;background:#f0f1ff;box-shadow:0 4px 12px rgba(49,55,110,.08);text-align:center;white-space:normal}.schedule-grid-session+ .schedule-grid-session{margin-top:7px}.schedule-grid-session strong,.schedule-grid-session b,.schedule-grid-session span,.schedule-grid-session small{display:block}.schedule-grid-session strong{color:var(--navy);font-size:13px;line-height:1.35}.schedule-grid-session b{margin-top:5px;color:#ff6500;font-size:12px}.schedule-grid-session span{margin-top:5px;color:#606a80;font-size:11px}.schedule-grid-session small{margin-top:3px;color:#606a80;font-size:11px;font-weight:700}.student-schedule-print-head{background:linear-gradient(100deg,var(--navy) 0 82%,#ff6500 82%);color:#fff}.dashboard-dark .student-schedule-table caption{background:#182638}.dashboard-dark .student-schedule-table tbody td{background:#131d2b;border-color:#334258}.dashboard-dark .student-schedule-table tbody td.is-today{background:#202536}.dashboard-dark .schedule-time-cell{background:#202c3d!important;color:#fff}.dashboard-dark .schedule-grid-session{background:#252755}
@media(max-width:800px){.student-schedule-table{min-width:920px}.student-schedule-table caption{position:sticky;right:0}.student-schedule-table tbody tr{height:180px}.schedule-grid-session{padding:10px 7px}}
@media print{
  body.student-schedule-printing .student-schedule-print-head{display:flex!important;justify-content:flex-start!important;min-height:25mm;padding:5mm 8mm!important;background:linear-gradient(100deg,#0b2250 0 84%,#ff6500 84%)!important;color:#fff!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  body.student-schedule-printing .student-schedule-print-head img{order:-1;margin-right:auto;background:#fff;border-radius:2mm;padding:1mm}
  body.student-schedule-printing .student-schedule-print-head strong,body.student-schedule-printing .student-schedule-print-head span{display:block!important;color:#fff!important}
  body.student-schedule-printing .student-schedule-print-head strong{font-size:21pt!important}body.student-schedule-printing .student-schedule-print-head span{margin-top:1mm;font-size:9pt!important}
  body.student-schedule-printing .student-schedule-table-panel .panel-head{display:none!important}
  body.student-schedule-printing .student-schedule-table caption{padding:4mm 2mm!important;border:1px solid #dfe4ed!important;text-align:center!important}
  body.student-schedule-printing .student-schedule-table caption strong{font-size:19pt!important}body.student-schedule-printing .student-schedule-table caption span{font-size:9pt!important}
  body.student-schedule-printing .student-schedule-table thead th{width:calc((100% - 25mm)/7)!important;padding:3mm 1mm!important;border:1mm solid #fff!important;border-radius:2mm 2mm 0 0!important;background:#0b2e68!important;font-size:11pt!important}
  body.student-schedule-printing .student-schedule-table thead th.is-today,body.student-schedule-printing .student-schedule-table thead .schedule-time-heading{background:#ff6500!important}
  body.student-schedule-printing .student-schedule-table thead .schedule-time-heading,body.student-schedule-printing .schedule-time-cell{width:25mm!important}
  body.student-schedule-printing .student-schedule-table tbody tr{height:calc(125mm / var(--schedule-slot-count))!important}
  body.student-schedule-printing .student-schedule-table tbody td,body.student-schedule-printing .student-schedule-table tbody th{padding:2mm!important;border:1mm solid #eef1f6!important;vertical-align:middle!important}
  body.student-schedule-printing .schedule-time-cell{background:#edf1f7!important;color:#0b2250!important}
  body.student-schedule-printing .schedule-time-cell span{font-size:12pt!important}body.student-schedule-printing .schedule-time-cell i{font-size:8pt!important}
  body.student-schedule-printing .schedule-grid-session{padding:3mm 1.5mm!important;border-inline-end:1mm solid #5b5ce2!important;border-radius:2mm!important;background:#eef0ff!important;box-shadow:0 1mm 3mm rgba(49,55,110,.08)!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  body.student-schedule-printing .schedule-grid-session strong{font-size:9pt!important}body.student-schedule-printing .schedule-grid-session b{color:#ff6500!important;font-size:8.5pt!important}body.student-schedule-printing .schedule-grid-session span,body.student-schedule-printing .schedule-grid-session small{font-size:8pt!important}
}
@media(max-width:800px){.permission-presets{grid-template-columns:1fr}.permission-count{text-align:right}.preset-buttons{display:grid;grid-template-columns:repeat(2,1fr)}.preset-buttons button{min-height:44px}.user-detail-content dl{grid-template-columns:1fr}.table-role-filter{width:100%}.personal-schedule-days{grid-template-columns:1fr}.schedule-day>header{min-height:44px}.schedule-session{padding:12px}.schedule-session footer{font-size:11px}}
@media(max-width:700px){body:not(.auth-body){padding-bottom:70px}.sidebar-collapse{display:none}.mobile-bottom-nav{position:fixed;right:10px;left:10px;bottom:8px;z-index:80;display:grid;grid-template-columns:repeat(5,1fr);height:62px;padding:5px;border:1px solid #dce2ec;border-radius:8px;background:rgba(255,255,255,.96);box-shadow:0 12px 35px #101c3d2b;backdrop-filter:blur(12px)}.mobile-bottom-nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border-radius:6px;color:#7b8597;font-size:10px;font-weight:700}.mobile-bottom-nav a i{font-style:normal;font-size:18px;line-height:1}.mobile-bottom-nav a.active{background:#eef0ff;color:#4f51d2}.notification-popover{position:fixed;top:68px;right:12px;left:12px;width:auto}.table-tools .column-picker,.table-tools .table-status-filter{width:100%}.column-picker summary{justify-content:center}.column-picker>div{right:0;left:0}.confirm-dialog{padding:22px 18px}}
@media(max-width:768px){.command-palette{padding:8vh 12px}.command-dialog{max-height:80vh}.search-shortcut{display:none}.table-tools{align-items:stretch;flex-direction:column}.table-local-search{width:100%;min-width:0}.profile-tabs{margin-inline:-4px}.profile-tabs button{min-height:48px}.top-search{min-width:0}.top-search input{font-size:16px}.dashboard-insights{grid-template-columns:1fr}.dashboard-insights>div{min-height:74px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
@media print{
  .sidebar-collapse,.mobile-bottom-nav,.notification-popover,.command-palette,.confirm-layer,.breadcrumbs,.global-theme-toggle,.generated-table-tools,.table-local-search,.table-status-filter,.column-picker,.table-pager,.search-shortcut,.password-notice{display:none!important}
  th.sortable{padding-inline-end:15px!important;cursor:default!important}
  th.sortable::after{display:none!important}
  tbody tr[hidden]{display:table-row!important}
  body:not(.calendar-printing):not(.group-schedule-printing){padding-bottom:0!important;background:#fff!important;color:#111!important}
  body:not(.calendar-printing):not(.group-schedule-printing) .panel{box-shadow:none!important;border-color:#d8dde6!important;background:#fff!important;color:#111!important}
}

/* Student timetable print: one clean A5 landscape sheet. */
@page studentSchedule{size:A5 landscape;margin:6mm}
@media print{
  html:has(body.student-schedule-printing),body.student-schedule-printing{width:198mm!important;height:136mm!important;min-width:198mm!important;min-height:136mm!important;max-width:198mm!important;max-height:136mm!important;margin:0!important;padding:0!important;overflow:hidden!important;background:#fff!important}
  body.student-schedule-printing .app-shell,body.student-schedule-printing .main,body.student-schedule-printing .page{display:block!important;width:198mm!important;height:136mm!important;min-width:0!important;min-height:0!important;max-width:198mm!important;max-height:136mm!important;margin:0!important;padding:0!important;overflow:hidden!important}
  body.student-schedule-printing .page>.student-schedule-table-panel{page:studentSchedule;display:block!important;box-sizing:border-box!important;width:198mm!important;height:136mm!important;max-width:198mm!important;max-height:136mm!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;overflow:hidden!important}
  body.student-schedule-printing .student-schedule-print-head{box-sizing:border-box!important;min-height:18mm!important;height:18mm!important;padding:2.5mm 5mm!important;gap:3mm!important}
  body.student-schedule-printing .student-schedule-print-head img{width:20mm!important;height:13mm!important;padding:.6mm!important;border-radius:1mm!important}
  body.student-schedule-printing .student-schedule-print-head strong{font-size:15pt!important;line-height:1.1!important}
  body.student-schedule-printing .student-schedule-print-head span{margin-top:.5mm!important;font-size:6.5pt!important}
  body.student-schedule-printing .student-schedule-table-wrap{height:108mm!important;margin:0!important;overflow:hidden!important}
  body.student-schedule-printing .student-schedule-table{width:198mm!important;height:108mm!important;min-width:0!important;margin:0!important;table-layout:fixed!important}
  body.student-schedule-printing .student-schedule-table caption{box-sizing:border-box!important;height:14mm!important;padding:2mm!important}
  body.student-schedule-printing .student-schedule-table caption strong{font-size:13pt!important;line-height:1.15!important}
  body.student-schedule-printing .student-schedule-table caption span{margin-top:.5mm!important;font-size:6.5pt!important;line-height:1.1!important}
  body.student-schedule-printing .student-schedule-table thead{height:10mm!important}
  body.student-schedule-printing .student-schedule-table thead th{box-sizing:border-box!important;width:calc((100% - 20mm)/7)!important;height:10mm!important;padding:1.5mm .5mm!important;border-width:.6mm!important;border-radius:1mm 1mm 0 0!important;font-size:7.5pt!important;line-height:1!important}
  body.student-schedule-printing .student-schedule-table thead .schedule-time-heading,body.student-schedule-printing .schedule-time-cell{width:20mm!important}
  body.student-schedule-printing .student-schedule-table tbody tr{height:calc(84mm / var(--schedule-slot-count))!important;max-height:84mm!important}
  body.student-schedule-printing .student-schedule-table tbody td,body.student-schedule-printing .student-schedule-table tbody th{box-sizing:border-box!important;padding:1mm!important;border-width:.5mm!important}
  body.student-schedule-printing .schedule-time-cell span{font-size:8.5pt!important;line-height:1.1!important}
  body.student-schedule-printing .schedule-time-cell i{margin:1mm 0!important;font-size:5.5pt!important}
  body.student-schedule-printing .schedule-grid-session{max-width:none!important;margin:0!important;padding:1.5mm .8mm!important;border-inline-end-width:.7mm!important;border-radius:1mm!important;box-shadow:none!important}
  body.student-schedule-printing .schedule-grid-session+.schedule-grid-session{margin-top:1mm!important}
  body.student-schedule-printing .schedule-grid-session strong{display:block!important;min-height:0!important;overflow:visible!important;font-size:6.8pt!important;line-height:1.15!important;-webkit-line-clamp:unset!important;line-clamp:unset!important}
  body.student-schedule-printing .schedule-grid-session b{margin-top:.7mm!important;font-size:6.3pt!important;line-height:1!important}
  body.student-schedule-printing .schedule-grid-session span,body.student-schedule-printing .schedule-grid-session small{display:block!important;margin-top:.6mm!important;font-size:5.8pt!important;line-height:1.1!important}
  body.student-schedule-printing .schedule-grid-session i{display:none!important}
  body.student-schedule-printing .student-schedule-print-footer{box-sizing:border-box!important;height:10mm!important;margin:0!important;padding:2mm 0 0!important;border-top:.3mm solid #dfe3ec!important;font-size:6pt!important;line-height:1!important}
}

/* Profile photos use the active UI bundle on both local and hosted installs. */
.avatar.user-photo{overflow:hidden;padding:0;background:#eef0ff}.avatar.user-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}.profile-avatar-large{position:relative;width:120px;height:120px;flex:0 0 120px;border:3px solid #fff;border-radius:50%;overflow:hidden;background:linear-gradient(145deg,#e8e9ff,#f5f6ff);display:flex;align-items:center;justify-content:center;color:var(--primary);font-size:44px;font-weight:800;box-shadow:0 10px 28px rgba(23,33,60,.16)}.profile-avatar-large img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}.user-profile-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:20px}.profile-user-info h2{margin:0 0 4px}.profile-user-info p{margin:0 0 10px;color:var(--muted);overflow-wrap:anywhere}.avatar-upload-form{display:grid;grid-template-columns:1fr 1fr;gap:8px;min-width:280px}.avatar-upload-form .btn{min-height:44px}.avatar-upload-form small{grid-column:1/-1;color:var(--muted);font-size:11px;line-height:1.5}.profile-hero .avatar.xl.user-photo{width:72px;height:72px;flex:0 0 72px;border:3px solid #fff;border-radius:50%;box-shadow:0 7px 20px rgba(23,33,60,.14)}@media(max-width:750px){.user-profile-card{grid-template-columns:1fr;text-align:center}.profile-avatar-large{margin:auto}.avatar-upload-form{width:100%;min-width:0}.profile-hero .avatar.xl.user-photo{width:64px;height:64px;flex-basis:64px}}
.student-schedule-table tbody tr{height:clamp(120px,calc(420px / var(--schedule-slot-count)),210px)}
/* Sky Academy Portrait: calm blue ring, white separation and restrained elevation. */
.avatar,.profile-avatar-large,.student-photo,.wa-avatar,.student-link img,.vertical-student-photo{border-radius:50%;border:2px solid #fff;background:linear-gradient(145deg,#bce9fb,#76bee3);box-shadow:0 0 0 2px #3d79ad,0 5px 15px rgba(27,75,121,.16)}
.avatar.user-photo img,.profile-avatar-large img,.student-photo img,.wa-avatar img,.vertical-student-photo img{width:100%;height:100%;object-fit:cover;object-position:center}
.profile-avatar-large,.student-photo,.vertical-student-photo{border-width:4px;box-shadow:0 0 0 3px #3d79ad,0 12px 30px rgba(27,75,121,.18)}
.vertical-student-photo{aspect-ratio:1;width:142px;height:142px}
@media(max-width:850px){.vertical-student-photo{width:112px;height:112px}}
