*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;color:#172533;background:#f4f7fb}a{color:#245b88;text-decoration:none}h1,h2{margin-top:0}.app-shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.sidebar{background:#13283b;color:#fff;padding:24px 16px}.brand{display:flex;align-items:center;gap:10px;margin-bottom:30px}.brand.centered{justify-content:center;color:#172533}.brand-mark{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:#245b88;color:#fff;font-weight:800}.brand small{display:block;opacity:.7;font-size:11px}.sidebar nav{display:grid;gap:7px}.sidebar nav a{color:#dce9f5;padding:10px 12px;border-radius:9px}.sidebar nav a:hover{background:#1d3b55}.nav-muted{font-size:11px;opacity:.45;padding:15px 12px;line-height:1.6}.main{min-width:0}.topbar{height:72px;background:#fff;border-bottom:1px solid #dfe7ef;display:flex;align-items:center;justify-content:space-between;padding:0 28px}.topbar small{display:block;color:#6b7b8c}.content{padding:28px;max-width:1440px}.page-title{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:22px}.page-title p,.muted{color:#6b7b8c}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px}.stat,.card{background:#fff;border:1px solid #dfe7ef;border-radius:14px;padding:20px;box-shadow:0 4px 18px rgba(15,35,55,.04)}.stat span{display:block;color:#6b7b8c;font-size:13px}.stat strong{font-size:30px}.card-head{display:flex;align-items:center;justify-content:space-between}.card.narrow{max-width:760px}.card.flat{box-shadow:none}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px;border-bottom:1px solid #dfe7ef;font-size:14px}th{font-size:12px;color:#6b7b8c;text-transform:uppercase}.btn{border:0;border-radius:9px;padding:10px 15px;font-weight:700;cursor:pointer;display:inline-block}.btn.primary{background:#245b88;color:#fff}.btn.ghost{background:#edf3f8;color:#172533}.btn.wide{width:100%;text-align:center}.stack{display:grid;gap:14px}label{font-size:13px;font-weight:700;display:grid;gap:6px}input,select,textarea{width:100%;border:1px solid #cfd9e3;border-radius:9px;padding:11px;background:#fff;font:inherit}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.inline-form{display:grid;grid-template-columns:1fr .7fr auto;gap:8px;margin-bottom:14px}.simple-list{list-style:none;margin:0;padding:0}.simple-list li{display:flex;justify-content:space-between;gap:10px;padding:11px 0;border-bottom:1px solid #dfe7ef}.simple-list small{display:block;color:#6b7b8c}.alert{padding:12px 14px;border-radius:10px;margin-bottom:16px}.alert.success{background:#eaf8f0;color:#17623a}.alert.error{background:#fff0f0;color:#8a2626}.alert.fade{opacity:.25;transition:opacity .6s}.guest-body,.installer-body{min-height:100vh;display:grid;place-items:center;padding:30px;background:linear-gradient(145deg,#edf4fa,#f8fbfd)}.guest-card,.installer{background:#fff;border:1px solid #dfe7ef;border-radius:18px;padding:30px;width:min(520px,100%);box-shadow:0 20px 60px rgba(22,52,78,.12)}.installer{width:min(720px,100%)}.center{text-align:center}.steps{display:flex;justify-content:center;gap:8px;margin:14px 0 24px}.steps span{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#e9eff5;color:#6b7b8c;font-weight:700}.steps span.active{background:#245b88;color:#fff}.requirements{list-style:none;padding:0}.requirements li{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid #dfe7ef}.ok{color:#17834c}.bad{color:#b83232}@media(max-width:850px){.app-shell{grid-template-columns:1fr}.sidebar{display:none}.stats{grid-template-columns:1fr 1fr}.content{padding:18px}.grid2{grid-template-columns:1fr}.inline-form{grid-template-columns:1fr}.topbar{padding:0 18px}}@media(max-width:520px){.stats{grid-template-columns:1fr}.page-title{align-items:flex-start;flex-direction:column}.guest-card,.installer{padding:20px}}
.nav-section{display:block;color:#7fa3c0;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:16px 12px 5px}.module-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:end}.filter-row{display:grid;grid-template-columns:220px 1fr auto;gap:12px;align-items:end}.table-wrap{overflow-x:auto}.table-wrap small,td small{display:block;color:#6b7b8c;margin-top:3px}.badge{display:inline-block;padding:4px 8px;border-radius:999px;background:#edf3f8;color:#42647f;font-size:11px;font-weight:800;text-transform:capitalize}.badge.green{background:#e6f7ee;color:#187447}.badge.red{background:#fdecec;color:#a63131}.version-pill{background:#13283b;color:#fff;border-radius:999px;padding:8px 12px;font-size:12px;font-weight:800}.checkline{display:flex;align-items:center;gap:8px}.checkline input,.checks input{width:auto}.checks{display:flex;gap:18px;flex-wrap:wrap}.checks label{display:flex;grid-template-columns:auto 1fr;align-items:center;gap:7px}.note{background:#f4f8fb;border:1px solid #d8e5ef;padding:12px;border-radius:10px;margin-top:14px;font-size:13px}.actions{display:flex;justify-content:flex-end;margin-top:16px}.callout-card{background:linear-gradient(135deg,#f7fbff,#eef6fb)}
@media(max-width:1000px){.module-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr 1fr}.filter-row{grid-template-columns:1fr 1fr}.filter-row .btn{grid-column:1/-1}}@media(max-width:650px){.form-grid,.filter-row{grid-template-columns:1fr}}
/* v0.4 responsive navigation, language selector and document center */
.topbar-left,.topbar-actions{display:flex;align-items:center;gap:12px}.mobile-menu-btn,.sidebar-mobile-head,.mobile-overlay{display:none}.mobile-menu-btn{width:42px;height:42px;border:0;border-radius:10px;background:#edf3f8;padding:10px;cursor:pointer}.mobile-menu-btn span{height:2px;background:#172533;display:block;margin:4px 0;border-radius:2px}.icon-btn{border:0;background:transparent;color:#fff;font-size:30px;line-height:1;cursor:pointer}.locale-form select{width:auto;padding:8px 28px 8px 10px;font-weight:800}.document-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:18px}.document-card{background:#fff;border:1px solid #dfe7ef;border-radius:14px;padding:18px;display:flex;align-items:center;gap:12px;color:#172533}.document-card>div{flex:1}.document-card small{display:block;color:#6b7b8c;margin-top:4px}.document-icon{width:44px;height:44px;border-radius:12px;background:#eaf2f8;display:grid;place-items:center;color:#245b88;font-size:20px}.print-sheet{background:#fff;border:1px solid #dfe7ef;max-width:900px;margin:0 auto;padding:44px;min-height:560px;box-shadow:0 10px 30px rgba(15,35,55,.06)}.doc-header{display:flex;gap:14px;align-items:center;border-bottom:2px solid #245b88;padding-bottom:16px;margin-bottom:25px}.doc-header h2,.doc-header p{margin:0}.doc-logo{width:58px;height:58px;border-radius:14px;background:#245b88;color:#fff;display:grid;place-items:center;font-size:28px;font-weight:900}.doc-title{text-align:center;margin:22px 0}.id-layout{display:grid;grid-template-columns:150px 1fr 100px;gap:25px;align-items:center}.photo-box,.qr-box{height:160px;border:2px dashed #cfd9e3;display:grid;place-items:center;color:#8493a3}.qr-box{height:100px}.doc-fields{display:grid;grid-template-columns:1fr 1fr;gap:4px 25px;background:#f7f9fb;padding:14px;border-radius:10px;margin-bottom:18px}.signature-row{display:flex;justify-content:space-between;gap:25px;margin-top:60px}.signature-row span{flex:1;border-top:1px solid #7d8994;padding-top:8px;text-align:center;font-size:12px}.certificate-body{text-align:center;padding:60px 25px}.certificate-body h1{font-size:36px;color:#245b88}.certificate-body h2{font-size:30px;margin:22px 0}.eyebrow{letter-spacing:.15em;font-size:11px;font-weight:800}.certificate-meta{margin-top:30px;color:#6b7b8c}
@media(max-width:850px){body.menu-open{overflow:hidden}.sidebar{display:block;position:fixed;z-index:1002;left:0;top:0;bottom:0;width:min(310px,86vw);transform:translateX(-105%);transition:transform .22s ease;overflow-y:auto;box-shadow:15px 0 40px rgba(0,0,0,.2)}body.menu-open .sidebar{transform:translateX(0)}.mobile-overlay{position:fixed;z-index:1001;inset:0;background:rgba(12,27,41,.52)}body.menu-open .mobile-overlay{display:block}.mobile-menu-btn{display:block}.sidebar-mobile-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.brand{margin-bottom:18px}.topbar{height:auto;min-height:72px;padding:12px 16px;gap:10px}.topbar-actions{gap:7px}.topbar-actions .btn{padding:9px 11px}.document-grid{grid-template-columns:1fr 1fr}.print-sheet{padding:24px}.id-layout{grid-template-columns:110px 1fr}.id-layout .qr-box{grid-column:1/-1}.doc-fields{grid-template-columns:1fr}}
@media(max-width:560px){.document-grid{grid-template-columns:1fr}.topbar strong{font-size:14px}.topbar small{font-size:11px}.locale-form select{padding:8px}.content{padding:16px}.print-sheet{padding:17px}.signature-row{flex-direction:column;margin-top:35px}.certificate-body{padding:30px 5px}.certificate-body h1{font-size:28px}}
@media print{.sidebar,.topbar,.no-print,.mobile-overlay{display:none!important}.app-shell{display:block}.content{padding:0}.print-sheet{border:0;box-shadow:none;max-width:none;margin:0;padding:18mm}.main{display:block}body{background:#fff}}

/* v0.4.1 mobile navigation hotfix + sidebar language switcher */
.sidebar{display:flex;flex-direction:column;min-height:100vh}.sidebar nav{flex:1}.sidebar-language{margin:0 0 14px;padding:12px;border:1px solid rgba(255,255,255,.12);border-radius:12px;background:rgba(255,255,255,.04)}.sidebar-language>span{display:block;color:#91abc1;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px}.language-buttons{display:grid;grid-template-columns:1fr 1fr;gap:7px}.language-buttons form{margin:0}.language-btn{width:100%;border:1px solid rgba(255,255,255,.18);background:transparent;color:#dce9f5;border-radius:8px;padding:8px 10px;font-weight:800;cursor:pointer}.language-btn.active{background:#fff;color:#17324a;border-color:#fff}.mobile-menu-btn{flex:0 0 44px;width:44px;height:44px;display:none;align-items:center;justify-content:center;border:1px solid #d8e3ec;background:#f4f7fa;color:#172533}.hamburger{font-size:25px;line-height:1;font-weight:700;transform:translateY(-1px)}
@media(max-width:1100px){
  body.menu-open{overflow:hidden}.app-shell{grid-template-columns:1fr}.sidebar{display:flex;position:fixed;z-index:1002;left:0;top:0;bottom:0;width:min(320px,88vw);transform:translateX(-105%);transition:transform .22s ease;overflow-y:auto;box-shadow:15px 0 40px rgba(0,0,0,.2);padding-top:max(18px,env(safe-area-inset-top))}body.menu-open .sidebar{transform:translateX(0)}.mobile-overlay{position:fixed;z-index:1001;inset:0;background:rgba(12,27,41,.52)}body.menu-open .mobile-overlay{display:block}.mobile-menu-btn{display:inline-flex!important}.sidebar-mobile-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.topbar{position:sticky;top:0;z-index:900;min-height:72px;height:auto;padding:10px 16px;gap:10px}.topbar-left{min-width:0;flex:1}.topbar-left>div{min-width:0}.topbar-left strong,.topbar-left small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-actions{flex:0 0 auto}.content{padding:18px}.module-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr 1fr}.filter-row{grid-template-columns:1fr 1fr}.filter-row .btn{grid-column:1/-1}.document-grid{grid-template-columns:1fr 1fr}.print-sheet{padding:24px}.id-layout{grid-template-columns:110px 1fr}.id-layout .qr-box{grid-column:1/-1}.doc-fields{grid-template-columns:1fr}}
@media(max-width:600px){.topbar{padding:9px 12px}.topbar-actions .btn{padding:9px 10px;font-size:12px}.mobile-menu-btn{flex-basis:42px;width:42px;height:42px}.topbar strong{font-size:13px}.topbar small{font-size:10px}.content{padding:14px}.stats{grid-template-columns:1fr}.page-title{align-items:flex-start;flex-direction:column}.document-grid{grid-template-columns:1fr}.form-grid,.filter-row{grid-template-columns:1fr}.print-sheet{padding:17px}.signature-row{flex-direction:column;margin-top:35px}.certificate-body{padding:30px 5px}.certificate-body h1{font-size:28px}}
/* v0.5 SaaS administration + school workspace context */
.school-context{margin:10px 0 4px;padding:12px;border-radius:12px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12)}.school-context span{display:block;color:#8ca9c0;font-size:10px;text-transform:uppercase;font-weight:800;letter-spacing:.07em}.school-context strong{display:block;margin:5px 0 9px;line-height:1.25}.context-exit{border:0;background:transparent;color:#dce9f5;padding:0;font-weight:700;cursor:pointer}.desktop-context-exit{margin:0}.metric-note{font-size:12px;color:#6b7b8c}.empty-state{padding:24px;text-align:center;color:#6b7b8c}.topbar-actions form{margin:0}@media(max-width:700px){.desktop-context-exit{display:none}.table-wrap .btn{white-space:nowrap}}
/* v0.6 public website + configurable Super Admin access */
.public-body{background:#fff;color:#172533}.public-container{width:min(1180px,calc(100% - 36px));margin:0 auto}.public-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);border-bottom:1px solid #e2e9f0}.public-nav{height:76px;display:flex;align-items:center;gap:24px}.public-brand{display:flex;align-items:center;gap:10px;color:#172533;min-width:max-content}.public-brand span:last-child{display:flex;flex-direction:column}.public-brand small{color:#728292}.public-links{margin-left:auto;display:flex;align-items:center;gap:22px}.public-links>a:not(.btn){color:#40556a;font-weight:700}.public-language{display:flex;gap:4px;border-left:1px solid #dfe7ef;padding-left:14px}.public-language form{margin:0}.public-language button{border:0;background:transparent;border-radius:8px;padding:7px 8px;cursor:pointer;color:#63778b;font-weight:800}.public-language button.active{background:#eaf2f8;color:#245b88}.hero-public{background:linear-gradient(135deg,#f7fbff 0%,#edf5fb 58%,#e5f0f8 100%);padding:84px 0 76px;overflow:hidden}.hero-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:60px;align-items:center}.public-badge,.section-kicker{display:inline-block;color:#245b88;background:#e5f0f8;border:1px solid #cbddea;border-radius:999px;padding:7px 11px;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.hero-public h1{font-size:clamp(42px,5.4vw,70px);line-height:1.02;letter-spacing:-.045em;margin:18px 0 20px;max-width:760px}.hero-public p{font-size:19px;line-height:1.65;color:#5f7284;max-width:690px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.btn.large{padding:14px 21px;font-size:15px}.btn.outline{background:#fff;color:#245b88;border:1px solid #bdd0df}.trust-row{display:flex;gap:18px;flex-wrap:wrap;margin-top:24px;color:#63778b;font-size:13px}.hero-panel{position:relative}.hero-panel:before{content:"";position:absolute;width:420px;height:420px;border-radius:50%;background:#d4e7f5;right:-90px;top:-70px;opacity:.75}.mini-window{position:relative;background:#fff;border:1px solid #d8e4ed;border-radius:22px;padding:25px;box-shadow:0 28px 70px rgba(29,72,105,.16);transform:rotate(1deg)}.mini-top{display:flex;gap:6px;margin-bottom:24px}.mini-top i{width:9px;height:9px;border-radius:50%;background:#d6e0e8}.mini-window h3{font-size:20px}.mini-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.mini-stats span{background:#f5f8fb;padding:15px;border-radius:12px;color:#738395;font-size:11px}.mini-stats b{display:block;font-size:22px;color:#1c3347;margin-bottom:3px}.mini-bars{display:flex;align-items:end;height:145px;gap:14px;margin-top:24px;padding:14px;background:#f8fafc;border-radius:14px}.mini-bars i{display:block;flex:1;border-radius:7px 7px 2px 2px;background:#8ab5d3}.mini-bars i:nth-child(1){height:46%}.mini-bars i:nth-child(2){height:72%}.mini-bars i:nth-child(3){height:58%}.mini-bars i:nth-child(4){height:88%}.public-section{padding:80px 0}.public-section.alt{background:#f5f8fb}.section-head{text-align:center;max-width:760px;margin:0 auto 38px}.section-head>span{color:#245b88;font-weight:900;text-transform:uppercase;font-size:12px;letter-spacing:.08em}.section-head h2,.split h2,.portal-block h2{font-size:clamp(30px,4vw,46px);letter-spacing:-.03em;margin:10px 0 14px}.section-head p,.split>div>p,.portal-block>div>p{color:#6b7b8c;line-height:1.7}.feature-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.feature-card{border:1px solid #dde6ee;border-radius:16px;padding:22px;background:#fff}.feature-card h3{margin:14px 0 8px}.feature-card p{color:#6b7b8c;line-height:1.55;font-size:14px}.feature-icon{width:44px;height:44px;border-radius:12px;background:#e9f2f8;display:grid;place-items:center;color:#245b88;font-weight:900}.split,.portal-block{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center}.deployment-cards{display:grid;grid-template-columns:1fr 1fr;gap:14px}.deployment-cards>div{background:#fff;border:1px solid #dce6ef;border-radius:16px;padding:24px}.deployment-cards strong{font-size:20px}.deployment-cards p{color:#6b7b8c;line-height:1.55}.portal-actions{display:grid;gap:10px}.portal-link{border:1px solid #dce6ef;border-radius:14px;padding:18px 20px;display:flex;justify-content:space-between;gap:16px;background:#fff;color:#172533}.portal-link span{color:#245b88}.portal-link.discreet{background:#f7f9fb}.cta-public{background:#17364f;color:#fff;text-align:center;padding:70px 0}.cta-public h2{font-size:40px;margin-bottom:10px}.cta-public p{color:#c6d6e3;margin-bottom:24px}.btn.light{background:#fff;color:#17364f}.public-footer{background:#10283b;color:#d8e4ee;padding:32px 0}.public-footer>.public-container{display:flex;align-items:center;gap:30px}.public-footer .public-brand{color:#fff}.public-footer .public-brand small{color:#a9bdcc}.public-footer p{margin-left:auto;color:#9fb3c2}.public-footer a{color:#dceaf5}.login-eyebrow{display:block;color:#245b88;font-size:11px;font-weight:900;letter-spacing:.09em;text-transform:uppercase;margin-bottom:10px}.portal-return{margin-top:18px}.path-field{display:flex;border:1px solid #cfd9e3;border-radius:9px;overflow:hidden;background:#fff}.path-field span{display:grid;place-items:center;padding:0 12px;background:#edf3f8;color:#6b7b8c;font-weight:900}.path-field input{border:0;border-radius:0}.field-help{display:block;color:#738395;margin-top:6px;line-height:1.45}
@media(max-width:980px){.hero-grid,.split,.portal-block{grid-template-columns:1fr}.feature-grid{grid-template-columns:repeat(2,1fr)}.hero-panel{max-width:640px}.public-links a:not(.btn){display:none}}@media(max-width:640px){.public-nav{height:68px;gap:9px}.public-brand small{font-size:10px}.public-links{gap:7px}.public-links .btn{padding:9px 10px;font-size:12px}.public-language{padding-left:6px}.hero-public{padding:58px 0}.hero-public h1{font-size:42px}.hero-public p{font-size:16px}.feature-grid,.deployment-cards{grid-template-columns:1fr}.public-section{padding:58px 0}.public-footer>.public-container{flex-direction:column;align-items:flex-start}.public-footer p{margin-left:0}.portal-link{flex-direction:column;gap:5px}}
/* v0.7.0 compact mobile navigation + frontend CMS */
.sidebar nav{gap:2px}.sidebar nav a{padding:8px 12px}.nav-section{padding:11px 12px 4px}.sidebar-language{margin-bottom:9px;padding:10px}.language-buttons{grid-template-columns:repeat(auto-fit,minmax(54px,1fr))}.sidebar{height:100vh;min-height:0;overflow-y:auto;overscroll-behavior:contain}.sidebar nav{padding-bottom:36px}
@media(max-width:850px){.sidebar{height:100dvh;max-height:100dvh;padding-bottom:max(20px,env(safe-area-inset-bottom));scrollbar-gutter:stable}.sidebar nav{flex:none;display:grid;gap:1px;padding-bottom:64px}.sidebar nav a{padding:7px 12px;font-size:15px}.nav-section{padding-top:9px}.sidebar-language{position:sticky;top:0;z-index:2;background:#173149;backdrop-filter:blur(8px)} }
.public-logo{height:42px;max-width:190px;object-fit:contain}.banner-strip{padding:22px 0 0;background:#f7fbff}.banner-grid{display:grid;gap:14px}.frontend-banner{min-height:260px;border-radius:22px;padding:36px;background:#17364f center/cover no-repeat;color:#fff;display:flex;align-items:center;box-shadow:0 16px 40px rgba(22,52,78,.12)}.frontend-banner>div{max-width:640px}.frontend-banner h2{font-size:clamp(28px,4vw,50px);margin:0 0 10px}.frontend-banner p{font-size:17px;line-height:1.6;color:#e4eef5}.public-page-hero{padding:72px 0 48px;background:#eef5fb}.public-page-hero h1{font-size:clamp(36px,5vw,60px);margin:14px 0 0}.public-copy{max-width:900px;line-height:1.8;font-size:17px}.contact-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,.6fr);gap:28px}.contact-side{background:#17364f;color:#fff;border-radius:18px;padding:28px;height:max-content}.contact-side a{color:#fff}.btn.whatsapp,.whatsapp-float{background:#1f9d62;color:#fff}.whatsapp-float{position:fixed;right:22px;bottom:22px;width:54px;height:54px;border-radius:50%;display:grid;place-items:center;font-weight:900;box-shadow:0 12px 28px rgba(0,0,0,.2);z-index:80}.public-menu-toggle{display:none;border:0;background:#edf3f8;border-radius:9px;padding:9px 11px;font-size:20px}
@media(max-width:980px){.public-menu-toggle{display:block;margin-left:auto}.public-links{display:none;position:absolute;left:18px;right:18px;top:68px;background:#fff;border:1px solid #dfe7ef;border-radius:14px;padding:12px;box-shadow:0 18px 40px rgba(15,35,55,.12);flex-direction:column;align-items:stretch}.public-links.open{display:flex}.public-language{margin-left:0}.contact-grid{grid-template-columns:1fr}}
.admin-logo{height:42px;max-width:175px;object-fit:contain}.role-inline{display:flex;gap:6px;align-items:center}.role-inline select{min-width:130px;padding:8px}.role-inline .btn{padding:8px 10px;white-space:nowrap}

/* v0.8.0 CMS, footer and banner selector */
.cms-image-preview{width:100%;max-height:220px;object-fit:cover;border-radius:12px;border:1px solid #dfe7ef}.actions{display:flex;gap:7px;align-items:center;white-space:nowrap}.actions form{margin:0}.btn.danger{background:#fff0f0;color:#a52a2a;border:1px solid #f1caca}.inline-form{display:inline}.inline-form select{min-width:110px;padding:7px}.message-cell{min-width:260px;max-width:520px;white-space:normal;line-height:1.5}.frontend-banner.banner-contain{background-color:#fff;background-repeat:no-repeat;background-position:center;background-size:contain;color:#172533;border:1px solid #dfe7ef}.frontend-banner.banner-contain p{color:#63778b}.frontend-banner.banner-image_only{background-position:center;background-size:cover;background-repeat:no-repeat;min-height:340px}.footer-grid{display:grid!important;grid-template-columns:1.5fr .8fr .8fr;align-items:start!important;gap:46px!important}.footer-description{margin:18px 0 0!important;max-width:520px;color:#a9bdcc!important;line-height:1.6}.footer-links,.footer-contact{display:grid;gap:8px}.footer-links b,.footer-contact b{color:#fff;margin-bottom:4px}.footer-bottom{border-top:1px solid rgba(255,255,255,.1);margin-top:28px;padding-top:20px;color:#9fb3c2}
@media(max-width:760px){.footer-grid{grid-template-columns:1fr!important;gap:24px!important}.actions{flex-wrap:wrap}.message-cell{min-width:200px}.frontend-banner.banner-image_only{min-height:220px}}
/* v0.9.0 multi-column footer + platform RBAC */
.footer-grid-multi{grid-template-columns:minmax(280px,1.5fr) repeat(3,minmax(150px,.7fr))!important;gap:38px!important}.footer-brand-col{min-width:0}.permission-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 18px}.permission-grid label{display:flex;grid-template-columns:auto 1fr;align-items:flex-start;gap:8px;font-weight:600}.permission-grid input{width:auto;margin-top:3px}.platform-user-create{margin-bottom:18px}.role-card-selected{border-color:#8ab2d2;box-shadow:0 0 0 2px rgba(36,91,136,.08)}
@media(max-width:980px){.footer-grid-multi{grid-template-columns:1fr 1fr!important}.footer-brand-col{grid-column:1/-1}.permission-grid{grid-template-columns:1fr}}
@media(max-width:620px){.footer-grid-multi{grid-template-columns:1fr!important}.footer-brand-col{grid-column:auto}}

/* v1.0.0 report cards/transcripts */
.printable-document table{width:100%;border-collapse:collapse}.printable-document th,.printable-document td{padding:10px;border-bottom:1px solid #dce6ef;text-align:left}.document-head{margin-bottom:20px}.document-summary{margin-top:18px;font-size:1.1rem}@media print{.sidebar,.topbar,.print-hide,.mobile-overlay{display:none!important}.app-shell,.main{display:block!important}.content{padding:0!important}.card{box-shadow:none!important;border:0!important}.printable-document{width:100%!important}}

/* v1.0.4 profile */
.profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}.profile-grid .note{margin-top:16px}@media(max-width:850px){.profile-grid{grid-template-columns:1fr}.topbar-actions .btn[href='/profile']{padding:9px 12px}}

/* v1.0.6 mobile public navigation + compact footer */
@media(max-width:980px){
  .public-nav{position:relative}
  .public-menu-toggle{display:block;margin-left:auto;flex:0 0 auto}
  .public-links{display:none;position:absolute;left:0;right:0;top:calc(100% + 8px);z-index:60;background:#fff;border:1px solid #dfe7ef;border-radius:14px;padding:10px;box-shadow:0 18px 40px rgba(15,35,55,.16);flex-direction:column;align-items:stretch;gap:4px;max-height:calc(100dvh - 92px);overflow-y:auto;overscroll-behavior:contain}
  .public-links.open{display:flex}
  .public-links.open a,.public-links.open a:not(.btn){display:block!important;width:100%;padding:11px 12px;border-radius:9px;color:#304a61;font-weight:750}
  .public-links.open a:not(.btn):hover{background:#f2f6f9}
  .public-links.open .btn{display:block!important;text-align:center;margin-top:3px;color:#fff}
  .public-language{margin-left:0;flex:0 0 auto}
}
@media(max-width:640px){
  .public-container{width:min(100% - 28px,1180px)}
  .public-nav{height:auto;min-height:74px;gap:8px}
  .public-brand{min-width:0;flex:1}
  .public-brand span:last-child{min-width:0}
  .public-brand b{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:170px}
  .public-menu-toggle{width:46px;height:46px;padding:8px;display:grid;place-items:center}
  .public-language{border-left:0;padding-left:0;gap:1px}
  .public-language button{padding:7px 6px;font-size:13px}
  .public-links{left:0;right:0;top:calc(100% + 6px);padding:9px}
  .footer-grid.footer-grid-multi{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:24px 18px!important}
  .footer-brand-col{grid-column:1/-1!important}
  .footer-contact{grid-column:1/-1}
  .footer-links,.footer-contact{gap:6px}
  .footer-links a,.footer-contact a{font-size:15px;line-height:1.35}
  .footer-description{font-size:15px;margin-top:14px!important}
  .footer-bottom{margin-top:22px;padding-top:16px;font-size:14px}
}
@media(max-width:380px){
  .public-brand b{max-width:135px}
  .public-brand small{display:none}
  .public-language button{padding:6px 5px}
}


/* v1.0.7 configurable footer groups + mobile footer refinement */
.footer-grid.footer-grid-multi{grid-template-columns:minmax(260px,1fr) minmax(0,1.55fr)!important;gap:42px!important}
.footer-menu-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;align-items:start}
.footer-links{min-width:0}.footer-links b{display:block;margin-bottom:8px}.footer-links a{display:block;overflow-wrap:anywhere}
.footer-group-settings{margin-bottom:20px}.footer-title-language{padding:14px 0;border-bottom:1px solid #e6edf3}.footer-title-language:last-of-type{border-bottom:0}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
@media(max-width:760px){
  .public-footer{padding:28px 0 24px}
  .footer-grid.footer-grid-multi{grid-template-columns:1fr!important;gap:22px!important}
  .footer-brand-col{grid-column:auto!important}
  .footer-menu-columns{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
  .footer-links,.footer-contact{grid-column:auto!important;gap:5px}
  .footer-links b{font-size:15px;margin-bottom:6px}
  .footer-links a{font-size:13px!important;line-height:1.3}
  .footer-description{font-size:14px!important;line-height:1.5;margin-top:12px!important}
  .footer-bottom{margin-top:18px;padding-top:14px;font-size:13px}
  .grid3{grid-template-columns:1fr}
}
@media(max-width:390px){
  .footer-menu-columns{gap:8px}
  .footer-links b{font-size:14px}
  .footer-links a{font-size:12px!important}
}

/* v1.3.0 role-specific school portals */
.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:22px}.page-heading p{color:#6b7b8c}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px}.grid.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:18px}.list-row{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:11px 0;border-bottom:1px solid #e4ebf1}.list-row:last-child{border-bottom:0}.list-row small{display:block;color:#6b7b8c;margin-top:3px}.chips{display:flex;gap:8px;flex-wrap:wrap}.chip{display:inline-block;padding:8px 11px;border-radius:999px;background:#edf3f8;color:#355a78;font-weight:700}.chip.active{background:#245b88;color:#fff}.badge.success{background:#e6f7ee;color:#187447}.btn.small{padding:7px 10px;font-size:12px}.card+.card{margin-top:18px}
@media(max-width:900px){.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.two{grid-template-columns:1fr}.page-heading{flex-direction:column}.page-heading .actions{justify-content:flex-start;flex-wrap:wrap}}
@media(max-width:520px){.stats-grid{grid-template-columns:1fr}.list-row{gap:8px}.list-row>span{white-space:nowrap}.page-heading .actions{width:100%}.page-heading .actions .btn{flex:1;text-align:center}}

.security-grid{align-items:start}.note{padding:14px;border-radius:12px;background:#f2f7fb;border:1px solid #d7e4ef;font-size:.92rem}.pill.danger{background:#fde8e8;color:#a51d1d}.pill.success{background:#e5f6ec;color:#13753b}
/* v4.9.0 Frontend 2.0 */
.feature-grid-v2{grid-template-columns:repeat(3,minmax(0,1fr))}.feature-card-v2{display:flex;gap:16px;align-items:flex-start;min-height:190px}.feature-card-v2 .feature-icon{flex:0 0 44px}.feature-card-v2 h3{margin-top:2px}.module-ready{display:inline-flex;margin-top:12px;padding:5px 9px;border-radius:999px;background:#edf6f0;color:#287348;font-size:11px;font-weight:800}.frontend-actions-v2{margin-top:34px;padding:30px;border:1px solid #dce6ef;border-radius:20px;background:#f7fbfe;display:grid;grid-template-columns:1.25fr .75fr;gap:30px;align-items:center}.frontend-actions-v2 h2{margin:10px 0 8px;font-size:30px}.frontend-actions-v2 p{color:#66798b;line-height:1.6}.frontend-action-buttons{display:flex;flex-direction:column;gap:10px}.trust-row{row-gap:8px}.trust-row span{white-space:nowrap}
@media(max-width:980px){.feature-grid-v2{grid-template-columns:repeat(2,minmax(0,1fr))}.frontend-actions-v2{grid-template-columns:1fr}.trust-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px}.trust-row span{white-space:normal}}
@media(max-width:640px){.feature-grid-v2{grid-template-columns:1fr}.feature-card-v2{min-height:0;padding:20px}.frontend-actions-v2{padding:22px}.frontend-actions-v2 h2{font-size:26px}.trust-row{grid-template-columns:1fr}.public-language{margin-left:auto}.public-container{width:min(100% - 28px,1180px)}}


/* v4.9.7 — definitive mobile menu icon + cache manager UI */
.mobile-menu-btn{
  position:relative!important;
  width:48px!important;
  min-width:48px!important;
  height:48px!important;
  padding:11px!important;
  border:1px solid #d7e2eb!important;
  border-radius:14px!important;
  background:#f1f5f8!important;
  box-shadow:0 3px 10px rgba(20,48,70,.06)!important;
}
.mobile-menu-btn>span{
  display:block!important;
  width:24px!important;
  height:2.5px!important;
  min-height:2.5px!important;
  margin:4px 0!important;
  border-radius:99px!important;
  background:#172533!important;
  opacity:1!important;
}
.mobile-menu-btn>span:nth-child(2){width:18px!important;margin-left:auto!important}
@media(max-width:850px){.mobile-menu-btn{display:block!important}}

.cache-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0}
.cache-stat{border:1px solid #dfe7ef;background:#f8fafc;border-radius:12px;padding:14px}
.cache-stat span,.cache-stat small{display:block;color:#6b7b8c}.cache-stat b{display:block;font-size:22px;margin:4px 0}
@media(max-width:650px){.cache-stats{grid-template-columns:1fr}.cache-stat{display:grid;grid-template-columns:1fr auto;align-items:center;gap:4px 12px}.cache-stat small{grid-column:1/-1}}

/* v4.9.6 social footer rules compiled into the real CSS asset */
.public-footer .footer-socials{display:flex!important;flex-direction:row!important;flex-wrap:wrap!important;align-items:center!important;gap:8px!important;margin-top:10px!important}
.public-footer .footer-socials a.footer-social-icon{display:inline-flex!important;align-items:center!important;justify-content:center!important;flex:0 0 32px!important;width:32px!important;min-width:32px!important;max-width:32px!important;height:32px!important;min-height:32px!important;max-height:32px!important;padding:0!important;margin:0!important;border:1px solid rgba(255,255,255,.24)!important;border-radius:50%!important;background:rgba(255,255,255,.08)!important;color:#fff!important;overflow:hidden!important}
.public-footer .footer-socials a.footer-social-icon svg{display:block!important;width:15px!important;min-width:15px!important;max-width:15px!important;height:15px!important;min-height:15px!important;max-height:15px!important;fill:#fff!important;color:#fff!important}
.public-footer .footer-socials a.footer-social-icon svg *{fill:#fff!important;color:#fff!important}


/* v4.9.8 — keep footer social icons in one row on mobile */
.public-footer .footer-group-support{
  min-width:0!important;
}
.public-footer .footer-socials{
  display:flex!important;
  flex-direction:row!important;
  flex-wrap:nowrap!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:7px!important;
  width:100%!important;
  max-width:100%!important;
  overflow:visible!important;
}
.public-footer .footer-socials a.footer-social-icon{
  flex:0 0 30px!important;
  width:30px!important;
  min-width:30px!important;
  max-width:30px!important;
  height:30px!important;
  min-height:30px!important;
  max-height:30px!important;
}
.public-footer .footer-socials a.footer-social-icon svg{
  width:14px!important;
  min-width:14px!important;
  max-width:14px!important;
  height:14px!important;
  min-height:14px!important;
  max-height:14px!important;
}
@media(max-width:520px){
  .public-footer .footer-menu-columns{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  }
  .public-footer .footer-group-support{
    grid-column:1/-1!important;
  }
  .public-footer .footer-socials{
    flex-wrap:nowrap!important;
    gap:8px!important;
  }
}
@media(max-width:380px){
  .public-footer .footer-socials{
    gap:6px!important;
  }
  .public-footer .footer-socials a.footer-social-icon{
    flex-basis:28px!important;
    width:28px!important;
    min-width:28px!important;
    max-width:28px!important;
    height:28px!important;
    min-height:28px!important;
    max-height:28px!important;
  }
  .public-footer .footer-socials a.footer-social-icon svg{
    width:13px!important;
    min-width:13px!important;
    max-width:13px!important;
    height:13px!important;
    min-height:13px!important;
    max-height:13px!important;
  }
}


/* v4.9.9 — mobile footer: Explore | Legal | Support as 3 columns */
@media(max-width:520px){
  .public-footer .footer-menu-columns{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr)!important;
    gap:12px!important;
    align-items:start!important;
  }
  .public-footer .footer-group-support{
    grid-column:auto!important;
    min-width:0!important;
  }
  .public-footer .footer-links b{
    font-size:14px!important;
  }
  .public-footer .footer-links a{
    font-size:12px!important;
    line-height:1.55!important;
  }
  .public-footer .footer-socials{
    display:flex!important;
    flex-flow:row nowrap!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:5px!important;
    width:auto!important;
    max-width:100%!important;
    margin-top:10px!important;
  }
  .public-footer .footer-socials a.footer-social-icon{
    flex:0 0 26px!important;
    width:26px!important;
    min-width:26px!important;
    max-width:26px!important;
    height:26px!important;
    min-height:26px!important;
    max-height:26px!important;
  }
  .public-footer .footer-socials a.footer-social-icon svg{
    width:12px!important;
    min-width:12px!important;
    max-width:12px!important;
    height:12px!important;
    min-height:12px!important;
    max-height:12px!important;
  }
}
@media(max-width:370px){
  .public-footer .footer-menu-columns{gap:7px!important}
  .public-footer .footer-socials{gap:3px!important}
  .public-footer .footer-socials a.footer-social-icon{
    flex-basis:24px!important;width:24px!important;min-width:24px!important;max-width:24px!important;
    height:24px!important;min-height:24px!important;max-height:24px!important;
  }
}

/* v4.11.2 dynamic pricing */
.pricing-intro{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin:10px 0 28px}.pricing-intro h2{font-size:clamp(28px,4vw,44px);line-height:1.08;margin:8px 0}.pricing-intro p{max-width:760px;color:#6d7c8b}.billing-toggle{display:inline-flex;flex:0 0 auto;padding:4px;border-radius:12px;background:#edf3f7;border:1px solid #dce7ee}.billing-toggle button{border:0;background:transparent;padding:10px 15px;border-radius:9px;font-weight:800;color:#587083}.billing-toggle button.active{background:#fff;color:#193347;box-shadow:0 2px 7px rgba(20,48,70,.08)}.pricing-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:stretch}.pricing-card{position:relative;display:flex;flex-direction:column;min-width:0;border:1px solid #dce6ed;border-radius:20px;padding:22px;background:#fff;box-shadow:0 10px 30px rgba(29,59,82,.055);overflow:hidden}.pricing-card.featured{border:2px solid #2e6f9d;box-shadow:0 16px 40px rgba(35,91,133,.13)}.popular-ribbon{position:absolute;right:-43px;top:19px;width:150px;transform:rotate(38deg);text-align:center;padding:5px;background:#2e6f9d;color:#fff;font-size:10px;font-weight:900}.pricing-card-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.pricing-card h3{font-size:24px;margin:0}.plan-slug{font-size:12px;color:#7a8c9a;margin:4px 0}.trial-badge{display:inline-flex;padding:6px 9px;border-radius:999px;background:#e9f7ef;color:#27764b;font-size:11px;font-weight:900;white-space:nowrap}.pricing-price{padding:18px 0}.pricing-price>div{display:flex;align-items:baseline;gap:5px;flex-wrap:wrap}.pricing-price strong{font-size:38px;line-height:1;color:#14293a}.pricing-price span{color:#758493}.pricing-price small{display:block;width:100%;color:#6e8190;margin-top:6px}.plan-capacity{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-bottom:16px}.plan-capacity div{padding:10px;border-radius:10px;background:#f5f8fb;text-align:center}.plan-capacity span{display:block;font-size:10px;text-transform:uppercase;color:#718391}.plan-capacity b{display:block;font-size:17px}.pricing-features{list-style:none!important;padding:0!important;margin:0 0 14px!important}.pricing-features li{display:flex;gap:7px;margin:8px 0;color:#425969}.pricing-features li span{color:#2a8054;font-weight:900}.plan-modules{border-top:1px solid #e6edf2;border-bottom:1px solid #e6edf2;padding:12px 0;margin:4px 0 18px}.plan-modules summary{cursor:pointer;font-weight:800;color:#2a6189}.plan-module-list{padding-top:10px;font-size:12px}.plan-module-list div{margin:10px 0}.plan-module-list p{margin:3px 0;color:#71808c}.all-modules-note{color:#2a7049!important}.pricing-card-cta{display:grid;gap:9px;margin-top:auto}.pricing-card-cta .public-btn{display:flex;justify-content:center}.plan-contact{text-align:center;font-size:13px;font-weight:800;color:#2c678f}.pricing-note{display:grid;grid-template-columns:auto 1fr auto;gap:13px;align-items:center;margin:28px 0;padding:18px 20px;border-radius:15px;background:#eff6fa;border:1px solid #d9e8f1}.pricing-note span{font-size:13px;color:#607585}.plan-compare{margin-top:42px}.compare-title{text-align:center;margin-bottom:18px}.compare-scroll{overflow:auto;border:1px solid #dce6ed;border-radius:15px}.compare-scroll table{width:100%;border-collapse:collapse;background:#fff;min-width:700px}.compare-scroll th,.compare-scroll td{padding:14px;border-bottom:1px solid #e6edf2;text-align:left}.compare-scroll th{font-size:11px;text-transform:uppercase;color:#6e8090;background:#f7f9fb}.pricing-empty{text-align:center;padding:36px;border:1px dashed #cbdbe6;border-radius:18px;background:#fbfdfe}
@media(max-width:980px){.pricing-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pricing-intro{align-items:flex-start;flex-direction:column}.pricing-note{grid-template-columns:1fr}}
@media(max-width:650px){.pricing-grid{grid-template-columns:1fr}.pricing-card{padding:18px}.billing-toggle{width:100%}.billing-toggle button{flex:1}.pricing-note{padding:15px}}

/* v4.12.0 — rich public content + integrated school banners */
.structured-copy{max-width:920px}.structured-copy h2{font-size:clamp(26px,3vw,36px);line-height:1.15;margin:42px 0 14px;color:#172a3b}.structured-copy h3{font-size:22px;margin:30px 0 10px;color:#244f70}.structured-copy p{margin:0 0 18px;color:#4f6374;line-height:1.82}.structured-copy ul{margin:0 0 22px;padding-left:22px}.structured-copy li{margin:8px 0;color:#4f6374;line-height:1.65}.structured-copy h2:first-child{margin-top:8px}.page-intro-copy{margin-bottom:30px}
.banner-strip .frontend-banner{min-height:330px;border-radius:24px}.banner-strip .frontend-banner>div{max-width:650px}.banner-strip .frontend-banner h2{text-wrap:balance}.banner-strip .frontend-banner p{max-width:620px}
.how-hero-visual{position:relative;overflow:hidden;background:linear-gradient(90deg,rgba(238,245,251,.98) 0%,rgba(238,245,251,.92) 48%,rgba(238,245,251,.18) 73%),url('/uploads/cms/markshles-school-learning.webp') center/cover no-repeat}.how-hero-visual .public-container{position:relative;z-index:1}.how-hero-visual p{max-width:760px}
.contact-intro-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,.5fr);gap:30px;align-items:start}.contact-intro-grid h2{font-size:clamp(28px,4vw,42px);margin:8px 0 14px}.contact-intro-grid>div>p{color:#607485;line-height:1.75}.contact-topic-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:22px}.contact-topic-grid div{border:1px solid #dce7ef;border-radius:13px;padding:14px;background:#fff}.contact-topic-grid b,.contact-topic-grid span{display:block}.contact-topic-grid span{font-size:13px;color:#687c8c;margin-top:4px;line-height:1.5}.contact-privacy-note{background:#edf5fa;border:1px solid #d4e4ef;border-radius:16px;padding:20px}.contact-privacy-note p{color:#587082;line-height:1.6}
@media(max-width:760px){.banner-strip .frontend-banner{min-height:280px;padding:24px}.structured-copy h2{margin-top:34px}.contact-intro-grid{grid-template-columns:1fr}.contact-topic-grid{grid-template-columns:1fr}.how-hero-visual{background:linear-gradient(rgba(238,245,251,.92),rgba(238,245,251,.92)),url('/uploads/cms/markshles-school-learning.webp') center/cover no-repeat}}


/* v4.12.1 — content revision date */
.page-updated-note{display:inline-flex;align-items:center;gap:8px;margin:0 0 24px;padding:8px 11px;border:1px solid #dce7ef;border-radius:999px;background:#f6f9fb;color:#647787;font-size:12px}.page-updated-note span{font-weight:800;color:#274f6d}.page-updated-note time{font-weight:700}


/* v4.12.2 — keep the School Operations statistics card perfectly straight */
.hero-visual,
.hero-browser,
.hero-browser-card,
.school-operations-card,
.dashboard-preview,
.stats-preview,
.browser-mockup,
.platform-preview {
    transform: none !important;
    rotate: 0deg !important;
}
.hero-visual img,
.hero-browser img,
.dashboard-preview img,
.stats-preview img {
    transform: none !important;
    rotate: 0deg !important;
}


/* v4.12.2 — make Cloud SaaS vs Dedicated Deployment unmistakable */
.deployment-choice-section{background:#f3f8fc;border-top:1px solid #e1ebf2;border-bottom:1px solid #e1ebf2}
.deployment-choice-head{display:flex;justify-content:space-between;gap:24px;align-items:flex-end;margin-bottom:24px}
.deployment-choice-head h2{font-size:clamp(30px,4vw,46px);line-height:1.08;margin:8px 0 12px;max-width:780px}
.deployment-choice-head p{max-width:850px;color:#627789;line-height:1.7}
.deployment-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.deployment-choice-card{display:flex;flex-direction:column;background:#fff;border:1px solid #d7e4ed;border-radius:20px;padding:24px;box-shadow:0 12px 28px rgba(23,55,80,.05)}
.deployment-choice-card.primary-option{border:2px solid #2f6f9d;box-shadow:0 16px 34px rgba(47,111,157,.10)}
.deployment-label{display:inline-flex;align-self:flex-start;border-radius:999px;background:#eaf3f9;color:#2d678f;padding:6px 10px;font-size:10px;font-weight:900;letter-spacing:.06em}
.deployment-choice-card h3{font-size:28px;margin:16px 0 8px;color:#172c3d}
.deployment-choice-card p{color:#607586;line-height:1.68}
.deployment-choice-card ul{margin:14px 0 22px;padding-left:20px;color:#516777}
.deployment-choice-card li{margin:8px 0}
.deployment-card-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:auto}
.deployment-card-actions>a:not(.public-btn){font-weight:800;color:#2d678f}
.deployment-clarifier{display:flex;gap:7px;align-items:flex-start;margin-top:18px;padding:14px 16px;background:#e9f2f8;border-radius:13px;color:#526b7d;font-size:13px}
.deployment-clarifier b{color:#224e6d}
.deployment-mini-callout{display:flex;justify-content:space-between;align-items:center;gap:24px;margin:42px 0 8px;padding:24px;border-radius:18px;background:#102f45;color:#fff}
.deployment-mini-callout h2{font-size:30px;margin:6px 0 8px;color:#fff}
.deployment-mini-callout p{max-width:720px;margin:0;color:#c7d7e2;line-height:1.65}
.deployment-mini-actions{display:flex;gap:10px;flex:0 0 auto;flex-wrap:wrap}
.deployment-mini-callout .public-btn.secondary{background:#fff;color:#18364b;border-color:#fff}
.deployment-mini-callout .section-kicker{color:#9bc1dd}
.deployment-nav-link{font-weight:800}
.footer-deployment-links{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:22px 0 4px;padding-top:16px;border-top:1px solid rgba(255,255,255,.10);font-size:13px;color:#aebfcb}
.footer-deployment-links a{color:#e8f2f8;font-weight:700}
@media(max-width:760px){
    .deployment-choice-head{align-items:flex-start;flex-direction:column}
    .deployment-choice-grid{grid-template-columns:1fr}
    .deployment-mini-callout{align-items:flex-start;flex-direction:column}
    .deployment-mini-actions{width:100%}
    .deployment-mini-actions .public-btn{flex:1 1 auto;text-align:center;justify-content:center}
    .deployment-clarifier{flex-direction:column}
}


/* v4.12.3 — exact statistics/browser mockup alignment fix */
.hero-panel .mini-window,
.mini-window {
    transform: none !important;
    rotate: 0deg !important;
    -webkit-transform: none !important;
    transform-origin: center center !important;
}

/* Cloud SaaS and Dedicated Deployment must have identical card borders */
.deployment-choice-card,
.deployment-choice-card.primary-option {
    border: 1px solid #d7e4ed !important;
    box-shadow: 0 12px 28px rgba(23,55,80,.05) !important;
}
.deployment-choice-card.primary-option {
    background: #fff;
}

/* Footer balance: keep third menu column visually consistent */
.footer-group-support > a[href="/how-it-works"] {
    display: block;
}


/* v4.12.5 — homepage hero/banner fully visible on mobile */
.hero-image,
.hero-image img,
.home-hero img,
.home-hero .hero-image,
.home-hero .hero-media img,
.home-hero .hero-visual img {
    width: 100% !important;
    height: auto !important;
    max-height: none !important;
    object-fit: contain !important;
    object-position: center center !important;
    display: block !important;
    transform: none !important;
}

.home-hero .hero-media,
.home-hero .hero-visual,
.hero-image {
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: auto !important;
    overflow: visible !important;
}

@media (max-width: 760px) {
    .home-hero .hero-media,
    .home-hero .hero-visual,
    .hero-image {
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
        aspect-ratio: auto !important;
        overflow: visible !important;
    }

    .hero-image,
    .hero-image img,
    .home-hero img,
    .home-hero .hero-image,
    .home-hero .hero-media img,
    .home-hero .hero-visual img {
        width: 100% !important;
        height: auto !important;
        max-height: none !important;
        object-fit: contain !important;
        object-position: center center !important;
        transform: none !important;
        clip-path: none !important;
    }
}

.frontend-banner.banner-image_only.banner-image-natural{min-height:0!important;height:auto!important;aspect-ratio:auto!important;padding:0!important;overflow:hidden!important;background:transparent!important}
.frontend-banner.banner-image_only.banner-image-natural img{display:block!important;width:100%!important;height:auto!important;max-width:100%!important;max-height:none!important;object-fit:contain!important;object-position:center!important;transform:none!important;clip-path:none!important;border-radius:inherit}
.notification-language-note{margin-top:8px;padding:12px 14px;border:1px solid #dbe7ef;border-radius:12px;background:#f5f9fc;color:#607586;font-size:13px;line-height:1.55}

/* v4.12.7 plan upgrade UI */
.subscription-upgrade-card{margin-top:22px}.upgrade-plan-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:18px 0}.upgrade-plan-option{border:1px solid #d9e5ed;border-radius:16px;padding:18px;background:#fff}.upgrade-plan-option h3{font-size:24px;margin:0 0 10px}.upgrade-prices{display:flex;align-items:baseline;gap:5px;flex-wrap:wrap;margin-bottom:12px}.upgrade-prices b{font-size:25px;color:#245f8d}.upgrade-prices small{width:100%;color:#738493}.alert.warning{background:#fff8e7;border-color:#ead39b;color:#755913}.subscription-upgrade-card .muted{line-height:1.6}
@media(max-width:900px){.upgrade-plan-grid{grid-template-columns:1fr}}
/* v4.12.8 dedicated licensing */
.dedicated-license-editor{scroll-margin-top:90px}.dedicated-license-editor .check-card{display:flex!important;grid-template-columns:none!important;gap:10px}.dedicated-license-editor .check-card input{width:auto;margin-top:4px}

/* v4.12.9 dedicated domain/hosting configurator */
.dedicated-configurator{display:grid;gap:16px;margin:8px 0 20px}.configurator-section{padding:18px;border:1px solid #dbe6ee;border-radius:16px;background:#fbfdff}.configurator-section h3{margin:0 0 12px}.commercial-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0}.commercial-summary-grid>div{padding:16px;border-radius:14px;background:#f2f7fb;border:1px solid #dce8f0}.commercial-summary-grid span,.commercial-summary-grid b{display:block}.commercial-summary-grid span{font-size:12px;color:#667d8d}.commercial-summary-grid b{font-size:25px;margin-top:4px;color:#214f70}@media(max-width:700px){.commercial-summary-grid{grid-template-columns:1fr}}


/* v4.15.4 — school + SaaS dashboard metric cards */
.dashboard-stats-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  margin:0 0 20px;
}
.dashboard-stats-grid .dashboard-stat{
  display:flex;
  align-items:baseline;
  justify-content:flex-start;
  gap:8px;
  min-width:0;
  background:#fff;
  border:1px solid #dfe7ef;
  border-radius:14px;
  padding:16px 18px;
  box-shadow:0 4px 18px rgba(15,35,55,.04);
}
.dashboard-stats-grid .dashboard-stat span{
  display:inline;
  margin:0;
  color:#536577;
  font-size:14px;
  line-height:1.3;
  min-width:0;
}
.dashboard-stats-grid .dashboard-stat strong{
  display:inline;
  margin:0;
  font-size:22px;
  line-height:1.1;
  white-space:nowrap;
  color:#1b2a38;
}
@media(max-width:900px){
  .dashboard-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:560px){
  .dashboard-stats-grid{grid-template-columns:1fr 1fr;gap:10px;}
  .dashboard-stats-grid .dashboard-stat{
    padding:13px 14px;
    gap:6px;
    flex-wrap:wrap;
  }
  .dashboard-stats-grid .dashboard-stat span{
    font-size:13px;
  }
  .dashboard-stats-grid .dashboard-stat strong{
    font-size:19px;
  }
}
@media(max-width:390px){
  .dashboard-stats-grid{grid-template-columns:1fr;}
  .dashboard-stats-grid .dashboard-stat{flex-wrap:nowrap;}
}


/* v4.15.5 — GLOBAL metric/stat-card correction
   Applies to Profit & Loss, Store/POS, SaaS reports, cash register and any
   other screen using .stats-grid > .stat-card. */
.stats-grid > .stat-card{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:6px;
  min-width:0;
  background:#fff;
  border:1px solid #dfe7ef;
  border-radius:14px;
  padding:16px 18px;
  box-shadow:0 4px 18px rgba(15,35,55,.04);
}
.stats-grid > .stat-card > span{
  display:block;
  margin:0;
  color:#607182;
  font-size:14px;
  line-height:1.3;
}
.stats-grid > .stat-card > strong{
  display:block;
  margin:0;
  color:#1b2a38;
  font-size:24px;
  line-height:1.1;
  white-space:nowrap;
}
.stats-grid > .stat-card > small{
  display:block;
  margin:0;
  color:#7a8895;
  font-size:12px;
  line-height:1.3;
}

/* Profit/report summary cards should remain compact and readable. */
.page-title + .stats-grid,
.card + .stats-grid{
  margin-top:0;
}

@media(max-width:900px){
  .stats-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:560px){
  .stats-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
  }
  .stats-grid > .stat-card{
    padding:13px 14px;
    gap:5px;
  }
  .stats-grid > .stat-card > span{
    font-size:13px;
  }
  .stats-grid > .stat-card > strong{
    font-size:20px;
  }
}
@media(max-width:390px){
  .stats-grid{
    grid-template-columns:1fr;
  }
}

/* Defensive fallback for legacy stat-card blocks rendered outside .stats-grid. */
.stat-card:not(.dashboard-stat){
  box-sizing:border-box;
}


/* v4.17.0 grouped accordion navigation */
.sidebar-nav{display:grid!important;gap:5px!important;align-content:start}
.sidebar-nav>.nav-dashboard{font-weight:800;background:rgba(255,255,255,.04);margin-bottom:5px}
.sidebar-nav a.active{background:#2a638f!important;color:#fff!important;font-weight:800;box-shadow:inset 3px 0 0 #8fc7ee}
.nav-group{border:1px solid rgba(255,255,255,.09);border-radius:11px;background:rgba(255,255,255,.025);overflow:hidden}
.nav-group>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;color:#eef6fc;font-size:13px;font-weight:800;cursor:pointer;user-select:none}
.nav-group>summary::-webkit-details-marker{display:none}
.nav-group>summary:hover{background:rgba(255,255,255,.055)}
.nav-group[open]>summary{background:rgba(255,255,255,.065);color:#fff}
.nav-chevron{width:8px;height:8px;border-right:2px solid #8faec6;border-bottom:2px solid #8faec6;transform:rotate(45deg);transition:transform .18s ease;margin-right:3px}
.nav-group[open] .nav-chevron{transform:rotate(225deg) translate(-2px,-2px)}
.nav-group-items{display:grid;gap:1px;padding:4px 5px 7px;border-top:1px solid rgba(255,255,255,.065)}
.sidebar .nav-group-items a{padding:8px 10px 8px 15px!important;border-radius:7px;font-size:14px;color:#cfe0ee}
.sidebar .nav-group-items a:hover{background:#1d3b55}
.school-context{margin:3px 0 7px}
@media(max-width:850px){
  .sidebar-nav{gap:6px!important;padding-bottom:72px!important}
  .nav-group>summary{padding:13px 12px;font-size:14px}
  .sidebar .nav-group-items a{padding:11px 12px 11px 17px!important;font-size:15px}
  .sidebar-nav>.nav-dashboard{padding:12px!important}
}


/* v4.17.1 FAQ public/admin */
.faq-container{max-width:980px}
.faq-page .section-head{max-width:800px;margin-bottom:28px}
.faq-category{margin:30px 0 12px;font-size:20px}
.public-faq-item{background:#fff;border:1px solid #dbe5ed;border-radius:14px;margin:0 0 10px;overflow:hidden;box-shadow:0 6px 22px rgba(26,55,77,.04)}
.public-faq-item summary{list-style:none;display:flex;justify-content:space-between;gap:18px;align-items:center;padding:18px 20px;font-weight:800;cursor:pointer;color:#182b3b}
.public-faq-item summary::-webkit-details-marker{display:none}
.public-faq-item summary span{font-size:25px;font-weight:400;transition:transform .18s ease}
.public-faq-item[open] summary span{transform:rotate(45deg)}
.public-faq-answer{padding:0 20px 20px;color:#5d7080;line-height:1.7}
.faq-contact-card{margin-top:34px;padding:24px;border-radius:18px;background:#eef6fb;display:flex;justify-content:space-between;align-items:center;gap:22px}
.faq-contact-card h2{margin:0 0 6px}
.faq-contact-card p{margin:0;color:#617687}
.check-row{display:flex;align-items:center;gap:8px}
@media(max-width:760px){.faq-contact-card{display:grid}.public-faq-item summary{padding:16px}.public-faq-answer{padding:0 16px 17px}}

/* v4.18.0 */
.policy-visibility{display:flex;flex-wrap:wrap;gap:12px;padding:14px;border:1px solid #dbe5ed;border-radius:10px}.policy-visibility>b{width:100%}.policy-visibility label{display:flex;align-items:center;gap:6px}

/* v4.18.1 */
.domain-summary{margin-top:16px;padding:12px;border:1px solid #dbe5ed;border-radius:10px;display:grid;gap:4px}.domain-guide{margin-top:18px}

/* v4.18.2 School Resources */
.resource-category{margin:26px 0 10px}
.resource-card{display:flex!important;align-items:center;justify-content:space-between;gap:14px;text-decoration:none;margin-bottom:10px}
.resource-card>div:first-child{display:grid;gap:5px}.resource-card small{color:#738492}
.resource-badges{display:flex;gap:7px;flex-wrap:wrap}.resource-badges span{font-size:12px;padding:5px 8px;border-radius:999px;background:#eef4f8}.resource-badges .required{background:#fff1cf;color:#71520a}
.policy-reader .policy-body{line-height:1.75;white-space:normal}.acknowledgment-card{border-left:4px solid #d99a16}.success-box{padding:12px;border-radius:10px;background:#e9f7ee}
.notice.warning{display:flex;gap:10px;align-items:center;padding:14px 16px;border-radius:12px;background:#fff3cd;border:1px solid #ffe08a;margin-bottom:18px}
@media(max-width:760px){.resource-card{align-items:flex-start;display:grid!important}.resource-badges{justify-content:flex-start}}


/* v4.18.6 FINAL: exact two-line Custom Development label */
.custom-development-menu-link{
  line-height:1.22;
}
.custom-development-menu-link .custom-development-line{
  display:block !important;
  white-space:nowrap !important;
}
@media(max-width:980px){
  .public-links .custom-development-menu-link{
    width:100%;
    max-width:100%;
    padding-top:10px;
    padding-bottom:10px;
  }
}
