.mobile-menu-trigger,.mobile-bottom-nav{display:none}
.mobile-menu-dialog{border:0;border-radius:24px;padding:20px;color:#32134e;background:#fff;width:min(380px,calc(100vw - 24px));max-height:calc(100dvh - 32px);overflow:auto;box-shadow:0 24px 80px #24113755}
.mobile-menu-dialog::backdrop{background:#21132c88;backdrop-filter:blur(3px)}
.mobile-menu-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;border-bottom:1px solid #eee6f3;padding-bottom:16px}
.mobile-menu-heading small{display:block;color:#786883;margin-top:5px}.mobile-menu-heading button{font-size:26px;min-width:44px}
.mobile-menu-dialog nav{display:block;margin:14px 0}.mobile-menu-dialog .side-link{display:flex;width:100%;min-height:48px;border-radius:12px;text-align:start}
.mobile-menu-dialog summary{min-height:48px;padding:14px 6px;font-weight:600;font-size:14px}.mobile-menu-tools{display:flex;gap:10px;border-top:1px solid #eee6f3;padding-top:16px}.mobile-menu-tools button{flex:1}
@media(max-width:760px){
 body:not(.school-signed-out){background:#f8f6fb}
 body:not(.school-signed-out) .local-banner{font-size:10px;padding:6px 12px}
 .unified-shell:not(.signed-out){display:block}
 .unified-shell:not(.signed-out)>.school-sidebar{display:none}
 .unified-shell:not(.signed-out)>.unified-body>header{position:sticky;top:0;z-index:30;display:flex;flex-wrap:nowrap;gap:8px;padding:10px 14px;background:#fff;min-height:64px}
 .unified-shell:not(.signed-out)>.unified-body>header>div:first-of-type{display:none}
 .unified-shell:not(.signed-out) header>.actions{width:auto;margin-inline-start:auto;gap:4px;flex-shrink:0}
 .unified-shell:not(.signed-out) header>.actions [data-action=logout],.unified-shell:not(.signed-out) header>.actions [data-action=refresh]{display:none}
 .unified-shell:not(.signed-out) header>.actions button{min-height:44px;padding:8px;border:0;background:transparent;font-size:12px}
 .mobile-menu-trigger{display:flex;align-items:center;gap:10px;min-width:0;min-height:44px;padding:6px 0;border:0;background:transparent;font-weight:700;text-align:start}
 .mobile-menu-trigger>span:first-child{display:grid;place-items:center;min-width:42px;height:42px;border-radius:12px;background:#f0e8f6;font-size:23px}
 .mobile-menu-trigger>span:last-child{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:40vw}
 .mobile-bottom-nav{display:flex;position:fixed;inset-inline:0;bottom:0;z-index:35;margin:0;padding:7px 12px calc(7px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid #e8dfef;box-shadow:0 -4px 24px #32134e08;gap:8px;flex-wrap:nowrap}
 .mobile-bottom-nav button{display:grid;justify-items:center;align-content:center;gap:3px;flex:1;min-height:50px;padding:5px;border:0;font-size:11px;color:#796884;border-radius:12px}
 .mobile-bottom-nav button[aria-current=page]{background:#f0e8f6;color:#51217f;font-weight:700}
 .mobile-bottom-nav svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7}
 .unified-shell:not(.signed-out) .unified-body main{width:100%;max-width:100%;margin:16px auto 0;padding:0 14px calc(100px + env(safe-area-inset-bottom));overflow-wrap:anywhere}
 .unified-shell:not(.signed-out) main h2{font-size:21px;line-height:1.6}.unified-shell:not(.signed-out) main h3{font-size:17px}
 .unified-shell:not(.signed-out) .card{padding:16px;border-radius:18px;margin:14px 0;min-width:0}
 .unified-shell:not(.signed-out) .grid{grid-template-columns:minmax(0,1fr);gap:12px}.unified-shell:not(.signed-out) .grid>.card{margin:0}
 .unified-shell:not(.signed-out) .split,.unified-shell:not(.signed-out) .help-grid{grid-template-columns:minmax(0,1fr);gap:14px}
 .unified-shell:not(.signed-out) input,.unified-shell:not(.signed-out) select,.unified-shell:not(.signed-out) textarea{font-size:16px;min-height:48px;max-width:100%;min-width:0}
 .unified-shell:not(.signed-out) input[type=checkbox],.unified-shell:not(.signed-out) input[type=radio]{min-height:22px;width:22px}
 .unified-shell:not(.signed-out) button{touch-action:manipulation}.unified-shell:not(.signed-out) main button{min-height:44px}
 .unified-shell:not(.signed-out) main form>.primary{width:100%;margin-top:12px}
 .unified-shell:not(.signed-out) .welcome-connected{margin:0 0 16px;padding:22px;border:1px solid #e7d9ec;border-radius:22px}.welcome-connected h1{font-size:23px;margin:10px 0;line-height:1.7}.welcome-connected p{font-size:14px}.welcome-symbol{display:none}
 .unified-shell:not(.signed-out) .dashboard-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.unified-shell:not(.signed-out) .dashboard-metrics .card{padding:12px 8px;margin:0;text-align:center;border-radius:15px}.dashboard-metrics strong{font-size:25px}.dashboard-metrics span{font-size:11px;line-height:1.7}
 .unified-shell:not(.signed-out) .quick-link{min-height:72px;padding:16px}
 .table-wrap{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;border-radius:12px}.table-wrap table{min-width:540px}td,th{font-size:13px;padding:10px}
 .chat-layout{grid-template-columns:minmax(0,1fr);gap:12px}.chat-layout>.card{padding:14px}.chat-rooms{max-height:190px}.chat-feed{height:clamp(250px,48dvh,440px);padding:10px}.chat-bubble{max-width:95%;padding:12px}.chat-message-actions{gap:6px}.chat-message-actions button{min-width:44px}
 .contact-grid{grid-template-columns:minmax(0,1fr)}.row{gap:8px}.row>*{max-width:100%}.report-brand{gap:10px}.report-brand img{max-width:64px}main img{max-width:100%}pre{overflow-wrap:anywhere}
}
@media print{.mobile-menu-trigger,.mobile-bottom-nav,.mobile-menu-dialog{display:none!important}}
/* Distinct, labeled shortcuts for common school tasks. */
.with-action-icon>.icon{display:inline-block;width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle;margin-inline-end:8px;flex-shrink:0}
.quick-access-grid{grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:14px}
.quick-access-grid .quick-link{display:flex;flex-direction:column;justify-content:center;text-align:center;gap:12px;min-height:142px;padding:20px 12px;transition:box-shadow .2s,border-color .2s}
.quick-access-grid .quick-link:hover{border-color:#b99acc;box-shadow:0 6px 22px #51217f12}
.quick-icon{display:grid;place-items:center;width:60px;height:60px;border-radius:19px;background:#eee5f7;color:#63318a}
.quick-link .quick-icon svg{width:30px;height:30px;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.quick-icon-communications,.quick-icon-accounts,.quick-icon-consents{background:#e2f3ed;color:#26755d}
.quick-icon-attendance,.quick-icon-events,.quick-icon-invoices{background:#fff1d2;color:#997019}
.quick-icon-assignments,.quick-icon-students,.quick-icon-files{background:#e7effc;color:#3964a5}
.quick-icon-reports,.quick-icon-surveys{background:#f9e6ec;color:#a74b6b}
@media(max-width:760px){.unified-shell:not(.signed-out) .grid.quick-access-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.unified-shell:not(.signed-out) .quick-access-grid .quick-link{min-height:122px;padding:14px 6px;gap:10px;border-radius:17px;font-size:12px;line-height:1.6}.quick-icon{width:49px;height:49px;border-radius:16px}.quick-link .quick-icon svg{width:27px;height:27px}}
@media(max-width:350px){.unified-shell:not(.signed-out) .grid.quick-access-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){.quick-access-grid .quick-link{transition:none}}
/* School icon artwork: translucent body, sculpted tile, and warm gold detail. */
.illustrated-icon{stroke-linecap:round;stroke-linejoin:round}
.illustrated-icon .icon-fill{fill:currentColor;fill-opacity:.13;stroke:currentColor;stroke-width:1.35}
.illustrated-icon .icon-gold{fill:#e9bd59;stroke:#c18e27;stroke-width:1}
.illustrated-icon .icon-gold-stroke{stroke:#c29230;stroke-width:2.5;fill:none}
.illustrated-icon .icon-white{stroke:#fff;stroke-width:1.6;fill:none}
.quick-icon{position:relative;width:68px;height:68px;border-radius:22px;background:linear-gradient(145deg,#faf5ff,#e4d3f2);color:#71449b;box-shadow:inset 0 1px 1px #fff,0 7px 16px #51217f12;border:1px solid #fff;isolation:isolate}
.quick-icon::before{content:'';position:absolute;inset:5px;border:1px solid #ffffff90;border-radius:17px;pointer-events:none}
.quick-link .quick-icon svg{width:36px;height:36px;stroke-width:1.45;filter:drop-shadow(0 2px 1px #51217f10)}
.quick-icon-communications,.quick-icon-accounts,.quick-icon-consents{background:linear-gradient(145deg,#f2fff9,#cfe8e1);color:#367b6c}
.quick-icon-attendance,.quick-icon-events,.quick-icon-invoices{background:linear-gradient(145deg,#fffcf0,#f3e1b6);color:#926d30}
.quick-icon-assignments,.quick-icon-students,.quick-icon-files{background:linear-gradient(145deg,#f5faff,#d8e5fa);color:#4b6eaa}
.quick-icon-reports,.quick-icon-surveys{background:linear-gradient(145deg,#fff5fa,#efd6e4);color:#a05880}
.quick-access-grid .quick-link{border-color:#ece5f1;background:linear-gradient(155deg,#fff,#fdfbff);box-shadow:0 3px 10px #32134e03}
.quick-access-grid .quick-link:hover .quick-icon{transform:translateY(-2px)}
.quick-icon{transition:transform .2s}
@media(max-width:760px){.quick-icon{width:59px;height:59px;border-radius:20px}.quick-icon::before{border-radius:15px}.quick-link .quick-icon svg{width:33px;height:33px}.unified-shell:not(.signed-out) .quick-access-grid .quick-link{min-height:133px}}
@media(prefers-reduced-motion:reduce){.quick-icon{transition:none}.quick-access-grid .quick-link:hover .quick-icon{transform:none}}
/* Personal icon appearance: G is the default; the page layout remains consistent. */
.modern-school-icon{fill:currentColor!important;stroke:none!important}
.quick-link .quick-icon .modern-school-icon{width:34px;height:34px;filter:none}
.quick-icon{--tile-tone:#7254c4;--tile-light:#b69aef;--tile-pale:#eee7fc}
.quick-icon-communications,.quick-icon-accounts,.quick-icon-consents{--tile-tone:#248e99;--tile-light:#6dd6c3;--tile-pale:#e0f3f2}
.quick-icon-assignments,.quick-icon-students,.quick-icon-files{--tile-tone:#3c74d4;--tile-light:#82bdff;--tile-pale:#e7efff}
.quick-icon-reports,.quick-icon-surveys{--tile-tone:#bf5c9d;--tile-light:#f19bd2;--tile-pale:#faeaf5}
.quick-icon-attendance,.quick-icon-events,.quick-icon-invoices{--tile-tone:#ba8533;--tile-light:#f1c86e;--tile-pale:#fff2da}
html[data-icon-style=G] .quick-icon{color:#fff;background:linear-gradient(145deg,var(--tile-light),var(--tile-tone));border-color:#ffffff75;box-shadow:0 6px 12px color-mix(in srgb,var(--tile-tone) 25%,transparent),inset 0 1px 1px #ffffff80}
html[data-icon-style=D] .quick-icon{color:#633b9f;background:linear-gradient(145deg,#fff,#eee4fa);border-color:#fff;box-shadow:inset 0 1px 2px #fff,0 8px 18px #7960b725}
html[data-icon-style=E] .quick-icon{color:#ead6a1;background:linear-gradient(145deg,#3c314c,#282032);border:1px solid #54415e;border-radius:50%;box-shadow:inset 0 1px 0 #ffffff15}
html[data-icon-style=E] .quick-icon:before{border-radius:50%;border-color:#ffffff15}
html[data-icon-style=F] .quick-icon{color:var(--tile-tone);background:var(--tile-pale);border:0;box-shadow:none}
html[data-icon-style=F] .quick-icon:before{display:none}
.appearance-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:24px 0}
.appearance-options>button{display:flex;flex-direction:column;align-items:center;gap:14px;padding:22px 12px;border:1px solid #e4d9ed;border-radius:18px;background:#fff;text-align:center}
.appearance-options>button[aria-pressed=true]{border:2px solid #7850a0;background:#faf7fd;box-shadow:0 0 0 3px #eee5f5}
.appearance-options strong{font-size:14px}.appearance-options button>span:last-child{font-size:12px;color:#776284}
.style-swatch{display:grid;place-items:center;width:62px;height:62px;border-radius:18px}.style-swatch svg{width:33px;height:33px;fill:currentColor;stroke:none}
.swatch-D{background:linear-gradient(145deg,#fff,#e6d7fb);color:#633b9f;border:1px solid #fff;box-shadow:0 6px 16px #7960b725}
.swatch-E{background:#2b2238;color:#ead6a1;border-radius:50%;border:1px solid #54415e}
.swatch-F{background:#e0f3f2;color:#248e99}
.swatch-G{background:linear-gradient(145deg,#a9a0f4,#7254c4);color:white;box-shadow:0 6px 14px #7254c433}
@media(max-width:760px){.appearance-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.appearance-options>button{padding:18px 8px}.appearance-options strong{font-size:12px}}
