/* Jalali datepicker ? always on top, works inside <dialog> top-layer */
.jdp-container,jdp-container{position:fixed!important;z-index:2147483647!important}
dialog .jdp-container,dialog jdp-container{z-index:2147483647!important}
input[data-jdp],input[data-time-picker]{cursor:pointer!important;caret-color:transparent;touch-action:manipulation}
input[data-jdp]:disabled,input[data-time-picker]:disabled{cursor:not-allowed!important}
jdp-container.jdp-time-compact,.jdp-container.jdp-time-compact,jdp-container:has(.jdp-only-time){
    min-width:198px!important;
    max-width:210px!important;
    width:210px!important;
    --jdp-day-size:24px;
    padding:.28rem 0;
    border-radius:14px
}
jdp-container.jdp-time-compact .jdp-days,jdp-container.jdp-time-compact .jdp-days-header,jdp-container:has(.jdp-only-time) .jdp-days,jdp-container:has(.jdp-only-time) .jdp-days-header{display:none!important}
jdp-container.jdp-time-compact .jdp-years,jdp-container.jdp-time-compact .jdp-months,jdp-container:has(.jdp-only-time) .jdp-years,jdp-container:has(.jdp-only-time) .jdp-months{display:none!important}
jdp-container .jdp-time-container.jdp-only-time .jdp-time select{padding:.4rem .45rem .4rem 4px;font-size:1rem}
jdp-container .jdp-time-container.jdp-only-time .jdp-time:after{font-size:1.15rem;right:-.5rem}
@media(max-width:680px){
    /* Phones: dock calendar/time as bottom sheet (matches jalaliDatepicker mobile UX). */
    jdp-container,.jdp-container{
        left:50%!important;
        right:auto!important;
        bottom:0!important;
        top:auto!important;
        transform:translateX(-50%)!important;
        width:100%!important;
        max-width:100%!important;
        min-width:min(280px,100%)!important;
        border-radius:16px 16px 0 0!important;
        box-shadow:0 -16px 40px rgba(15,23,42,.2)!important
    }
    jdp-container.jdp-time-compact,.jdp-container.jdp-time-compact,jdp-container:has(.jdp-only-time){
        width:min(320px,100%)!important;
        max-width:100%!important;
        min-width:min(210px,100%)!important;
        border-radius:16px 16px 0 0!important;
        bottom:0!important;
        top:auto!important;
        left:50%!important;
        transform:translateX(-50%)!important
    }
}
.pretty-select-menu.portal-open.is-mobile-sheet,
.location-panel.portal-open.is-mobile-sheet{
    left:8px!important;
    right:8px!important;
    width:auto!important;
    top:auto!important;
    border-radius:18px 18px 16px 16px;
    box-shadow:0 -18px 48px rgba(15,23,42,.22)
}
@font-face{font-family:Vazirmatn;src:url("../fonts/Vazirmatn-Regular.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:Vazirmatn;src:url("../fonts/Vazirmatn-Medium.woff2") format("woff2");font-weight:500 600;font-display:swap}
@font-face{font-family:Vazirmatn;src:url("../fonts/Vazirmatn-Bold.woff2") format("woff2");font-weight:700 900;font-display:swap}
:root{--primary:#2563eb;--primary-dark:#1d4ed8;--primary-soft:#eff6ff;--yellow:#facc15;--orange:#f59e0b;--green:#10b981;--red:#ef4444;--ink:#172033;--muted:#64748b;--line:#e5eaf2;--surface:#fff;--bg:#f4f7fc;--radius:24px;--shadow:0 12px 40px rgba(30,64,175,.08);--scroll:#93c5fd;--scroll-strong:#2563eb}
*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:var(--scroll) transparent}
html{scrollbar-width:thin;scrollbar-color:var(--scroll) transparent}
*::-webkit-scrollbar{width:9px;height:9px}
*::-webkit-scrollbar-track{background:transparent;margin:4px}
*::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#bfdbfe,var(--scroll));border:2px solid transparent;background-clip:padding-box;border-radius:99px}
*::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,var(--scroll),var(--scroll-strong));border:2px solid transparent;background-clip:padding-box}
*::-webkit-scrollbar-corner{background:transparent}
[hidden]{display:none!important}
html{font-size:17.3px;scroll-behavior:smooth}
html:has(.auth-card){height:100%;overflow:hidden;scroll-behavior:auto}
body{margin:0;background:var(--bg);color:var(--ink);font-family:Vazirmatn,Tahoma,sans-serif;min-height:100vh}
h1,h2,h3,h4,h5,h6{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rte-body h1,.rte-body h2,.rte-body h3,.rte-body h4,.rte-body h5,.rte-body h6,
.notification-full-view h1,.notification-full-view h2,.notification-full-view h3{white-space:normal;overflow:visible;text-overflow:unset}
button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{text-decoration:none;color:inherit}
.ambient{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:-1;background:linear-gradient(145deg,#f8fbff,#f2f6ff 54%,#fffaf1)}
.ambient span{position:absolute;width:420px;height:420px;border-radius:50%;filter:blur(70px);opacity:.22;background:#3b82f6;right:-130px;top:-140px}.ambient span+span{background:#fbbf24;right:auto;top:auto;left:-150px;bottom:-160px}
.panel{background:rgba(255,255,255,.94);border:1px solid rgba(255,255,255,.9);border-radius:var(--radius);box-shadow:var(--shadow)}
.app-layout{display:flex;width:100%;max-width:none;gap:clamp(14px,1.5vw,24px);margin:0;padding:clamp(14px,1.75vw,28px);min-height:100vh}
.sidebar{width:clamp(240px,18vw,278px);min-width:clamp(240px,18vw,278px);background:#fff;border-radius:28px;padding:20px;display:flex;flex-direction:column;position:sticky;top:clamp(14px,1.75vw,28px);height:calc(100vh - clamp(28px,3.5vw,56px));box-shadow:var(--shadow);z-index:50;overflow:visible}
.brand{display:flex;align-items:center;gap:11px;padding:3px 2px 22px;border-bottom:1px solid var(--line)}.brand>span:nth-child(2){display:flex;flex-direction:column;min-width:0}.brand strong{font-size:16.2px}.brand small{font-size:10.8px;color:var(--muted)}
.brand-icon{display:grid;place-items:center;width:46px;height:46px;flex:0 0 auto;border-radius:16px;background:linear-gradient(135deg,var(--primary),#4f46e5);color:#fff;box-shadow:0 8px 22px rgba(37,99,235,.28);font-size:21.6px;overflow:hidden}.brand-icon.large{width:64px;height:64px;border-radius:21px;font-size:29.2px}.brand-icon.warning{background:linear-gradient(135deg,var(--orange),#f97316)}.brand-icon.brand-logo{background:#fff;box-shadow:0 6px 18px rgba(15,23,42,.08);border:1px solid var(--line)}.brand-icon.brand-logo img{width:100%;height:100%;object-fit:contain;display:block;padding:4px}
.menu-label{font-size:10.8px;color:#94a3b8;margin:22px 10px 8px}.side-nav{display:flex;flex-direction:column;gap:5px}.side-nav a{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:15px;color:#526077;font-size:14px;font-weight:500;transition:.2s}.side-nav a>i{width:22px;text-align:center;font-size:18.4px}.side-nav a:hover{background:#f8fafc;color:var(--primary);transform:translateX(-2px)}.side-nav a.active{background:var(--primary-soft);color:var(--primary);font-weight:700;box-shadow:inset -3px 0 var(--primary)}.side-nav em,.settings-menu em{font-style:normal;font-size:9.7px;background:#fff7ed;color:#ea580c;border-radius:99px;padding:3px 7px;margin-right:auto}
.sidebar-user{margin-top:auto;padding:12px;background:#f8fafc;border:1px solid var(--line);border-radius:18px;display:flex;align-items:center;gap:9px;position:relative;overflow:visible;flex:0 0 auto;min-width:0;width:100%;box-sizing:border-box}
.sidebar-user-avatar{position:relative;display:block;width:38px;height:38px;flex:0 0 38px}
.sidebar-user-avatar>.avatar{position:relative;z-index:1}
.sidebar-user-meta{display:flex;flex-direction:column;min-width:0;flex:1 1 auto}
.sidebar-user-meta strong,.sidebar-user strong{display:block;font-size:11.9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.35}
.sidebar-user-meta small,.sidebar-user small{display:block;font-size:9.7px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}
.sidebar-user-logout{margin:0;flex:0 0 auto;display:grid;place-items:center}
.avatar,.mini-avatar{display:grid;place-items:center;background:linear-gradient(135deg,var(--primary),#ec4899);color:#fff;font-weight:700}.avatar{width:38px;height:38px;border-radius:13px}.mini-avatar{width:40px;height:40px;border-radius:14px}
.avatar img,.mini-avatar img{width:100%;height:100%;object-fit:cover;border-radius:inherit;display:block}
.icon-btn{width:42px;height:42px;border:1px solid var(--line);border-radius:14px;background:#fff;color:#526077;cursor:pointer;display:grid;place-items:center;position:relative;transition:.2s}.icon-btn:hover{color:var(--primary);border-color:#bfdbfe;transform:translateY(-1px)}.icon-btn b{position:absolute;top:-3px;left:-3px;background:var(--red);color:#fff;border-radius:20px;min-width:17px;height:17px;font-size:9.7px;display:grid;place-items:center}.sidebar-user .icon-btn{width:34px;height:34px;border:0;background:transparent}.sidebar-close,.menu-toggle{display:none}
.main-column{min-width:0;flex:1;width:100%;position:relative;display:flex;flex-direction:column;min-height:0}.topbar{min-height:78px;background:rgba(255,255,255,.94);border-radius:23px;box-shadow:var(--shadow);padding:14px 20px;display:flex;align-items:center;gap:12px;margin-bottom:18px;position:relative;z-index:20;overflow:visible}.page-heading{display:flex;align-items:center;gap:11px;min-width:0;flex:1}.page-heading>div{min-width:0}.page-heading-icon{width:42px;height:42px;border:1px solid #dbeafe;border-radius:14px;color:var(--primary);background:#f8fbff;display:grid;place-items:center;flex:0 0 auto;font-size:19.4px}.page-heading-icon i{line-height:1}.topbar h1{margin:0;font-size:19.4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar p{margin:2px 0 0;font-size:10.8px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-actions{margin-right:auto;display:flex;align-items:center;gap:9px;flex:0 0 auto}.topbar-actions .notification-trigger{display:grid}
.page-content{display:flex;flex-direction:column;gap:18px;width:100%}.page-content>*{width:100%;min-width:0}.alert{display:flex;align-items:center;gap:8px;border-radius:15px;padding:11px 14px;font-size:13px;margin-bottom:12px}.alert.success{background:#ecfdf5;color:#047857;border:1px solid #a7f3d0}.alert.danger{background:#fff1f2;color:#be123c;border:1px solid #fecdd3}
.welcome-card{padding:24px 28px;display:flex;justify-content:space-between;align-items:center;overflow:hidden;background:linear-gradient(115deg,#fff 45%,#eff6ff)}.welcome-card h2{margin:4px 0;font-size:23.8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.welcome-card p{margin:0;color:var(--muted);font-size:13px}.eyebrow{font-size:10.8px;font-weight:700;color:var(--primary);background:var(--primary-soft);padding:5px 9px;border-radius:99px}.year-badge{display:flex;align-items:center;gap:12px;padding:13px 16px;border:1px solid #dbeafe;background:#fff;border-radius:18px;color:var(--primary)}.year-badge>i{font-size:23.8px}.year-badge span{display:flex;flex-direction:column}.year-badge small{font-size:9.7px;color:var(--muted)}.year-badge strong{font-size:11.9px;margin-top:2px}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.stat-card{padding:18px;display:flex;align-items:center;gap:13px;transition:.2s}.stat-card:hover{transform:translateY(-3px)}.stat-icon,.quick-icon{display:grid;place-items:center;color:#fff}.stat-icon{width:54px;height:54px;border-radius:18px;font-size:22.7px}.blue{background:linear-gradient(135deg,#3b82f6,#2563eb)}.orange{background:linear-gradient(135deg,#fbbf24,#f97316)}.green{background:linear-gradient(135deg,#34d399,#059669)}.red{background:linear-gradient(135deg,#fb7185,#dc2626)}.stat-card div{display:flex;flex-direction:column}.stat-card small{font-size:10.8px;color:var(--muted)}.stat-card strong{font-size:25.9px;line-height:1.4}.stat-card div span{font-size:9.7px;color:#94a3b8}
.quick-panel,.settings-card{padding:22px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:18px}.section-head h2{font-size:16.2px;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.section-head p{font-size:10.8px;color:var(--muted);margin:3px 0 0}.quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.quick-grid>a{border:1px solid var(--line);border-radius:18px;padding:14px;display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto auto;align-items:center;gap:2px 10px;transition:.2s}.quick-grid>a:hover{border-color:#bfdbfe;transform:translateY(-2px);box-shadow:0 8px 24px rgba(37,99,235,.08)}.quick-icon{width:42px;height:42px;border-radius:14px;grid-row:1/3}.quick-grid strong{font-size:13px}.quick-grid small{font-size:9.7px;color:var(--muted)}.quick-grid>a>i{grid-row:1/3;grid-column:3;color:#94a3b8;font-size:10.8px}
.primary-btn,.secondary-btn{border:0;cursor:pointer;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:700;transition:.2s}.primary-btn{background:linear-gradient(135deg,var(--primary),#4f46e5);color:#fff;padding:12px 18px;font-size:13px;box-shadow:0 8px 20px rgba(37,99,235,.22)}.primary-btn:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(37,99,235,.3)}.secondary-btn{background:var(--primary-soft);color:var(--primary);padding:8px 12px;font-size:10.8px}.secondary-btn:hover{background:#dbeafe}
label{display:flex;flex-direction:column;gap:6px}label>span{font-size:10.8px;color:#475569;font-weight:500}
label:has(>input[type=checkbox]),label:has(>input[type=radio]){flex-direction:row;align-items:center;gap:8px}
input[type=checkbox],input[type=radio]{width:auto;flex:0 0 auto}
.choice-card{position:relative}.choice-card>input{position:absolute;opacity:0;pointer-events:none}input,select,textarea{width:100%;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:13px;padding:11px 12px;font-size:13px;outline:0;transition:.2s}input:focus,select:focus,textarea:focus{border-color:#93c5fd;box-shadow:0 0 0 4px rgba(37,99,235,.08)}input::placeholder,textarea::placeholder{color:#b2bdcc}.stack-form{display:flex;flex-direction:column;gap:14px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}.form-grid fieldset{grid-column:1/-1;border:1px solid var(--line);border-radius:18px;padding:18px;display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.form-grid legend{font-size:13px;font-weight:700;padding:0 9px;color:var(--primary)}.form-grid legend i{margin-left:5px}.form-grid .wide,.wide{grid-column:1/-1}.form-note{font-size:10.8px;color:var(--muted);background:#f8fafc;padding:10px;border-radius:12px;margin:0}.form-note i{color:var(--primary);margin-left:4px}
.guest-body{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:24px;min-height:100vh;min-height:100dvh;position:relative}
html:has(.auth-card) .guest-body{height:100dvh;min-height:100dvh;overflow:hidden;justify-content:space-between}
html:has(.auth-login-body) .guest-body{height:auto;min-height:100dvh;overflow:visible;justify-content:center;gap:10px;padding:20px 16px max(12px,env(safe-area-inset-bottom))}
.guest-shell{width:100%;max-width:980px;flex:1 0 auto;display:flex;flex-direction:column;justify-content:center}
html:has(.auth-card):not(:has(.auth-login-body)) .guest-shell{flex:1;min-height:0;overflow:auto;justify-content:center}
html:has(.auth-login-body) .guest-shell{flex:0 1 auto;min-height:0;overflow:visible;justify-content:center;width:100%;max-width:430px;margin:0 auto}
html:has(.auth-login-body) .guest-shell--auth{display:flex;flex-direction:column;align-items:stretch;gap:10px}
html:has(.auth-login-body) .auth-card{width:100%;max-width:none;margin:0}
html:has(.auth-card) .site-copyright--guest{padding:4px 8px 8px}
.auth-card{width:100%;max-width:430px;margin:0 auto;padding:34px;text-align:center}.auth-card>.brand-icon{margin:0 auto 16px}.auth-card h1{font-size:21.6px;margin:0}.auth-card>p{font-size:11.9px;color:var(--muted);margin:7px 0 22px}
.auth-security-hint{display:flex;align-items:flex-start;gap:8px;text-align:right;background:#eff6ff;border:1px solid #bfdbfe;color:#1d4ed8;border-radius:14px;padding:10px 12px;font-size:11px!important;margin:0 0 16px!important}
.auth-security-hint i{margin-top:2px}.auth-card .stack-form{text-align:right}.auth-card .primary-btn{width:100%;margin-top:3px}.input-icon{position:relative}.input-icon>i{position:absolute;right:13px;top:50%;transform:translateY(-50%);color:#94a3b8}.input-icon input{padding-right:39px}.input-icon:has([data-password-toggle]) input,.input-icon.has-password-toggle input,.password-field:has([data-password-toggle]) input,.password-field.has-password-toggle input{padding-left:42px}.input-icon>button,.input-icon>.password-toggle,.password-wrap>.password-toggle,.password-wrap>[data-password-toggle],.password-field>.password-toggle,.password-field>[data-password-toggle],.has-password-toggle>.password-toggle{position:absolute;left:6px;right:auto;top:50%;transform:translateY(-50%);border:0;background:transparent;color:#94a3b8;width:34px;height:34px;border-radius:11px;cursor:pointer;display:grid;place-items:center;z-index:2;margin:0;transition:color .22s ease,background .22s ease,transform .28s cubic-bezier(.22,1,.36,1)}.input-icon>button:hover,.password-toggle:hover{color:var(--primary);background:color-mix(in srgb,var(--primary) 10%,transparent)}.input-icon>button.is-revealed,.password-toggle.is-revealed{color:var(--primary)}.input-icon>button.is-toggling i,.password-toggle.is-toggling i{animation:password-eye-pop .36s cubic-bezier(.22,1,.36,1)}.password-toggle--confirm{color:#64748b}.password-toggle--confirm:hover,.password-toggle--confirm.is-revealed{color:#0f766e;background:color-mix(in srgb,#0f766e 12%,transparent)}.password-wrap,.password-field{position:relative;display:block;width:100%;isolation:isolate}.password-wrap>input,.password-field>input{width:100%;padding-left:42px;box-sizing:border-box}@keyframes password-eye-pop{0%{transform:scale(.72) rotate(-12deg);opacity:.45}55%{transform:scale(1.18) rotate(6deg);opacity:1}100%{transform:scale(1) rotate(0);opacity:1}}@media (prefers-reduced-motion:reduce){.input-icon>button.is-toggling i,.password-toggle.is-toggling i{animation:none}}
.install-card{padding:28px}.install-head{display:flex;align-items:center;gap:16px;border-bottom:1px solid var(--line);padding-bottom:20px;margin-bottom:20px}.install-head h1{margin:3px 0;font-size:23.8px}.install-head p{margin:0;color:var(--muted);font-size:11.9px}.step-tag{font-size:9.7px;background:var(--primary-soft);color:var(--primary);padding:4px 8px;border-radius:99px}.install-submit{grid-column:1/-1;justify-self:end;min-width:230px}
.settings-layout{display:grid;grid-template-columns:minmax(210px,235px) minmax(0,1fr);gap:16px;align-items:start;width:100%}
.settings-layout.ticket-detail-layout{grid-template-columns:minmax(260px,300px) minmax(0,1fr)}
.ticket-side-stack{display:flex;flex-direction:column;gap:10px}
.ticket-side-stack .settings-menu{position:static}.settings-menu{padding:13px;position:sticky;top:20px}.settings-menu>p{font-size:9.7px;color:#94a3b8;margin:4px 10px 10px}.settings-content,.settings-tab{min-width:0}.settings-tab{display:none;flex-direction:column;gap:16px}.settings-tab.active{display:flex}.status-chip,.count-badge{font-size:9.7px;border-radius:99px;padding:6px 9px;white-space:nowrap}.status-chip.success{background:#ecfdf5;color:#047857}.status-chip i{font-size:6.5px;margin-left:4px}.count-badge{background:#f1f5f9;color:#475569}
.year-list{display:flex;flex-direction:column;gap:8px}.year-row{display:flex;align-items:center;gap:11px;border:1px solid var(--line);border-radius:16px;padding:11px}.year-row.selected{border-color:#a7f3d0;background:#f0fdf8}.year-icon{width:39px;height:39px;border-radius:13px;display:grid;place-items:center;background:#f1f5f9;color:#64748b}.year-row>span:nth-child(2){display:flex;flex-direction:column;flex:1}.year-row strong{font-size:11.9px}.year-row small{font-size:9.7px;color:var(--muted)}.form-grid.compact{grid-template-columns:repeat(2,1fr)}.sticky-save{display:flex;justify-content:flex-end;position:sticky;bottom:10px;padding-top:12px;z-index:5}.organization-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.organization-card{border:1px solid var(--line);border-radius:18px;padding:14px}.organization-card header{display:flex;align-items:center;gap:10px;margin-bottom:12px}.organization-card h3{font-size:13px;margin:0}.organization-card small{font-size:9.7px;color:var(--muted)}.org-icon{width:40px;height:40px;display:grid;place-items:center;border-radius:13px;background:var(--primary-soft);color:var(--primary)}.relation{background:#f8fafc;border-radius:12px;padding:8px 10px;margin-top:7px}.relation span{font-size:8.6px;color:#94a3b8}.relation p{margin:2px 0 0;font-size:10.8px}.forms-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.forms-grid .settings-card{padding:17px}.forms-grid .section-head{margin-bottom:2px}
.copy-form{gap:18px}.warning-icon{width:48px;height:48px;border-radius:16px;background:#fff7ed;color:var(--orange);display:grid;place-items:center}.copy-years{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:12px}.transfer-direction{color:var(--primary);padding:0 3px 13px;display:grid;place-items:center}.transfer-direction .transfer-arrow-v{display:none}.copy-options{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.copy-options>label,.fixed-option{border:1px solid var(--line);border-radius:14px;padding:11px;min-height:62px}.copy-options>label{cursor:pointer}.copy-options input{width:auto;accent-color:var(--primary)}.copy-options label span{display:flex;align-items:center;gap:7px}.copy-options strong,.fixed-option strong{font-size:10.8px}.fixed-option{display:flex;align-items:center;gap:8px;background:#f0fdf4;color:#047857}.fixed-option>span{display:flex;flex-direction:column}.fixed-option small{font-size:8.6px;opacity:.8}
.empty-state{text-align:center;padding:50px}.empty-state>i{font-size:32.4px;color:#94a3b8}.empty-state h2{font-size:16.2px}.empty-state p{font-size:10.8px;color:var(--muted)}.mobile-nav,.sidebar-backdrop{display:none}
@media(max-width:1200px){.settings-layout{grid-template-columns:1fr}}
@media(max-width:1100px){.stats-grid{grid-template-columns:repeat(2,1fr)}.forms-grid{grid-template-columns:1fr}.copy-options{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.app-layout{padding:14px;gap:0}.sidebar{position:fixed;right:0;top:0;width:min(320px,88vw);height:100dvh;border-radius:0 0 0 28px;transform:translateX(105%);transition:transform .32s cubic-bezier(.22,1,.36,1);box-shadow:-24px 0 60px rgba(15,23,42,.18);background:linear-gradient(180deg,#fff 0%,#f8fbff 42%,#f1f5ff 100%);border-left:1px solid rgba(255,255,255,.9);overflow:hidden}.sidebar.open{transform:translateX(0)}.sidebar .brand{padding:18px 16px 20px;border-bottom-color:rgba(226,232,240,.8)}.sidebar .menu-label{margin:18px 12px 10px;font-weight:600;letter-spacing:.02em}.sidebar .side-nav{padding:0 8px;gap:4px}.sidebar .side-nav a,.sidebar .nav-acc-toggle,.sidebar .nav-acc-desk{border-radius:16px;font-size:13.5px}.sidebar .side-nav a.active,.sidebar .nav-acc-desk.is-active,.sidebar .nav-acc.has-current .nav-acc-toggle{background:rgba(255,255,255,.72);backdrop-filter:blur(12px);border:1px solid rgba(191,219,254,.65);box-shadow:inset 0 1px 0 rgba(255,255,255,.75),0 8px 20px rgba(37,99,235,.08)}.sidebar-close,.menu-toggle{display:grid}.sidebar-close{margin-right:auto;width:40px;height:40px;border:0;border-radius:13px;background:rgba(241,245,249,.9);color:#64748b;box-shadow:inset 0 1px 0 rgba(255,255,255,.85)}.sidebar-close:hover{color:var(--primary);background:#eff6ff;transform:none}.sidebar-backdrop{position:fixed;inset:0;background:linear-gradient(135deg,rgba(15,23,42,.42),rgba(30,64,175,.28));backdrop-filter:blur(3px);z-index:40;opacity:0;transition:opacity .28s ease}.sidebar-open .sidebar-backdrop{display:block;opacity:1}.organization-grid{grid-template-columns:1fr}.menu-toggle{width:44px;height:44px;border:0;border-radius:15px;background:linear-gradient(135deg,var(--primary),#6366f1);color:#fff;box-shadow:0 10px 24px rgba(37,99,235,.28);overflow:hidden}.menu-toggle:hover{color:#fff;border-color:transparent;transform:translateY(-1px);box-shadow:0 14px 28px rgba(37,99,235,.34)}.menu-toggle-bars{width:18px;height:12px;display:flex;flex-direction:column;justify-content:space-between}.menu-toggle-bars span{display:block;height:2px;border-radius:99px;background:currentColor;transition:transform .28s ease,opacity .2s ease,width .28s ease}.menu-toggle-bars span:nth-child(2){width:72%;margin-inline:auto 0}.sidebar-open .menu-toggle-bars span:nth-child(1){transform:translateY(5px) rotate(45deg)}.sidebar-open .menu-toggle-bars span:nth-child(2){opacity:0;width:0}.sidebar-open .menu-toggle-bars span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}}
@media(max-width:680px){body{padding-bottom:96px}.app-layout{padding:9px}.topbar{height:68px;border-radius:18px;padding:10px 12px;margin-bottom:11px}.topbar h1{font-size:16.2px}.topbar-actions{display:flex;gap:6px}.topbar-actions .notification-trigger{display:grid;width:34px;height:34px;flex:0 0 34px}.page-heading-icon{display:none}.page-content{gap:11px}.welcome-card{padding:18px;display:block}.year-badge{margin-top:14px}.stats-grid{grid-template-columns:repeat(2,1fr);gap:8px}.stat-card{padding:12px;gap:9px;flex-direction:column;align-items:flex-start}.stat-icon{width:42px;height:42px;border-radius:14px;font-size:18.4px}.stat-card strong{font-size:21.6px}.quick-panel,.settings-card{padding:15px;border-radius:19px}.quick-grid{grid-template-columns:1fr}.mobile-nav{display:flex;position:fixed;z-index:35;right:10px;left:10px;bottom:max(9px,env(safe-area-inset-bottom));height:72px;padding:8px 10px 10px;background:linear-gradient(135deg,rgba(37,99,235,.94) 0%,rgba(79,70,229,.92) 48%,rgba(124,58,237,.9) 100%);border:1px solid rgba(255,255,255,.28);border-radius:24px 24px 32px 32px;box-shadow:0 16px 40px rgba(37,99,235,.32),inset 0 1px 0 rgba(255,255,255,.22);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);align-items:flex-end;justify-content:space-around;gap:4px;overflow:visible}.mobile-nav:before{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(circle at 18% 0%,rgba(255,255,255,.24),transparent 42%),radial-gradient(circle at 82% 100%,rgba(255,255,255,.12),transparent 38%);pointer-events:none}.mobile-nav-item{position:relative;z-index:1;flex:1;min-width:0;height:48px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:rgba(255,255,255,.78);transition:transform .25s ease,color .25s ease,background .25s ease,box-shadow .25s ease;border-radius:16px;padding:4px 6px}.mobile-nav-item i{font-size:18px;line-height:1;transition:transform .25s ease}.mobile-nav-item strong{font-size:9.4px;font-weight:600;max-width:100%;opacity:1;transform:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.2}.mobile-nav-item.active{color:#fff;background:rgba(255,255,255,.18);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.34);box-shadow:inset 0 1px 0 rgba(255,255,255,.42),0 8px 18px rgba(15,23,42,.12)}.mobile-nav-item.active i{transform:translateY(-1px) scale(1.06)}.mobile-nav-item.active strong{font-weight:800}.mobile-nav-messenger{flex:1.15;transform:translateY(-14px);height:auto;padding:0 0 2px;background:transparent!important;border:0!important;box-shadow:none!important;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:11px}.mobile-nav-messenger strong{font-size:10.2px;font-weight:800;letter-spacing:.01em;margin-top:2px;line-height:1.15}.mobile-nav-messenger-ring{position:relative;width:52px;height:52px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(145deg,#fff 0%,#eef6ff 100%);color:#229ed9;border:3px solid rgba(255,255,255,.92);box-shadow:0 14px 28px rgba(15,23,42,.22),0 0 0 6px rgba(255,255,255,.14);transition:transform .25s ease,box-shadow .25s ease;isolation:isolate}.mobile-nav-messenger-ring:before,.mobile-nav-messenger-ring:after{content:"";position:absolute;inset:-5px;border-radius:22px;border:2px solid rgba(255,255,255,.62);pointer-events:none;animation:mobile-nav-messenger-pulse 2.6s cubic-bezier(.22,1,.36,1) infinite}.mobile-nav-messenger-ring:after{animation-delay:1.3s;border-color:rgba(186,230,253,.75)}.mobile-nav-messenger-ring i{font-size:24px;line-height:1;color:#229ed9;position:relative;z-index:1}.mobile-nav-messenger-ring b{position:absolute;top:-5px;left:-5px;z-index:2;min-width:18px;height:18px;padding:0 4px;border-radius:99px;background:#ef4444;color:#fff;border:2px solid #fff;display:grid;place-items:center;font-size:8px;font-weight:800;line-height:1}.mobile-nav-messenger.active .mobile-nav-messenger-ring,.mobile-nav-messenger:hover .mobile-nav-messenger-ring{transform:translateY(-2px) scale(1.04);box-shadow:0 18px 34px rgba(15,23,42,.26),0 0 0 7px rgba(255,255,255,.18)}.mobile-nav-messenger.active strong{color:#fff;text-shadow:0 1px 8px rgba(15,23,42,.22)}.form-grid,.form-grid fieldset,.form-grid.compact{grid-template-columns:1fr}.install-card{padding:18px}.install-head{align-items:flex-start}.install-submit{width:100%;min-width:0}.auth-card{padding:24px}.organization-grid{grid-template-columns:1fr}.copy-years{grid-template-columns:1fr}.transfer-direction{transform:rotate(-90deg);padding:0;text-align:center}.copy-options{grid-template-columns:1fr 1fr}.section-head{align-items:flex-start}.sticky-save{bottom:92px}.year-row{flex-wrap:wrap}.year-row form{width:100%}.year-row form button{width:100%}}
@media(max-width:380px){.stats-grid{grid-template-columns:1fr}.copy-options{grid-template-columns:1fr}.topbar-actions{display:flex;gap:4px}.topbar-actions .notification-trigger,.topbar-actions .mini-avatar{width:32px;height:32px;flex:0 0 32px}.topbar-actions .mini-avatar{border-radius:11px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}.mobile-nav-messenger-ring:before,.mobile-nav-messenger-ring:after{animation:none!important;opacity:.45}}
@keyframes mobile-nav-messenger-pulse{0%{transform:scale(1);opacity:.72}70%{opacity:.18}100%{transform:scale(1.42);opacity:0}}

/* Keep password-eye absolute; tooltip relative would push the button outside the field */
[data-tooltip]:not(.password-toggle):not([data-password-toggle]){position:relative}
.input-icon>.password-toggle[data-tooltip],
.password-wrap>.password-toggle[data-tooltip],
.password-field>.password-toggle[data-tooltip],
.has-password-toggle>.password-toggle[data-tooltip]{position:absolute}
[data-tooltip]::after{content:attr(data-tooltip);position:absolute;z-index:1000;left:50%;bottom:calc(100% + 9px);transform:translate(-50%,7px) scale(.96);width:max-content;max-width:220px;padding:7px 11px;border-radius:10px;background:linear-gradient(135deg,var(--primary),#4f46e5);color:#fff;font-size:9.7px;font-weight:600;line-height:1.7;text-align:center;white-space:normal;pointer-events:none;opacity:0;visibility:hidden;box-shadow:0 10px 24px rgba(37,99,235,.3);transition:opacity .18s ease,transform .18s ease,visibility .18s ease}
[data-tooltip]::before{content:"";position:absolute;z-index:1001;left:50%;bottom:calc(100% + 4px);width:8px;height:8px;background:var(--primary-dark);transform:translate(-50%,5px) rotate(45deg);pointer-events:none;opacity:0;visibility:hidden;transition:opacity .18s ease,transform .18s ease,visibility .18s ease}
.danger-btn[data-tooltip]::after{background:linear-gradient(135deg,#fb7185,#dc2626);box-shadow:0 10px 24px rgba(220,38,38,.28)}
.danger-btn[data-tooltip]::before{background:#dc2626}
[data-tooltip]:hover::after,[data-tooltip]:focus-visible::after,[data-tooltip].tooltip-visible::after{opacity:1;visibility:visible;transform:translate(-50%,0) scale(1)}
[data-tooltip]:hover::before,[data-tooltip]:focus-visible::before,[data-tooltip].tooltip-visible::before{opacity:1;visibility:visible;transform:translate(-50%,0) rotate(45deg)}
[data-tooltip-placement="bottom"]::after{top:calc(100% + 9px);bottom:auto;transform:translate(-50%,-7px) scale(.96)}
[data-tooltip-placement="bottom"]::before{top:calc(100% + 4px);bottom:auto;transform:translate(-50%,-5px) rotate(45deg)}
[data-tooltip-placement="bottom"]:hover::after,[data-tooltip-placement="bottom"]:focus-visible::after,[data-tooltip-placement="bottom"].tooltip-visible::after{transform:translate(-50%,0) scale(1)}
[data-tooltip-placement="bottom"]:hover::before,[data-tooltip-placement="bottom"]:focus-visible::before,[data-tooltip-placement="bottom"].tooltip-visible::before{transform:translate(-50%,0) rotate(45deg)}
[data-tooltip-placement="right"]::after{left:calc(100% + 10px);right:auto;top:50%;bottom:auto;transform:translate(-7px,-50%) scale(.96)}
[data-tooltip-placement="right"]::before{left:calc(100% + 5px);right:auto;top:50%;bottom:auto;transform:translate(-5px,-50%) rotate(45deg)}
[data-tooltip-placement="right"]:hover::after,[data-tooltip-placement="right"]:focus-visible::after,[data-tooltip-placement="right"].tooltip-visible::after{transform:translate(0,-50%) scale(1)}
[data-tooltip-placement="right"]:hover::before,[data-tooltip-placement="right"]:focus-visible::before,[data-tooltip-placement="right"].tooltip-visible::before{transform:translate(0,-50%) rotate(45deg)}
[data-tooltip-placement="left"]::after{left:auto;right:calc(100% + 10px);top:50%;bottom:auto;transform:translate(7px,-50%) scale(.96)}
[data-tooltip-placement="left"]::before{left:auto;right:calc(100% + 5px);top:50%;bottom:auto;transform:translate(5px,-50%) rotate(45deg)}
[data-tooltip-placement="left"]:hover::after,[data-tooltip-placement="left"]:focus-visible::after,[data-tooltip-placement="left"].tooltip-visible::after{transform:translate(0,-50%) scale(1)}
[data-tooltip-placement="left"]:hover::before,[data-tooltip-placement="left"]:focus-visible::before,[data-tooltip-placement="left"].tooltip-visible::before{transform:translate(0,-50%) rotate(45deg)}
@media(hover:none){[data-tooltip]:not(.tooltip-visible)::after,[data-tooltip]:not(.tooltip-visible)::before{opacity:0;visibility:hidden}}
body.has-float-tooltips [data-tooltip]::after,
body.has-float-tooltips [data-tooltip]::before{content:none!important;display:none!important}
.app-float-tip{position:fixed;z-index:12000;max-width:min(260px,calc(100vw - 24px));padding:8px 12px;border-radius:12px;background:linear-gradient(135deg,#0f172a 0%,#1e293b 100%);color:#f8fafc;font-size:11px;font-weight:700;line-height:1.7;text-align:center;pointer-events:none;opacity:0;transform:translateY(4px) scale(.96);transition:opacity .16s ease,transform .18s cubic-bezier(.2,.8,.2,1);box-shadow:0 16px 36px rgba(15,23,42,.28),0 0 0 1px rgba(255,255,255,.06);letter-spacing:.01em}
.app-float-tip.is-on{opacity:1;transform:none}
.app-float-tip::after{content:"";position:absolute;width:8px;height:8px;background:#1e293b;transform:rotate(45deg)}
.app-float-tip[data-placement="top"]::after{left:50%;bottom:-4px;margin-left:-4px}
.app-float-tip[data-placement="bottom"]::after{left:50%;top:-4px;margin-left:-4px}
.app-float-tip[data-placement="left"]::after{right:-4px;top:50%;margin-top:-4px}
.app-float-tip[data-placement="right"]::after{left:-4px;top:50%;margin-top:-4px}
.app-float-tip[data-tone="danger"]{background:linear-gradient(135deg,#e11d48,#be123c);box-shadow:0 16px 36px rgba(225,29,72,.3)}
.app-float-tip[data-tone="danger"]::after{background:#be123c}
.app-float-tip[data-tone="success"]{background:linear-gradient(135deg,#059669,#047857);box-shadow:0 16px 36px rgba(5,150,105,.3)}
.app-float-tip[data-tone="success"]::after{background:#047857}

.alert-stack{position:fixed;z-index:1800;top:18px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;gap:10px;width:min(430px,calc(100% - 24px));pointer-events:none}
.alert-stack.in-dialog{z-index:2147483646;top:14px}
.system-alert{position:relative;display:flex;align-items:flex-start;gap:11px;padding:14px 15px 16px;border-radius:20px;overflow:hidden;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border:1px solid rgba(226,232,240,.9);box-shadow:0 18px 44px rgba(23,32,51,.18),0 2px 6px rgba(23,32,51,.06);opacity:0;transform:translateY(-16px) scale(.95);transition:opacity .24s ease,transform .38s cubic-bezier(.28,1.3,.62,1);pointer-events:auto}
.system-alert.visible{opacity:1;transform:none}
.system-alert.leaving{opacity:0;transform:translateY(-10px) scale(.97);transition-duration:.24s,.24s}
.system-alert::before{content:"";position:absolute;inset:0 auto 0 0;width:100%;opacity:.5;background:linear-gradient(90deg,transparent 45%,var(--alert-soft) 100%);pointer-events:none}
.system-alert-glyph{position:relative;flex:0 0 auto;width:38px;height:38px;border-radius:14px;display:grid;place-items:center;color:#fff;font-size:15.1px;background:var(--alert-grad);box-shadow:0 8px 18px var(--alert-shadow)}
.system-alert-body{position:relative;flex:1;min-width:0}
.system-alert-body strong{display:block;font-size:12.4px;color:var(--ink);margin-bottom:3px}
.system-alert-body p{margin:0;font-size:11.3px;line-height:2;color:#4b5768;word-break:break-word}
.system-alert-close{position:relative;flex:0 0 auto;border:0;background:transparent;color:#94a3b8;cursor:pointer;width:26px;height:26px;border-radius:10px;display:grid;place-items:center;transition:background .18s ease,color .18s ease}
.system-alert-close:hover{background:rgba(15,23,42,.07);color:var(--ink)}
.system-alert-close i{line-height:1;font-size:11.9px}
.system-alert-timer{position:absolute;inset:auto 0 0 0;height:3px;background:rgba(148,163,184,.18)}
.system-alert-timer b{display:block;height:100%;width:100%;border-radius:0 3px 3px 0;background:var(--alert-grad);transform-origin:right center;animation:alert-timer linear forwards}
.system-alert.paused .system-alert-timer b{animation-play-state:paused}
@keyframes alert-timer{from{transform:scaleX(1)}to{transform:scaleX(0)}}
.system-alert.success{--alert-grad:linear-gradient(135deg,#34d399,#059669);--alert-shadow:rgba(5,150,105,.34);--alert-soft:rgba(16,185,129,.12)}
.system-alert.error{--alert-grad:linear-gradient(135deg,#fb7185,#dc2626);--alert-shadow:rgba(220,38,38,.32);--alert-soft:rgba(244,63,94,.12)}
.system-alert.info{--alert-grad:linear-gradient(135deg,#60a5fa,var(--primary));--alert-shadow:rgba(37,99,235,.32);--alert-soft:rgba(59,130,246,.12)}
@media(max-width:680px){
    .alert-stack{top:auto;bottom:calc(86px + env(safe-area-inset-bottom));width:calc(100% - 18px);gap:0;max-height:none;overflow:visible}
    .alert-stack .system-alert:not(:last-child){display:none}
    .system-alert{transform:translateY(16px) scale(.96)}
    .system-alert.leaving{transform:translateY(10px) scale(.97)}
}

.subject-manage-card .subject-config-form{display:flex;flex-direction:column;gap:10px}
.subject-default-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px}
.subject-custom-list{display:flex;flex-direction:column;gap:6px}
.subject-default-chips .secondary-btn{justify-content:flex-start;text-align:right}
.subject-manage-card{border:1px solid color-mix(in srgb,var(--subject-tone,#2563eb) 25%,#dbeafe);background:linear-gradient(160deg,color-mix(in srgb,var(--subject-tone,#2563eb) 9%,#fff) 0%,#fff 52%)}
.subject-manage-card .org-icon{background:linear-gradient(135deg,var(--subject-tone,#2563eb),color-mix(in srgb,var(--subject-tone,#2563eb) 45%,#0ea5e9));color:#fff}
.subject-manage-card .organization-title h2{font-size:14px}
.subject-manage-card .organization-title p{color:#475569}
.subject-default-grid .choice-card{border:1px solid #dbeafe;border-radius:12px;padding:9px 11px;background:#fff;min-height:42px}
.subject-default-grid .choice-card:has(input:checked){border-color:var(--subject-tone,#2563eb);box-shadow:0 0 0 3px color-mix(in srgb,var(--subject-tone,#2563eb) 18%,transparent);background:color-mix(in srgb,var(--subject-tone,#2563eb) 7%,#fff)}
.subject-actions{display:flex;justify-content:space-between;align-items:center;gap:8px}
.subject-add-btn{border:1px dashed color-mix(in srgb,var(--subject-tone,#2563eb) 45%,#93c5fd);background:color-mix(in srgb,var(--subject-tone,#2563eb) 10%,#fff);color:color-mix(in srgb,var(--subject-tone,#2563eb) 80%,#1e3a8a)}
.teacher-subject-card .subject-input-row select[data-subject-select]{min-height:40px}
.subject-input-row .pretty-select{min-width:0;width:100%}
.subject-add-btn.is-disabled,.subject-add-btn:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}
.subject-save-all-form{position:fixed;left:18px;bottom:20px;z-index:80}
.subject-save-all-fab{box-shadow:0 12px 30px rgba(37,99,235,.28)}
.subject-defaults-fab{
    border:1px solid #f59e0b;
    background:linear-gradient(135deg,#f59e0b,#ea580c);
    color:#fff;
    box-shadow:0 10px 28px rgba(234,88,12,.34)
}
.subject-defaults-fab:hover{box-shadow:0 14px 34px rgba(234,88,12,.42)}
.stage-tabs-wrap{padding:10px 12px}
.stage-tabs{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px}
.stage-tabs button,.stage-tabs a{display:flex;align-items:center;justify-content:center;gap:7px;border:1px solid #dbeafe;background:#f8fbff;color:#334155;border-radius:12px;padding:10px 12px;font-size:11px;font-weight:800;cursor:pointer;transition:.18s;text-decoration:none}
.stage-tabs button b{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:#e2e8f0;color:#334155;font-size:9px}
.stage-tabs button:hover,.stage-tabs a:hover{background:#eff6ff;transform:translateY(-1px)}
.stage-tabs button.active,.stage-tabs a.active{background:linear-gradient(135deg,#2563eb,#4f46e5);color:#fff;border-color:transparent;box-shadow:0 8px 18px rgba(37,99,235,.24)}
.stage-tabs button.active b{background:rgba(255,255,255,.2);color:#fff}
.class-card-view-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:10px}
.class-list-btn{border:1px solid #bfdbfe;background:#eff6ff;color:#1e3a8a;border-radius:12px;padding:10px 12px;font-size:10.4px;font-weight:800;display:flex;align-items:center;justify-content:center;gap:6px;cursor:pointer}
.class-list-btn.student-list-btn{background:#eff6ff;border-color:#93c5fd;color:#1d4ed8}
.class-list-btn.teacher-list-btn{background:#ecfeff;border-color:#67e8f9;color:#0f766e}
.class-card-view-actions .class-list-btn{
    border:0;
    color:#fff;
    box-shadow:0 8px 20px rgba(30,64,175,.18)
}
.class-card-view-actions .student-list-btn{background:linear-gradient(135deg,#3b82f6,#1d4ed8)}
.class-card-view-actions .teacher-list-btn{background:linear-gradient(135deg,#14b8a6,#0f766e)}
.class-assignment-actions .app-action-btn{
    border:1px solid rgba(148,163,184,.45); /* subtle stroke */
    background:#fff;
    color:#334155;
    box-shadow:0 1px 0 rgba(255,255,255,.8) inset
}
.class-assignment-actions .app-action-btn:hover{
    border-color:#94a3b8;
    background:#f8fafc
}
.class-member-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.class-member-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc}
.class-member-row a,.class-member-row>div{min-width:0;display:flex;flex-direction:column;gap:2px}
.class-member-row strong{font-size:11px;color:#1e293b}
.class-member-row small{font-size:9px;color:#64748b;line-height:1.8}
.class-member-actions{display:flex;align-items:center;gap:6px}
@media(min-width:681px){
    .subject-custom-list{display:grid;grid-template-columns:1fr 1fr;gap:8px}
    .teacher-subject-step{grid-template-columns:1fr 1fr}
    .teacher-subject-step>.form-note{grid-column:1/-1}
}
@media(max-width:680px){
    .subject-save-all-form{left:12px;right:12px;bottom:14px}
    .subject-save-all-form{display:grid;gap:8px}
    .subject-save-all-fab,.subject-defaults-fab{width:100%;justify-content:center}
    .stage-tabs{grid-template-columns:1fr 1fr}
    .class-card-view-actions{grid-template-columns:1fr}
    .class-member-list{grid-template-columns:1fr}
    .class-member-row{align-items:flex-start}
}

body.msg-open{overflow:hidden}
.msg-overlay{position:fixed;inset:0;z-index:12050;display:grid;place-items:center;padding:18px;background:rgba(23,32,51,.42);backdrop-filter:blur(5px);opacity:0;transition:opacity .2s ease}
.msg-overlay.visible{opacity:1}
.msg-overlay.in-dialog{z-index:2147483647}
.msg-box{width:100%;max-width:392px;background:#fff;border:1px solid rgba(255,255,255,.9);border-radius:26px;padding:26px 24px 20px;text-align:center;box-shadow:0 26px 60px rgba(23,32,51,.26);transform:translateY(16px) scale(.94);opacity:0;transition:transform .26s cubic-bezier(.34,1.28,.64,1),opacity .22s ease}
.msg-overlay.visible .msg-box{transform:none;opacity:1}
.msg-icon{width:74px;height:74px;margin:0 auto 15px;border-radius:26px;display:grid;place-items:center;font-size:31.3px}
.msg-icon i{display:block;line-height:1;width:1em;text-align:center}
.msg-icon.success{background:#ecfdf5;color:#059669;box-shadow:0 12px 26px rgba(5,150,105,.16)}
.msg-icon.error{background:#fff1f2;color:#e11d48;box-shadow:0 12px 26px rgba(225,29,72,.16)}
.msg-icon.warning{background:#fff7ed;color:#ea580c;box-shadow:0 12px 26px rgba(234,88,12,.16)}
.msg-icon.info{background:var(--primary-soft);color:var(--primary);box-shadow:0 12px 26px rgba(37,99,235,.16)}
.msg-icon.question{background:#eef2ff;color:#4338ca;box-shadow:0 12px 26px rgba(67,56,202,.16)}
.msg-icon.danger{background:#fef2f2;color:#dc2626;box-shadow:0 12px 26px rgba(220,38,38,.18);border:1px solid #fecaca}
.msg-icon.prompt{background:#eff6ff;color:#2563eb;box-shadow:0 12px 26px rgba(37,99,235,.16)}
.msg-box h2{margin:0;font-size:17.3px}
.msg-box p{margin:9px 0 0;font-size:11.9px;line-height:2;color:var(--muted)}
.msg-box.has-field{text-align:right}
.msg-box.has-field .msg-icon{margin-inline:auto}
.msg-box.has-field h2,.msg-box.has-field p{text-align:center}
.msg-field{display:grid;gap:7px;margin-top:16px;text-align:right}
.msg-field>span{font-size:11px;font-weight:800;color:#475569}
.msg-field input{width:100%;min-height:44px;padding:10px 12px;border:1.5px solid #dbe3f0;border-radius:14px;background:#f8fafc;font:inherit;font-size:12.5px;color:#0f172a;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}
.msg-field input:focus{outline:0;border-color:#93c5fd;background:#fff;box-shadow:0 0 0 4px rgba(37,99,235,.12)}
.msg-field input.is-invalid{border-color:#fda4af;background:#fff1f2;box-shadow:0 0 0 4px rgba(220,38,38,.1)}
.msg-actions{display:flex;gap:9px;margin-top:21px}
.msg-actions button{flex:1;justify-content:center}
.msg-actions .secondary-btn{padding:12px 16px;font-size:13px}
.msg-actions .danger-confirm{background:linear-gradient(135deg,#ef4444,#dc2626)!important;color:#fff!important;border:0;box-shadow:0 8px 20px rgba(220,38,38,.28)}
.msg-actions .danger-confirm:hover{box-shadow:0 12px 26px rgba(220,38,38,.36)!important;transform:translateY(-1px)}
@media(max-width:430px){.msg-box{padding:22px 18px 18px;border-radius:22px}.msg-icon{width:64px;height:64px;border-radius:22px;font-size:27px}.msg-actions{flex-direction:column-reverse}}

.settings-menu a{width:100%;border:0;background:transparent;border-radius:13px;display:flex;align-items:center;gap:10px;padding:11px;color:#64748b;font-size:11.9px;cursor:pointer;text-align:right;overflow:visible}
.settings-menu a>i:first-child{width:19px}.settings-menu a>i:last-child{margin-right:auto;font-size:8.6px}
.settings-menu a.active{background:var(--primary-soft);color:var(--primary);font-weight:700}
.settings-menu a.disabled{opacity:.55;cursor:not-allowed;pointer-events:none}
.settings-page{display:flex;flex-direction:column;gap:16px;min-width:0}
.appearance-org-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}
.appearance-org-card{display:flex;flex-direction:column;gap:16px;padding:18px;border:1px solid color-mix(in srgb,var(--org-1,#15803d) 22%,#e2e8f0);background:linear-gradient(160deg,color-mix(in srgb,var(--org-1,#15803d) 8%,#fff) 0%,#fff 58%)}
.appearance-org-card .section-head{margin:0}
.appearance-swatch-stack{display:flex;flex-direction:row-reverse}
.appearance-swatch-stack i{width:18px;height:18px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px color-mix(in srgb,var(--org-1,#15803d) 18%,#e2e8f0);margin-right:-6px}
.appearance-color-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.appearance-color-grid label{display:flex;flex-direction:column;gap:6px;margin:0}
.appearance-color-grid input[type=color]{width:100%;height:52px;padding:0;border:0;border-radius:16px;background:transparent;cursor:pointer}
.appearance-color-grid small{font-size:10px;font-weight:800;color:#64748b;font-family:ui-monospace,monospace}
.appearance-presets{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.appearance-presets>em{font-style:normal;font-size:10.5px;font-weight:800;color:#64748b}
.appearance-presets [data-org-palette]{display:flex;border:1px solid #e2e8f0;background:#fff;border-radius:999px;padding:4px 6px;cursor:pointer;gap:0}
.appearance-presets [data-org-palette] i{width:14px;height:14px;border-radius:50%;margin-left:-4px;border:2px solid #fff}
.appearance-presets [data-org-palette]:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--org-1,#15803d) 35%,#e2e8f0)}
.appearance-preview{display:grid;grid-template-columns:auto repeat(3,minmax(0,1fr));gap:8px;align-items:stretch}
.appearance-chip{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 14px;border-radius:14px;background:linear-gradient(135deg,var(--org-1),var(--org-2));color:#fff;font-size:11px;font-weight:800;min-height:52px}
.appearance-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:72px;padding:8px;border-radius:16px;background:linear-gradient(180deg,color-mix(in srgb,var(--lesson-tone,var(--org-1)) 22%,#fff),#fff 58%);border:2px solid color-mix(in srgb,var(--lesson-tone,var(--org-1)) 38%,#fff)}
.appearance-cell strong{font-size:12px;color:#14532d}
.appearance-cell small{font-size:9px;font-weight:800;color:color-mix(in srgb,var(--lesson-tone,var(--org-1)) 75%,#14532d)}
.appearance-org-card .primary-btn{background:linear-gradient(135deg,var(--org-1),var(--org-2));box-shadow:0 8px 20px color-mix(in srgb,var(--org-1) 28%,transparent)}
.grading-org-panel{display:flex;flex-direction:column;gap:14px}
.grading-scale-card,.grading-discipline-card{display:flex;flex-direction:column;gap:14px;padding:18px;border:1px solid color-mix(in srgb,var(--org-1,#15803d) 22%,#e2e8f0);background:linear-gradient(160deg,color-mix(in srgb,var(--org-1,#15803d) 8%,#fff) 0%,#fff 58%);scroll-margin-top:18px}
.grading-scale-card .section-head,.grading-discipline-card .section-head{margin:0}
.grading-scale-form,.grading-discipline-form{display:flex;flex-direction:column;gap:12px}
.grading-scale-toggle{max-width:360px}
.grading-preset-chips{margin-top:8px}
.grading-readonly{display:flex;flex-direction:column;gap:10px}
.grading-readonly p{margin:0;font-size:13px;color:#334155}
.subject-input-row.grading-discipline-row{display:grid;grid-template-columns:minmax(0,1fr) 110px 40px;align-items:center;gap:6px}
.grading-penalty-field{display:block;min-width:0;margin:0}
.grading-penalty-field>span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.grading-penalty-field .pretty-select,.grading-penalty-field .pretty-select-trigger{min-width:0;width:100%}
.grading-penalty-field .pretty-select-trigger{min-height:40px;padding:8px 10px;border-radius:12px}
.grading-penalty-field select{min-height:40px;padding:8px 10px;border:1px solid var(--line);border-radius:12px;background:#fff;font-size:12px;font-weight:800}
.grading-discipline-row .mini-action{width:40px;height:40px;flex:0 0 40px}
@media(max-width:900px){.appearance-org-list,.appearance-preview{grid-template-columns:1fr}.appearance-color-grid{grid-template-columns:1fr}}
.organization-manage-card{min-width:0;padding:18px;border-color:color-mix(in srgb,var(--org-1,var(--line)) 22%,#e2e8f0);background:linear-gradient(160deg,color-mix(in srgb,var(--org-1,#2563eb) 7%,#fff) 0%,#fff 55%)}
.organization-manage-card .org-icon{background:linear-gradient(135deg,var(--org-1,var(--primary)),var(--org-2,#4f46e5));color:#fff}
.organization-manage-card .primary-btn{background:linear-gradient(135deg,var(--org-1,var(--primary)),var(--org-2,#4f46e5));box-shadow:0 8px 20px color-mix(in srgb,var(--org-1,var(--primary)) 28%,transparent)}
.organization-create .form-actions,.form-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.organization-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}
.organization-summary{display:flex;align-items:center;gap:12px}
.organization-title{flex:1;min-width:0}.organization-title h2{margin:0;font-size:15.1px}.organization-title p{margin:3px 0 0;font-size:10.8px;color:var(--muted)}
.row-actions{display:flex;align-items:center;gap:6px}
.danger-btn{color:var(--red)!important}.danger-btn:hover{border-color:#fecdd3;background:#fff1f2}
.inline-editor{margin-top:14px;padding-top:14px;border-top:1px dashed var(--line)}
.grades-section{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.subsection-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.subsection-title strong{font-size:13px}.subsection-title small{font-size:9.7px;color:var(--muted)}
.grade-list{display:flex;flex-direction:column;gap:8px}
.grade-item{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:#fbfcfe}
.grade-item>span{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600}.grade-item>span i{color:var(--primary)}
.mini-action{width:32px;height:32px;padding:0;border:1px solid #d1d5db;border-radius:10px;background:#eef2ff;color:#4338ca;cursor:pointer;display:grid;place-items:center;align-content:center;font-size:0;line-height:1;overflow:hidden;flex:0 0 32px}
.mini-action>i{font-size:12px;line-height:1}
.organization-manage-card .row-actions{flex-wrap:nowrap;align-items:center}
.organization-manage-card .row-actions .icon-btn{width:35px;height:35px;padding:0;display:grid;place-items:center;font-size:0;overflow:hidden}
.organization-manage-card .row-actions .icon-btn>i{font-size:13px;line-height:1}
.organization-manage-card .mini-action[data-tooltip]::after,
.organization-manage-card .mini-action[data-tooltip]::before,
.organization-manage-card .row-actions .icon-btn[data-tooltip]::after,
.organization-manage-card .row-actions .icon-btn[data-tooltip]::before{content:none;display:none}
.grade-editor{grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap}.grade-editor input{flex:1;min-width:120px}
.add-grade-form{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}.add-grade-form input{flex:1;min-width:130px}
.grade-editor .pretty-select,.add-grade-form .pretty-select{flex:1 1 140px;min-width:130px}
.hidden{display:none!important}
.native-select-hidden{position:absolute!important;opacity:0!important;pointer-events:none!important;width:1px!important;height:1px!important}
.pretty-select{position:relative}
.pretty-select-trigger{
    width:100%;
    min-height:40px;
    box-sizing:border-box;
    border:1px solid var(--line);
    background:#fff;
    border-radius:13px;
    padding:0 12px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    cursor:pointer;
    transition:.2s;
    color:var(--ink);
    font-size:13px;
    font-weight:500;
    line-height:1.35;
    direction:rtl;
    text-align:right;
    box-shadow:0 1px 0 rgba(15,23,42,.02)
}
.pretty-select-trigger>span{
    display:flex;
    align-items:center;
    justify-content:flex-start;
    gap:8px;
    min-width:0;
    flex:1;
    overflow:hidden;
    text-align:right;
    white-space:nowrap;
    text-overflow:ellipsis;
    direction:rtl
}
.pretty-select-trigger>span>i{flex:0 0 auto;color:inherit;font-size:12px}
.pretty-select-trigger:hover,.pretty-select.open .pretty-select-trigger{border-color:#93c5fd;box-shadow:0 0 0 4px rgba(37,99,235,.08)}
.pretty-select-trigger>i.fa-chevron-down{color:#94a3b8;font-size:10.8px;transition:.2s;flex:0 0 auto}
.pretty-select.open .pretty-select-trigger>i.fa-chevron-down{transform:rotate(180deg);color:var(--primary)}
.pretty-select-menu{position:absolute;top:calc(100% + 8px);right:0;left:0;z-index:40;background:#fff;border:1px solid #dbe3f0;border-radius:16px;padding:8px;box-shadow:0 18px 40px rgba(15,23,42,.14);display:none;max-height:240px;overflow:auto}
.pretty-select.open .pretty-select-menu{display:flex;flex-direction:column;gap:4px}
.pretty-select-option{border:0;background:transparent;border-radius:12px;padding:10px 12px;text-align:right;cursor:pointer;font-size:13px;color:#334155;transition:.15s;display:flex;align-items:center;justify-content:flex-start;gap:8px;direction:rtl}.pretty-select-option>i{flex:0 0 auto;width:16px;text-align:center;color:inherit}
.pretty-select-option:hover{background:var(--primary-soft);color:var(--primary)}
.pretty-select-option.selected{background:linear-gradient(135deg,#eff6ff,#e0e7ff);color:var(--primary);font-weight:700}
.pretty-select-option.disabled{opacity:.45;cursor:not-allowed}
.pretty-select.is-disabled .pretty-select-trigger,.pretty-select:has(select:disabled) .pretty-select-trigger{opacity:.55;cursor:not-allowed;background:#f8fafc;box-shadow:none}
.transfer-form{display:flex;flex-direction:column;gap:18px}
.transfer-heading{display:flex;flex-direction:column;gap:4px}.transfer-heading strong{font-size:14px}.transfer-heading small{font-size:10.8px;color:var(--muted)}
.copy-options{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.transfer-option{position:relative;display:flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:14px;padding:9px 10px;cursor:pointer;background:#fff;transition:.2s;min-height:0}
.transfer-option:hover{border-color:#bfdbfe;box-shadow:0 6px 16px rgba(37,99,235,.07)}
.transfer-option input{position:absolute;opacity:0;pointer-events:none}
.check-ui{width:17px;height:17px;border-radius:6px;border:1.5px solid #cbd5e1;display:grid;place-items:center;color:transparent;background:#fff;flex:0 0 auto;font-size:8.6px}
.transfer-option input:checked ~ .check-ui{background:var(--primary);border-color:var(--primary);color:#fff}
.transfer-option:has(input:checked){border-color:#bfdbfe;background:#f8fbff}
.transfer-option input:disabled ~ .option-icon,.transfer-option:has(input:disabled){opacity:.55;cursor:not-allowed;box-shadow:none}
.option-icon{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;font-size:14px;flex:0 0 auto}
.blue-soft{background:#eff6ff;color:#2563eb}.orange-soft{background:#fff7ed;color:#ea580c}.green-soft{background:#ecfdf5;color:#059669}.red-soft{background:#fff1f2;color:#e11d48}.purple-soft{background:#f5f3ff;color:#7c3aed}.teal-soft{background:#f0fdfa;color:#0d9488}.indigo-soft{background:#eef2ff;color:#4f46e5}
.option-text{display:flex;flex-direction:column;gap:2px;min-width:0}
.transfer-option strong{font-size:11.3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.transfer-option small{font-size:9.2px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.option-icon i,.check-ui i,.stat-icon i,.org-icon i,.quick-icon i,.warning-icon i,.mini-action i,.icon-btn i,.brand-icon i,.year-badge>i{display:block;line-height:1;width:1em;text-align:center}
.field-chip{font-style:normal;font-size:9.2px;font-weight:700;color:var(--primary);background:var(--primary-soft);border-radius:99px;padding:3px 8px}
.grade-chip{font-style:normal;font-size:9.2px;font-weight:700;color:#b45309;background:#fef3c7;border-radius:99px;padding:3px 8px}
.classes-section{border-top:1px dashed var(--line);margin-top:14px;padding-top:14px}
.section-hint{margin:0;font-size:10.8px;color:var(--muted);background:#f8fafc;border:1px dashed var(--line);border-radius:12px;padding:10px 12px}
.section-hint i{color:var(--primary);margin-left:5px}
@media(min-width:681px){.class-form input[name="title"]{flex:1 1 160px;min-width:140px}}
jdp-container,jdp-container *{font-family:Vazirmatn,Tahoma,sans-serif!important}
input[data-time-picker]{cursor:pointer}
@media(max-width:900px){.copy-options{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.organization-list{grid-template-columns:1fr}}
@media(max-width:680px){.organization-summary{flex-wrap:wrap}.organization-title{width:100%}.add-grade-form,.grade-editor{flex-direction:column}.copy-years{grid-template-columns:1fr}.grade-item>span{flex-wrap:wrap}}
@media(max-width:430px){.copy-options{grid-template-columns:1fr}}
@media(max-width:680px){.page-heading{gap:8px}.page-heading-icon{width:36px;height:36px;border-radius:12px;font-size:16.2px}.topbar p{max-width:52vw}}

.nav-group{border-radius:15px}.nav-group summary{list-style:none;display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:15px;color:#526077;font-size:14px;cursor:pointer}.nav-group summary::-webkit-details-marker{display:none}.nav-group summary>i:first-child{width:22px;text-align:center;font-size:18.4px}.nav-group summary>i:last-child{margin-right:auto;font-size:9.7px;transition:.2s}.nav-group[open] summary>i:last-child{transform:rotate(180deg)}.nav-group summary.active{background:var(--primary-soft);color:var(--primary);font-weight:700}.nav-group>div{margin:5px 13px 4px 0;padding-right:9px;border-right:1px dashed #bfdbfe;display:flex;flex-direction:column;gap:3px}.nav-group>div a{padding:8px 10px;font-size:11.9px;border-radius:11px}.nav-group>div a>i{font-size:13px!important;width:16px!important}

/* ???????? ???? ????????? / ???? */
.learner-side-nav{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding-left:2px;scrollbar-width:thin}
.nav-acc{border-radius:15px}
.nav-acc-desk{
  display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:15px;
  color:#526077;font-size:14px;font-weight:500;transition:.2s;
}
.nav-acc-desk>i{width:22px;text-align:center;font-size:18.4px}
.nav-acc-desk:hover{background:#f8fafc;color:var(--primary);transform:translateX(-2px)}
.nav-acc-desk.is-active,.nav-acc.has-current .nav-acc-desk{
  background:var(--primary-soft);color:var(--primary);font-weight:700;
  box-shadow:inset -3px 0 var(--primary);
}
.nav-acc-toggle{
  width:100%;border:0;background:transparent;cursor:pointer;
  display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:15px;
  color:#526077;font-size:14px;font-weight:500;font-family:inherit;text-align:right;
  transition:background .2s,color .2s;
}
.nav-acc-toggle>i:first-child{width:22px;text-align:center;font-size:18.4px;flex:0 0 auto}
.nav-acc-toggle>span{flex:1}
.nav-acc-chevron{margin-right:auto;font-size:10px;transition:transform .28s ease;opacity:.7}
.nav-acc-toggle:hover{background:#f8fafc;color:var(--primary)}
.nav-acc-toggle.is-active,.nav-acc.has-current .nav-acc-toggle{
  background:var(--primary-soft);color:var(--primary);font-weight:700;
}
.nav-acc.has-current .nav-acc-toggle{box-shadow:inset -3px 0 var(--primary)}
.nav-acc.is-open .nav-acc-chevron{transform:rotate(180deg)}
.nav-acc-panel{
  display:grid;grid-template-rows:0fr;
  transition:grid-template-rows .32s cubic-bezier(.22,1,.36,1);
}
.nav-acc.is-open .nav-acc-panel{grid-template-rows:1fr}
.nav-acc-inner{
  overflow:hidden;min-height:0;
  margin:4px 10px 6px 0;padding:4px 0 4px 0;padding-right:10px;
  border-right:1px dashed #bfdbfe;
  display:flex;flex-direction:column;gap:3px;
  opacity:0;transform:translateY(-4px);
  transition:opacity .25s ease,transform .28s ease;
}
.nav-acc:not(.is-open) .nav-acc-inner{pointer-events:none}
.nav-acc.is-open .nav-acc-inner{opacity:1;transform:none}
.nav-acc-inner a{
  display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:11px;
  color:#64748b;font-size:12.2px;font-weight:500;
}
.nav-acc-inner a>i{width:16px;text-align:center;font-size:13px}
.nav-acc-inner a:hover{background:#f8fafc;color:var(--primary);transform:none}
.nav-acc-inner a.active{background:var(--primary-soft);color:var(--primary);font-weight:700;box-shadow:inset -3px 0 var(--primary)}

/* ??????: ??? ???? ???? ? ??????? ????? ???? */
@media(min-width:901px){
  .learner-side-nav .nav-acc-mob,
  .learner-side-nav .nav-acc-mob-panel{display:none!important}
}
/* ??????/?????: ???????? ?? ?????? */
@media(max-width:900px){
  .learner-side-nav .nav-acc-desk{display:none!important}
}

/* ???????? ??????? ????? ????? (??????) */
.settings-menu .sm-acc{width:100%;margin-bottom:4px}
.settings-menu .sm-acc-toggle{
  width:100%;border:0;background:transparent;cursor:pointer;
  display:flex;align-items:center;gap:10px;padding:11px;border-radius:13px;
  color:#64748b;font-size:11.9px;font-family:inherit;text-align:right;font-weight:600;
}
.settings-menu .sm-acc-toggle>i:first-child{width:19px}
.settings-menu .sm-acc-toggle .sm-acc-chevron{margin-right:auto;font-size:9px;transition:transform .28s ease}
.settings-menu .sm-acc.is-open .sm-acc-chevron{transform:rotate(180deg)}
.settings-menu .sm-acc-toggle:hover,.settings-menu .sm-acc-toggle.is-active{background:var(--primary-soft);color:var(--primary)}
.settings-menu .sm-acc-panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s cubic-bezier(.22,1,.36,1)}
.settings-menu .sm-acc.is-open .sm-acc-panel{grid-template-rows:1fr}
.settings-menu .sm-acc-inner{overflow:hidden;min-height:0;display:flex;flex-direction:column;gap:2px;padding:2px 0 4px 8px;margin-right:8px;border-right:1px dashed #e2e8f0}
.settings-menu .sm-acc-inner a{padding:9px 10px;font-size:11.2px;border-radius:11px}
.settings-menu .sm-acc-inner a>i:last-child{font-size:8.6px}
/* ??? ??????: ???????? ???? ????????? ?????? (?? ?????? ??? ?????? ???? ??? ????) */
@media(min-width:1201px){
  .settings-menu .sm-acc:not(.is-open) .sm-acc-inner{pointer-events:none}
}

/* ??????: ???? ?????? ???? ???? ???? ??? ??????? */
@media(max-width:1200px){
  .settings-layout{gap:18px}
  .settings-menu.panel,
  .settings-menu{
    position:relative;
    z-index:5;
    display:flex;
    align-items:center;
    gap:8px;
    padding:8px 14px;
    margin:0 0 6px;
    overflow-x:auto;
    overflow-y:hidden;
    -webkit-overflow-scrolling:touch;
    scroll-snap-type:x proximity;
    scroll-padding-inline:14px;
    overscroll-behavior-x:contain;
    scrollbar-width:none;
    border-radius:22px;
    border:1px solid rgba(226,232,240,.95);
    background:linear-gradient(180deg,rgba(255,255,255,.99),rgba(248,250,252,.96));
    box-shadow:0 10px 28px rgba(15,23,42,.06), inset 0 1px 0 rgba(255,255,255,.9);
  }
  .settings-menu.learner-sm-nav,
  .settings-menu.lf-nav{
    margin-bottom:14px;
  }
  .settings-layout > .settings-page,
  .settings-layout > .settings-content{
    margin-top:2px;
  }
  .settings-menu::-webkit-scrollbar{display:none;height:0}
  .settings-menu>p{display:none}
  .settings-menu .sm-acc{
    display:contents;
    margin:0;
    width:auto;
  }
  .settings-menu .sm-acc-toggle{display:none!important}
  .settings-menu .sm-acc-panel,
  .settings-menu .sm-acc-inner{
    display:contents;
    padding:0;margin:0;border:0;
    overflow:visible;
    pointer-events:auto!important;
    min-height:0;
  }
  .settings-menu .sm-acc:not(.is-open) .sm-acc-inner,
  .settings-menu .sm-acc:not(.is-open) .sm-acc-inner a,
  .settings-menu .sm-acc a{
    pointer-events:auto!important;
  }
  .settings-menu a,
  .settings-menu .sm-acc-inner a{
    position:relative;
    z-index:1;
    flex:0 0 auto;
    width:auto;
    min-height:44px;
    padding:10px 14px;
    gap:8px;
    border-radius:16px;
    white-space:nowrap;
    scroll-snap-align:center;
    color:#475569;
    font-size:11.5px;
    font-weight:700;
    background:rgba(241,245,249,.78);
    border:1px solid rgba(226,232,240,.65);
    box-shadow:none;
    transition:background .22s ease,color .22s ease,transform .18s ease,box-shadow .22s ease,border-color .22s ease;
    pointer-events:auto!important;
    cursor:pointer;
    -webkit-tap-highlight-color:transparent;
  }
  .settings-menu a>i:first-child,
  .settings-menu .sm-acc-inner a>i:first-child{
    width:auto;
    font-size:13px;
    opacity:.92;
  }
  .settings-menu a>i:last-child,
  .settings-menu em,
  .settings-menu .sm-acc-inner a>i:last-child{
    display:none!important;
  }
  .settings-menu a:active{
    transform:scale(.97);
  }
  .settings-menu a.active,
  .settings-menu .sm-acc-inner a.active{
    color:#fff;
    background:linear-gradient(135deg,#2563eb 0%,#0ea5e9 100%);
    border-color:transparent;
    box-shadow:0 8px 16px rgba(37,99,235,.22), inset 0 1px 0 rgba(255,255,255,.22);
  }
  .settings-menu.acc-nav a.active,
  .settings-menu.lf-nav a.active{
    color:#fff!important;
    background:linear-gradient(135deg,#2563eb 0%,#0ea5e9 100%)!important;
    box-shadow:0 8px 16px rgba(37,99,235,.22), inset 0 1px 0 rgba(255,255,255,.22)!important;
  }
  .settings-menu a.active>i:first-child,
  .settings-menu .sm-acc-inner a.active>i:first-child{
    opacity:1;
  }
  .settings-menu a.disabled{
    opacity:.45;
    background:rgba(241,245,249,.5);
    pointer-events:none!important;
  }
  .settings-menu.acc-nav a:hover,
  .settings-menu.lf-nav a:hover{
    transform:none;
  }
  .settings-menu.panel.acc-nav,
  .settings-menu.acc-nav{
    flex-direction:column!important;
    align-items:stretch!important;
    overflow:hidden!important;
    overflow-x:hidden!important;
    width:100%;
    max-width:100%;
    min-width:0;
    box-sizing:border-box;
  }
  .settings-menu.acc-nav .acc-nav-scroll{
    display:flex;
    flex-direction:row;
    flex-wrap:nowrap;
    overflow-x:auto;
    overflow-y:hidden;
    -webkit-overflow-scrolling:touch;
    touch-action:pan-x;
    min-width:0;
    max-width:100%;
  }
  .settings-menu.acc-nav .acc-nav-scroll > .acc-nav-hub,
  .settings-menu.acc-nav .acc-nav-scroll a{
    width:auto!important;
    flex:0 0 auto!important;
    flex-shrink:0!important;
  }
  .ticket-side-stack .settings-menu{position:static}
}
@media(max-width:680px){
  .settings-layout{gap:20px}
  .settings-menu.panel,
  .settings-menu{
    margin:0 0 10px;
    margin-inline:-2px;
    padding:7px 9px;
    border-radius:20px;
    gap:7px;
  }
  .settings-menu.learner-sm-nav,
  .settings-menu.lf-nav{
    margin-bottom:16px;
  }
  .settings-menu a,
  .settings-menu .sm-acc-inner a{
    min-height:42px;
    padding:9px 13px;
    font-size:11.2px;
    border-radius:15px;
  }
}
.impersonation-bar{position:sticky;top:0;z-index:1900;min-height:42px;padding:7px 18px;background:linear-gradient(135deg,#312e81,#2563eb);color:#fff;display:flex;align-items:center;justify-content:center;gap:18px;font-size:11.9px;box-shadow:0 7px 24px rgba(37,99,235,.25)}.impersonation-bar form{margin:0}.impersonation-bar button{border:1px solid rgba(255,255,255,.4);background:rgba(255,255,255,.14);color:#fff;border-radius:10px;padding:6px 11px;cursor:pointer}
.prereg-origin-summary{display:flex;flex-wrap:wrap;gap:10px;padding:0 0 14px}
.prereg-origin-chip{display:flex;flex-direction:column;gap:2px;min-width:140px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:#fff;text-decoration:none;color:inherit;transition:.15s}
.prereg-origin-chip strong{font-size:1.25rem;color:var(--primary)}
.prereg-origin-chip span{font-size:12px;color:var(--muted)}
.prereg-origin-chip.is-active,.prereg-origin-chip:hover{border-color:var(--primary);background:var(--primary-soft);box-shadow:0 0 0 3px rgba(37,99,235,.08)}
.advanced-search{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:10px;align-items:end;width:100%;max-width:100%;overflow:visible}.text-btn{color:var(--primary);font-size:10.8px;padding:10px}.users-table-panel{overflow:hidden}.bulk-toolbar{padding:12px 14px;border-bottom:1px solid var(--line);background:#f8fafc;display:grid;grid-template-columns:auto minmax(150px,1fr) minmax(160px,1.2fr) minmax(180px,1.4fr) auto;gap:8px;align-items:center}.bulk-select-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}.bulk-selected-count{display:inline-flex;align-items:center;padding:5px 10px;border-radius:999px;background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe;font-size:10.8px;font-weight:800;white-space:nowrap}.check-label{flex-direction:row;align-items:center;white-space:nowrap;font-size:10.8px}.check-label input,.choice-card input,.data-table input[type=checkbox]{width:auto;accent-color:var(--primary)}.danger-outline-btn{border:1px solid #fecdd3;background:#fff1f2;color:#be123c;border-radius:13px;padding:10px 12px;font-size:10.8px;font-weight:700;cursor:pointer}.responsive-table{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;min-width:760px}.data-table th{padding:11px 13px;background:#fbfcfe;border-bottom:1px solid var(--line);font-size:9.7px;color:#64748b;text-align:right}.data-table td{padding:11px 13px;border-bottom:1px solid #eef2f7;font-size:11.3px;vertical-align:middle}.data-table tr:last-child td{border-bottom:0}.user-cell{display:flex;align-items:center;gap:9px}.user-cell>img,.user-cell>b{width:38px;height:38px;min-width:38px;min-height:38px;max-width:38px;max-height:38px;flex:0 0 38px;aspect-ratio:1/1;border-radius:10px;object-fit:cover;display:grid;place-items:center;background:linear-gradient(135deg,var(--primary),#8b5cf6);color:#fff;overflow:hidden;line-height:1;box-sizing:border-box;font-size:15px;font-weight:800;padding:0}.user-cell>span{display:flex;flex-direction:column}.user-cell strong{font-size:11.9px}.user-cell small,.block-note{display:block;font-size:9.2px;color:var(--muted);margin-top:2px}.identity-badge,.restriction-chip{font-size:8.6px;padding:3px 7px;border-radius:99px;background:var(--primary-soft);color:var(--primary);white-space:nowrap}.relation-summary{font-size:10.3px;line-height:1.9}.restriction-chip.danger{background:#fff1f2;color:#be123c}.restriction-chip.warning{background:#fff7ed;color:#c2410c}.table-heading{padding:16px 18px;margin:0}.choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.choice-card{position:relative;border:1px solid var(--line);border-radius:13px;padding:10px;cursor:pointer}.choice-card>span{display:flex;align-items:center;gap:7px;font-size:10.8px}.choice-card input{position:absolute;opacity:0}.choice-card:has(input:checked){border-color:#93c5fd;background:var(--primary-soft);color:var(--primary)}.choice-card small{display:block;color:var(--muted);font-size:8.6px}.guardian-box{border-right:4px solid #c7d2fe}.upload-row,.attachment-form{display:grid;grid-template-columns:1fr auto;align-items:end;gap:10px}.profile-grid{display:grid;grid-template-columns:260px minmax(0,1fr);gap:16px;align-items:start}.profile-summary{padding:24px;text-align:center;position:sticky;top:20px}.profile-summary>img,.profile-placeholder{width:112px;height:112px;border-radius:34px;margin:0 auto 14px;object-fit:cover;display:grid;place-items:center;background:linear-gradient(135deg,var(--primary),#ec4899);color:#fff;font-size:41px;font-weight:800}.profile-summary h2{font-size:17.3px;margin:0}.profile-summary p{font-size:10.8px;color:var(--muted)}.profile-summary form{margin-top:18px}.profile-content{display:flex;flex-direction:column;gap:16px}.details-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:0}.details-grid>div{background:#f8fafc;border:1px solid #eef2f7;border-radius:13px;padding:10px}.details-grid dt{font-size:8.6px;color:var(--muted)}.details-grid dd{font-size:11.9px;margin:4px 0 0}.attachment-list{display:flex;flex-direction:column;gap:7px;margin-top:12px}.attachment-list>a{display:flex;align-items:center;gap:10px;border:1px solid var(--line);padding:10px 12px;border-radius:13px}.attachment-list>a>i:first-child{font-size:21.6px;color:var(--primary)}.attachment-list>a>span{display:flex;flex-direction:column;flex:1}.attachment-list strong{font-size:10.8px}.attachment-list small{font-size:8.6px;color:var(--muted)}.lock-notice{padding:18px;display:flex;gap:13px;align-items:flex-start;border:1px solid #fed7aa;background:linear-gradient(135deg,#fff,#fff7ed)}.lock-notice>span{width:46px;height:46px;border-radius:15px;display:grid;place-items:center;background:#ffedd5;color:#ea580c}.lock-notice h2{font-size:14px;margin:0}.lock-notice p{font-size:10.8px;color:#7c2d12;margin:4px 0}.lock-notice strong{font-size:10.8px;color:#c2410c}
@media(max-width:1100px){.bulk-toolbar{grid-template-columns:repeat(2,1fr)}.choice-grid{grid-template-columns:repeat(2,1fr)}.advanced-search{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.profile-grid{grid-template-columns:1fr}.profile-summary{position:static}}
@media(max-width:680px){.header-actions{width:100%}.header-actions>*{flex:1}.bulk-toolbar,.choice-grid,.upload-row,.attachment-form,.details-grid{grid-template-columns:1fr}.advanced-search{grid-template-columns:repeat(2,minmax(0,1fr))}.users-table-panel{border-radius:19px}.user-form{padding:15px}.profile-summary{padding:18px}.impersonation-bar{justify-content:space-between;padding:7px 10px}.impersonation-bar span{font-size:9.7px}}
.identity-toggle,.radio-field{display:flex;flex-direction:column;gap:.55rem}.identity-toggle{flex-flow:row wrap}.identity-toggle>span{width:100%}.identity-toggle>label,.stylish-radios label{display:inline-flex;cursor:pointer}.identity-toggle>label{width:48%}.identity-toggle input,.stylish-radios input{position:absolute;opacity:0}.identity-toggle b,.stylish-radios b{display:flex;align-items:center;justify-content:center;gap:.45rem;min-height:44px;width:100%;padding:.65rem 1rem;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--muted);transition:.2s}.identity-toggle input:checked+b,.stylish-radios input:checked+b{border-color:var(--primary);background:var(--primary-soft);color:var(--primary);box-shadow:0 0 0 3px rgba(37,99,235,.1)}.stylish-radios{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.identity-place{display:block;color:var(--primary);min-height:1.2rem;margin-top:.4rem}.serial-fields{display:grid;grid-template-columns:minmax(78px,.5fr) minmax(0,1.8fr);gap:.55rem;align-items:end}.file-picker{position:relative}.file-picker input{position:absolute;opacity:0;pointer-events:none}.file-picker>b{display:flex;align-items:center;justify-content:center;gap:.55rem;min-height:48px;border:1px dashed #93c5fd;border-radius:14px;background:var(--primary-soft);color:var(--primary);cursor:pointer}.file-picker small{display:block;margin-top:.4rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pretty-select-search{width:calc(100% - 1rem);margin:.5rem;padding:.65rem .75rem!important;min-height:38px!important;position:sticky;top:.5rem;z-index:2;background:#fff}.copy-button{border:0;background:transparent;color:var(--primary);cursor:pointer;padding:.3rem}.phone-link{direction:ltr;display:inline-block;color:var(--primary);font-weight:700}.review-actions{display:grid;grid-template-columns:minmax(180px,1fr) auto auto;gap:.6rem;margin-top:1rem}.review-actions input{min-width:0}.restriction-chip.success{background:#e9fbf2;color:#087443}.form-actions{display:flex;align-items:center;justify-content:flex-end;gap:.65rem;margin-top:1rem}.advanced-search{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
@media(max-width:680px){.review-actions{grid-template-columns:1fr}.serial-fields{grid-template-columns:minmax(70px,.5fr) minmax(0,1.8fr)}}
.header-actions .app-action-btn,.app-action-btn{min-width:142px;height:40px;padding:0 14px!important;border-radius:12px;font-size:11.3px!important;box-sizing:border-box;white-space:nowrap}.search-submit-btn,.filter-reset-btn{height:40px;border-radius:12px;padding:0 15px;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:11.3px;font-weight:800;cursor:pointer;transition:.2s}.search-submit-btn{border:0;color:#fff;background:linear-gradient(135deg,#2563eb,#0ea5e9);box-shadow:0 7px 16px rgba(37,99,235,.2)}.search-submit-btn:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(37,99,235,.28)}.filter-reset-btn{border:1px solid #fed7aa;color:#c2410c;background:linear-gradient(135deg,#fff7ed,#fffbeb)}.filter-reset-btn:hover{border-color:#fb923c;background:#ffedd5;transform:translateY(-2px)}
.file-picker{max-width:100%}.file-picker>b{min-height:38px;padding:0 12px;border-radius:11px;font-size:10.3px;background:linear-gradient(135deg,#eff6ff,#f0fdf4);border-color:#86b7f4}.file-picker>b i{color:#16a34a}.file-picker small{font-size:8.6px;margin-top:4px;padding:3px 8px;border-radius:8px;background:#f8fafc;border:1px dashed #dbeafe}.compact-file{width:100%}.compact-upload{grid-template-columns:minmax(220px,290px) auto;justify-content:start}.upload-row .file-picker{width:100%}
.identity-toggle,.radio-field{gap:4px}.identity-toggle>label{width:auto;min-width:92px}.identity-toggle b,.stylish-radios b{min-height:36px;padding:0 12px;border-radius:11px;font-size:10.3px}.stylish-radios{display:flex;gap:6px}.stylish-radios label{min-width:92px}.stylish-radios label:first-child input:checked+b{border-color:#3b82f6;background:linear-gradient(135deg,#eff6ff,#dbeafe);color:#1d4ed8;box-shadow:0 0 0 3px rgba(59,130,246,.1)}.stylish-radios label:nth-child(2) input:checked+b{border-color:#ec4899;background:linear-gradient(135deg,#fdf2f8,#fce7f3);color:#be185d;box-shadow:0 0 0 3px rgba(236,72,153,.1)}.stylish-radios input:checked+b i{animation:gender-pop .48s ease}.identity-toggle label:first-of-type input:checked+b{background:#eff6ff;color:#2563eb}.identity-toggle label:last-of-type input:checked+b{background:#fff7ed;color:#ea580c;border-color:#fb923c}@keyframes gender-pop{0%{transform:rotate(0) scale(1)}35%{transform:rotate(-18deg) scale(1.3)}70%{transform:rotate(12deg) scale(.92)}100%{transform:rotate(0) scale(1)}}
.modern-dialog{width:min(920px,calc(100% - 28px));max-height:88vh;padding:0;border:0;border-radius:24px;background:transparent;overflow:visible}.modern-dialog::backdrop{background:rgba(15,23,42,.58);backdrop-filter:blur(5px)}.dialog-card{background:#fff;border-radius:24px;overflow:hidden;box-shadow:0 30px 80px rgba(15,23,42,.28);animation:dialog-in .25s ease}.dialog-card>header{display:flex;align-items:center;gap:12px;padding:18px 20px;border-bottom:1px solid var(--line);background:linear-gradient(135deg,#fff,#f8fbff)}.dialog-card>header div{flex:1}.dialog-card h2{font-size:15.1px;margin:0}.dialog-card header p{font-size:9.7px;color:var(--muted);margin:3px 0 0}.dialog-icon{width:42px;height:42px;border-radius:14px;display:grid;place-items:center}.dialog-icon.blue{background:#dbeafe;color:#2563eb}.dialog-icon.green{background:#dcfce7;color:#16a34a}.dialog-icon.violet{background:#f3e8ff;color:#7c3aed}.dialog-icon.orange{background:#ffedd5;color:#ea580c}.dialog-close{width:34px;height:34px;border:0;border-radius:11px;background:#f1f5f9;color:#64748b;cursor:pointer}.dialog-body{padding:18px 20px;max-height:62vh;overflow:auto}.dialog-card>footer{padding:13px 20px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:flex-end;gap:8px}.dialog-card>footer>span{flex:1}.dialog-section-title{font-size:11.9px;margin:18px 0 9px}.role-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px}.role-list-item{border:1px solid var(--line);background:#fff;border-radius:16px;padding:12px;display:flex;align-items:center;gap:10px;text-align:right;cursor:pointer;transition:.2s}.role-list-item:hover{transform:translateY(-2px);border-color:#93c5fd;box-shadow:0 10px 24px rgba(37,99,235,.1)}.role-list-item>span:nth-child(2){display:flex;flex:1;flex-direction:column}.role-list-item strong{font-size:11.9px}.role-list-item small{font-size:8.6px;color:var(--muted)}.role-color{width:40px;height:40px;border-radius:13px;display:grid;place-items:center}.role-color.color-1{background:#dbeafe;color:#2563eb}.role-color.color-2{background:#dcfce7;color:#16a34a}.role-color.color-3{background:#fef3c7;color:#d97706}.role-color.color-4{background:#ffedd5;color:#ea580c}.role-color.color-5{background:#fee2e2;color:#dc2626}.role-open{font-size:8.6px;color:var(--primary)}.permission-grid,.export-field-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.permission-item{border:1px solid var(--line);border-radius:13px;padding:9px;display:flex;align-items:center;gap:8px;cursor:pointer}.permission-item>input{position:absolute;opacity:0}.permission-item>span{width:25px;height:25px;border-radius:8px;display:grid;place-items:center;background:#f1f5f9;color:transparent}.permission-item input:checked+span{background:#dcfce7;color:#16a34a}.permission-item b{font-size:10.3px}.permission-item small{display:block;font-size:8.1px;color:var(--muted);margin-top:2px}.member-search{margin-bottom:8px}.member-picker{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;max-height:220px;overflow:auto}.member-picker label{border:1px solid var(--line);border-radius:11px;padding:8px;display:flex;gap:7px;font-size:9.7px}.member-picker span{display:flex;flex-direction:column}.member-picker small{font-size:8.1px;color:var(--muted)}.permission-overrides{display:flex;flex-direction:column;gap:7px;margin-top:12px}.permission-override{display:flex;align-items:center;gap:10px;padding:9px;border:1px solid var(--line);border-radius:13px}.permission-override>span{flex:1}.permission-override strong,.permission-override small{display:block}.permission-override strong{font-size:10.8px}.permission-override small{font-size:8.1px;color:var(--muted)}.state-switch{display:flex;gap:4px}.state-switch input{position:absolute;opacity:0}.state-switch b{display:block;padding:7px 9px;border-radius:9px;background:#f1f5f9;font-size:8.6px;cursor:pointer}.state-switch label:nth-child(2) input:checked+b{background:#dcfce7;color:#15803d}.state-switch label:nth-child(3) input:checked+b{background:#fee2e2;color:#b91c1c}.state-switch label:first-child input:checked+b{background:#dbeafe;color:#1d4ed8}@keyframes dialog-in{from{opacity:0;transform:translateY(18px) scale(.97)}to{opacity:1;transform:none}}
@media(max-width:680px){.header-actions .app-action-btn{min-width:0}.compact-upload,.permission-grid,.export-field-grid,.member-picker{grid-template-columns:1fr}.modern-dialog{width:calc(100% - 14px)}.dialog-body{padding:14px}.permission-override{align-items:flex-start;flex-direction:column}.state-switch{width:100%}.state-switch label{flex:1}.state-switch b{text-align:center}.stylish-radios label{flex:1}.file-picker{max-width:100%}}
.pretty-select-menu>div{display:flex;flex-direction:column;gap:4px;width:100%}.pretty-select-option{display:flex;width:100%;flex:0 0 auto}
.notification-center{position:relative}.notification-trigger{position:relative}.notification-trigger>b{position:absolute;top:-4px;left:-4px;min-width:18px;height:18px;padding:0 4px;border-radius:99px;background:#ef4444;color:#fff;border:2px solid #fff;display:grid;place-items:center;font-size:7.6px}.notification-dropdown{position:absolute;top:calc(100% + 10px);left:0;width:min(380px,calc(100vw - 24px));background:#fff;border:1px solid var(--line);border-radius:28px;box-shadow:0 24px 60px rgba(15,23,42,.2);z-index:1000;display:none;overflow:hidden}.notification-dropdown.open{display:block;animation:dialog-in .2s ease}.notification-dropdown>header{padding:12px 14px;display:flex;align-items:center;border-bottom:1px solid var(--line);background:linear-gradient(135deg,#f8fbff,#fff)}.notification-dropdown>header>div{flex:1;display:flex;flex-direction:column}.notification-dropdown header strong{font-size:11.9px}.notification-dropdown header small{font-size:8.6px;color:var(--muted)}.notification-dropdown header button{width:32px;height:32px;border:0;border-radius:10px;background:#dbeafe;color:#2563eb;cursor:pointer}.notification-list{display:flex;flex-direction:column}.notification-dropdown .notification-list{max-height:390px;overflow:auto;scrollbar-width:thin}.notification-item{display:flex;align-items:flex-start;gap:9px;padding:11px 13px;border-bottom:1px solid #f1f5f9;position:relative;transition:.18s}.notification-item:hover{background:#f8fafc}.notification-item.unread{background:#f5f9ff}.notification-item>span:nth-child(2){flex:1;min-width:0}.notification-item strong{display:block;font-size:10.3px}.notification-item p{font-size:9.2px;color:#475569;line-height:1.7;margin:2px 0}.notification-item small{font-size:7.6px;color:#94a3b8}.notification-icon{width:35px;height:35px;border-radius:12px;display:grid;place-items:center;flex:0 0 auto}.notification-icon.blue{background:#dbeafe;color:#2563eb}.notification-icon.green{background:#dcfce7;color:#16a34a}.notification-icon.yellow{background:#fef9c3;color:#ca8a04}.notification-icon.orange{background:#ffedd5;color:#ea580c}.notification-icon.red{background:#fee2e2;color:#dc2626}.notification-icon.teal{background:#ccfbf1;color:#0f766e}.notification-icon.purple{background:#f3e8ff;color:#7e22ce}.unread-dot{width:7px;height:7px;border-radius:50%;background:#2563eb;position:absolute;left:10px;top:14px}.notification-archive-link{height:42px;display:flex;align-items:center;justify-content:center;gap:7px;color:var(--primary);font-size:9.7px;font-weight:800;background:#f8fafc}.notification-empty{padding:30px;display:flex;flex-direction:column;align-items:center;gap:7px;color:#94a3b8;font-size:9.7px}.notification-empty i{font-size:25.9px}.notification-archive{width:100%;max-width:none;margin:0}.archive-list .notification-item{border:1px solid var(--line);border-radius:15px;margin-top:8px}.archive-list .notification-item.read{opacity:.72}
.notification-dropdown>header>a{width:32px;height:32px;border-radius:10px;background:#dbeafe;color:#2563eb;display:grid;place-items:center;position:relative}
.notification-item.unread{background:linear-gradient(270deg,#dbeafe 0%,#eff6ff 72%);box-shadow:inset -3px 0 0 #2563eb}
.notification-item.unread strong{color:#1e3a8a;font-weight:800}
.notification-item.unread p{color:#334155}
.notification-item.unread:hover{background:linear-gradient(270deg,#bfdbfe 0%,#dbeafe 78%)}
.notification-item.read{background:#fff}
.notification-item.read strong{color:#64748b;font-weight:600}
.unread-dot{background:#2563eb;box-shadow:0 0 0 4px rgba(37,99,235,.16)}
.notify-important-tip{position:fixed;top:0;left:0;width:min(300px,calc(100vw - 16px));max-width:calc(100vw - 16px);box-sizing:border-box;display:grid;grid-template-columns:auto 1fr auto;gap:10px 12px;align-items:flex-start;padding:12px 12px 12px 14px;border-radius:18px;border:1px solid rgba(147,197,253,.75);background:linear-gradient(135deg,rgba(255,255,255,.98),rgba(239,246,255,.96));box-shadow:0 18px 44px rgba(37,99,235,.2),0 0 0 1px rgba(255,255,255,.85);z-index:10050;overflow:hidden;isolation:isolate;animation:notify-tip-in .4s cubic-bezier(.22,1,.36,1) both;pointer-events:auto}
.notify-important-tip.hidden{display:none!important}
.notify-important-tip-glow{position:absolute;inset:-40% auto auto -20%;width:160px;height:160px;border-radius:50%;background:radial-gradient(circle,rgba(59,130,246,.22),transparent 68%);pointer-events:none;animation:notify-tip-glow 4s ease-in-out infinite}
.notify-important-tip-icon{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,#3b82f6,#6366f1);color:#fff;font-size:16px;box-shadow:0 8px 20px rgba(37,99,235,.26);animation:notify-tip-bell 2.4s ease-in-out infinite;position:relative;z-index:1;flex-shrink:0}
.notify-important-tip-body{position:relative;z-index:1;min-width:0;overflow:hidden}
.notify-important-tip-body strong{display:block;font-size:12px;font-weight:900;color:#0f172a;line-height:1.55;margin-bottom:3px}
.notify-important-tip-body p{margin:0 0 8px;font-size:10.8px;color:#475569;line-height:1.65}
.notify-important-tip-link{display:inline-flex;align-items:center;gap:6px;font-size:10.8px;font-weight:800;color:#1d4ed8;text-decoration:none;padding:6px 10px;border-radius:999px;background:rgba(219,234,254,.75);transition:background .2s ease,transform .2s ease;max-width:100%}
.notify-important-tip-link:hover{background:#dbeafe;transform:translateY(-1px)}
.notify-important-tip-close{width:28px;height:28px;border:0;border-radius:9px;background:rgba(241,245,249,.9);color:#64748b;cursor:pointer;display:grid;place-items:center;transition:background .2s ease,color .2s ease,transform .2s ease;position:relative;z-index:1;flex-shrink:0}
.notify-important-tip-close:hover{background:#fee2e2;color:#dc2626;transform:scale(1.05)}
.notify-important-tip::before{content:"";position:absolute;top:-6px;left:var(--notify-tip-arrow-left,24px);width:12px;height:12px;transform:translateX(-50%) rotate(45deg);background:linear-gradient(135deg,#fff,#eff6ff);border-top:1px solid rgba(147,197,253,.75);border-left:1px solid rgba(147,197,253,.75);pointer-events:none}
.notify-important-tip.is-above::before{top:auto;bottom:-6px;border-top:none;border-left:none;border-bottom:1px solid rgba(147,197,253,.75);border-right:1px solid rgba(147,197,253,.75)}
@keyframes notify-tip-in{from{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:none}}
@keyframes notify-tip-glow{0%,100%{opacity:.55;transform:scale(1)}50%{opacity:.9;transform:scale(1.08)}}
@keyframes notify-tip-bell{0%,100%{transform:rotate(0)}10%{transform:rotate(-12deg)}20%{transform:rotate(10deg)}30%{transform:rotate(-8deg)}40%{transform:rotate(0)}}
.inbox-new-tip{position:fixed;top:0;left:0;z-index:10060;display:inline-flex;align-items:center;gap:9px;padding:9px 14px 9px 12px;border-radius:999px;border:1px solid rgba(16,185,129,.35);background:linear-gradient(135deg,rgba(255,255,255,.98),rgba(236,253,245,.96));box-shadow:0 16px 36px rgba(16,185,129,.22),0 0 0 1px rgba(255,255,255,.9);overflow:hidden;isolation:isolate;pointer-events:none;animation:inbox-tip-in .42s cubic-bezier(.22,1,.36,1) both}
.inbox-new-tip.hidden{display:none!important}
.inbox-new-tip-glow{position:absolute;inset:-50% auto auto -30%;width:90px;height:90px;border-radius:50%;background:radial-gradient(circle,rgba(16,185,129,.28),transparent 70%);pointer-events:none;animation:notify-tip-glow 3.2s ease-in-out infinite}
.inbox-new-tip-dot{position:relative;z-index:1;width:10px;height:10px;border-radius:50%;background:#10b981;box-shadow:0 0 0 0 rgba(16,185,129,.55);flex:0 0 auto;animation:inbox-tip-blink 1.2s ease-in-out infinite}
.inbox-new-tip-dot::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:2px solid rgba(16,185,129,.45);animation:inbox-tip-ring 1.2s ease-out infinite}
.inbox-new-tip strong{position:relative;z-index:1;font-size:12px;font-weight:900;color:#065f46;letter-spacing:.01em;white-space:nowrap}
.inbox-new-tip::before{content:"";position:absolute;top:50%;left:-5px;width:10px;height:10px;transform:translateY(-50%) rotate(45deg);background:linear-gradient(135deg,#fff,#ecfdf5);border-bottom:1px solid rgba(16,185,129,.35);border-left:1px solid rgba(16,185,129,.35);pointer-events:none}
.inbox-new-tip.is-left::before{left:auto;right:-5px;border-bottom:none;border-left:none;border-top:1px solid rgba(16,185,129,.35);border-right:1px solid rgba(16,185,129,.35)}
@keyframes inbox-tip-in{from{opacity:0;transform:translateX(-12px) scale(.94)}to{opacity:1;transform:none}}
.inbox-new-tip.is-left{animation-name:inbox-tip-in-left}
@keyframes inbox-tip-in-left{from{opacity:0;transform:translateX(12px) scale(.94)}to{opacity:1;transform:none}}
@keyframes inbox-tip-blink{0%,100%{opacity:1;transform:scale(1);box-shadow:0 0 0 0 rgba(16,185,129,.5)}50%{opacity:.72;transform:scale(1.12);box-shadow:0 0 0 8px rgba(16,185,129,0)}}
@keyframes inbox-tip-ring{0%{transform:scale(.55);opacity:.9}100%{transform:scale(1.7);opacity:0}}
@media(prefers-reduced-motion:reduce){.inbox-new-tip,.inbox-new-tip-dot,.inbox-new-tip-dot::after,.inbox-new-tip-glow{animation:none!important}}
@media(max-width:480px){.notify-important-tip{grid-template-columns:38px 1fr 28px;gap:8px 10px;padding:11px}.notify-important-tip-body p{font-size:10.5px}.notify-important-tip-link{width:100%;justify-content:center;box-sizing:border-box}}
@media(prefers-reduced-motion:reduce){.notify-important-tip,.notify-important-tip-icon,.notify-important-tip-glow{animation:none!important}}
.archive-list .notification-item.unread{border-color:#93c5fd;background:linear-gradient(270deg,#dbeafe 0%,#eff6ff 72%)}
.archive-list .notification-item.read{opacity:.72;background:#fff}
.topbar-popover:has([data-popover-menu].open)>[data-tooltip]::after,
.topbar-popover:has([data-popover-menu].open)>[data-tooltip]::before{opacity:0!important;visibility:hidden!important}
.global-search{position:relative;z-index:35;flex:0 1 auto;min-width:0}
.global-search-inline{display:flex;align-items:center;min-width:0}
.global-search-field{
  display:flex;flex-direction:row;align-items:center;gap:8px;
  margin:0;padding:0 11px;height:40px;min-width:0;
  background:#f8fafc;border:1px solid var(--line);border-radius:14px;
  transition:border-color .15s ease,box-shadow .15s ease,background .15s ease;
}
.global-search-field:focus-within{
  border-color:#bfdbfe;background:#fff;
  box-shadow:0 0 0 3px rgba(59,130,246,.1);
}
.global-search-field--desktop{width:min(260px,24vw);flex:0 1 auto}
.global-search-icon{
  display:grid;place-items:center;flex:0 0 auto;width:16px;height:16px;
  color:#94a3b8;font-size:12px;line-height:1;
}
.global-search-input{
  flex:1 1 auto;min-width:0;width:auto!important;height:auto!important;
  border:0!important;background:transparent!important;box-shadow:none!important;
  padding:0!important;margin:0!important;border-radius:0!important;
  font:inherit;font-size:11.2px;line-height:1.4;color:#0f172a;
}
.global-search-input::placeholder{color:#94a3b8;opacity:1}
.global-search-input::-webkit-search-cancel-button{display:none}
.global-search-kbd{
  flex:0 0 auto;display:inline-grid;place-items:center;min-width:20px;height:20px;
  padding:0 5px;border-radius:6px;border:1px solid #e2e8f0;background:#fff;
  color:#94a3b8;font-size:8.5px;font-family:inherit;line-height:1;
}
.global-search-open-btn{display:none}
.global-search-backdrop{
  position:fixed;inset:0;background:rgba(15,23,42,.42);backdrop-filter:blur(2px);
  z-index:1195;opacity:0;transition:opacity .2s ease;
}
.global-search-backdrop.is-visible{opacity:1}
.global-search-backdrop[hidden]{display:none!important}
.global-search-panel{
  position:absolute;top:calc(100% + 8px);right:0;left:auto;
  width:min(420px,calc(100vw - 32px));background:#fff;border:1px solid var(--line);
  border-radius:22px;box-shadow:0 22px 55px rgba(15,23,42,.18);overflow:hidden;z-index:1200;
}
.global-search-panel[hidden]{display:none!important}
.global-search-panel.is-open{display:flex;flex-direction:column;animation:dialog-in .18s ease}
.global-search-mobile-bar{display:none}
.global-search-results{max-height:min(62vh,460px);overflow:auto;scrollbar-width:thin;padding:8px 6px 10px}
.global-search-group{margin:0 0 10px}
.global-search-group:last-child{margin-bottom:2px}
.global-search-group-head{
  display:flex;align-items:center;gap:7px;padding:0 8px 6px;
  font-size:9.2px;font-weight:800;color:#475569;letter-spacing:.01em;
}
.global-search-group-badge{
  width:20px;height:20px;border-radius:7px;display:grid;place-items:center;flex:0 0 auto;
  font-size:8.5px;line-height:1;
}
.global-search-group--students .global-search-group-badge{background:#eff6ff;color:#2563eb}
.global-search-group--parents .global-search-group-badge{background:#fdf4ff;color:#a21caf}
.global-search-group--staff .global-search-group-badge{background:#fff7ed;color:#c2410c}
.global-search-group--sections .global-search-group-badge{background:#f0fdf4;color:#059669}
.global-search-group-label{flex:1;min-width:0}
.global-search-group-count{
  flex:0 0 auto;min-width:18px;height:18px;padding:0 5px;border-radius:99px;
  background:#f1f5f9;color:#64748b;font-size:8px;font-weight:800;
  display:grid;place-items:center;line-height:1;
}
.global-search-group-body{
  background:#fafbfd;border:1px solid #eef2f7;border-radius:14px;overflow:hidden;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8);
}
.global-search-item{
  display:flex;align-items:center;gap:8px;padding:8px 10px;text-decoration:none;color:inherit;
  transition:background .12s ease;border-bottom:1px solid #f1f5f9;
}
.global-search-item:last-child{border-bottom:0}
.global-search-item:hover,.global-search-item.is-active{background:#f8fbff}
.global-search-item-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.global-search-item strong{display:block;font-size:11px;font-weight:800;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.45}
.global-search-item small{display:block;font-size:8.8px;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.4}
.global-search-item-chevron{flex:0 0 auto;font-size:8px;color:#cbd5e1;opacity:.9}
.global-search-item--user .global-search-avatar{
  width:26px;height:26px;border-radius:8px;display:grid;place-items:center;flex:0 0 26px;
  overflow:hidden;position:relative;
}
.global-search-item--user .global-search-avatar.has-photo{
  background:#f1f5f9;border:1px solid #e2e8f0;
}
.global-search-item--user .global-search-avatar.no-photo{
  background:linear-gradient(135deg,var(--primary),#ec4899);color:#fff;
}
.global-search-item--user .global-search-avatar img{
  width:100%;height:100%;object-fit:cover;display:block;
}
.global-search-item--user .global-search-avatar-fallback{
  display:grid;place-items:center;width:100%;height:100%;
}
.global-search-item--user .global-search-avatar-fallback i{font-size:9.5px;line-height:1}
.global-search-item--user .global-search-avatar.has-photo .global-search-avatar-fallback{display:none}
.global-search-item--user .global-search-avatar.no-photo .global-search-avatar-fallback{display:grid}
.global-search-item--section{padding:7px 10px}
.global-search-item--section .global-search-item-icon{
  width:18px;height:18px;border-radius:6px;flex:0 0 18px;
  display:grid;place-items:center;background:#f1f5f9;color:#64748b;
  font-size:8px;line-height:1;
}
.global-search-item--section:hover .global-search-item-icon,
.global-search-item--section.is-active .global-search-item-icon{background:#eff6ff;color:var(--primary)}
.global-search-empty,.global-search-loading,.global-search-hint{padding:28px 14px;text-align:center;color:#94a3b8;font-size:10px;line-height:1.6}
.global-search-hint i{display:block;font-size:18px;margin-bottom:8px;color:#cbd5e1}
@media(max-width:1100px){
  .global-search-field--desktop{width:min(210px,22vw)}
  .global-search-kbd{display:none}
}
@media(max-width:900px){
  .global-search-field--desktop{width:min(170px,20vw)}
}
@media(max-width:680px){
  .global-search{flex:0 0 auto}
  .global-search-field--desktop{display:none}
  .global-search-open-btn{display:grid;width:34px;height:34px;flex:0 0 34px;border-radius:12px}
  body.global-search-open{overflow:hidden}
  .global-search-panel{
    position:fixed;top:max(12px,env(safe-area-inset-top));right:10px;left:10px;bottom:auto;
    width:auto;height:auto;max-height:min(82dvh,calc(100dvh - 24px));
    border-radius:20px;border:1px solid var(--line);
    box-shadow:0 24px 60px rgba(15,23,42,.24);z-index:1200;background:#fff;
    padding-top:0;
  }
  .global-search-mobile-bar{
    display:flex;align-items:center;gap:8px;padding:10px 12px;
    border-bottom:1px solid var(--line);background:linear-gradient(180deg,#f8fbff,#fff);flex:0 0 auto;
  }
  .global-search-mobile-bar .global-search-field{flex:1;min-width:0;height:42px;border-radius:13px;background:#fff}
  .global-search-close-btn{width:38px;height:38px;flex:0 0 38px;border-radius:12px}
  .global-search-results{flex:1 1 auto;max-height:min(58dvh,520px);min-height:120px}
}
@media(max-width:380px){
  .global-search-open-btn{width:32px;height:32px;flex:0 0 32px;border-radius:11px}
}
.inbox-dropdown.notification-dropdown{width:min(400px,calc(100vw - 24px))}
.inbox-dropdown .notification-list{
  display:flex;
  flex-direction:column;
  max-height:min(68vh,560px);
  overflow-x:hidden;
  overflow-y:auto;
  scrollbar-width:thin;
}
.inbox-item{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:8px;
  padding:12px 14px;
  border-bottom:1px solid #f1f5f9;
  flex:0 0 auto;
  position:relative;
  box-sizing:border-box;
  overflow:visible;
  max-height:none;
  min-height:0;
  background:#fff;
}
.inbox-item:last-of-type{border-bottom:0}
.inbox-item-link{
  display:flex;
  align-items:flex-start;
  gap:10px;
  min-width:0;
  width:100%;
  text-decoration:none;
  color:inherit;
}
.inbox-item-link>span:nth-child(2){flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.inbox-item-link strong{display:block;font-size:11px;font-weight:800;color:#0f172a;line-height:1.45}
.inbox-item-link p{
  font-size:10px;color:#475569;line-height:1.55;margin:0;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;
}
.inbox-item-link small{font-size:8.5px;color:#94a3b8;line-height:1.4}
.inbox-avatar{
  width:36px;height:36px;border-radius:12px;display:grid;place-items:center;
  flex:0 0 36px;background:linear-gradient(135deg,var(--primary),#ec4899);
  color:#fff;font-size:12px;font-weight:800;overflow:hidden;
}
.inbox-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.inbox-quick-reply{
  display:flex;
  align-items:center;
  gap:6px;
  width:100%;
  max-width:100%;
  margin:0;
  padding-inline-start:46px;
  box-sizing:border-box;
  flex:0 0 auto;
  position:relative;
  z-index:1;
}
.inbox-quick-reply input[type="text"],
.inbox-quick-reply input{
  flex:1 1 0;
  width:0;
  min-width:0;
  max-width:100%;
  height:34px;
  box-sizing:border-box;
  border:1px solid var(--line);
  border-radius:10px;
  padding:0 10px;
  background:#f8fafc;
  font-size:11px;
  line-height:34px;
  box-shadow:none;
}
.inbox-quick-reply button{
  flex:0 0 auto;
  height:34px;
  border:0;
  border-radius:10px;
  padding:0 12px;
  background:#2563eb;
  color:#fff;
  font-size:10.5px;
  font-weight:800;
  cursor:pointer;
  white-space:nowrap;
}
.inbox-quick-reply button:disabled{opacity:.6;cursor:wait}
.inbox-item-sent{background:#ecfdf5}
.inbox-item-leave{
  animation:inbox-dismiss .48s cubic-bezier(.22,1,.36,1) forwards;
  pointer-events:none;
  overflow:hidden;
}
@keyframes inbox-dismiss{
    0%{opacity:1;transform:translateX(0) scale(1);max-height:140px}
    35%{opacity:1;transform:translateX(10px) scale(.98);background:#dcfce7}
    100%{opacity:0;transform:translateX(-48px) scale(.9);max-height:0;padding-top:0;padding-bottom:0;margin:0;border-width:0}
}
.sidebar-user .messenger-float-btn,
.sidebar-user .messenger-float-btn[data-tooltip]{
    position:absolute!important;
    bottom:calc(100% + 14px);
    left:50%;
    transform:translateX(-50%);
    z-index:6;
    width:34px;
    height:34px;
    border-radius:12px;
    display:grid;
    place-items:center;
    background:linear-gradient(135deg,#229ed9,#0d6ea3);
    color:#fff;
    font-size:15px;
    box-shadow:0 8px 20px rgba(13,110,163,.35);
    border:3px solid #fff;
    text-decoration:none;
}
.sidebar-user .messenger-float-btn:hover,
.sidebar-user .messenger-float-btn[data-tooltip]:hover{transform:translateX(-50%) translateY(-1px);color:#fff}
.sidebar-user .messenger-float-btn>b{position:absolute;top:-6px;left:-6px;min-width:18px;height:18px;padding:0 4px;border-radius:99px;background:#ef4444;color:#fff;border:2px solid #fff;display:grid;place-items:center;font-size:7.6px}
.location-panel.portal-open{
    display:flex!important;
    flex-direction:column;
    gap:8px;
    position:fixed;
    z-index:6000;
    padding:10px;
    overflow:hidden;
    box-sizing:border-box;
    animation:dialog-in .18s ease;
}
.location-panel.portal-open>input{flex:0 0 auto}
.location-panel.portal-open .location-results{
    flex:1 1 auto;
    min-height:120px;
    max-height:none;
    overflow:auto;
    margin-top:0;
}
.class-grade-filter{display:grid;grid-template-columns:minmax(180px,280px) auto auto;gap:8px;align-items:end}.class-placement-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px}.class-placement-card{padding:15px;display:flex;flex-direction:column;gap:12px}.class-placement-card>header{display:flex;align-items:center;gap:10px}.class-placement-card>header>div{flex:1}.class-placement-card h2{font-size:14px;margin:0}.class-placement-card header p{font-size:8.6px;color:var(--muted);margin:3px 0}.class-placement-card header>b{font-size:8.6px;color:#15803d;background:#dcfce7;border-radius:99px;padding:5px 8px}.class-card-icon{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,#dbeafe,#e0e7ff);color:#2563eb}.class-roster{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;max-height:240px;overflow:auto}.class-roster>a{display:flex;align-items:center;gap:7px;border:1px solid #eef2f7;border-radius:11px;padding:7px}.class-roster>a>span{width:28px;height:28px;border-radius:9px;display:grid;place-items:center;background:#fef3c7;color:#b45309}.class-roster a div{display:flex;flex-direction:column}.class-roster strong{font-size:9.2px}.class-roster small,.class-roster>p{font-size:8.1px;color:var(--muted)}.student-assignment-list{display:grid;grid-template-columns:repeat(2,1fr);gap:7px}.student-assignment-list label{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:12px;padding:8px;cursor:pointer}.student-assignment-list input{position:absolute;opacity:0}.student-assignment-list label>span{width:26px;height:26px;border-radius:8px;background:#f1f5f9;color:transparent;display:grid;place-items:center}.student-assignment-list input:checked+span{background:#dcfce7;color:#16a34a}.student-assignment-list label>div{display:flex;flex-direction:column}.student-assignment-list strong{font-size:9.7px}.student-assignment-list small{font-size:8.1px;color:var(--muted)}
@media(max-width:680px){.notification-dropdown{position:fixed;top:60px;left:7px;right:7px;width:auto}.header-actions .app-action-btn{width:40px;flex:0 0 40px;font-size:0!important}.header-actions .app-action-btn i{font-size:14px}.class-grade-filter,.class-placement-grid,.student-assignment-list{grid-template-columns:1fr}.class-roster{grid-template-columns:1fr}.page-heading p{display:none}.page-heading h1{font-size:14px}.topbar{padding-inline:9px}.notification-archive .app-action-btn{min-width:40px;width:40px;font-size:0!important}.notification-archive .app-action-btn i{font-size:14px}}
.advanced-search{
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(148px,1fr));
    gap:10px;
    align-items:end;
    width:100%;
    max-width:100%;
    overflow:visible;
    padding-bottom:0;
    box-sizing:border-box
}
.advanced-search>label{
    min-width:0;
    max-width:100%;
    display:flex;
    flex-direction:column;
    gap:5px
}
.advanced-search>label>span{font-size:10.3px;font-weight:700;color:var(--muted)}
.advanced-search>label:first-child{grid-column:auto}
.advanced-search>.search-submit-btn,
.advanced-search>.filter-reset-btn{
    width:100%;
    min-width:0;
    justify-content:center
}
@media(min-width:1100px){
    .advanced-search{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}
}
@media(max-width:680px){
    .advanced-search{grid-template-columns:repeat(2,minmax(0,1fr))}
    .advanced-search>label:first-child{grid-column:1/-1}
}
.check-label{display:flex!important;direction:rtl;justify-content:flex-start;gap:8px}.check-label input,.data-table input[type=checkbox]{appearance:none;width:19px;height:19px;min-width:19px;border:1.5px solid #cbd5e1;border-radius:6px;background:#fff;display:grid;place-items:center;cursor:pointer;transition:.18s}.check-label input:checked,.data-table input[type=checkbox]:checked{border-color:var(--primary);background:linear-gradient(135deg,#2563eb,#0ea5e9)}.check-label input:checked:after,.data-table input[type=checkbox]:checked:after{content:"\2713";color:#fff;font-size:13px;font-weight:900}.choice-card{display:flex;align-items:center;gap:9px}.choice-card:before{content:"";width:20px;height:20px;min-width:20px;border:1.5px solid #cbd5e1;border-radius:7px;background:#fff;transition:.18s}.choice-card:has(input:checked):before{content:"\2713";display:grid;place-items:center;background:linear-gradient(135deg,#2563eb,#0ea5e9);border-color:#2563eb;color:#fff;font-size:13px;font-weight:900}.choice-card>span{flex:1}
.location-picker{position:relative;cursor:pointer;touch-action:manipulation}.location-picker>input[data-location]{padding-left:36px;cursor:pointer;touch-action:manipulation;caret-color:transparent}.location-picker>i{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--primary);cursor:pointer;pointer-events:none;z-index:1}.location-panel{display:none;position:absolute;top:calc(100% + 7px);right:0;width:min(430px,calc(100vw - 38px));max-height:360px;padding:9px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 45px rgba(15,23,42,.18);z-index:120;cursor:default;touch-action:auto}.location-picker.open .location-panel{display:block;animation:dialog-in .18s ease}.location-panel>input{position:sticky;top:0;z-index:2;background:#fff;cursor:text}.location-results{max-height:285px;overflow:auto;margin-top:7px}.location-results section{padding:5px 3px 9px;border-bottom:1px solid #f1f5f9}.location-results h4{margin:0 0 5px;padding:3px 7px;color:var(--primary);font-size:10.8px;background:#eff6ff;border-radius:8px}.location-results section>div{display:flex;flex-direction:column}.location-results button{width:100%;border:0;background:#fff;text-align:right;padding:7px 10px;border-radius:8px;color:#334155;font-family:inherit;font-size:10.3px;cursor:pointer}.location-results button:hover{background:#f1f5f9;color:var(--primary)}
.student-more-menu{position:relative}.student-more-menu>button{min-width:142px}.student-more-options{display:none;position:absolute;top:calc(100% + 7px);left:0;min-width:210px;padding:6px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 16px 36px rgba(15,23,42,.16);z-index:50}.student-more-menu.open .student-more-options{display:flex;flex-direction:column;animation:dialog-in .18s ease}.student-more-options a,.student-more-options button{display:flex;align-items:center;gap:8px;padding:9px 10px;border-radius:9px;font-size:10.3px;width:100%;border:0;background:transparent;color:inherit;text-align:right;cursor:pointer;font-family:inherit}.student-more-options a:hover,.student-more-options button:hover{background:var(--primary-soft);color:var(--primary)}.student-more-options i{width:18px;text-align:center}
@media(max-width:680px){.advanced-search{display:grid;grid-template-columns:1fr 1fr;overflow:visible}.advanced-search>label,.advanced-search>label:first-child{min-width:0}.advanced-search>label:first-child{grid-column:1/-1}.location-panel{position:fixed;right:12px;left:12px;top:80px;width:auto;max-height:calc(100vh - 105px)}.location-results{max-height:calc(100vh - 190px)}.student-more-menu>button{min-width:40px;width:40px;font-size:0!important}.student-more-menu>button i{font-size:14px}}
.primary-btn{padding:8px 12px;font-size:10.8px;border-radius:11px;gap:6px;box-shadow:0 5px 13px rgba(37,99,235,.18)}.secondary-btn{padding:6px 9px;font-size:9.7px;border-radius:10px;gap:5px}.header-actions .app-action-btn,.app-action-btn{min-width:108px;height:34px;padding:0 10px!important;border-radius:10px;font-size:9.7px!important}.search-submit-btn,.filter-reset-btn{height:40px;padding:0 12px;border-radius:12px;font-size:11.3px}.danger-outline-btn{padding:7px 9px;border-radius:10px;font-size:9.7px}.mini-action{width:32px;height:32px;border-radius:10px;font-size:0}.icon-btn{width:35px;height:35px;border-radius:11px}.msg-actions .secondary-btn{padding:8px 11px;font-size:10.8px}
.pretty-select-option.filtered-out,.pretty-select-group.filtered-out{display:none!important}.pretty-select-option[hidden]{display:none!important}
.pretty-select-group{grid-column:1/-1;padding:8px 10px 4px;font-size:11px;font-weight:800;color:#0f766e;background:transparent;border:0;text-align:right}
.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid fieldset{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid>*,.form-grid fieldset>*,.settings-page>*{min-width:0}.pretty-select,.location-picker{min-width:0;max-width:100%}.pretty-select-trigger{min-width:0}.pretty-select-trigger>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.identity-toggle,.stylish-radios,.serial-fields{max-width:100%}.page-content{overflow-x:clip}
.permission-overrides{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.permission-override{flex-direction:column;align-items:stretch;gap:7px;padding:10px}.permission-override>span{flex:none}.permission-override .state-switch label{flex:1}.permission-override .state-switch b{text-align:center}
.location-panel{z-index:5000}
.location-results section>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px}
.location-results button{text-align:center;background:#f8fafc;margin:0}
.location-empty{margin:10px 6px;padding:12px;border-radius:12px;background:#f8fafc;color:#64748b;font-size:12px;text-align:center}
.data-table tr.deleted-row td{background:#fff5f5;color:#991b1b}.data-table tr.deleted-row:hover td{background:#fee2e2}.deleted-label{display:inline-flex;margin-right:6px;padding:2px 6px;border-radius:99px;background:#fee2e2;color:#b91c1c;font-style:normal;font-size:8.6px;font-weight:800}.deleted-row .user-cell>img,.deleted-row .user-cell>b{filter:grayscale(1);opacity:.7}
.data-table tr.missing-parents-row td{background:#fff1f2;color:#9f1239}.data-table tr.missing-parents-row:hover td{background:#ffe4e6}
.data-table tr.incomplete-info-row td{background:#fff7ed;color:#9a3412}.data-table tr.incomplete-info-row:hover td{background:#ffedd5}
.data-table tr.waived-info-row td{background:#f0fdf4}.data-table tr.waived-info-row:hover td{background:#dcfce7}
.info-status-label{display:inline-flex;align-self:flex-start;margin:3px 0 0;padding:1px 6px;border-radius:99px;font-style:normal;font-size:7.5px;font-weight:800;line-height:1.4;white-space:nowrap;max-width:100%}
.info-status-label.missing{background:#fecdd3;color:#9f1239}
.info-status-label.incomplete{background:#fed7aa;color:#9a3412}
.info-status-label.waived{background:#bbf7d0;color:#166534}
.users-data-table .user-cell-text{display:flex;flex-direction:column;align-items:flex-start;min-width:0;gap:0}
.users-data-table .user-cell-text>strong,
.users-data-table .user-cell-text>.user-name-link{max-width:100%}
.users-data-table .user-role-line{display:block;font-size:9.2px;color:var(--muted);margin-top:2px}
.users-data-table .user-role-line .deleted-label{margin-right:6px}
.role-list-item.deleted-row{border-color:#fecaca;background:#fff5f5;color:#991b1b;cursor:not-allowed;opacity:.9}.role-list-item.deleted-row:hover{transform:none;box-shadow:none;border-color:#fecaca}
.member-picker label.deleted-row{border-color:#fecaca;background:#fff5f5;color:#991b1b;opacity:.8}
.organization-manage-card.deleted-row,.grade-item.deleted-row{border-color:#fecaca;background:#fff5f5;color:#991b1b}.organization-manage-card.deleted-row>.organization-summary{opacity:.85}
.settings-card.deleted-row{border-color:#fecaca;background:#fff5f5}
.advanced-search{overflow:visible;max-width:100%}
.users-data-table{
    width:100%;
    min-width:0;
    max-width:100%;
    table-layout:auto;
    border-collapse:collapse
}
.users-data-table.is-students,
.users-data-table.is-prereg{
    min-width:0
}
.users-table-panel{
    overflow:hidden;
    max-width:100%;
    min-width:0
}
.users-table-panel .responsive-table{
    display:block;
    width:100%;
    max-width:100%;
    min-width:0;
    overflow-x:auto;
    overflow-y:visible;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-x:contain;
    box-sizing:border-box
}
.users-data-table th,
.users-data-table td{
    vertical-align:middle;
    padding:8px 8px;
    overflow-wrap:normal;
    word-break:normal
}
.users-data-table .col-org,
.users-data-table .col-user .user-cell-text{
    overflow-wrap:break-word;
    word-break:normal
}
/* ستون‌های جمع‌شونده با width:1% — فاصله خالی الکی بین ستون‌ها از بین می‌رود */
.users-data-table .col-check{
    width:40px;
    min-width:40px;
    max-width:44px;
    padding-inline:8px 6px;
    white-space:nowrap;
    box-sizing:border-box
}
.users-data-table .col-check input[type=checkbox]{
    display:block;
    margin:0 auto
}
.users-data-table .col-user{min-width:0;width:15%}
.users-data-table .col-father{
    width:7%;
    min-width:0;
    max-width:88px;
    padding-inline:5px;
    white-space:nowrap;
    font-size:10.5px;
    overflow:hidden;
    text-overflow:ellipsis
}
.users-data-table .col-identity{
    width:10%;
    min-width:0;
    white-space:nowrap;
    font-size:11px;
    overflow:hidden;
    text-overflow:clip;
    vertical-align:middle
}
.users-data-table .col-identity .identity-badge{
    font-size:7.5px;
    padding:2px 5px;
    vertical-align:middle
}
.users-data-table .col-identity>span:not(.identity-badge){
    font-variant-numeric:tabular-nums;
    letter-spacing:-.01em;
    vertical-align:middle
}
.users-data-table .col-identity .copy-button{
    padding:2px 3px;
    margin-inline-start:1px;
    vertical-align:middle;
    line-height:1
}
.users-data-table .col-birth{width:8%;min-width:0;white-space:nowrap;font-size:11px}
.users-data-table .col-mobile{width:9%;min-width:0;white-space:nowrap}
.users-data-table .col-org{
    width:auto;
    min-width:0;
    font-size:11px;
    text-align:start
}
.users-data-table th.col-org{
    text-align:start
}
.users-data-table.is-students .col-org,
.users-data-table.is-prereg .col-org{
    /* فاصله از ستون هویت/کپی تا پایه و رشته زیر آیکون نرود */
    padding-inline-start:14px;
    text-align:center
}
.users-data-table.is-students th.col-org,
.users-data-table.is-prereg th.col-org{
    text-align:center;
    padding-inline-start:14px
}
.users-data-table .col-org .org-line{
    display:block;
    margin-top:2px;
    color:var(--muted);
    font-size:9.5px;
    line-height:1.55
}
.users-data-table .col-status{
    width:10%;
    max-width:130px;
    min-width:0;
    padding-inline:5px;
    white-space:normal;
    font-size:10.5px
}
.users-data-table .col-status strong{display:block;line-height:1.3;margin-bottom:3px;font-size:10.5px}
.users-data-table .col-prereg-date{width:8%;min-width:0;white-space:nowrap;font-size:10.5px}
.users-data-table .col-phone{
    width:9%;
    min-width:0;
    white-space:nowrap;
    font-size:10.5px;
    overflow:visible;
    text-overflow:clip;
    text-align:center
}
.users-data-table .col-phone .phone-link,
.users-data-table .col-mobile .phone-link{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    max-width:none;
    overflow:visible;
    text-overflow:clip;
    white-space:nowrap;
    padding:2px 5px;
    font-size:10px;
    font-variant-numeric:tabular-nums;
    letter-spacing:-.02em;
    border-radius:8px;
    vertical-align:middle
}
.users-data-table .col-actions{
    width:78px;
    min-width:72px;
    max-width:84px;
    white-space:nowrap;
    padding-inline:2px 6px;
    box-sizing:border-box
}
.users-data-table .row-actions{
    display:inline-flex;
    flex-wrap:nowrap;
    align-items:center;
    justify-content:center;
    gap:2px;
    width:auto;
    max-width:100%
}
.users-data-table .row-actions form{margin:0;display:inline-flex}
.users-data-table .row-actions .mini-action{
    width:30px;
    height:30px;
    flex:0 0 auto;
    margin:0
}
.users-data-table .list-status-menu{margin-top:2px}
.users-data-table .list-status-menu .status-menu-trigger{
    min-height:28px;
    padding:3px 6px;
    font-size:9.8px;
    gap:4px;
    width:auto;
    max-width:100%
}
.users-data-table .list-status-menu .status-reason-note{
    display:block;
    margin-top:3px;
    font-size:9px;
    color:#64748b
}

/* دسکتاپ: جدول در عرض کادر جا شود — بدون اسکرول افقی مگر زوم/عرض خیلی کم */
@media (min-width:901px){
    .users-layout,
    .users-layout .settings-page,
    .users-layout .users-table-panel{
        min-width:0;
        max-width:100%
    }
    .users-layout .users-table-panel{
        overflow:hidden
    }
    .users-layout .users-table-panel .responsive-table{
        display:block;
        width:100%;
        max-width:100%;
        min-width:0;
        overflow-x:auto;
        overflow-y:visible
    }
    .users-layout .users-data-table,
    .users-layout .users-data-table.is-students,
    .users-layout .users-data-table.is-prereg,
    .users-layout .users-table-panel .data-table{
        width:100%!important;
        min-width:0!important;
        max-width:100%;
        table-layout:fixed
    }
    .users-layout .users-data-table th,
    .users-layout .users-data-table td{
        padding:7px 6px;
        overflow-wrap:normal;
        word-break:normal
    }
    /* ستون‌های انعطاف‌پذیر — شکستن فقط بین کلمات، نه حرف‌به‌حرف */
    .users-layout .users-data-table .col-user,
    .users-layout .users-data-table .col-org,
    .users-layout .users-data-table .col-status{
        min-width:0
    }
    .users-layout .users-data-table .col-user .user-cell-text,
    .users-layout .users-data-table .col-org{
        overflow-wrap:break-word;
        word-break:normal;
        white-space:normal
    }
    .users-layout .users-data-table .col-user{width:18%}
    .users-layout .users-data-table .user-cell{
        min-width:0;
        max-width:100%
    }
    .users-layout .users-data-table .user-cell-text{
        min-width:0;
        overflow:hidden
    }
    .users-layout .users-data-table .col-father{width:6%;max-width:none}
    .users-layout .users-data-table .col-identity{
        width:12%;
        font-size:10px;
        overflow:hidden
    }
    /* ستون سازمان/مرتبط — فضای باقی‌مانده را می‌گیرد تا جدول تمام عرض را پر کند */
    .users-layout .users-data-table .col-org{
        width:auto;
        font-size:10.5px;
        padding-inline-start:8px;
        text-align:start
    }
    .users-layout .users-data-table th.col-org{
        text-align:start;
        padding-inline-start:8px
    }
    /* لیست دانش‌آموز / پیش‌ثبت‌نام: فشرده‌تر + پایه وسط‌تر */
    .users-layout .users-data-table.is-students .col-user,
    .users-layout .users-data-table.is-prereg .col-user{width:14%}
    .users-layout .users-data-table.is-students .col-identity,
    .users-layout .users-data-table.is-prereg .col-identity{width:11%}
    .users-layout .users-data-table.is-students .col-org,
    .users-layout .users-data-table.is-prereg .col-org{
        width:14%;
        padding-inline-start:16px;
        text-align:center
    }
    .users-layout .users-data-table.is-students th.col-org,
    .users-layout .users-data-table.is-prereg th.col-org{
        text-align:center;
        padding-inline-start:16px
    }
    /* والدین / پرسنل: ستون‌ها پهن‌تر تا تمام عرض پر شود */
    .users-layout .users-data-table:not(.is-students):not(.is-prereg) .col-user{width:24%}
    .users-layout .users-data-table:not(.is-students):not(.is-prereg) .col-identity{width:16%}
    .users-layout .users-data-table:not(.is-students):not(.is-prereg) .col-mobile{width:14%}
    .users-layout .users-data-table:not(.is-students):not(.is-prereg) .col-birth{width:12%}
    .users-layout .users-data-table:not(.is-students):not(.is-prereg) .col-org{width:auto}
    .users-layout .users-data-table .col-status{width:10%;max-width:none}
    .users-layout .users-data-table .col-prereg-date{width:7%;font-size:10px}
    .users-layout .users-data-table .col-phone,
    .users-layout .users-data-table .col-mobile{
        width:9.5%;
        font-size:10px;
        white-space:nowrap;
        overflow:visible;
        text-overflow:clip
    }
    .users-layout .users-data-table .col-phone .phone-link,
    .users-layout .users-data-table .col-mobile .phone-link{
        max-width:none;
        overflow:visible;
        text-overflow:clip;
        padding:2px 4px;
        font-size:9.8px
    }
    .users-layout .users-data-table th.col-phone{
        font-size:9px;
        line-height:1.25;
        white-space:normal
    }
    .users-layout .users-data-table .col-check{
        width:34px;
        min-width:34px;
        max-width:38px;
        padding-inline:4px 2px
    }
    .users-layout .users-data-table .col-actions{
        width:74px;
        min-width:70px;
        max-width:80px;
        padding-inline:2px 4px
    }
    .users-layout .users-data-table .col-identity,
    .users-layout .users-data-table .col-birth,
    .users-layout .users-data-table .col-mobile,
    .users-layout .users-data-table .col-prereg-date,
    .users-layout .users-data-table .col-father,
    .users-layout .users-data-table .col-phone,
    .users-layout .users-data-table .col-actions{
        white-space:nowrap
    }
    .users-layout .users-data-table .row-actions .mini-action{
        width:26px;
        height:26px
    }
}

/* دسکتاپ متوسط: فشرده‌تر تا بدون اسکرول بماند */
@media (min-width:901px) and (max-width:1280px){
    .users-layout .users-data-table.is-students .col-father{
        display:none
    }
    .users-layout .users-data-table th,
    .users-layout .users-data-table td{
        padding:6px 4px
    }
    .users-layout .users-data-table.is-students .col-user,
    .users-layout .users-data-table.is-prereg .col-user{width:15%}
    .users-layout .users-data-table.is-students .col-identity,
    .users-layout .users-data-table.is-prereg .col-identity{width:11%;font-size:9.5px}
    .users-layout .users-data-table.is-students .col-org,
    .users-layout .users-data-table.is-prereg .col-org{width:15%;padding-inline-start:14px;text-align:center}
    .users-layout .users-data-table.is-students .col-status,
    .users-layout .users-data-table.is-prereg .col-status{width:11%}
    .users-layout .users-data-table.is-students .col-phone,
    .users-layout .users-data-table.is-prereg .col-phone{
        width:10%;
        font-size:9.5px
    }
    .users-layout .users-data-table:not(.is-students):not(.is-prereg) .col-user{width:26%}
    .users-layout .users-data-table:not(.is-students):not(.is-prereg) .col-identity{width:16%}
    .users-layout .users-data-table:not(.is-students):not(.is-prereg) .col-mobile{width:14%}
    .users-layout .users-data-table:not(.is-students):not(.is-prereg) .col-org{width:auto;padding-inline-start:8px;text-align:start}
    .users-layout .users-data-table .col-prereg-date{width:8%;font-size:9.5px}
    .users-layout .users-data-table .col-actions{width:70px;min-width:66px;max-width:76px;padding-inline:1px 4px}
    .users-layout .users-data-table .row-actions{gap:2px}
    .users-layout .users-data-table .row-actions .mini-action{
        width:24px;
        height:24px
    }
}

/* عرض خیلی کم دسکتاپ: یک ستون تماس کمتر + فشرده‌تر */
@media (min-width:901px) and (max-width:1100px){
    .users-layout .users-data-table.is-students tbody td.col-phone:nth-last-child(2),
    .users-layout .users-data-table.is-students thead th.col-phone:nth-last-child(2),
    .users-layout .users-data-table.is-prereg tbody td.col-phone:nth-last-child(2),
    .users-layout .users-data-table.is-prereg thead th.col-phone:nth-last-child(2){
        display:none
    }
    .users-layout .users-data-table.is-students .col-phone,
    .users-layout .users-data-table.is-prereg .col-phone{width:11%}
    .users-layout .users-data-table.is-students .col-user,
    .users-layout .users-data-table.is-prereg .col-user{width:16%}
    .users-layout .users-data-table.is-students .col-org,
    .users-layout .users-data-table.is-prereg .col-org{width:16%}
}
.users-data-table.is-prereg .phone-link{
    white-space:nowrap;
    max-width:none;
    overflow:visible;
    text-overflow:clip
}
@media (max-width:900px){
    .users-data-table.is-prereg .col-user{width:18%;min-width:150px}
    .users-data-table.is-prereg .col-identity{width:1%;white-space:nowrap}
    .users-data-table.is-prereg .col-org{width:auto;min-width:120px}
    .users-data-table.is-prereg .col-status{width:1%;max-width:118px;min-width:0;white-space:normal}
    .users-data-table.is-prereg .col-prereg-date{width:1%;white-space:nowrap}
    .users-data-table.is-prereg .col-phone{width:1%;white-space:nowrap;font-size:10.5px}
    .users-data-table.is-prereg .col-actions{width:1%;white-space:nowrap;padding-inline:6px 10px}
}
@media (max-width:900px){
    .users-table-panel{
        overflow:hidden;
        max-width:100%;
        min-width:0
    }
    .users-table-panel .responsive-table{
        display:block;
        width:100%;
        max-width:100%;
        min-width:0;
        overflow-x:auto!important;
        -webkit-overflow-scrolling:touch;
        overscroll-behavior-x:contain
    }
    .users-data-table,
    .users-data-table.is-prereg,
    .users-data-table.is-students{
        table-layout:auto;
        width:max-content;
        max-width:none;
        min-width:760px
    }
    .users-data-table.is-students{min-width:920px}
    .users-data-table.is-prereg{
        min-width:960px;
        font-size:10.5px
    }
    .users-data-table.is-prereg th,
    .users-data-table.is-prereg td{
        padding:7px 6px;
        white-space:nowrap
    }
    .users-data-table.is-prereg .col-org,
    .users-data-table.is-prereg .col-status,
    .users-data-table.is-prereg .col-user{
        white-space:normal
    }
    .users-data-table.is-prereg .row-actions .mini-action{
        width:28px;
        height:28px
    }
}
/* آواتار لیست کاربران — همیشه مربع (عکس و حرف اول) */
.users-table-panel .user-cell>img,
.users-table-panel .user-cell>b,
.users-data-table .user-cell>img,
.users-data-table .user-cell>b,
.data-table .user-cell>img,
.data-table .user-cell>b{
    width:38px;
    height:38px;
    min-width:38px;
    min-height:38px;
    max-width:38px;
    max-height:38px;
    flex:0 0 38px;
    aspect-ratio:1 / 1;
    border-radius:10px;
    object-fit:cover;
    overflow:hidden;
    display:grid;
    place-items:center;
    line-height:1;
    box-sizing:border-box;
    padding:0;
    font-size:15px;
    font-weight:800
}
@media(max-width:680px){
    .users-table-panel .user-cell>img,
    .users-table-panel .user-cell>b,
    .users-data-table .user-cell>img,
    .users-data-table .user-cell>b,
    .data-table .user-cell>img,
    .data-table .user-cell>b{
        width:34px;
        height:34px;
        min-width:34px;
        min-height:34px;
        max-width:34px;
        max-height:34px;
        flex-basis:34px;
        font-size:13px;
        border-radius:9px
    }
}
.pretty-select-menu.portal-open{
    display:flex;
    flex-direction:column;
    position:fixed;
    z-index:6000;
    min-width:min(280px,calc(100vw - 16px));
    max-height:min(320px,60vh);
    padding:10px;
    border-radius:16px;
    border:1px solid #dbe3f0;
    background:#fff;
    box-shadow:0 22px 55px rgba(15,23,42,.22);
    overflow:hidden;
    box-sizing:border-box
}
.pretty-select-menu.portal-open>div{
    display:flex;
    flex-direction:column;
    gap:6px;
    width:100%;
    flex:1 1 auto;
    min-height:0;
    overflow:auto;
    scrollbar-width:thin;
    padding:2px
}
.pretty-select-option{
    width:100%;
    padding:11px 14px;
    border:1px solid transparent;
    border-radius:12px;
    font-size:13px;
    font-weight:700;
    text-align:right;
    justify-content:flex-start;
    align-items:center;
    background:#f8fafc;
    white-space:nowrap;
    overflow:hidden;
    box-sizing:border-box
}
.pretty-select-option:hover{border-color:#bfdbfe;background:#eff6ff;transform:translateY(-1px)}
.pretty-select-option.selected{border-color:#93c5fd;background:linear-gradient(135deg,#dbeafe,#eef2ff);box-shadow:inset 0 0 0 1px #fff}
.pretty-select-search{width:calc(100% - 4px);margin:0 2px 8px;min-height:38px!important;padding:8px 12px!important;border-radius:12px;flex:0 0 auto;box-sizing:border-box}
.pretty-select-menu.portal-open.is-wide-menu{min-width:min(340px,calc(100vw - 16px));padding:12px;max-height:min(360px,65vh)}
.pretty-select-menu.portal-open.is-wide-menu>div,
.pretty-select-menu.portal-open.is-list-menu>div{display:flex;flex-direction:column;gap:6px}
.pretty-select-menu.portal-open.is-wide-menu .pretty-select-option,
.pretty-select-menu.portal-open.is-list-menu .pretty-select-option{
    padding:11px 14px;
    font-size:13px;
    justify-content:flex-start;
    align-items:flex-start;
    text-align:right;
    min-height:0;
    white-space:nowrap;
    overflow:hidden
}
.pretty-select-option-body{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:3px;
    min-width:0;
    flex:1 1 auto;
    text-align:right;
    overflow:hidden
}
.pretty-select-option-title{
    display:block;
    font-weight:700;
    line-height:1.35;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    overflow-wrap:normal;
    word-break:normal
}
.pretty-select-option-hint,
.pretty-select-option small.pretty-select-option-hint{
    display:block;
    font-size:11.5px;
    font-weight:600;
    color:#64748b;
    line-height:1.3;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis
}
/* Closed trigger: single-line, vertically centered, right-aligned (system-wide) */
.pretty-select-trigger{
    direction:rtl;
    text-align:right
}
.pretty-select-trigger>span{
    display:flex;
    align-items:center;
    justify-content:flex-start;
    gap:8px;
    min-width:0;
    flex:1;
    overflow:hidden;
    text-align:right;
    white-space:nowrap;
    text-overflow:ellipsis;
    direction:rtl
}
.pretty-select-trigger>span .pretty-select-option-body{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    justify-content:center;
    min-width:0;
    width:100%;
    overflow:hidden;
    flex:1 1 auto;
    gap:0;
    text-align:right;
    direction:rtl
}
.pretty-select-trigger>span .pretty-select-option-title{
    display:block;
    width:100%;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-weight:500;
    font-size:13px;
    line-height:1.35;
    text-align:right;
    direction:rtl
}
.pretty-select-trigger.is-placeholder,
.pretty-select-trigger.is-placeholder .pretty-select-option-title{
    color:#94a3b8;
    font-weight:500
}
/* Placeholder / selected label: always vertically centered + RTL right-aligned */
.pretty-select-trigger,
.pretty-select-trigger.is-placeholder{
    align-items:center;
    justify-content:space-between;
    direction:rtl;
    text-align:right
}
.pretty-select-trigger>span,
.pretty-select-trigger.is-placeholder>span,
.pretty-select .pretty-select-trigger>span{
    align-items:center !important;
    justify-content:flex-start !important;
    text-align:right !important;
    direction:rtl !important
}
.pretty-select-trigger>span .pretty-select-option-body,
.pretty-select-trigger>span .pretty-select-option-title{
    text-align:right !important;
    direction:rtl !important
}
input::placeholder,
textarea::placeholder,
.pretty-select-search::placeholder,
.sm-datepicker-field input::placeholder{
    text-align:right;
    direction:rtl;
    opacity:1
}
select:not(.native-select-hidden){
    text-align:right;
    direction:rtl
}
.pretty-select-trigger>span .pretty-select-option-hint{
    display:none
}
.pretty-select-trigger:has(.pretty-select-option-hint){
    min-height:40px;
    padding:7px 12px
}
.pretty-select-trigger:has(.pretty-select-option-hint)>span .pretty-select-option-body{
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:1px
}
.pretty-select-trigger:has(.pretty-select-option-hint)>span .pretty-select-option-hint{
    display:block;
    font-size:10px;
    line-height:1.2;
    text-align:right
}
.advanced-search .pretty-select-trigger,
.bulk-toolbar .pretty-select-trigger,
.list-page-size .pretty-select-trigger{
    min-height:40px;
    padding:0 12px;
    font-size:13px;
    box-shadow:none
}
.advanced-search .pretty-select-trigger>span .pretty-select-option-title,
.bulk-toolbar .pretty-select-trigger>span .pretty-select-option-title,
.list-page-size .pretty-select-trigger>span .pretty-select-option-title{
    font-size:13px;
    font-weight:500;
    line-height:1.35
}
.acc-student-pay-dialog .pretty-select-menu.portal-open.is-wide-menu,
.acc-pay-allocs ~ .pretty-select-menu.portal-open.is-wide-menu,
dialog .pretty-select-menu.portal-open.is-wide-menu.is-list-menu{
    min-width:min(440px,calc(100vw - 24px));
    max-height:min(360px,60vh)
}
.check-label input,.data-table input[type=checkbox]{width:15px;height:15px;min-width:15px;border-radius:5px}.check-label input:checked:after,.data-table input[type=checkbox]:checked:after{content:none}.choice-card:before{width:16px;height:16px;min-width:16px;border-radius:5px}.choice-card:has(input:checked):before{content:"";background:var(--primary)}.permission-item>span,.student-assignment-list label>span{width:18px;height:18px;border-radius:5px}.permission-item span i,.student-assignment-list label>span i{display:none}.permission-item input:checked+span,.student-assignment-list input:checked+span{background:var(--primary)}
.pagination{display:flex;direction:rtl;align-items:center;justify-content:center;gap:5px;padding:14px;border-top:1px solid #eef2f7}.pagination a,.pagination span{width:29px;height:29px;border-radius:9px;display:grid;place-items:center;font-size:9.7px;color:#64748b}.pagination a{border:1px solid var(--line);background:#fff;transition:.18s}.pagination a:hover{border-color:#93c5fd;color:var(--primary);transform:translateY(-1px)}.pagination a.active{border-color:var(--primary);background:linear-gradient(135deg,#2563eb,#4f46e5);color:#fff;box-shadow:0 5px 13px rgba(37,99,235,.2)}.pagination a.disabled{opacity:.4;pointer-events:none}
.list-pager-wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding:12px 16px;border-top:1px solid #eef2f7}.list-pager-wrap .pagination{border-top:0;padding:0}.list-pager-meta{margin:0;font-size:12px;color:#64748b}
.change-comparison{display:flex;flex-direction:column;gap:7px}.change-comparison>div{display:grid;grid-template-columns:minmax(100px,.65fr) minmax(140px,1fr) 24px minmax(140px,1fr);align-items:center;gap:8px;padding:9px;border:1px solid #eef2f7;border-radius:12px;background:#fbfcfe}.change-comparison>div>strong{font-size:10.3px}.change-comparison span{padding:7px 9px;border-radius:9px;font-size:9.7px}.change-comparison span small{display:block;font-size:7.6px;margin-bottom:2px}.old-value{background:#fff1f2;color:#9f1239}.new-value{background:#ecfdf5;color:#047857}.change-comparison>div>i{color:#94a3b8;text-align:center}.review-actions textarea{min-width:0;resize:vertical}
/* ---- Communications hub & messenger admin ---- */
.comm-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:26px 28px;overflow:hidden;background:linear-gradient(120deg,#fff 40%,#eef2ff 78%,#e0f2fe)}
.comm-hero-text{max-width:640px}.comm-hero h2{margin:10px 0 6px;font-size:23px}.comm-hero p{margin:0;color:var(--muted);font-size:12.5px;line-height:2}
.comm-hero-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:16px}
.comm-hero-art{position:relative;width:190px;height:120px;flex:0 0 auto}
.comm-hero-art .bubble{position:absolute;width:56px;height:56px;border-radius:20px;display:grid;place-items:center;color:#fff;font-size:20px;box-shadow:0 14px 30px rgba(37,99,235,.22);animation:commFloat 4.5s ease-in-out infinite}
.comm-hero-art .one{background:linear-gradient(135deg,#3b82f6,#2563eb);right:8px;top:6px}
.comm-hero-art .two{background:linear-gradient(135deg,#34d399,#059669);right:70px;top:56px;animation-delay:.6s}
.comm-hero-art .three{background:linear-gradient(135deg,#fbbf24,#f97316);right:128px;top:8px;animation-delay:1.2s}
@keyframes commFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
.comm-columns{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:14px}
.comm-hub-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.comm-hub-card{position:relative;display:flex;flex-direction:column;gap:5px;padding:16px;border-radius:18px;background:#fbfcfe;border:1px solid var(--line);color:inherit;transition:.2s}
.comm-hub-card strong{font-size:13px}.comm-hub-card small{font-size:10px;color:var(--muted)}
.comm-hub-card:not(.muted):hover{transform:translateY(-3px);border-color:#bfdbfe;box-shadow:0 12px 28px rgba(37,99,235,.1)}
.comm-hub-card.muted{opacity:.55;pointer-events:none}
.comm-hub-icon{width:44px;height:44px;border-radius:15px;display:grid;place-items:center;color:#fff;font-size:18px;margin-bottom:4px}
.comm-badge{position:absolute;left:14px;top:14px;min-width:22px;height:22px;padding:0 6px;border-radius:99px;background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;font-size:9.7px;display:grid;place-items:center}
.comm-recent{display:flex;flex-direction:column;gap:6px}
.contact-row{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:11px;padding:9px 10px;border:1px solid transparent;border-radius:16px;color:inherit;transition:.18s}
.contact-row:hover{background:#f6f9ff;border-color:#e0e9ff}
.contact-row .msg-avatar{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;overflow:hidden;color:#fff;font-weight:700;background:linear-gradient(135deg,#60a5fa,#2563eb)}
.contact-row .msg-avatar img{width:100%;height:100%;object-fit:cover}
.contact-row-body{display:flex;flex-direction:column;gap:2px;min-width:0}
.contact-row-body strong{font-size:12.4px}
.contact-row-body small{font-size:9.8px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.contact-row-meta{display:flex;align-items:center;gap:8px;color:#94a3b8;font-size:10px}
.contact-row-meta b{min-width:20px;height:20px;padding:0 6px;border-radius:99px;background:var(--primary);color:#fff;display:grid;place-items:center;font-size:9.7px}
.comm-empty{display:grid;place-items:center;gap:8px;text-align:center;padding:34px 16px;color:var(--muted);border:1px dashed var(--line);border-radius:18px}
.comm-empty i{font-size:34px;color:#93c5fd}.comm-empty p{margin:0;font-size:11px}
.inline-rule{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid #f1f5f9;font-size:10.5px}
.msg-sticker-admin{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.msg-sticker-admin span{width:52px;height:52px;border-radius:14px;background:#f8fafc;border:1px solid var(--line);display:grid;place-items:center}
@media(max-width:980px){.comm-columns{grid-template-columns:1fr}.comm-hero-art{display:none}}
@media(max-width:680px){.comm-hub-grid{grid-template-columns:1fr}.comm-hero{padding:18px}.comm-hero h2{font-size:19px}}
@media(max-width:1100px){.permission-overrides{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.permission-overrides{grid-template-columns:1fr}.header-actions .app-action-btn{min-width:0;height:32px}.pretty-select-menu.portal-open{min-width:min(260px,calc(100vw - 16px));max-height:min(55vh,300px)}.pretty-select-menu.portal-open>div{display:flex;flex-direction:column}.change-comparison>div{grid-template-columns:1fr 20px 1fr}.change-comparison>div>strong{grid-column:1/-1}.review-actions{grid-template-columns:1fr 1fr}.review-actions textarea{grid-column:1/-1}}
/* ---- Messenger supervision center ---- */
.messenger-admin-page{gap:13px}.messenger-admin-tabs{position:sticky;top:70px;z-index:10;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;width:100%;padding:7px;background:rgba(255,255,255,.94);backdrop-filter:blur(12px)}
.messenger-admin-tabs a{min-width:0;display:flex;align-items:center;justify-content:center;gap:7px;padding:9px 7px;border-radius:11px;color:#64748b;font-size:10.3px;font-weight:800;transition:.18s}
.messenger-admin-tabs a:hover{background:#f1f5f9;color:#2563eb}.messenger-admin-tabs a.active{background:linear-gradient(135deg,#2563eb,#4f46e5);color:#fff;box-shadow:0 7px 18px rgba(37,99,235,.2)}
.messenger-admin-tabs a b{min-width:19px;height:19px;padding:0 5px;border-radius:99px;display:grid;place-items:center;background:rgba(148,163,184,.17);font-size:8px}.messenger-admin-tabs a.active b{background:rgba(255,255,255,.2)}
.messenger-admin-section{margin:0}.messenger-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.admin-count{display:inline-flex;align-items:center;padding:5px 9px;border-radius:99px;background:#dbeafe;color:#1d4ed8;font-size:9px;font-weight:900}.admin-count.danger{background:#fee2e2;color:#b91c1c}.admin-count.warning{background:#fef3c7;color:#a16207}
.admin-log-table{min-width:1050px}.admin-log-table td{vertical-align:top}.admin-log-table td>b,.admin-log-table td>small{display:block}.admin-log-table td>small{max-width:320px;margin-top:3px;color:#64748b;line-height:1.65;white-space:normal}.chat-type-chip,.moderation-chip{display:inline-flex;padding:4px 7px;border-radius:8px;background:#e0f2fe;color:#0369a1;font-size:8.6px;font-weight:900}.moderation-chip.normal{background:#dcfce7;color:#15803d}.moderation-chip.suspended{background:#fef3c7;color:#a16207}.moderation-chip.removed{background:#fee2e2;color:#b91c1c}
.admin-row-actions{display:flex;align-items:center;gap:4px;margin-top:6px}.admin-row-actions form{margin:0}.admin-row-actions .mini-action{padding:0;display:grid;place-items:center}.success-btn{border:1px solid #86efac;background:#dcfce7;color:#15803d;border-radius:10px;padding:7px 10px;font-size:9.7px;font-weight:800;cursor:pointer}
.admin-empty{display:flex;align-items:center;justify-content:center;gap:7px;min-height:65px;color:#94a3b8;font-size:10.3px}.admin-log-filters{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;align-items:end}.admin-log-filters label{display:flex;flex-direction:column;gap:5px}.admin-log-filters label>span{font-size:9.2px;font-weight:800;color:#475569}.admin-check{height:35px;flex-direction:row!important;align-items:center;padding:0 10px;border:1px solid var(--line);border-radius:10px}.admin-check input{accent-color:#2563eb}.admin-filter-footer{grid-column:1/-1;display:flex;align-items:center;justify-content:flex-end;gap:8px;padding-top:2px}.admin-filter-actions{display:flex;gap:6px}.admin-pagination{display:flex;justify-content:center;gap:5px;padding-top:13px}.admin-pagination a{width:30px;height:30px;border:1px solid var(--line);border-radius:9px;display:grid;place-items:center;font-size:9.7px}.admin-pagination a.active{background:#2563eb;color:#fff;border-color:#2563eb}
.chat-type-chip.direct{background:#dbeafe;color:#1d4ed8}.chat-type-chip.group{background:#dcfce7;color:#15803d}.chat-type-chip.channel{background:#f3e8ff;color:#7e22ce}.chat-type-chip.saved{background:#fef3c7;color:#a16207}.admin-deleted-message td{background:#fecaca;color:#7f1d1d}.admin-log-table tr.admin-deleted-message td>small{color:#991b1b}.admin-log-table tr.admin-alert-event td{background:#fee2e2;color:#7f1d1d}.admin-log-table tr.admin-alert-event:hover td{background:#fecaca}.admin-log-table tr.admin-alert-event td>small{color:#991b1b}.deleted-content-label,.deleted-content-note{color:#be123c!important}.preview-btn{border:1px solid #bfdbfe;background:#eff6ff;color:#2563eb;cursor:pointer}.admin-chat-preview-dialog{width:min(1050px,calc(100% - 24px));height:min(780px,calc(100vh - 36px));padding:0;border:0;border-radius:22px;overflow:hidden;background:#fff;box-shadow:0 30px 90px rgba(15,23,42,.35)}.admin-chat-preview-dialog::backdrop{background:rgba(15,23,42,.55);backdrop-filter:blur(4px)}.admin-chat-preview-dialog>header{height:58px;padding:10px 14px;display:flex;align-items:center;border-bottom:1px solid var(--line);background:#fff}.admin-chat-preview-dialog>header>div{display:flex;align-items:center;gap:9px;flex:1}.admin-chat-preview-dialog>header>div>i{width:35px;height:35px;border-radius:11px;display:grid;place-items:center;background:#dbeafe;color:#2563eb}.admin-chat-preview-dialog header span{display:flex;flex-direction:column}.admin-chat-preview-dialog header b{font-size:11px}.admin-chat-preview-dialog header small{font-size:8.5px;color:#64748b}.admin-chat-preview-dialog header button{width:34px;height:34px;border:0;border-radius:10px;background:#fee2e2;color:#be123c;cursor:pointer}.admin-chat-preview-dialog iframe{display:block;width:100%;height:calc(100% - 58px);border:0;background:#edf3fb}
.admin-rule-list{display:flex;flex-direction:column;gap:6px;max-height:min(52vh,420px);overflow:auto}.admin-rule-list article{display:flex;align-items:center;gap:8px;padding:9px;border:1px solid #eef2f7;border-radius:12px;background:#fbfcfe}.admin-rule-list article>span{display:flex;flex:1;min-width:0;flex-direction:column}.admin-rule-list b{font-size:10.3px}.admin-rule-list small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#64748b;font-size:8.6px}.admin-rule-list em{padding:4px 7px;border-radius:8px;background:#eff6ff;color:#1d4ed8;font-size:8.1px;font-style:normal;font-weight:800}
.admin-pattern-lines{min-height:calc(1.75em * 5 + 22px);max-height:calc(1.75em * 5 + 22px);overflow:auto;resize:none;line-height:1.75;white-space:pre;font-size:13px}
.admin-pattern-lines+small{display:block;margin-top:6px;color:#64748b;font-size:9.5px;line-height:1.7}
.admin-rule-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.admin-event-filters{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:14px}
.admin-rule-group{width:100%;border:1px solid #e2e8f0;background:#fff;border-radius:14px;padding:11px 12px;display:flex;align-items:center;gap:10px;text-align:right;cursor:pointer;transition:.16s;color:inherit;font:inherit}
.admin-rule-group:hover:not(:disabled){border-color:#93c5fd;background:#f8fbff;transform:translateY(-1px)}
.admin-rule-group:disabled{opacity:.55;cursor:default}
.admin-rule-group>span{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;background:#eff6ff;color:#2563eb;flex:0 0 36px}
.admin-rule-group div{flex:1;min-width:0}
.admin-rule-group b{display:block;font-size:12px;font-weight:800}
.admin-rule-group small{display:block;margin-top:2px;color:#64748b;font-size:9.5px}
.admin-rule-group>i{color:#94a3b8;font-size:10px}
.sticker-category-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px}.sticker-category-card{border:1px solid var(--line);border-radius:17px;padding:11px;background:#fbfcfe}.sticker-category-card>header{display:flex;align-items:center;gap:9px;padding-bottom:9px;border-bottom:1px solid #e9eef5}.sticker-category-card>header>img,.sticker-category-card>header>span{width:45px;height:45px;border-radius:13px;object-fit:cover;display:grid;place-items:center;background:linear-gradient(135deg,#dbeafe,#ede9fe);color:#4f46e5}.sticker-category-card>header>div{display:flex;flex:1;flex-direction:column}.sticker-category-card>header b{font-size:11px}.sticker-category-card>header small{font-size:8.6px;color:#64748b}.sticker-items{display:flex;flex-wrap:wrap;gap:7px;padding-top:10px}.sticker-items>span{position:relative;width:54px;height:54px;border:1px solid #e5eaf2;border-radius:13px;background:#fff;display:grid;place-items:center}.sticker-items img{width:43px;height:43px;object-fit:contain}.sticker-items form{position:absolute;top:-5px;left:-5px;opacity:0;transition:.18s}.sticker-items span:hover form{opacity:1}.sticker-items button{width:19px;height:19px;border:0;border-radius:50%;background:#ef4444;color:#fff;display:grid;place-items:center;font-size:8px;cursor:pointer}
.restriction-form{padding:0!important;overflow:hidden}.restriction-form-head{display:flex;align-items:center;gap:11px;padding:16px 18px;border-bottom:1px solid var(--line);background:linear-gradient(135deg,#fff7f7,#fff)}.restriction-form-icon{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:#fee2e2;color:#dc2626;font-size:16px}.restriction-form-head>div{flex:1;min-width:0}.restriction-form-head h2{margin:0;font-size:14.5px}.restriction-form-head p{margin:3px 0 0;font-size:9.7px;color:var(--muted)}
.restriction-form-body{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:16px 18px}.restriction-field{display:flex;flex-direction:column;gap:5px;min-width:0}.restriction-field>span{font-size:9.7px;font-weight:800;color:#475569}.restriction-field>small{font-size:8.4px;color:#94a3b8}.restriction-field textarea{resize:vertical}.restriction-field.span-2{grid-column:span 2}.restriction-field.span-4{grid-column:1/-1}
.restriction-form-foot{display:flex;align-items:center;gap:12px;padding:13px 18px;border-top:1px solid var(--line);background:#fbfcfe}.restriction-form-foot p{flex:1;margin:0;font-size:9.2px;color:var(--muted)}.restriction-form-foot i{color:#f59e0b}.restriction-submit-btn{display:inline-flex;align-items:center;gap:7px;height:38px;padding:0 16px;border:0;border-radius:12px;background:linear-gradient(135deg,#f43f5e,#dc2626);color:#fff;font-family:inherit;font-size:10.8px;font-weight:800;cursor:pointer;box-shadow:0 7px 18px rgba(220,38,38,.24);transition:.18s}.restriction-submit-btn:hover{transform:translateY(-2px);box-shadow:0 11px 24px rgba(220,38,38,.32)}
.restriction-table{min-width:880px}.restriction-table td{vertical-align:middle}.restriction-table td>b,.restriction-table td>small{display:block}.restriction-table td>small{margin-top:3px;color:#64748b;font-size:8.6px}.restriction-reason-cell{max-width:320px;white-space:normal;line-height:1.8}.restriction-active-row td{background:#fff8f8}
.restriction-chip-state{display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border-radius:99px;font-size:8.8px;font-weight:900;white-space:nowrap}.restriction-chip-state.blocked{background:#fee2e2;color:#b91c1c}.restriction-chip-state.released{background:#dcfce7;color:#15803d}.restriction-chip-state.expired{background:#f1f5f9;color:#64748b}
.restriction-release-btn{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border:1px solid #86efac;border-radius:11px;background:#f0fdf4;color:#15803d;font-family:inherit;font-size:9.7px;font-weight:800;white-space:nowrap;cursor:pointer;transition:.18s}.restriction-release-btn:hover{background:#dcfce7;border-color:#4ade80;transform:translateY(-1px)}.restriction-no-action{color:#cbd5e1}
.sticker-admin-table{min-width:850px}.sticker-admin-table td{vertical-align:middle}.sticker-admin-table input,.sticker-admin-table select{min-width:130px}.sticker-admin-thumb{width:46px;height:46px;border-radius:12px;object-fit:contain;display:grid;place-items:center;background:#f1f5f9;border:1px solid #e2e8f0;color:#64748b}.table-file-picker{min-width:145px}.table-file-picker>b{min-height:31px!important}.table-file-picker small{max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:1100px){.admin-log-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-event-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.messenger-admin-grid{grid-template-columns:1fr}}
@media(max-width:680px){.messenger-admin-tabs{position:relative;top:auto;grid-template-columns:repeat(2,minmax(0,1fr));margin-inline:-3px}.messenger-admin-tabs a{padding:8px 6px}.messenger-admin-tabs a span{font-size:9px}.admin-log-filters,.admin-event-filters{grid-template-columns:1fr}.restriction-form-body{grid-template-columns:1fr}.restriction-field.span-2{grid-column:auto}.restriction-form-head{flex-wrap:wrap}.restriction-form-foot{flex-direction:column;align-items:stretch}.restriction-submit-btn{justify-content:center}.admin-log-filters .wide-search{grid-column:auto}.admin-filter-footer{align-items:stretch;flex-direction:column}.admin-filter-actions>*{flex:1}.messenger-admin-page .section-head{align-items:flex-start}.sticker-category-grid{grid-template-columns:1fr}.admin-chat-preview-dialog{width:calc(100% - 10px);height:calc(100vh - 14px)}}

/* Notification management */
.notification-tabs{position:static;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:5px;gap:5px}.notification-tabs a{display:flex;width:100%;align-items:center;justify-content:center;gap:7px;padding:11px;border-radius:12px;color:#64748b;font-size:10.3px;font-weight:800;white-space:normal;text-align:center}.notification-tabs a.active{background:#2563eb;color:#fff;box-shadow:0 6px 16px rgba(37,99,235,.22)}
.notification-full-view{overflow:hidden}.notification-full-view>header{display:flex;align-items:center;gap:10px;padding:14px 17px;border-bottom:1px solid var(--line);background:#f8fafc}.notification-full-view header>div{flex:1}.notification-full-view h2,.notification-full-view header small,.notification-full-view time{display:block;margin:0}.notification-full-view h2{font-size:14px}.notification-full-view header small,.notification-full-view time{color:#64748b;font-size:8.2px}.notification-full-view>div{padding:20px;line-height:2;font-size:11px}
.notification-compose{padding:0!important;overflow:hidden}.notification-compose>.section-head{padding:17px 20px;margin:0;border-bottom:1px solid var(--line);background:linear-gradient(135deg,#eff6ff,#fff)}.notification-compose-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;padding:18px 20px}.notification-compose-grid>label{display:flex;flex-direction:column;gap:5px}.notification-compose-grid>label>span,.notification-compose-grid legend{font-size:9.7px;font-weight:900;color:#475569}.notification-compose-grid label>small{font-size:8.4px;color:#94a3b8}.notification-compose-grid .wide,.notification-compose-grid fieldset{grid-column:1/-1}.notification-compose-grid fieldset{border:1px solid var(--line);border-radius:15px;padding:12px}.notification-compose-grid legend{padding:0 8px}.notification-audiences{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.notification-audiences label{position:relative}.notification-audiences input{position:absolute;opacity:0}.notification-audiences span{height:58px;display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);border-radius:13px;background:#fff;color:#64748b;cursor:pointer;transition:.18s}.notification-audiences input:checked+span{border-color:#60a5fa;background:#eff6ff;color:#1d4ed8;box-shadow:0 0 0 3px rgba(37,99,235,.08)}.notification-user-select{min-height:150px;padding:7px}.notification-user-select option{padding:7px;border-radius:7px}.notification-compose-actions{display:flex;align-items:center;gap:12px;padding:13px 20px;border-top:1px solid var(--line);background:#f8fafc}.notification-compose-actions p{flex:1;margin:0;color:#64748b;font-size:9px}.notification-campaign-table{min-width:920px}.notification-campaign-table td>b,.notification-campaign-table td>small{display:block}.notification-campaign-table td>small{margin-top:3px;color:#64748b;font-size:8.5px}.notification-type-chip{display:inline-flex;padding:3px 7px;border-radius:999px;background:#e2e8f0;color:#475569;font-size:8px;font-weight:900}.notification-type-chip.warning{background:#fee2e2;color:#b91c1c}.notification-type-chip.news{background:#dbeafe;color:#1d4ed8}.notification-type-chip.update{background:#dcfce7;color:#15803d}.notification-type-chip.financial{background:#fef3c7;color:#a16207}.notification-type-chip.educational{background:#e0f2fe;color:#0369a1}.notification-type-chip.disciplinary{background:#ffedd5;color:#c2410c}
.notification-audience-fieldset{padding:16px!important;background:linear-gradient(135deg,#f8fbff,#fff)}.notification-audiences{gap:12px}.notification-audiences label{min-width:0}.notification-audiences span{height:auto;min-height:92px;padding:14px 10px;flex-direction:column;gap:4px;text-align:center}.notification-audiences span>i{width:34px;height:34px;display:grid;place-items:center;border-radius:11px;background:#f1f5f9;color:#64748b;font-size:14px}.notification-audiences span>b{font-size:10.5px}.notification-audiences span>small{font-size:7.8px;color:#94a3b8}.notification-audiences input:focus-visible+span{outline:2px solid #2563eb;outline-offset:2px}.notification-audiences input:checked+span>i{background:#dbeafe;color:#2563eb}.notification-field-label{display:block;margin-bottom:6px;color:#475569;font-size:9.7px;font-weight:900}.notification-person-section>small{display:block;margin-top:5px;color:#94a3b8;font-size:8.4px}.notification-person-picker{position:relative}.notification-person-picker>summary{min-height:46px;display:flex;align-items:center;gap:9px;padding:8px 12px;border:1px solid #dbe4ef;border-radius:13px;background:#fff;cursor:pointer;list-style:none}.notification-person-picker>summary::-webkit-details-marker{display:none}.notification-person-picker>summary>span{display:flex;align-items:center;gap:8px;flex:1}.notification-person-picker>summary>span>i{color:#2563eb}.notification-person-picker>summary b{font-size:9.5px}.notification-person-picker>summary em{padding:4px 8px;border-radius:99px;background:#eff6ff;color:#1d4ed8;font-size:8px;font-style:normal;font-weight:800}.notification-person-picker>summary>i{font-size:8px;color:#94a3b8;transition:.18s}.notification-person-picker[open]>summary>i{transform:rotate(180deg)}.notification-person-panel{margin-top:7px;border:1px solid #dbe4ef;border-radius:15px;overflow:hidden;background:#fff;box-shadow:0 14px 35px rgba(15,23,42,.1)}.notification-person-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:12px;background:#f8fafc;border-bottom:1px solid var(--line)}.notification-person-filters .wide{grid-column:1/-1}.notification-person-filters label{display:flex;flex-direction:column;gap:4px}.notification-person-filters label>span{font-size:8px;font-weight:800;color:#64748b}.notification-person-filters input,.notification-person-filters select{height:38px}.notification-person-toolbar{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid #eef2f7;color:#64748b;font-size:8.5px}.notification-person-toolbar button{border:0;background:transparent;color:#dc2626;font-size:8.5px;cursor:pointer}.notification-person-list{max-height:300px;overflow:auto;padding:6px}.notification-person-list>label{display:flex;align-items:center;gap:9px;padding:8px;border-radius:10px;cursor:pointer}.notification-person-list>label:hover{background:#f8fafc}.notification-person-list>label[hidden]{display:none}.notification-person-list input{position:absolute;opacity:0}.notification-person-check{width:22px;height:22px;display:grid;place-items:center;flex:0 0 auto;border:1.5px solid #cbd5e1;border-radius:7px;color:transparent}.notification-person-list input:checked+.notification-person-check{border-color:#2563eb;background:#2563eb;color:#fff}.notification-person-list label>span:last-child{display:flex;min-width:0;flex-direction:column}.notification-person-list label b{font-size:9.3px}.notification-person-list label small{font-size:7.8px;color:#94a3b8}.notification-person-empty{padding:22px;text-align:center;color:#94a3b8;font-size:9px}
.system-announcement-dialog{width:min(620px,calc(100% - 24px));padding:0;border:0;border-radius:22px;background:#fff;box-shadow:0 30px 90px rgba(15,23,42,.4);overflow:hidden}.system-announcement-dialog::backdrop{background:rgba(15,23,42,.62);backdrop-filter:blur(5px)}.system-announcement-dialog article>header{display:flex;align-items:center;gap:12px;padding:18px 20px;background:#eff6ff}.system-announcement-dialog header>span{width:46px;height:46px;border-radius:15px;display:grid;place-items:center;background:#2563eb;color:#fff;font-size:18px}.system-announcement-dialog header.green{background:#f0fdf4}.system-announcement-dialog header.green>span{background:#16a34a}.system-announcement-dialog header.yellow{background:#fffbeb}.system-announcement-dialog header.yellow>span{background:#ca8a04}.system-announcement-dialog header.orange{background:#fff7ed}.system-announcement-dialog header.orange>span{background:#ea580c}.system-announcement-dialog header.red{background:#fff1f2}.system-announcement-dialog header.red>span{background:#e11d48}.system-announcement-dialog header.teal{background:#f0fdfa}.system-announcement-dialog header.teal>span{background:#0f766e}.system-announcement-dialog header.purple{background:#faf5ff}.system-announcement-dialog header.purple>span{background:#7e22ce}.system-announcement-dialog header small{color:#64748b;font-size:8.5px}.system-announcement-dialog h2{margin:2px 0 0;font-size:16px}.system-announcement-body{max-height:55vh;overflow:auto;padding:22px;font-size:11px;line-height:2;color:#334155}.system-announcement-dialog footer{display:flex;align-items:center;gap:12px;padding:13px 18px;border-top:1px solid var(--line);background:#f8fafc}.system-announcement-dialog footer time{flex:1;color:#64748b;font-size:8.5px}
@media(max-width:680px){.notification-compose-grid{grid-template-columns:1fr;padding:14px}.notification-compose-grid .wide,.notification-compose-grid fieldset{grid-column:auto}.notification-audiences{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.notification-audiences span{min-height:82px;padding:9px 3px}.notification-audiences span>small{display:none}.notification-person-filters{grid-template-columns:repeat(2,minmax(0,1fr));padding:9px}.notification-person-filters .wide{grid-column:1/-1}.notification-person-panel{margin-inline:-4px}.notification-compose-actions{align-items:stretch;flex-direction:column}.notification-compose-actions .primary-btn{justify-content:center}.system-announcement-dialog footer{align-items:stretch;flex-direction:column}}
.notification-audiences{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.notification-audiences span{min-height:78px;padding:12px 14px;display:grid;grid-template-columns:38px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;justify-items:start;column-gap:10px;text-align:right}.notification-audiences span>i{grid-row:1/3}.notification-audiences span>b{align-self:end;white-space:nowrap}.notification-audiences span>small{align-self:start;display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notification-person-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.notification-person-list>label{min-width:0;border:1px solid #eef2f7}.notification-person-empty{grid-column:1/-1}
@media(max-width:1100px){.notification-person-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.notification-audiences{grid-template-columns:1fr;gap:8px}.notification-audiences span{min-height:64px}.notification-audiences span>small{white-space:normal}}
@media(max-width:680px){.notification-audiences{grid-template-columns:1fr}.notification-audiences span{min-height:64px;padding:10px 12px}.notification-audiences span>small{display:block}.notification-person-list{grid-template-columns:1fr}}

/* Ticket system */
.ticket-page{display:flex;flex-direction:column;gap:12px}.ticket-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:5px;gap:5px}.ticket-tabs a{display:flex;align-items:center;justify-content:center;gap:7px;padding:10px;border-radius:11px;color:#64748b;font-size:10px;font-weight:800}.ticket-tabs a.active{background:#0f766e;color:#fff}.ticket-toolbar{display:flex;align-items:center;gap:8px;padding:15px 18px}.ticket-toolbar>div{flex:1}.ticket-toolbar h2,.ticket-toolbar p{margin:0}.ticket-toolbar h2{font-size:14px}.ticket-toolbar p{margin-top:3px;color:#64748b;font-size:8.5px}.ticket-list{display:flex;flex-direction:column;gap:7px}.ticket-list-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto auto;align-items:center;gap:11px;padding:12px 14px;transition:.18s}.ticket-list-item:hover{transform:translateY(-1px);border-color:#99f6e4}.ticket-department-dot{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;background:#dbeafe;color:#1d4ed8}.ticket-department-dot.green{background:#dcfce7;color:#15803d}.ticket-department-dot.yellow{background:#fef3c7;color:#a16207}.ticket-department-dot.orange{background:#ffedd5;color:#c2410c}.ticket-department-dot.red{background:#fee2e2;color:#b91c1c}.ticket-list-item h3,.ticket-list-item span,.ticket-list-item small{display:block}.ticket-list-item h3{margin:2px 0;font-size:11px}.ticket-list-item div>span,.ticket-list-item small{color:#64748b;font-size:8.3px}.ticket-status,.ticket-priority{display:inline-flex!important;align-items:center;gap:5px;padding:5px 8px;border-radius:999px;font-size:8.2px;font-weight:900;white-space:nowrap}.ticket-status i{font-size:.95em}.ticket-status.submitted{background:#e0f2fe;color:#0369a1}.ticket-status.waiting_operator{background:#fef3c7;color:#a16207}.ticket-status.answered{background:#dcfce7;color:#15803d}.ticket-status.waiting_user{background:#ede9fe;color:#6d28d9}.ticket-status.closed{background:#e2e8f0;color:#475569}.ticket-priority{background:#f1f5f9;color:#64748b}.ticket-priority.high,.ticket-priority.urgent{background:#fee2e2;color:#b91c1c}
.new-ticket-dialog,.ticket-edit-dialog{width:min(650px,calc(100% - 20px));padding:0;border:0;border-radius:20px;box-shadow:0 30px 80px rgba(15,23,42,.38)}.new-ticket-dialog::backdrop,.ticket-edit-dialog::backdrop{background:rgba(15,23,42,.55);backdrop-filter:blur(4px)}.new-ticket-dialog header{display:flex;align-items:center;padding:15px 18px;border-bottom:1px solid var(--line)}.new-ticket-dialog header>div{flex:1}.new-ticket-dialog h2,.new-ticket-dialog p{margin:0}.new-ticket-dialog h2{font-size:14px}.new-ticket-dialog p{font-size:8.5px;color:#64748b}.new-ticket-dialog header>button{width:32px;height:32px;border:0;border-radius:10px;background:#fee2e2;color:#be123c}.new-ticket-dialog form>div{display:grid;grid-template-columns:1fr 1fr;gap:11px;padding:17px}.new-ticket-dialog label{display:flex;flex-direction:column;gap:5px}.new-ticket-dialog label>span{font-size:9px;font-weight:800}.new-ticket-dialog .wide{grid-column:1/-1}.new-ticket-dialog footer,.ticket-edit-dialog footer{display:flex;justify-content:flex-end;gap:7px;padding:12px 17px;border-top:1px solid var(--line);background:#f8fafc}
.ticket-detail-head{display:flex;align-items:center;gap:10px;padding:14px 16px}.ticket-back{width:35px;height:35px;border-radius:11px;background:#f1f5f9;display:grid;place-items:center;color:#475569}.ticket-detail-head>div{flex:1}.ticket-detail-head h2,.ticket-detail-head p{margin:0}.ticket-detail-head h2{font-size:13px}.ticket-detail-head p,.ticket-public-id{font-size:8.5px;color:#64748b}.ticket-status-form{display:flex;gap:5px}.ticket-status-form select{min-width:150px}.ticket-thread{display:flex;flex-direction:column;gap:8px;padding:5px}.ticket-message{width:min(78%,700px);padding:12px 14px;border-radius:17px 17px 5px 17px}.ticket-message.mine{align-self:flex-end;background:#eff6ff;border-color:#bfdbfe;border-radius:17px 17px 17px 5px}.ticket-message.deleted{background:#fff1f2;border-color:#fecdd3}.ticket-message header{display:flex;align-items:center;gap:7px}.ticket-message header b{font-size:9.5px;color:#2563eb}.ticket-message time,.ticket-message header small{font-size:8px;color:#94a3b8}.ticket-message time{margin-right:auto}.ticket-message>p{margin:7px 0;line-height:1.9;white-space:normal;overflow-wrap:anywhere}.ticket-files{display:flex;flex-wrap:wrap;gap:6px}.ticket-files a{display:flex;align-items:center;gap:7px;padding:7px 9px;border:1px solid #dbe4ef;border-radius:11px;background:#fff}.ticket-files a>span,.ticket-files small{display:block}.ticket-files small{color:#64748b;font-size:7.8px}.ticket-message-actions{display:flex;gap:4px;justify-content:flex-end;margin-top:7px}.ticket-deleted-message{color:#be123c!important}.ticket-reply-form{position:sticky;bottom:8px;padding:11px;z-index:4}.ticket-reply-form textarea{resize:vertical}.ticket-reply-form footer{display:flex;align-items:center;gap:6px;margin-top:7px}.ticket-reply-form footer>span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#64748b;font-size:8px}.ticket-reply-form label{cursor:pointer}.ticket-emoji-row{display:flex;gap:3px;margin-bottom:5px}.ticket-emoji-row button{border:0;background:#f1f5f9;border-radius:7px;padding:4px;cursor:pointer}.ticket-edit-dialog form{padding:16px}.ticket-edit-dialog h3{margin:0 0 10px;font-size:13px}
.ticket-department-form{display:grid;grid-template-columns:1.4fr auto;gap:11px;align-items:end}.ticket-department-form>label{display:flex;flex-direction:column;gap:5px}.ticket-department-form>label>span{font-size:9px;font-weight:800}.ticket-department-form .wide{grid-column:1/-1}.ticket-active-check{flex-direction:row!important;align-items:center}.ticket-active-check input{width:auto}.ticket-department-form>button{justify-self:end}.ticket-department-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.ticket-department-card{display:flex;align-items:flex-start;gap:12px;padding:15px;background:linear-gradient(180deg,#fff,#f8fbff)}.ticket-department-card>div{flex:1}.ticket-department-card h3,.ticket-department-card p{margin:0}.ticket-department-card h3{font-size:11px}.ticket-department-card p,.ticket-department-card small{color:#64748b;font-size:8.2px}
@media(max-width:760px){.ticket-list-item{grid-template-columns:auto minmax(0,1fr) auto}.ticket-list-item>.ticket-priority,.ticket-list-item>i{display:none!important}.ticket-list-item>.ticket-status{grid-column:2}.ticket-toolbar{flex-wrap:wrap}.ticket-toolbar>div{width:100%;flex-basis:100%}.ticket-detail-head{align-items:flex-start;flex-wrap:wrap}.ticket-status-form{width:100%}.ticket-status-form select{flex:1}.ticket-message{width:92%}.ticket-reply-form footer{flex-wrap:wrap}.ticket-reply-form footer>span{order:4;flex-basis:100%}.new-ticket-dialog form>div,.ticket-department-form,.ticket-department-list{grid-template-columns:1fr}.new-ticket-dialog .wide,.ticket-department-form .wide{grid-column:auto}}

/* Refined ticket conversation and uploads */
.ticket-thread{padding:18px;border:1px solid #e3eaf3;border-radius:22px;background:linear-gradient(160deg,#f8fbff 0%,#f1f5f9 100%);box-shadow:inset 0 1px 0 #fff}.ticket-message{width:min(64%,620px);padding:9px 11px;border:1px solid #e2e8f0;box-shadow:0 5px 16px rgba(15,23,42,.055)}.ticket-message.mine{align-self:auto!important;margin-right:0;margin-left:auto;background:linear-gradient(145deg,#e8f3ff,#f5f9ff);border-color:#bfdbfe;border-radius:17px 17px 5px 17px}.ticket-message.theirs{align-self:auto;margin-right:auto;margin-left:0;background:#fff;border-radius:17px 17px 17px 5px}.ticket-message header{padding-bottom:6px;border-bottom:1px solid rgba(148,163,184,.16)}.ticket-message header>div{display:flex;min-width:0;flex-direction:column}.ticket-message header b{font-size:9.2px;line-height:1.4}.ticket-message header div small{font-size:7.6px;color:#64748b}.ticket-message header time{margin-right:auto;font-size:7.6px;white-space:nowrap}.ticket-message header em{padding:2px 5px;border-radius:99px;background:#f1f5f9;color:#64748b;font-size:7px;font-style:normal}.ticket-message-avatar{width:27px;height:27px;border-radius:9px;display:grid;flex:0 0 auto;place-items:center;background:#dbeafe;color:#1d4ed8;font-size:9px;font-weight:900}.ticket-message.theirs .ticket-message-avatar{background:#dcfce7;color:#15803d}.ticket-message>p{margin:7px 2px 3px!important;font-size:14px;line-height:1.9!important;color:#334155}.ticket-message-actions{margin-top:4px}.ticket-files a{min-width:190px;padding:6px}.ticket-files a>img{width:52px;height:44px;border-radius:8px;object-fit:cover}.ticket-files a>i{width:42px;height:42px;border-radius:9px;display:grid;place-items:center;background:#fee2e2;color:#dc2626;font-size:18px}
.ticket-department-dot{display:grid!important;align-items:center!important;justify-items:center!important;place-content:center;line-height:1}.ticket-department-dot>i{display:block;margin:0;line-height:1;text-align:center}.ticket-list-item{overflow:hidden;border-color:#e5eaf1;background:linear-gradient(135deg,#fff,#fbfdff)}.ticket-list-item:hover{box-shadow:0 9px 25px rgba(15,118,110,.1)}
.ticket-file-picker{min-height:82px!important;display:flex!important;flex-direction:row!important;align-items:center;gap:11px;padding:12px 14px;border:1.5px dashed #93c5fd;border-radius:16px;background:#f8fbff;cursor:pointer;transition:.2s}.ticket-file-picker:hover{border-color:#2563eb;background:#eff6ff}.ticket-file-picker-icon{width:44px;height:44px;border-radius:13px;display:grid;place-items:center;background:#dbeafe;color:#2563eb;font-size:17px}.ticket-file-picker>span:nth-of-type(2){display:flex;flex:1;min-width:0;flex-direction:column}.ticket-file-picker b{font-size:10.5px}.ticket-file-picker small{margin-top:3px;color:#64748b;font-size:8px}.ticket-file-picker em{padding:7px 10px;border-radius:10px;background:#2563eb;color:#fff;font-size:8.5px;font-style:normal;font-weight:800}.ticket-inline-picker{flex:0 0 auto;width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:1px solid #bfdbfe;border-radius:11px;background:#eff6ff;color:#1d4ed8;font-size:12px;cursor:pointer;transition:.16s}.ticket-inline-picker:hover{border-color:#2563eb;background:#dbeafe;color:#1e40af}.ticket-inline-picker>i{line-height:1}
.ticket-upload-previews{display:flex;flex-wrap:wrap;gap:7px}.ticket-upload-previews:empty{display:none}.ticket-upload-previews article{width:min(210px,100%);display:flex;align-items:center;gap:8px;padding:7px;border:1px solid #dbe4ef;border-radius:12px;background:#fff}.ticket-upload-previews img,.ticket-upload-previews article>i{width:44px;height:40px;border-radius:8px;object-fit:cover}.ticket-upload-previews article>i{display:grid;place-items:center;background:#fee2e2;color:#dc2626;font-size:17px}.ticket-upload-previews article>span{display:flex;min-width:0;flex-direction:column}.ticket-upload-previews b{max-width:135px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:8.6px}.ticket-upload-previews small{color:#64748b;font-size:7.5px}.ticket-upload-progress{display:none;position:relative;height:38px;padding:7px 10px;border:1px solid #bfdbfe;border-radius:12px;overflow:hidden;background:#eff6ff;color:#1d4ed8}.ticket-upload-progress.active{display:block}.ticket-upload-progress span{position:relative;z-index:1;display:flex;align-items:center;gap:6px;font-size:8.6px;font-weight:800}.ticket-upload-progress span i{animation:ticket-upload-bounce .8s ease-in-out infinite alternate}.ticket-upload-progress>b{position:absolute;right:0;bottom:0;height:3px;width:42%;background:linear-gradient(90deg,#60a5fa,#2563eb);animation:ticket-upload-progress 1.1s ease-in-out infinite}.new-ticket-dialog{border:1px solid rgba(255,255,255,.8);background:#fff}.new-ticket-dialog header{background:linear-gradient(135deg,#eff6ff,#fff)}.new-ticket-dialog form>div{background:linear-gradient(180deg,#fff,#fbfdff)}
@keyframes ticket-upload-progress{0%{transform:translateX(120%)}100%{transform:translateX(-240%)}}@keyframes ticket-upload-bounce{to{transform:translateY(-3px)}}
@media(max-width:760px){.ticket-thread{padding:10px}.ticket-message{width:88%}.ticket-file-picker{align-items:flex-start}.ticket-file-picker em{display:none}.ticket-files a{min-width:0;width:100%}}
.ticket-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.ticket-stats.operator{grid-template-columns:repeat(4,minmax(0,1fr))}.ticket-stat-card{min-width:0;display:flex;align-items:center;gap:10px;padding:13px 14px;overflow:hidden}.ticket-stat-card>span{width:39px;height:39px;border-radius:12px;display:grid;flex:0 0 auto;place-items:center;font-size:14px}.ticket-stat-card>div{display:flex;min-width:0;flex-direction:column}.ticket-stat-card small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#64748b;font-size:8.5px}.ticket-stat-card strong{font-size:19px;line-height:1.35}.ticket-stat-card.total>span{background:#dbeafe;color:#1d4ed8}.ticket-stat-card.unanswered>span{background:#fee2e2;color:#be123c}.ticket-stat-card.answered>span{background:#dcfce7;color:#15803d}.ticket-stat-card.waiting>span{background:#fef3c7;color:#a16207}.ticket-stat-card.total{border-color:#bfdbfe}.ticket-stat-card.unanswered{border-color:#fecdd3}.ticket-stat-card.answered{border-color:#bbf7d0}.ticket-stat-card.waiting{border-color:#fde68a}
.ticket-priority.low{background:#dcfce7;color:#15803d}.ticket-priority.normal{background:#dbeafe;color:#1d4ed8}.ticket-priority.high{background:#ffedd5;color:#c2410c}.ticket-priority.urgent{background:#fee2e2;color:#b91c1c}
.ticket-upload-previews article{position:relative}.ticket-remove-upload{position:absolute;top:-6px;left:-6px;width:21px;height:21px;border:2px solid #fff;border-radius:50%;display:grid;place-items:center;background:#ef4444;color:#fff;font-size:8px;cursor:pointer;box-shadow:0 3px 9px rgba(239,68,68,.3)}.ticket-remove-upload:hover{background:#be123c;transform:scale(1.08)}
@media(max-width:760px){.ticket-stats,.ticket-stats.operator{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.ticket-stats.user{grid-template-columns:repeat(3,minmax(0,1fr))}.ticket-stat-card{min-height:78px;padding:7px 4px;gap:4px;flex-direction:column;text-align:center}.ticket-stat-card>span{width:30px;height:30px;border-radius:9px;font-size:11px}.ticket-stat-card small{max-width:100%;font-size:6.8px}.ticket-stat-card strong{font-size:15px}}
.ticket-files a{position:relative!important;width:72px!important;min-width:72px!important;height:62px;padding:4px!important;overflow:hidden;justify-content:center}.ticket-files a>img{width:100%!important;height:100%!important;border-radius:8px;object-fit:cover}.ticket-files a>i.fa-file-pdf{width:100%!important;height:100%!important}.ticket-files a>.ticket-download-mark{position:absolute;left:4px;bottom:4px;width:21px;height:21px;padding:0;border-radius:7px;display:flex!important;align-items:center;justify-content:center;line-height:1;background:rgba(15,23,42,.75);color:#fff;font-size:8px;backdrop-filter:blur(3px)}.ticket-files a>.ticket-download-mark>i{display:block;margin:0;line-height:1;text-align:center;vertical-align:middle}.ticket-files a[data-ticket-image]{cursor:zoom-in}.ticket-files a>.ticket-download-mark{cursor:pointer}
.ticket-image-dialog{width:fit-content;max-width:min(96vw,1100px);max-height:94vh;padding:0;border:0;border-radius:20px;overflow:hidden;background:#0b1220;box-shadow:0 30px 90px rgba(2,6,23,.55)}.ticket-image-dialog::backdrop{background:rgba(2,6,23,.74);backdrop-filter:blur(6px)}.ticket-image-frame{position:relative;width:auto;height:auto;max-width:min(96vw,1100px);max-height:min(78vh,720px);min-width:min(280px,90vw);min-height:180px;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at 50% 25%,#1e293b,#0b1220);touch-action:none;cursor:grab}.ticket-image-frame.dragging{cursor:grabbing}.ticket-image-frame>img{display:block;width:auto;height:auto;max-width:min(96vw,1100px);max-height:min(78vh,720px);transform-origin:center center;transition:none;user-select:none;-webkit-user-drag:none;will-change:transform;pointer-events:none}.ticket-image-dialog footer{display:flex;align-items:center;justify-content:center;gap:6px;padding:10px;border-top:1px solid rgba(148,163,184,.24);background:rgba(15,23,42,.97)}.ticket-image-dialog footer button,.ticket-image-dialog footer a{width:33px;height:33px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(148,163,184,.3);border-radius:10px;background:rgba(255,255,255,.07);color:#e2e8f0;font-size:11px;cursor:pointer;transition:.15s}.ticket-image-dialog footer button:hover,.ticket-image-dialog footer a:hover{background:rgba(255,255,255,.17);color:#fff}.ticket-image-dialog footer b{min-width:52px;color:#cbd5e1;font-size:9px;font-weight:800;text-align:center}.ticket-image-dialog footer [data-ticket-image-download]{border-color:rgba(96,165,250,.45);background:rgba(59,130,246,.22);color:#dbeafe}.ticket-image-dialog footer [data-ticket-image-close]{border-color:rgba(248,113,113,.42);background:rgba(248,113,113,.18);color:#fecaca}
.ticket-survey-score{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border-radius:99px;background:#fef3c7;color:#a16207;font-size:8.5px;font-weight:900;white-space:nowrap}.ticket-survey-dialog{width:min(590px,calc(100% - 20px));padding:0;border:0;border-radius:22px;overflow:hidden;background:#fff;box-shadow:0 30px 90px rgba(15,23,42,.42)}.ticket-survey-dialog::backdrop{background:rgba(15,23,42,.6);backdrop-filter:blur(5px)}.ticket-survey-dialog header{display:flex;align-items:center;gap:11px;padding:18px;background:linear-gradient(135deg,#fffbeb,#fff)}.ticket-survey-dialog header>span{width:45px;height:45px;border-radius:14px;display:grid;place-items:center;background:#f59e0b;color:#fff;font-size:18px}.ticket-survey-dialog header h2,.ticket-survey-dialog header p{margin:0}.ticket-survey-dialog header h2{font-size:14px}.ticket-survey-dialog header p{margin-top:3px;color:#64748b;font-size:8.5px}.ticket-score-options{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:6px;padding:18px}.ticket-score-options label{position:relative;display:block}.ticket-score-options input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.ticket-score-box{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:1px solid #dbe4ef;border-radius:12px;background:#fff;cursor:pointer;transition:.16s;box-shadow:0 1px 2px rgba(15,23,42,.05)}.ticket-score-star{position:relative;display:block;width:16px;height:16px;font-size:14px}.ticket-score-star>i{position:absolute;top:0;right:0;width:16px;height:16px;display:flex;align-items:center;justify-content:center;line-height:1;color:#cbd5e1}.ticket-score-star>b{position:absolute;top:0;right:0;bottom:0;width:var(--star-fill,100%);overflow:hidden}.ticket-score-star>b>i{position:absolute;top:0;right:0;width:16px;height:16px;display:flex;align-items:center;justify-content:center;line-height:1;color:#f59e0b}.ticket-score-box>em{font-style:normal;font-size:10px;font-weight:900;color:#475569;line-height:1}.ticket-score-options label:hover .ticket-score-box{border-color:#94a3b8;transform:translateY(-2px);box-shadow:0 6px 14px rgba(15,23,42,.1)}.ticket-score-options input:focus-visible+.ticket-score-box{outline:2px solid var(--brand);outline-offset:2px}.ticket-score-options label:nth-child(-n+6) input:checked+.ticket-score-box{border-color:#fb7185;background:#fff1f2;box-shadow:0 6px 16px rgba(251,113,133,.24)}.ticket-score-options label:nth-child(-n+6) input:checked+.ticket-score-box>em{color:#be123c}.ticket-score-options label:nth-child(n+7) input:checked+.ticket-score-box{border-color:#4ade80;background:#f0fdf4;box-shadow:0 6px 16px rgba(74,222,128,.26)}.ticket-score-options label:nth-child(n+7) input:checked+.ticket-score-box>em{color:#15803d}.ticket-survey-feedback{display:none;margin:0 18px 16px;flex-direction:column;gap:5px}.ticket-survey-feedback.visible{display:flex}.ticket-survey-feedback>span{font-size:9px;font-weight:800}.ticket-survey-feedback small{color:#be123c;font-size:7.8px}.ticket-survey-dialog footer{display:flex;justify-content:flex-end;gap:7px;padding:13px 18px;border-top:1px solid var(--line);background:#f8fafc}
@media(max-width:600px){.ticket-image-dialog{max-width:calc(100% - 12px)}.ticket-image-frame{max-width:calc(100vw - 12px);max-height:min(62vh,460px);min-width:0}.ticket-image-frame>img{max-width:calc(100vw - 12px);max-height:min(62vh,460px)}.ticket-image-dialog footer{flex-wrap:wrap}.ticket-score-options{grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;padding:14px}.ticket-score-star{width:18px;height:18px;font-size:16px}.ticket-score-star>i,.ticket-score-star>b>i{width:18px;height:18px}.ticket-score-box>em{font-size:11px}.ticket-survey-dialog footer{align-items:stretch;flex-direction:column-reverse}.ticket-survey-dialog footer button{justify-content:center}}
.ticket-survey-ref{display:flex;align-items:flex-start;gap:7px;margin-top:8px!important;padding:8px 10px;border:1px solid #fde68a;border-radius:12px;background:#fffbeb;color:#92400e;font-size:8.6px;line-height:1.55}
.ticket-survey-ref>i{margin-top:2px;color:#d97706}
.ticket-survey-ref strong{flex:0 0 auto;font-weight:900;color:#b45309;direction:ltr}
.ticket-survey-ref span{min-width:0;font-weight:700;color:#78350f}
.import-results-panel .responsive-table{max-height:65vh}.import-results-table{width:max-content;min-width:100%}.import-results-table th:not(:first-child),.import-results-table .import-cell{min-width:150px}.import-results-table th{position:sticky;top:0;z-index:2}.import-cell{width:180px;max-width:240px;white-space:normal;overflow-wrap:anywhere;vertical-align:top}.import-cell-value{display:block}.import-cell-error{display:block;margin-top:5px;color:#b91c1c;font-size:8px;line-height:1.7}.import-cell-error i{margin-left:3px}.import-row-error td{background:#fff1f2;color:#881337}.import-row-error:hover td{background:#ffe4e6!important}.import-cell.has-error{box-shadow:inset 0 0 0 1px #fda4af}.import-row-number,.import-row-status{position:sticky;right:0;z-index:1;background:#fff;white-space:nowrap}.import-row-error .import-row-number{background:#fff1f2}.import-row-status{right:auto;left:0}.import-results-table th:first-child{right:0}.import-results-table th:last-child{left:0}.import-results-table th:first-child,.import-results-table th:last-child{z-index:3}
.user-unblock-action{background:#dcfce7;color:#15803d}.user-blocked-indicator{background:#fee2e2;color:#b91c1c;cursor:default}
.export-dialog .dialog-body{max-height:min(68vh,620px);overflow:auto}
.export-dialog .export-field-groups{display:flex;flex-direction:column;gap:14px}
.export-dialog .export-field-group{
    border:1px solid #e2e8f0;
    border-radius:16px;
    background:linear-gradient(180deg,#fff,#f8fafc);
    padding:12px;
}
.export-dialog .export-field-group-head{
    display:flex;
    align-items:center;
    gap:8px;
    margin-bottom:10px;
    padding-bottom:8px;
    border-bottom:1px dashed #e2e8f0;
}
.export-dialog .export-field-group-head i{
    width:28px;
    height:28px;
    border-radius:9px;
    display:grid;
    place-items:center;
    background:#ecfdf5;
    color:#059669;
    font-size:12px;
}
.export-dialog .export-field-group-head strong{flex:1;font-size:12px}
.export-dialog .export-field-group-head span{font-size:10px;color:#64748b}
.export-dialog .export-field-grid{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:8px}
.export-dialog .export-field-item{
    min-height:42px;
    margin:0;
    background:#fff;
    transition:.15s ease;
}
.export-dialog .export-field-item:hover{border-color:#86efac;box-shadow:0 4px 12px rgba(22,163,74,.08)}
.export-dialog .export-field-item:has(input:checked){border-color:#86efac;background:#f0fdf4}
.export-dialog .permission-item b{font-size:10px;line-height:1.7}
.export-dialog .permission-item>span{width:22px;height:22px;border-radius:7px;background:#f1f5f9;color:transparent}
.export-dialog .permission-item input:checked+span{background:#16a34a;color:#fff}
.export-dialog .permission-item span i{display:inline-block!important;font-size:10px;line-height:1}
.export-field-actions{display:flex;gap:4px;margin-bottom:10px}
.export-field-actions .text-btn.is-clear-mode{color:#b45309}
@media(max-width:1100px){.export-dialog .export-field-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}}
@media(max-width:820px){.export-dialog .export-field-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:520px){.export-dialog .export-field-grid{grid-template-columns:1fr!important}}
.prereg-origin-badge,
.prereg-new-badge{
    display:inline-flex;
    align-items:center;
    gap:5px;
    margin-top:4px;
    padding:3px 8px;
    border-radius:999px;
    font-size:9.5px;
    font-weight:800;
    line-height:1.4;
    white-space:nowrap;
}
.prereg-origin-badge{
    background:#eff6ff;
    color:#1d4ed8;
    border:1px solid #bfdbfe;
}
.prereg-new-badge{
    background:linear-gradient(135deg,#fff7ed,#ffedd5);
    color:#9a3412;
    border:1px solid #fdba74;
    box-shadow:0 0 0 2px rgba(251,146,60,.12);
}
.import-row-skip td{background:#fffbeb;color:#92400e}.import-row-skip:hover td{background:#fef3c7!important}.import-row-skip .import-row-number{background:#fffbeb}.import-cell-skip{display:block;margin-top:5px;color:#92400e;font-size:8px;line-height:1.7}.import-cell-note{display:block;margin-top:5px;color:#0369a1;font-size:8px;line-height:1.7}
.users-table-panel{position:relative}
.users-filtering-overlay{display:none;position:absolute;inset:0;z-index:20;place-items:center;gap:8px;background:rgba(248,250,252,.82);backdrop-filter:blur(3px);color:var(--primary);font-weight:800;font-size:12px}
.users-table-panel.is-filtering .users-filtering-overlay{display:grid}
.users-filtering-overlay i{font-size:18px}
.advanced-search.is-filtering{opacity:.65;pointer-events:none}
.excel-progress-overlay{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;padding:18px;background:rgba(15,23,42,.62);backdrop-filter:blur(8px);opacity:0;visibility:hidden;transition:.25s}.excel-progress-overlay.visible{opacity:1;visibility:visible}.excel-progress-card{width:min(410px,100%);padding:30px 26px;text-align:center;border:1px solid rgba(255,255,255,.85);border-radius:25px;background:linear-gradient(145deg,#fff,#f0fdf4);box-shadow:0 28px 80px rgba(15,23,42,.3);transform:translateY(14px) scale(.97);transition:.28s;overflow:visible}.excel-progress-overlay.visible .excel-progress-card{transform:none}.excel-progress-visual{position:relative;width:86px;height:86px;margin:0 auto 18px;display:grid;place-items:center;border-radius:22px;background:linear-gradient(135deg,#dcfce7,#dbeafe);color:#16a34a;font-size:32px;overflow:visible;isolation:isolate}.excel-progress-visual>i{position:relative;z-index:1;line-height:1}.excel-progress-visual>span{position:absolute;inset:-4px;box-sizing:border-box;border:3px solid transparent;border-top-color:#22c55e;border-right-color:#3b82f6;border-radius:26px;pointer-events:none;animation:excel-orbit 1.15s linear infinite;transform-origin:center center}.excel-progress-card h2{margin:0 0 8px;font-size:16px;color:#0f172a}.excel-progress-card p{margin:0;color:#64748b;font-size:10.5px;line-height:1.9}.excel-progress-bar{height:8px;margin:20px 0 12px;overflow:hidden;border-radius:99px;background:#e2e8f0}.excel-progress-bar>span{display:block;width:45%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#16a34a,#3b82f6);animation:excel-progress 1.4s ease-in-out infinite}.excel-progress-card small{display:flex;justify-content:center;align-items:center;gap:7px;color:#475569;font-size:9.5px}.excel-progress-overlay.is-success .excel-progress-visual{background:linear-gradient(135deg,#dcfce7,#bbf7d0);color:#16a34a}.excel-progress-overlay.is-success .excel-progress-visual>span{animation:none;opacity:0}.excel-progress-overlay.is-success .excel-progress-bar>span{width:100%!important;animation:none;background:linear-gradient(90deg,#16a34a,#4ade80)}.excel-progress-overlay.is-success .excel-progress-card small{color:#15803d}@keyframes excel-orbit{to{transform:rotate(360deg)}}@keyframes excel-progress{0%{transform:translateX(130%)}50%{transform:translateX(-120%)}100%{transform:translateX(130%)}}

/* ?? Global AJAX upload overlay (top-layer <dialog> above all modals) ??????????????????????????????? */
.upload-progress-overlay{
  position:fixed;inset:0;z-index:2147483000;margin:0;padding:18px;border:0;max-width:none;max-height:none;
  width:100%;height:100%;box-sizing:border-box;display:grid;place-items:center;
  background:rgba(15,23,42,.58);backdrop-filter:blur(10px);
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .28s ease,visibility .28s ease;
}
.upload-progress-overlay[open],.upload-progress-overlay.is-open{opacity:1;visibility:visible;pointer-events:auto}
.upload-progress-overlay::backdrop{background:rgba(15,23,42,.62);backdrop-filter:blur(10px)}
.upload-progress-card{width:min(420px,100%);padding:32px 28px 26px;text-align:center;border-radius:28px;border:1px solid rgba(255,255,255,.9);background:
  radial-gradient(120% 90% at 100% 0%,rgba(34,197,94,.16),transparent 50%),
  radial-gradient(100% 80% at 0% 100%,rgba(59,130,246,.14),transparent 45%),
  linear-gradient(160deg,#fff,#f8fafc);box-shadow:0 30px 80px rgba(15,23,42,.32);transform:translateY(18px) scale(.96);transition:transform .32s cubic-bezier(.22,1,.36,1),box-shadow .32s ease}
.upload-progress-overlay.is-open .upload-progress-card,.upload-progress-overlay[open] .upload-progress-card{transform:none}
.upload-progress-visual{position:relative;width:112px;height:112px;margin:0 auto 18px;display:grid;place-items:center;overflow:visible}
.upload-progress-box{position:relative;z-index:2;width:64px;height:64px;display:grid;place-items:center;overflow:visible}
.upload-progress-box>i,.upload-progress-visual>i{position:relative;z-index:2;width:64px;height:64px;border-radius:22px;display:grid;place-items:center;font-size:26px;color:#fff;background:linear-gradient(135deg,#2563eb,#22c55e);box-shadow:0 16px 32px rgba(37,99,235,.28);transition:transform .35s ease,background .35s ease}
.upload-orbit{position:absolute;inset:-4px;box-sizing:border-box;border-radius:26px;border:2.5px solid transparent;border-top-color:#22c55e;border-right-color:#3b82f6;pointer-events:none;transform-origin:center center;animation:upload-orbit 1.1s linear infinite;opacity:.95}
.upload-orbit-b{inset:-10px;border-radius:32px;border-top-color:#38bdf8;border-right-color:#a3e635;animation-duration:1.7s;animation-direction:reverse;opacity:.4}
.upload-ring{position:absolute;inset:0;transform:rotate(-90deg);z-index:1;pointer-events:none}
.upload-ring-track{fill:none;stroke:#e2e8f0;stroke-width:6}
.upload-ring-value{fill:none;stroke:url(#none);stroke:#22c55e;stroke-width:6;stroke-linecap:round;stroke-dasharray:251.2;stroke-dashoffset:251.2;transition:stroke-dashoffset .2s linear,stroke .3s ease}
.upload-pct{position:absolute;bottom:-2px;left:50%;transform:translateX(-50%);z-index:3;min-width:46px;padding:3px 8px;border-radius:999px;background:#0f172a;color:#fff;font-size:10px;font-weight:900;box-shadow:0 8px 16px rgba(15,23,42,.2)}
.upload-progress-card h2{margin:0 0 8px;font-size:17px;color:#0f172a}
.upload-progress-card p{margin:0;color:#64748b;font-size:12px;line-height:1.9}
.upload-progress-bar{height:10px;margin:18px 0 12px;overflow:hidden;border-radius:999px;background:#e2e8f0}
.upload-progress-bar>span{display:block;height:100%;width:0;border-radius:inherit;background:linear-gradient(90deg,#2563eb,#22c55e 55%,#84cc16);box-shadow:0 0 16px rgba(34,197,94,.35);transition:width .2s linear}
.upload-progress-card small{display:inline-flex;align-items:center;justify-content:center;gap:7px;color:#64748b;font-size:11px;font-weight:700}
.upload-progress-overlay.is-success .upload-progress-box>i,.upload-progress-overlay.is-success .upload-progress-visual>i{background:linear-gradient(135deg,#16a34a,#22c55e);transform:scale(1.08)}
.upload-progress-overlay.is-success .upload-orbit,.upload-progress-overlay.is-success .upload-orbit-b{animation:none;opacity:0}
.upload-progress-overlay.is-success .upload-ring-value{stroke:#16a34a;stroke-dashoffset:0}
.upload-progress-overlay.is-success .upload-pct{background:#16a34a}
.upload-progress-overlay.is-success .upload-progress-bar>span{width:100%!important;background:linear-gradient(90deg,#16a34a,#4ade80)}
.upload-progress-overlay.is-error .upload-progress-box>i,.upload-progress-overlay.is-error .upload-progress-visual>i{background:linear-gradient(135deg,#dc2626,#f97316)}
.upload-progress-overlay.is-error .upload-orbit,.upload-progress-overlay.is-error .upload-orbit-b{animation:none;border-top-color:#ef4444;border-right-color:#fb923c;opacity:.35}
.upload-progress-overlay.is-error .upload-ring-value{stroke:#ef4444}
.upload-progress-overlay.is-error .upload-pct{background:#dc2626}
@keyframes upload-orbit{to{transform:rotate(360deg)}}
@keyframes upload-pop{0%{transform:scale(.8);opacity:0}60%{transform:scale(1.08)}100%{transform:scale(1);opacity:1}}
.upload-progress-overlay.is-success .upload-progress-box>i,.upload-progress-overlay.is-success .upload-progress-visual>i{animation:upload-pop .45s ease}
body.upload-busy{overflow:hidden}
.viewer-search-field{margin:0 18px 14px;max-width:460px;height:42px;padding:0 12px;display:flex;align-items:center;gap:8px;border:1px solid #dbe3ef;border-radius:12px;background:#f8fafc;color:#64748b}.viewer-search-field input{width:100%;height:100%;padding:0;border:0;outline:0;background:transparent;font:inherit;color:#0f172a}
.user-form input[readonly]{background:#f8fafc;color:#475569;cursor:default;box-shadow:none}
.parents-include-toggle{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border:1px solid #dbeafe;border-radius:16px;background:linear-gradient(180deg,#fff,#f8fbff);cursor:pointer;margin-top:8px}
.parents-include-toggle span{display:flex;flex-direction:column;gap:4px;min-width:0}
.parents-include-toggle strong{font-size:13px;color:#0f172a}
.parents-include-toggle small{font-size:11px;color:#64748b;line-height:1.5}
.guardians-optional-panel{margin-top:14px;display:flex;flex-direction:column;gap:12px}
.guardians-optional-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.guardians-optional-toolbar .form-note{flex:1;min-width:200px}
.guardian-box{margin-top:4px}

.bulk-toolbar{grid-template-columns:auto minmax(145px,1fr) minmax(145px,1fr) minmax(160px,1fr) minmax(170px,1fr) auto auto}.bulk-toolbar.page-size-only{display:flex;justify-content:flex-end}.list-page-size{display:flex;flex-direction:row;align-items:center;gap:7px;white-space:nowrap}.list-page-size>span{font-size:9px;color:var(--muted)}.list-page-size .pretty-select{min-width:95px}.user-cell{position:relative}.user-name-link{color:inherit}.user-name-link:hover{color:var(--primary)}.new-user-dot{position:absolute;top:-3px;right:-3px;width:9px;height:9px;border:2px solid #fff;border-radius:50%;background:#22c55e;box-shadow:0 0 0 2px rgba(34,197,94,.16);pointer-events:none;animation:new-user-pulse 2.4s ease-in-out infinite}.profile-summary{position:relative}.profile-summary>.new-user-dot{top:14px;right:14px;width:11px;height:11px}.single-user-action-dialog{width:min(620px,calc(100% - 28px))}
.notification-audience-fieldset{width:100%;box-sizing:border-box}
.notification-audiences{width:100%!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:10px!important}
.notification-audiences>label{width:100%!important;min-width:0!important;display:block!important}
.notification-audiences span{display:flex!important;flex-direction:row!important;align-items:center!important;gap:9px!important;width:100%!important;min-height:0!important;height:50px!important;padding:8px 14px!important;text-align:right!important;box-sizing:border-box!important}
.notification-audiences span>b{font-size:10px!important;font-weight:700!important;flex:1!important;white-space:nowrap!important;order:1}
.notification-audiences span>i{width:26px!important;height:26px!important;font-size:13px!important;border-radius:8px!important;flex-shrink:0!important;display:grid!important;place-items:center!important;background:#f1f5f9;order:2}
.notification-audiences span>small{display:none!important}.notification-person-toolbar{justify-content:flex-end}.notification-person-toolbar>[data-person-results]{margin-left:auto}.notification-person-toolbar button{display:inline-flex;align-items:center;gap:5px}
.class-stage-group{display:flex;flex-direction:column;gap:10px}.class-stage-heading{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid #dbeafe;border-radius:16px;background:linear-gradient(135deg,#eff6ff,#fff)}.class-stage-heading>span{width:40px;height:40px;display:grid;place-items:center;border-radius:13px;background:#dbeafe;color:#2563eb}.class-stage-heading h2{margin:0;font-size:13px}.class-stage-heading p{margin:3px 0 0;color:var(--muted);font-size:9px}.student-assignment-list{grid-template-columns:repeat(3,minmax(0,1fr))!important}@media(max-width:680px){.student-assignment-list{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
.class-teacher-summary{margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}.class-teacher-summary h3{display:flex;align-items:center;gap:6px;margin:0 0 7px;color:#1d4ed8;font-size:10px}.class-teacher-summary>div{display:flex;justify-content:space-between;gap:8px;padding:6px 8px;border-radius:8px;background:#eff6ff;font-size:9px}.class-teacher-summary>div+div{margin-top:5px}.class-teacher-summary small,.class-teacher-summary p{color:var(--muted);font-size:8px}.class-assignment-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:10px}.class-assignment-actions .app-action-btn{min-width:0}.teacher-subject-step{display:grid;gap:9px}.teacher-subject-card{padding:12px;border:1px solid #dbeafe;border-radius:14px;background:#f8fbff}.teacher-subject-card>header{display:flex;align-items:center;gap:7px;margin-bottom:9px;color:#1e40af}.subject-input-row{display:grid;grid-template-columns:1fr auto;gap:6px;margin-bottom:6px}.subject-input-row input{min-width:0}.teacher-subject-card>.text-btn{margin-top:3px}@media(max-width:680px){.class-assignment-actions{grid-template-columns:1fr}}
.permission-related-icon{width:31px;height:31px;flex:0 0 31px;display:grid;place-items:center;border-radius:10px;background:#eff6ff;color:#2563eb}.permission-item:has(input:checked) .permission-related-icon{background:#dbeafe;color:#1d4ed8}.permission-override-head{display:flex;align-items:center;gap:8px}.permission-override-head>span{flex:1;min-width:0}
.perm-tree-wrap{display:flex;flex-direction:column;gap:12px}
.perm-tree-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.perm-search{flex:1;min-width:220px;display:flex;flex-direction:row;align-items:center;gap:8px;border:1px solid #dbeafe;background:linear-gradient(180deg,#fff,#f8fbff);border-radius:14px;padding:0 13px;box-shadow:0 8px 18px rgba(37,99,235,.05)}
.perm-search>i{flex:0 0 auto;color:#2563eb;font-size:12px;line-height:1}
.perm-search input{flex:1;min-width:0;width:auto;border:0;background:transparent;padding:11px 0;font-size:12px;box-shadow:none}
.perm-tree-actions{display:flex;gap:6px}
.perm-tool-btn{display:inline-flex;align-items:center;gap:6px;border:1px solid #e2e8f0;background:#fff;color:#475569;border-radius:12px;padding:8px 10px;font-size:10px;font-weight:800;cursor:pointer}
.perm-tool-btn:hover{border-color:#bfdbfe;background:#eff6ff;color:#1d4ed8}
.perm-count{white-space:nowrap;font-size:10px;font-weight:800;color:#1d4ed8;background:#eff6ff;border-radius:999px;padding:8px 12px}
.perm-tree{display:flex;flex-direction:column;gap:10px}
.perm-node{display:flex;flex-direction:column;gap:7px}
.perm-tree>.perm-node{--perm-accent:#2563eb;--perm-soft:#eff6ff;--perm-line:#dbeafe}
.perm-tree>.perm-node:nth-child(2){--perm-accent:#0f766e;--perm-soft:#f0fdfa;--perm-line:#99f6e4}
.perm-tree>.perm-node:nth-child(3){--perm-accent:#7c3aed;--perm-soft:#f5f3ff;--perm-line:#ddd6fe}
.perm-tree>.perm-node:nth-child(4){--perm-accent:#c2410c;--perm-soft:#fff7ed;--perm-line:#fed7aa}
.perm-row{display:flex;align-items:center;gap:8px;border:1px solid #e2e8f0;background:#fff;border-radius:14px;padding:9px 10px;transition:border-color .16s,box-shadow .16s,background .16s}
.perm-row.is-root{background:linear-gradient(135deg,var(--perm-soft),#fff);border-color:var(--perm-line);box-shadow:0 10px 22px rgba(15,23,42,.05)}
.perm-row.is-leaf{padding:8px 10px}
.perm-row:hover{border-color:var(--perm-line);box-shadow:0 8px 18px rgba(15,23,42,.06)}
.perm-row:has(input[data-perm-id]:checked),.perm-row:has(input[value="allow"]:checked){border-color:color-mix(in srgb,var(--perm-accent) 35%,#e2e8f0);background:linear-gradient(135deg,var(--perm-soft),#fff)}
.perm-row:has(input[value="deny"]:checked){border-color:#fecdd3;background:linear-gradient(135deg,#fff1f2,#fff)}
.perm-toggle,.perm-toggle-spacer{width:30px;height:30px;flex:0 0 30px;border:0;background:#f8fafc;color:#64748b;border-radius:10px;display:grid;place-items:center;cursor:pointer}
.perm-toggle:hover{background:var(--perm-soft);color:var(--perm-accent)}
.perm-toggle.is-collapsed i{transform:rotate(90deg)}
.perm-toggle i{transition:transform .16s ease}
.perm-check{position:relative;flex:1;min-width:0;display:flex;align-items:center;gap:9px;cursor:pointer}
.perm-check input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.perm-check>span{width:20px;height:20px;min-width:20px;border:1.5px solid #cbd5e1;border-radius:7px;background:#fff;display:grid;place-items:center;box-shadow:inset 0 1px 2px rgba(15,23,42,.04)}
.perm-check>span i{display:none;font-size:10px;color:#fff}
.perm-check input:checked+span{background:linear-gradient(135deg,var(--perm-accent),#38bdf8);border-color:var(--perm-accent)}
.perm-check input:checked+span i{display:block}
.perm-check input:indeterminate+span{background:color-mix(in srgb,var(--perm-accent) 55%,#fff);border-color:var(--perm-accent)}
.perm-check b{display:flex;flex-direction:column;gap:1px;font-size:12.2px;line-height:1.5}
.perm-check small{font-size:8.6px;color:#64748b;font-weight:700}
.perm-row.is-root .permission-related-icon{width:36px;height:36px;border-radius:12px;background:var(--perm-soft);color:var(--perm-accent)}
.perm-children{display:flex;flex-direction:column;gap:6px;margin-right:18px;padding-right:12px;border-right:2px solid var(--perm-line)}
.perm-match-hidden{display:none}
.perm-empty{margin:0;text-align:center;color:#64748b;font-size:11px}
.perm-override-row{flex:1;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:10px}
.perm-override-row .permission-override-head strong{display:block;font-size:12px}
.perm-override-row .permission-override-head small{color:#64748b;font-size:8.4px}
.perm-override-row .state-switch{flex:0 0 auto;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:3px}
.perm-override-row .state-switch label{position:relative;margin:0}
.perm-override-row .state-switch b{background:transparent}
.access-role-select{display:flex;flex-direction:column;gap:6px;margin-bottom:14px;padding:12px;border:1px solid #dbeafe;border-radius:16px;background:linear-gradient(135deg,#f8fbff,#fff)}
.access-role-select>span{font-size:9px;font-weight:800;color:#1d4ed8}
.profile-access-summary{display:flex;align-items:center;gap:14px;padding:16px 18px;border:1px solid #dbeafe;background:linear-gradient(135deg,#eff6ff,#fff 55%,#f0fdf4)}
.profile-access-icon{width:48px;height:48px;flex:0 0 48px;display:grid;place-items:center;border-radius:16px;background:linear-gradient(135deg,#2563eb,#0ea5e9);color:#fff;box-shadow:0 10px 20px rgba(37,99,235,.22)}
.profile-access-summary>div{flex:1;min-width:0}
.profile-access-summary h2{margin:0;font-size:14px}
.profile-access-summary p{margin:4px 0 0;color:#64748b;font-size:10px}
.ticket-agent-picker{display:flex;flex-direction:column;gap:8px}
.ticket-agent-picker>span{font-size:9px;font-weight:800;color:#1e3a8a;display:flex;align-items:center;gap:8px}
.ticket-agent-picker>span small{color:#64748b;font-weight:700}
.ticket-agent-picker .student-assignment-list{display:grid;max-height:320px;overflow:auto;padding:6px;border:1px solid #e2e8f0;border-radius:16px;background:#f8fafc;grid-template-columns:repeat(4,minmax(0,1fr))!important}
.ticket-agent-picker .student-assignment-list input:checked+span i{display:block;color:#fff;font-size:10px}
.ticket-department-actions{display:flex;justify-content:flex-end;gap:8px;grid-column:1/-1}
.ticket-agent-pills{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}
.ticket-agent-pills span{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;border-radius:999px;background:#eff6ff;color:#1d4ed8;font-size:8.4px;font-weight:800}
.ticket-agent-pills span>small,.ticket-agent-rating{color:#ca8a04;font-weight:800}
.ticket-department-card{align-items:flex-start}
.ticket-hero{display:flex;align-items:center;gap:8px 10px;padding:12px 14px;background:linear-gradient(135deg,#f8fbff,#fff 55%,#f0fdf4)}
.ticket-hero .ticket-back{width:38px;height:38px;flex:0 0 38px;border-radius:12px;background:#fff;border:1px solid #e2e8f0;box-shadow:0 8px 18px rgba(15,23,42,.06);transition:transform .16s}
.ticket-hero .ticket-back:hover{transform:translateX(-2px);border-color:#bfdbfe;color:#1d4ed8}
.ticket-hero-title{flex:1 1 170px;min-width:140px}
.ticket-hero-title>small{display:block;font-size:7.8px;font-weight:800;color:#64748b}
.ticket-hero-title h2{margin:2px 0 0;font-size:13px;line-height:1.45;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ticket-hero .ticket-status{padding:6px 10px;font-size:9px}
.ticket-meta-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid #e2e8f0;border-radius:999px;background:#fff;color:#334155;font-size:9px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ticket-meta-chip i{color:#64748b}
.ticket-meta-chip.dept i{color:inherit}
.ticket-meta-chip.dept.blue{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}
.ticket-meta-chip.dept.green{background:#f0fdf4;border-color:#bbf7d0;color:#15803d}
.ticket-meta-chip.dept.yellow{background:#fffbeb;border-color:#fde68a;color:#a16207}
.ticket-meta-chip.dept.orange{background:#fff7ed;border-color:#fed7aa;color:#c2410c}
.ticket-meta-chip.dept.red{background:#fff1f2;border-color:#fecdd3;color:#be123c}
.ticket-meta-chip.priority.low{background:#f0fdf4;color:#15803d}
.ticket-meta-chip.priority.high,.ticket-meta-chip.priority.urgent{background:#fff1f2;color:#be123c}
.ticket-manage-board{padding:0;overflow:hidden}
.ticket-manage-board>header{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid #e2e8f0;border-radius:var(--radius) var(--radius) 0 0;background:linear-gradient(135deg,#eff6ff,#fff)}
.ticket-manage-icon{width:36px;height:36px;display:grid;place-items:center;border-radius:12px;background:linear-gradient(135deg,#2563eb,#0ea5e9);color:#fff;font-size:13px;box-shadow:0 8px 16px rgba(37,99,235,.18)}
.ticket-manage-board>header h2{margin:0;font-size:13.5px}
.ticket-manage-board>header p{margin:2px 0 0;color:#64748b;font-size:9px}
.ticket-manage-body{display:flex;flex-direction:column;gap:12px;padding:14px 16px 18px}
.ticket-manage-row{display:flex;align-items:end;gap:10px;flex-wrap:wrap}
.ticket-manage-row>label{flex:1;min-width:180px;display:flex;flex-direction:column;gap:6px}
.ticket-manage-row>label>span{display:flex;align-items:center;gap:6px;color:#1e3a8a;font-size:10px;font-weight:800}
.ticket-manage-row>label>span i{width:22px;height:22px;display:grid;place-items:center;border-radius:7px;background:#eff6ff;color:#2563eb;font-size:10px}
.ticket-manage-row .pretty-select,.ticket-manage-row select{width:100%}
.ticket-manage-row .pretty-select-trigger{min-height:46px;border-radius:13px;padding:10px 12px;font-size:12px}
.ticket-manage-btn{min-height:46px;padding:0 18px;border-radius:13px;font-size:12px;font-weight:800;white-space:nowrap}
.ticket-manage-row .secondary-btn.ticket-manage-btn{min-width:140px}
.ticket-side-stack .ticket-manage-row{flex-direction:column;align-items:stretch}
.ticket-side-stack .ticket-manage-btn{width:100%;min-width:0}
.ticket-side-stack .ticket-manage-row>label{min-width:0}
.ticket-side-cards{display:flex;flex-direction:column;gap:8px}
.ticket-side-card{display:flex;align-items:center;gap:10px;padding:11px 12px;transition:.16s}
.ticket-side-card:hover{transform:translateY(-1px);border-color:#93c5fd}
.ticket-side-card>span{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;color:#fff;flex:0 0 34px}
.ticket-side-card.new>span{background:linear-gradient(135deg,#2563eb,#0ea5e9)}
.ticket-side-card.unanswered>span{background:linear-gradient(135deg,#f59e0b,#ea580c)}
.ticket-side-card small{display:block;color:#64748b;font-size:8px;font-weight:800}
.ticket-side-card strong{font-size:16px;line-height:1.2}
.ticket-flow{padding:12px}
.ticket-flow>header{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.ticket-flow>header>span{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;background:#eff6ff;color:#2563eb}
.ticket-flow h2{margin:0;font-size:12px}
.ticket-flow p{margin:2px 0 0;color:#64748b;font-size:8.2px}
.ticket-flow ol{margin:0;padding:0 4px 0 0;list-style:none;display:flex;flex-direction:column;gap:0}
.ticket-flow li{position:relative;padding:0 20px 14px 8px;border-right:2px solid #dbeafe}
.ticket-flow li:last-child{padding-bottom:0;border-right-color:transparent}
.ticket-flow li:before{content:"";position:absolute;right:-5px;top:6px;width:8px;height:8px;border-radius:50%;background:#2563eb;box-shadow:0 0 0 3px #eff6ff}
.ticket-flow li b{display:block;font-size:9.5px;line-height:1.7;color:#1e293b}
.ticket-flow li small{display:block;margin-top:2px;color:#94a3b8;font-size:8px}
.ticket-message.system{align-self:center;width:min(86%,640px);background:#fffbeb;border-color:#fde68a}
.ticket-message.system .ticket-message-avatar{background:#f59e0b;color:#fff;font-size:12px}
.ticket-settings-form{display:grid;grid-template-columns:minmax(180px,240px) minmax(0,1fr);gap:12px;align-items:start}
.ticket-settings-form .wide{grid-column:1/-1}
.ticket-advanced-search{padding:12px 14px}
@media(max-width:760px){.ticket-settings-form{grid-template-columns:1fr}}
.ticket-color-swatches,.ticket-icon-swatches{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;width:100%}
.ticket-department-form .ticket-color-swatches>label,.ticket-department-form .ticket-icon-swatches>label{position:relative;display:flex;flex-direction:column;align-items:stretch;justify-content:stretch;gap:0;width:100%;min-width:0;margin:0;cursor:pointer}
.ticket-department-form .ticket-color-swatches>label>input,.ticket-department-form .ticket-icon-swatches>label>input{position:absolute;inset:0;z-index:2;width:100%;height:100%;margin:0;padding:0;border:0;border-radius:16px;opacity:0;background:transparent;appearance:none;-webkit-appearance:none;pointer-events:auto;cursor:pointer;flex:none}
.ticket-color-swatches>label>span,.ticket-icon-swatches>label>span{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;width:100%;min-height:92px;padding:12px 8px;border:1px solid #e2e8f0;border-radius:16px;background:#fff;color:#334155;transition:.16s}
.ticket-color-swatches>label:hover>span,.ticket-icon-swatches>label:hover>span{border-color:#93c5fd;transform:translateY(-1px)}
.ticket-color-swatches>label>span>i{width:38px;height:38px;flex:0 0 38px;border-radius:12px;display:block;box-shadow:inset 0 0 0 2px rgba(255,255,255,.55),0 8px 16px rgba(15,23,42,.12)}
.ticket-color-swatches>label>span>b,.ticket-icon-swatches>label>span>b{font-size:11.5px;font-weight:800;text-align:center;line-height:1.4;color:#334155}
.ticket-color-swatches .blue>span>i{background:linear-gradient(135deg,#60a5fa,#2563eb)}
.ticket-color-swatches .green>span>i{background:linear-gradient(135deg,#4ade80,#16a34a)}
.ticket-color-swatches .yellow>span>i{background:linear-gradient(135deg,#facc15,#ca8a04)}
.ticket-color-swatches .orange>span>i{background:linear-gradient(135deg,#fb923c,#ea580c)}
.ticket-color-swatches .red>span>i{background:linear-gradient(135deg,#fb7185,#e11d48)}
.ticket-color-swatches .blue{color:#2563eb}
.ticket-color-swatches .green{color:#16a34a}
.ticket-color-swatches .yellow{color:#ca8a04}
.ticket-color-swatches .orange{color:#ea580c}
.ticket-color-swatches .red{color:#e11d48}
.ticket-color-swatches>label>input:checked+span{border-color:currentColor;background:color-mix(in srgb,currentColor 8%,#fff);box-shadow:0 0 0 3px color-mix(in srgb,currentColor 18%,transparent)}
.ticket-icon-swatches>label>span>i{width:42px;height:42px;flex:0 0 42px;border-radius:13px;display:grid;place-items:center;background:#f1f5f9;color:#1d4ed8;font-size:18px}
.ticket-icon-swatches>label>input:checked+span{border-color:#2563eb;background:#eff6ff;color:#1e3a8a;box-shadow:0 0 0 3px rgba(37,99,235,.12)}
.ticket-icon-swatches>label>input:checked+span>i{background:linear-gradient(135deg,#2563eb,#0ea5e9);color:#fff}
.ticket-icon-swatches>label>input:focus-visible+span,.ticket-color-swatches>label>input:focus-visible+span{outline:2px solid #2563eb;outline-offset:2px}
@media(max-width:980px){
    .ticket-manage-row{flex-direction:column;align-items:stretch}
    .ticket-manage-row>label{min-width:0}
    .ticket-manage-btn{width:100%;justify-content:center}
}
@media(max-width:1100px){
    .ticket-hero{flex-wrap:wrap}
    .ticket-hero-title{flex-basis:calc(100% - 52px)}
}
@media(max-width:760px){
    .ticket-icon-swatches,.ticket-color-swatches{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:680px){
    .perm-tree-toolbar{flex-direction:column;align-items:stretch}
    .perm-tree-actions,.perm-count{width:100%;justify-content:center}
    .perm-count{text-align:center}
    .perm-override-row{flex-direction:column;align-items:stretch}
    .perm-children{margin-right:8px;padding-right:6px}
    .profile-access-summary{flex-direction:column;align-items:stretch}
    .profile-access-summary .primary-btn{width:100%;justify-content:center}
    .ticket-agent-picker .student-assignment-list{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:520px){
    .ticket-agent-picker .student-assignment-list{grid-template-columns:1fr!important}
}

.profile-print-btn{width:100%;justify-content:center}
.access-scope-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.access-scope-card{display:flex;flex-direction:column;gap:12px;padding:14px;border:1px solid #dbeafe;border-radius:16px;background:linear-gradient(180deg,#fff,#f8fbff)}
.access-scope-card>header{display:flex;align-items:center;gap:10px}
.access-scope-icon{width:40px;height:40px;flex:0 0 40px;display:grid;place-items:center;border-radius:13px;background:#dbeafe;color:#1d4ed8}
.access-scope-card h3{margin:0;font-size:13px}
.access-scope-card header small{display:block;margin-top:3px;color:#64748b;font-size:9px}
.access-scope-flags{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.access-scope-flags>div{display:flex;flex-direction:column;gap:5px;padding:8px 10px;border-radius:12px;background:#fff;border:1px solid #e2e8f0}
.access-scope-flags span{font-size:8.5px;font-weight:800;color:#64748b}
.scope-flag{display:inline-flex;align-self:flex-start;padding:3px 8px;border-radius:999px;font-size:9px}
.scope-flag.allowed{background:#dcfce7;color:#15803d}
.scope-flag.denied{background:#fee2e2;color:#b91c1c}
.scope-access-flags{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.scope-access-flags article{padding:12px;border:1px solid #dbeafe;border-radius:16px;background:linear-gradient(180deg,#fff,#f8fbff)}
.scope-access-flags header{display:flex;align-items:center;gap:8px;margin-bottom:10px;color:#1e3a8a;font-size:11px;font-weight:800}
.scope-access-flags header i{width:28px;height:28px;display:grid;place-items:center;border-radius:9px;background:#eff6ff;color:#2563eb}
.scope-access-flags .state-switch{width:100%}
.scope-access-flags .state-switch label{flex:1}
.scope-access-flags .state-switch b{text-align:center;width:100%}
@media(max-width:680px){
    .access-scope-grid,.access-scope-flags,.scope-access-flags{grid-template-columns:1fr}
}.related-profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.related-profile-grid>article{padding:13px;border:1px solid #e2e8f0;border-radius:15px;background:#f8fafc}.related-profile-grid h3{margin:0 0 10px;font-size:11px}.compact-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:0}.compact-details>div{padding:7px;border-radius:9px;background:#fff}.compact-details .wide{grid-column:1/-1}.compact-details dt{font-size:8px;color:var(--muted)}.compact-details dd{margin:2px 0 0;font-size:9px;font-weight:700}@media(max-width:680px){.related-profile-grid{grid-template-columns:1fr}}
.user-note-form{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px}.user-note-form textarea{width:100%}.user-notes{display:grid;gap:8px;margin-top:12px}.user-notes article{padding:11px 13px;border:1px solid #e2e8f0;border-radius:13px;background:#f8fafc}.user-notes header{display:flex;align-items:center;justify-content:space-between;gap:10px}.user-notes time{color:var(--muted);font-size:8px}.user-notes p{margin:7px 0 0;font-size:10px;line-height:1.9}.attachment-entry{display:flex;align-items:stretch;gap:6px}.attachment-entry>a{flex:1}.attachment-entry form{display:flex}.attachment-entry form button{height:100%}@media(max-width:680px){.user-note-form{grid-template-columns:1fr}}
@media(max-width:1100px){
    .ticket-agent-picker .student-assignment-list{grid-template-columns:repeat(2,minmax(0,1fr))!important}
    .bulk-toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}
    .list-page-size{justify-content:flex-end}
}@media(max-width:680px){.bulk-toolbar{grid-template-columns:1fr}.list-page-size{justify-content:stretch}.list-page-size .pretty-select{flex:1}}
.initial-parent-card{padding:15px;border:1px solid #dbeafe;border-radius:17px;background:linear-gradient(135deg,#f8fbff,#f0fdf4)}.initial-parent-card h3{display:flex;align-items:center;gap:8px;margin:0 0 12px;color:#1e40af;font-size:12px}.initial-parent-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.history-status-form{display:flex;align-items:center;gap:6px;min-width:210px}.history-status-form .pretty-select{min-width:165px}.history-status-form .mini-action{flex:0 0 auto;background:#dcfce7;color:#15803d}.new-enrollment-form{display:grid;grid-template-columns:minmax(280px,1fr) auto;align-items:end;gap:12px}.new-enrollment-form .primary-btn{margin-bottom:1px}@media(max-width:780px){.initial-parent-fields{grid-template-columns:1fr 1fr}.new-enrollment-form{grid-template-columns:1fr}}@media(max-width:520px){.initial-parent-fields{grid-template-columns:1fr}}
.field-error-bubble{position:fixed;z-index:3200;max-width:min(330px,92vw);display:flex;align-items:flex-start;gap:7px;padding:10px 12px;border:1px solid #fda4af;border-radius:14px;background:linear-gradient(135deg,#fff1f2,#ffe4e6);color:#9f1239;font-size:10.6px;font-weight:800;line-height:1.85;text-align:right;box-shadow:0 16px 34px rgba(190,18,60,.2);animation:field-error-in .18s ease-out}
.field-error-bubble>i{margin-top:2px;color:#e11d48;font-size:12.5px}
.field-error-bubble::after{content:'';position:absolute;right:20px;width:11px;height:11px;background:#fff1f2;border-top:1px solid #fda4af;border-right:1px solid #fda4af;border-radius:2px;transform:rotate(-45deg)}
.field-error-bubble:not(.above)::after{top:-6px}
.field-error-bubble.above::after{bottom:-6px;transform:rotate(135deg)}
.field-invalid,.field-invalid>input,.field-invalid>textarea,.field-invalid>select:not(.native-select-hidden),.field-invalid .pretty-select-trigger,.field-invalid>b{border-color:#fb7185!important;box-shadow:0 0 0 4px rgba(244,63,94,.12)!important}
.field-invalid.file-picker>b,.field-invalid.ticket-file-picker{background:linear-gradient(135deg,#fff1f2,#fff)!important}
@keyframes field-error-in{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}
@keyframes new-user-pulse{0%,100%{box-shadow:0 0 0 2px rgba(34,197,94,.16)}50%{box-shadow:0 0 0 6px rgba(34,197,94,.12)}}
@keyframes rise-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes pop-in{from{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:none}}
body:not(.messenger-body) .data-table tbody tr:nth-child(odd) td{background:#fff}
body:not(.messenger-body) .data-table tbody tr:nth-child(even) td{background:#eff6ff}
body:not(.messenger-body) .data-table tbody tr:hover td{background:#dbeafe}
body:not(.messenger-body) .data-table tbody tr.deleted-row td{background:#fff5f5}
body:not(.messenger-body) .data-table tbody tr.deleted-row:hover td{background:#fee2e2}
body:not(.messenger-body) .data-table tbody tr.admin-deleted-message td{background:#fecaca;color:#7f1d1d}
body:not(.messenger-body) .data-table tbody tr.admin-deleted-message:hover td{background:#fca5a5}
body:not(.messenger-body) .data-table tbody tr.admin-deleted-message td>small{color:#991b1b}
body:not(.messenger-body) .data-table tbody tr.admin-alert-event td{background:#fee2e2;color:#7f1d1d}
body:not(.messenger-body) .data-table tbody tr.admin-alert-event:hover td{background:#fecaca}
body:not(.messenger-body) .data-table tbody tr.admin-alert-event td>small{color:#991b1b}
.academic-year{
    display:inline-flex;
    flex-direction:row;
    align-items:baseline;
    gap:0;
    direction:rtl;
    unicode-bidi:isolate;
    white-space:nowrap;
    font-style:normal;
    font-weight:inherit;
}
.academic-year .ay-num{
    display:inline-block;
    direction:ltr;
    unicode-bidi:isolate;
    font-weight:inherit;
    font-style:normal;
}
.academic-year .ay-sep{
    display:inline-block;
    padding:0 .1em;
    font-style:normal;
    font-weight:inherit;
    opacity:.85;
}
.identity-badge.identity-badge-lg,.profile-summary .identity-badge{appearance:none;-webkit-appearance:none;display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin:12px 0 0;padding:12px 14px;border:0;border-radius:16px;background:linear-gradient(135deg,#eff6ff,#e0e7ff);color:#1d4ed8;font:inherit;cursor:pointer;box-shadow:0 8px 18px rgba(37,99,235,.08);transition:transform .18s,box-shadow .18s}
.identity-badge.identity-badge-lg:hover{transform:translateY(-2px);box-shadow:0 12px 22px rgba(37,99,235,.14)}
.identity-badge.identity-badge-lg small{font-size:9px;font-weight:800;color:#64748b}
.identity-badge.identity-badge-lg strong{font-size:15px;letter-spacing:.3px;direction:ltr}
.identity-badge.identity-badge-lg i{margin-right:auto;color:#2563eb}
.account-state-chip{display:inline-flex;margin-top:8px;padding:4px 10px;border-radius:99px;font-size:9.5px;font-weight:800}
.account-state-chip.success{background:#dcfce7;color:#15803d}
.account-state-chip.warning{background:#ffedd5;color:#c2410c}
.account-state-chip.danger{background:#fee2e2;color:#b91c1c}
.profile-mini-facts{display:grid;gap:7px;margin-top:14px;text-align:right}
.profile-mini-facts>div{padding:8px 10px;border-radius:12px;background:#f8fbff;border:1px solid #e2e8f0}
.profile-mini-facts small{display:block;color:var(--muted);font-size:8.5px}
.profile-mini-facts b{display:block;margin-top:3px;font-size:10.5px}
.profile-mini-facts em{font-style:normal;color:#64748b;font-weight:600}
.profile-side-actions{display:flex;flex-direction:column;gap:14px;margin-top:18px}
.profile-side-actions .primary-btn,.profile-side-pair .primary-btn{width:100%;justify-content:center}
.profile-side-pair{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.profile-summary form{margin-top:0}
.serial-display dd{display:flex;align-items:center;gap:8px}
.serial-display b{min-width:42px;padding:3px 8px;border-radius:8px;background:#fff;border:1px solid #dbeafe;font-size:11px}
.serial-display span{flex:1;font-size:13px}
.action-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}
.action-tabs button{border:1px solid #dbeafe;background:#f8fbff;color:#334155;border-radius:999px;padding:8px 11px;font-size:10px;font-weight:800;cursor:pointer;transition:transform .16s,background .16s,color .16s,box-shadow .16s}
.action-tabs button:hover{transform:translateY(-1px);background:#eff6ff}
.action-tabs button.active{background:linear-gradient(135deg,#2563eb,#4f46e5);color:#fff;border-color:transparent;box-shadow:0 8px 16px rgba(37,99,235,.22)}
.action-tab-panel{animation:pop-in .18s ease}
.status-menu{position:relative;min-width:132px}
.status-menu-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 8px;border:1px solid #bfdbfe;border-radius:10px;background:linear-gradient(135deg,#fff,#eff6ff);color:#1e3a8a;font:inherit;font-size:9.6px;font-weight:800;cursor:pointer;transition:transform .16s,box-shadow .16s}
.status-menu-trigger:hover{transform:translateY(-1px);box-shadow:0 8px 16px rgba(37,99,235,.12)}
.status-menu-trigger i{font-size:9px;color:#64748b}
.status-menu-list{position:absolute;z-index:5200;top:calc(100% + 6px);right:0;left:0;display:flex;flex-direction:column;padding:6px;border:1px solid #dbeafe;border-radius:14px;background:#fff;box-shadow:0 16px 34px rgba(15,23,42,.16);animation:pop-in .16s ease}
.status-menu-list>button{width:100%;border:0;background:transparent;text-align:right;padding:7px 8px;border-radius:10px;color:#334155;font:inherit;font-size:9.7px;font-weight:700;cursor:pointer;display:flex;align-items:center;gap:7px}
.status-menu-list>button:hover{background:#eff6ff;color:#1d4ed8}
.status-menu-list>button.selected{background:linear-gradient(135deg,#dbeafe,#e0e7ff);color:#1d4ed8}
.status-reason-note{display:block;margin-top:6px;color:#9a3412;font-size:10px;font-weight:700;line-height:1.5;max-width:220px}
.status-readonly{display:flex;flex-direction:column;align-items:flex-start;gap:4px}
.class-placement-card{border:1px solid #dbeafe;background:linear-gradient(180deg,#fff,#f8fbff);transition:transform .2s,box-shadow .2s;animation:rise-in .35s ease both}
.class-placement-card:hover{transform:translateY(-5px);box-shadow:0 16px 32px rgba(37,99,235,.12)}
.class-placement-grid>.class-placement-card:nth-child(4n+1){background:linear-gradient(180deg,#f8fbff,#eef6ff);border-color:#bfdbfe}
.class-placement-grid>.class-placement-card:nth-child(4n+2){background:linear-gradient(180deg,#f8fffb,#ecfdf5);border-color:#bbf7d0}
.class-placement-grid>.class-placement-card:nth-child(4n+3){background:linear-gradient(180deg,#fffdf8,#fff7ed);border-color:#fed7aa}
.class-placement-grid>.class-placement-card:nth-child(4n){background:linear-gradient(180deg,#faf8ff,#f5f3ff);border-color:#ddd6fe}
.class-placement-grid>.class-placement-card:nth-child(4n+2) .class-card-icon{background:linear-gradient(135deg,#dcfce7,#bbf7d0);color:#15803d}
.class-placement-grid>.class-placement-card:nth-child(4n+3) .class-card-icon{background:linear-gradient(135deg,#ffedd5,#fed7aa);color:#c2410c}
.class-placement-grid>.class-placement-card:nth-child(4n) .class-card-icon{background:linear-gradient(135deg,#ede9fe,#ddd6fe);color:#6d28d9}
.class-placement-card[style*="--stage-index:1"]{background:linear-gradient(180deg,#f8fbff,#eef6ff);border-color:#bfdbfe}
.class-placement-card[style*="--stage-index:2"]{background:linear-gradient(180deg,#f8fffb,#ecfdf5);border-color:#bbf7d0}
.class-placement-card[style*="--stage-index:3"]{background:linear-gradient(180deg,#fffdf8,#fff7ed);border-color:#fed7aa}
.class-placement-card[style*="--stage-index:4"]{background:linear-gradient(180deg,#faf8ff,#f5f3ff);border-color:#ddd6fe}
.class-placement-card:nth-child(1){animation-delay:.04s}.class-placement-card:nth-child(2){animation-delay:.08s}.class-placement-card:nth-child(3){animation-delay:.12s}.class-placement-card:nth-child(4){animation-delay:.16s}.class-placement-card:nth-child(5){animation-delay:.2s}.class-placement-card:nth-child(6){animation-delay:.24s}
.class-roster>a{background:rgba(255,255,255,.72);transition:transform .16s,background .16s}
.class-roster>a:hover{transform:translateX(-3px);background:#fff}
.single-user-action-dialog{width:min(720px,calc(100% - 28px))}
.bulk-password-dialog{width:min(820px,calc(100% - 28px))}
.bulk-password-card>.bulk-password-header{
  display:flex;align-items:center;gap:14px;padding:18px 22px;
  border-bottom:1px solid #e8eef7;
  background:
    radial-gradient(420px 120px at 100% 0%,rgba(37,99,235,.12),transparent 70%),
    linear-gradient(135deg,#ffffff 0%,#f7faff 55%,#fff8f1 100%);
}
.bulk-password-hero-icon{
  width:48px;height:48px;border-radius:16px;flex:0 0 auto;
  display:grid;place-items:center;font-size:18px;color:#fff;
  background:linear-gradient(145deg,#2563eb,#1d4ed8 55%,#ea580c);
  box-shadow:0 10px 24px rgba(37,99,235,.28);
}
.bulk-password-header h2{margin:0;font-size:16px;letter-spacing:-.01em}
.bulk-password-header p{margin:4px 0 0;font-size:11px;color:var(--muted);line-height:1.6}
.bulk-password-body{
  display:flex;flex-direction:column;gap:16px;padding:18px 22px 8px;
  max-height:min(70vh,720px);overflow:auto;
}
.bp-section{display:flex;flex-direction:column;gap:10px}
.bp-section-label{
  display:flex;align-items:center;gap:8px;font-size:11px;font-weight:800;color:#334155;
}
.bp-section-label i{
  width:22px;height:22px;border-radius:8px;display:grid;place-items:center;
  background:#eff6ff;color:#2563eb;font-size:10px;
}
.bulk-password-modes{
  display:grid;grid-template-columns:1fr 1fr;gap:10px;
}
.bulk-password-mode{position:relative;margin:0;cursor:pointer;min-width:0}
.bulk-password-mode>input{position:absolute;opacity:0;pointer-events:none}
.bulk-password-mode>span{
  display:flex;align-items:center;gap:12px;min-height:68px;padding:12px 14px;
  border:1px solid #dbe4f0;border-radius:16px;
  background:linear-gradient(180deg,#fff,#f8fafc);
  transition:border-color .18s,box-shadow .18s,background .18s,transform .18s;
}
.bulk-password-mode>span i{
  width:38px;height:38px;border-radius:12px;flex:0 0 auto;
  display:grid;place-items:center;background:#eff6ff;color:#2563eb;font-size:15px;
}
.bulk-password-mode>span em{display:flex;flex-direction:column;gap:2px;min-width:0;font-style:normal}
.bulk-password-mode>span strong{font-size:12.5px;color:#0f172a}
.bulk-password-mode>span small{font-size:10px;color:var(--muted);line-height:1.45}
.bulk-password-mode>input:checked+span{
  border-color:#93c5fd;
  background:linear-gradient(135deg,#eff6ff,#f8fbff);
  box-shadow:0 0 0 3px rgba(37,99,235,.1),0 8px 20px rgba(37,99,235,.08);
}
.bulk-password-mode:nth-child(2)>span i{background:#fff7ed;color:#ea580c}
.bulk-password-mode:nth-child(2)>input:checked+span{
  border-color:#fdba74;
  background:linear-gradient(135deg,#fff7ed,#fffbf5);
  box-shadow:0 0 0 3px rgba(234,88,12,.1),0 8px 20px rgba(234,88,12,.08);
}
.bp-filters-row,.bp-password-row,.bp-options-row{
  display:grid;grid-template-columns:1fr 1fr;gap:12px;
}
.bp-field{display:flex;flex-direction:column;gap:6px;min-width:0;margin:0}
.bp-field>span{font-size:10.5px;font-weight:700;color:#475569}
.bp-field>span em{font-style:normal;font-weight:600;color:#94a3b8}
.bp-field .pretty-select,.bp-field select,.bp-field input{width:100%}
.bp-password-wrap{
  position:relative!important;
  display:block;
  width:100%;
  isolation:isolate;
}
.bp-password-wrap>input{
  width:100%!important;
  padding-left:46px!important;
  box-sizing:border-box;
}
.bp-password-wrap>.password-toggle{
  position:absolute!important;
  left:8px!important;
  right:auto!important;
  top:50%!important;
  bottom:auto!important;
  transform:translateY(-50%)!important;
  margin:0!important;
  z-index:3;
  width:34px;
  height:34px;
}
.bulk-password-orgs{
  padding:12px;border:1px solid #e2e8f0;border-radius:18px;
  background:linear-gradient(180deg,#fbfdff,#f8fafc);
}
.bulk-password-orgs-head{
  display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;
  font-size:11px;font-weight:800;color:#334155;
}
.bp-ghost-btn{
  display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid #dbeafe;
  border-radius:999px;background:#eff6ff;color:#1d4ed8;font-size:10px;font-weight:800;
  cursor:pointer;transition:.16s;font-family:inherit;
}
.bp-ghost-btn:hover{background:#dbeafe;transform:translateY(-1px)}
.bulk-password-org-grid{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;
}
.bulk-password-org-chip{margin:0;cursor:pointer;min-width:0}
.bulk-password-org-chip>input{position:absolute;opacity:0;pointer-events:none}
.bulk-password-org-chip>span{
  display:flex;align-items:center;justify-content:center;gap:7px;min-height:44px;
  padding:10px 8px;border:1px solid #dbe4f0;border-radius:13px;background:#fff;
  font-size:11px;font-weight:700;color:#334155;text-align:center;line-height:1.35;
  transition:border-color .15s,background .15s,color .15s,box-shadow .15s,transform .15s;
}
.bulk-password-org-chip>span i{font-size:11px;color:#64748b}
.bulk-password-org-chip>input:checked+span{
  border-color:#86efac;background:linear-gradient(180deg,#f0fdf4,#ecfdf5);color:#166534;
  box-shadow:inset 0 0 0 1px #86efac,0 6px 14px rgba(22,163,74,.1);
}
.bulk-password-org-chip>input:checked+span i{color:#16a34a}
.bulk-password-org-chip[hidden]{display:none!important}
.bp-option-card{position:relative;margin:0;cursor:pointer;min-width:0}
.bp-option-card>input{position:absolute;opacity:0;pointer-events:none}
.bp-option-ui{
  display:flex;align-items:center;gap:12px;min-height:68px;padding:12px 14px;
  border:1px solid #dbe4f0;border-radius:16px;background:#fff;
  transition:border-color .18s,background .18s,box-shadow .18s;
}
.bp-option-ui>i{
  width:36px;height:36px;border-radius:12px;flex:0 0 auto;
  display:grid;place-items:center;background:#f1f5f9;color:#475569;font-size:14px;
}
.bp-option-ui>em{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0;font-style:normal}
.bp-option-ui strong{font-size:12px;color:#0f172a}
.bp-option-ui small{font-size:10px;color:var(--muted);line-height:1.4}
.bp-switch{
  position:relative;width:44px;height:24px;border-radius:999px;flex:0 0 auto;
  background:#cbd5e1;transition:.2s;
}
.bp-switch:before{
  content:"";position:absolute;top:3px;right:3px;width:18px;height:18px;border-radius:50%;
  background:#fff;box-shadow:0 2px 6px rgba(15,23,42,.18);transition:.2s;
}
.bp-option-card>input:checked+.bp-option-ui{
  border-color:#86efac;background:linear-gradient(135deg,#f0fdf4,#f8fffb);
  box-shadow:0 0 0 3px rgba(22,163,74,.08);
}
.bp-option-card>input:checked+.bp-option-ui>i{background:#dcfce7;color:#16a34a}
.bp-option-card>input:checked+.bp-option-ui .bp-switch{background:#22c55e}
.bp-option-card>input:checked+.bp-option-ui .bp-switch:before{right:23px}
.bulk-password-parents>input:checked+.bp-option-ui{
  border-color:#93c5fd;background:linear-gradient(135deg,#eff6ff,#f8fbff);
  box-shadow:0 0 0 3px rgba(37,99,235,.08);
}
.bulk-password-parents>input:checked+.bp-option-ui>i{background:#dbeafe;color:#2563eb}
.bulk-password-parents>input:checked+.bp-option-ui .bp-switch{background:#2563eb}
.bulk-password-stats{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;
  padding:4px;
}
.bp-stat{
  display:flex;align-items:center;gap:12px;padding:14px 14px;border-radius:16px;
  background:linear-gradient(145deg,#0f172a,#1e293b);color:#fff;
  box-shadow:0 10px 24px rgba(15,23,42,.16);
}
.bp-stat>i{
  width:36px;height:36px;border-radius:12px;flex:0 0 auto;
  display:grid;place-items:center;background:rgba(255,255,255,.1);color:#93c5fd;
}
.bp-stat small{display:block;font-size:9.5px;opacity:.7;margin-bottom:2px}
.bp-stat strong{font-size:20px;letter-spacing:-.03em;line-height:1}
.bp-stat-total{background:linear-gradient(145deg,#1d4ed8,#2563eb 55%,#ea580c)}
.bp-stat-total>i{background:rgba(255,255,255,.16);color:#fff}
.bulk-password-selected-note{
  display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:14px;
  background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;font-size:11px;line-height:1.6;
}
.bulk-password-selected-note i{margin-top:2px;color:#ea580c}
.bp-warn{
  display:flex;align-items:flex-start;gap:8px;margin:0;padding:11px 12px;border-radius:12px;
  background:#fffbeb;border:1px solid #fde68a;color:#92400e;font-size:10.5px;line-height:1.6;
}
.bp-warn i{margin-top:2px;color:#d97706}
.bulk-password-footer{
  display:flex;align-items:center;justify-content:flex-end;gap:10px;
  padding:14px 22px 18px;border-top:1px solid #e8eef7;background:#fafcff;
}
.bp-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:44px;padding:0 18px;border-radius:14px;border:0;
  font-size:12.5px;font-weight:800;font-family:inherit;cursor:pointer;transition:.18s;
}
.bp-btn-ghost{
  background:#fff;border:1px solid #dbe4f0;color:#475569;
  box-shadow:0 1px 2px rgba(15,23,42,.04);
}
.bp-btn-ghost:hover{background:#f8fafc;border-color:#cbd5e1;color:#0f172a}
.bp-btn-primary{
  min-width:190px;color:#fff;
  background:linear-gradient(135deg,#2563eb,#1d4ed8 60%,#ea580c);
  box-shadow:0 12px 28px rgba(37,99,235,.28);
}
.bp-btn-primary:hover{transform:translateY(-1px);filter:brightness(1.03)}
.bp-btn-primary:disabled{
  opacity:.45;cursor:not-allowed;transform:none;filter:none;
  box-shadow:none;
}
@media(max-width:900px){
  .bulk-password-org-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:680px){
  .bulk-password-dialog{width:calc(100% - 16px)}
  .bulk-password-modes,.bp-filters-row,.bp-password-row,.bp-options-row,.bulk-password-stats,.bulk-password-org-grid{grid-template-columns:1fr}
  .bulk-password-footer{flex-direction:column-reverse}
  .bp-btn,.bp-btn-primary{width:100%;min-width:0}
  .bulk-password-body{padding:14px 14px 6px;max-height:min(68vh,640px)}
  .bulk-password-card>.bulk-password-header,.bulk-password-footer{padding-inline:14px}
}
@media(max-width:680px){.profile-side-pair{grid-template-columns:1fr}.action-tabs{flex-wrap:nowrap;overflow-x:auto}}
.users-table-panel[data-enrollment-table]{overflow:visible}
.users-table-panel[data-enrollment-table] .responsive-table{overflow:visible}
.attachment-form{
  display:flex;
  flex-wrap:nowrap;
  align-items:center;
  gap:8px;
  width:100%;
}
.attachment-form>select,
.attachment-form>[data-attachment-type],
.attachment-form>.pretty-select{
  flex:0 0 180px;
  width:180px;
  max-width:180px;
  min-height:42px;
  margin:0;
}
.attachment-form>.pretty-select .pretty-select-trigger{
  min-height:42px;
  height:42px;
}
.attachment-form>[data-attachment-other-title]:not(.hidden){
  flex:0 1 160px;
  width:auto;
  min-width:120px;
  min-height:42px;
  margin:0;
}
.attachment-form .file-picker{
  flex:1 1 auto;
  min-width:0;
  width:auto;
  max-width:none;
  display:flex;
  flex-direction:row;
  align-items:center;
  gap:8px;
  margin:0;
}
.attachment-form .file-picker>b{
  flex:0 0 auto;
  min-height:42px;
  margin:0;
  white-space:nowrap;
}
.attachment-form .file-picker small{
  flex:1 1 auto;
  min-width:0;
  margin:0;
  text-align:right;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.attachment-form .secondary-btn,
.attachment-form .attachment-submit-btn{
  flex:0 0 auto;
  min-height:42px!important;
  height:42px;
  padding:0 12px!important;
  font-size:10px!important;
  white-space:nowrap;
  margin:0;
}
.phone-link{direction:ltr;display:inline-flex;align-items:center;justify-content:center;padding:3px 9px;border:1px solid #bfdbfe;border-radius:999px;background:#eff6ff;color:#2563eb;font-weight:700}
.identity-badge.identity-badge-lg.clicked{transform:scale(.96);box-shadow:0 4px 12px rgba(37,99,235,.2)}
.year-edit-inline{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.year-edit-inline input{width:120px;min-height:34px}
@media(max-width:680px){
  .attachment-form{flex-direction:column;align-items:stretch}
  .attachment-form>select,
  .attachment-form>[data-attachment-type],
  .attachment-form>.pretty-select,
  .attachment-form>[data-attachment-other-title]:not(.hidden),
  .attachment-form .file-picker,
  .attachment-form .secondary-btn,
  .attachment-form .attachment-submit-btn{
    flex:none;
    width:100%;
    max-width:none;
  }
  .attachment-form .file-picker{flex-direction:column;align-items:stretch}
  .attachment-form .file-picker small{text-align:center;white-space:normal}
}
.org-choice-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}
@media(max-width:1100px){.org-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:680px){.org-choice-grid{grid-template-columns:1fr!important}}
.restriction-choice{display:flex;flex-direction:column;gap:7px;margin-bottom:12px}
.restriction-choice>label{width:100%!important}
.pretty-toggle{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid #dbeafe;border-radius:16px;background:#f8fbff;cursor:pointer}
.pretty-toggle>input{position:absolute;opacity:0}
.pretty-toggle>span{width:46px;height:26px;border-radius:999px;background:#cbd5e1;position:relative;transition:.2s}
.pretty-toggle>span:before{content:"";position:absolute;top:3px;right:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(15,23,42,.2);transition:.2s}
.pretty-toggle>input:checked+span{background:#22c55e}
.pretty-toggle>input:checked+span:before{right:23px}
.pretty-toggle>b{font-size:12px}
.staff-history-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.staff-history-card{padding:13px;border:1px solid #dbeafe;border-radius:16px;background:linear-gradient(180deg,#fff,#f8fbff);min-width:0}
.staff-history-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}
.staff-history-card h3{margin:0;font-size:12px;line-height:1.6;overflow-wrap:anywhere}
.staff-history-roles{display:flex;flex-wrap:wrap;gap:5px;justify-content:flex-end;max-width:58%}
.staff-history-roles>span,.staff-history-card header>span{flex:0 0 auto;padding:4px 8px;border-radius:999px;background:#dbeafe;color:#1d4ed8;font-size:9px;font-weight:800;white-space:nowrap}
.staff-history-card small{display:block;margin-top:3px;color:var(--muted);font-size:9px}
.staff-peer-link{color:#1d4ed8;text-decoration:none;font-weight:700}
.staff-peer-link:hover{text-decoration:underline}
.staff-peer-link small{display:inline;margin:0;font-weight:600;color:var(--muted)}
.sh-multi{display:grid;gap:10px;padding:12px;border:1px solid #dbeafe;border-radius:18px;background:linear-gradient(180deg,#fff,#f8fbff)}
.sh-multi-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.sh-multi-head strong{font-size:12px;color:#0f172a}
.sh-multi-head small{display:block;margin-top:2px;font-size:10px;color:#64748b;font-weight:700}
.sh-multi-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;min-height:52px;align-content:start}
.sh-multi-list.is-empty{display:flex;align-items:center;justify-content:center}
.sh-multi-empty{margin:0;font-size:12px;color:#94a3b8;font-weight:700}
.sh-chip{position:relative;display:flex;align-items:center;gap:8px;min-height:46px;padding:8px 10px;border-radius:14px;border:1.5px solid #e2e8f0;background:#fff;cursor:pointer;user-select:none;transition:.18s ease}
.sh-chip input{position:absolute;opacity:0;pointer-events:none}
.sh-chip-mark{width:20px;height:20px;border-radius:7px;flex:0 0 auto;display:grid;place-items:center;border:1.5px solid #cbd5e1;background:#f8fafc;color:transparent;font-size:9px}
.sh-chip-copy{display:flex;align-items:center;gap:6px;min-width:0}
.sh-chip-copy>i{color:#94a3b8;font-size:12px}
.sh-chip-copy b{font-size:11.5px;font-weight:800;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sh-chip:hover{border-color:#93c5fd;transform:translateY(-1px)}
.sh-chip:has(input:checked){border-color:transparent;background:linear-gradient(135deg,#dbeafe,#fff);box-shadow:inset 0 0 0 1.5px #60a5fa}
.sh-chip:has(input:checked) .sh-chip-mark{border-color:transparent;background:linear-gradient(135deg,#2563eb,#0ea5e9);color:#fff}
.sh-chip:has(input:checked) .sh-chip-copy>i{color:#1d4ed8}
.status-menu-list.portal-open{position:fixed;z-index:6200}
.year-row{flex-wrap:wrap}
@media(max-width:680px){.staff-history-grid{grid-template-columns:1fr}.pretty-toggle{width:100%}}
.dialog-body .location-panel{z-index:6400}

.status-icon-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:999px;font-size:8.8px;font-weight:800;white-space:nowrap}
.status-icon-chip.success{background:#dcfce7;color:#15803d}
.status-icon-chip.warning{background:#fef3c7;color:#a16207}
.status-icon-chip.info{background:#dbeafe;color:#1d4ed8}
.status-icon-chip.muted{background:#e2e8f0;color:#475569}
.status-icon-chip.danger{background:#fee2e2;color:#be123c}

@media(max-width:680px){
  .profile-content .details-grid{grid-template-columns:1fr!important}
  .profile-content .details-grid .wide{grid-column:1/-1}
  .profile-summary{padding:14px}
  .profile-summary h2{font-size:14px}
  .profile-side-actions{gap:10px;margin-top:12px}
  .compact-details{grid-template-columns:1fr}
  .staff-history-card>header{flex-direction:column;align-items:flex-start}
  .staff-history-roles{max-width:100%;justify-content:flex-start}
  .attachment-entry{flex-direction:column;align-items:stretch}
  .attachment-entry form button{height:auto}
  .status-menu{min-width:114px}
  .status-menu-trigger{font-size:9px;padding:5px 7px}
}

@media(max-width:680px){
  .profile-grid{grid-template-columns:1fr!important}
  .profile-content .details-grid{grid-template-columns:1fr!important}
  .profile-content .details-grid .wide{grid-column:1/-1}
  .profile-side-pair{grid-template-columns:1fr!important}
  .staff-history-grid{grid-template-columns:1fr!important}
  .dialog-body .form-grid{grid-template-columns:1fr!important}
  .dialog-body .form-grid .wide{grid-column:1/-1}
}

.profile-photo-inline-form{margin-top:10px;display:grid;gap:7px;width:100%}
.profile-photo-inline-form .secondary-btn{width:100%;justify-content:center}
.profile-change-password-btn{width:100%;justify-content:center;margin-top:8px}
.profile-grid.is-profile-lock-complete{grid-template-columns:1fr!important;max-width:920px;margin:0 auto}
.profile-lock-banner{margin-bottom:10px}
.profile-lock-identity-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 14px;margin-bottom:10px}
.profile-lock-identity-bar strong{font-size:13px}
.profile-lock-identity-bar span{color:#64748b;font-size:11px;margin-inline-end:auto}
.profile-lock-edit-form{scroll-margin-top:12px}
.profile-lock-sticky-actions{
  position:sticky;bottom:0;z-index:20;
  margin:8px -4px -4px;padding:12px 8px calc(12px + env(safe-area-inset-bottom));
  background:linear-gradient(180deg,rgba(255,255,255,.72),#fff 40%);
  border-top:1px solid #e2e8f0;
}
.profile-lock-sticky-actions .primary-btn{width:100%;justify-content:center;min-height:46px;font-size:13px}
@media(max-width:680px){
  .profile-grid.is-profile-lock-complete{gap:8px!important}
  .profile-lock-edit-form.user-form{padding:12px!important;gap:10px}
  .profile-lock-identity-bar{flex-direction:column;align-items:stretch}
  .profile-lock-identity-bar span{margin-inline-end:0}
}
.profile-photo-request-preview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0}
.profile-photo-request-preview figure{margin:0;padding:8px;border:1px solid #dbeafe;border-radius:12px;background:#f8fbff;display:flex;flex-direction:column;align-items:center;gap:6px}
.profile-photo-request-preview figcaption{font-size:9px;color:#64748b;margin-bottom:6px}
.profile-photo-request-preview img{width:50px;height:50px;aspect-ratio:1/1;object-fit:cover;border-radius:10px;cursor:zoom-in;display:block}

.identity-loading-overlay{position:fixed;inset:0;z-index:9800;display:none;place-items:center;background:rgba(15,23,42,.35);backdrop-filter:blur(3px)}
.identity-loading-overlay.visible{display:grid}
.identity-loading-card{display:flex;align-items:center;gap:8px;padding:10px 13px;border-radius:12px;border:1px solid #dbeafe;background:#fff;color:#1e3a8a;font-size:10px;font-weight:800}

.image-preview-modal{position:fixed;inset:0;z-index:9900;display:none;place-items:center;background:rgba(2,6,23,.75);backdrop-filter:blur(4px);padding:14px}
.image-preview-modal.visible{display:grid}
.image-preview-modal img{max-width:min(92vw,920px);max-height:86vh;border-radius:14px;object-fit:contain;box-shadow:0 22px 70px rgba(2,6,23,.45)}

@media(max-width:680px){.profile-photo-request-preview{grid-template-columns:1fr}}

/* Profile photo cropper overlay */
.photo-crop-overlay{position:fixed;inset:0;z-index:2147483000;display:none;place-items:center;background:rgba(2,6,23,.82);backdrop-filter:blur(5px);padding:max(12px,env(safe-area-inset-top)) 14px max(12px,env(safe-area-inset-bottom))}
.photo-crop-overlay.visible{display:grid}
.photo-crop-card{background:#fff;border-radius:18px;padding:20px;width:min(94vw,540px);max-height:min(92dvh,900px);overflow:auto;display:flex;flex-direction:column;gap:14px;box-shadow:0 30px 80px rgba(2,6,23,.5)}
.photo-crop-overlay:has(.is-wide) .photo-crop-card{width:min(94vw,720px)}
.photo-crop-card header h2{font-size:12px;font-weight:800;margin:0 0 3px}
.photo-crop-card header p{font-size:9.5px;color:#64748b;margin:0}
.photo-crop-wrapper{width:100%;aspect-ratio:1/1;overflow:hidden;border-radius:12px;background:#0f172a;touch-action:none}
.photo-crop-wrapper.is-wide{aspect-ratio:16/9}
.photo-crop-wrapper img{display:block;max-width:100%}
.photo-crop-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.photo-crop-controls .primary-btn,.photo-crop-controls .secondary-btn{font-size:9.5px;padding:7px 13px}

/* file-btn (trigger without native picker UI) */
.file-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 12px;border-radius:10px;border:1.5px dashed #93c5fd;background:#eff6ff;cursor:pointer;font-size:9.5px;font-weight:700;color:#1d4ed8;width:100%;text-align:center;overflow:hidden;-webkit-tap-highlight-color:transparent}
.file-btn input[type=file]{position:absolute;inset:0;z-index:2;opacity:0;width:100%;height:100%;font-size:48px;cursor:pointer;margin:0;padding:0;border:0}
.file-btn:hover{background:#dbeafe}
@media (max-width:680px){
  .photo-crop-overlay{padding:0;align-items:stretch}
  .photo-crop-card{width:100%;max-width:none;height:100%;max-height:none;border-radius:0;padding:16px 14px calc(16px + env(safe-area-inset-bottom,0px))}
}

/* Staff-history / access-scope card actions */
.row-actions{display:flex;gap:6px;flex-wrap:wrap}

/* ?? Rich Text Editor ?????????????????????????????????????????????????????? */
.rte-wrap{border:1.5px solid var(--line);border-radius:14px;overflow:hidden;background:#fff}
.rte-field>span{font-size:12px;font-weight:700;color:#64748b}
.rte-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:2px;padding:6px 8px;background:#f8fafc;border-bottom:1px solid var(--line)}
.rte-toolbar button{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:0;border-radius:7px;background:transparent;color:#475569;cursor:pointer;font-size:11px;transition:background .12s,color .12s}
.rte-toolbar button:hover{background:#e0f2fe;color:#0369a1}
.rte-toolbar button.rte-active{background:#dbeafe;color:#1d4ed8}
.rte-sep{display:inline-block;width:1px;height:18px;background:var(--line);margin:0 4px}
.rte-body{min-height:220px;max-height:480px;overflow-y:auto;padding:14px 16px;font-size:12px;line-height:2;color:#172033;outline:none;direction:rtl;text-align:right}
.rte-body.rte-empty:before{content:attr(data-placeholder);color:#94a3b8;pointer-events:none}
.rte-body h2{font-size:16px;margin:10px 0 4px}
.rte-body h3{font-size:13px;margin:8px 0 4px}
.rte-body blockquote{border-right:3px solid #93c5fd;margin:8px 0;padding:6px 12px;background:#eff6ff;border-radius:0 8px 8px 0;color:#1e40af}
.rte-body ul,.rte-body ol{padding-right:20px;margin:6px 0}
.rte-body a{color:#2563eb;text-decoration:underline}
.rte-content,.oex-richtext{line-height:1.9;font-size:13.5px;color:#1e293b;direction:rtl;text-align:right;overflow-wrap:anywhere;word-break:break-word}
.rte-content p,.oex-richtext p{margin:0 0 .65em}
.rte-content p:last-child,.oex-richtext p:last-child{margin-bottom:0}
.rte-content h2,.oex-richtext h2{font-size:16px;margin:10px 0 6px;color:#0f172a}
.rte-content h3,.oex-richtext h3{font-size:14px;margin:8px 0 4px;color:#0f172a}
.rte-content ul,.rte-content ol,.oex-richtext ul,.oex-richtext ol{padding-right:1.35em;margin:.4em 0 .7em}
.rte-content blockquote,.oex-richtext blockquote{border-right:3px solid #93c5fd;margin:.6em 0;padding:6px 12px;background:#eff6ff;border-radius:0 8px 8px 0;color:#1e40af}
.rte-content a,.oex-richtext a{color:#2563eb;text-decoration:underline;font-weight:700;cursor:pointer;pointer-events:auto;word-break:break-all}
.rte-content a:hover,.oex-richtext a:hover{color:#1d4ed8;text-decoration-thickness:2px}
.rte-content strong,.oex-richtext strong,.rte-content b,.oex-richtext b{font-weight:800}
.oex-start-desc .rte-content{margin-top:6px;padding:12px 14px;border-radius:14px;background:linear-gradient(180deg,#fff,#f8fafc);border:1px solid #e2e8f0;max-height:220px;overflow:auto}

/* Stylish checkboxes in access scope dialog */
.stylish-radios{display:flex;gap:14px;flex-wrap:wrap;margin-top:4px}
.stylish-radios label{display:flex;align-items:center;gap:5px;font-size:10px;font-weight:600;cursor:pointer}

/* ---- Profile page responsive stability (final override) ---- */
.profile-grid{display:grid;grid-template-columns:minmax(230px,280px) minmax(0,1fr);gap:12px;align-items:start}
.profile-summary,.profile-content,.profile-content>*{min-width:0;max-width:100%}
.profile-summary,.profile-content .panel{overflow:hidden}

@media(max-width:680px){
  .page-content{overflow-x:hidden!important}
  .profile-grid{grid-template-columns:1fr!important;gap:10px!important}
  .profile-summary,.profile-content,.profile-content>*{width:100%!important;min-width:0!important;max-width:100%!important}
  .profile-side-actions,.profile-side-pair{width:100%!important}
  .profile-side-pair{grid-template-columns:1fr!important}
  .profile-side-actions form,.profile-side-actions a,.profile-side-actions button{min-width:0!important}
  /* academic history / users lists: horizontal scroll on mobile */
  .users-table-panel{overflow:hidden!important;max-width:100%;min-width:0}
  .users-table-panel .responsive-table{display:block;width:100%;max-width:100%;min-width:0;overflow-x:auto!important;overflow-y:visible;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
  .users-table-panel[data-enrollment-table] .responsive-table{border-radius:0 0 14px 14px}
  .users-table-panel .data-table{max-width:none;font-size:10px;width:max-content;table-layout:auto}
  .users-table-panel .data-table:not(.users-data-table){min-width:480px}
  .users-table-panel .users-data-table{min-width:760px;width:max-content;max-width:none;table-layout:auto}
  .users-table-panel .users-data-table.is-students{min-width:900px}
  .users-table-panel .users-data-table.is-prereg{min-width:920px}
  .users-table-panel .data-table th,.users-table-panel .data-table td{padding:8px 9px}
  .users-table-panel .data-table .col-identity,
  .users-table-panel .data-table .col-father,
  .users-table-panel .data-table .col-birth,
  .users-table-panel .data-table .col-mobile,
  .users-table-panel .data-table .col-prereg-date,
  .users-table-panel .data-table .col-phone,
  .users-table-panel .data-table .col-actions{white-space:nowrap}
  .users-table-panel .data-table .block-note{display:none}
  .users-table-panel .data-table .org-line{display:block!important}
  .users-table-panel .data-table .prereg-origin-badge,
  .users-table-panel .data-table .prereg-new-badge{display:inline-flex!important}
  .users-table-panel .row-actions{gap:3px}
  .users-table-panel .status-menu-trigger{font-size:9.7px;padding:4px 8px}
  /* other profile tables */
  .profile-content .responsive-table{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .profile-content .data-table{min-width:420px;max-width:none;font-size:10.3px}
  .profile-content .data-table th,.profile-content .data-table td{padding:8px 9px}
}

/* ---- Weekly class timetable ---- */
.tt-org-panel{display:flex;flex-direction:column;gap:16px;--org-1:#15803d;--org-2:#22c55e;--org-3:#86efac}
.tt-week-card{padding:20px}
.tt-week-field{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}
.tt-week-field>span{font-size:10.8px;color:#475569;font-weight:500}
.tt-day-chips{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.tt-day-chips label{display:block;margin:0;cursor:pointer}
.tt-day-chips input{position:absolute;opacity:0;pointer-events:none}
.tt-day-chips b{display:grid;place-items:center;min-height:46px;padding:7px 4px;border:1px solid color-mix(in srgb,var(--org-1) 28%,#fff);border-radius:14px;background:#fff;color:#1e293b;font-size:11px;font-weight:800;text-align:center;white-space:nowrap;transition:.18s;box-shadow:0 6px 14px color-mix(in srgb,var(--org-1) 10%,transparent)}
.tt-day-chips label:hover b{border-color:var(--org-2);transform:translateY(-2px)}
.tt-day-chips input:checked+b{border-color:transparent;background:linear-gradient(135deg,var(--org-1),var(--org-2));color:#fff;box-shadow:0 10px 20px color-mix(in srgb,var(--org-1) 28%,transparent)}
[data-timetable-page] .stage-tabs button,.stage-tabs button.org-themed{border-color:color-mix(in srgb,var(--org-1,#15803d) 22%,#fff);background:color-mix(in srgb,var(--org-3,#86efac) 32%,#fff)}
[data-timetable-page] .stage-tabs button:hover,.stage-tabs button.org-themed:hover{background:color-mix(in srgb,var(--org-3,#86efac) 45%,#fff)}
[data-timetable-page] .stage-tabs button.active,.stage-tabs button.org-themed.active{background:linear-gradient(135deg,var(--org-1,#15803d),var(--org-2,#22c55e));box-shadow:0 8px 18px color-mix(in srgb,var(--org-1,#15803d) 28%,transparent);color:#fff;border-color:transparent}
.tt-grade-card{display:flex;flex-direction:column;gap:0;padding:0;overflow:hidden;scroll-margin-top:18px;border:1px solid color-mix(in srgb,var(--subject-tone,var(--org-1)) 18%,#dcfce7);background:linear-gradient(160deg,color-mix(in srgb,var(--subject-tone,var(--org-1)) 6%,#fff) 0%,#fff 58%);box-shadow:0 16px 36px color-mix(in srgb,var(--org-1) 8%,transparent)}
.tt-grade-card .org-icon{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,var(--subject-tone,var(--org-1)),var(--org-2));color:#fff;box-shadow:0 10px 20px color-mix(in srgb,var(--org-1) 22%,transparent)}
.tt-grade-toggle{appearance:none;width:100%;border:0;background:transparent;color:inherit;font:inherit;display:flex;align-items:center;gap:12px;padding:16px 18px;cursor:pointer;text-align:right}
.tt-grade-card.is-open .tt-grade-toggle{border-bottom:1px solid color-mix(in srgb,var(--org-3) 55%,#fff);background:linear-gradient(180deg,color-mix(in srgb,var(--org-3) 28%,#fff),#fff)}
.tt-grade-toggle .organization-title{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}
.tt-grade-toggle .organization-title strong{font-size:15px;display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}
.tt-grade-toggle .organization-title small{font-size:10.8px;color:#64748b}
.tt-grade-toggle .field-chip{color:var(--org-1);background:color-mix(in srgb,var(--org-3) 45%,#fff)}
.tt-grade-chevron{color:#94a3b8;font-size:12px;transition:transform .22s ease}
.tt-grade-card.is-open .tt-grade-chevron{transform:rotate(180deg)}
.tt-grade-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows .28s ease}
.tt-grade-card.is-open .tt-grade-body{grid-template-rows:1fr}
.tt-grade-body-inner{min-height:0;overflow:hidden}
.tt-grade-card.is-open .tt-grade-body-inner{padding:4px 18px 18px;display:flex;flex-direction:column;gap:14px}
.tt-period-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:10px}
.tt-period-row{display:flex;align-items:center;gap:6px;padding:8px 9px;border:1px solid #e2e8f0;border-radius:14px;background:rgba(255,255,255,.92);min-width:0}
.tt-period-row.is-lesson{border-color:color-mix(in srgb,var(--org-3) 70%,#fff);background:linear-gradient(90deg,color-mix(in srgb,var(--org-3) 28%,#fff),#fff)}
.tt-period-row.is-break{border-color:#fecaca;background:linear-gradient(90deg,#fff,#fff5f5)}
.tt-period-row em{font-style:normal;font-size:10px;font-weight:800;color:var(--org-1);flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tt-period-row.is-break em{color:#b91c1c}
.tt-period-times{display:flex;align-items:center;gap:6px;flex:0 0 auto;flex-wrap:nowrap}
.tt-period-row label{margin:0;width:auto;flex:0 0 auto;flex-direction:row;align-items:center;gap:5px;white-space:nowrap}
.tt-period-row label>span{font-size:10px;font-weight:800;color:#64748b;line-height:1}
.tt-period-row [data-time-picker]{width:68px!important;min-width:64px;max-width:72px;padding:7px 4px;text-align:center;font-size:11px}
.tt-org-panel .primary-btn,.appearance-org-card .primary-btn,.grading-org-panel .primary-btn,.tt-entry-dialog .primary-btn{background:linear-gradient(135deg,var(--org-1,#15803d),var(--org-2,#22c55e));box-shadow:0 8px 20px color-mix(in srgb,var(--org-1,#15803d) 28%,transparent)}
.tt-org-panel .primary-btn:hover,.appearance-org-card .primary-btn:hover,.grading-org-panel .primary-btn:hover,.tt-entry-dialog .primary-btn:hover{box-shadow:0 12px 26px color-mix(in srgb,var(--org-1,#15803d) 36%,transparent)}
.tt-org-panel input:focus,.tt-org-panel select:focus{border-color:var(--org-3);box-shadow:0 0 0 4px color-mix(in srgb,var(--org-1) 12%,transparent)}
.tt-period-arrow{display:grid;place-items:center;color:#94a3b8}
.tt-period-row [data-remove-period]{flex:0 0 auto}
.tt-class-tabs{display:flex;flex-wrap:wrap;gap:8px;padding:4px}
.tt-class-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.tt-class-toolbar .tt-class-tabs{flex:1 1 auto;margin:0;padding:0}
.tt-print-btn-grade,.tt-print-btn-org{background:linear-gradient(135deg,var(--org-1,#1d4ed8),var(--org-2,#2563eb));color:#fff;box-shadow:0 10px 22px color-mix(in srgb,var(--org-1,#1d4ed8) 28%,transparent)}
.tt-org-print-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px}
.tt-print-btn-org{padding:9px 14px;font-size:11.5px}
.tt-class-tabs button{border:1px solid color-mix(in srgb,var(--org-3) 55%,#fff);background:#fff;color:#334155;border-radius:999px;padding:9px 16px;font-size:11.5px;font-weight:800;cursor:pointer;display:inline-flex;align-items:center;gap:7px;transition:.18s;box-shadow:0 6px 14px color-mix(in srgb,var(--org-1) 8%,transparent)}
.tt-class-tabs button:hover{transform:translateY(-1px);background:color-mix(in srgb,var(--org-3) 32%,#fff);border-color:var(--org-3)}
.tt-class-tabs button.active{border-color:transparent;background:linear-gradient(135deg,var(--org-1),var(--org-2));color:#fff;box-shadow:0 10px 22px color-mix(in srgb,var(--org-1) 28%,transparent)}
.tt-board-wrap{display:flex;flex-direction:column;gap:12px}
.tt-poster{--tt-ink:color-mix(in srgb,var(--org-1) 72%,#0f172a);--tt-muted:#64748b;--tt-accent:var(--org-2);--tt-accent-deep:var(--org-1);--tt-head:linear-gradient(125deg,var(--org-1) 0%,var(--org-2) 58%,var(--org-3) 140%);--tt-head-spot:rgba(255,255,255,.14);--tt-head-spot-2:color-mix(in srgb,var(--org-3) 35%,transparent);--tt-paper:#fffefb;--tt-paper-a:color-mix(in srgb,var(--org-3) 28%,transparent);--tt-paper-b:color-mix(in srgb,var(--org-2) 12%,transparent);--tt-line:color-mix(in srgb,var(--org-3) 70%,#fff);--tt-wash:color-mix(in srgb,var(--org-3) 32%,#fff);--tt-foot-bg:color-mix(in srgb,var(--org-3) 28%,#fff);--tt-border:var(--org-2);--tt-chip:rgba(255,255,255,.16);--tt-print-fg:var(--org-1);position:relative;overflow:hidden;border-radius:28px;border:3px solid var(--tt-border);background:#fff;box-shadow:0 24px 48px color-mix(in srgb,var(--tt-accent) 18%,transparent)}
.tt-poster[data-tt-theme="forest"]{--tt-ink:#14532d;--tt-accent:#16a34a;--tt-accent-deep:#15803d;--tt-head:linear-gradient(125deg,#15803d 0%,#22c55e 58%,#86efac 140%);--tt-head-spot-2:rgba(254,202,202,.22);--tt-paper-a:rgba(134,239,172,.22);--tt-paper-b:rgba(254,202,202,.16);--tt-line:#bbf7d0;--tt-wash:#f0fdf4;--tt-foot-bg:#f0fdf4;--tt-border:#16a34a;--tt-print-fg:#15803d}
.tt-poster[data-tt-theme="sky"]{--tt-ink:#0c4a6e;--tt-accent:#0284c7;--tt-accent-deep:#0369a1;--tt-head:linear-gradient(125deg,#0369a1 0%,#38bdf8 58%,#bae6fd 140%);--tt-head-spot-2:rgba(196,181,253,.22);--tt-paper-a:rgba(125,211,252,.28);--tt-paper-b:rgba(196,181,253,.16);--tt-line:#bae6fd;--tt-wash:#f0f9ff;--tt-foot-bg:#e0f2fe;--tt-border:#0284c7;--tt-print-fg:#0369a1}
.tt-poster[data-tt-theme="sunset"]{--tt-ink:#9a3412;--tt-accent:#ea580c;--tt-accent-deep:#c2410c;--tt-head:linear-gradient(125deg,#c2410c 0%,#fb923c 50%,#fde68a 140%);--tt-head-spot-2:rgba(252,165,165,.28);--tt-paper-a:rgba(253,186,116,.28);--tt-paper-b:rgba(252,165,165,.18);--tt-line:#fed7aa;--tt-wash:#fff7ed;--tt-foot-bg:#ffedd5;--tt-border:#ea580c;--tt-print-fg:#c2410c}
.tt-poster[data-tt-theme="candy"]{--tt-ink:#9d174d;--tt-accent:#db2777;--tt-accent-deep:#be185d;--tt-head:linear-gradient(125deg,#be185d 0%,#e879f9 50%,#f9a8d4 140%);--tt-head-spot-2:rgba(196,181,253,.24);--tt-paper-a:rgba(244,114,182,.22);--tt-paper-b:rgba(196,181,253,.2);--tt-line:#fbcfe8;--tt-wash:#fdf2f8;--tt-foot-bg:#fce7f3;--tt-border:#db2777;--tt-print-fg:#be185d}
.tt-poster[data-tt-theme="ocean"]{--tt-ink:#134e4a;--tt-accent:#0d9488;--tt-accent-deep:#0f766e;--tt-head:linear-gradient(125deg,#0f766e 0%,#2dd4bf 55%,#99f6e4 140%);--tt-head-spot-2:rgba(147,197,253,.2);--tt-paper-a:rgba(94,234,212,.24);--tt-paper-b:rgba(147,197,253,.16);--tt-line:#99f6e4;--tt-wash:#f0fdfa;--tt-foot-bg:#ccfbf1;--tt-border:#0d9488;--tt-print-fg:#0f766e}
.tt-poster[data-tt-theme="ink"]{--tt-ink:#111827;--tt-muted:#4b5563;--tt-accent:#111827;--tt-accent-deep:#000;--tt-head:linear-gradient(125deg,#111827 0%,#374151 70%,#9ca3af 140%);--tt-head-spot:rgba(255,255,255,.12);--tt-head-spot-2:rgba(255,255,255,.08);--tt-paper:#fff;--tt-paper-a:rgba(0,0,0,.04);--tt-paper-b:transparent;--tt-line:#111827;--tt-wash:#f3f4f6;--tt-foot-bg:#f3f4f6;--tt-border:#111827;--tt-print-fg:#111827}
.tt-poster-deco{position:absolute;inset:0;pointer-events:none;z-index:0;overflow:hidden}
.tt-poster-deco i{position:absolute;color:var(--tt-accent);opacity:.09;line-height:1}
.tt-poster-deco i:nth-child(1){top:8%;right:7%;font-size:92px;transform:rotate(-16deg)}
.tt-poster-deco i:nth-child(2){top:18%;left:5%;font-size:78px;transform:rotate(24deg);opacity:.08}
.tt-poster-deco i:nth-child(3){top:42%;right:12%;font-size:70px;transform:rotate(12deg)}
.tt-poster-deco i:nth-child(4){top:58%;left:8%;font-size:86px;transform:rotate(-28deg);opacity:.07}
.tt-poster-deco i:nth-child(5){bottom:10%;right:18%;font-size:80px;transform:rotate(8deg)}
.tt-poster-deco i:nth-child(6){top:6%;left:38%;font-size:64px;transform:rotate(-12deg);opacity:.06}
.tt-poster-deco i:nth-child(7){bottom:18%;left:28%;font-size:74px;transform:rotate(18deg)}
.tt-poster-deco i:nth-child(8){top:36%;left:46%;font-size:96px;transform:rotate(-8deg);opacity:.05}
.tt-poster-deco i:nth-child(9){bottom:6%;right:42%;font-size:68px;transform:rotate(32deg)}
.tt-poster-deco i:nth-child(10){top:72%;right:4%;font-size:58px;transform:rotate(-20deg);opacity:.07}
.tt-poster-ribbon{position:absolute;top:-6px;left:28px;z-index:2;color:#fff;font-size:28px;filter:drop-shadow(0 8px 10px rgba(15,23,42,.18));transform:rotate(-12deg)}
.tt-poster-head{position:relative;display:flex;align-items:flex-end;justify-content:space-between;gap:14px;padding:20px 22px 18px;color:#fff;overflow:hidden;background:var(--tt-head)}
.tt-poster-head:before,.tt-poster-head:after{content:"";position:absolute;border-radius:50%;pointer-events:none}
.tt-poster-head:before{width:170px;height:170px;right:-40px;top:-70px;background:var(--tt-head-spot)}
.tt-poster-head:after{width:120px;height:120px;left:-30px;bottom:-50px;background:var(--tt-head-spot-2)}
.tt-poster-head-main{position:relative;z-index:1;display:flex;align-items:flex-end;gap:12px;min-width:0}
.tt-poster-logo{width:56px;height:56px;border-radius:16px;display:grid;place-items:center;background:#fff;color:var(--tt-accent-deep);font-size:22px;flex:0 0 auto;overflow:hidden;box-shadow:0 10px 18px rgba(15,23,42,.12)}
.tt-poster-logo img{width:100%;height:100%;object-fit:contain;background:#fff;display:block}
.tt-poster-copy{position:relative;z-index:1;min-width:0}
.tt-poster-copy em{display:inline-flex;font-style:normal;font-size:10px;font-weight:800;background:var(--tt-chip);border-radius:999px;padding:4px 10px}
.tt-poster-copy h3{margin:8px 0 8px;font-size:24px;line-height:1.2;text-shadow:0 2px 0 rgba(15,23,42,.12)}
.tt-poster-meta{display:flex;flex-wrap:wrap;gap:6px}
.tt-poster-meta span{background:var(--tt-chip);border-radius:999px;padding:4px 10px;font-size:10.5px;font-weight:800;display:inline-flex;align-items:center;gap:6px}
.tt-poster-tools{position:relative;z-index:1;display:flex;flex-direction:column;align-items:flex-end;gap:8px;flex:0 0 auto}
.tt-theme-picks{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.tt-theme-picks>em{font-style:normal;font-size:9px;font-weight:800;opacity:.9}
.tt-theme-picks button{width:20px;height:20px;border-radius:50%;border:2px solid rgba(255,255,255,.85);background:var(--swatch,#16a34a);padding:0;cursor:pointer;box-shadow:0 4px 10px rgba(15,23,42,.16)}
.tt-theme-picks button.is-on{outline:2px solid #fff;outline-offset:2px}
.tt-theme-picks button[data-tt-theme="org"]{background:conic-gradient(from 180deg,var(--org-1),var(--org-2),var(--org-3),var(--org-1))}
.tt-theme-picks button[data-tt-theme="ink"]{background:repeating-linear-gradient(135deg,#111 0 5px,#fff 5px 10px)}
.tt-print-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}
.tt-print-btn{border:0;border-radius:999px;padding:9px 13px;background:#fff;color:var(--tt-print-fg);font:inherit;font-size:11px;font-weight:800;cursor:pointer;display:inline-flex;align-items:center;gap:7px;box-shadow:0 10px 22px rgba(15,23,42,.12)}
.tt-print-btn:hover{transform:translateY(-1px)}
.tt-print-btn.ghost{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.75);box-shadow:none}
.tt-board-scroll{position:relative;z-index:1;overflow:auto;background:radial-gradient(circle at top right,var(--tt-paper-a),transparent 36%),radial-gradient(circle at bottom left,var(--tt-paper-b),transparent 32%),var(--tt-paper)}
.tt-board{position:relative;z-index:1;display:grid;min-width:760px;grid-template-columns:112px repeat(var(--periods),minmax(136px,1fr));gap:9px;padding:14px;align-items:stretch}
.tt-corner,.tt-hour{position:sticky;top:0;z-index:2;min-height:76px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:10px 8px;border-radius:20px;text-align:center}
.tt-corner{position:sticky;right:0;z-index:3;background:var(--tt-head);color:#fff;border:0;box-shadow:0 12px 24px color-mix(in srgb,var(--tt-accent) 22%,transparent)}
.tt-corner i{font-size:13px;opacity:.9}
.tt-corner span{font-size:13px;font-weight:800}
.tt-hour{background:#fff;border:2px solid var(--tt-line);box-shadow:0 8px 18px color-mix(in srgb,var(--tt-accent) 10%,transparent)}
.tt-hour.is-lesson{background:linear-gradient(180deg,var(--tt-wash),#fff)}
.tt-hour b{font-size:13.5px;color:var(--tt-ink)}
.tt-hour small{display:inline-flex;align-items:center;gap:5px;font-size:10px;color:var(--tt-accent-deep);font-weight:800;background:var(--tt-wash);border:1px solid var(--tt-line);border-radius:999px;padding:4px 9px;white-space:nowrap}
.tt-hour small i{font-size:9px}
.tt-day-label{position:sticky;right:0;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:14px 8px;border-radius:20px;text-align:center;background:color-mix(in srgb,var(--tt-accent-deep) 32%,#fff);border:2px solid color-mix(in srgb,var(--tt-accent-deep) 62%,#fff);box-shadow:0 8px 16px color-mix(in srgb,var(--tt-accent-deep) 18%,transparent)}
.tt-day-label i,.tt-day-label b{color:var(--tt-accent-deep);font-weight:800}
.tt-day-label i{font-size:14px}
.tt-day-label b{font-size:14px}
.tt-cell{appearance:none;width:100%;height:100%;border:2px dashed var(--tt-line);border-radius:20px;background:repeating-linear-gradient(0deg,transparent,transparent 12px,color-mix(in srgb,var(--tt-accent) 8%,transparent) 13px),color-mix(in srgb,#fff 82%,transparent);min-height:112px;padding:12px 10px;display:grid;place-items:center;cursor:pointer;transition:.2s;text-align:center;color:inherit;font:inherit}
.tt-cell:focus-visible{outline:2px solid color-mix(in srgb,var(--tt-accent) 55%,#fff);outline-offset:2px}
.tt-cell.empty:hover{background:var(--tt-wash);border-style:solid;box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--tt-accent) 18%,transparent)}
.tt-plus{display:flex;flex-direction:column;align-items:center;gap:7px;color:var(--tt-accent)}
.tt-plus i{width:40px;height:40px;border-radius:14px;display:grid;place-items:center;background:#fff;border:1.5px dashed color-mix(in srgb,var(--tt-accent) 45%,#fff);font-size:15px;box-shadow:0 8px 16px color-mix(in srgb,var(--tt-accent) 10%,transparent);transition:.18s}
.tt-plus em{font-style:normal;font-size:10px;font-weight:800;color:var(--tt-muted)}
.tt-cell.empty:hover .tt-plus i{transform:scale(1.08) rotate(8deg);background:var(--tt-head);color:#fff;border-color:transparent}
.tt-cell.empty:hover .tt-plus em{color:var(--tt-accent)}
.tt-cell.filled{background:linear-gradient(180deg,color-mix(in srgb,var(--lesson-tone,var(--tt-accent)) 22%,#fff),#fff 58%);border:2px solid color-mix(in srgb,var(--lesson-tone,var(--tt-accent)) 38%,#fff);box-shadow:0 12px 24px color-mix(in srgb,var(--lesson-tone,var(--tt-accent)) 16%,transparent);position:relative;overflow:hidden}
.tt-cell.filled:before{content:"";position:absolute;top:8px;left:8px;width:10px;height:10px;border-radius:50%;background:var(--lesson-tone,var(--tt-accent));box-shadow:0 0 0 3px color-mix(in srgb,var(--lesson-tone,var(--tt-accent)) 18%,#fff)}
.tt-cell.filled:hover{transform:translateY(-3px) rotate(-.4deg);box-shadow:0 18px 32px color-mix(in srgb,var(--lesson-tone,var(--tt-accent)) 22%,transparent)}
.tt-cell.is-readonly{cursor:default}
.tt-cell.is-readonly:hover,.tt-cell.empty.is-readonly:hover,.tt-cell.filled.is-readonly:hover{transform:none;box-shadow:none;background:inherit}
.tt-lesson{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-width:0;width:100%;height:100%;padding:2px}
.tt-lesson strong{font-size:14px;line-height:1.6;color:var(--tt-ink);word-break:break-word}
.tt-lesson small{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:800;color:color-mix(in srgb,var(--lesson-tone,var(--tt-accent)) 78%,var(--tt-ink));background:#fff;border:1px solid color-mix(in srgb,var(--lesson-tone,var(--tt-accent)) 18%,#fff);border-radius:999px;padding:5px 10px;max-width:100%;box-shadow:0 6px 12px rgba(15,23,42,.04)}
.tt-poster[data-tt-theme="ink"] .tt-day-label{background:#f3f4f6;border-color:#111827;box-shadow:none}
.tt-poster[data-tt-theme="ink"] .tt-day-label i,.tt-poster[data-tt-theme="ink"] .tt-day-label b{color:#111827}
.tt-poster[data-tt-theme="ink"] .tt-cell.filled{background:linear-gradient(180deg,#e5e7eb,#fff 55%)!important;border-color:#111827!important;box-shadow:none}
.tt-poster[data-tt-theme="ink"] .tt-cell.filled:before{background:#111827!important;box-shadow:none}
.tt-poster[data-tt-theme="ink"] .tt-lesson strong,.tt-poster[data-tt-theme="ink"] .tt-lesson small{color:#111827}
.tt-poster[data-tt-theme="ink"] .tt-lesson small{border-color:#d1d5db}
.tt-entry-dialog{width:min(560px,calc(100% - 28px))}
.tt-entry-dialog .pretty-select-trigger{border-color:color-mix(in srgb,var(--org-3,#86efac) 70%,#fff);background:#fff;min-height:48px;border-radius:16px;padding:12px 14px;font-weight:800}
.tt-entry-dialog .pretty-select.open .pretty-select-trigger,.tt-entry-dialog .pretty-select-trigger:hover{border-color:var(--org-3,#86efac);box-shadow:0 0 0 4px color-mix(in srgb,var(--org-1,#15803d) 12%,transparent)}
.tt-entry-dialog .pretty-select-menu.portal-open{z-index:5000;max-height:320px;padding:10px;border:1px solid color-mix(in srgb,var(--org-3,#86efac) 70%,#fff);border-radius:20px;background:#fff;box-shadow:0 24px 50px color-mix(in srgb,var(--org-1,#15803d) 18%,transparent)}
.tt-entry-dialog .pretty-select-menu.portal-open>div{display:flex;flex-direction:column;gap:8px}
.tt-entry-dialog .pretty-select-search{border-color:color-mix(in srgb,var(--org-3,#86efac) 55%,#fff);background:color-mix(in srgb,var(--org-3,#86efac) 28%,#fff);margin:0 0 10px;min-height:40px!important;border-radius:14px}
.tt-entry-dialog .pretty-select-option{min-height:52px;padding:10px 12px;border:1px solid #e2e8f0;border-radius:14px;background:#fff;color:color-mix(in srgb,var(--org-1,#15803d) 72%,#0f172a);font-size:12px;font-weight:800;text-align:center;justify-content:center;gap:10px}
.tt-entry-dialog .pretty-select-option>i{width:28px;height:28px;border-radius:10px;background:color-mix(in srgb,var(--org-3,#86efac) 32%,#fff);color:var(--org-2,#16a34a);display:grid;place-items:center;font-size:12px}
.tt-entry-dialog .pretty-select-option:hover{border-color:var(--org-3,#86efac);background:color-mix(in srgb,var(--org-3,#86efac) 28%,#fff);transform:translateY(-1px)}
.tt-entry-dialog .pretty-select-option.selected{border-color:var(--org-3,#86efac);background:linear-gradient(135deg,color-mix(in srgb,var(--org-3,#86efac) 28%,#fff),color-mix(in srgb,var(--org-3,#86efac) 45%,#fff));color:var(--org-1,#15803d);box-shadow:inset 0 0 0 1px #fff}
.tt-grade-fabs{position:fixed;left:18px;bottom:20px;z-index:80;display:flex;flex-direction:column;align-items:flex-start;gap:8px;max-width:min(260px,calc(100vw - 36px))}
.tt-grade-fab-toggle{appearance:none;border:0;border-radius:999px;padding:10px 14px;display:inline-flex;align-items:center;gap:8px;cursor:pointer;background:linear-gradient(135deg,var(--org-1,#15803d),var(--org-2,#16a34a));color:#fff;font:inherit;font-size:12px;font-weight:850;box-shadow:0 12px 30px color-mix(in srgb,var(--org-1,#15803d) 28%,transparent);white-space:nowrap}
.tt-grade-fab-toggle:hover{transform:translateY(-1px);box-shadow:0 16px 34px color-mix(in srgb,var(--org-1,#15803d) 36%,transparent)}
.tt-grade-fab-chevron{font-size:10px;opacity:.9;transition:transform .22s ease}
.tt-grade-fabs:not(.is-collapsed) .tt-grade-fab-chevron{transform:rotate(180deg)}
.tt-grade-fab-panel{display:flex;flex-direction:column;gap:8px;width:100%;max-height:min(70vh,520px);overflow:auto;padding:0 1px}
.tt-grade-fabs.is-collapsed .tt-grade-fab-panel{display:none}
.tt-grade-fab-group{display:flex;flex-direction:column;gap:8px}
.tt-grade-fab{appearance:none;border:0;border-radius:999px;padding:10px 14px;display:inline-flex;align-items:center;gap:7px;cursor:pointer;background:linear-gradient(135deg,var(--org-1,#15803d),var(--org-2,#16a34a));color:#fff;font:inherit;font-size:11px;font-weight:800;box-shadow:0 12px 30px color-mix(in srgb,var(--org-1,#15803d) 28%,transparent);white-space:nowrap}
.tt-grade-fab:hover{transform:translateY(-1px);box-shadow:0 16px 34px color-mix(in srgb,var(--org-1,#15803d) 36%,transparent)}
@media(max-width:1100px){
    .tt-period-list{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:900px){
    .tt-day-chips{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:680px){
    .tt-day-chips{grid-template-columns:repeat(3,minmax(0,1fr))}
    .tt-period-list{grid-template-columns:1fr}
    .tt-period-row{flex-wrap:wrap}
    .tt-period-row em{flex:1 1 auto}
    body:not(.tt-printing) .tt-board{min-width:680px;grid-template-columns:92px repeat(var(--periods),minmax(128px,1fr))}
    body:not(.tt-printing) .tt-cell,body:not(.tt-printing) .tt-hour,body:not(.tt-printing) .tt-day-label{min-height:96px}
    .tt-plus i{width:36px;height:36px;border-radius:12px}
    .tt-lesson strong{font-size:12px}
    .tt-hour small{font-size:9px;padding:3px 7px}
    .tt-grade-fabs{left:12px;bottom:14px}
    .tt-poster-head{flex-wrap:wrap;align-items:flex-start}
    .tt-poster-copy h3{font-size:20px}
    .tt-poster-tools{width:100%;align-items:stretch}
    .tt-theme-picks,.tt-print-actions{justify-content:flex-start}
    .tt-print-btn{justify-content:center;flex:1}
    .tt-poster-ribbon{left:16px}
}

@media print{
    html,body{background:#fff!important}
    *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
    body.tt-printing .ambient,
    body.tt-printing .sidebar,
    body.tt-printing .messenger-float-btn,
    body.tt-printing .sidebar-backdrop,
    body.tt-printing .impersonation-bar,
    body.tt-printing .topbar,
    body.tt-printing .mobile-nav,
    body.tt-printing .settings-menu,
    body.tt-printing .stage-tabs-wrap,
    body.tt-printing .tt-week-card,
    body.tt-printing .tt-period-form,
    body.tt-printing .tt-class-tabs,
    body.tt-printing .tt-class-toolbar,
    body.tt-printing .tt-grade-fabs,
    body.tt-printing .tt-print-actions,
    body.tt-printing .tt-org-print-actions,
    body.tt-printing .tt-poster-ribbon,
    body.tt-printing .tt-grade-toggle,
    body.tt-printing .learner-child-switch,
    body.tt-printing .learner-page-hero,
    body.tt-printing .alert,
    body.tt-printing dialog,
    body.tt-printing .confirm-host,
    body.tt-printing .toast-host,
    body.tt-printing [data-timetable-page]>.settings-card{display:none!important;height:0!important;margin:0!important;padding:0!important;overflow:hidden!important}
    body.tt-printing .app-layout,
    body.tt-printing .settings-layout,
    body.tt-printing .main-column,
    body.tt-printing .page-content,
    body.tt-printing [data-timetable-page],
    body.tt-printing .settings-page{
        display:block!important;
        width:100%!important;
        max-width:none!important;
        padding:0!important;
        margin:0!important;
        gap:0!important;
        background:#fff!important;
        box-shadow:none!important;
        min-height:0!important;
        height:auto!important;
        overflow:visible!important;
        grid-template-columns:none!important;
    }
    body.tt-printing .tt-org-panel{display:none!important}
    body.tt-printing .tt-org-panel:has(.is-print-target){display:block!important}
    body.tt-printing .tt-grade-card{display:none!important;border:0!important;background:#fff!important;box-shadow:none!important}
    body.tt-printing .tt-grade-card:has(.is-print-target){display:block!important}
    body.tt-printing .tt-grade-card:has(.is-print-target) .tt-grade-body{display:block!important;grid-template-rows:none!important}
    body.tt-printing .tt-grade-card:has(.is-print-target) .tt-grade-body-inner{display:block!important;overflow:visible!important;padding:0!important;min-height:0!important}
    body.tt-printing [data-print-sheet]{display:none!important}
    body.tt-printing [data-print-sheet].is-print-target{
        display:block!important;
        width:100%!important;
        max-width:100%!important;
        margin:0!important;
        padding:0!important;
        page-break-after:auto;
        break-after:auto;
        page-break-inside:avoid;
        break-inside:avoid;
        box-sizing:border-box!important;
    }
    body.tt-printing.tt-printing-multi [data-print-sheet].is-print-target{
        page-break-after:always;
        break-after:page;
        width:277mm!important;
        max-width:277mm!important;
        height:188mm!important;
        max-height:188mm!important;
        overflow:hidden!important;
        box-sizing:border-box!important;
    }
    body.tt-printing.tt-printing-multi [data-print-sheet].is-print-target.is-print-last{
        page-break-after:auto;
        break-after:auto;
    }
    /* ???????: ?????? ???? ??? html/body ???? ???? ???? ??? ?????? ? ??? ????? ?? ?????? ??? */
    html:has(body.tt-printing:not(.tt-printing-multi)),
    body.tt-printing:not(.tt-printing-multi){
        width:auto!important;
        height:auto!important;
        max-height:none!important;
        min-height:0!important;
        overflow:hidden!important;
        margin:0!important;
        padding:0!important;
    }
    body.tt-printing:not(.tt-printing-multi) .app-layout,
    body.tt-printing:not(.tt-printing-multi) .settings-layout,
    body.tt-printing:not(.tt-printing-multi) .main-column,
    body.tt-printing:not(.tt-printing-multi) .page-content,
    body.tt-printing:not(.tt-printing-multi) [data-timetable-page],
    body.tt-printing:not(.tt-printing-multi) .settings-page{
        width:auto!important;
        max-width:none!important;
        height:auto!important;
        max-height:none!important;
        min-height:0!important;
        overflow:visible!important;
        position:static!important;
    }
    body.tt-printing:not(.tt-printing-multi) [data-print-sheet].is-print-target{
        position:relative!important;
        inset:auto!important;
        width:277mm!important;
        max-width:277mm!important;
        height:188mm!important;
        max-height:188mm!important;
        overflow:hidden!important;
        page-break-after:avoid!important;
        break-after:avoid-page!important;
    }
    body.tt-printing .tt-poster{
        width:277mm;max-width:277mm;height:188mm;max-height:188mm;
        box-shadow:none;border-radius:10px;border-width:2px;
        display:flex;flex-direction:column;overflow:hidden;
        break-inside:avoid;page-break-inside:avoid;
        margin:0!important;
        box-sizing:border-box!important;
    }
    body.tt-printing:not(.tt-printing-multi) .tt-poster{
        width:100%!important;max-width:100%!important;height:100%!important;max-height:100%!important;
    }
    body.tt-printing .tt-poster-head{padding:10px 14px 9px;flex:0 0 auto;align-items:center}
    body.tt-printing .tt-poster-logo{width:48px;height:48px;border-radius:14px;font-size:20px;background:#fff}
    body.tt-printing .tt-poster-copy em{font-size:10px;padding:3px 8px}
    body.tt-printing .tt-poster-copy h3{font-size:22px;margin:4px 0 6px}
    body.tt-printing .tt-poster-meta span{font-size:11px;padding:4px 9px}
    body.tt-printing .tt-poster-tools{display:none}
    body.tt-printing .tt-poster-deco i{opacity:.07}
    body.tt-printing .tt-board-scroll{flex:1 1 auto;overflow:hidden!important;min-height:0;position:relative}
    body.tt-printing .tt-board{
        display:grid!important;
        direction:rtl!important;
        min-width:0!important;
        max-width:100%!important;
        width:100%!important;
        height:100%!important;
        grid-template-columns:24mm repeat(var(--periods),minmax(0,1fr))!important;
        grid-template-rows:16mm repeat(var(--days),minmax(0,1fr))!important;
        grid-auto-flow:row!important;
        grid-auto-columns:unset!important;
        grid-auto-rows:unset!important;
        align-content:stretch!important;
        justify-content:stretch!important;
        gap:3px!important;
        padding:6px!important;
        box-sizing:border-box!important;
    }
    body.tt-printing .tt-corner,
    body.tt-printing .tt-hour,
    body.tt-printing .tt-day-label,
    body.tt-printing .tt-cell{
        position:static!important;
        inset:auto!important;
        top:auto!important;
        right:auto!important;
        left:auto!important;
        bottom:auto!important;
        transform:none!important;
        z-index:auto!important;
        min-width:0!important;
        min-height:0!important;
        max-width:100%!important;
        width:auto!important;
        height:auto!important;
        margin:0!important;
        border-radius:8px;
        padding:5px 4px;
        box-sizing:border-box!important;
        overflow:hidden;
    }
    body.tt-printing .tt-day-label{
        display:flex!important;
        flex-direction:column!important;
        align-items:center!important;
        justify-content:center!important;
        gap:3px!important;
        white-space:nowrap;
    }
    body.tt-printing .tt-hour{
        display:flex!important;
        flex-direction:column!important;
        align-items:center!important;
        justify-content:center!important;
        gap:2px!important;
    }
    body.tt-printing .tt-cell{
        display:grid!important;
        place-items:center!important;
        cursor:default;
    }
    body.tt-printing .tt-hour b,body.tt-printing .tt-day-label b,body.tt-printing .tt-corner span{font-size:12px;line-height:1.2}
    body.tt-printing .tt-hour small{font-size:9px;padding:2px 5px;white-space:normal;line-height:1.25;max-width:100%}
    body.tt-printing .tt-day-label i{font-size:13px}
    body.tt-printing .tt-cell.filled:hover,
    body.tt-printing .tt-cell.empty:hover{transform:none;box-shadow:none}
    body.tt-printing .tt-plus{display:none}
    body.tt-printing .tt-cell.empty{border-style:solid;background:color-mix(in srgb,#fff 88%,transparent)}
    body.tt-printing .tt-cell.empty:after{content:"—";color:#94a3b8;font-size:16px;font-weight:800}
    body.tt-printing .tt-lesson{height:100%;width:100%;gap:4px;padding:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
    body.tt-printing .tt-lesson strong{font-size:13px;line-height:1.35;max-width:100%;overflow:hidden}
    body.tt-printing .tt-lesson small{font-size:10px;padding:3px 6px;max-width:100%;overflow:hidden}
}

.side-nav{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:2px 2px 10px;margin-inline:-2px}
.teal{background:linear-gradient(135deg,#2dd4bf,#0f766e)}
.purple{background:linear-gradient(135deg,#c084fc,#7c3aed)}
.pink{background:linear-gradient(135deg,#f472b6,#ec4899)}
.indigo{background:linear-gradient(135deg,#818cf8,#6366f1)}
.comm-hub-card.is-soon{opacity:.92}
.comm-badge.soon-badge{background:linear-gradient(135deg,#fb923c,#ea580c);min-width:auto;padding:0 8px;font-size:9px}
.unit-hero.academic-hero{background:linear-gradient(115deg,#fff 42%,#eef6ff)}
.unit-hero.cultural-hero{background:linear-gradient(115deg,#fff 42%,#f0fdf4)}
.unit-hero.online-hero{background:linear-gradient(115deg,#fff 42%,#f5f3ff)}
.unit-soon-card{text-align:center;padding:56px 24px}
.unit-soon-icon{width:74px;height:74px;margin:0 auto 16px;border-radius:22px;display:grid;place-items:center;font-size:30px;color:#fff;background:linear-gradient(135deg,#3b82f6,#4f46e5);box-shadow:0 12px 28px rgba(37,99,235,.22)}
.unit-soon-icon.cultural{background:linear-gradient(135deg,#34d399,#059669)}
.unit-soon-icon.online{background:linear-gradient(135deg,#a78bfa,#6d28d9)}
.unit-soon-card h2{margin:0 0 8px;font-size:20px}
.unit-soon-card p{margin:0 auto 18px;max-width:420px;color:var(--muted);font-size:13px}
.grades-composer{border:1px solid #dbeafe;box-shadow:0 16px 40px rgba(37,99,235,.08)}
.grades-cascade-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin-bottom:16px}
.grades-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.exam-meta-row{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(220px,.72fr);gap:14px;grid-column:1/-1}
.grades-excel-actions{margin-top:14px}
.grades-excel-open{display:flex;align-items:center;gap:14px;width:100%;min-height:74px;padding:12px 16px;border:0;border-radius:20px;background:linear-gradient(135deg,#16a34a,#15803d);color:#fff;box-shadow:0 14px 28px rgba(22,163,74,.28);cursor:pointer;text-align:right;transition:.2s}
.grades-excel-open:hover{transform:translateY(-2px);box-shadow:0 18px 32px rgba(22,163,74,.34)}
.grades-excel-open-icon{width:48px;height:48px;flex:0 0 48px;border-radius:16px;display:grid;place-items:center;background:rgba(255,255,255,.18);font-size:22px}
.grades-excel-open span:nth-child(2){display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}
.grades-excel-open b{font-size:16px;font-weight:900}
.grades-excel-open small{font-size:11px;opacity:.88;line-height:1.5}
.grades-excel-open-arrow{font-size:14px;opacity:.8}
.grades-excel-lead{margin:0 0 14px;color:#475569;font-size:13px;line-height:1.8}
.grades-excel-tiles{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.grades-excel-tile{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:168px;padding:22px 18px;border:1px solid #dbe7ef;border-radius:22px;background:linear-gradient(180deg,#fff,#f8fbfc);box-shadow:0 12px 28px rgba(15,23,42,.06);text-align:center;cursor:pointer;transition:.2s;color:#0f172a}
.grades-excel-tile:hover{transform:translateY(-3px);border-color:#86efac;box-shadow:0 18px 36px rgba(22,163,74,.14)}
.grades-excel-tile input{position:absolute;inset:0;opacity:0;cursor:pointer}
.grades-excel-tile-icon{width:58px;height:58px;border-radius:18px;display:grid;place-items:center;font-size:24px;color:#fff}
.grades-excel-tile.is-download .grades-excel-tile-icon{background:linear-gradient(135deg,#38bdf8,#2563eb);box-shadow:0 10px 18px rgba(37,99,235,.24)}
.grades-excel-tile.is-upload .grades-excel-tile-icon{background:linear-gradient(135deg,#4ade80,#16a34a);box-shadow:0 10px 18px rgba(22,163,74,.24)}
.grades-excel-tile strong{font-size:16px;font-weight:900}
.grades-excel-tile small{max-width:240px;color:#64748b;font-size:12px;line-height:1.6}
.grades-excel-tile.has-file{border-color:#16a34a;background:linear-gradient(180deg,#f0fdf4,#fff)}
.grades-excel-dialog{width:min(1120px,calc(100% - 24px));overflow:visible}
.grades-excel-dialog .excel-progress-overlay{position:absolute;inset:0;border-radius:24px;z-index:20}
.grades-excel-dialog .dialog-body{display:flex;flex-direction:column;gap:16px;max-height:74vh}
.grades-excel-step2{display:flex;flex-direction:column;gap:16px}
.grades-excel-process{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(240px,.85fr);gap:14px;align-items:end}
.grades-excel-process .exam-date-field{margin:0}
.grades-excel-analyze{display:flex;align-items:center;gap:12px;width:100%;min-height:58px;padding:10px 16px;border:0;border-radius:18px;background:linear-gradient(135deg,#16a34a,#15803d);color:#fff;box-shadow:0 12px 24px rgba(22,163,74,.26);cursor:pointer;text-align:right;transition:.2s}
.grades-excel-analyze:hover{transform:translateY(-2px);box-shadow:0 16px 28px rgba(22,163,74,.32)}
.grades-excel-analyze-icon{width:42px;height:42px;flex:0 0 42px;border-radius:14px;display:grid;place-items:center;background:rgba(255,255,255,.18);font-size:16px}
.grades-excel-analyze span:last-child{display:flex;flex-direction:column;gap:2px;min-width:0}
.grades-excel-analyze b{font-size:15px;font-weight:900}
.grades-excel-analyze small{font-size:11px;opacity:.88;line-height:1.5}
.grades-excel-preview{display:flex;flex-direction:column;gap:14px}
.grades-excel-banner{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:18px}
.grades-excel-banner>i{width:42px;height:42px;flex:0 0 42px;border-radius:14px;display:grid;place-items:center;font-size:18px}
.grades-excel-banner strong{display:block;font-size:14px}
.grades-excel-banner small{display:block;margin-top:3px;font-size:11px;line-height:1.6;opacity:.86}
.grades-excel-banner.is-ok{background:linear-gradient(135deg,#ecfdf5,#fff);border:1px solid #bbf7d0;color:#166534}
.grades-excel-banner.is-ok>i{background:#dcfce7;color:#16a34a}
.grades-excel-banner.is-bad{background:linear-gradient(135deg,#fff1f2,#fff);border:1px solid #fecdd3;color:#9f1239}
.grades-excel-banner.is-bad>i{background:#ffe4e6;color:#e11d48}
.grades-excel-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.grades-excel-stat{display:flex;align-items:center;gap:10px;min-height:74px;padding:12px 14px;border:1px solid #e2e8f0;border-radius:18px;background:linear-gradient(180deg,#fff,#f8fafc)}
.grades-excel-stat>span{width:40px;height:40px;flex:0 0 40px;border-radius:13px;display:grid;place-items:center;font-size:15px}
.grades-excel-stat small{display:block;color:#64748b;font-size:11px}
.grades-excel-stat strong{display:block;margin-top:2px;font-size:16px;font-weight:900;color:#0f172a}
.grades-excel-stat .is-blue{background:#dbeafe;color:#1d4ed8}
.grades-excel-stat .is-green{background:#dcfce7;color:#15803d}
.grades-excel-stat .is-red{background:#ffe4e6;color:#be123c}
.grades-excel-stat .is-violet{background:#f3e8ff;color:#7c3aed}
.grades-excel-table-wrap{overflow:auto;max-height:min(42vh,460px);border:1px solid #e2e8f0;border-radius:18px;background:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.8)}
.grades-excel-table{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0;font-size:12px}
.grades-excel-table th{position:sticky;top:0;z-index:2;padding:12px 14px;background:#f8fafc;color:#334155;font-size:11px;font-weight:800;text-align:center;border-bottom:1px solid #e2e8f0;white-space:nowrap}
.grades-excel-table td{padding:10px 12px;border-bottom:1px solid #f1f5f9;vertical-align:middle;text-align:center}
.grades-excel-table tbody tr:hover td{background:#f8fbff}
.grades-excel-table tbody .grades-excel-row.is-error:hover td{background:#fff1f2}
.grades-excel-table .is-student,.grades-excel-table th.is-student{min-width:210px;text-align:right}
.grades-excel-student{display:flex;align-items:center;gap:10px;text-align:right}
.grades-excel-avatar{width:36px;height:36px;flex:0 0 36px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,#93c5fd,#2563eb);color:#fff;font-size:13px;font-weight:900}
.grades-excel-student strong{display:block;font-size:13px;color:#0f172a}
.grades-excel-student small{display:block;margin-top:2px;color:#64748b;font-size:11px}
.grades-excel-score{display:inline-flex;align-items:center;justify-content:center;min-width:64px;padding:7px 10px;border-radius:12px;background:#f1f5f9;color:#334155;font-weight:900;letter-spacing:.2px}
.grades-excel-score.is-perfect{background:#fef9c3;color:#ca8a04}
.grades-excel-score.is-high{background:#d1fae5;color:#047857}
.grades-excel-score.is-good{background:#dbeafe;color:#1d4ed8}
.grades-excel-score.is-mid{background:#ffedd5;color:#c2410c}
.grades-excel-score.is-low{background:#ffe4e6;color:#be123c}
.grades-excel-cell.is-error{background:#fff1f2}
.grades-excel-cell.is-error .grades-excel-score{background:#ffe4e6;color:#be123c}
.grades-excel-error{display:block;margin-top:6px;color:#be123c;font-size:10px;line-height:1.6}
.grades-excel-row.is-error td{background:#fff7f8}
.grades-excel-row.is-error:hover td{background:#fff1f2}
.grades-excel-status{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:99px;font-size:11px;font-weight:800;white-space:nowrap}
.grades-excel-status.is-ready{background:#dcfce7;color:#15803d}
.grades-excel-status.is-fix{background:#ffe4e6;color:#be123c}
.grades-excel-dialog [data-excel-commit]{background:linear-gradient(135deg,#16a34a,#15803d);box-shadow:0 8px 20px rgba(22,163,74,.22)}
.grades-excel-dialog [data-excel-commit]:disabled{opacity:.45;filter:grayscale(.2);transform:none;box-shadow:none;cursor:not-allowed}
.excel-preview-error{background:#fff1f2;color:#be123c}
.exam-title-input{display:flex;align-items:center;gap:12px;min-height:58px;padding:6px 14px 6px 8px;border:1px solid #bfdbfe;border-radius:18px;background:linear-gradient(135deg,#f8fbff,#fff);box-shadow:0 8px 22px rgba(37,99,235,.08)}
.exam-title-input>i{width:42px;height:42px;flex:0 0 42px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,#60a5fa,#2563eb);color:#fff;font-size:16px}
.exam-title-input input{flex:1;min-width:0;width:100%;border:0;background:transparent;box-shadow:none;padding:10px 4px;font-size:16px;font-weight:800;letter-spacing:.2px}
.exam-title-input input:focus{box-shadow:none;border-color:transparent}
.exam-title-input:focus-within{border-color:#2563eb;box-shadow:0 0 0 4px rgba(37,99,235,.12)}
.exam-title-input.exam-date-input{border-color:#ddd6fe;background:linear-gradient(135deg,#faf5ff,#fff);box-shadow:0 8px 22px rgba(124,58,237,.08)}
.exam-title-input.exam-date-input>i{background:linear-gradient(135deg,#c084fc,#7c3aed)}
.exam-title-input.exam-date-input:focus-within{border-color:#7c3aed;box-shadow:0 0 0 4px rgba(124,58,237,.12)}
.exam-title-input.exam-date-input input{text-align:center;cursor:pointer}
.exam-type-field{border:0;padding:0;margin:0;min-width:0;width:100%}
.exam-type-field legend{margin-bottom:10px}
.exam-type-picks{display:flex;width:100%;align-items:stretch;gap:8px}
.exam-type-picks>label{position:relative;flex:1 1 0;width:0;min-width:0;margin:0;display:block}
.exam-type-picks input{position:absolute;opacity:0;pointer-events:none}
.exam-type-card{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:10px;width:100%;height:100%;min-height:58px;padding:10px 12px;border:2px solid #e2e8f0;border-radius:18px;background:#fff;color:#475569;cursor:pointer;text-align:right;transition:.18s;box-sizing:border-box}
.exam-type-card>i{width:38px;height:38px;flex:0 0 38px;border-radius:12px;display:grid;place-items:center;background:#f1f5f9;font-size:15px}
.exam-type-card>b{flex:1;min-width:0;font-size:12px;font-weight:800;line-height:1.35;text-align:right}
.exam-type-picks .exam-type-card.blue,
.exam-type-picks .exam-type-card.teal,
.exam-type-picks .exam-type-card.orange,
.exam-type-picks .exam-type-card.purple,
.exam-type-picks .exam-type-card.red{background:#fff;color:#475569}
.exam-type-card.teal>i{background:#ccfbf1;color:#0f766e}
.exam-type-card.orange>i{background:#ffedd5;color:#c2410c}
.exam-type-card.blue>i{background:#dbeafe;color:#1d4ed8}
.exam-type-card.purple>i{background:#f3e8ff;color:#6d28d9}
.exam-type-card.red>i{background:#ffe4e6;color:#be123c}
.exam-type-picks input:checked+.exam-type-card{transform:translateY(-2px);box-shadow:0 10px 20px rgba(15,23,42,.12);color:#fff}
.exam-type-picks input:checked+.exam-type-card>i{background:rgba(255,255,255,.22);color:#fff}
.exam-type-picks input:checked+.exam-type-card.teal{background:linear-gradient(135deg,#2dd4bf,#0f766e);border-color:#0f766e}
.exam-type-picks input:checked+.exam-type-card.orange{background:linear-gradient(135deg,#fb923c,#ea580c);border-color:#ea580c}
.exam-type-picks input:checked+.exam-type-card.blue{background:linear-gradient(135deg,#60a5fa,#2563eb);border-color:#2563eb}
.exam-type-picks input:checked+.exam-type-card.purple{background:linear-gradient(135deg,#c084fc,#7c3aed);border-color:#7c3aed}
.exam-type-picks input:checked+.exam-type-card.red{background:linear-gradient(135deg,#fb7185,#dc2626);border-color:#dc2626}
.exam-type-picks input:focus-visible+.exam-type-card{outline:2px solid #93c5fd;outline-offset:2px}
.exam-type-picks input:not(:checked)+.exam-type-card:hover{border-color:#93c5fd;background:#f8fbff}
.exam-chip{display:inline-flex;align-items:center;gap:6px;padding:7px 11px;border-radius:99px;font-size:11px;font-weight:700;color:#fff;white-space:nowrap}
.score-entry-input{display:flex;align-items:center;gap:8px}
.score-entry-input input{text-align:center;font-weight:800;letter-spacing:.3px;font-size:16px}
.score-entry-input b{min-width:72px;text-align:center;font-size:13px;font-weight:800;color:#1d4ed8;background:#eff6ff;border-radius:12px;padding:10px 8px}
.scale-mode-field [data-custom-max-wrap] small{font-size:10px;color:var(--muted)}
.scale-mode-field{display:flex;flex-direction:column;gap:8px}
.scale-mode-field>span{font-size:10.8px;color:#475569;font-weight:500}
.compact-radios{gap:8px}
.grades-roster{margin-top:18px;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:#f8fbff}
.grades-roster>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line);background:#fff}
.grades-roster>header h3{margin:0;font-size:14px}
.grades-roster>header p{margin:3px 0 0;font-size:10px;color:var(--muted)}
.grades-roster>header input{max-width:220px}
.grades-roster-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:12px;max-height:min(64vh,720px);overflow:auto;background:#f8fbff}
.grade-student-row{display:grid;grid-template-columns:42px minmax(0,1fr) minmax(132px,168px);align-items:center;gap:10px;padding:10px 12px;border:1px solid #e8eef7;border-radius:16px;background:#fff}
.grade-student-avatar{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;overflow:hidden;color:#fff;font-weight:800;background:linear-gradient(135deg,#60a5fa,#2563eb)}
.grade-student-avatar img{width:100%;height:100%;object-fit:cover}
.grade-student-row strong{display:block;font-size:13px}
.grade-student-row small{color:var(--muted);font-size:10px}
.grade-score-field{flex-direction:row;align-items:center;gap:8px;margin:0}
.grade-score-field input,.grade-score-field select{text-align:center;font-weight:800;letter-spacing:.3px}
.grade-score-field b,.grade-score-value{min-width:58px;text-align:center;font-size:12px;color:var(--primary);background:#eff6ff;border-radius:10px;padding:8px 6px}
.grade-score-field.is-perfect,.grade-score-value.is-perfect{--tone:#ca8a04;--tone-bg:#fef9c3;--tone-soft:#fffbeb}
.grade-score-field.is-high,.grade-score-value.is-high{--tone:#047857;--tone-bg:#d1fae5;--tone-soft:#ecfdf5}
.grade-score-field.is-good,.grade-score-value.is-good{--tone:#1d4ed8;--tone-bg:#dbeafe;--tone-soft:#eff6ff}
.grade-score-field.is-mid,.grade-score-value.is-mid{--tone:#c2410c;--tone-bg:#ffedd5;--tone-soft:#fff7ed}
.grade-score-field.is-low,.grade-score-value.is-low{--tone:#be123c;--tone-bg:#ffe4e6;--tone-soft:#fff1f2}
.grade-score-field.is-perfect input,.grade-score-field.is-high input,.grade-score-field.is-good input,.grade-score-field.is-mid input,.grade-score-field.is-low input{border-color:color-mix(in srgb,var(--tone) 45%,#fff);background:var(--tone-soft);color:var(--tone)}
.grade-score-field.is-perfect b,.grade-score-field.is-high b,.grade-score-field.is-good b,.grade-score-field.is-mid b,.grade-score-field.is-low b,.grade-score-value.is-perfect,.grade-score-value.is-high,.grade-score-value.is-good,.grade-score-value.is-mid,.grade-score-value.is-low{background:var(--tone-bg);color:var(--tone)}
.grade-score-value{display:inline-flex;align-items:center;justify-content:center;font-size:14px}
.grades-table td small{display:block;color:var(--muted);font-size:10px;margin-top:2px}
.compact-empty{padding:36px}
.grades-form .form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}
.report-card-workspace .form-actions{margin-top:18px;padding-top:2px}
.report-card-workspace .form-actions .primary-btn{min-height:48px;padding:12px 22px;border-radius:16px;font-weight:900}
.report-card-tabs{margin-bottom:0;padding:8px;border:1px solid #dbeafe;background:linear-gradient(135deg,#eff6ff,#fff);box-shadow:0 10px 28px rgba(37,99,235,.06)}
.report-card-tabs .stage-tabs{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.report-card-tabs .stage-tabs button,.report-card-tabs .stage-tabs a{min-height:48px;border-radius:14px;font-size:13px;gap:10px;display:flex;align-items:center;justify-content:center}
.report-card-tabs .stage-tabs button i,.report-card-tabs .stage-tabs a i{width:28px;height:28px;border-radius:10px;display:grid;place-items:center;background:rgba(37,99,235,.08);font-size:13px;flex:0 0 28px}
.report-card-tabs .stage-tabs button.active i,.report-card-tabs .stage-tabs a.active i{background:rgba(255,255,255,.2);color:#fff}
.report-card-tabs-multi{padding-bottom:2px}
.report-card-term-scroller{overflow-x:auto;overflow-y:hidden;max-width:100%;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scrollbar-width:thin;touch-action:pan-x;scroll-snap-type:x proximity;scroll-padding-inline:8px}
.report-card-term-scroller::-webkit-scrollbar{height:6px}
.report-card-term-scroller::-webkit-scrollbar-thumb{background:#93c5fd;border-radius:999px}
.report-card-tabs-multi .report-card-term-scroll{display:flex;flex-wrap:nowrap;gap:6px;width:max-content;min-width:100%;padding-bottom:2px;overflow:visible;touch-action:pan-x}
.report-card-tabs-multi .stage-tabs{grid-template-columns:unset;display:flex;flex-wrap:nowrap;width:max-content;min-width:100%;gap:6px}
.report-card-tabs-multi .stage-tabs button{flex:0 0 auto;min-width:108px;padding:10px 12px;scroll-snap-align:start;touch-action:manipulation}
.report-card-tabs-multi .stage-tabs button span{font-size:11px;font-weight:800}
.report-term-badge.is-seasonal{background:linear-gradient(135deg,#22c55e,#15803d)}
.report-term-badge.is-continuous{background:linear-gradient(135deg,#a855f7,#7e22ce)}
.report-term-badge.is-monthly{background:linear-gradient(135deg,#f59e0b,#d97706)}
.report-term-badge.is-summer{background:linear-gradient(135deg,#fb923c,#ea580c)}
.report-card-hero-actions{margin-right:auto;display:flex;gap:8px}
.report-print-controls{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px}
.report-print-controls label{display:grid;gap:4px;min-width:168px}
.report-print-controls label span{font-size:11px;font-weight:800;color:#64748b;display:flex;align-items:center;gap:5px}
.report-print-controls .pretty-select{width:100%;min-width:180px}
.report-print-btn{white-space:nowrap}
.report-print-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;margin-bottom:14px;border:1px solid #bfdbfe;border-radius:18px;background:linear-gradient(135deg,#eff6ff,#fff);box-shadow:0 8px 24px rgba(37,99,235,.08)}
.report-print-bar.hidden{display:none!important}
.report-print-bar-head{display:flex;align-items:center;gap:12px}
.report-print-bar-icon{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,#2563eb,#4f46e5);color:#fff;font-size:18px;box-shadow:0 6px 16px rgba(37,99,235,.28)}
.report-print-bar-head strong{display:block;font-size:14px;color:#0f172a}
.report-print-bar-head small{display:block;font-size:11px;color:#64748b;margin-top:2px}
.report-print-bar-controls{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px}
.report-print-mode-pills{display:flex;flex-wrap:wrap;gap:6px;padding:4px;border:1px solid #dbeafe;border-radius:14px;background:#fff}
.report-print-mode-pill{position:relative;margin:0;cursor:pointer}
.report-print-mode-pill input{position:absolute;opacity:0;pointer-events:none;width:0;height:0}
.report-print-mode-pill span{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:10px;font-size:11px;font-weight:800;color:#64748b;transition:.15s;border:1px solid transparent}
.report-print-mode-pill input:checked+span{background:linear-gradient(135deg,#dbeafe,#eef2ff);color:#1d4ed8;border-color:#93c5fd;box-shadow:inset 0 0 0 1px #fff}
.report-print-bar-controls label.report-print-student-field{display:grid;gap:4px;min-width:160px}
.report-print-bar-controls label.report-print-student-field span{font-size:10px;font-weight:800;color:#64748b}
.report-print-bar .primary-btn.report-print-btn{padding:10px 18px;border-radius:12px;font-size:12px}
.learner-report-print-bar{display:flex;justify-content:flex-end;margin:0 0 12px}
.learner-report-print-bar .report-print-btn{display:inline-flex;align-items:center;gap:8px}
.report-card-period-bar{margin:0 0 16px;padding:14px 16px;border:1px solid #dbeafe;border-radius:18px;background:linear-gradient(135deg,#f8fbff,#fff)}
.report-card-period-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.report-card-period-head i{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;background:#dbeafe;color:#2563eb}
.report-card-period-head strong{display:block;font-size:13px}
.report-card-period-head small{display:block;color:#64748b;font-size:11px;margin-top:2px}
.report-card-period-head .secondary-btn.compact{margin-right:auto;min-height:36px;padding:6px 12px;font-size:11px}
.report-card-period-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.report-card-period-fields label span{display:block;font-size:11px;font-weight:800;color:#334155;margin-bottom:4px}
.report-card-period-fields input{width:100%;min-height:44px;border:1px solid #dbeafe;border-radius:14px;padding:10px 12px;font-weight:700}
.report-discipline-rules-panel{margin:0 0 16px;border:1px solid #fde68a;border-radius:18px;background:linear-gradient(135deg,#fffbeb,#fff);overflow:hidden}
.report-discipline-rules-panel summary{display:flex;align-items:center;gap:10px;padding:14px 16px;cursor:pointer;font-weight:800;font-size:13px;list-style:none}
.report-discipline-rules-panel summary::-webkit-details-marker{display:none}
.report-discipline-rules-panel summary i{color:#d97706}
.report-discipline-rules-panel summary small{margin-right:auto;color:#92400e;font-weight:600;font-size:11px}
.report-discipline-rules-body{padding:0 16px 12px}
.report-discipline-rules-panel .form-actions.compact{padding:0 16px 14px;margin:0}
.report-rules-table{width:100%;border-collapse:collapse;font-size:12px}
.report-rules-table th,.report-rules-table td{border-bottom:1px solid #fde68a;padding:8px 10px;text-align:center}
.report-rules-table th{background:#fffbeb;font-size:11px;color:#92400e}
.report-rules-table input{min-height:38px;width:100%;max-width:120px;border:1px solid #fcd34d;border-radius:10px;padding:6px 8px;text-align:center;font-weight:700}
.report-card-table th.is-class-avg,.report-card-table td.is-class-avg{background:#f0fdf4}
.report-card-table th.is-discipline,.report-card-table td.is-discipline-auto,.report-card-table td.is-discipline-score,.report-card-table td.is-discipline-desc{background:#fffbeb;min-width:96px}
.report-card-table td.is-discipline-auto small{display:block;color:#92400e;font-size:9px;margin-top:2px}
.report-disc-auto{font-weight:800}
.report-grade-avg{display:block;font-weight:800;font-size:13px}
.report-grade-detail-btn{display:inline-flex;align-items:center;gap:4px;margin-top:4px;padding:3px 8px;border:1px solid #dbeafe;border-radius:999px;background:#eff6ff;color:#2563eb;font-size:10px;font-weight:700;cursor:pointer}
.report-score-field.compact input{min-height:38px;padding:6px 8px;font-size:12px}
.report-cert-discipline{display:flex;align-items:center;gap:12px;margin-top:16px;padding:14px 16px;border:1px dashed color-mix(in srgb,var(--org-1) 30%,#cbd5e1);border-radius:14px;background:color-mix(in srgb,var(--org-3) 18%,#fff)}
.report-cert-discipline span{display:flex;align-items:center;gap:6px;color:#64748b;font-size:12px;font-weight:700}
.report-cert-discipline strong{font-size:18px;color:var(--org-1)}
.report-cert-discipline em{font-size:12px;color:#64748b;margin-right:auto}
.report-card-tabs .stage-tabs a .count-badge{position:static;margin-right:0;min-width:18px;height:18px;font-size:9px}
.report-card-workspace{padding:0;overflow:visible;border:1px solid #dbeafe;box-shadow:0 18px 44px rgba(37,99,235,.08)}
.report-card-hero{display:flex;align-items:center;gap:14px;padding:18px 22px;margin:0;border-bottom:1px solid #e8eef7;background:linear-gradient(135deg,#eff6ff,#fff 62%)}
.report-card-hero-icon{width:48px;height:48px;flex:0 0 48px;border-radius:16px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,#60a5fa,#2563eb);box-shadow:0 10px 22px rgba(37,99,235,.28);font-size:20px}
.report-card-hero-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.report-card-hero h2{margin:0;font-size:17px}
.report-card-hero p{margin:4px 0 0;color:var(--muted);font-size:12px;line-height:1.7}
.report-term-badge{display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:6px 12px;border-radius:999px;font-size:11px;font-weight:900;background:#e2e8f0;color:#334155}
.report-term-badge.is-first{background:#dbeafe;color:#1d4ed8}
.report-term-badge.is-second{background:#dcfce7;color:#166534}
.report-term-badge.is-final{background:#ede9fe;color:#6d28d9}
.report-card-workspace .grades-form{padding:18px 22px 22px}
.report-card-cascade{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:16px}
.report-card-cascade>label{padding:12px;border:1px solid #e2e8f0;border-radius:18px;background:linear-gradient(180deg,#fff,#f8fbff);box-shadow:0 8px 20px rgba(15,23,42,.04)}
.report-card-cascade>label>span{display:flex;align-items:center;gap:7px;margin-bottom:2px;color:#334155;font-size:11px;font-weight:800}
.report-card-cascade>label>span i{width:22px;height:22px;border-radius:8px;display:grid;place-items:center;background:#dbeafe;color:#2563eb;font-size:10px}
[data-report-cards-page] .pretty-select-trigger,[data-report-excel-dialog] .pretty-select-trigger{min-height:48px;border-radius:16px;padding:11px 14px;font-weight:800;background:linear-gradient(180deg,#fff,#f8fbff);border-color:#dbeafe;box-shadow:0 4px 14px rgba(37,99,235,.06);transition:border-color .2s,box-shadow .2s,transform .15s}
[data-report-cards-page] .pretty-select.open .pretty-select-trigger,[data-report-cards-page] .pretty-select-trigger:hover,[data-report-excel-dialog] .pretty-select.open .pretty-select-trigger,[data-report-excel-dialog] .pretty-select-trigger:hover{border-color:#93c5fd;box-shadow:0 0 0 4px rgba(37,99,235,.1)}
[data-report-cards-page] .pretty-select-trigger>span,[data-report-excel-dialog] .pretty-select-trigger>span{justify-content:flex-start;text-align:right;gap:10px;font-size:13px}
[data-report-cards-page] .pretty-select-trigger>span>i,[data-report-excel-dialog] .pretty-select-trigger>span>i{width:28px;height:28px;border-radius:10px;display:grid;place-items:center;background:#eff6ff;color:#2563eb;font-size:12px;flex:0 0 28px}
[data-report-cards-page] .pretty-select-menu.portal-open,[data-report-excel-dialog] .pretty-select-menu.portal-open{border-radius:18px;border-color:#bfdbfe;box-shadow:0 24px 50px rgba(37,99,235,.16);padding:10px;background:#fff}
[data-report-excel-dialog] .pretty-select-menu.portal-open.is-wide-menu{min-width:300px;max-height:340px}
[data-report-cards-page] .pretty-select-menu.portal-open .pretty-select-option,[data-report-excel-dialog] .pretty-select-menu.portal-open .pretty-select-option{min-height:46px;padding:10px 12px;border-radius:13px;border:1px solid transparent;font-size:13px;font-weight:700;justify-content:flex-start;text-align:right;gap:10px;background:#f8fbff}
[data-report-cards-page] .pretty-select-menu.portal-open .pretty-select-option>i,[data-report-excel-dialog] .pretty-select-menu.portal-open .pretty-select-option>i{width:28px;height:28px;border-radius:10px;display:grid;place-items:center;background:#eff6ff;color:#2563eb;font-size:11px;flex:0 0 28px}
[data-report-cards-page] .pretty-select-menu.portal-open .pretty-select-option:hover,[data-report-excel-dialog] .pretty-select-menu.portal-open .pretty-select-option:hover{border-color:#bfdbfe;background:#eff6ff;transform:translateY(-1px)}
[data-report-cards-page] .pretty-select-menu.portal-open .pretty-select-option.selected,[data-report-excel-dialog] .pretty-select-menu.portal-open .pretty-select-option.selected{border-color:#93c5fd;background:linear-gradient(135deg,#dbeafe,#eef2ff);color:#1d4ed8;box-shadow:inset 0 0 0 1px #fff}
[data-report-cards-page] .pretty-select-search,[data-report-excel-dialog] .pretty-select-search{border-color:#dbeafe;background:#f8fbff;border-radius:12px;min-height:40px!important;margin:2px 2px 8px}
[data-report-excel-dialog] .report-excel-map-target .pretty-select{width:100%}
[data-report-excel-dialog] .report-excel-map-target .pretty-select-trigger{min-height:44px;border-radius:14px;font-size:12px;font-weight:800}
[data-report-cards-page] .pretty-select-trigger>span>small{display:block;width:100%;font-size:10px;font-weight:700;color:#64748b;margin-top:2px}
[data-report-cards-page] .report-card-cascade .pretty-select,[data-report-cards-page] .report-cascade-field .pretty-select{width:100%}
[data-report-cards-page] .report-cascade-field .pretty-select-trigger{min-height:50px;border-radius:16px}
[data-report-cards-page] .pretty-select-menu.portal-open.is-wide-menu{min-width:300px;max-height:340px}
[data-report-cards-page] .pretty-select-menu.portal-open.is-wide-menu>div{grid-template-columns:1fr;gap:6px}
[data-report-cards-page] .report-score-field .pretty-select,[data-report-cards-page] .report-score-select-wrap .pretty-select,[data-report-cards-page] td .pretty-select{min-width:168px;width:100%}
[data-report-cards-page] .report-score-field .pretty-select-trigger,[data-report-cards-page] td .pretty-select-trigger{min-height:42px;border-radius:14px;font-size:12px;padding:9px 12px}
[data-report-cards-page] .report-score-field.compact .pretty-select{min-width:96px}
[data-report-cards-page] .report-score-field.compact .pretty-select-trigger{min-height:38px;min-width:96px;padding:7px 10px;font-size:11px}
[data-report-cards-page] .is-discipline-desc .pretty-select{min-width:152px}
[data-report-cards-page] .report-subject-add .pretty-select-trigger{min-height:46px;background:#fff}
[data-report-cards-page] .report-excel-map-target .pretty-select{width:100%}
[data-report-cards-page] .report-excel-map-target .pretty-select-trigger{min-height:44px;border-radius:14px;font-size:12px;font-weight:800}
[data-report-cards-page] .report-score-field.is-perfect .pretty-select-trigger,[data-report-cards-page] .report-score-field.is-high .pretty-select-trigger,[data-report-cards-page] .report-score-field.is-good .pretty-select-trigger,[data-report-cards-page] .report-score-field.is-mid .pretty-select-trigger,[data-report-cards-page] .report-score-field.is-low .pretty-select-trigger{border-color:color-mix(in srgb,var(--tone) 45%,#fff);background:var(--tone-soft);color:var(--tone)}
[data-report-cards-page] .native-select-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
[data-report-cards-page] .pretty-select.is-disabled .pretty-select-trigger{opacity:.58;background:#f1f5f9}
[data-report-cards-page] .report-card-cascade>label{padding:12px;border:1px solid #e2e8f0;border-radius:18px;background:linear-gradient(180deg,#fff,#f8fbff);box-shadow:0 8px 20px rgba(15,23,42,.04)}
[data-report-cards-page] .pretty-select-menu.portal-open.is-wide-menu .pretty-select-option{min-height:44px;padding:10px 12px;border-radius:12px;font-size:13px;font-weight:700;justify-content:flex-start;gap:10px}
[data-report-cards-page] .pretty-select-menu.portal-open.is-wide-menu .pretty-select-option>i{width:26px;height:26px;border-radius:9px;display:grid;place-items:center;background:#eff6ff;color:#2563eb;font-size:11px}
.report-card-board{margin-top:16px;border:1px solid #dbeafe;border-radius:22px;overflow:hidden;background:#fff;box-shadow:0 14px 36px rgba(37,99,235,.08)}
.report-card-board>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid #e8eef7;background:linear-gradient(135deg,#f8fbff,#fff)}
.report-card-board>header h3{margin:0;font-size:15px}
.report-card-board>header p{margin:4px 0 0;font-size:11px;color:var(--muted);line-height:1.7}
.report-card-search{flex-direction:row;align-items:center;gap:8px;min-width:min(280px,100%);margin:0;padding:8px 12px;border:1px solid #dbeafe;border-radius:14px;background:#fff;box-shadow:inset 0 1px 0 #fff}
.report-card-search i{color:#64748b}
.report-card-search input{flex:1;min-width:0;width:100%;max-width:none;border:0;background:transparent;box-shadow:none;padding:6px 0;font-size:13px}
.report-card-search:focus-within{border-color:#2563eb;box-shadow:0 0 0 4px rgba(37,99,235,.1)}
.report-subject-bar{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:14px 18px;border-bottom:1px solid #e8eef7;background:linear-gradient(180deg,#f8fbff,#fff);flex-wrap:wrap}
.report-subject-chips{display:flex;flex-wrap:wrap;gap:8px;flex:1;min-width:0}
.report-subject-chip{display:inline-flex;align-items:center;gap:8px;padding:8px 10px 8px 8px;border:1px solid #dbeafe;border-radius:999px;background:linear-gradient(135deg,#eff6ff,#fff);color:#1e40af;font-size:12px;font-weight:800;box-shadow:0 6px 14px rgba(37,99,235,.08)}
.report-subject-chip>i{width:22px;height:22px;border-radius:8px;display:grid;place-items:center;background:#dbeafe;color:#2563eb;font-size:10px}
.report-subject-chip b{font-weight:800}
.report-subject-chip button{border:0;background:#fff;color:#94a3b8;cursor:pointer;padding:0;width:22px;height:22px;border-radius:99px;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 0 0 1px #e2e8f0}
.report-subject-chip button:hover{background:#fee2e2;color:#be123c;box-shadow:none}
.report-subject-chip.is-locked{background:#f8fafc;border-color:#e2e8f0;color:#64748b;box-shadow:none}
.report-subject-chip.is-locked>i{background:#e2e8f0;color:#64748b}
.report-subject-add{margin:0;display:flex;flex-direction:column;gap:6px;min-width:240px}
.report-subject-add span{font-size:11px;font-weight:800;color:#64748b}
.report-subject-add .pretty-select,.report-subject-add select{min-width:240px;width:100%}
.report-card-table-wrap{overflow:auto;overflow-x:auto;overflow-y:auto;max-height:min(68vh,760px);max-width:100%;background:#fff;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-x pan-y;scrollbar-width:thin}
.report-card-table-wrap::-webkit-scrollbar{height:8px;width:8px}
.report-card-table-wrap::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:999px}
.report-card-table-wrap::-webkit-scrollbar-track{background:#f8fafc}
.report-card-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:42px 20px;text-align:center;color:#64748b}
.report-card-empty i{width:52px;height:52px;border-radius:18px;display:grid;place-items:center;background:#eff6ff;color:#2563eb;font-size:20px}
.report-card-empty strong{color:#0f172a;font-size:14px}
.report-card-empty p{margin:0;font-size:12px;line-height:1.7}
.report-card-table{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0}
.report-card-table th,.report-card-table td{border-bottom:1px solid #f1f5f9;padding:10px 12px;text-align:center;vertical-align:middle}
.report-card-table th{position:sticky;top:0;z-index:3;background:linear-gradient(180deg,#f8fbff,#f1f5f9);color:#334155;font-size:11px;font-weight:800;white-space:nowrap}
.report-subject-head{display:inline-flex;align-items:center;justify-content:center;min-width:92px;padding:7px 10px;border-radius:12px;background:#fff;border:1px solid #dbeafe;color:#1e3a8a;box-shadow:0 4px 10px rgba(37,99,235,.06)}
.report-card-table th.is-student-last,.report-card-table td.is-student-last{position:sticky;right:0;z-index:4;min-width:148px;width:148px;text-align:right;background:#fff;box-shadow:-8px 0 14px rgba(15,23,42,.05);white-space:nowrap;vertical-align:middle;padding-right:14px;padding-left:10px}
.report-card-table th.is-student-first,.report-card-table td.is-student-first{position:sticky;right:148px;z-index:4;min-width:112px;width:112px;text-align:right;background:#fff;box-shadow:-4px 0 10px rgba(15,23,42,.04);white-space:nowrap;vertical-align:middle;padding-right:14px;padding-left:10px}
.report-card-table th.is-student-last{z-index:6;background:linear-gradient(180deg,#f8fbff,#f1f5f9)}
.report-card-table th.is-student-first{z-index:5;background:linear-gradient(180deg,#f8fbff,#f1f5f9)}
.report-card-table td.is-student-last .report-student-name,.report-card-table td.is-student-first .report-student-name{display:block;font-size:13px;font-weight:800;color:#0f172a;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.report-card-table td.is-student-last .report-student-code{display:block;margin-top:3px;color:#64748b;font-size:10px;font-weight:700;white-space:nowrap}
.report-card-table tbody tr:nth-child(even) td.is-student-last,.report-card-table tbody tr:nth-child(even) td.is-student-first{background:#fbfdff}
.report-card-table tbody tr:hover td.is-student-last,.report-card-table tbody tr:hover td.is-student-first{background:#eff6ff}
.report-card-student{display:flex;align-items:center;gap:10px}
.report-card-student strong{display:block;font-size:13px}
.report-card-student small{display:block;margin-top:2px;color:var(--muted);font-size:10px}
.report-score-field{margin:0;display:flex;flex-direction:column;align-items:center;gap:5px;min-width:96px}
.report-score-field input{width:96px;text-align:center;font-weight:800;padding:10px 8px;border:1px solid #dbeafe;border-radius:14px;background:#fff;box-shadow:inset 0 1px 0 #fff}
.report-score-field input:focus{border-color:#2563eb;box-shadow:0 0 0 4px rgba(37,99,235,.1)}
.report-score-field select{appearance:none;-webkit-appearance:none;width:176px;min-width:176px;max-width:none;text-align:center;text-align-last:center;font-weight:800;padding:10px 28px 10px 12px;white-space:nowrap;border:1px solid #dbeafe;border-radius:14px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%2364748b' d='M1.2 1.3 6 6.1l4.8-4.8'/%3E%3C/svg%3E") no-repeat left 12px center;box-shadow:0 4px 10px rgba(15,23,42,.04);cursor:pointer}
.report-score-field select:focus{border-color:#2563eb;box-shadow:0 0 0 4px rgba(37,99,235,.1);outline:0}
.report-score-field b{min-width:72px;text-align:center;font-size:11px;font-weight:800;color:#1d4ed8;background:#eff6ff;border-radius:10px;padding:4px 8px}
.report-score-field.is-perfect,.report-score-value.is-perfect{--tone:#ca8a04;--tone-bg:#fef9c3;--tone-soft:#fffbeb}
.report-score-field.is-high,.report-score-value.is-high{--tone:#047857;--tone-bg:#d1fae5;--tone-soft:#ecfdf5}
.report-score-field.is-good,.report-score-value.is-good{--tone:#1d4ed8;--tone-bg:#dbeafe;--tone-soft:#eff6ff}
.report-score-field.is-mid,.report-score-value.is-mid{--tone:#c2410c;--tone-bg:#ffedd5;--tone-soft:#fff7ed}
.report-score-field.is-low,.report-score-value.is-low{--tone:#be123c;--tone-bg:#ffe4e6;--tone-soft:#fff1f2}
.report-score-field.is-perfect input,.report-score-field.is-high input,.report-score-field.is-good input,.report-score-field.is-mid input,.report-score-field.is-low input{border-color:color-mix(in srgb,var(--tone) 45%,#fff);background:var(--tone-soft);color:var(--tone)}
.report-score-field.is-perfect select,.report-score-field.is-high select,.report-score-field.is-good select,.report-score-field.is-mid select,.report-score-field.is-low select{border-color:color-mix(in srgb,var(--tone) 45%,#fff);background-color:var(--tone-soft);color:var(--tone)}
.report-score-field.is-perfect b,.report-score-field.is-high b,.report-score-field.is-good b,.report-score-field.is-mid b,.report-score-field.is-low b{background:var(--tone-bg);color:var(--tone)}
.report-score-locked{display:inline-flex;align-items:center;justify-content:center;min-width:64px;padding:7px 10px;border-radius:12px;background:#f1f5f9;color:#475569;font-weight:800}
.report-score-locked.is-perfect{background:#fef9c3;color:#ca8a04}
.report-score-locked.is-high{background:#d1fae5;color:#047857}
.report-score-locked.is-good{background:#dbeafe;color:#1d4ed8}
.report-score-locked.is-mid{background:#ffedd5;color:#c2410c}
.report-score-locked.is-low{background:#ffe4e6;color:#be123c}
[data-report-excel-dialog] .grades-excel-process{grid-template-columns:1fr}
.report-excel-map{display:flex;flex-direction:column;gap:12px;margin:0 0 16px}
.report-excel-map-head{padding:14px 16px;border:1px solid #dbeafe;border-radius:18px;background:linear-gradient(135deg,#eff6ff,#fff)}
.report-excel-map-head strong{display:flex;align-items:center;gap:8px;color:#1d4ed8;font-size:13px}
.report-excel-map-head p{margin:6px 0 0;color:#475569;font-size:12px;line-height:1.8}
.report-excel-map-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.report-excel-map-row{display:flex;flex-direction:column;align-items:stretch;gap:8px;padding:12px 14px;border:1px solid #e2e8f0;border-radius:18px;background:#fff;min-width:0}
.report-excel-map-row.is-matched{border-color:#bbf7d0;background:linear-gradient(180deg,#f0fdf4,#fff)}
.report-excel-map-row.is-addable{border-color:#fde68a;background:linear-gradient(180deg,#fffbeb,#fff)}
.report-excel-map-row.is-unknown{border-color:#fecdd3;background:linear-gradient(180deg,#fff1f2,#fff)}
.report-excel-map-row.is-skip{border-color:#e2e8f0;background:#f8fafc;box-shadow:none;opacity:.48;filter:grayscale(1)}
.report-excel-map-row.is-skip .report-excel-map-col b{color:#94a3b8;text-decoration:line-through}
.report-excel-map-col small{display:block;color:#64748b;font-size:10px;font-weight:800}
.report-excel-map-col b{display:block;margin-top:4px;color:#0f172a;font-size:13px}
.report-excel-map-arrow{display:none}
.report-excel-map-target{margin:0;min-width:0}
.report-excel-map-target>span{font-size:10px;font-weight:800;color:#64748b}
.report-excel-map-target small{display:block;margin-top:6px;color:#64748b;font-size:11px;line-height:1.6}
.report-excel-map-row.is-addable .report-excel-map-target small{color:#92400e}
.report-excel-map-row.is-matched .report-excel-map-target small{color:#166534}
.report-excel-map-row.is-unknown .report-excel-map-target small{color:#9f1239}
.report-excel-map-row.is-skip .report-excel-map-target small{color:#94a3b8}
@media(max-width:720px){
    .report-excel-map-list{grid-template-columns:1fr}
}
.report-excel-guide{margin:0 0 14px;padding:14px 16px;border:1px solid #bfdbfe;border-radius:18px;background:linear-gradient(180deg,#eff6ff,#fff)}
.report-excel-guide strong{display:flex;align-items:center;gap:8px;margin-bottom:6px;color:#1d4ed8;font-size:13px}
.report-excel-guide p{margin:0;color:#334155;font-size:12px;line-height:1.8}
.report-excel-guide ul{margin:10px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px;list-style:none}
.report-excel-guide li{padding:6px 12px;border-radius:99px;background:#dbeafe;color:#1e40af;font-weight:800;font-size:12px}
.report-excel-guide.is-descriptive{border-color:#fde68a;background:linear-gradient(180deg,#fffbeb,#fff)}
.report-excel-guide.is-descriptive strong{color:#92400e}
.report-excel-guide.is-descriptive p{color:#78350f}
.report-excel-guide.is-descriptive li{background:#fef3c7;color:#92400e}
.report-card-table td:has(select){min-width:196px;padding:10px 14px}
.grades-table a.mini-action{text-decoration:none;color:#4338ca}
.cultural-hero .eyebrow{background:#ecfdf5;color:#047857}
.online-hero .eyebrow{background:#f5f3ff;color:#6d28d9}

/* attendance module */
/* ??? Attendance Tabs ??? */
.att-tabs .stage-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.att-tabs.att-tabs-3 .stage-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}
.att-tabs.att-tabs-4 .stage-tabs{grid-template-columns:repeat(4,minmax(0,1fr))}
.att-tabs.att-tabs-2 .stage-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}
.att-tabs.report-card-tabs{margin-bottom:0;padding:8px;border:1px solid #dbeafe;background:linear-gradient(135deg,#eff6ff,#fff);box-shadow:0 10px 28px rgba(37,99,235,.06)}
.att-tabs .stage-tabs button,.att-tabs .stage-tabs a{min-height:48px;border-radius:14px;font-size:12.5px;gap:8px;white-space:nowrap}
.att-tabs .stage-tabs button i,.att-tabs .stage-tabs a i{width:28px;height:28px;border-radius:10px;display:grid;place-items:center;background:rgba(37,99,235,.08);font-size:13px;flex:0 0 28px}
.att-tabs .stage-tabs button.active i,.att-tabs .stage-tabs a.active i{background:rgba(255,255,255,.2);color:#fff}
.att-tabs .stage-tabs button .count-badge,.att-tabs .stage-tabs a .count-badge{position:static;margin-right:0;min-width:18px;height:18px;font-size:9px}
.att-workspace{margin-top:0;border-radius:18px;overflow:hidden;box-shadow:0 1px 3px rgba(15,23,42,.04)}

/* ??? Hero ??? */
.att-hero{display:flex;align-items:flex-start;gap:18px;padding:24px 28px;border-bottom:1px solid #e2e8f0;background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 50%,#fff 100%)}
.att-hero-icon{width:52px;height:52px;border-radius:16px;background:linear-gradient(135deg,#0ea5e9,#0369a1);color:#fff;display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0;box-shadow:0 4px 14px rgba(14,165,233,.25)}
.att-hero h2{margin:0 0 4px;font-size:17px;font-weight:800;color:#0f172a}
.att-hero p{margin:0;font-size:12.5px;color:#64748b;line-height:1.6}

/* ??? Cascade Selects ??? */
.att-cascade,.att-report-cascade{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;padding:22px 28px;border-bottom:1px solid #f1f5f9}
.att-cascade label span,.att-report-cascade label span{font-size:12px;font-weight:700;color:#475569;margin-bottom:6px;display:block}

/* ??? Period Selector ??? */
.att-period-wrap{padding:20px 28px;border-bottom:1px solid #f1f5f9;background:#fafbfd}
.att-period-list{display:flex;flex-wrap:wrap;gap:10px}
.att-period-btn{display:flex;align-items:center;gap:10px;padding:10px 18px;border-radius:14px;border:2px solid #e2e8f0;background:#fff;font-size:12.5px;font-weight:700;color:#475569;cursor:pointer;transition:all .2s ease;min-width:140px}
.att-period-btn:hover{border-color:#93c5fd;background:#f0f9ff;transform:translateY(-1px);box-shadow:0 2px 8px rgba(14,165,233,.08)}
.att-period-btn.active{border-color:#0284c7;background:linear-gradient(135deg,#e0f2fe,#f0f9ff);color:#0369a1;box-shadow:0 2px 12px rgba(2,132,199,.15)}
.att-pb-num{width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,#e2e8f0,#f1f5f9);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:900;color:#475569;flex-shrink:0}
.att-period-btn.active .att-pb-num{background:linear-gradient(135deg,#0ea5e9,#0284c7);color:#fff}
.att-pb-icon{width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,#e2e8f0,#f1f5f9);display:flex;align-items:center;justify-content:center;font-size:15px;color:#475569;flex-shrink:0}
.att-period-btn.active .att-pb-icon{background:linear-gradient(135deg,#0ea5e9,#0284c7);color:#fff}
.att-pb-body{display:flex;flex-direction:column;gap:2px;text-align:right}
.att-pb-body strong{font-size:12.5px;font-weight:800;line-height:1.3}
.att-pb-body small{font-size:10.5px;color:#94a3b8;font-weight:600;direction:ltr;text-align:right}
.att-period-btn.active .att-pb-body small{color:#0369a1}

/* ??? Board ??? */
.att-board{padding:0 0 24px}
.att-board-header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 28px;flex-wrap:wrap}
.att-board-header h3{margin:0;font-size:15px;font-weight:800;color:#0f172a}
.att-board-header p{margin:2px 0 0;font-size:12px;color:#64748b}
.att-search{display:flex;align-items:center;gap:8px;padding:8px 16px;border-radius:12px;border:1.5px solid #e2e8f0;background:#f8fafc;transition:border-color .2s}
.att-search:focus-within{border-color:#93c5fd;box-shadow:0 0 0 3px rgba(147,197,253,.15)}
.att-search input{border:none;background:transparent;outline:none;font-size:13px;width:200px}
.att-search i{color:#94a3b8;font-size:13px}

/* ??? Roster ??? */
.att-roster{display:flex;flex-direction:column;gap:6px;padding:0 20px}
.att-roster-detail{padding:0 12px}
.att-student-row{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 14px;border-radius:16px;background:#fff;border:1px solid #e8eef7;transition:all .18s ease}
.att-student-row:hover{border-color:#d0d9e8;box-shadow:0 2px 8px rgba(15,23,42,.04)}
.att-student-row[data-status="unexcused"]{border-right:3px solid #dc2626}
.att-student-row[data-status="excused"]{border-right:3px solid #d97706}
.att-student-row[data-status="late"]{border-right:3px solid #7c3aed}
.att-student-row[data-status="present"]{border-right:3px solid #16a34a}
.att-avatar{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;overflow:hidden;color:#fff;font-weight:800;font-size:16px;background:linear-gradient(135deg,#60a5fa,#2563eb);flex-shrink:0}
.att-student-info{min-width:0}
.att-student-info strong{display:block;font-size:13px;font-weight:800;color:#0f172a;line-height:1.4}
.att-student-info small{display:block;font-size:10px;color:var(--muted,#94a3b8);margin-top:2px;direction:ltr;text-align:right}

/* ??? Status Controls ??? */
.att-controls{display:flex;flex-direction:column;gap:8px;align-items:flex-end}
.att-radio-group{display:flex;flex-wrap:wrap;gap:6px}
.att-radio{display:inline-flex;align-items:center;gap:5px;padding:7px 14px;border-radius:10px;border:2px solid #e2e8f0;background:#fafbfd;font-size:11.5px;font-weight:700;cursor:pointer;color:#475569;transition:all .15s ease}
.att-radio:hover{border-color:#cbd5e1;background:#f1f5f9}
.att-radio input{display:none}
.att-radio.is-present:has(input:checked){border-color:#16a34a;background:linear-gradient(135deg,#dcfce7,#f0fdf4);color:#15803d;box-shadow:0 2px 8px rgba(22,163,74,.12)}
.att-radio.is-excused:has(input:checked){border-color:#d97706;background:linear-gradient(135deg,#fef3c7,#fffbeb);color:#92400e;box-shadow:0 2px 8px rgba(217,119,6,.12)}
.att-radio.is-unexcused:has(input:checked){border-color:#dc2626;background:linear-gradient(135deg,#fee2e2,#fef2f2);color:#991b1b;box-shadow:0 2px 8px rgba(220,38,38,.12)}
.att-radio.is-late:has(input:checked){border-color:#7c3aed;background:linear-gradient(135deg,#ede9fe,#f5f3ff);color:#6d28d9;box-shadow:0 2px 8px rgba(124,58,237,.12)}

/* ??? Remark ??? */
.att-remark-wrap{display:flex;flex-wrap:wrap;gap:5px}
.att-remark-opt{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;border-radius:10px;border:1.5px dashed #e2e8f0;font-size:11px;cursor:pointer;color:#475569;transition:all .15s}
.att-remark-opt:hover{border-color:#cbd5e1}
.att-remark-opt input{display:none}
.att-remark-opt:has(input:checked){border-style:solid;border-color:#0284c7;background:linear-gradient(135deg,#e0f2fe,#f0f9ff);color:#0369a1;font-weight:700}

/* ??? Status Badge (view-only) ??? */
.att-status-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:10px;font-size:11.5px;font-weight:700}
.att-status-badge.is-present{background:linear-gradient(135deg,#dcfce7,#f0fdf4);color:#15803d}
.att-status-badge.is-excused{background:linear-gradient(135deg,#fef3c7,#fffbeb);color:#92400e}
.att-status-badge.is-unexcused{background:linear-gradient(135deg,#fee2e2,#fef2f2);color:#991b1b}
.att-status-badge.is-late{background:linear-gradient(135deg,#ede9fe,#f5f3ff);color:#6d28d9}

/* ??? Search Wrap ??? */
.att-search-wrap{flex-shrink:0}

/* ??? Save Footer ??? */
.att-save-footer{display:flex;align-items:center;justify-content:space-between;padding:18px 28px;border-top:2px solid #f1f5f9;margin-top:16px;background:linear-gradient(135deg,#fafbfd,#f0f9ff);border-radius:0 0 18px 18px;gap:16px;flex-wrap:wrap}
.att-save-stats{display:flex;gap:14px;font-size:12px;font-weight:700;color:#64748b;flex-wrap:wrap}
.att-save-stats span{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:8px;background:#fff;border:1px solid #f1f5f9}
.att-save-stats .stat-present{color:#15803d;border-color:#dcfce7}
.att-save-stats .stat-absent{color:#dc2626;border-color:#fee2e2}
.att-save-stats .stat-late{color:#7c3aed;border-color:#ede9fe}
.att-save-btn{display:inline-flex;align-items:center;gap:8px;padding:12px 28px;border-radius:12px;border:none;background:linear-gradient(135deg,#0ea5e9,#0284c7);color:#fff;font-size:14px;font-weight:800;cursor:pointer;transition:all .2s;box-shadow:0 4px 14px rgba(2,132,199,.25)}
.att-save-btn:hover{transform:translateY(-1px);box-shadow:0 6px 20px rgba(2,132,199,.35)}
.att-save-btn:active{transform:translateY(0)}
.att-save-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}
.att-form-actions{display:flex;justify-content:flex-end;padding:18px 28px 0;border-top:1px solid #f1f5f9;margin-top:16px}

/* ??? Empty State ??? */
.att-empty{display:flex;align-items:center;gap:12px;padding:28px;color:#94a3b8;font-size:13px;background:#fafbfd;border-radius:12px}
.att-empty i{font-size:20px}

/* ??? Report ??? */
.att-report-body{padding:18px 28px 28px;min-width:0}
[data-rep-summary]{min-width:0}
.att-report-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scrollbar-width:thin;border-radius:12px}
.att-report-scroll::-webkit-scrollbar{height:6px}
.att-report-scroll::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:999px}
.att-notice-status-tabs{margin:0 18px 12px;display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:6px}
.att-notice-status-tabs:has(a:nth-child(4)){grid-template-columns:repeat(4,minmax(0,1fr))!important}
.att-notice-status-tabs a{min-height:44px;font-size:11px;padding:10px 8px}

/* Teacher review + absence notice review cards */
.att-hero{position:relative}
.att-hero-badge{margin-right:auto;align-self:center;padding:8px 14px;border-radius:999px;background:linear-gradient(135deg,#dbeafe,#eff6ff);color:#1d4ed8;font-size:12px;font-weight:800;border:1px solid #bfdbfe;white-space:nowrap}
.att-hero-badge.is-warn{background:linear-gradient(135deg,#ffedd5,#fff7ed);color:#c2410c;border-color:#fdba74}
.att-hero-teacher .att-hero-icon{background:linear-gradient(135deg,#f59e0b,#d97706)}
.att-hero-notice .att-hero-icon{background:linear-gradient(135deg,#f43f5e,#e11d48)}
.att-empty-block{display:grid;place-items:center;gap:10px;padding:48px 24px;color:#94a3b8;text-align:center}
.att-empty-block i{font-size:28px;opacity:.7}
.att-empty-block p{margin:0;font-size:13.5px;font-weight:600}
.att-review-list{padding:4px 18px 22px;display:flex;flex-direction:column;gap:14px}
.att-day-divider{display:flex;align-items:center;gap:10px;margin:6px 2px 0;color:#0369a1;font-size:13px}
.att-day-divider::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,#bae6fd,transparent)}
.att-day-divider i{width:28px;height:28px;border-radius:9px;display:grid;place-items:center;background:#e0f2fe;color:#0284c7;font-size:12px}
.att-review-card{border:1px solid #e2e8f0;border-radius:18px;background:#fff;padding:16px 18px;box-shadow:0 8px 24px rgba(15,23,42,.04);transition:border-color .2s,box-shadow .2s}
.att-review-card.is-focus,.att-review-card.is-pending{border-color:#fdba74;box-shadow:0 10px 28px rgba(249,115,22,.1)}
.att-review-card.is-approved,.att-review-card.is-excused{border-color:#86efac}
.att-review-card.is-rejected,.att-review-card.is-unexcused{border-color:#fca5a5}
.att-review-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap}
.att-review-identity{display:flex;align-items:center;gap:12px;min-width:0}
.att-review-identity h3{margin:0 0 4px;font-size:15px;font-weight:800;color:#0f172a}
.att-review-identity p{margin:0;font-size:12px;color:#64748b;line-height:1.5}
.att-avatar{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;flex:0 0 44px;color:#fff;font-size:18px}
.att-avatar.is-teacher{background:linear-gradient(135deg,#f59e0b,#ea580c)}
.att-avatar.is-student{background:linear-gradient(135deg,#0ea5e9,#2563eb)}
.att-review-badges{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}
.att-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;font-size:11px;font-weight:700;background:#f8fafc;border:1px solid #e2e8f0;color:#475569}
.att-chip.is-date{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}
.att-chip.is-scope{background:#f5f3ff;border-color:#ddd6fe;color:#6d28d9}
.att-chip.is-reporter-parent{background:#fdf2f8;border-color:#fbcfe8;color:#be185d}
.att-chip.is-reporter-student{background:#ecfeff;border-color:#a5f3fc;color:#0e7490}
.att-review-meta{display:flex;flex-wrap:wrap;gap:10px 16px;margin-top:12px;font-size:12px;color:#64748b}
.att-review-meta span{display:inline-flex;align-items:center;gap:6px}
.att-review-desc{margin:10px 0 0;padding:10px 12px;border-radius:12px;background:#f8fafc;border:1px solid #f1f5f9;font-size:12.5px;line-height:1.7;color:#334155}
.att-stat-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:14px}
.att-stat{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 8px;border-radius:12px;background:#f8fafc;border:1px solid #f1f5f9}
.att-stat b{font-size:16px;font-weight:900;line-height:1}
.att-stat span{font-size:10.5px;font-weight:700;color:#64748b}
.att-stat.is-present{background:#f0fdf4;border-color:#bbf7d0;color:#15803d}
.att-stat.is-absent{background:#fff1f2;border-color:#fecdd3;color:#be123c}
.att-stat.is-late{background:#f5f3ff;border-color:#ddd6fe;color:#6d28d9}
.att-stat.is-total{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}
.att-review-ok{margin:12px 0 0;display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:12px;background:#f0fdf4;border:1px solid #bbf7d0;color:#15803d;font-size:12.5px;font-weight:700}
.att-review-form{margin-top:14px;padding-top:14px;border-top:1px dashed #e2e8f0;display:grid;gap:10px}
.att-review-form label span{display:block;margin-bottom:6px;font-size:12px;font-weight:700;color:#475569}
.att-review-form textarea{width:100%;border:1.5px solid #e2e8f0;border-radius:12px;padding:10px 12px;font-size:13px;background:#f8fafc;resize:vertical;min-height:64px}
.att-review-form textarea:focus{outline:none;border-color:#93c5fd;box-shadow:0 0 0 3px rgba(147,197,253,.18);background:#fff}
.att-review-actions{display:flex;flex-wrap:wrap;gap:8px}
.att-review-actions .primary-btn,.att-review-actions .danger-outline-btn{display:inline-flex;align-items:center;gap:8px;min-height:42px}
.att-review-result{margin:12px 0 0;padding:10px 12px;border-radius:12px;background:#f8fafc;border:1px solid #e2e8f0;font-size:12.5px;color:#475569;line-height:1.6}
@media (max-width:720px){
    .att-stat-row{grid-template-columns:repeat(2,minmax(0,1fr))}
    .att-notice-status-tabs:has(a:nth-child(4)){grid-template-columns:repeat(2,minmax(0,1fr))!important}
    .att-hero-badge{margin:8px 0 0;width:100%;text-align:center}
}
.att-report-table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px;border-radius:12px;overflow:hidden;border:1px solid #e2e8f0}
.att-report-table th{text-align:right;padding:10px 14px;background:linear-gradient(135deg,#f8fafc,#f1f5f9);border-bottom:2px solid #e2e8f0;font-weight:800;font-size:12px;color:#475569}
.att-report-table td{padding:10px 14px;border-bottom:1px solid #f1f5f9}
.att-report-table tr:last-child td{border-bottom:none}
.att-report-table tr:hover td{background:#fafbfd}
.att-report-table td.is-present{color:#15803d;font-weight:800}
.att-report-table td.is-absent{color:#dc2626;font-weight:800}
.att-report-table td.is-late{color:#7c3aed;font-weight:800}
/* ??? Report Filter Bar ??? */
.att-rep-filter-bar{padding:14px 28px;border-bottom:1px solid #f1f5f9;display:flex;align-items:center}
.att-rep-filter-toggle{display:inline-flex;align-items:center;gap:8px;padding:8px 18px;border-radius:10px;border:1.5px solid #e2e8f0;background:#f8fafc;font-size:12.5px;font-weight:700;color:#475569;cursor:pointer;transition:all .18s}
.att-rep-filter-toggle:hover{border-color:#93c5fd;background:#f0f9ff}
.att-rep-chevron{font-size:10px;transition:transform .2s}
.att-rep-chevron.rotated{transform:rotate(180deg)}
.att-rep-filter-body{border-bottom:1px solid #f1f5f9}
.att-rep-filter-body input[type="search"]{width:100%;padding:8px 14px;border:1.5px solid #e2e8f0;border-radius:10px;font-size:13px;background:#f8fafc;outline:none;transition:border-color .2s}
.att-rep-filter-body input[type="search"]:focus{border-color:#93c5fd;box-shadow:0 0 0 3px rgba(147,197,253,.15)}

/* ??? Report Table Enhancements ??? */
.att-row-alt td{background:#f8fafc!important}
.att-tbl-num{font-weight:800;color:#94a3b8;text-align:center;width:40px}
.att-tbl-date{font-weight:700;white-space:nowrap}
.att-tbl-count{font-weight:700;color:#0f172a}
.att-tbl-recorded{font-weight:700;color:#0369a1}
.att-detail-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;border-radius:8px;border:1.5px solid #e2e8f0;background:#fff;font-size:11px;font-weight:700;color:#475569;cursor:pointer;transition:all .15s;white-space:nowrap}
.att-detail-btn:hover{border-color:#0284c7;color:#0284c7;background:#f0f9ff}

/* ??? Pager ??? */
.att-rep-pager{padding:16px 28px}
.att-pager{display:flex;align-items:center;justify-content:center;gap:4px;flex-wrap:wrap}
.att-pager-btn{width:36px;height:36px;border-radius:10px;border:1.5px solid #e2e8f0;background:#fff;font-size:13px;font-weight:700;color:#475569;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}
.att-pager-btn:hover:not(:disabled){border-color:#0284c7;color:#0284c7;background:#f0f9ff}
.att-pager-btn.active{background:linear-gradient(135deg,#0ea5e9,#0284c7);color:#fff;border-color:#0284c7;cursor:default}
.att-pager-dots{color:#94a3b8;padding:0 4px;font-size:14px}

/* ??? Detail Dialog ??? */
.att-detail-dialog{width:min(95vw,900px);max-height:85vh;border:none;border-radius:20px;box-shadow:0 25px 50px rgba(15,23,42,.18);padding:0;overflow:hidden}
.att-detail-dialog[open]{display:flex;flex-direction:column}
.att-detail-dialog::backdrop{background:rgba(15,23,42,.45);backdrop-filter:blur(4px)}
.att-detail-dialog-head{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border-bottom:1px solid #e2e8f0}
.att-detail-dialog-head h3{margin:0;font-size:15px;font-weight:800;color:#0f172a}
.att-detail-close{width:36px;height:36px;border-radius:10px;border:none;background:#fff;color:#64748b;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;transition:all .15s}
.att-detail-close:hover{background:#fee2e2;color:#dc2626}

/* ??? Detail Tabs ??? */
.att-detail-tabs{display:flex;flex-wrap:wrap;gap:4px;padding:12px 24px;border-bottom:1px solid #f1f5f9;background:#fafbfd}
.att-dtab{padding:8px 18px;border-radius:10px;border:1.5px solid #e2e8f0;background:#fff;font-size:12px;font-weight:700;color:#475569;cursor:pointer;transition:all .15s;white-space:nowrap}
.att-dtab:hover{border-color:#93c5fd;background:#f0f9ff}
.att-dtab.active{background:linear-gradient(135deg,#0ea5e9,#0284c7);color:#fff;border-color:#0284c7}

/* ??? Detail Content ??? */
.att-detail-content{flex:1;overflow-y:auto;padding:16px 20px;max-height:calc(85vh - 200px)}
.att-detail-class-section{margin-bottom:20px}
.att-detail-class-section:last-child{margin-bottom:0}
.att-detail-class-header{display:flex;align-items:center;gap:8px;padding:10px 16px;background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border-radius:12px;margin-bottom:10px;font-size:13px;font-weight:700;color:#0369a1}
.att-detail-class-header i{font-size:14px;color:#0ea5e9}
.att-detail-footer{display:flex;justify-content:flex-end;padding:14px 24px;border-top:1px solid #f1f5f9;background:#fafbfd}
.att-detail-footer .btn{padding:10px 24px;border-radius:12px;font-size:13px;font-weight:800}

/* Class students (teacher view) */
.class-students-page .cs-select-card .section-head{padding-bottom:0}
.class-students-page .cs-cascade{grid-template-columns:repeat(3,minmax(0,1fr));border-bottom:none}
.class-students-page .cs-panel .table-heading{align-items:center;gap:12px}
.class-students-page .cs-roster{display:flex;flex-direction:column;gap:8px;padding:8px 20px 20px}
.class-students-page .cs-student-row{
    display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:12px;align-items:center;
    padding:12px 14px;border:1px solid #e2e8f0;border-radius:14px;background:#fff;
}
.class-students-page .cs-student-row.is-hidden{display:none}
.class-students-page .cs-avatar{
    width:44px;height:44px;border-radius:14px;overflow:hidden;display:flex;align-items:center;justify-content:center;
    background:linear-gradient(135deg,#e0e7ff,#c7d2fe);color:#3730a3;font-weight:800;font-size:15px;
}
.class-students-page .cs-avatar img{width:100%;height:100%;object-fit:cover}
.class-students-page .cs-student-row strong{display:block;font-size:14px;color:#0f172a}
.class-students-page .cs-student-row small{color:#64748b;font-size:12px}
.class-students-page .cs-student-meta{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}
.class-students-page .cs-pill{
    display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;
    background:#f8fafc;border:1px solid #e2e8f0;color:#475569;font-size:11px;font-weight:700;
}
.class-students-page .cs-seating-wrap{padding:8px 20px 24px}
.class-students-page .cs-seating-wrap .classmate-seating{margin-top:4px}
.class-students-page .empty-state.compact{padding:36px 20px}

/* ?? Class lists page ?? */
.class-lists-page{display:flex;flex-direction:column;gap:16px}
.lst-studio{padding:20px 22px;display:flex;flex-direction:column;gap:18px;border-radius:20px;border:1px solid #e8eef6;background:linear-gradient(180deg,#fff 0%,#f8fbff 100%)}
.lst-studio-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.lst-type-pills{display:flex;flex-wrap:wrap;gap:8px;padding:4px;background:#f1f5f9;border-radius:14px;border:1px solid #e2e8f0}
.lst-pill{
    display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border:0;border-radius:11px;
    background:transparent;color:#64748b;font-size:13px;font-weight:800;cursor:pointer;transition:.18s ease;
}
.lst-pill i{font-size:14px}
.lst-pill:hover{color:#334155;background:rgba(255,255,255,.7)}
.lst-pill.is-active{background:#fff;color:#1d4ed8;box-shadow:0 4px 14px rgba(37,99,235,.14)}
.lst-print-btn{min-width:120px;border-radius:12px;padding:11px 20px;font-size:13px}
.lst-studio-filters{display:grid;grid-template-columns:minmax(140px,.9fr) minmax(120px,.8fr) minmax(0,2fr);gap:12px;align-items:end}
.lst-field{display:flex;flex-direction:column;gap:6px;min-width:0}
.lst-field>span,.lst-field-head span{font-size:11px;font-weight:800;color:#64748b}
.lst-field-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:2px}
.lst-class-actions{display:inline-flex;gap:6px;padding:3px;background:#f1f5f9;border-radius:10px;border:1px solid #e2e8f0}
.lst-action-btn{
    display:inline-flex;align-items:center;gap:5px;padding:6px 10px;border:0;border-radius:8px;
    background:transparent;color:#64748b;font-size:11px;font-weight:800;cursor:pointer;transition:.15s;
}
.lst-action-btn i{font-size:10px;opacity:.8}
.lst-action-btn:hover{background:#fff;color:#1d4ed8;box-shadow:0 2px 6px rgba(37,99,235,.1)}
.lst-action-btn.is-active{background:#fff;color:#1d4ed8;box-shadow:0 2px 8px rgba(37,99,235,.14)}
.lst-field-grow{grid-column:auto}
.lst-class-chips{display:flex;flex-wrap:wrap;gap:8px;min-height:44px;padding:10px;border-radius:14px;border:1px solid #e2e8f0;background:linear-gradient(180deg,#fff,#f8fafc)}
.lst-class-chips:empty::after{content:attr(data-empty-label);color:#94a3b8;font-size:12px;font-weight:700;display:flex;align-items:center}
.lst-chip{
    display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:999px;border:1px solid #dbeafe;
    background:#fff;color:#475569;font-size:12px;font-weight:800;cursor:pointer;transition:.15s;
    box-shadow:0 1px 3px rgba(15,23,42,.04);
}
.lst-chip::before{
    content:'';width:8px;height:8px;border-radius:50%;background:#cbd5e1;transition:.15s;
}
.lst-chip.is-on{
    background:linear-gradient(135deg,#2563eb,#4f46e5);border-color:transparent;color:#fff;
    box-shadow:0 6px 16px rgba(37,99,235,.22);
}
.lst-chip.is-on::before{background:#fff;box-shadow:0 0 0 2px rgba(255,255,255,.35)}
.lst-studio-options{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding-top:4px;border-top:1px solid #eef2f7}
.lst-mode-group{display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap}
.lst-mode-label{font-size:11px;font-weight:800;color:#64748b;white-space:nowrap}
.lst-segment{display:inline-flex;padding:3px;background:#f1f5f9;border-radius:12px;border:1px solid #e2e8f0}
.lst-seg-btn{
    display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;color:#64748b;
    font-size:12px;font-weight:800;padding:8px 14px;border-radius:9px;cursor:pointer;transition:.15s;
}
.lst-seg-btn i{font-size:11px;opacity:.85}
.lst-seg-btn.is-active{background:#fff;color:#1d4ed8;box-shadow:0 2px 8px rgba(37,99,235,.12)}
.lst-term-field{display:inline-flex;align-items:center;gap:8px}
.lst-term-field span{font-size:11px;font-weight:800;color:#64748b}
.lst-term-field select{min-width:88px}
.lst-blank-variant-group{display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap}
.lst-print-settings{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;width:100%}
.lst-setting-field{display:flex;flex-direction:column;gap:5px;min-width:0}
.lst-setting-field>span{font-size:11px;font-weight:800;color:#64748b}
.lst-setting-field select,.lst-setting-field input[type="number"],.lst-setting-field input[type="text"]{
    min-height:38px;min-width:88px;padding:8px 10px;border:1px solid #e2e8f0;border-radius:10px;
    background:#fff;font-size:12px;font-weight:800;color:#0f172a
}
.lst-setting-field input[type="text"]{min-width:160px}
.lst-setting-field[data-lst-header1-wrap] input,
.lst-setting-field[data-lst-header2-wrap] input{min-width:220px}
.lst-setting-grow{flex:1 1 180px}
.lst-pill-link{text-decoration:none;color:inherit}
.process-notebook-page{display:flex;flex-direction:column;gap:0}
.pnb-workspace{display:grid;grid-template-columns:minmax(0,1fr);gap:20px}
.pnb-studio{gap:20px;overflow:visible;padding:22px 24px}
.pnb-hero{
    display:flex;flex-direction:column;gap:16px;padding-bottom:18px;
    border-bottom:1px solid #eef2f7;
}
.pnb-hero-main{display:flex;align-items:flex-start;gap:14px;min-width:0}
.pnb-hero-copy{min-width:0}
.pnb-hero-copy h2{margin:0;font-size:19px;color:#0f172a;letter-spacing:-.02em;line-height:1.35}
.pnb-hero-copy p{margin:6px 0 0;font-size:12px;color:#64748b;font-weight:700;line-height:1.6}
.pnb-hero-bar{
    display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
}
.pnb-link-group{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pnb-link-btn{
    display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border-radius:12px;
    border:1px solid #e2e8f0;background:#fff;color:#475569;font-size:12px;font-weight:800;
    text-decoration:none;transition:.15s ease;white-space:nowrap;
}
.pnb-link-btn i{font-size:13px;color:#64748b}
.pnb-link-btn:hover{border-color:#93c5fd;color:#1d4ed8;background:#f8fbff}
.pnb-link-btn:hover i{color:#2563eb}
.pnb-print-cta{
    min-height:44px;padding:11px 22px;border-radius:12px;font-size:13px;
    white-space:nowrap;flex-shrink:0;
}
.pnb-intro-icon{
    width:52px;height:52px;border-radius:16px;flex-shrink:0;display:grid;place-items:center;
    background:linear-gradient(135deg,#eff6ff,#e0e7ff);color:#1d4ed8;font-size:22px;
    box-shadow:0 10px 24px rgba(37,99,235,.14);
}
.pnb-status-bar{
    display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
    padding:13px 18px;border-radius:14px;border:1px solid #dbeafe;
    background:linear-gradient(90deg,#eff6ff 0%,#f8fafc 100%);
}
.pnb-status-main{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:800;color:#1e40af;min-width:0}
.pnb-status-main span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pnb-status-main i{font-size:14px;color:#2563eb;flex-shrink:0}
.pnb-status-badge{
    display:inline-flex;align-items:center;padding:6px 12px;border-radius:999px;background:#fff;
    border:1px solid #dbeafe;color:#475569;font-size:11px;font-weight:800;white-space:nowrap;flex-shrink:0;
}
.pnb-step-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}
.pnb-step-card{
    padding:18px 20px;border-radius:16px;border:1px solid #e8eef6;background:#fff;
    box-shadow:0 4px 18px rgba(15,23,42,.03);overflow:visible;
}
.pnb-step-card--wide{grid-column:1/-1}
.pnb-step-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:16px}
.pnb-step-num{
    width:30px;height:30px;border-radius:10px;flex-shrink:0;display:grid;place-items:center;
    background:linear-gradient(135deg,#2563eb,#4f46e5);color:#fff;font-size:12px;font-weight:900;
    box-shadow:0 6px 14px rgba(37,99,235,.22);
}
.pnb-step-head h3{margin:0;font-size:14px;color:#0f172a}
.pnb-step-head p{margin:4px 0 0;font-size:11px;color:#94a3b8;font-weight:700;line-height:1.5}
.pnb-filter-grid{
    display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;
    padding:16px;border-radius:14px;border:1px solid #eef2f7;
    background:linear-gradient(180deg,#fafcff,#f8fafc);
}
.pnb-field{display:flex;flex-direction:column;gap:7px;min-width:0}
.pnb-field>span{font-size:11px;font-weight:800;color:#64748b}
.pnb-field select{width:100%;min-width:0}
.pnb-field .pretty-select,.pnb-field .pretty-select-trigger{width:100%;min-width:0}
.pnb-field .pretty-select-trigger{min-height:42px;padding:10px 12px;border-radius:12px;font-size:12px}
.pnb-counter-grid{
    display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;
}
.pnb-counter{
    display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:14px;
    border:1px solid #eef2f7;background:linear-gradient(180deg,#fff,#f8fafc);min-width:0;
}
.pnb-counter-icon{
    width:40px;height:40px;border-radius:12px;flex-shrink:0;display:grid;place-items:center;
    background:linear-gradient(135deg,#eff6ff,#e0e7ff);color:#2563eb;font-size:16px;
}
.pnb-counter-body{display:flex;flex-direction:column;gap:8px;min-width:0;flex:1}
.pnb-counter-label{font-size:11px;font-weight:800;color:#475569;line-height:1.35}
.pnb-counter-controls{display:flex;align-items:center;gap:6px}
.pnb-counter-controls input{
    width:44px;text-align:center;font-size:15px;font-weight:900;color:#0f172a;
    border:1px solid #e2e8f0;border-radius:10px;padding:7px 2px;background:#fff;flex-shrink:0;
}
.pnb-counter-btn{
    width:34px;height:34px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;
    color:#475569;cursor:pointer;display:grid;place-items:center;transition:.15s;flex-shrink:0;
}
.pnb-counter-btn:hover{border-color:#93c5fd;color:#1d4ed8;background:#eff6ff}
.pnb-photo-row{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.pnb-photo-preview{
    width:96px;height:120px;border-radius:12px;background:linear-gradient(180deg,#f8fafc,#eef2f7);
    border:2px dashed #cbd5e1;display:grid;place-items:center;overflow:hidden;color:#94a3b8;font-size:28px;flex-shrink:0;
}
.pnb-photo-preview img{width:100%;height:100%;object-fit:cover}
.pnb-photo-actions{display:flex;flex-direction:column;gap:8px;min-width:0}
.pnb-photo-actions .secondary-btn{align-self:flex-start}
.pnb-photo-hint{margin:0;font-size:11px;color:#94a3b8;font-weight:700;line-height:1.5;max-width:280px}
.pnb-contents{
    padding:20px;border-radius:16px;border:1px solid #e8eef6;
    background:linear-gradient(180deg,#fff,#f8fbff);
}
.pnb-contents-head{margin-bottom:16px}
.pnb-contents-head h3{margin:0;font-size:15px;color:#0f172a}
.pnb-contents-head p{margin:5px 0 0;font-size:11px;color:#94a3b8;font-weight:700}
.pnb-section-groups{display:flex;flex-direction:column;gap:18px}
.pnb-section-group{
    padding:14px 16px;border-radius:14px;border:1px solid #eef2f7;background:#fff;
}
.pnb-section-group h4{
    display:flex;align-items:center;gap:8px;margin:0 0 12px;font-size:12px;font-weight:900;color:#475569;
}
.pnb-section-group h4 i{color:#2563eb;font-size:13px}
.pnb-section-grid{
    display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:8px;
}
.pnb-section-btn{
    display:inline-flex;align-items:center;justify-content:center;gap:6px;
    font-size:11px;line-height:1.35;text-align:center;padding:10px 10px;border-radius:11px;
    background:#fff;border:1px solid #e2e8f0;min-height:40px;
}
.pnb-section-btn i{font-size:10px;flex-shrink:0}
.pnb-section-btn:hover{border-color:#93c5fd;background:#f8fbff;color:#1d4ed8}
.pnb-section-btn:disabled{opacity:.45;cursor:not-allowed}
.pnb-preview-panel{display:flex;flex-direction:column;min-height:0}
.pnb-preview-pills{
    display:flex;flex-wrap:wrap;gap:6px;padding:0 22px 14px;border-bottom:1px solid #f1f5f9;
}
.pnb-preview-pill{
    border:1px solid #e2e8f0;background:#fff;color:#64748b;border-radius:999px;
    padding:7px 13px;font-size:11px;font-weight:800;cursor:pointer;transition:.15s ease;white-space:nowrap;
}
.pnb-preview-pill:hover{border-color:#93c5fd;color:#1d4ed8;background:#f8fbff}
.pnb-preview-pill.is-active{
    background:linear-gradient(135deg,#2563eb,#4f46e5);border-color:transparent;color:#fff;
    box-shadow:0 6px 16px rgba(37,99,235,.22);
}
.pnb-preview-mock{
    width:100%;max-width:420px;margin:0 auto;background:#fff;border-radius:14px;
    border:1px solid #dbe4ef;box-shadow:0 18px 50px rgba(15,23,42,.08);
    overflow:hidden;aspect-ratio:210/297;position:relative;
}
.pnb-mock-cover{
    height:100%;padding:16px;box-sizing:border-box;display:flex;flex-direction:column;
    align-items:center;text-align:center;
    background:radial-gradient(ellipse 80% 50% at 50% 0%,#dbeafe 0%,transparent 65%),linear-gradient(180deg,#fff,#f8fafc);
}
.pnb-mock-cover .mock-logo{
    width:42px;height:42px;border-radius:50%;background:#fff;border:2px solid #bfdbfe;
    display:grid;place-items:center;color:#2563eb;margin-bottom:10px;
}
.pnb-mock-cover h3{margin:0;font-size:11px;font-weight:900;line-height:1.6;color:#0f172a}
.pnb-mock-cover .mock-photo{
    width:56px;height:70px;margin:12px 0;border-radius:8px;
    background:linear-gradient(160deg,#f1f5f9,#e2e8f0);border:1px solid #e2e8f0;
}
.pnb-mock-cover p{margin:0;font-size:9px;font-weight:800;color:#64748b}
.pnb-settings-form label{display:block;margin-bottom:14px}
.pnb-settings-form textarea{width:100%;min-height:120px;border-radius:12px;border:1px solid #e2e8f0;padding:12px;font-size:13px;line-height:1.7}
.pnb-settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px}
.pnb-settings-actions{margin-top:16px;display:flex;justify-content:flex-end}
@media(min-width:1440px){
    .pnb-workspace{
        grid-template-columns:minmax(0,1.25fr) minmax(380px,.75fr);
        align-items:start;gap:20px;
    }
    .pnb-preview-panel{position:sticky;top:12px;max-height:calc(100vh - 24px)}
    .pnb-preview-panel .lst-preview-stage{flex:1;min-height:420px}
}
@media(max-width:1200px){
    .pnb-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:900px){
    .pnb-settings-grid{grid-template-columns:1fr}
    .pnb-studio{padding:18px 16px}
    .pnb-hero-bar{align-items:stretch;flex-direction:column}
    .pnb-link-group{width:100%}
    .pnb-link-btn{flex:1;justify-content:center}
    .pnb-print-cta{width:100%;justify-content:center}
    .pnb-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .pnb-counter-grid{grid-template-columns:1fr}
    .pnb-section-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:560px){
    .pnb-filter-grid{grid-template-columns:1fr}
    .pnb-section-grid{grid-template-columns:1fr}
    .pnb-link-group{flex-direction:column}
    .pnb-link-btn{width:100%}
}
.lst-options-note{margin:0;font-size:11px;color:#94a3b8;font-weight:700}
.lst-preview-panel{padding:0;overflow:hidden;border-radius:20px;border:1px solid #e8eef6}
.lst-preview-head{
    display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 22px;
    border-bottom:1px solid #eef2f7;background:#fff;
}
.lst-preview-head h2{margin:0;font-size:15px;color:#0f172a}
.lst-preview-head p{margin:4px 0 0;font-size:12px;color:#64748b}
.lst-preview-badge{
    display:inline-flex;align-items:center;padding:6px 12px;border-radius:999px;background:#eff6ff;
    color:#1d4ed8;font-size:11px;font-weight:800;white-space:nowrap;
}
.lst-preview-stage{
    position:relative;height:min(78vh,720px);min-height:420px;padding:18px 20px;
    background:radial-gradient(ellipse at 50% 0%,#f8fafc,#eef2f7 70%);
    display:flex;justify-content:center;align-items:center;overflow:hidden;
}
.lst-preview-empty,.lst-preview-mock{width:100%;max-width:480px;margin:0 auto}
.lst-preview-empty{
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;
    height:100%;color:#94a3b8;text-align:center;
}
.lst-preview-empty i{font-size:42px;opacity:.45}
.lst-preview-empty p{margin:0;font-size:13px;font-weight:700}
.lst-preview-mock{
    background:#fff;border-radius:14px;border:1px solid #dbe4ef;box-shadow:0 18px 50px rgba(15,23,42,.08);
    padding:12px;overflow:hidden;max-height:100%;width:100%;
}
.lst-preview-mock .mock-head{
    display:grid;grid-template-columns:36px 1fr 48px;gap:6px;align-items:center;padding:8px;
    border:1.5px solid #1e293b;border-radius:8px 8px 0 0;margin-bottom:6px;font-size:8px;
    background:linear-gradient(180deg,#fafbfc,#fff);
}
.lst-preview-mock .mock-logo{
    width:32px;height:32px;border-radius:50%;background:#fff;border:1px solid #e2e8f0;
    display:grid;place-items:center;font-size:7px;color:#94a3b8;
}
.lst-preview-mock .mock-head strong{display:block;font-size:7px;line-height:1.4}
.lst-preview-mock .mock-head em{font-style:normal;font-size:6px;color:#475569}
.lst-preview-mock .mock-class{
    font-size:9px;font-weight:900;text-align:center;padding:4px;border-radius:6px;
    background:linear-gradient(135deg,#1e293b,#334155);color:#fff;
}
.lst-preview-mock table{width:100%;border-collapse:collapse;font-size:6px;border:1.5px solid #1e293b}
.lst-preview-mock th,.lst-preview-mock td{border:1px solid #334155;padding:2px 1px;text-align:center}
.lst-preview-mock th{background:#f1f5f9;font-weight:800}
.lst-preview-mock .mock-last-name,
.lst-preview-mock .mock-first-name{
    text-align:center;padding:1px 2px;font-weight:800;line-height:1.2;font-size:6px;color:#0f172a;
}
.lst-preview-mock .mock-name{text-align:center;padding:1px 2px;font-weight:700;line-height:1.2}
.lst-preview-mock .mock-name span{display:block;font-size:5.5px;font-weight:600}
.lst-preview-mock .mock-name strong{display:block;font-size:6px;font-weight:900}
.lst-preview-mock .mock-cg-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin-bottom:6px;font-size:6px;font-weight:700;color:#475569}
.lst-preview-mock .mock-session-title{
    margin:0 0 5px;padding:4px 6px;text-align:center;font-size:7px;font-weight:900;color:#0f172a;
    border:1px solid #cbd5e1;border-top:none;background:#f8fafc;
}
.lst-preview-mock .mock-session-table{font-size:5px}
.lst-preview-mock .mock-session-table th,.lst-preview-mock .mock-session-table td{border:1px solid #cbd5e1;padding:2px 3px;text-align:center}
.lst-preview-mock .mock-session-table th{background:#f1f5f9;font-weight:800}
.lst-preview-mock .mock-blank-table{font-size:5px}
.lst-preview-mock .mock-blank-table th,.lst-preview-mock .mock-blank-table td{border:1px solid #cbd5e1;padding:2px 3px;text-align:center}
.lst-preview-mock .mock-blank-table th{background:#f1f5f9;font-weight:800}
.lst-preview-mock .mock-blank-table .mock-notes{min-width:40%}
.lst-preview-mock .mock-session-att-table .mock-sign{min-width:18%}
.lst-preview-mock table tbody tr:nth-child(even) td{background:#e5e7eb}
.lst-preview-mock .mock-cg-table{font-size:5px}
.lst-preview-mock .mock-photos{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;padding:6px}
.lst-preview-mock .mock-photo-page{
    padding:12px;border-radius:14px;
    background:
        radial-gradient(ellipse at 12% 8%,#fecdd3 0%,transparent 58%),
        radial-gradient(ellipse at 92% 10%,#fff1f2 0%,transparent 52%),
        linear-gradient(168deg,#fff,#fbfcfe 45%,#fff1f2);
    position:relative;overflow:hidden;border:1px solid #f1f5f9;
}
.lst-preview-mock .mock-photo-page::before{
    content:'';position:absolute;inset:0;
    background-image:radial-gradient(circle at center,rgba(15,23,42,.035) .6px,transparent .6px);
    background-size:10px 10px;opacity:.55;pointer-events:none;
}
.lst-preview-mock .mock-photo-page::after{
    content:'';position:absolute;inset:8px;border-radius:12px;border:1px solid rgba(255,255,255,.8);pointer-events:none;
}
.lst-preview-mock .mock-photo-hero{text-align:center;position:relative;z-index:1;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid #f1e4e8}
.lst-preview-mock .mock-photo-logo{
    width:32px;height:32px;margin:0 auto 5px;border-radius:50%;background:rgba(255,255,255,.92);
    display:grid;place-items:center;color:#e11d48;font-size:13px;box-shadow:0 2px 10px rgba(15,23,42,.06);
}
.lst-preview-mock .mock-photo-year{position:absolute;top:0;left:0;font-size:6px;color:#94a3b8;font-weight:700;text-align:left;line-height:1.5}
.lst-preview-mock .mock-photo-hero strong{display:block;font-size:8px;font-weight:900;color:#0f172a;line-height:1.4}
.lst-preview-mock .mock-photo-hero em{
    display:inline-block;margin-top:5px;padding:3px 10px;border-radius:999px;
    background:rgba(225,29,72,.09);color:#e11d48;border:1px solid rgba(225,29,72,.22);
    font-size:6.5px;font-weight:800;font-style:normal;
}
.lst-preview-mock .mock-photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;position:relative;z-index:1}
.lst-preview-mock .mock-photo-card{
    background:rgba(255,255,255,.9);border-radius:9px;padding:4px;
    box-shadow:0 4px 14px rgba(15,23,42,.05);border:1px solid rgba(255,255,255,.95);
    display:flex;flex-direction:column;align-items:stretch;
}
.lst-preview-mock .mock-photo-img{
    width:100%;aspect-ratio:3/4;border-radius:6px;background:linear-gradient(155deg,#f8fafc,#eef2f7);
    position:relative;box-shadow:inset 0 0 0 1px rgba(15,23,42,.05);
}
.lst-preview-mock .mock-photo-img::after{
    content:'';position:absolute;right:0;bottom:0;width:24%;height:18%;
    border-left:2px solid rgba(225,29,72,.55);border-top:2px solid rgba(225,29,72,.55);border-radius:5px 0 6px 0;
}
.lst-preview-mock .mock-photo-card span,.lst-preview-mock .mock-photo-card strong{
    display:block;text-align:center;margin-top:3px;padding:0 3px;font-weight:800;color:#0f172a;
}
.lst-preview-mock .mock-photo-card span{font-size:5.5px}
.lst-preview-mock .mock-photo-card strong{font-size:6px;margin-top:1px}
.lst-preview-live{
    display:flex;justify-content:center;align-items:center;
    width:100%;height:100%;max-width:none;margin:0;min-height:0;
}
.lst-preview-viewport{
    width:100%;height:100%;max-width:560px;max-height:100%;
    display:flex;align-items:center;justify-content:center;overflow:hidden;
}
.lst-preview-zoom{
    position:relative;overflow:hidden;border-radius:10px;flex:0 0 auto;
    box-shadow:0 20px 50px rgba(15,23,42,.14);border:1px solid #dbe4ef;background:#fff;
}
.lst-preview-zoom iframe{
    position:absolute;top:0;left:0;display:block;border:0;
    width:794px;height:1123px;transform-origin:0 0;background:#fff;
    pointer-events:none;
}
@media(max-width:900px){
    .lst-studio-filters{grid-template-columns:1fr}
    .lst-studio-top{align-items:stretch;flex-direction:column}
    .lst-type-pills{display:flex;flex-wrap:nowrap;overflow-x:auto;width:100%;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scrollbar-width:none}
    .lst-type-pills::-webkit-scrollbar{display:none}
    .lst-pill,.lst-pill-link{flex:0 0 auto;min-width:max-content;justify-content:center;padding:10px 14px}
    .lst-print-btn{width:100%;justify-content:center}
}

@media(max-width:900px){
    .class-students-page .cs-cascade{grid-template-columns:1fr}
    .class-students-page .cs-student-row{grid-template-columns:44px minmax(0,1fr)}
    .class-students-page .cs-student-meta{grid-column:1/-1;justify-content:flex-start}
}

@media(max-width:1180px){
    .grades-cascade-grid,.report-card-cascade{grid-template-columns:repeat(2,minmax(0,1fr))}
    .att-cascade,.att-report-cascade{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:900px){
    .exam-meta-row,.grades-form-grid,.grades-excel-tiles,.grades-excel-process,.grades-excel-stats,.report-card-cascade{grid-template-columns:1fr}
    .exam-type-picks{flex-wrap:wrap}
    .exam-type-picks>label{flex:1 1 calc(50% - 8px);width:auto}
    .grades-roster-list{grid-template-columns:1fr}
    .grade-student-row{grid-template-columns:38px minmax(0,1fr);grid-template-rows:auto auto}
    .grade-score-field{grid-column:1/-1}
    .grades-roster>header,.report-card-board>header{flex-direction:column;align-items:stretch}
    .grades-roster>header input,.report-card-search{max-width:none;width:100%}
    .report-card-tabs:not(.report-card-tabs-multi) .stage-tabs{grid-template-columns:1fr}
    .report-card-hero{align-items:flex-start}
    .att-cascade,.att-report-cascade{grid-template-columns:1fr}
    .att-board-header{flex-direction:column;align-items:stretch}
    .att-search input{width:100%}
    .att-student-row{grid-template-columns:38px minmax(0,1fr);grid-template-rows:auto auto}
    .att-avatar{width:38px;height:38px;font-size:14px;border-radius:12px}
    .att-controls{grid-column:1/-1;align-items:flex-start}
    .att-tabs .stage-tabs{grid-template-columns:1fr}
    .att-tabs.att-tabs-3 .stage-tabs{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
    .att-tabs.att-tabs-3 .stage-tabs button{font-size:10.5px;padding:8px 6px;min-height:44px}
    .att-tabs.att-tabs-3 .stage-tabs button i{width:24px;height:24px;font-size:11px;flex-basis:24px}
    .att-tabs.att-tabs-4 .stage-tabs{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
    .att-tabs.att-tabs-4 .stage-tabs button{font-size:10.5px;padding:8px 6px;min-height:44px}
    .att-tabs.att-tabs-4 .stage-tabs button i{width:24px;height:24px;font-size:11px;flex-basis:24px}
    .att-period-btn{min-width:unset;padding:8px 14px}
    .att-pb-num,.att-pb-icon{width:28px;height:28px;font-size:12px;border-radius:8px}
    .att-hero{padding:18px 20px;gap:14px}
    .att-detail-dialog{width:95vw;max-height:90vh}
    .att-detail-tabs{padding:10px 16px}
    .att-detail-content{padding:12px 14px}
    .att-save-footer{flex-direction:column;align-items:stretch;gap:12px}
    .att-save-btn{width:100%;justify-content:center}
    .att-report-table{font-size:11px}
    .att-report-table th,.att-report-table td{padding:7px 8px}
    .att-rep-filter-bar{padding:12px 20px}
}

/* ??????????????????????? DISCIPLINE MODULE ??????????????????????? */
[data-disc-page]{--org-1:#15803d;--org-2:#22c55e;--org-3:#86efac}
.disc-themed .primary-btn{background:linear-gradient(135deg,var(--org-1),var(--org-2));box-shadow:0 8px 20px color-mix(in srgb,var(--org-1) 28%,transparent)}
.disc-themed .pretty-select-trigger:hover,.disc-themed .pretty-select.open .pretty-select-trigger{border-color:var(--org-3);box-shadow:0 0 0 4px color-mix(in srgb,var(--org-1) 12%,transparent)}

.disc-tabbar{padding:8px 12px;overflow:visible;position:relative;z-index:30}
.disc-tabbar-inner{display:flex;align-items:center;gap:4px;flex-wrap:nowrap;overflow:visible}
.disc-tab-btn{display:inline-flex;align-items:center;gap:5px;padding:7px 13px;border:1px solid color-mix(in srgb,var(--org-1) 22%,#e2e8f0);background:color-mix(in srgb,var(--org-3) 32%,#fff);color:#334155;border-radius:10px;font-size:12px;font-weight:700;cursor:pointer;transition:all .18s;white-space:nowrap;flex-shrink:0}
.disc-tab-btn i{font-size:12px}
.disc-tab-btn:hover{background:color-mix(in srgb,var(--org-3) 45%,#fff);border-color:var(--org-2)}
.disc-tab-btn.active{background:linear-gradient(135deg,var(--org-1),var(--org-2));color:#fff;border-color:transparent;box-shadow:0 4px 12px color-mix(in srgb,var(--org-1) 28%,transparent)}

.disc-more-wrap{position:relative;margin-inline-start:auto;flex-shrink:0;z-index:40}
.disc-more-chevron{font-size:10px;transition:transform .2s}
.disc-more-wrap.open .disc-more-chevron{transform:rotate(180deg)}
.disc-more-menu{position:absolute;top:calc(100% + 6px);left:0;right:auto;min-width:196px;max-width:min(240px,calc(100vw - 24px));background:#fff;border:1px solid color-mix(in srgb,var(--org-1) 16%,#e2e8f0);border-radius:12px;box-shadow:0 12px 36px rgba(15,23,42,.16);z-index:4000;padding:6px;display:flex;flex-direction:column;gap:2px}
.disc-more-menu a,.disc-more-menu button{display:flex;align-items:center;gap:8px;padding:10px 14px;border:none;background:none;color:#1e293b;cursor:pointer;font-size:13px;border-radius:8px;width:100%;text-align:right;text-decoration:none;white-space:nowrap}
.disc-more-menu a:hover,.disc-more-menu button:hover{background:color-mix(in srgb,var(--org-3) 35%,#fff)}
.disc-more-menu a i,.disc-more-menu button i{width:18px;text-align:center;color:var(--org-1);font-size:13px}

.disc-workspace{animation:fadeInUp .3s ease;border-color:color-mix(in srgb,var(--org-1) 18%,#e2e8f0)}
.disc-hero{display:flex;align-items:center;gap:16px;padding:20px 24px;border-bottom:1px solid color-mix(in srgb,var(--org-3) 55%,#fff);background:linear-gradient(160deg,color-mix(in srgb,var(--org-3) 28%,#fff) 0%,#fff 58%)}
.disc-hero-icon{width:48px;height:48px;border-radius:13px;display:grid;place-items:center;font-size:20px;color:#fff;background:linear-gradient(135deg,var(--org-1),var(--org-2));flex-shrink:0;box-shadow:0 8px 18px color-mix(in srgb,var(--org-1) 22%,transparent)}
.disc-hero h2{font-size:16px;font-weight:700;margin:0}
.disc-hero p{font-size:12px;color:#64748b;margin:3px 0 0}

.disc-list-filters{padding:14px 24px;border-bottom:1px solid color-mix(in srgb,var(--org-3) 55%,#fff);background:color-mix(in srgb,var(--org-3) 18%,#fff)}
.disc-filter-row{display:grid;grid-template-columns:1fr 1fr 1fr 2fr;gap:12px;align-items:end}
.disc-filter-row label span,.disc-cascade label span,.disc-report-cascade label span{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:600;color:#64748b;margin-bottom:5px}
.disc-filter-row select,.disc-filter-row input[type="search"],.disc-cascade select,.disc-cascade input,.disc-report-cascade select,.disc-report-cascade input{width:100%;padding:8px 12px;border:1.5px solid color-mix(in srgb,var(--org-3) 70%,#e2e8f0);border-radius:8px;font-size:13px;background:#fff}
.disc-filter-row select:focus,.disc-filter-row input:focus,.disc-cascade select:focus,.disc-cascade input:focus,.disc-report-cascade select:focus,.disc-report-cascade input:focus{border-color:var(--org-2);outline:none;box-shadow:0 0 0 4px color-mix(in srgb,var(--org-1) 12%,transparent)}

.disc-student-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;padding:18px 24px}

.disc-cascade{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:18px 24px}
.disc-cascade-student,.disc-cascade-third{border-top:1px solid color-mix(in srgb,var(--org-3) 55%,#fff)}
.disc-cascade-third{grid-template-columns:repeat(3,minmax(0,1fr))}
.disc-student-full{grid-column:1/-1}
.disc-cascade-third label{min-width:0}
.disc-cascade-third .pretty-select{width:100%}
.disc-add-dialog,.disc-detail-dialog{overflow:visible}
.disc-add-dialog .disc-form{overflow:visible;max-height:min(74vh,720px)}
.disc-add-dialog .pretty-select-menu.portal-open,.disc-detail-dialog .pretty-select-menu.portal-open{z-index:2147483646;max-height:320px}
.disc-add-dialog .pretty-select-menu.portal-open.is-wide-menu .pretty-select-option{justify-content:space-between;gap:12px;text-align:right;font-size:13px;font-weight:700;padding:11px 14px}
.disc-add-dialog .pretty-select-trigger span{display:flex;align-items:center;justify-content:flex-start;gap:10px;width:100%;text-align:right;direction:rtl}
.disc-add-dialog .pretty-select-option small,.disc-add-dialog .pretty-select-trigger small{font-size:11px;font-weight:600;color:#64748b;font-variant-numeric:tabular-nums;flex-shrink:0}
.disc-desc-label{grid-column:1/-1}
.disc-desc-label textarea,
.disc-add-dialog textarea[data-disc-desc],
.disc-add-dialog textarea[data-disc-summon-reason],
.disc-add-dialog textarea[data-disc-summon-follow]{
    min-height:120px;
    resize:vertical;
    line-height:1.75;
    padding:14px 16px;
    font-size:13.5px;
    width:100%;
    box-sizing:border-box
}
.disc-submit-wrap{padding:0 24px 20px;display:flex;flex-direction:column;align-items:stretch;gap:14px}
.disc-submit-wrap .disc-submit-btn{align-self:flex-end}
.disc-notify-wrap{padding:0 24px}
.disc-notify-toggle{position:relative;display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:18px;border:1.5px solid #e2e8f0;background:#f8fafc;cursor:pointer;overflow:hidden;isolation:isolate;transition:border-color .28s ease,box-shadow .28s ease,transform .28s ease,background .28s ease}
.disc-notify-toggle:hover{border-color:#cbd5e1;box-shadow:0 8px 20px rgba(15,23,42,.06);transform:translateY(-1px)}
.disc-notify-toggle input{position:absolute;opacity:0;width:0;height:0;pointer-events:none}
.disc-notify-switch{position:relative;width:58px;height:32px;flex:0 0 58px;border-radius:999px;background:#cbd5e1;box-shadow:inset 0 2px 6px rgba(15,23,42,.14);transition:background .32s cubic-bezier(.22,1,.36,1),box-shadow .32s ease}
.disc-notify-knob{position:absolute;top:3px;inset-inline-end:3px;width:26px;height:26px;border-radius:50%;background:linear-gradient(180deg,#fff,#f8fafc);box-shadow:0 4px 12px rgba(15,23,42,.18);display:grid;place-items:center;color:#64748b;font-size:11px;transition:transform .32s cubic-bezier(.22,1,.36,1),color .28s ease,box-shadow .28s ease}
.disc-notify-icon-off,.disc-notify-icon-on{position:absolute;transition:opacity .22s ease,transform .28s ease}
.disc-notify-icon-on{opacity:0;transform:scale(.6) rotate(-18deg);color:#fff}
.disc-notify-icon-off{opacity:1;transform:none}
.disc-notify-copy{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0;position:relative;z-index:1}
.disc-notify-copy strong{font-size:13px;font-weight:900;color:#334155;transition:color .28s ease}
.disc-notify-copy small{font-size:11px;color:#64748b;line-height:1.55}
.disc-notify-state{display:inline-flex;align-items:center;gap:6px;margin-top:4px;font-size:11px;font-weight:800;letter-spacing:.02em}
.disc-notify-state::before{content:"";width:8px;height:8px;border-radius:50%;background:#94a3b8;box-shadow:0 0 0 3px rgba(148,163,184,.22)}
.disc-notify-state-off{color:#64748b}
.disc-notify-state-on{display:none;color:var(--org-1,#15803d)}
.disc-notify-state-on::before{background:var(--org-1,#15803d);box-shadow:0 0 0 3px color-mix(in srgb,var(--org-1,#15803d) 22%,transparent)}
.disc-notify-glow{position:absolute;inset:auto auto -30px -30px;width:120px;height:120px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--org-1) 28%,transparent),transparent 68%);opacity:0;transition:opacity .35s ease;pointer-events:none}
.disc-notify-toggle:has(input:checked){border-color:color-mix(in srgb,var(--org-1) 45%,#86efac);background:linear-gradient(135deg,color-mix(in srgb,var(--org-3) 22%,#fff),#fff);box-shadow:0 12px 28px color-mix(in srgb,var(--org-1) 14%,transparent),0 0 0 1px color-mix(in srgb,var(--org-1) 12%,transparent)}
.disc-notify-toggle:has(input:checked) .disc-notify-switch{background:linear-gradient(135deg,var(--org-1),var(--org-2));box-shadow:0 6px 18px color-mix(in srgb,var(--org-1) 35%,transparent),inset 0 1px 0 rgba(255,255,255,.25)}
.disc-notify-toggle:has(input:checked) .disc-notify-knob{color:#fff;box-shadow:0 6px 16px rgba(15,23,42,.22)}
html[dir="rtl"] .disc-notify-toggle:has(input:checked) .disc-notify-knob,
[dir="rtl"] .disc-notify-toggle:has(input:checked) .disc-notify-knob{transform:translateX(26px)}
html:not([dir="rtl"]) .disc-notify-toggle:has(input:checked) .disc-notify-knob,
:root:not([dir="rtl"]) .disc-notify-toggle:has(input:checked) .disc-notify-knob,
[dir="ltr"] .disc-notify-toggle:has(input:checked) .disc-notify-knob{transform:translateX(-26px)}
/* پیش‌فرض RTL سامانه */
.disc-notify-toggle:has(input:checked) .disc-notify-knob{transform:translateX(26px)}
.disc-notify-toggle:has(input:checked) .disc-notify-icon-off{opacity:0;transform:scale(.6) rotate(18deg)}
.disc-notify-toggle:has(input:checked) .disc-notify-icon-on{opacity:1;transform:scale(1) rotate(0);animation:disc-notify-ring .65s ease}
.disc-notify-toggle:has(input:checked) .disc-notify-copy strong{color:var(--org-1)}
.disc-notify-toggle:has(input:checked) .disc-notify-glow{opacity:1}
.disc-notify-toggle:has(input:checked) .disc-notify-state-off{display:none}
.disc-notify-toggle:has(input:checked) .disc-notify-state-on{display:inline-flex}
@keyframes disc-notify-ring{0%,100%{transform:scale(1) rotate(0)}25%{transform:scale(1.18) rotate(-12deg)}55%{transform:scale(.92) rotate(10deg)}80%{transform:scale(1.08) rotate(-6deg)}}
@media(prefers-reduced-motion:reduce){.disc-notify-toggle:has(input:checked) .disc-notify-icon-on{animation:none}}

/* کلاس آنلاین: تمایز واضح فعال / غیرفعال */
[data-ocl-form] .disc-notify-toggle{border-color:#dbe3ee;background:#f1f5f9}
[data-ocl-form] .disc-notify-toggle:has(input:checked){border-color:color-mix(in srgb,var(--org-1,#15803d) 50%,#86efac);background:linear-gradient(135deg,color-mix(in srgb,var(--org-1,#15803d) 8%,#fff),#fff)}
[data-ocl-form] .ohw-toggle{margin-top:10px}

.disc-rep-filter-bar{padding:14px 24px}
.disc-rep-filter-toggle{display:inline-flex;align-items:center;gap:8px;padding:7px 15px;border:1.5px solid color-mix(in srgb,var(--org-1) 22%,#e2e8f0);border-radius:9px;background:none;cursor:pointer;font-size:13px;font-weight:600;color:#64748b}
.disc-rep-filter-toggle:hover,.disc-rep-filter-toggle.open{border-color:var(--org-1);color:var(--org-1)}
.disc-rep-chevron{font-size:11px;transition:transform .2s}
.disc-rep-filter-toggle.open .disc-rep-chevron{transform:rotate(180deg)}
.disc-report-cascade{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:0 24px 18px}
.disc-rep-actions{display:flex;align-items:flex-end}

.disc-report-card{background:#fff;border:1px solid color-mix(in srgb,var(--org-1) 18%,#e2e8f0);border-radius:13px;padding:16px 18px;transition:box-shadow .2s,transform .15s}
.disc-report-card:hover{box-shadow:0 4px 16px color-mix(in srgb,var(--org-1) 12%,transparent);transform:translateY(-1px)}
.disc-report-card-header{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.disc-report-card-avatar{width:38px;height:38px;border-radius:11px;background:linear-gradient(135deg,var(--org-1),var(--org-2));color:#fff;display:grid;place-items:center;font-weight:700;font-size:14px;flex-shrink:0}
.disc-report-card-name{font-weight:700;font-size:13px;line-height:1.3}
.disc-report-card-class{font-size:11px;color:#64748b;margin-top:2px}
.disc-report-card-stats{display:flex;gap:10px;margin-bottom:10px}
.disc-report-card-stat{flex:1;text-align:center;padding:7px;background:color-mix(in srgb,var(--org-3) 28%,#fff);border-radius:9px}
.disc-report-card-stat strong{display:block;font-size:15px;font-weight:700}
.disc-report-card-stat small{font-size:10px;color:#64748b}
.disc-report-card-stat.danger strong{color:#ef4444}
.disc-report-card-btn{width:100%;padding:7px;border:1.5px solid color-mix(in srgb,var(--org-1) 22%,#e2e8f0);border-radius:9px;background:none;cursor:pointer;font-size:12px;font-weight:600;color:#64748b;display:flex;align-items:center;justify-content:center;gap:5px}
.disc-report-card-btn:hover{border-color:var(--org-1);color:var(--org-1);background:color-mix(in srgb,var(--org-3) 32%,#fff)}

.disc-log-list{padding:0 24px 20px}
.disc-log-entry{display:flex;align-items:flex-start;gap:12px;padding:12px 16px;border:1px solid color-mix(in srgb,var(--org-1) 16%,#e2e8f0);border-radius:11px;margin-bottom:8px}
.disc-log-icon{width:34px;height:34px;border-radius:9px;background:linear-gradient(135deg,var(--org-3),color-mix(in srgb,var(--org-2) 55%,#fff));color:var(--org-1);display:grid;place-items:center;font-size:14px;flex-shrink:0}
.disc-log-body{flex:1;min-width:0}
.disc-log-title{font-weight:700;font-size:13px;margin-bottom:3px}
.disc-log-title .disc-log-student{color:var(--org-1)}
.disc-log-meta{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:11px;color:#64748b}
.disc-log-meta span{display:inline-flex;align-items:center;gap:3px}
.disc-log-desc{font-size:12px;color:#64748b;margin-top:4px}
.disc-log-penalty{font-size:14px;font-weight:700;color:#ef4444;white-space:nowrap;margin-inline-start:auto;flex-shrink:0;align-self:center}

.disc-detail-dialog,.disc-add-dialog{width:95%;max-width:720px;border:none;border-radius:16px;box-shadow:0 20px 60px color-mix(in srgb,var(--org-1) 22%,transparent);padding:0;background:#fff}
.disc-detail-dialog{max-width:580px}
.disc-detail-dialog::backdrop,.disc-add-dialog::backdrop{background:rgba(15,23,42,.45)}
.disc-detail-dialog header,.disc-add-dialog header{display:flex;align-items:center;justify-content:space-between;padding:16px 22px;border-bottom:1px solid color-mix(in srgb,var(--org-3) 55%,#fff);background:linear-gradient(160deg,color-mix(in srgb,var(--org-3) 28%,#fff),#fff)}
.disc-detail-dialog header h3,.disc-add-dialog header h3{font-size:15px;font-weight:700;margin:0;display:flex;align-items:center;gap:8px;color:var(--org-1)}
.disc-detail-dialog header button,.disc-add-dialog header button{width:32px;height:32px;border-radius:8px;border:none;background:#f1f5f9;cursor:pointer;display:grid;place-items:center;color:#64748b}
.disc-detail-dialog header button:hover,.disc-add-dialog header button:hover{background:#fee2e2;color:#ef4444}
.disc-detail-content{padding:18px 22px;max-height:60vh;overflow-y:auto}
.disc-add-dialog .disc-form{max-height:70vh;overflow-y:auto}
.disc-detail-item{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid #f1f5f9;align-items:flex-start}
.disc-detail-item:last-child{border-bottom:none}
.disc-detail-actions{display:flex;gap:4px;flex-shrink:0}
.disc-detail-actions .mini-action{width:30px;height:30px}
.disc-detail-dot{width:9px;height:9px;border-radius:50%;background:var(--org-1);margin-top:5px;flex-shrink:0}
.disc-detail-info{flex:1}
.disc-detail-info strong{font-size:13px;font-weight:700;display:block}
.disc-detail-info small,.disc-detail-info p{font-size:11px;color:#64748b}
.disc-detail-penalty{font-size:13px;font-weight:700;color:#ef4444;white-space:nowrap}
.disc-detail-penalty.positive{color:#16a34a}
.disc-detail-section-title{margin:12px 0 6px;font-size:12px;font-weight:700;color:#334155}
.disc-add-type-tabs{display:flex;gap:6px;padding:12px 22px 0;flex-wrap:wrap}
.disc-add-type-btn{flex:1;min-width:0;padding:8px 10px;border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc;font-size:11px;font-weight:700;cursor:pointer;color:#475569}
.disc-add-type-btn.active{background:linear-gradient(135deg,var(--org-1),var(--org-2));color:#fff;border-color:transparent}
/* ???? ??????? ? ?????? ??? */
.disc-nb-dialog{
  width:min(96vw,520px);
  max-width:520px;
  border:none;
  border-radius:22px;
  padding:0;
  background:transparent;
  overflow:visible;
  box-shadow:none;
}
.disc-nb-dialog::backdrop{
  background:rgba(15,23,42,.52);
  backdrop-filter:blur(6px);
}
.disc-nb-shell{
  background:#fff;
  border-radius:22px;
  overflow:hidden;
  box-shadow:0 28px 80px rgba(15,23,42,.22),0 0 0 1px color-mix(in srgb,var(--org-1) 10%,#e2e8f0);
}
.disc-nb-hero{
  position:relative;
  padding:22px 22px 18px;
  background:
    radial-gradient(120% 140% at 100% 0%,color-mix(in srgb,var(--org-3) 55%,#fff) 0%,transparent 58%),
    linear-gradient(145deg,color-mix(in srgb,var(--org-1) 88%,#0f172a),color-mix(in srgb,var(--org-2) 75%,#0f172a));
  color:#fff;
}
.disc-nb-close{
  position:absolute;
  top:14px;
  left:14px;
  width:34px;
  height:34px;
  border:none;
  border-radius:11px;
  background:rgba(255,255,255,.14);
  color:#fff;
  cursor:pointer;
  display:grid;
  place-items:center;
  transition:background .2s ease,transform .2s ease;
}
.disc-nb-close:hover{background:rgba(255,255,255,.24);transform:scale(1.04)}
.disc-nb-hero-main{display:flex;align-items:center;gap:14px;padding-inline-end:36px}
.disc-nb-hero-icon{
  width:52px;
  height:52px;
  border-radius:16px;
  display:grid;
  place-items:center;
  font-size:22px;
  background:rgba(255,255,255,.16);
  border:1px solid rgba(255,255,255,.22);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.25);
  flex-shrink:0;
}
.disc-nb-hero h3{margin:0;font-size:18px;font-weight:800;letter-spacing:-.2px}
.disc-nb-hero p{margin:5px 0 0;font-size:12px;line-height:1.6;color:rgba(255,255,255,.86)}
.disc-nb-features{
  list-style:none;
  margin:16px 0 0;
  padding:0;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.disc-nb-features li{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px 11px;
  border-radius:999px;
  font-size:11px;
  font-weight:700;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.18);
  color:#fff;
}
.disc-nb-features i{font-size:11px;opacity:.9}
.disc-nb-body{padding:18px 20px 8px;display:flex;flex-direction:column;gap:14px}
.disc-nb-preview{
  display:flex;
  align-items:flex-start;
  gap:10px;
  padding:11px 13px;
  border-radius:14px;
  background:color-mix(in srgb,var(--org-3) 22%,#f8fafc);
  border:1px solid color-mix(in srgb,var(--org-1) 14%,#e2e8f0);
  font-size:12px;
  line-height:1.65;
  color:#334155;
}
.disc-nb-preview i{
  color:var(--org-1);
  margin-top:2px;
  flex-shrink:0;
}
.disc-nb-preview.is-ready{
  background:color-mix(in srgb,var(--org-3) 30%,#f0fdf4);
  border-color:color-mix(in srgb,var(--org-1) 24%,#bbf7d0);
  color:#14532d;
}
.disc-nb-preview.is-ready i{color:var(--org-1)}
.disc-nb-step{
  padding:14px;
  border-radius:16px;
  border:1px solid #e8eef5;
  background:linear-gradient(180deg,#fff,#fbfdff);
}
.disc-nb-step-head{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.disc-nb-step-no{
  width:28px;
  height:28px;
  border-radius:10px;
  display:grid;
  place-items:center;
  font-size:12px;
  font-weight:800;
  color:#fff;
  background:linear-gradient(135deg,var(--org-1),var(--org-2));
  box-shadow:0 6px 14px color-mix(in srgb,var(--org-1) 24%,transparent);
  flex-shrink:0;
}
.disc-nb-step-head strong{display:block;font-size:13px;color:#0f172a}
.disc-nb-step-head small{display:block;margin-top:2px;font-size:11px;color:#64748b}
.disc-nb-fields{display:grid;gap:10px}
.disc-nb-fields-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.disc-nb-field{display:flex;flex-direction:column;gap:5px;min-width:0}
.disc-nb-field-wide{grid-column:1/-1}
.disc-nb-field>span{
  display:flex;
  align-items:center;
  gap:6px;
  font-size:11px;
  font-weight:700;
  color:#64748b;
}
.disc-nb-field select{
  width:100%;
  padding:10px 12px;
  border:1.5px solid #e2e8f0;
  border-radius:11px;
  font-size:13px;
  background:#fff;
  transition:border-color .2s ease,box-shadow .2s ease;
}
.disc-nb-field select:focus{
  outline:none;
  border-color:var(--org-2);
  box-shadow:0 0 0 4px color-mix(in srgb,var(--org-1) 12%,transparent);
}
.disc-nb-dialog .pretty-select{width:100%}
.disc-nb-footer{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  padding:14px 20px 18px;
  border-top:1px solid #eef2f7;
  background:#fafbfc;
}
.disc-nb-cancel{
  padding:10px 16px;
  border:1.5px solid #e2e8f0;
  border-radius:12px;
  background:#fff;
  color:#64748b;
  font-size:13px;
  font-weight:700;
  cursor:pointer;
  transition:all .18s ease;
}
.disc-nb-cancel:hover{border-color:#cbd5e1;color:#334155;background:#f8fafc}
.disc-nb-print{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:11px 18px;
  border:none;
  border-radius:12px;
  font-size:13px;
  font-weight:800;
  color:#fff;
  cursor:pointer;
  background:linear-gradient(135deg,var(--org-1),var(--org-2));
  box-shadow:0 10px 24px color-mix(in srgb,var(--org-1) 28%,transparent);
  transition:transform .18s ease,box-shadow .18s ease,opacity .18s ease;
}
.disc-nb-print:hover{
  transform:translateY(-1px);
  box-shadow:0 14px 28px color-mix(in srgb,var(--org-1) 34%,transparent);
}
.disc-nb-print:disabled{
  opacity:.55;
  cursor:not-allowed;
  transform:none;
  box-shadow:none;
}
@media(max-width:640px){
  .disc-nb-fields-3{grid-template-columns:1fr}
  .disc-nb-footer{flex-direction:column-reverse;align-items:stretch}
  .disc-nb-cancel,.disc-nb-print{width:100%;justify-content:center}
}

.disc-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:40px 20px;color:#64748b;font-size:14px}
.disc-empty i{font-size:28px;opacity:.5;color:var(--org-1)}
.disc-no-results{text-align:center;padding:40px;color:#64748b;grid-column:1/-1}

@media(max-width:1000px){
    .disc-student-grid{grid-template-columns:1fr 1fr}
    .disc-filter-row{grid-template-columns:1fr 1fr}
    .disc-cascade,.disc-report-cascade{grid-template-columns:1fr 1fr}
    .disc-cascade-third{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:620px){
    .disc-student-grid{grid-template-columns:1fr}
    .disc-filter-row{grid-template-columns:1fr}
    .disc-cascade,.disc-report-cascade{grid-template-columns:1fr}
    .disc-desc-label{grid-column:span 1}
    .disc-student-full{grid-column:1/-1}
    .disc-hero{padding:14px 16px}
    .disc-cascade,.disc-student-grid,.disc-list-filters,.disc-log-list,.disc-rep-filter-bar,.disc-report-cascade,.disc-submit-wrap,.disc-notify-wrap{padding-left:16px;padding-right:16px}
    .disc-log-entry{flex-wrap:wrap}
    .disc-log-penalty{width:100%;margin-top:4px}
    .disc-tab-btn span{display:none}
    .disc-more-btn span,.disc-tab-btn[data-disc-open-add] span{display:inline}
    .disc-tab-btn{padding:7px 10px}
}

[data-lesson-content]{--org-1:#2563eb;--org-2:#7c3aed;--org-3:#93c5fd}
[data-lesson-content] .disc-hero{border-bottom-color:color-mix(in srgb,var(--org-3) 55%,#fff);background:linear-gradient(160deg,color-mix(in srgb,var(--org-3) 28%,#fff) 0%,#fff 58%)}
[data-lesson-content] .disc-hero-icon.report{background:linear-gradient(135deg,#0f172a,#334155);box-shadow:0 8px 18px rgba(15,23,42,.18)}
.lc-page{display:flex;flex-direction:column;gap:22px}
.lc-filter{padding:14px 24px;border-bottom:1px solid #e2e8f0}
.lc-filter label{max-width:280px;display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:700;color:#64748b}
.lc-course-grid{display:grid;grid-template-columns:1fr;gap:16px;padding:18px 24px}
@media(min-width:720px){.lc-course-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}}
@media(min-width:1100px){.lc-course-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.lc-course-card{display:flex;flex-direction:column;gap:6px;padding:16px;border:1px solid #e2e8f0;border-radius:16px;background:#fff;text-decoration:none;color:inherit;min-height:140px}
.lc-course-card:hover{border-color:#93c5fd;box-shadow:0 10px 24px rgba(37,99,235,.1);transform:translateY(-1px)}
.lc-course-icon{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,#7c3aed,#2563eb)}
.lc-course-card strong{font-size:14px}
.lc-course-card small,.lc-course-card em{font-size:11px;color:#64748b;font-style:normal}
.lc-course-meta{display:flex;gap:12px;font-size:11px;font-weight:700;color:#475569}
.lc-course-meta-bar{padding:0 24px 16px}
.lc-empty{grid-column:1/-1;display:flex;flex-direction:column;align-items:center;gap:8px;padding:32px;color:#64748b}
.lc-form{display:flex;flex-direction:column;gap:12px;padding:18px 24px}
.lc-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.lc-duration{display:flex;flex-direction:column;gap:8px}
.lc-duration-label{font-size:12px;font-weight:800;color:#334155}
.lc-duration-clock{display:flex;align-items:center;justify-content:flex-start;gap:6px;max-width:220px;padding:4px 8px;border:1px solid #dbeafe;border-radius:14px;background:linear-gradient(180deg,#fff,#f8fbff);box-shadow:inset 0 1px 0 #fff}
.lc-duration-part{width:64px;height:44px;border:0;background:transparent;text-align:center;font-size:22px;font-weight:800;letter-spacing:.08em;color:#0f172a;font-variant-numeric:tabular-nums;padding:0}
.lc-duration-part:focus{outline:none;background:#eff6ff;border-radius:10px}
.lc-duration-colon{font-size:24px;font-weight:900;color:#2563eb;line-height:1;padding-bottom:2px}
.lc-duration-hint{display:flex;justify-content:space-between;max-width:220px;padding:0 10px;color:#64748b;font-size:11px;font-weight:700}
.lc-desc{padding:0 24px 12px;color:#475569;font-size:13px}
.lc-cat h3{margin:0;padding:16px 20px 8px;font-size:14px;display:flex;align-items:center;gap:8px}
.lc-item{margin:0 16px 16px;padding:14px;border:1px solid #e2e8f0;border-radius:14px;background:#fbfdff}
.lc-item header{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.lc-item header b{flex:1}
.lc-item header small{font-size:11px;color:#64748b;background:#eef2ff;padding:3px 8px;border-radius:999px}
.lc-html{font-size:13px;line-height:1.9;color:#1e293b}
.lc-files{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}
.lc-thumb{width:120px;height:90px;border-radius:12px;overflow:hidden;border:1px solid #e2e8f0}
.lc-thumb img{width:100%;height:100%;object-fit:cover}
.lc-video{max-width:420px}
.lc-video video{width:100%;border-radius:12px;background:#0f172a}
.lc-video em{display:block;font-size:10px;color:#64748b;margin-top:4px}
.lc-check{display:flex;align-items:center;gap:8px;font-size:13px}
.lc-stars{display:flex;gap:4px;font-size:22px;color:#f59e0b}
.lc-stars input{position:absolute;opacity:0}
.lc-stars label{cursor:pointer}
.lc-review-list,.lc-qa{display:flex;flex-direction:column;gap:16px;padding:0 24px 22px}
.lc-review,.lc-qa-thread{padding:16px 18px;border:1px solid #e2e8f0;border-radius:16px;background:#fff}
.lc-review span,.lc-stars i{color:#f59e0b}
.lc-qa-reply{margin-top:12px;padding:12px 14px;border-radius:12px;background:#f8fafc;border:1px solid #eef2f7}
.lc-reply-form{display:flex;gap:8px;margin-top:12px}
.lc-ask-form{padding-top:8px;border-bottom:1px solid #eef2f7;margin-bottom:4px}
.lc-reply-form input{flex:1}
@media(max-width:900px){.lc-form-grid{grid-template-columns:1fr}}

.learner-page{display:flex;flex-direction:column;gap:14px}
.learner-child-switch{display:flex;flex-wrap:wrap;gap:8px}
.learner-child-switch a{display:flex;flex-direction:column;gap:2px;padding:10px 14px;border:1px solid #dbeafe;border-radius:14px;background:#fff;text-decoration:none;color:inherit;min-width:160px}
.learner-child-switch a.active{border-color:#2563eb;background:#eff6ff;box-shadow:0 8px 18px rgba(37,99,235,.12)}
.learner-child-switch small{color:#64748b;font-size:11px}
.learner-grade-list{display:flex;flex-direction:column;gap:14px;padding:0 4px 8px}
.learner-grade-list-padded{padding:8px 20px 22px}
.learner-grade-card{display:grid;grid-template-columns:1fr auto;gap:10px 16px;padding:16px 18px;border:1px solid #e2e8f0;border-radius:18px;background:linear-gradient(180deg,#fff,#f8fbff)}
.learner-grade-main h3{margin:8px 0 4px;font-size:15px}
.learner-grade-main p,.learner-grade-main small{color:#64748b}
.learner-grade-score{text-align:center;min-width:88px}
.learner-grade-score b{display:block;font-size:22px;color:#1d4ed8}
.learner-grade-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.status-pill{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:800;background:#e2e8f0}
.status-pill.pending{background:#ffedd5;color:#9a3412}
.status-pill.accepted,.status-pill.excused{background:#dcfce7;color:#166534}
.status-pill.rejected,.status-pill.unexcused{background:#fee2e2;color:#991b1b}
.learner-object{margin-top:0}
.learner-object summary{cursor:pointer;font-weight:800;color:#2563eb}

/* Subject-themed learner grade cards */
.lg-subject-card{
  --subj-accent:#2563eb;--subj-soft:#eff6ff;--subj-deep:#1d4ed8;--score-pct:0%;
  position:relative;overflow:hidden;isolation:isolate;
  grid-template-columns:minmax(0,1fr) auto;align-items:center;
  border-color:color-mix(in srgb,var(--subj-accent) 28%,#e2e8f0);
  background:
    linear-gradient(135deg,color-mix(in srgb,var(--subj-soft) 88%,#fff) 0%,#fff 58%),
    radial-gradient(120px 80px at 100% 0%,color-mix(in srgb,var(--subj-accent) 14%,transparent),transparent 70%);
  box-shadow:0 10px 26px color-mix(in srgb,var(--subj-accent) 10%,transparent);
}
.lg-subject-card:hover{transform:translateY(-2px);box-shadow:0 16px 34px color-mix(in srgb,var(--subj-accent) 16%,transparent)}
.lg-card-motifs{position:absolute;inset:0;pointer-events:none;z-index:0;overflow:hidden}
.lg-motif{position:absolute;color:var(--subj-accent);opacity:.08;line-height:1}
.lg-motif-1{font-size:54px;top:-6px;left:10px;transform:rotate(-12deg)}
.lg-motif-2{font-size:28px;bottom:10px;left:52%;opacity:.07}
.lg-motif-3{font-size:22px;top:18px;left:38%;opacity:.06;transform:rotate(18deg)}
.lg-subject-card.is-subj-quran{
  background:
    linear-gradient(145deg,#ecfdf5 0%,#fff 55%,#f0fdfa 100%),
    radial-gradient(140px 90px at 0% 100%,rgba(15,118,110,.12),transparent 70%);
  border-color:#99f6e4;
}
.lg-subject-card.is-subj-quran .lg-motif{opacity:.11;color:#0f766e}
.lg-subject-card .learner-grade-main,.lg-subject-card .learner-grade-score,.lg-subject-card .learner-grade-actions{position:relative;z-index:1}
.lg-card-top{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:2px}
.lg-subject-badge{
  display:inline-flex;align-items:center;gap:7px;padding:5px 10px 5px 8px;
  border-radius:999px;font-size:11px;font-weight:800;color:var(--subj-deep);
  background:color-mix(in srgb,var(--subj-soft) 70%,#fff);
  border:1px solid color-mix(in srgb,var(--subj-accent) 22%,#fff);
}
.lg-subject-badge i{
  width:22px;height:22px;border-radius:8px;display:grid;place-items:center;
  background:linear-gradient(135deg,var(--subj-accent),var(--subj-deep));color:#fff;font-size:10px;
  box-shadow:0 4px 10px color-mix(in srgb,var(--subj-accent) 28%,transparent);
}
.lg-score-box{
  position:relative;min-width:92px;min-height:92px;display:grid;place-items:center;
  border-radius:22px;padding:8px;
  background:linear-gradient(160deg,color-mix(in srgb,var(--subj-soft) 80%,#fff),#fff);
  border:1px solid color-mix(in srgb,var(--subj-accent) 20%,#e2e8f0);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.7);
}
.lg-score-ring{position:absolute;inset:4px;pointer-events:none}
.lg-score-ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.lg-ring-bg{fill:none;stroke:#e2e8f0;stroke-width:5}
.lg-ring-fg{fill:none;stroke:var(--tone-color,var(--subj-accent));stroke-width:5;stroke-linecap:round;transition:stroke-dasharray .4s ease}
.lg-score-text{position:relative;z-index:1;text-align:center}
.lg-score-box b{display:block;font-size:22px;line-height:1.1;color:var(--tone-color,var(--subj-deep));font-weight:900}
.lg-score-box small{display:block;margin-top:3px;font-size:10px;font-weight:700;color:#64748b}
.lg-score-box.is-tone-excellent,.learner-grade-card.is-tone-excellent{--tone-color:#059669}
.lg-score-box.is-tone-good,.learner-grade-card.is-tone-good{--tone-color:#0d9488}
.lg-score-box.is-tone-mid,.learner-grade-card.is-tone-mid{--tone-color:#ca8a04}
.lg-score-box.is-tone-low,.learner-grade-card.is-tone-low{--tone-color:#ea580c}
.lg-score-box.is-tone-poor,.learner-grade-card.is-tone-poor{--tone-color:#e11d48}
.lg-score-box.is-tone-neutral{--tone-color:var(--subj-deep)}
.lg-object-compact{margin:0}
.lg-object-compact>summary{
  list-style:none;display:inline-flex;align-items:center;gap:5px;
  min-height:28px;padding:3px 9px;border-radius:999px;font-size:10.5px;font-weight:800;
  color:#64748b;background:#f8fafc;border:1px solid #e2e8f0;
  transition:background .15s,border-color .15s,color .15s;
}
.lg-object-compact>summary::-webkit-details-marker{display:none}
.lg-object-compact>summary i{font-size:10px;opacity:.85}
.lg-object-compact>summary:hover,.lg-object-compact[open]>summary{
  color:#b45309;background:#fffbeb;border-color:#fcd34d;
}
.lg-object-form{
  margin-top:10px;padding:12px;border-radius:14px;background:#fff;
  border:1px dashed #cbd5e1;display:flex;flex-direction:column;gap:10px;width:min(100%,360px);
}
.lg-object-form textarea{min-height:72px;font-size:12px}
.lg-object-form .primary-btn.compact{align-self:flex-start;min-height:34px;padding:6px 14px;font-size:12px;border-radius:10px}
.objection-reason{margin-top:8px;padding:10px;border-radius:12px;background:#fff;border:1px dashed #cbd5e1}
.objection-review{grid-column:1/-1}
.count-badge{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#fee2e2;color:#b91c1c;font-size:10px;margin-right:6px}

/* ??? Learner UI: report card, attendance, grades ??? */
.report-cert{--cert-accent:var(--org-1,#2563eb);--cert-accent-2:var(--org-2,#4f46e5);--cert-soft:color-mix(in srgb,var(--org-3,#93c5fd) 35%,#fff);padding:0;background:transparent;border:0;box-shadow:none}
.report-cert-frame{position:relative;overflow:hidden;border:2px solid color-mix(in srgb,var(--cert-accent) 35%,#fff);border-radius:28px;background:linear-gradient(180deg,#fff 0%,var(--cert-soft) 100%);box-shadow:0 24px 56px color-mix(in srgb,var(--cert-accent) 18%,transparent)}
.report-cert-corner{position:absolute;width:48px;height:48px;border:3px solid color-mix(in srgb,var(--cert-accent) 55%,#fff);opacity:.45;pointer-events:none}
.report-cert-corner.tl{top:14px;right:14px;border-left:0;border-bottom:0;border-radius:0 12px 0 0}
.report-cert-corner.tr{top:14px;left:14px;border-right:0;border-bottom:0;border-radius:12px 0 0 0}
.report-cert-corner.bl{bottom:14px;right:14px;border-left:0;border-top:0;border-radius:0 0 12px 0}
.report-cert-corner.br{bottom:14px;left:14px;border-right:0;border-top:0;border-radius:0 0 0 12px}
.report-cert-head{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;padding:24px 28px 18px;border-bottom:1px dashed color-mix(in srgb,var(--cert-accent) 25%,#fff);background:linear-gradient(135deg,color-mix(in srgb,var(--cert-accent) 8%,#fff),#fff)}
.school-logo-slot{width:72px;height:72px;border-radius:20px;display:grid;place-items:center;overflow:hidden;background:#fff;border:2px solid color-mix(in srgb,var(--cert-accent) 30%,#fff);box-shadow:0 10px 24px color-mix(in srgb,var(--cert-accent) 15%,transparent)}
.school-logo-slot img{width:100%;height:100%;object-fit:contain;padding:6px}
.school-logo-slot i{font-size:28px;color:var(--cert-accent)}
.report-cert-brand{text-align:center}
.report-cert-brand small{display:block;font-size:11px;font-weight:800;color:var(--cert-accent);margin-bottom:4px}
.report-cert-brand h2{margin:0;font-size:22px;color:#0f172a}
.report-cert-brand p{margin:6px 0 0;font-size:12px;color:#64748b}
.report-cert-ribbon{width:52px;height:52px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(135deg,var(--cert-accent),var(--cert-accent-2));color:#fff;font-size:22px;box-shadow:0 10px 22px color-mix(in srgb,var(--cert-accent) 30%,transparent)}
.report-cert-meta{display:flex;flex-wrap:wrap;gap:8px;padding:16px 24px;border-bottom:1px solid color-mix(in srgb,var(--cert-accent) 12%,#fff)}
.report-cert-meta span{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:999px;background:#fff;border:1px solid #e2e8f0;font-size:11.5px;font-weight:700;color:#334155}
.report-cert-meta i{color:var(--cert-accent);font-size:12px}
.report-subject-list{padding:12px 20px 8px;display:flex;flex-direction:column;gap:8px}
.report-subject-list.is-final .report-subject-head{display:grid;grid-template-columns:32px 1fr 72px 72px;gap:8px;padding:8px 14px;font-size:11px;font-weight:800;color:#64748b}
.report-subject{display:grid;grid-template-columns:32px 1fr auto;gap:8px 12px;align-items:center;padding:14px 16px;border-radius:16px;background:#fff;border:1px solid #e8eef7;transition:transform .2s,box-shadow .2s}
.report-subject:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(15,23,42,.06)}
.report-subject-list.is-final .report-subject{grid-template-columns:32px 1fr 72px 72px}
.report-subject-no{width:28px;height:28px;border-radius:10px;display:grid;place-items:center;background:color-mix(in srgb,var(--cert-accent) 12%,#fff);color:var(--cert-accent);font-size:11px;font-weight:900}
.report-subject strong{font-size:14px;color:#0f172a}
.report-score{display:inline-grid;place-items:center;min-width:56px;min-height:40px;padding:6px 12px;border-radius:14px;background:linear-gradient(135deg,color-mix(in srgb,var(--cert-accent) 12%,#fff),#fff);border:1px solid color-mix(in srgb,var(--cert-accent) 25%,#fff);font-size:16px;font-weight:900;color:var(--cert-accent)}
.report-score.second{color:#7c3aed;background:linear-gradient(135deg,#f5f3ff,#fff);border-color:#ddd6fe}
.report-cert-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;padding:16px 24px 22px;border-top:1px dashed color-mix(in srgb,var(--cert-accent) 25%,#fff);font-size:11px;color:#64748b}
.report-cert-foot em{font-style:normal;opacity:.85}
.report-cert-empty{margin:24px}
.learner-page .compact-empty,.compact-empty.report-cert-empty{padding:48px 28px;text-align:center}
.learner-page .compact-empty i,.compact-empty.report-cert-empty i{width:60px;height:60px;border-radius:20px;display:grid;place-items:center;margin:0 auto 14px;background:linear-gradient(135deg,#eff6ff,#dbeafe);color:#2563eb;font-size:26px}
.learner-page .compact-empty h2,.compact-empty.report-cert-empty h2{margin:0 0 8px;font-size:16px;color:#0f172a}
.learner-page .compact-empty p,.compact-empty.report-cert-empty p{margin:0 auto;color:#64748b;font-size:12.5px;line-height:1.8;max-width:360px}
.att-notice-card,.att-list-card{overflow:hidden;border:1px solid #dbeafe;box-shadow:0 18px 40px rgba(37,99,235,.08);border-radius:22px}
.att-notice-hero{display:flex;align-items:center;gap:18px;padding:22px 24px;background:linear-gradient(135deg,#eff6ff 0%,#fff 70%);border-bottom:1px solid #e2e8f0}
.att-notice-art{width:56px;height:56px;flex:0 0 56px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(135deg,#f97316,#ea580c);color:#fff;font-size:24px;box-shadow:0 10px 22px rgba(234,88,12,.28)}
.att-notice-hero h2{margin:0 0 6px;font-size:17px}
.att-notice-hero p{margin:0;font-size:12px;color:#64748b;line-height:1.7}
.att-notice-card .notice-form{padding:18px 24px}
.att-notice-card .dialog-section-title{padding:0 24px;margin:20px 0 12px;font-size:14px;color:#334155}
.att-notice-card .form-note{padding:0 24px 16px}
.att-notice-card .learner-grade-list{padding:0 20px 22px}
.att-notice-item{border-color:#fed7aa!important;background:linear-gradient(180deg,#fff,#fff7ed)!important}
.att-notice-feed{display:flex;flex-direction:column;gap:12px;padding:0 20px 22px}
.att-notice-tile{
  display:grid;grid-template-columns:52px 1fr;gap:0;overflow:hidden;
  border:1px solid #fed7aa;border-radius:18px;
  background:linear-gradient(180deg,#fff,#fff7ed);
  box-shadow:0 10px 24px rgba(234,88,12,.08);
  transition:transform .2s,box-shadow .2s;
}
.att-notice-tile:hover{transform:translateY(-1px);box-shadow:0 14px 28px rgba(234,88,12,.12)}
.att-notice-tile.is-ok{border-color:#bbf7d0;background:linear-gradient(180deg,#fff,#f0fdf4);box-shadow:0 10px 24px rgba(22,163,74,.08)}
.att-notice-tile.is-bad{border-color:#fecaca;background:linear-gradient(180deg,#fff,#fff1f2);box-shadow:0 10px 24px rgba(225,29,72,.08)}
.att-notice-tile.is-wait{border-color:#fde68a;background:linear-gradient(180deg,#fff,#fffbeb)}
.att-notice-tile-side{
  display:grid;place-items:center;background:linear-gradient(180deg,#ffedd5,#fed7aa);color:#c2410c;font-size:20px;
}
.att-notice-tile.is-ok .att-notice-tile-side{background:linear-gradient(180deg,#dcfce7,#bbf7d0);color:#15803d}
.att-notice-tile.is-bad .att-notice-tile-side{background:linear-gradient(180deg,#fee2e2,#fecaca);color:#be123c}
.att-notice-tile.is-wait .att-notice-tile-side{background:linear-gradient(180deg,#fef3c7,#fde68a);color:#b45309}
.att-notice-tile-body{padding:14px 16px}
.att-notice-tile-top{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.att-notice-tile-top strong{font-size:15px;color:#0f172a}
.att-notice-chip{
  display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;
  font-size:10.5px;font-weight:800;background:#ffedd5;color:#9a3412;
}
.att-notice-chip.is-ok{background:#dcfce7;color:#166534}
.att-notice-chip.is-bad{background:#fee2e2;color:#991b1b}
.att-notice-chip.is-wait{background:#fef3c7;color:#92400e}
.att-notice-reason{margin:0 0 6px;font-size:12.5px;color:#475569;font-weight:700;display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.att-notice-reason i{color:#ea580c;font-size:12px}
.att-notice-reason em{font-style:normal;font-weight:600;color:#94a3b8}
.att-notice-desc{margin:0;font-size:12.5px;line-height:1.75;color:#334155}
.att-notice-review{
  margin-top:10px;padding:10px 12px;border-radius:12px;border:1px dashed #cbd5e1;
  background:#fff;display:flex;gap:8px;align-items:flex-start;font-size:12px;color:#475569;line-height:1.7;
}
.att-notice-review i{color:#64748b;margin-top:2px}
.att-list-card .section-head{padding:20px 24px;border-bottom:1px solid #eef2f7;background:linear-gradient(135deg,#f8fafc,#fff)}
.att-absence-list{display:flex;flex-direction:column;gap:10px;padding:8px 20px 22px}
.att-absence-row{display:grid;grid-template-columns:auto 1fr auto;gap:12px 16px;align-items:center;padding:16px 18px;border-radius:18px;border:1px solid #e2e8f0;background:#fff;transition:transform .2s,box-shadow .2s}
.att-absence-row:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(15,23,42,.06)}
.att-absence-row.is-excused{border-color:#bbf7d0;background:linear-gradient(180deg,#fff,#f0fdf4)}
.att-absence-row.is-unexcused{border-color:#fecaca;background:linear-gradient(180deg,#fff,#fff1f2)}
.att-absence-date{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:88px;padding:10px 12px;border-radius:14px;background:#f8fafc;border:1px solid #e2e8f0;text-align:center}
.att-absence-date i{color:#64748b;font-size:14px}
.att-absence-date b{font-size:13px;color:#0f172a}
.att-absence-row strong{display:block;font-size:14px;margin-bottom:2px}
.att-absence-row small{display:block;font-size:11px;color:#64748b}
.att-absence-row p{margin:6px 0 0;font-size:12px;color:#475569;line-height:1.6}
.att-notify-pref-box{padding:0 18px 8px}
.att-notify-pref-grid{display:grid;gap:10px}
.att-notify-pref-card{display:grid;grid-template-columns:auto auto 1fr auto;gap:10px 12px;align-items:center;padding:14px 16px;border-radius:16px;border:1px solid #e2e8f0;background:#fff;cursor:pointer;transition:border-color .15s,box-shadow .15s,background .15s}
.att-notify-pref-card:hover{border-color:#cbd5e1;box-shadow:0 8px 18px rgba(15,23,42,.05)}
.att-notify-pref-card.is-on{border-color:#bbf7d0;background:linear-gradient(180deg,#fff,#f0fdf4)}
.att-notify-pref-card.is-locked{cursor:default;opacity:.95}
.att-notify-pref-card>input[type=hidden]{display:none}
.att-notify-pref-card>input[type=checkbox]{width:18px;height:18px;accent-color:#059669;margin:0}
.att-notify-pref-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:12px;background:#f8fafc;border:1px solid #e2e8f0;color:#0f172a}
.att-notify-pref-copy{display:flex;flex-direction:column;gap:2px;min-width:0}
.att-notify-pref-copy strong{font-size:13px;color:#0f172a}
.att-notify-pref-copy small{font-size:11px;color:#64748b;line-height:1.5}
.att-notify-pref-badge{font-style:normal;font-size:10px;font-weight:800;padding:4px 8px;border-radius:999px;background:#ecfdf5;color:#047857;border:1px solid #a7f3d0;white-space:nowrap}
.att-notify-pref-badge.is-off{background:#fff1f2;color:#be123c;border-color:#fecdd3}
.att-teacher-sub-entries{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.att-teacher-sub-entries li{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:9px 12px;border-radius:12px;background:#fff7ed;border:1px solid #fed7aa;font-size:12px}
.att-teacher-sub-entries li strong{font-weight:800;color:#0f172a}
.att-teacher-sub-entries li span{font-weight:700;color:#9a3412}
.att-teacher-sub-entries li em{flex:1 1 100%;font-style:normal;color:#78716c;font-size:11.5px}
.att-teacher-sub-entries li.is-unexcused{background:#fff1f2;border-color:#fecdd3}
.att-teacher-sub-entries li.is-unexcused span{color:#be123c}
.att-teacher-sub-entries li.is-excused{background:#ecfdf5;border-color:#a7f3d0}
.att-teacher-sub-entries li.is-excused span{color:#047857}
.att-teacher-sub-entries li.is-late{background:#f5f3ff;border-color:#ddd6fe}
.att-teacher-sub-entries.is-editable{gap:10px;margin-top:8px}
@media (min-width:901px){
  .att-teacher-sub-entries.is-editable{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
    align-items:stretch;
  }
  .att-teacher-sub-entries.is-editable .att-teacher-edit-row{height:100%;min-width:0}
  .att-teacher-sub-entries.is-editable .att-radio{padding:6px 10px;font-size:11px}
  .att-teacher-sub-entries.is-editable .att-remark-opt{padding:4px 9px;font-size:10.5px}
}
.att-teacher-edit-row{display:flex;flex-direction:column;align-items:stretch;gap:10px;padding:12px 14px;border-radius:14px;background:#fff;border:1px solid #e2e8f0;box-shadow:0 4px 14px rgba(15,23,42,.04)}
.att-teacher-edit-row.is-excused{border-color:#a7f3d0;background:#f0fdf4}
.att-teacher-edit-row.is-unexcused{border-color:#fecdd3;background:#fff1f2}
.att-teacher-edit-row.is-late{border-color:#ddd6fe;background:#f5f3ff}
.att-teacher-edit-row.is-present{border-color:#bbf7d0;background:#f0fdf4}
.att-teacher-edit-who{display:flex;flex-direction:column;gap:4px}
.att-teacher-edit-who strong{font-size:13px;font-weight:800;color:#0f172a}
.att-teacher-edit-who em{font-style:normal;color:#64748b;font-size:11.5px;line-height:1.5}
.att-review-edit-hint{display:flex;align-items:center;gap:8px;margin:12px 0 0;padding:8px 12px;border-radius:10px;background:#eff6ff;border:1px solid #bfdbfe;color:#1d4ed8;font-size:12px;font-weight:600}
.att-review-edit-hint i{opacity:.9}
.att-teacher-remark-chip{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;background:#e0f2fe;color:#0369a1;font-size:11px;font-weight:700}
.att-teacher-sub-entries li.is-late span{color:#6d28d9}
@media (max-width:640px){
  .att-notify-pref-card{grid-template-columns:auto auto 1fr;grid-template-areas:"check icon badge" "copy copy copy"}
  .att-notify-pref-card>input[type=checkbox]{grid-area:check}
  .att-notify-pref-icon{grid-area:icon}
  .att-notify-pref-copy{grid-area:copy}
  .att-notify-pref-badge{grid-area:badge;justify-self:end}
}
.learner-page .settings-card{border-radius:22px;border:1px solid #e2e8f0;box-shadow:0 14px 36px rgba(15,23,42,.06);overflow:hidden}
.learner-page .section-head{padding:20px 24px 0}
.learner-page .report-card-tabs .stage-tabs a .count-badge{background:rgba(239,68,68,.15);color:#b91c1c}
.learner-page .report-card-tabs .stage-tabs a.active .count-badge{background:rgba(255,255,255,.28);color:#fff}
.learner-child-switch a strong{font-size:13px;color:#0f172a}
.learner-child-switch a.active strong{color:#1d4ed8}
.learner-grade-card{border-color:#dbeafe;box-shadow:0 8px 20px rgba(37,99,235,.06);transition:transform .2s,box-shadow .2s}
.learner-grade-card:hover{transform:translateY(-2px);box-shadow:0 14px 28px rgba(37,99,235,.1)}
.learner-grade-card:not(.lg-subject-card) .learner-grade-score b{font-size:26px}
.learner-hero.grades-hero{background:linear-gradient(115deg,#fff 42%,#eef6ff)}
.lc-page.lc-learner .lc-course-grid{padding-top:4px}

.report-sheet{overflow:hidden;border:1px solid #dbeafe;box-shadow:0 18px 40px rgba(37,99,235,.08)}
.report-sheet-head{display:flex;gap:14px;align-items:center;padding:20px 22px;background:linear-gradient(135deg,#1d4ed8,#7c3aed);color:#fff}
.report-sheet-seal{width:54px;height:54px;border-radius:18px;display:grid;place-items:center;background:rgba(255,255,255,.16);font-size:22px}
.report-sheet-head h2,.report-sheet-head p,.report-sheet-head small{margin:0;color:#fff}
.report-sheet-head p,.report-sheet-head small{opacity:.85}
.report-sheet-table-wrap{padding:8px}
.report-sheet-table{width:100%;border-collapse:separate;border-spacing:0 6px}
.report-sheet-table th{font-size:11px;color:#64748b;padding:8px 14px;text-align:right}
.report-sheet-table td{padding:14px;background:#f8fbff;border-top:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0}
.report-sheet-table td:first-child{border-right:1px solid #e2e8f0;border-radius:0 14px 14px 0;font-weight:800}
.report-sheet-table td:last-child{border-left:1px solid #e2e8f0;border-radius:14px 0 0 14px;text-align:center;font-weight:900;color:#1d4ed8}
.lc-mkt-card{display:flex;flex-direction:column;border-radius:24px;overflow:hidden;border:1px solid rgba(226,232,240,.9);background:#fff;box-shadow:0 16px 36px rgba(15,23,42,.08);animation:lc-card-in .55s ease both;animation-delay:calc(var(--i,1) * 70ms);transition:transform .28s ease,box-shadow .28s ease}
.lc-mkt-card:hover{transform:translateY(-8px);box-shadow:0 26px 48px rgba(37,99,235,.18)}
.lc-mkt-link{display:flex;flex-direction:column;text-decoration:none;color:inherit}
.lc-mkt-cover{position:relative;display:block;height:176px;overflow:hidden}
.lc-mkt-cover img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.lc-mkt-card:hover .lc-mkt-cover img{transform:scale(1.08)}
.lc-mkt-cover i{position:absolute;inset:auto 18px 18px auto;font-size:34px;color:#fff;opacity:.9}
.lc-mkt-shine{position:absolute;inset:0;background:linear-gradient(110deg,transparent 20%,rgba(255,255,255,.28) 45%,transparent 70%);transform:translateX(120%);pointer-events:none}
.lc-mkt-card:hover .lc-mkt-shine{animation:lc-shine .7s ease}
.lc-mkt-play{position:absolute;left:14px;bottom:14px;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.92);color:#2563eb;box-shadow:0 8px 18px rgba(15,23,42,.2);transform:scale(.86);opacity:.0;transition:.25s ease}
.lc-mkt-play i{position:static;inset:auto;font-size:14px;color:#2563eb;opacity:1;margin-right:-2px}
.lc-mkt-card:hover .lc-mkt-play{opacity:1;transform:scale(1)}
@keyframes lc-card-in{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes lc-shine{from{transform:translateX(-80%)}to{transform:translateX(120%)}}
.lc-mkt-body{display:flex;flex-direction:column;gap:10px;padding:16px 16px 8px}
.lc-mkt-topline{display:flex;justify-content:space-between;align-items:center}
.lc-pill{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;background:#f1f5f9;color:#475569;font-size:11px;font-weight:800;font-style:normal}
.lc-pill.light{background:rgba(255,255,255,.18);color:#fff}
.lc-mkt-body strong{font-size:16px;line-height:1.6;color:#0f172a}
.lc-mkt-author{display:flex;align-items:center;gap:8px;font-size:12px;color:#64748b}
.lc-mkt-author img,.lc-mini-avatar{width:28px;height:28px;border-radius:50%;object-fit:cover}
.lc-mkt-author i{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#eef2ff;color:#4f46e5}
.lc-mkt-author b{margin-right:auto;color:#0f172a;font-size:12px}
.lc-mkt-author b i{width:auto;height:auto;background:none;color:#f59e0b}
.lc-mkt-foot{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:12px 16px 16px;border-top:1px solid #eef2f7;color:#64748b;font-size:12px;font-weight:700}
.lc-mkt-foot .dot{width:4px;height:4px;border-radius:50%;background:#cbd5e1}
.lc-score-btn{margin-right:auto;border:0;background:#eff6ff;color:#1d4ed8;border-radius:999px;padding:4px 10px;font-weight:800;cursor:pointer}
.lc-ratings-dialog{border:0;border-radius:18px;padding:0;width:min(420px,92vw);box-shadow:0 24px 60px rgba(15,23,42,.24)}
.lc-ratings-dialog header{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid #e2e8f0}
.lc-ratings-dialog h3{margin:0;font-size:14px}
.lc-score-list{list-style:none;margin:0;padding:12px 16px 16px;display:flex;flex-direction:column;gap:10px}
.lc-score-list.padded{padding:0 24px 18px}
.lc-score-list li{display:flex;justify-content:space-between;gap:12px;align-items:center}
.lc-score-list small{display:block;color:#64748b}
.lc-score-list i{color:#f59e0b}
.lc-create-panel{overflow:hidden}
.lc-create-hero{display:flex;justify-content:space-between;align-items:flex-end;padding:22px 24px;color:#fff;background:linear-gradient(135deg,#2563eb,#7c3aed)}
.lc-main-nav{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:10px}
.lc-main-btn{height:48px;min-width:0;border:0;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:800;font-size:13px;cursor:pointer;background:#e2e8f0;color:#1e293b;box-shadow:0 6px 16px rgba(15,23,42,.08)}
.lc-main-btn.is-add{background:#dcfce7;color:#166534}
.lc-main-btn.is-log{background:#f8fafc;color:#0f172a;border:1px solid #e2e8f0}
.lc-main-btn.active{background:linear-gradient(135deg,#2563eb,#4f46e5);color:#fff;box-shadow:0 10px 22px rgba(37,99,235,.28)}
.lc-main-btn.active.is-add{background:linear-gradient(135deg,#16a34a,#22c55e);color:#fff;box-shadow:0 10px 22px rgba(22,163,74,.28)}
.lc-main-btn.active.is-log{background:linear-gradient(135deg,#0f172a,#334155);color:#fff}
.lc-main-btn i{animation:lc-icon-bob 2.4s ease-in-out infinite}
.lc-main-btn:hover{transform:translateY(-1px)}
.lc-page .disc-hero h2,.lc-page .section-head h2{font-size:14px;margin:0}
.lc-page .disc-hero p,.lc-page .section-head p,.lc-page .form-note{font-size:11px}
.lc-page.lc-learner .lc-main-nav{grid-template-columns:1fr}
.lc-page.lc-learner .lc-main-btn.active{background:linear-gradient(135deg,var(--org-1),var(--org-2))}
.lc-detail-copy{gap:6px}
.lc-detail-copy h2{margin:0;font-size:18px;font-weight:800}
.lc-detail-copy p{font-size:12px;line-height:1.7}
.lc-detail-sub{font-size:13px}
.lc-hero-stats b{font-size:15px}
.lc-hero-stats span{font-size:11px}
.lc-create-hero h2{margin:4px 0;font-size:16px}
.lc-create-hero p{font-size:12px}
.lc-create-hero small{font-size:11px}
.lc-mkt-body strong{font-size:13px}
.lc-review header{display:flex;align-items:center;gap:8px}
.lc-review strong,.lc-score-list strong,.lc-log-row strong{font-size:12px}
.lc-review p{margin:4px 0 0;font-size:12px;line-height:1.7}
.lc-review-edit{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.lc-review-edit textarea{width:100%;min-height:72px}
.lc-review-stars{margin-right:auto;color:#f59e0b;font-size:11px;display:inline-flex;gap:1px}
.lc-stars{font-size:16px}
.lc-log-empty{padding:16px}
.lc-log-table{display:flex;flex-direction:column;gap:12px;padding:12px 18px 20px}
.lc-log-row{display:grid;grid-template-columns:minmax(110px,.8fr) minmax(0,1.4fr) minmax(90px,.7fr) auto;gap:8px;align-items:center;padding:8px 10px;border:1px solid #eef2f7;border-radius:10px;background:#fff}
.lc-log-row p{margin:0;font-size:11px}
.lc-log-row small,.lc-log-row time,.lc-log-row em{display:block;font-size:10px;color:#64748b;font-style:normal}
@media(max-width:720px){.lc-log-row{grid-template-columns:1fr 1fr}}
.lc-create-hero i{font-size:48px;opacity:.35}
.lc-create-form{display:flex;flex-direction:column;gap:12px;padding:18px 24px 24px}
.lc-cover-picker{position:relative;cursor:pointer}
.lc-cover-picker input{position:absolute;opacity:0;width:0;height:0}
.lc-cover-preview{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:180px;border:2px dashed #c7d2fe;border-radius:18px;background:#f8fafc url('') center/cover no-repeat;color:#475569;text-align:center;padding:16px}
.lc-cover-preview.has-image{color:transparent;border-style:solid}
.lc-cover-preview.has-image *{display:none}
.lc-create-btn{background:linear-gradient(135deg,#22c55e,#16a34a);border:0}
.lc-add-tab{background:linear-gradient(135deg,#dcfce7,#bbf7d0)!important;color:#166534}
.lc-detail-hero{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(240px,.85fr) minmax(0,1.15fr);gap:18px;padding:24px;border-radius:28px;color:#fff;background:linear-gradient(120deg,#2563eb 0%,#4f46e5 48%,#7c3aed 100%);box-shadow:0 22px 50px rgba(37,99,235,.28)}
.lc-detail-hero::before{content:"";position:absolute;inset:auto -40px -60px auto;width:220px;height:220px;border-radius:50%;background:rgba(255,255,255,.08);pointer-events:none}
.lc-detail-copy{display:flex;flex-direction:column;gap:6px;position:relative;z-index:1}
.lc-detail-sub{margin:0;color:#bbf7d0;font-weight:800;font-size:13px}
.lc-detail-tags{display:flex;flex-wrap:wrap;gap:6px}
.lc-hero-stats{display:flex;gap:10px;flex-wrap:wrap}
.lc-hero-stats span{display:flex;flex-direction:column;gap:2px;min-width:76px;padding:8px 10px;border-radius:14px;background:rgba(255,255,255,.12);backdrop-filter:blur(8px);font-size:11px;opacity:1}
.lc-hero-stats b{font-size:16px}
.lc-start-btn{display:inline-flex;align-items:center;gap:8px;border:0;border-radius:999px;padding:11px 18px;background:linear-gradient(135deg,#4ade80,#22c55e);color:#052e16;font-weight:800;font-size:13px;cursor:pointer;box-shadow:0 10px 22px rgba(34,197,94,.35);animation:lc-start-pulse 2.4s ease-in-out infinite}
.lc-start-btn i{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:#fff;color:#16a34a;font-size:10px}
.lc-start-btn:hover{transform:translateY(-1px)}
.lc-back-btn{display:inline-flex;align-items:center;padding:10px 14px;border-radius:999px;background:rgba(255,255,255,.14);color:#fff;text-decoration:none;font-size:12px;font-weight:700}
@keyframes lc-start-pulse{0%,100%{box-shadow:0 10px 22px rgba(34,197,94,.3)}50%{box-shadow:0 12px 28px rgba(34,197,94,.5)}}
.lc-detail-photo{min-height:220px;border-radius:24px;overflow:hidden;display:grid;place-items:center;box-shadow:0 16px 40px rgba(15,23,42,.25)}
.lc-detail-photo img{width:100%;height:100%;object-fit:cover}
.lc-detail-photo i{font-size:64px;opacity:.5}
.lc-tabs{display:flex;flex-wrap:nowrap;gap:8px;padding:8px;border-radius:16px;margin-bottom:8px}
.lc-tabs button{flex:1 1 0;min-width:0;border:0;background:#f1f5f9;border-radius:12px;padding:10px;font-weight:800;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lc-tabs button.active{background:#2563eb;color:#fff}
.lc-view{display:flex;flex-direction:column;gap:22px}
.lc-studio-bar{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:14px 16px;align-items:stretch;margin-bottom:10px}
.lc-studio-btn{height:48px;width:100%;border:0;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:800;font-size:13px;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,filter .2s ease}
.lc-studio-btn i{width:22px;text-align:center;font-size:15px;animation:lc-icon-bob 2.4s ease-in-out infinite}
.lc-studio-btn.is-primary{background:linear-gradient(135deg,#2563eb,#4f46e5);color:#fff;box-shadow:0 8px 20px rgba(37,99,235,.22)}
.lc-studio-btn.is-secondary{background:linear-gradient(135deg,#eff6ff,#dbeafe);color:#1d4ed8;box-shadow:0 8px 18px rgba(37,99,235,.1)}
.lc-studio-btn:hover{transform:translateY(-2px)}
.lc-studio-btn:hover i{animation:lc-icon-pop .5s ease}
.lc-studio-btn:disabled{opacity:.55;cursor:not-allowed;transform:none}
.lc-studio-btn:disabled i{animation:none}
@keyframes lc-icon-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
@keyframes lc-icon-pop{0%{transform:scale(1) rotate(0)}40%{transform:scale(1.22) rotate(-12deg)}70%{transform:scale(.92) rotate(8deg)}100%{transform:scale(1) rotate(0)}}
.lc-fold{overflow:hidden}
.lc-fold-head{display:flex;align-items:center;gap:10px;padding:12px 14px;flex-wrap:nowrap}
.lc-fold-head .lc-row{flex:1;min-width:0}
.lc-fold-title{flex:1;font-size:14px;display:flex;align-items:center;gap:10px;font-weight:800;color:#0f172a}
.lc-fold-icon{width:40px;height:40px;flex:0 0 40px;border-radius:14px;display:grid;place-items:center;font-size:16px;color:#fff;box-shadow:0 8px 18px rgba(15,23,42,.12);position:relative;overflow:hidden}
.lc-fold-icon::after{content:"";position:absolute;inset:0;background:linear-gradient(145deg,rgba(255,255,255,.28),transparent 55%);pointer-events:none}
.lc-fold-icon i{position:relative;z-index:1;line-height:1}
.lc-fold-icon--category{background:linear-gradient(135deg,#6366f1,#2563eb);box-shadow:0 10px 22px rgba(37,99,235,.28)}
.lc-fold-icon--lesson{background:linear-gradient(135deg,#14b8a6,#0d9488);box-shadow:0 10px 22px rgba(13,148,136,.24)}
.lc-fold.nested .lc-fold-head{padding:10px 12px}
.lc-fold.nested .lc-fold-icon{width:36px;height:36px;flex-basis:36px;border-radius:12px;font-size:14px}
.lc-fold-toggle{width:36px;height:36px;flex:0 0 36px;border-radius:10px;border:1px solid #bfdbfe;background:#eff6ff;color:#1d4ed8;cursor:pointer}
.lc-fold-toggle i{display:inline-block;transition:transform .28s ease}
.lc-fold.is-open>.lc-fold-head .lc-fold-toggle i{transform:rotate(-180deg)}
.lc-fold-panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .32s ease}
.lc-fold.is-open>.lc-fold-panel{grid-template-rows:1fr}
.lc-fold-inner{overflow:hidden;min-height:0;padding:0 14px 16px;display:flex;flex-direction:column;gap:16px}
.lc-fold.nested{border:1px solid #e2e8f0;border-radius:16px;background:linear-gradient(180deg,#fbfdff,#fff);box-shadow:inset 0 1px 0 #fff}
.lc-row{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;min-width:0}
.lc-row.grow,.lc-item>.lc-row{flex:1}
.lc-row input{flex:1;min-width:0}
.lc-type-picks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.lc-add-head{display:flex;align-items:stretch;gap:10px;flex-wrap:wrap}
.lc-add-title{flex:1 1 200px;min-width:0}
.lc-type-picks--inline{display:flex;flex-wrap:nowrap;gap:6px;flex:0 1 auto;align-self:stretch;align-items:stretch}
.lc-type-picks--inline label{flex:0 0 auto}
.lc-type-picks--inline b{min-height:42px;padding:0 10px;font-size:11px;gap:5px;white-space:nowrap;border-radius:12px}
.lc-type-picks--inline b i{font-size:12px;flex-shrink:0}
.lc-type-picks--inline b span{line-height:1}
.lc-type-picks input{position:absolute;opacity:0;pointer-events:none}
.lc-type-picks label{cursor:pointer}
.lc-type-picks b{display:flex;align-items:center;justify-content:center;gap:8px;min-height:46px;border:1px solid #e2e8f0;border-radius:14px;background:#fff;color:#64748b;font-size:13px;font-weight:800;transition:.2s}
.lc-type-picks input:checked+b i{animation:lc-icon-pop .45s ease}
.lc-type-picks label:nth-child(1) input:checked+b{border-color:#2563eb;background:linear-gradient(135deg,#eff6ff,#dbeafe);color:#1d4ed8;box-shadow:0 0 0 3px rgba(37,99,235,.12)}
.lc-type-picks label:nth-child(2) input:checked+b{border-color:#0f766e;background:linear-gradient(135deg,#f0fdfa,#ccfbf1);color:#0f766e;box-shadow:0 0 0 3px rgba(13,148,136,.12)}
.lc-type-picks label:nth-child(3) input:checked+b{border-color:#7c3aed;background:linear-gradient(135deg,#f5f3ff,#ede9fe);color:#6d28d9;box-shadow:0 0 0 3px rgba(124,58,237,.12)}
.lc-item{position:relative;display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px;margin:0;padding:16px;border:1px solid #e2e8f0;border-radius:16px;background:#fff}
.lc-item-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;width:100%}
.lc-item-title-line{display:flex;align-items:center;gap:8px;flex:1;min-width:0}
.lc-item-title-line input,.lc-item-title-line b{flex:1;min-width:0}
.lc-item-title-line b{font-size:14px;line-height:1.5}
.lc-type-badge{font-style:normal;display:inline-flex;align-items:center;justify-content:center;padding:2px 8px;border-radius:999px;font-size:10px;font-weight:800;line-height:1.6;white-space:nowrap;flex-shrink:0;letter-spacing:.01em}
.lc-type-badge--text{background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe}
.lc-type-badge--image{background:#ecfdf5;color:#047857;border:1px solid #6ee7b7}
.lc-type-badge--video{background:#f5f3ff;color:#6d28d9;border:1px solid #c4b5fd}
.lc-file-delete-zone{padding:10px 12px;border:1px dashed #fecaca;border-radius:14px;background:linear-gradient(180deg,#fffbfb,#fff5f5)}
.lc-file-delete-zone .lc-file-toolbar{margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid #fee2e2}
.lc-file-delete-zone .lc-select-all{color:#b91c1c;font-weight:800}
.lc-file-delete-zone .lc-select-all input{accent-color:#dc2626}
.lc-file-delete-btn{display:inline-flex;align-items:center;gap:6px}
.lc-file-delete-btn i{color:#dc2626}
.lc-file-card:has(input[name="remove_file_ids[]"]:checked){border-color:#fca5a5;box-shadow:0 0 0 2px rgba(220,38,38,.14)}
.lc-file-delete-zone .lc-file-check:has(input:checked){background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}
.lc-file-remove-btn,.lc-item .mini-action.danger-btn{border-color:#fecaca!important;background:#fef2f2!important;color:#dc2626!important}
.lc-file-remove-btn:hover,.lc-item .mini-action.danger-btn:hover{background:#fee2e2!important;border-color:#f87171!important}
.lc-item-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;width:100%;margin-top:4px}
.lc-item-actions .primary-btn,.lc-item-actions .lc-item-delete-btn{flex:1 1 140px;justify-content:center;min-height:42px}
.lc-item-delete-form{display:none}
.lc-item-delete-btn i{color:#dc2626}
.lc-item-edit{flex:1 1 100%;display:flex;flex-direction:column;gap:10px;min-width:0;width:100%}
.lc-file-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.lc-select-all{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:#475569}
.lc-file-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.lc-file-card{position:relative;margin:0;border:1px solid #e2e8f0;border-radius:14px;overflow:hidden;background:#f8fafc;min-height:120px}
.lc-file-card img,.lc-file-card video{display:block;width:100%;height:120px;object-fit:cover;background:#0f172a}
.lc-file-pdf{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;height:120px;color:#b91c1c;text-decoration:none;padding:8px;text-align:center}
.lc-file-check{position:absolute;top:6px;right:6px;z-index:1;display:flex;align-items:center;gap:4px;background:rgba(255,255,255,.94);border-radius:8px;padding:3px 6px;font-size:10px;font-weight:800}
.lc-file-card>.danger-btn{position:absolute;top:6px;left:6px;z-index:1}
.lc-add-more{display:flex;flex-wrap:wrap;gap:8px;align-items:end}
.lc-add-item{display:flex;flex-direction:column;gap:12px;padding:14px;border:1px dashed #93c5fd;border-radius:14px;background:#f8fbff}
.lc-add-item-btn{align-self:flex-start}
.lc-dialog{border:0;border-radius:18px;padding:0;width:min(420px,92vw);box-shadow:0 24px 60px rgba(15,23,42,.24)}
.lc-dialog form{display:flex;flex-direction:column;gap:12px;padding:16px}
.lc-dialog header{display:flex;justify-content:space-between;align-items:center}
.lc-dialog h3{margin:0;font-size:15px}
.lc-dialog footer{display:flex;justify-content:flex-end;gap:8px}
.lc-cover-preview.compact{min-height:120px}
.lc-acc-tools{display:flex;gap:6px;align-items:center}
.lc-inline-edit{display:flex;gap:6px;align-items:center;flex-wrap:nowrap}
.lc-inline-edit input{min-width:140px;flex:1}
.lc-edit-course{padding:0}
.lc-edit-course summary{padding:14px 18px;cursor:pointer;font-weight:800}
.lc-pending-banner{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:14px;background:#fff7ed;color:#9a3412;font-weight:700}
.lc-pending-banner form{margin-right:auto}
@media(max-width:900px){
    .lc-detail-hero{grid-template-columns:1fr}
}
.lc-progress{display:block;height:6px;border-radius:99px;background:#e2e8f0;overflow:hidden}
.lc-progress b{display:block;height:100%;background:linear-gradient(90deg,#2563eb,#7c3aed)}
.lc-hero-cover{display:flex;justify-content:space-between;gap:16px;padding:22px;border-radius:22px;color:#fff;background:linear-gradient(135deg,var(--lc-a,#2563eb),var(--lc-b,#7c3aed));box-shadow:0 18px 40px rgba(37,99,235,.2)}
.lc-hero-copy h2{margin:6px 0;font-size:22px}
.lc-hero-meta{display:flex;flex-wrap:wrap;gap:12px;font-size:12px;opacity:.92}
.lc-hero-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.lc-studio{display:grid;grid-template-columns:280px minmax(0,1fr);gap:14px}
.lc-curriculum{padding:14px;max-height:70vh;overflow:auto}
.lc-curriculum h3{margin:12px 0 8px;font-size:12px;color:#64748b}
.lc-lesson-link{width:100%;display:flex;align-items:center;gap:8px;padding:10px;border:0;background:transparent;border-radius:12px;cursor:pointer;text-align:right}
.lc-lesson-link.active,.lc-lesson-link:hover{background:#eff6ff}
.lc-player{min-height:420px;padding:18px}
.lc-player-empty{display:grid;place-items:center;gap:8px;min-height:360px;color:#64748b;text-align:center}
.seen-badge{margin-right:auto;background:#dcfce7;color:#166534;border-radius:999px;padding:2px 8px;font-size:10px;font-style:normal;font-weight:800}
.lc-no-star{font-size:11px;color:#64748b}
.sm-datepicker{position:relative}
.sm-datepicker-field{position:relative;display:flex;align-items:center}
.sm-datepicker-field>i{position:absolute;right:14px;color:#64748b;font-size:15px;pointer-events:none;z-index:1}
.sm-datepicker-field input{width:100%;padding:12px 44px 12px 14px;border:1px solid #dbeafe;border-radius:14px;background:linear-gradient(180deg,#fff,#f8fbff);font-size:13px;font-weight:700;color:#0f172a;cursor:pointer;transition:border-color .2s,box-shadow .2s}
.sm-datepicker-field input:focus{outline:none;border-color:#60a5fa;box-shadow:0 0 0 4px rgba(37,99,235,.12)}
.sm-datepicker-cal{position:fixed;top:0;left:0;z-index:10050;width:min(300px,calc(100vw - 32px));padding:0;border:1px solid #dbeafe;border-radius:22px;background:#fff;box-shadow:0 22px 56px rgba(15,23,42,.22),0 0 0 1px rgba(255,255,255,.6);overflow:hidden;opacity:0;transform:translateY(6px) scale(.98);transition:opacity .2s ease,transform .2s ease;pointer-events:none}
.sm-datepicker-cal.is-open{opacity:1;transform:none;pointer-events:auto}
.sm-datepicker-cal.hidden{display:none}
.sm-datepicker-nav{display:grid;grid-template-columns:40px 1fr 40px;align-items:center;gap:8px;padding:14px 12px 10px;background:linear-gradient(135deg,#2563eb 0%,#4f46e5 55%,#7c3aed 100%);color:#fff}
.sm-datepicker-nav-btn{width:36px;height:36px;border:0;border-radius:12px;display:grid;place-items:center;background:rgba(255,255,255,.16);color:#fff;font-size:13px;cursor:pointer;transition:transform .18s ease,background .18s ease,box-shadow .18s ease}
.sm-datepicker-nav-btn:hover{background:rgba(255,255,255,.28);transform:translateY(-1px);box-shadow:0 6px 14px rgba(15,23,42,.18)}
.sm-datepicker-nav-btn:active{transform:translateY(0)}
.sm-datepicker-title{text-align:center;display:flex;flex-direction:row;align-items:center;justify-content:center;gap:8px;line-height:1.4;white-space:nowrap}
.sm-datepicker-title strong{font-size:15px;font-weight:900}
.sm-datepicker-title span{font-size:14px;font-weight:800;opacity:.92}
.sm-datepicker-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;padding:10px 12px 4px;background:#f8fafc;border-bottom:1px solid #eef2f7}
.sm-datepicker-weekdays span{height:28px;display:grid;place-items:center;font-size:10px;font-weight:800;color:#64748b}
.sm-datepicker-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;padding:8px 12px 14px}
.sm-datepicker-grid .sm-datepicker-pad{height:36px}
.sm-datepicker-day{height:36px;border:0;border-radius:11px;background:transparent;font-size:12px;font-weight:700;color:#334155;cursor:pointer;transition:background .16s ease,color .16s ease,transform .16s ease,box-shadow .16s ease}
.sm-datepicker-day:hover:not(:disabled){background:#eff6ff;color:#1d4ed8;transform:translateY(-1px)}
.sm-datepicker-day.is-today:not(.is-selected){box-shadow:inset 0 0 0 2px #93c5fd;color:#1d4ed8;background:#f8fbff}
.sm-datepicker-day.is-selected{background:linear-gradient(135deg,#2563eb,#4f46e5);color:#fff;box-shadow:0 8px 18px rgba(37,99,235,.32)}
.sm-datepicker-day:disabled{opacity:.32;cursor:not-allowed;transform:none}
.notice-form{display:flex;flex-direction:column;gap:12px;padding:0 4px 8px}
.classmate-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:12px}
.classmate-card{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 12px;border:1px solid var(--line);border-radius:18px;background:#fbfcfe;text-align:center}
.classmate-card.is-self{border-color:#93c5fd;background:linear-gradient(180deg,#eff6ff,#fff)}
.classmate-avatar{width:64px;height:64px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:linear-gradient(135deg,#60a5fa,#2563eb);color:#fff;font-weight:800;font-size:22px}
.classmate-avatar img{width:100%;height:100%;object-fit:cover}
.classmate-card strong{font-size:12.5px;line-height:1.6}
.classmate-card em{font-style:normal;font-size:10px;font-weight:800;color:#2563eb;background:#dbeafe;border-radius:999px;padding:2px 8px}

.au-dashboard{display:flex;flex-direction:column;gap:18px}
@keyframes au-rise-in{from{opacity:0;transform:translateY(20px) scale(.985)}to{opacity:1;transform:none}}
@keyframes au-shine-sweep{from{transform:translateX(-130%) skewX(-14deg)}to{transform:translateX(230%) skewX(-14deg)}}
@keyframes au-glow-pulse{0%,100%{opacity:.35;transform:scale(1)}50%{opacity:.75;transform:scale(1.08)}}
@keyframes au-icon-bob{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-5px) scale(1.06)}}
@keyframes au-aurora{0%,100%{opacity:.55;transform:translate(0,0) scale(1)}33%{opacity:.85;transform:translate(-2%,3%) scale(1.04)}66%{opacity:.65;transform:translate(3%,-2%) scale(1.02)}}
@keyframes au-border-flow{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}
@keyframes au-badge-pop{0%{transform:scale(.5)}70%{transform:scale(1.18)}100%{transform:scale(1)}}
@keyframes au-feed-in{from{opacity:0;transform:translateX(10px)}to{opacity:1;transform:none}}
@keyframes au-stat-ring{0%{transform:scale(.92);opacity:.55}100%{transform:scale(1.35);opacity:0}}
.au-dashboard > *{animation:au-rise-in .7s cubic-bezier(.22,1,.36,1) both}
.au-dashboard > *:nth-child(1){animation-delay:.05s}
.au-dashboard > *:nth-child(2){animation-delay:.13s}
.au-dashboard > *:nth-child(3){animation-delay:.21s}
.au-dashboard > *:nth-child(4){animation-delay:.29s}
.au-hero{position:relative;display:flex;align-items:center;justify-content:space-between;gap:22px;padding:26px 30px;border-radius:24px;background:linear-gradient(125deg,#fff 0%,#f0f7ff 48%,#e8f0ff 100%);overflow:hidden;isolation:isolate;border:1px solid rgba(147,197,253,.45);box-shadow:0 18px 48px rgba(37,99,235,.08),inset 0 1px 0 rgba(255,255,255,.9)}
.au-hero::before{content:"";position:absolute;inset:-40%;background:radial-gradient(circle at 18% 24%,rgba(59,130,246,.18),transparent 42%),radial-gradient(circle at 82% 18%,rgba(99,102,241,.14),transparent 38%),radial-gradient(circle at 70% 88%,rgba(20,184,166,.12),transparent 40%);animation:au-aurora 14s ease-in-out infinite;pointer-events:none;z-index:0}
.au-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.35) 50%,transparent 60%);transform:translateX(-120%);animation:au-shine-sweep 6s ease-in-out infinite;pointer-events:none;z-index:0}
.au-hero-main,.au-hero-art{position:relative;z-index:1}
.au-hero-kicker{display:inline-flex;align-items:center;padding:6px 13px;border-radius:999px;background:linear-gradient(135deg,#dbeafe,#eff6ff);color:#1e3a8a;font-size:12px;font-weight:900;letter-spacing:.02em;border:1px solid rgba(147,197,253,.55);box-shadow:0 4px 14px rgba(37,99,235,.1)}
.au-hero h1{margin:12px 0 8px;font-size:24px;font-weight:900;color:#0f172a;line-height:1.45;letter-spacing:-.02em}
.au-hero-main p{margin:0;color:#475569;font-size:13px;line-height:1.9;max-width:720px}
.au-hero-note{margin-top:12px;padding:10px 14px;border-radius:14px;background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;font-size:12px}
.au-hero-note-muted{background:rgba(255,255,255,.72);border-color:#e2e8f0;color:#475569;backdrop-filter:blur(6px)}
.au-hero-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.au-hero-meta span{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:999px;background:rgba(255,255,255,.88);border:1px solid rgba(219,234,254,.9);font-size:11.5px;font-weight:700;color:#334155;transition:transform .25s cubic-bezier(.22,1,.36,1),box-shadow .25s ease,border-color .25s ease;backdrop-filter:blur(4px)}
.au-hero-meta span:hover{transform:translateY(-2px);border-color:#93c5fd;box-shadow:0 8px 20px rgba(37,99,235,.1)}
.au-hero-meta i{color:#2563eb;font-size:12px}
.au-hero-art{position:relative;width:190px;height:120px;flex:0 0 auto}
.au-hero-art .bubble{position:absolute;width:58px;height:58px;border-radius:20px;display:grid;place-items:center;color:#fff;font-size:20px;animation:commFloat 4.5s ease-in-out infinite;transition:transform .3s cubic-bezier(.22,1,.36,1),box-shadow .3s ease}
.au-hero-art .bubble.blue{background:linear-gradient(135deg,#3b82f6,#2563eb);box-shadow:0 16px 36px rgba(37,99,235,.34)}
.au-hero-art .bubble.green{background:linear-gradient(135deg,#34d399,#059669);box-shadow:0 16px 36px rgba(5,150,105,.34)}
.au-hero-art .bubble.orange{background:linear-gradient(135deg,#fb923c,#ea580c);box-shadow:0 16px 36px rgba(234,88,12,.34)}
.au-hero-art .bubble:hover{transform:scale(1.08) translateY(-4px)!important}
.au-hero-art .bubble.blue:hover{box-shadow:0 22px 44px rgba(37,99,235,.42)}
.au-hero-art .bubble.green:hover{box-shadow:0 22px 44px rgba(5,150,105,.42)}
.au-hero-art .bubble.orange:hover{box-shadow:0 22px 44px rgba(234,88,12,.42)}
.au-hero-art .one{right:8px;top:6px}
.au-hero-art .two{right:70px;top:56px;animation-delay:.6s}
.au-hero-art .three{right:128px;top:8px;animation-delay:1.2s}
.au-quick-panel{position:relative;padding:20px 22px 22px;border-radius:24px;border:1px solid rgba(147,197,253,.35);background:linear-gradient(165deg,rgba(255,255,255,.96),rgba(248,251,255,.92));box-shadow:0 16px 40px rgba(37,99,235,.07);overflow:hidden;isolation:isolate}
.au-quick-panel::before{content:"";position:absolute;inset:0;padding:1px;border-radius:inherit;background:linear-gradient(120deg,rgba(59,130,246,.35),rgba(99,102,241,.2),rgba(20,184,166,.3),rgba(59,130,246,.35));background-size:240% 240%;animation:au-border-flow 8s ease infinite;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}
.au-section-head{margin-bottom:16px;position:relative;z-index:1}
.au-section-head h2{margin:0 0 4px;font-size:15px;font-weight:900;color:#0f172a;letter-spacing:-.01em}
.au-section-head p{margin:0;font-size:11.5px;color:#64748b;line-height:1.65}
.au-lists-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.au-list-panel{position:relative;overflow:hidden;display:flex;flex-direction:column;min-height:0;border-radius:22px;border:1px solid rgba(226,232,240,.95);background:linear-gradient(180deg,#fff,#fbfdff);box-shadow:0 10px 32px rgba(15,23,42,.04);transition:transform .28s cubic-bezier(.22,1,.36,1),box-shadow .28s ease,border-color .28s ease}
.au-list-panel::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,#3b82f6,#6366f1,#14b8a6);opacity:.85}
.au-list-panel:hover{transform:translateY(-3px);border-color:rgba(147,197,253,.65);box-shadow:0 20px 44px rgba(37,99,235,.1)}
.au-list-panel .section-head{align-items:flex-start;gap:10px;padding:18px 20px 0;margin-bottom:12px}
.au-list-panel .section-head h2{font-size:14px;font-weight:900;color:#0f172a;letter-spacing:-.01em}
.au-list-panel .section-head p{font-size:11px;color:#64748b}
.au-list-panel .section-head .secondary-btn{flex:0 0 auto;white-space:nowrap;position:relative;overflow:hidden;border-radius:999px;padding:8px 15px;font-size:10.5px;font-weight:800;border:1px solid rgba(191,219,254,.8);background:linear-gradient(135deg,#eff6ff,#fff);box-shadow:0 4px 14px rgba(37,99,235,.08);transition:transform .22s ease,box-shadow .22s ease,background .22s ease}
.au-list-panel .section-head .secondary-btn:hover{transform:translateY(-1px);background:linear-gradient(135deg,#dbeafe,#eff6ff);box-shadow:0 8px 20px rgba(37,99,235,.14)}
.au-list-panel .section-head .secondary-btn:active{transform:scale(.97)}
.au-list-panel .au-feed{flex:1;padding:0 12px 16px}
.au-feed-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:28px 16px;text-align:center;color:#64748b}
.au-feed-empty i{width:46px;height:46px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(135deg,#f1f5f9,#e2e8f0);color:#94a3b8;font-size:18px;animation:au-icon-bob 3s ease-in-out infinite}
.au-feed-row.is-link{text-decoration:none;color:inherit;transition:transform .24s cubic-bezier(.22,1,.36,1),box-shadow .24s ease,border-color .24s ease,background .24s ease}
.au-feed-row.is-link:hover{transform:translateX(-4px) translateY(-2px);border-color:rgba(147,197,253,.85);box-shadow:0 12px 28px rgba(37,99,235,.1);background:#fff}
.au-feed-row.is-link:hover .au-feed-chevron{transform:translateX(-3px);color:#2563eb}
.au-feed-row.is-link:hover .au-feed-icon{transform:scale(1.08);box-shadow:0 8px 20px rgba(37,99,235,.22)}
.au-feed-score{font-size:14px;font-weight:900;color:#1d4ed8;white-space:nowrap;transition:transform .22s ease}
.au-feed-row.is-link:hover .au-feed-score{transform:scale(1.06)}
.au-feed-penalty{font-size:13px;font-weight:900;color:#dc2626;white-space:nowrap}
.au-feed-chevron{color:#94a3b8;font-size:11px;transition:transform .22s ease,color .22s ease}
.au-discipline-score{color:#1d4ed8;font-weight:900}
.au-feed-icon.teal{background:linear-gradient(135deg,#2dd4bf,#0f766e)}
.au-quick-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(136px,1fr));gap:12px;position:relative;z-index:1}
.au-quick-btn{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;min-height:102px;padding:15px 11px;border:1px solid rgba(219,234,254,.85);border-radius:20px;background:linear-gradient(165deg,rgba(255,255,255,.98),rgba(241,248,255,.92));text-decoration:none;color:inherit;overflow:hidden;isolation:isolate;cursor:pointer;transition:transform .28s cubic-bezier(.22,1,.36,1),box-shadow .28s ease,border-color .28s ease}
.au-quick-btn::before{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 42%,rgba(255,255,255,.75) 50%,transparent 58%);transform:translateX(-130%) skewX(-12deg);transition:none;pointer-events:none;z-index:0}
.au-quick-btn::after{content:"";position:absolute;inset:auto 14px 0 14px;height:3px;border-radius:999px 999px 0 0;background:linear-gradient(90deg,var(--au-accent,#3b82f6),transparent);opacity:0;transform:translateY(6px);transition:opacity .28s ease,transform .28s ease;pointer-events:none;z-index:0}
.au-quick-btn:hover{transform:translateY(-5px) scale(1.02);border-color:rgba(147,197,253,.95);box-shadow:0 20px 40px rgba(37,99,235,.14),0 0 0 1px rgba(147,197,253,.25)}
.au-quick-btn:hover::before{animation:au-shine-sweep .75s ease forwards}
.au-quick-btn:hover::after{opacity:1;transform:none}
.au-quick-btn:active{transform:translateY(-2px) scale(.985);transition-duration:.12s}
.au-quick-btn:has(.blue){--au-accent:#3b82f6}
.au-quick-btn:has(.teal){--au-accent:#14b8a6}
.au-quick-btn:has(.green){--au-accent:#059669}
.au-quick-btn:has(.orange){--au-accent:#f97316}
.au-quick-btn:has(.purple){--au-accent:#7c3aed}
.au-quick-btn:has(.pink){--au-accent:#ec4899}
.au-quick-btn:has(.indigo){--au-accent:#6366f1}
.au-quick-btn:hover:has(.blue){box-shadow:0 20px 40px rgba(37,99,235,.16),0 0 0 1px rgba(59,130,246,.2)}
.au-quick-btn:hover:has(.teal){box-shadow:0 20px 40px rgba(20,184,166,.16),0 0 0 1px rgba(20,184,166,.2)}
.au-quick-btn:hover:has(.green){box-shadow:0 20px 40px rgba(5,150,105,.16),0 0 0 1px rgba(5,150,105,.2)}
.au-quick-btn:hover:has(.orange){box-shadow:0 20px 40px rgba(249,115,22,.16),0 0 0 1px rgba(249,115,22,.2)}
.au-quick-btn:hover:has(.purple){box-shadow:0 20px 40px rgba(124,58,237,.16),0 0 0 1px rgba(124,58,237,.2)}
.au-quick-btn:hover:has(.pink){box-shadow:0 20px 40px rgba(236,72,153,.16),0 0 0 1px rgba(236,72,153,.2)}
.au-quick-btn:hover:has(.indigo){box-shadow:0 20px 40px rgba(99,102,241,.16),0 0 0 1px rgba(99,102,241,.2)}
.au-quick-btn:hover:has(.violet){box-shadow:0 20px 40px rgba(124,58,237,.16),0 0 0 1px rgba(124,58,237,.2)}
.au-quick-icon{position:relative;width:46px;height:46px;border-radius:15px;display:grid;place-items:center;color:#fff;font-size:18px;box-shadow:0 10px 24px rgba(15,23,42,.14);transition:transform .32s cubic-bezier(.22,1,.36,1),box-shadow .32s ease;z-index:1}
.au-quick-icon.blue{background:linear-gradient(135deg,#3b82f6,#2563eb)}
.au-quick-icon.teal{background:linear-gradient(135deg,#2dd4bf,#0f766e)}
.au-quick-icon.green{background:linear-gradient(135deg,#34d399,#059669)}
.au-quick-icon.orange{background:linear-gradient(135deg,#fb923c,#ea580c)}
.au-quick-icon.purple{background:linear-gradient(135deg,#a78bfa,#7c3aed)}
.au-quick-icon.violet{background:linear-gradient(135deg,#c4b5fd,#7c3aed)}
.au-quick-icon.red{background:linear-gradient(135deg,#fb7185,#dc2626)}
.au-quick-icon.pink{background:linear-gradient(135deg,#f472b6,#ec4899)}
.au-quick-icon.indigo{background:linear-gradient(135deg,#818cf8,#6366f1)}
.au-quick-icon.rose{background:linear-gradient(135deg,#fb7185,#e11d48)}
.au-quick-btn:hover .au-quick-icon{transform:translateY(-4px) scale(1.1);animation:au-icon-bob .55s ease}
.au-quick-btn strong{position:relative;font-size:12.5px;font-weight:900;text-align:center;line-height:1.55;z-index:1;transition:color .22s ease}
.au-quick-btn:hover strong{color:#1e3a8a}
.au-quick-badge{position:absolute;top:10px;left:10px;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:linear-gradient(135deg,#fecaca,#fee2e2);color:#b91c1c;font-size:10px;font-weight:900;display:grid;place-items:center;border:1px solid rgba(248,113,113,.35);box-shadow:0 4px 12px rgba(239,68,68,.2);animation:au-badge-pop .5s cubic-bezier(.22,1,.36,1) .35s both;z-index:2}
.au-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:12px;width:100%}
.au-stats .stat-card{display:flex;flex-direction:row;align-items:center;gap:10px;min-width:0;border-radius:18px;padding:14px 12px;background:linear-gradient(165deg,#fff,#f8fbff);border:1px solid rgba(226,232,240,.9);box-shadow:0 8px 26px rgba(15,23,42,.04);transition:transform .28s cubic-bezier(.22,1,.36,1),box-shadow .28s ease,border-color .28s ease;animation:au-rise-in .6s cubic-bezier(.22,1,.36,1) both}
.au-stats .stat-card > div{min-width:0;flex:1;display:flex;flex-direction:column;gap:1px}
.au-stats .stat-card small{display:block;font-size:10.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.au-stats .stat-card div span{display:block;font-size:9.5px;color:#94a3b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.au-stats .stat-card:nth-child(1){animation-delay:.08s}
.au-stats .stat-card:nth-child(2){animation-delay:.14s}
.au-stats .stat-card:nth-child(3){animation-delay:.20s}
.au-stats .stat-card:nth-child(4){animation-delay:.26s}
.au-stats .stat-card:nth-child(5){animation-delay:.32s}
.au-stats .stat-card:nth-child(6){animation-delay:.38s}
a.au-stat-link{position:relative;text-decoration:none;color:inherit;cursor:pointer;overflow:hidden;isolation:isolate}
a.au-stat-link::before{content:"";position:absolute;inset:0 auto 0 0;width:4px;border-radius:0 999px 999px 0;background:var(--au-stat-accent,#3b82f6);opacity:.85;transition:width .28s ease,opacity .28s ease}
a.au-stat-link::after{content:"";position:absolute;inset:auto -20% -40% auto;width:120px;height:120px;border-radius:50%;background:radial-gradient(circle,var(--au-stat-glow,rgba(59,130,246,.18)),transparent 68%);opacity:0;transition:opacity .32s ease,transform .32s ease;pointer-events:none}
a.au-stat-link:has(.blue){--au-stat-accent:#2563eb;--au-stat-glow:rgba(37,99,235,.22)}
a.au-stat-link:has(.green){--au-stat-accent:#059669;--au-stat-glow:rgba(5,150,105,.22)}
a.au-stat-link:has(.red){--au-stat-accent:#dc2626;--au-stat-glow:rgba(220,38,38,.22)}
a.au-stat-link:has(.orange){--au-stat-accent:#ea580c;--au-stat-glow:rgba(234,88,12,.22)}
a.au-stat-link:has(.purple){--au-stat-accent:#7c3aed;--au-stat-glow:rgba(124,58,237,.22)}
a.au-stat-link:has(.teal){--au-stat-accent:#0f766e;--au-stat-glow:rgba(15,118,110,.22)}
a.au-stat-link:hover{transform:translateY(-5px) scale(1.015);border-color:rgba(147,197,253,.75);box-shadow:0 18px 40px rgba(37,99,235,.12)}
a.au-stat-link:hover::before{width:5px;opacity:1}
a.au-stat-link:hover::after{opacity:1;transform:scale(1.08)}
a.au-stat-link:active{transform:translateY(-2px) scale(1.005);transition-duration:.12s}
a.au-stat-link:focus-visible{outline:2px solid #2563eb;outline-offset:3px}
.au-stats .stat-icon{position:relative;flex:0 0 44px;width:44px;height:44px;border-radius:14px;font-size:17px;box-shadow:0 10px 26px rgba(15,23,42,.16);transition:transform .32s cubic-bezier(.22,1,.36,1),box-shadow .32s ease}
.au-stats .stat-icon::after{content:"";position:absolute;inset:-4px;border-radius:inherit;border:2px solid rgba(255,255,255,.45);opacity:0;animation:none}
a.au-stat-link:hover .stat-icon{transform:scale(1.08) rotate(-3deg);box-shadow:0 14px 32px rgba(15,23,42,.2)}
a.au-stat-link:hover .stat-icon::after{animation:au-stat-ring .9s ease-out}
.au-stats .stat-card strong{display:inline-block;font-size:21px;line-height:1.25;background:linear-gradient(135deg,#0f172a,#334155);-webkit-background-clip:text;background-clip:text;color:transparent;transition:transform .28s cubic-bezier(.22,1,.36,1)}
a.au-stat-link:hover strong{transform:scale(1.04)}
.au-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.au-feed{display:flex;flex-direction:column;gap:8px;padding:0 4px 8px}
.au-feed-row{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:12px 14px;border:1px solid #eef2f7;border-radius:16px;background:#fbfcfe;animation:au-feed-in .45s cubic-bezier(.22,1,.36,1) both}
.au-list-panel .au-feed-row:nth-child(1){animation-delay:.06s}
.au-list-panel .au-feed-row:nth-child(2){animation-delay:.11s}
.au-list-panel .au-feed-row:nth-child(3){animation-delay:.16s}
.au-list-panel .au-feed-row:nth-child(4){animation-delay:.21s}
.au-list-panel .au-feed-row:nth-child(5){animation-delay:.26s}
.au-feed-row strong{display:block;font-size:13px;margin-bottom:2px}
.au-feed-row small{display:block;font-size:11px;color:#64748b;line-height:1.6}
.au-feed-icon{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;color:#fff;font-size:14px;transition:transform .24s ease,box-shadow .24s ease}
.au-feed-icon.blue{background:linear-gradient(135deg,#3b82f6,#2563eb)}
.au-feed-icon.green{background:linear-gradient(135deg,#34d399,#059669)}
.au-feed-icon.orange{background:linear-gradient(135deg,#fbbf24,#f97316)}
.au-feed-icon.purple{background:linear-gradient(135deg,#a78bfa,#7c3aed)}
.au-feed-meta{font-size:11px;font-weight:800;color:#64748b;white-space:nowrap}
.au-module-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.stat-icon.teal{background:linear-gradient(135deg,#2dd4bf,#0f766e)}
.stat-icon.purple{background:linear-gradient(135deg,#c084fc,#7c3aed)}
.stat-icon.rose{background:linear-gradient(135deg,#fb7185,#e11d48)}
.stat-icon.orange{background:linear-gradient(135deg,#fb923c,#ea580c)}
.stat-icon.red{background:linear-gradient(135deg,#fb7185,#dc2626)}
.stat-icon.green{background:linear-gradient(135deg,#34d399,#059669)}
.stat-icon.blue{background:linear-gradient(135deg,#3b82f6,#2563eb)}
.comm-hub-icon.teal{background:linear-gradient(135deg,#2dd4bf,#0f766e)}
.comm-hub-icon.purple{background:linear-gradient(135deg,#c084fc,#7c3aed)}
.au-quick-btn .au-ripple{position:absolute;border-radius:50%;transform:scale(0);background:rgba(37,99,235,.18);pointer-events:none;animation:au-ripple .65s ease-out forwards;z-index:0}
@keyframes au-ripple{to{transform:scale(4);opacity:0}}
@media(prefers-reduced-motion:reduce){
    .au-dashboard > *,.au-stats .stat-card,.au-list-panel .au-feed-row,.au-quick-badge,.au-feed-empty i,.au-hero::before,.au-hero::after,.au-quick-panel::before{animation:none!important}
    .au-quick-btn::before,.au-quick-btn:hover::before{animation:none!important}
    a.au-stat-link:hover .stat-icon::after{animation:none!important}
}

@media(max-width:1100px){
    .au-lists-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:900px){
    .au-hero{flex-direction:column;align-items:flex-start;padding:20px}
    .au-hero-art{display:none}
    .au-hero h1{font-size:20px}
    .au-lists-grid,.au-columns{grid-template-columns:1fr}
    .au-list-panel .section-head{flex-wrap:nowrap;align-items:center;gap:10px}
    .au-list-panel .section-head > div:first-child{flex:1 1 auto;min-width:0}
    .au-list-panel .section-head .secondary-btn{width:auto;flex:0 0 auto;justify-content:center;margin-top:0}
    .au-feed-row{grid-template-columns:auto 1fr;gap:10px}
    .au-feed-row .status-pill,.au-feed-row .au-feed-score,.au-feed-row .au-feed-penalty,.au-feed-row .au-feed-chevron{grid-column:2;justify-self:start;margin-top:2px}
    .au-quick-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
    .au-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
    .au-stats .stat-card{padding:12px 10px;gap:8px}
    .au-stats .stat-icon{flex-basis:40px;width:40px;height:40px;font-size:16px;border-radius:12px}
    .au-stats .stat-card strong{font-size:19px}
}
@media(max-width:680px){
    .au-quick-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
    .au-quick-btn{min-height:88px;padding:12px 8px}
    .au-quick-btn strong{font-size:11.5px}
    .au-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
    .au-stats .stat-card{flex-direction:row!important;align-items:center!important;padding:11px 9px;gap:8px;border-radius:16px}
    .au-stats .stat-icon{flex:0 0 36px;width:36px;height:36px;font-size:14px;border-radius:11px}
    .au-stats .stat-card strong{font-size:17px}
    .au-stats .stat-card small{font-size:9.8px}
    .au-stats .stat-card div span{font-size:8.8px}
    .au-hero-meta span{font-size:11px;padding:7px 10px}
    .section-head{flex-wrap:wrap;gap:10px}
    .ol-dashboard .au-list-panel .section-head,
    .ol-dashboard .ol-list-panel .section-head,
    .oex-hero .section-head,
    .ohw-hero .section-head{flex-wrap:nowrap}
    .section-head .secondary-btn{width:100%;justify-content:center}
    .ol-dashboard .au-list-panel .section-head .secondary-btn,
    .ol-dashboard .ol-list-panel .section-head .secondary-btn,
    .oex-hero .section-head .primary-btn,
    .ohw-hero .section-head .primary-btn{width:auto;flex:0 0 auto}
}
@media(min-width:1100px){
    .au-stats{grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:14px}
    .au-stats .stat-card{padding:16px 14px}
    .au-stats .stat-icon{flex-basis:48px;width:48px;height:48px;font-size:18px}
    .au-stats .stat-card strong{font-size:22px}
}
@media(max-width:380px){
    .au-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
    .au-stats .stat-card{padding:10px 8px}
    .au-stats .stat-icon{flex-basis:32px;width:32px;height:32px;font-size:13px}
    .au-stats .stat-card strong{font-size:15px}
}

@media(max-width:900px){
    .lc-studio,.learner-grade-card{grid-template-columns:1fr}
    .report-cert-head{grid-template-columns:1fr;text-align:center;justify-items:center}
    .report-cert-ribbon{display:none}
    .report-subject-list.is-final .report-subject-head{display:none}
    .report-subject-list.is-final .report-subject{grid-template-columns:32px 1fr}
    .report-subject-list.is-final .report-score{justify-self:start;margin-top:4px}
    .att-absence-row{grid-template-columns:1fr;gap:10px}
    .att-absence-date{flex-direction:row;justify-content:flex-start;width:100%;min-width:0}
    .att-notice-hero{flex-direction:column;align-items:flex-start}
    .lc-hero-cover{flex-direction:column}
    .lc-page{gap:14px}
    .lc-course-grid{padding:14px;grid-template-columns:1fr}
    .lc-form,.lc-create-form,.lc-review-list,.lc-qa,.lc-ask-form{padding-left:14px;padding-right:14px}
    .lc-detail-hero{padding:16px;border-radius:20px;gap:14px}
    .lc-detail-photo{min-height:180px;border-radius:16px}
    .lc-hero-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
    .lc-hero-stats span{min-width:0;padding:8px 6px}
    .lc-create-hero{padding:16px;flex-wrap:wrap}
    .lc-create-hero i{font-size:36px}
    [data-lesson-course] .lc-fold-head .lc-row{flex:1 1 calc(100% - 92px);min-width:0}
    [data-lesson-course] .lc-edit-course .lc-form-grid{grid-template-columns:1fr}
}
@media(max-width:640px){
    .lc-main-nav{gap:6px}
    .lc-main-btn{height:auto;min-height:56px;flex-direction:column;gap:4px;padding:8px 4px;font-size:11px;border-radius:12px;text-align:center;line-height:1.3}
    .lc-main-btn i{font-size:14px;animation:none}
    .lc-main-btn span{max-width:100%;overflow:hidden;text-overflow:ellipsis}
    .lc-tabs{gap:4px;padding:6px;border-radius:14px;flex-wrap:nowrap}
    .lc-tabs button{padding:9px 4px;font-size:10px;border-radius:10px;min-width:0}
    .lc-studio-bar{grid-template-columns:1fr;gap:8px;padding:10px}
    .lc-studio-btn{height:44px;font-size:12px;width:100%}
    .lc-fold-head{gap:8px;padding:10px;flex-wrap:wrap;align-items:center}
    .lc-fold-inner{padding:0 10px 12px;gap:12px}
    .lc-add-head{flex-direction:column;align-items:stretch;gap:8px}
    .lc-add-title{width:100%;flex:1 1 auto}
    .lc-type-picks--inline{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
    .lc-type-picks--inline b{min-height:44px;padding:6px 4px;font-size:10px;flex-direction:column;justify-content:center;gap:4px;white-space:normal;text-align:center}
    .lc-type-picks--inline b i{font-size:14px}
    .lc-duration-clock,.lc-duration-hint{max-width:100%}
    .lc-hero-actions{width:100%;flex-wrap:wrap}
    .lc-start-btn,.lc-back-btn{justify-content:center;flex:1 1 auto;min-width:0}
    .lc-pending-banner{flex-wrap:wrap}
    .lc-pending-banner form{margin:0}
    .lc-log-row{grid-template-columns:1fr;gap:4px}
    .lc-mkt-foot{gap:6px;font-size:11px}
    .lc-course-grid{grid-template-columns:1fr}
    .lc-file-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}
    .lc-file-toolbar{flex-direction:column;align-items:stretch;gap:8px}
    .lc-file-delete-btn{width:100%;justify-content:center}
    .lc-item-head{flex-wrap:wrap}
    .lc-item-title-line{flex:1 1 100%;min-width:0}
    .lc-item-actions{flex-direction:column;align-items:stretch}
    .lc-item-actions .primary-btn,.lc-item-actions .lc-item-delete-btn{width:100%;flex:1 1 auto}
    .lc-reply-form{flex-direction:column;align-items:stretch}
    .lc-reply-form input,.lc-reply-form button{width:100%}
    .lc-detail-copy h2{font-size:16px}
    .lc-detail-copy p{font-size:11px}
    .lc-hero-meta{gap:8px;font-size:11px}
    .lc-hero-meta span{flex:1 1 auto;min-width:0}
    [data-lesson-course] .lc-fold-head .lc-row{flex:1 1 100%;order:3}
    [data-lesson-course] .lc-fold-title{flex:1 1 calc(100% - 92px);font-size:13px}
    [data-lesson-course] .disc-hero{padding:14px 16px}
    [data-lesson-course] .lc-form,.lc-create-form{padding:14px 16px}
    [data-lesson-course] .lc-add-item{padding:12px}
    [data-lesson-course] .lc-add-item-btn{width:100%;justify-content:center}
    [data-lesson-course] .lc-item{padding:12px}
    [data-lesson-course] .lc-row{flex-wrap:wrap}
    [data-lesson-course] .lc-row input{min-width:0;width:100%}
    [data-lesson-course] .lc-row .mini-action{margin-right:auto}
}


/* ?? Online Homework ????????????????????????????????????????? */
.ohw-hero .ohw-create-btn{animation:ohw-pulse 2.4s ease-in-out infinite}
.ohw-hero-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.ohw-hero-actions .primary-btn,
.ohw-hero-actions .secondary-btn{min-height:44px}
@keyframes ohw-pulse{0%,100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--org-1,#15803d) 35%,transparent)}50%{box-shadow:0 0 0 10px transparent}}
.ohw-child-switch{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.ohw-child-chip{padding:8px 14px;border-radius:999px;border:1px solid color-mix(in srgb,var(--org-1,#15803d) 18%,#e2e8f0);background:color-mix(in srgb,var(--org-3,#86efac) 28%,#fff);color:#334155;font-size:12px;text-decoration:none;transition:.2s}
.ohw-child-chip.is-active,.ohw-child-chip:hover{background:linear-gradient(135deg,var(--org-1,#15803d),var(--org-2,#22c55e));color:#fff;border-color:transparent}
.ohw-empty{text-align:center;padding:48px 20px;display:grid;gap:10px;justify-items:center}
.ohw-empty i{font-size:42px;color:#94a3b8}
.ohw-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:16px;align-items:start}
.ohw-card{--org-1:#15803d;--org-2:#22c55e;--org-3:#86efac;border-radius:28px;overflow:visible;border:1px solid color-mix(in srgb,var(--org-1) 18%,#e2e8f0);background:#fff;box-shadow:0 20px 44px color-mix(in srgb,var(--org-1) 14%,transparent);animation:ohw-card-in .55s ease both;animation-delay:calc(var(--i,1)*70ms);transition:transform .28s ease,box-shadow .28s ease,z-index 0s;display:flex;flex-direction:column;position:relative;z-index:1}
.ohw-card:hover,.ohw-card:focus-within{z-index:8}
.ohw-card:hover{transform:translateY(-5px);box-shadow:0 28px 56px color-mix(in srgb,var(--org-1) 22%,transparent)}
@keyframes ohw-card-in{from{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:none}}
.ohw-card-cover{position:relative;display:flex;flex-direction:column;text-decoration:none;color:inherit;overflow:hidden;min-height:270px;border-radius:28px 28px 0 0}
.ohw-cover-hero{position:relative;padding:18px 18px 20px;color:#fff;background:
  linear-gradient(135deg,var(--org-1) 0%,var(--org-2) 58%,color-mix(in srgb,var(--org-3) 55%,var(--org-1)) 120%);
  overflow:hidden;isolation:isolate}
.ohw-cover-shine{position:absolute;inset:-20% auto auto -10%;width:180px;height:180px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.34),transparent 68%);pointer-events:none;animation:ohw-orb 7s ease-in-out infinite}
.ohw-cover-wave{position:absolute;inset:auto -8% -42% auto;width:220px;height:160px;border-radius:45% 55% 40% 60%;background:rgba(255,255,255,.12);pointer-events:none;animation:ohw-orb 9s ease-in-out infinite reverse}
@keyframes ohw-orb{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(14px,-10px) scale(1.06)}}
.ohw-cover-top{position:relative;z-index:1;display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px}
.ohw-class-tag{display:inline-flex;align-items:center;padding:5px 11px;border-radius:999px;font-size:11px;font-weight:800;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.28);backdrop-filter:blur(8px);color:#fff}
.ohw-subject-title{position:relative;z-index:1;margin:0;font-size:24px;line-height:1.35;font-weight:900;letter-spacing:-.02em;text-shadow:0 10px 24px rgba(15,23,42,.18)}
.ohw-hw-title{position:relative;z-index:1;margin:8px 0 0;font-size:13px;line-height:1.5;font-weight:600;opacity:.92;max-width:100%}
.ohw-cover-body{position:relative;z-index:1;display:grid;gap:12px;padding:14px 16px 16px;background:linear-gradient(180deg,color-mix(in srgb,var(--org-3) 22%,#fff),#fff);flex:1}
.ohw-subject{display:inline-flex;align-self:start;padding:6px 12px;border-radius:999px;background:linear-gradient(135deg,var(--org-1),var(--org-2));color:#fff;font-size:12px;font-weight:900;box-shadow:0 8px 18px color-mix(in srgb,var(--org-1) 28%,transparent)}
.ohw-schedule-box{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:8px;align-items:stretch;padding:12px;border-radius:20px;background:
  radial-gradient(120% 90% at 0% 0%,color-mix(in srgb,var(--org-3) 40%,transparent),transparent 55%),
  linear-gradient(180deg,#fff,color-mix(in srgb,var(--org-3) 16%,#f8fafc));border:1.5px solid color-mix(in srgb,var(--org-1) 16%,#e2e8f0);box-shadow:0 14px 30px color-mix(in srgb,var(--org-1) 12%,transparent)}
.ohw-schedule-item{display:grid;min-width:0;padding:12px;border-radius:16px;background:#fff;border:1.5px solid #e2e8f0;box-shadow:0 8px 18px rgba(15,23,42,.04)}
.ohw-schedule-item.is-start{border-color:color-mix(in srgb,var(--org-2) 42%,#e2e8f0);background:linear-gradient(160deg,#fff 35%,color-mix(in srgb,var(--org-3) 34%,#fff))}
.ohw-schedule-item.is-end{border-color:#fdba74;background:linear-gradient(160deg,#fff 35%,#fff7ed)}
.ohw-schedule-item.is-end.is-endless{border-color:color-mix(in srgb,var(--org-2) 36%,#e2e8f0);background:linear-gradient(160deg,#fff 35%,color-mix(in srgb,var(--org-3) 36%,#fff))}
.ohw-schedule-item.is-end.is-expired{border-color:#fca5a5;background:linear-gradient(160deg,#fff 35%,#fef2f2)}
.ohw-schedule-label{display:inline-flex;align-items:center;gap:6px;width:fit-content}
.ohw-schedule-icon{width:18px;height:18px;border-radius:6px;display:grid;place-items:center;flex:0 0 auto;font-size:8px;color:#fff;box-shadow:0 4px 10px rgba(15,23,42,.12)}
.ohw-schedule-item.is-start .ohw-schedule-icon{background:linear-gradient(135deg,var(--org-1),var(--org-2))}
.ohw-schedule-item.is-end .ohw-schedule-icon{background:linear-gradient(135deg,#ea580c,#f97316)}
.ohw-schedule-item.is-end.is-endless .ohw-schedule-icon{background:linear-gradient(135deg,var(--org-1),var(--org-2))}
.ohw-schedule-item.is-end.is-expired .ohw-schedule-icon{background:linear-gradient(135deg,#dc2626,#ef4444)}
.ohw-schedule-copy{display:grid;gap:3px;min-width:0}
.ohw-schedule-copy small{font-size:10.5px;font-weight:900;color:#64748b;letter-spacing:.03em;text-transform:none}
.ohw-schedule-copy strong{font-size:14.5px;font-weight:900;color:#0f172a;line-height:1.35;overflow-wrap:anywhere}
.ohw-schedule-copy em{font-style:normal;display:inline-flex;align-items:center;gap:4px;width:fit-content;margin-top:2px;padding:3px 8px;border-radius:999px;font-size:11.5px;font-weight:900;font-variant-numeric:tabular-nums;background:color-mix(in srgb,var(--org-3) 42%,#fff);color:var(--org-1)}
.ohw-schedule-item.is-end .ohw-schedule-copy em{background:#ffedd5;color:#c2410c}
.ohw-schedule-item.is-end.is-endless .ohw-schedule-copy em{background:color-mix(in srgb,var(--org-3) 42%,#fff);color:var(--org-1)}
.ohw-schedule-item.is-end.is-expired .ohw-schedule-copy em{background:#fee2e2;color:#b91c1c}
.ohw-schedule-arrow{display:grid;place-items:center;width:28px;height:28px;border-radius:999px;align-self:center;color:var(--org-1);font-size:13px;background:color-mix(in srgb,var(--org-3) 45%,#fff);border:1px solid color-mix(in srgb,var(--org-1) 14%,#e2e8f0)}
.ohw-meta-line{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0;font-size:11.5px;color:#64748b}
.ohw-meta-line i{color:var(--org-1)}
.ohw-teacher{display:flex;align-items:center;gap:8px;min-width:0;font-size:11.5px;font-weight:700;color:#475569}
.ohw-teacher img{width:24px;height:24px;border-radius:50%;object-fit:cover;border:2px solid #fff;box-shadow:0 0 0 1px color-mix(in srgb,var(--org-1) 22%,#e2e8f0);flex:0 0 auto}
.ohw-teacher>i{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--org-3) 55%,#fff);color:var(--org-1);font-size:11px;flex:0 0 auto}
.ohw-teacher-copy{display:grid;gap:2px;min-width:0;flex:1}
.ohw-teacher-copy b{font-size:12px;font-weight:800;color:#334155;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ohw-teacher-copy small{font-size:10px;font-weight:700;color:#64748b;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ohw-timer{position:relative;z-index:1;margin-top:2px;display:grid;gap:8px;padding:10px;border-radius:18px;background:#fff;border:1px solid color-mix(in srgb,var(--org-1) 12%,#e2e8f0);box-shadow:0 10px 24px color-mix(in srgb,var(--org-1) 8%,transparent)}
.ohw-timer-units{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;transition:opacity .45s ease,filter .45s ease}
.ohw-timer-units.is-faded{opacity:.28;filter:grayscale(.55);pointer-events:none}
.ohw-timer-unit{display:grid;gap:3px;justify-items:center;padding:8px 4px;border-radius:14px;background:linear-gradient(180deg,#fff,color-mix(in srgb,var(--org-3) 28%,#fff));border:1px solid color-mix(in srgb,var(--org-1) 12%,#fff);box-shadow:inset 0 1px 0 #fff,0 6px 14px color-mix(in srgb,var(--org-1) 8%,transparent);min-width:0}
.ohw-timer-unit b{font-size:15px;font-weight:900;letter-spacing:.02em;color:color-mix(in srgb,var(--org-1) 85%,#0f172a);line-height:1;font-variant-numeric:tabular-nums}
.ohw-timer-unit small{font-size:9px;font-weight:800;color:#64748b}
.ohw-timer-status{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:8px 12px;border-radius:14px;font-size:12px;font-weight:800;text-align:center;background:color-mix(in srgb,var(--org-3) 35%,#fff);color:var(--org-1)}
.ohw-timer.is-done{border-color:#fecaca;background:linear-gradient(180deg,#fff,#fef2f2)}
.ohw-timer.is-done .ohw-timer-status{background:linear-gradient(135deg,#fee2e2,#fecaca);color:#b91c1c;border:1px solid #fca5a5;box-shadow:0 8px 20px rgba(185,28,28,.14);animation:ohw-deadline-blink 1.15s ease-in-out infinite}
.ohw-timer.is-endless .ohw-timer-status{background:color-mix(in srgb,var(--org-3) 42%,#fff);color:var(--org-1)}
.ohw-timer.big{min-width:min(100%,280px);padding:14px;border-radius:20px;background:rgba(255,255,255,.92)}
.ohw-timer.big .ohw-timer-unit{padding:12px 6px;border-radius:16px}
.ohw-timer.big .ohw-timer-unit b{font-size:20px}
.ohw-timer.big .ohw-timer-unit small{font-size:10px}
@keyframes ohw-deadline-blink{0%,100%{opacity:1;transform:scale(1);box-shadow:0 8px 20px rgba(185,28,28,.14)}50%{opacity:.55;transform:scale(1.02);box-shadow:0 10px 26px rgba(220,38,38,.28)}}
@media(prefers-reduced-motion:reduce){.ohw-timer.is-done .ohw-timer-status{animation:none}}
.ohw-card-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;background:#fff;border-top:1px solid color-mix(in srgb,var(--org-3) 40%,#fff);flex-wrap:wrap;position:relative;z-index:4;overflow:visible;border-radius:0 0 28px 28px}
.ohw-card-actions{display:inline-grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);align-items:stretch;gap:6px;margin-inline-start:auto;min-width:min(100%,280px);position:relative;z-index:5;overflow:visible}
.ohw-card-actions form{margin:0;display:contents}
.ohw-card-btn{appearance:none;position:relative;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:38px;width:100%;padding:0 10px;border-radius:12px;border:1.5px solid #e2e8f0;background:#fff;color:#334155;font:inherit;font-size:11.5px;font-weight:800;text-decoration:none;cursor:pointer;box-shadow:0 6px 14px rgba(15,23,42,.04);transition:transform .18s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease,color .18s ease;white-space:nowrap;z-index:1}
.ohw-card-btn i{font-size:12px}
.ohw-card-btn.is-view{color:var(--org-1);border-color:color-mix(in srgb,var(--org-1) 22%,#e2e8f0);background:linear-gradient(180deg,#fff,color-mix(in srgb,var(--org-3) 28%,#fff))}
.ohw-card-btn.is-edit{color:#1d4ed8;border-color:#bfdbfe;background:linear-gradient(180deg,#fff,#eff6ff)}
.ohw-card-btn.is-copy{color:#0f766e;border-color:#99f6e4;background:linear-gradient(180deg,#fff,#f0fdfa)}
.ohw-card-btn.is-delete{color:#dc2626;border-color:#fecdd3;background:linear-gradient(180deg,#fff,#fff1f2)}
.ohw-card-btn.is-monitor{color:#7c3aed;border-color:#ddd6fe;background:linear-gradient(180deg,#fff,#f5f3ff)}
.ohw-card-btn:hover{transform:translateY(-1px);box-shadow:0 10px 20px rgba(15,23,42,.08);z-index:6}
.ohw-card-btn.is-view:hover{border-color:color-mix(in srgb,var(--org-1) 40%,#e2e8f0);box-shadow:0 10px 22px color-mix(in srgb,var(--org-1) 16%,transparent)}
.ohw-card-btn.is-edit:hover{border-color:#93c5fd;box-shadow:0 10px 22px rgba(37,99,235,.14)}
.ohw-card-btn.is-copy:hover{border-color:#5eead4;box-shadow:0 10px 22px rgba(15,118,110,.14)}
.ohw-card-btn.is-delete:hover{border-color:#fda4af;box-shadow:0 10px 22px rgba(220,38,38,.14)}
.ohw-card-btn.is-monitor:hover{border-color:#c4b5fd;box-shadow:0 10px 22px rgba(124,58,237,.16)}
.ohw-card-actions{min-width:min(100%,340px)}
.ohw-card-btn[data-tooltip]::after{z-index:40}
.ohw-card-btn[data-tooltip]::before{z-index:41}
.ohw-icon-btn{appearance:none;width:36px;height:36px;border-radius:12px;display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--org-1) 16%,#e2e8f0);background:color-mix(in srgb,var(--org-3) 28%,#fff);color:var(--org-1);text-decoration:none;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}
.ohw-icon-btn:hover{transform:translateY(-1px);box-shadow:0 8px 18px color-mix(in srgb,var(--org-1) 16%,transparent)}
.ohw-icon-btn.danger{background:#fff1f2;border-color:#fecdd3;color:#dc2626}
.ohw-icon-btn.danger:hover{background:#ffe4e6;box-shadow:0 8px 18px rgba(220,38,38,.16)}
.ohw-pill{display:inline-flex;align-items:center;padding:5px 10px;border-radius:999px;font-size:11px;font-weight:700;background:#f1f5f9;color:#475569}
.ohw-pill.ok{background:#dcfce7;color:#15803d}.ohw-pill.wait{background:#ffedd5;color:#c2410c}.ohw-pill.info{background:color-mix(in srgb,var(--org-3,#86efac) 40%,#fff);color:var(--org-1,#15803d)}
.ohw-pill.tone-green{background:#dcfce7;color:#15803d}.ohw-pill.tone-blue{background:#dbeafe;color:#1d4ed8}.ohw-pill.tone-teal{background:#ccfbf1;color:#0f766e}.ohw-pill.tone-orange{background:#ffedd5;color:#c2410c}.ohw-pill.tone-red{background:#fee2e2;color:#b91c1c}.ohw-pill.tone-purple{background:#f3e8ff;color:#7e22ce}
.ohw-edit-audience-note{display:flex;align-items:flex-start;gap:8px;margin:0 0 12px;padding:10px 12px;border-radius:12px;background:color-mix(in srgb,var(--org-3,#86efac) 22%,#fff);border:1px solid color-mix(in srgb,var(--org-1,#15803d) 14%,#e2e8f0);font-size:12.5px;font-weight:600;color:#334155;line-height:1.6}
.ohw-edit-audience-note i{color:var(--org-1,#15803d);margin-top:2px;flex-shrink:0}
.ohw-detail-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.ohw-detail-actions form{margin:0;display:contents}
.ohw-detail-actions .ohw-card-btn{width:auto;min-width:110px;flex:0 0 auto}

.ohw-composer .ohw-form{display:grid;gap:18px}
.ohw-form-block{padding:16px;border:1px solid #e2e8f0;border-radius:20px;background:linear-gradient(180deg,#fff,#f8fafc);display:grid;gap:12px}
.ohw-form-block h3{margin:0;font-size:14px;display:flex;align-items:center;gap:8px;color:#0f172a}
.ohw-field{display:grid;gap:8px}.ohw-field>span,.ohw-inline-label{font-size:12px;color:#64748b;font-weight:700}
.ohw-date-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.ohw-cascade{display:grid;gap:12px}
.ohw-cascade-row{display:grid;gap:12px}
.ohw-cascade-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.ohw-cascade-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.ohw-cascade-row label{display:grid;gap:6px;font-size:12px;color:#64748b}
.ohw-class-multi{display:grid;gap:12px;padding:14px;border:1px solid color-mix(in srgb,var(--org-1,#15803d) 14%,#e2e8f0);border-radius:22px;background:
  radial-gradient(120% 80% at 100% 0%,color-mix(in srgb,var(--org-3,#86efac) 34%,transparent),transparent 55%),
  linear-gradient(180deg,#fff,color-mix(in srgb,var(--org-3,#86efac) 12%,#fff));box-shadow:0 14px 32px color-mix(in srgb,var(--org-1,#15803d) 8%,transparent)}
.ohw-class-multi-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.ohw-class-multi-title{display:flex;align-items:center;gap:10px;min-width:0}
.ohw-class-multi-title>div{display:grid;gap:2px;min-width:0}
.ohw-class-multi-title strong{font-size:13px;color:#0f172a}
.ohw-class-multi-title small{font-size:11px;color:#64748b;font-weight:700}
.ohw-class-multi-icon{width:40px;height:40px;border-radius:14px;display:grid;place-items:center;flex:0 0 auto;color:#fff;background:linear-gradient(135deg,var(--org-1,#15803d),var(--org-2,#22c55e));box-shadow:0 10px 20px color-mix(in srgb,var(--org-1,#15803d) 28%,transparent)}
.ohw-class-multi-actions{display:flex;gap:8px;flex-wrap:wrap}
.ohw-class-tool{appearance:none;border:0;cursor:pointer;display:inline-flex;align-items:center;gap:7px;padding:9px 14px;border-radius:999px;font:inherit;font-size:11.5px;font-weight:800;transition:transform .18s ease,box-shadow .18s ease,filter .18s ease,background .18s ease;box-shadow:0 8px 18px rgba(15,23,42,.06)}
.ohw-class-tool i{font-size:12px}
.ohw-class-tool.is-select{color:#fff;background:linear-gradient(135deg,var(--org-1,#15803d),var(--org-2,#22c55e));box-shadow:0 10px 22px color-mix(in srgb,var(--org-1,#15803d) 28%,transparent)}
.ohw-class-tool.is-select:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.05);box-shadow:0 14px 28px color-mix(in srgb,var(--org-1,#15803d) 34%,transparent)}
.ohw-class-tool.is-clear{color:#b91c1c;background:linear-gradient(135deg,#fff,#fff1f2);border:1px solid #fecdd3}
.ohw-class-tool.is-clear:hover:not(:disabled){transform:translateY(-1px);background:linear-gradient(135deg,#fff1f2,#ffe4e6);box-shadow:0 12px 24px rgba(220,38,38,.14)}
.ohw-class-tool:disabled{opacity:.42;cursor:not-allowed;transform:none!important;box-shadow:none!important;filter:none!important}
.ohw-class-multi-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:10px;min-height:64px;align-content:start;padding:4px}
.ohw-class-multi-list.is-empty{display:flex;align-items:center;justify-content:center;grid-template-columns:none}
.ohw-class-multi-empty{margin:0;font-size:12.5px;color:#94a3b8;font-weight:700}
.ohw-class-chip{position:relative;display:flex;align-items:center;gap:10px;min-height:54px;padding:10px 12px;border-radius:16px;border:1.5px solid color-mix(in srgb,var(--org-1,#15803d) 12%,#e2e8f0);background:#fff;cursor:pointer;color:#334155;transition:border-color .2s ease,background .2s ease,transform .2s ease,box-shadow .2s ease;user-select:none}
.ohw-class-chip input{position:absolute;opacity:0;pointer-events:none}
.ohw-class-chip-mark{width:22px;height:22px;border-radius:8px;flex:0 0 auto;display:grid;place-items:center;border:1.5px solid #cbd5e1;background:#f8fafc;color:transparent;font-size:10px;transition:.2s ease}
.ohw-class-chip-copy{display:flex;align-items:center;gap:8px;min-width:0}
.ohw-class-chip-copy>i{color:#94a3b8;font-size:13px;transition:color .2s ease}
.ohw-class-chip-copy b{font-size:12.5px;font-weight:800;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ohw-class-chip:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--org-2,#22c55e) 45%,#e2e8f0);box-shadow:0 12px 24px color-mix(in srgb,var(--org-1,#15803d) 12%,transparent)}
.ohw-class-chip:has(input:checked){border-color:transparent;background:linear-gradient(135deg,color-mix(in srgb,var(--org-3,#86efac) 42%,#fff),#fff);color:var(--org-1,#15803d);box-shadow:0 14px 28px color-mix(in srgb,var(--org-1,#15803d) 16%,transparent),inset 0 0 0 1.5px color-mix(in srgb,var(--org-2,#22c55e) 55%,transparent)}
.ohw-class-chip:has(input:checked) .ohw-class-chip-mark{border-color:transparent;background:linear-gradient(135deg,var(--org-1,#15803d),var(--org-2,#22c55e));color:#fff;box-shadow:0 6px 14px color-mix(in srgb,var(--org-1,#15803d) 28%,transparent)}
.ohw-class-chip:has(input:checked) .ohw-class-chip-copy>i{color:var(--org-1,#15803d)}
.ohw-mini-link{appearance:none;border:0;background:color-mix(in srgb,var(--org-3,#86efac) 35%,#fff);color:var(--org-1,#15803d);font:inherit;font-size:11px;font-weight:800;padding:6px 10px;border-radius:999px;cursor:pointer;border:1px solid color-mix(in srgb,var(--org-1,#15803d) 22%,#e2e8f0)}
.ohw-mini-link:hover:not(:disabled){background:color-mix(in srgb,var(--org-3,#86efac) 55%,#fff)}
.ohw-mini-link:disabled{opacity:.45;cursor:not-allowed}
.ohw-class-multi-hint{font-size:11px;color:#64748b}
.ohw-date-grid label{display:grid;gap:6px;font-size:12px;color:#64748b}
.ohw-toggle{margin-top:4px}
.ohw-mode-picks{display:flex;flex-wrap:wrap;gap:10px}
.ohw-composer-head{align-items:flex-start;gap:14px}
.ohw-back-btn{display:inline-flex;align-items:center;gap:10px;padding:8px 14px 8px 8px;border-radius:18px;text-decoration:none;color:var(--org-1,#15803d);background:linear-gradient(135deg,color-mix(in srgb,var(--org-3,#86efac) 32%,#fff),#fff);border:1.5px solid color-mix(in srgb,var(--org-1,#15803d) 28%,#e2e8f0);box-shadow:0 8px 22px color-mix(in srgb,var(--org-1,#15803d) 10%,transparent);transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}
.ohw-back-btn:hover{transform:translateX(3px);border-color:var(--org-2,#22c55e);box-shadow:0 12px 28px color-mix(in srgb,var(--org-1,#15803d) 18%,transparent)}
.ohw-back-icon{width:36px;height:36px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,var(--org-1,#15803d),var(--org-2,#22c55e));color:#fff;box-shadow:0 8px 18px color-mix(in srgb,var(--org-1,#15803d) 28%,transparent);flex:0 0 auto}
.ohw-back-copy{display:grid;gap:1px;line-height:1.2}
.ohw-back-copy strong{font-size:12.5px;color:#0f172a}
.ohw-back-copy small{font-size:10px;color:#64748b}
.ohw-fab-submit{position:fixed;left:22px;bottom:24px;z-index:90;appearance:none;border:0;cursor:pointer;display:inline-flex;align-items:center;gap:10px;padding:14px 20px;border-radius:999px;color:#fff;font:inherit;font-size:13.5px;font-weight:800;background:linear-gradient(135deg,var(--org-1,#15803d),var(--org-2,#22c55e));box-shadow:0 16px 40px color-mix(in srgb,var(--org-1,#15803d) 38%,transparent),0 0 0 1px rgba(255,255,255,.12) inset;overflow:hidden;isolation:isolate;animation:ohw-fab-float 3.2s ease-in-out infinite;transition:transform .2s ease,box-shadow .2s ease,filter .2s ease}
.ohw-fab-submit:hover{transform:translateY(-4px) scale(1.03);box-shadow:0 22px 48px color-mix(in srgb,var(--org-1,#15803d) 48%,transparent);filter:brightness(1.05);animation-play-state:paused}
.ohw-fab-submit:active{transform:translateY(-1px) scale(.98)}
.ohw-fab-submit i{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.18);font-size:13px}
.ohw-fab-glow{position:absolute;inset:auto -30% -60% auto;width:120px;height:120px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.35),transparent 70%);pointer-events:none;animation:ohw-fab-glow 4s ease-in-out infinite}
@keyframes ohw-fab-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes ohw-fab-glow{0%,100%{opacity:.55;transform:translate(0,0)}50%{opacity:1;transform:translate(-18px,-10px)}}
@media(prefers-reduced-motion:reduce){.ohw-fab-submit,.ohw-fab-glow{animation:none}}
.ohw-composer{padding-bottom:88px}
[data-ohw-show]:has(#ohw-answer-form) .settings-page{padding-bottom:96px}

.ohw-detail-hero{overflow:hidden}
.ohw-detail-top{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.ohw-detail-banner{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;align-items:stretch;padding:22px;border-radius:24px;color:#fff;background:linear-gradient(135deg,var(--org-1,#15803d) 0%,var(--org-2,#22c55e) 58%,color-mix(in srgb,var(--org-3,#86efac) 45%,var(--org-1,#15803d)) 120%);border:0;position:relative;overflow:hidden;animation:ohw-banner-in .6s ease;box-shadow:0 20px 44px color-mix(in srgb,var(--org-1,#15803d) 22%,transparent)}
@keyframes ohw-banner-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.ohw-detail-banner>.ohw-cover-shine,.ohw-detail-banner>.ohw-cover-wave{z-index:0}
.ohw-detail-banner>div:first-of-type{position:relative;z-index:1;flex:1;min-width:220px}
.ohw-detail-banner h2{margin:8px 0 12px;font-size:22px;color:#fff}
.ohw-detail-banner .ohw-subject{background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.25);box-shadow:none}
.ohw-detail-meta{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px 16px;font-size:12px;color:rgba(255,255,255,.92)}
.ohw-detail-meta li{display:inline-flex;align-items:center;gap:6px}
.ohw-detail-meta i{color:#fff}
.ohw-detail-banner .ohw-schedule-box{margin-top:14px;max-width:520px;background:rgba(255,255,255,.96);border-color:rgba(255,255,255,.55);box-shadow:0 16px 32px rgba(15,23,42,.16)}
.ohw-detail-banner .ohw-timer{z-index:1;align-self:center;background:rgba(255,255,255,.95);color:#0f172a}
[data-ohw-show],[data-ohw-create],[data-ohw-page]{--org-1:#15803d;--org-2:#22c55e;--org-3:#86efac}
.ohw-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:14px 0}
.ohw-stat{position:relative;display:flex;align-items:center;gap:14px;padding:16px 16px 16px 14px;border-radius:20px;background:#fff;border:1px solid #e2e8f0;text-align:right;text-decoration:none;color:inherit;box-shadow:0 12px 28px rgba(15,23,42,.06);overflow:hidden;isolation:isolate;animation:ohw-card-in .5s ease both;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}
.ohw-stat:nth-child(1){animation-delay:.05s}.ohw-stat:nth-child(2){animation-delay:.1s}.ohw-stat:nth-child(3){animation-delay:.15s}.ohw-stat:nth-child(4){animation-delay:.2s}
.ohw-stat::before{content:"";position:absolute;inset:auto -20% -45% auto;width:120px;height:120px;border-radius:50%;background:radial-gradient(circle,rgba(148,163,184,.18),transparent 70%);pointer-events:none}
.ohw-stat-icon{position:relative;z-index:1;width:48px;height:48px;border-radius:16px;display:grid;place-items:center;flex:0 0 auto;color:#fff;font-size:18px;box-shadow:0 12px 24px rgba(15,23,42,.14)}
.ohw-stat-icon i{display:grid;place-items:center;animation:ohw-stat-float 2.8s ease-in-out infinite}
.ohw-stat-copy{position:relative;z-index:1;display:grid;gap:2px;min-width:0}
.ohw-stat-copy b{font-size:26px;line-height:1.1;font-weight:900;color:#0f172a}
.ohw-stat-copy span{font-size:12px;font-weight:700;color:#64748b}
.ohw-stat-copy em{display:inline-flex;align-items:center;gap:5px;margin-top:4px;font-size:10.5px;font-style:normal;font-weight:800;color:inherit;opacity:.85}
.ohw-stat.tone-sent{border-color:#c7d2fe;background:linear-gradient(145deg,#fff,#eef2ff)}
.ohw-stat.tone-sent .ohw-stat-icon{background:linear-gradient(135deg,#4f46e5,#6366f1)}
.ohw-stat.tone-sent .ohw-stat-copy b{color:#4338ca}
.ohw-stat.tone-ok{border-color:#bbf7d0;background:linear-gradient(145deg,#fff,#f0fdf4)}
.ohw-stat.tone-ok .ohw-stat-icon{background:linear-gradient(135deg,#16a34a,#22c55e)}
.ohw-stat.tone-ok .ohw-stat-copy b,.ohw-stat.tone-ok .ohw-stat-copy em{color:#15803d}
.ohw-stat.tone-warn{border-color:#fed7aa;background:linear-gradient(145deg,#fff,#fff7ed)}
.ohw-stat.tone-warn .ohw-stat-icon{background:linear-gradient(135deg,#ea580c,#f97316)}
.ohw-stat.tone-warn .ohw-stat-copy b{color:#c2410c}
.ohw-stat.tone-info{border-color:#bae6fd;background:linear-gradient(145deg,#fff,#f0f9ff)}
.ohw-stat.tone-info .ohw-stat-icon{background:linear-gradient(135deg,#0284c7,#0ea5e9)}
.ohw-stat.tone-info .ohw-stat-copy b{color:#0369a1}
.ohw-stat.is-link{cursor:pointer}
.ohw-stat.is-link:hover{transform:translateY(-3px);box-shadow:0 18px 36px rgba(15,23,42,.12)}
.ohw-stat.tone-ok.is-link:hover{border-color:#86efac}
.ohw-stat.tone-warn.is-link:hover{border-color:#fdba74}
.ohw-stat.tone-sent .ohw-stat-icon i{animation-name:ohw-stat-fly}
.ohw-stat.tone-ok .ohw-stat-icon i{animation-name:ohw-stat-pop}
.ohw-stat.tone-warn .ohw-stat-icon i{animation-name:ohw-stat-sand}
.ohw-stat.tone-info .ohw-stat-icon i{animation-name:ohw-stat-blink}
@keyframes ohw-stat-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
@keyframes ohw-stat-fly{0%,100%{transform:translate(0,0) rotate(0)}40%{transform:translate(3px,-4px) rotate(-8deg)}70%{transform:translate(-1px,1px) rotate(4deg)}}
@keyframes ohw-stat-pop{0%,100%{transform:scale(1)}45%{transform:scale(1.12)}70%{transform:scale(.96)}}
@keyframes ohw-stat-sand{0%,100%{transform:rotate(-12deg)}50%{transform:rotate(12deg)}}
@keyframes ohw-stat-blink{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.08)}}
@media(prefers-reduced-motion:reduce){.ohw-stat-icon i{animation:none!important}}
.ohw-tabs{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}
.ohw-tabs a{padding:10px 16px;border-radius:14px;background:#fff;border:1px solid #e2e8f0;text-decoration:none;color:#475569;font-size:13px;font-weight:700}
.ohw-tabs a.active{background:linear-gradient(135deg,var(--org-1,#15803d),var(--org-2,#22c55e));color:#fff;border-color:transparent;box-shadow:0 8px 18px color-mix(in srgb,var(--org-1,#15803d) 24%,transparent)}
.ohw-preview,.ohw-answer{display:grid;gap:16px}
.ohw-block{display:grid;gap:0;padding:0;overflow:hidden;border:1px solid color-mix(in srgb,var(--org-1,#15803d) 14%,#e2e8f0)!important;box-shadow:0 16px 34px color-mix(in srgb,var(--org-1,#15803d) 8%,transparent)}
.ohw-block-head{display:flex;align-items:center;gap:12px;padding:16px 18px;background:linear-gradient(135deg,color-mix(in srgb,var(--org-3,#86efac) 34%,#fff),#fff);border-bottom:1px solid color-mix(in srgb,var(--org-1,#15803d) 10%,#e2e8f0)}
.ohw-block-head h3{margin:0;font-size:15px;color:#0f172a}
.ohw-block-head p{margin:3px 0 0;font-size:11px;color:#64748b}
.ohw-block-icon{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;flex:0 0 auto;color:#fff;background:linear-gradient(135deg,var(--org-1,#15803d),var(--org-2,#22c55e));box-shadow:0 10px 20px color-mix(in srgb,var(--org-1,#15803d) 24%,transparent)}
.ohw-block-icon.is-answer{background:linear-gradient(135deg,#2563eb,#0ea5e9)}
.ohw-block-desc .ohw-block-icon{background:linear-gradient(135deg,#0f766e,#14b8a6)}
.ohw-block-q .ohw-block-icon{background:linear-gradient(135deg,#7c3aed,#a855f7)}
.ohw-block-body{padding:16px 18px 18px;background:#fff}
.ohw-block-body .rte-content{line-height:1.9;font-size:13.5px;color:#1e293b}
.ohw-answer{padding:0;overflow:hidden}
.ohw-answer>.ohw-block-head{margin:0}
.ohw-answer-form,.ohw-my-subs,.ohw-closed-note{margin:0;padding:16px 18px 18px}
.ohw-answer-editor{display:grid;gap:8px;padding:14px;border-radius:18px;background:linear-gradient(180deg,color-mix(in srgb,var(--org-3,#86efac) 16%,#fff),#fff);border:1px solid color-mix(in srgb,var(--org-1,#15803d) 12%,#e2e8f0)}
.ohw-answer h3,.ohw-my-subs h4{margin:0 0 10px;font-size:15px}
.ohw-file-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin-top:12px}
.ohw-file-chip{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:16px;text-decoration:none;color:#0f172a;background:#fff;border:1px solid #e2e8f0;box-shadow:0 8px 18px rgba(15,23,42,.05);transition:transform .18s ease,box-shadow .18s ease}
.ohw-file-chip:hover{transform:translateY(-2px);box-shadow:0 14px 28px rgba(15,23,42,.1)}
.ohw-file-chip-icon{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;flex:0 0 auto;font-size:16px;color:#fff}
.ohw-file-chip-copy{display:grid;gap:2px;min-width:0;flex:1}
.ohw-file-chip-copy b{font-size:12px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ohw-file-chip-copy small,.ohw-file-chip-copy em{font-size:10px;color:#64748b;font-style:normal}
.ohw-file-chip-badge{padding:4px 8px;border-radius:999px;font-size:10px;font-weight:900;flex:0 0 auto}
.ohw-file-chip.tone-pdf .ohw-file-chip-icon,.ohw-attach-item.tone-pdf .ohw-attach-item-icon{background:linear-gradient(135deg,#dc2626,#f97316)}
.ohw-file-chip.tone-pdf .ohw-file-chip-badge,.ohw-attach-item.tone-pdf .ohw-attach-item-badge{background:#fee2e2;color:#b91c1c}
.ohw-file-chip.tone-img .ohw-file-chip-icon,.ohw-attach-item.tone-img .ohw-attach-item-icon{background:linear-gradient(135deg,#2563eb,#06b6d4)}
.ohw-file-chip.tone-img .ohw-file-chip-badge,.ohw-attach-item.tone-img .ohw-attach-item-badge{background:#dbeafe;color:#1d4ed8}
.ohw-file-chip.tone-doc .ohw-file-chip-icon,.ohw-attach-item.tone-doc .ohw-attach-item-icon{background:linear-gradient(135deg,#1d4ed8,#3b82f6)}
.ohw-file-chip.tone-doc .ohw-file-chip-badge,.ohw-attach-item.tone-doc .ohw-attach-item-badge{background:#dbeafe;color:#1e40af}
.ohw-file-chip.tone-xls .ohw-file-chip-icon,.ohw-attach-item.tone-xls .ohw-attach-item-icon{background:linear-gradient(135deg,#15803d,#22c55e)}
.ohw-file-chip.tone-xls .ohw-file-chip-badge,.ohw-attach-item.tone-xls .ohw-attach-item-badge{background:#dcfce7;color:#166534}
.ohw-file-chip.tone-ppt .ohw-file-chip-icon,.ohw-attach-item.tone-ppt .ohw-attach-item-icon{background:linear-gradient(135deg,#c2410c,#f97316)}
.ohw-file-chip.tone-ppt .ohw-file-chip-badge,.ohw-attach-item.tone-ppt .ohw-attach-item-badge{background:#ffedd5;color:#c2410c}
.ohw-file-chip.tone-vid .ohw-file-chip-icon,.ohw-attach-item.tone-vid .ohw-attach-item-icon{background:linear-gradient(135deg,#7c3aed,#a855f7)}
.ohw-file-chip.tone-vid .ohw-file-chip-badge,.ohw-attach-item.tone-vid .ohw-attach-item-badge{background:#f3e8ff;color:#6b21a8}
.ohw-file-chip.tone-aud .ohw-file-chip-icon,.ohw-attach-item.tone-aud .ohw-attach-item-icon{background:linear-gradient(135deg,#0f766e,#14b8a6)}
.ohw-file-chip.tone-aud .ohw-file-chip-badge,.ohw-attach-item.tone-aud .ohw-attach-item-badge{background:#ccfbf1;color:#0f766e}
.ohw-file-chip.tone-zip .ohw-file-chip-icon,.ohw-attach-item.tone-zip .ohw-attach-item-icon{background:linear-gradient(135deg,#475569,#64748b)}
.ohw-file-chip.tone-zip .ohw-file-chip-badge,.ohw-attach-item.tone-zip .ohw-attach-item-badge{background:#f1f5f9;color:#334155}
.ohw-file-chip.tone-txt .ohw-file-chip-icon,.ohw-file-chip.tone-file .ohw-file-chip-icon,.ohw-attach-item.tone-txt .ohw-attach-item-icon,.ohw-attach-item.tone-file .ohw-attach-item-icon{background:linear-gradient(135deg,#64748b,#94a3b8)}
.ohw-file-chip.tone-txt .ohw-file-chip-badge,.ohw-file-chip.tone-file .ohw-file-chip-badge,.ohw-attach-item.tone-txt .ohw-attach-item-badge,.ohw-attach-item.tone-file .ohw-attach-item-badge{background:#f8fafc;color:#475569}
.ohw-answer-form{display:grid;gap:14px}
.ohw-attach-box{display:grid;gap:10px}
.ohw-attach-picker{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:22px 18px;border-radius:18px;border:1.5px dashed color-mix(in srgb,var(--org-1,#15803d) 28%,#93c5fd);background:linear-gradient(135deg,#fff,color-mix(in srgb,var(--org-3,#86efac) 18%,#fff));cursor:pointer;transition:.2s ease;text-align:center}
.ohw-attach-picker:hover{border-color:var(--org-2,#22c55e);box-shadow:0 12px 28px color-mix(in srgb,var(--org-1,#15803d) 12%,transparent);transform:translateY(-1px)}
.ohw-attach-picker input{position:absolute;inset:0;opacity:0;cursor:pointer}
.ohw-attach-picker-icon{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;flex:0 0 auto;color:#fff;background:linear-gradient(135deg,var(--org-1,#15803d),var(--org-2,#22c55e));box-shadow:0 10px 20px color-mix(in srgb,var(--org-1,#15803d) 24%,transparent);font-size:20px}
.ohw-attach-picker-copy{display:grid;gap:4px;min-width:0;justify-items:center}
.ohw-attach-picker-copy b{font-size:13.5px;color:#0f172a}
.ohw-attach-picker-copy small{font-size:9.5px;color:#64748b;white-space:nowrap;max-width:none;line-height:1.3}
.ohw-attach-picker em{padding:8px 14px;border-radius:999px;background:linear-gradient(135deg,var(--org-1,#15803d),var(--org-2,#22c55e));color:#fff;font-size:11px;font-style:normal;font-weight:800}
.ohw-attach-preview{display:grid;gap:8px}
.ohw-attach-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:16px;background:#fff;border:1px solid #e2e8f0;box-shadow:0 8px 18px rgba(15,23,42,.05);animation:ohw-card-in .35s ease both}
.ohw-attach-item-icon{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;color:#fff;flex:0 0 auto}
.ohw-attach-item-copy{display:grid;gap:2px;min-width:0;flex:1}
.ohw-attach-item-copy b{font-size:12px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ohw-attach-item-copy small{font-size:10px;color:#64748b}
.ohw-attach-item-badge{padding:4px 8px;border-radius:999px;font-size:10px;font-weight:900}
.ohw-attach-item-remove{appearance:none;width:34px;height:34px;border-radius:11px;border:1px solid #fecdd3;background:#fff1f2;color:#dc2626;display:grid;place-items:center;cursor:pointer;flex:0 0 auto;transition:.18s ease}
.ohw-attach-item-remove:hover{background:#ffe4e6;box-shadow:0 8px 16px rgba(220,38,38,.14);transform:translateY(-1px)}
.file-picker{text-align:center}
.file-picker>b{justify-content:center;text-align:center}
.file-picker small{text-align:center;margin-inline:auto}
.file-picker-meta{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;margin-top:.4rem}
.file-picker-meta small{margin-top:0;max-width:min(100%,320px)}
.file-picker-clear{appearance:none;display:none;align-items:center;gap:5px;padding:5px 10px;border-radius:999px;border:1px solid #fecdd3;background:#fff1f2;color:#dc2626;font:inherit;font-size:10.5px;font-weight:800;cursor:pointer}
.file-picker-clear.is-on{display:inline-flex}
.file-picker-clear:hover{background:#ffe4e6}
.upload-choice{
  display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;
  margin-top:8px;padding:10px 12px;border-radius:12px;border:1px dashed #dbeafe;
  background:linear-gradient(180deg,#f8fbff,#fff);width:100%;box-sizing:border-box
}
.upload-choice-thumb{
  width:52px;height:52px;object-fit:contain;border-radius:10px;border:1px solid #e2e8f0;
  background:#fff;padding:4px;flex:0 0 auto
}
.upload-choice-name{
  font-size:11px;font-weight:800;color:#334155;word-break:break-all;text-align:center;max-width:100%
}
.upload-choice-clear{
  appearance:none;display:inline-flex;align-items:center;justify-content:center;
  width:28px;height:28px;border-radius:999px;border:1px solid #fecdd3;background:#fff1f2;
  color:#dc2626;cursor:pointer;flex:0 0 auto
}
.upload-choice-clear:hover{background:#ffe4e6}
.file-picker .upload-choice-thumb{margin:0 auto 6px;display:block}
.ohw-closed-note{padding:14px;border-radius:14px;background:#fff7ed;color:#c2410c;display:flex;gap:8px;align-items:center}
.ohw-sub-card{padding:14px;border-radius:16px;border:1px solid #e2e8f0;background:#fff;display:grid;gap:10px;margin-top:10px;animation:ohw-card-in .4s ease both}
.ohw-sub-card header{display:flex;justify-content:space-between;align-items:center;gap:8px}
.ohw-feedback-card{
  position:relative;isolation:isolate;overflow:hidden;margin-top:4px;
  display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px;align-items:start;
  padding:18px 18px 16px;border-radius:22px;border:1.5px solid #e2e8f0;background:#fff;
  box-shadow:0 18px 40px rgba(15,23,42,.08);
  animation:ohw-feedback-in .7s cubic-bezier(.22,1,.36,1) both
}
.ohw-feedback-orb,.ohw-feedback-shine{position:absolute;pointer-events:none;z-index:0}
.ohw-feedback-orb{inset:auto auto -30% -12%;width:180px;height:180px;border-radius:50%;opacity:.55;filter:blur(2px);animation:ohw-feedback-orb 7s ease-in-out infinite}
.ohw-feedback-shine{inset:-20% -40% auto auto;width:55%;height:140%;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.55) 48%,transparent 66%);transform:translateX(40%) rotate(12deg);animation:ohw-feedback-shine 3.8s ease-in-out infinite}
.ohw-feedback-badge{
  position:relative;z-index:1;width:54px;height:54px;border-radius:18px;display:grid;place-items:center;
  color:#fff;font-size:22px;flex:0 0 auto;
  box-shadow:0 12px 24px rgba(15,23,42,.16);animation:ohw-feedback-bob 2.4s ease-in-out infinite
}
.ohw-feedback-body{position:relative;z-index:1;min-width:0;display:grid;gap:10px}
.ohw-feedback-top{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px}
.ohw-feedback-eyebrow{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:800;color:#64748b}
.ohw-feedback-chip{
  display:inline-flex;align-items:center;padding:5px 12px;border-radius:999px;font-size:12px;font-weight:900;
  border:1px solid currentColor;background:rgba(255,255,255,.72);animation:ohw-feedback-chip 2.8s ease-in-out infinite
}
.ohw-feedback-note{
  margin:0;padding:12px 14px;border-radius:16px;border:1px solid rgba(148,163,184,.28);
  background:rgba(255,255,255,.7);font-size:13.5px;line-height:1.85;font-weight:700;color:#0f172a
}
.ohw-feedback-empty-note{margin:0;font-size:12.5px;color:#64748b;font-weight:700}
.ohw-feedback-meta{display:flex;flex-wrap:wrap;gap:10px 16px;font-size:11.5px;font-weight:700;color:#64748b}
.ohw-feedback-meta span,.ohw-feedback-meta time{display:inline-flex;align-items:center;gap:6px}
.ohw-feedback-card.tone-green{border-color:#86efac;background:linear-gradient(135deg,#f0fdf4,#fff)}
.ohw-feedback-card.tone-green .ohw-feedback-badge{background:linear-gradient(135deg,#16a34a,#22c55e)}
.ohw-feedback-card.tone-green .ohw-feedback-orb{background:radial-gradient(circle,#86efac,transparent 70%)}
.ohw-feedback-card.tone-green .ohw-feedback-chip{color:#15803d;background:#dcfce7;border-color:#86efac}
.ohw-feedback-card.tone-blue{border-color:#93c5fd;background:linear-gradient(135deg,#eff6ff,#fff)}
.ohw-feedback-card.tone-blue .ohw-feedback-badge{background:linear-gradient(135deg,#2563eb,#3b82f6)}
.ohw-feedback-card.tone-blue .ohw-feedback-orb{background:radial-gradient(circle,#93c5fd,transparent 70%)}
.ohw-feedback-card.tone-blue .ohw-feedback-chip{color:#1d4ed8;background:#dbeafe;border-color:#93c5fd}
.ohw-feedback-card.tone-teal{border-color:#5eead4;background:linear-gradient(135deg,#f0fdfa,#fff)}
.ohw-feedback-card.tone-teal .ohw-feedback-badge{background:linear-gradient(135deg,#0d9488,#14b8a6)}
.ohw-feedback-card.tone-teal .ohw-feedback-orb{background:radial-gradient(circle,#5eead4,transparent 70%)}
.ohw-feedback-card.tone-teal .ohw-feedback-chip{color:#0f766e;background:#ccfbf1;border-color:#5eead4}
.ohw-feedback-card.tone-orange{border-color:#fdba74;background:linear-gradient(135deg,#fff7ed,#fff)}
.ohw-feedback-card.tone-orange .ohw-feedback-badge{background:linear-gradient(135deg,#ea580c,#f97316)}
.ohw-feedback-card.tone-orange .ohw-feedback-orb{background:radial-gradient(circle,#fdba74,transparent 70%)}
.ohw-feedback-card.tone-orange .ohw-feedback-chip{color:#c2410c;background:#ffedd5;border-color:#fdba74}
.ohw-feedback-card.tone-red{border-color:#fca5a5;background:linear-gradient(135deg,#fef2f2,#fff)}
.ohw-feedback-card.tone-red .ohw-feedback-badge{background:linear-gradient(135deg,#dc2626,#ef4444)}
.ohw-feedback-card.tone-red .ohw-feedback-orb{background:radial-gradient(circle,#fca5a5,transparent 70%)}
.ohw-feedback-card.tone-red .ohw-feedback-chip{color:#b91c1c;background:#fee2e2;border-color:#fca5a5}
.ohw-feedback-card.tone-purple{border-color:#d8b4fe;background:linear-gradient(135deg,#faf5ff,#fff)}
.ohw-feedback-card.tone-purple .ohw-feedback-badge{background:linear-gradient(135deg,#7c3aed,#a855f7)}
.ohw-feedback-card.tone-purple .ohw-feedback-orb{background:radial-gradient(circle,#d8b4fe,transparent 70%)}
.ohw-feedback-card.tone-purple .ohw-feedback-chip{color:#7e22ce;background:#f3e8ff;border-color:#d8b4fe}
@keyframes ohw-feedback-in{from{opacity:0;transform:translateY(18px) scale(.96)}to{opacity:1;transform:none}}
@keyframes ohw-feedback-orb{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(18px,-12px) scale(1.08)}}
@keyframes ohw-feedback-shine{0%,100%{transform:translateX(45%) rotate(12deg)}50%{transform:translateX(-55%) rotate(12deg)}}
@keyframes ohw-feedback-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
@keyframes ohw-feedback-chip{0%,100%{box-shadow:0 0 0 0 transparent}50%{box-shadow:0 0 0 6px color-mix(in srgb,currentColor 12%,transparent)}}
@media(max-width:680px){
  .ohw-feedback-card{grid-template-columns:1fr;padding:16px}
  .ohw-feedback-badge{width:48px;height:48px;border-radius:16px;font-size:18px}
}
@media (prefers-reduced-motion:reduce){
  .ohw-feedback-card,.ohw-feedback-orb,.ohw-feedback-shine,.ohw-feedback-badge,.ohw-feedback-chip{animation:none}
}

.ohw-student-list{display:grid;gap:12px}
.ohw-monitor-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
@media(min-width:981px){
  .ohw-student-list{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ohw-monitor-list{grid-template-columns:repeat(3,minmax(0,1fr))}
  .modern-dialog[data-ohw-monitor-dialog],dialog[data-ohw-monitor-dialog]{width:min(920px,calc(100vw - 28px))}
}
.ohw-responses-head{align-items:flex-start;gap:12px}
.ohw-responses-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.ohw-select-all-btn{appearance:none;border:0;cursor:pointer;display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border-radius:14px;font:inherit;font-size:12px;font-weight:800;color:#fff;background:linear-gradient(135deg,var(--org-1,#15803d),var(--org-2,#22c55e));box-shadow:0 10px 22px color-mix(in srgb,var(--org-1,#15803d) 26%,transparent);transition:transform .18s ease,box-shadow .18s ease,filter .18s ease,background .18s ease}
.ohw-select-all-btn:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.05)}
.ohw-select-all-btn.is-clear-mode{color:#b91c1c;background:linear-gradient(135deg,#fff,#fff1f2);border:1px solid #fecdd3;box-shadow:0 8px 18px rgba(220,38,38,.1)}
.ohw-select-all-btn:disabled{opacity:.45;cursor:not-allowed;transform:none!important;box-shadow:none!important}
.ohw-student-card{border:1.5px solid color-mix(in srgb,var(--org-1,#15803d) 10%,#e2e8f0);border-radius:20px;background:#fff;overflow:hidden;animation:ohw-card-in .45s ease both;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease,transform .2s ease}
.ohw-student-card:hover{border-color:color-mix(in srgb,var(--org-2,#22c55e) 35%,#e2e8f0);box-shadow:0 14px 28px color-mix(in srgb,var(--org-1,#15803d) 10%,transparent)}
.ohw-student-card.is-selected,
.ohw-student-card:has([data-ohw-bulk-check]:checked){border-color:transparent;background:linear-gradient(135deg,color-mix(in srgb,var(--org-3,#86efac) 38%,#fff),#fff);box-shadow:0 16px 32px color-mix(in srgb,var(--org-1,#15803d) 14%,transparent),inset 0 0 0 1.5px color-mix(in srgb,var(--org-2,#22c55e) 55%,transparent)}
.ohw-student-head{display:flex;align-items:center;gap:12px;padding:14px 16px;flex-wrap:wrap;cursor:pointer}
.ohw-student-meta{flex:1;min-width:140px}.ohw-student-meta small{display:block;color:#64748b;font-size:11px;margin-top:2px}
.ohw-pick{position:relative;flex:0 0 auto;cursor:pointer}
.ohw-pick input{position:absolute;opacity:0;pointer-events:none;inset:0}
.ohw-pick-mark{width:28px;height:28px;border-radius:10px;display:grid;place-items:center;border:1.5px solid #cbd5e1;background:linear-gradient(180deg,#fff,#f8fafc);color:transparent;font-size:12px;box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 4px 10px rgba(15,23,42,.04);transition:border-color .2s ease,background .2s ease,color .2s ease,transform .2s ease,box-shadow .2s ease}
.ohw-pick-mark i{transform:scale(.7);opacity:0;transition:transform .2s ease,opacity .2s ease}
.ohw-pick:hover .ohw-pick-mark{border-color:color-mix(in srgb,var(--org-2,#22c55e) 45%,#cbd5e1);transform:translateY(-1px)}
.ohw-pick input:checked+.ohw-pick-mark,
.ohw-student-card.is-selected .ohw-pick-mark,
.ohw-student-card:has([data-ohw-bulk-check]:checked) .ohw-pick-mark{border-color:transparent;background:linear-gradient(135deg,var(--org-1,#15803d),var(--org-2,#22c55e));color:#fff;box-shadow:0 8px 18px color-mix(in srgb,var(--org-1,#15803d) 28%,transparent)}
.ohw-pick input:checked+.ohw-pick-mark i,
.ohw-student-card.is-selected .ohw-pick-mark i,
.ohw-student-card:has([data-ohw-bulk-check]:checked) .ohw-pick-mark i{transform:scale(1);opacity:1}
.ohw-avatar{width:44px;height:44px;border-radius:15px;background:linear-gradient(135deg,#e2e8f0,#f8fafc);display:grid;place-items:center;overflow:hidden;font-weight:800;color:#334155;flex:0 0 auto;border:1px solid #e2e8f0;transition:border-color .2s ease,box-shadow .2s ease}
.ohw-student-card.is-selected .ohw-avatar,
.ohw-student-card:has([data-ohw-bulk-check]:checked) .ohw-avatar{border-color:color-mix(in srgb,var(--org-2,#22c55e) 40%,#e2e8f0);box-shadow:0 0 0 3px color-mix(in srgb,var(--org-3,#86efac) 35%,transparent)}
.ohw-avatar img{width:100%;height:100%;object-fit:cover}
.ohw-class-tool.is-clear-mode,.ohw-class-tool.is-select.is-clear-mode{color:#b91c1c;background:linear-gradient(135deg,#fff,#fff1f2);border:1px solid #fecdd3;box-shadow:0 8px 18px rgba(220,38,38,.1)}
.ohw-class-tool.is-clear-mode:hover:not(:disabled){transform:translateY(-1px);background:linear-gradient(135deg,#fff1f2,#ffe4e6);box-shadow:0 12px 24px rgba(220,38,38,.14);filter:none}
.select-all-toggle.is-clear-mode,.text-btn.is-clear-mode,.contact-bulk-btn.is-clear-mode{color:#b91c1c!important}
.ohw-fb-panel{padding:0 14px 14px;border-top:1px dashed #e2e8f0}
.ohw-fb-panel:not(.hidden){animation:ohw-accordion .35s ease}
@keyframes ohw-accordion{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
.ohw-fb-form{display:grid;gap:12px;padding-top:12px}
.ohw-verdicts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.ohw-verdict{position:relative;cursor:pointer}
.ohw-verdict input{position:absolute;opacity:0}
.ohw-verdict b{display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 8px;border-radius:14px;border:1.5px solid #e2e8f0;background:#f8fafc;font-size:11.5px;transition:.2s}
.ohw-verdict input:checked+b{border-color:currentColor;box-shadow:0 8px 20px rgba(15,23,42,.08);transform:translateY(-1px)}
.ohw-verdict.tone-green{color:#15803d}.ohw-verdict.tone-blue{color:#1d4ed8}.ohw-verdict.tone-teal{color:#0f766e}.ohw-verdict.tone-orange{color:#c2410c}.ohw-verdict.tone-red{color:#b91c1c}.ohw-verdict.tone-purple{color:#7e22ce}
.ohw-sub-stack{padding:0 14px 14px}
.ohw-monitor-list li{display:flex;gap:12px;align-items:center;padding:10px;border-radius:14px;background:#f8fafc;border:1px solid #e2e8f0}
.ohw-monitor-list small{display:block;color:#64748b;font-size:11px}
.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}
.online-hero{--org-1:#0f766e;--org-2:#14b8a6;--org-3:#ccfbf1}

/* Online Learning hub ? teal twin of Academic Unit dashboard */
.ol-dashboard .ol-hero{
    background:linear-gradient(125deg,#fff 0%,#f0fdfa 48%,#ecfeff 100%);
    border-color:rgba(45,212,191,.42);
    box-shadow:0 18px 48px rgba(15,118,110,.08),inset 0 1px 0 rgba(255,255,255,.9)
}
.ol-dashboard .ol-hero::before{
    background:
        radial-gradient(circle at 18% 24%,rgba(20,184,166,.18),transparent 42%),
        radial-gradient(circle at 82% 18%,rgba(6,182,212,.14),transparent 38%),
        radial-gradient(circle at 70% 88%,rgba(59,130,246,.1),transparent 40%)
}
.ol-dashboard .au-hero-kicker{
    background:linear-gradient(135deg,#ccfbf1,#f0fdfa);
    color:#115e59;
    border-color:rgba(94,234,212,.55);
    box-shadow:0 4px 14px rgba(15,118,110,.1)
}
.ol-dashboard .au-hero-meta span{border-color:rgba(204,251,241,.95)}
.ol-dashboard .au-hero-meta span:hover{border-color:#5eead4;box-shadow:0 8px 20px rgba(15,118,110,.1)}
.ol-dashboard .au-hero-meta i{color:#0d9488}
.ol-dashboard .ol-quick-panel{
    border-color:rgba(45,212,191,.35);
    background:linear-gradient(165deg,rgba(255,255,255,.96),rgba(240,253,250,.92));
    box-shadow:0 16px 40px rgba(15,118,110,.07)
}
.ol-dashboard .ol-quick-panel::before{
    background:linear-gradient(120deg,rgba(20,184,166,.4),rgba(6,182,212,.22),rgba(59,130,246,.28),rgba(20,184,166,.4));
    background-size:240% 240%
}
.ol-dashboard .au-quick-btn{border-color:rgba(204,251,241,.9);background:linear-gradient(165deg,rgba(255,255,255,.98),rgba(240,253,250,.92))}
.ol-dashboard .au-quick-btn:hover{border-color:rgba(94,234,212,.95);box-shadow:0 20px 40px rgba(15,118,110,.14),0 0 0 1px rgba(94,234,212,.25)}
.ol-dashboard .au-quick-btn:hover strong{color:#115e59}
.ol-dashboard .au-quick-btn .au-ripple{background:rgba(13,148,136,.18)}
.ol-dashboard .ol-list-panel::before{background:linear-gradient(90deg,#14b8a6,#06b6d4,#3b82f6)}
.ol-dashboard .ol-list-panel:hover{border-color:rgba(94,234,212,.65);box-shadow:0 20px 44px rgba(15,118,110,.1)}
.ol-dashboard .ol-list-panel .section-head .secondary-btn{
    border-color:rgba(153,246,228,.85);
    background:linear-gradient(135deg,#f0fdfa,#fff);
    box-shadow:0 4px 14px rgba(15,118,110,.08)
}
.ol-dashboard .ol-list-panel .section-head .secondary-btn:hover{
    background:linear-gradient(135deg,#ccfbf1,#f0fdfa);
    box-shadow:0 8px 20px rgba(15,118,110,.14)
}
.ol-dashboard a.au-stat-link:hover{border-color:rgba(94,234,212,.75);box-shadow:0 18px 40px rgba(15,118,110,.12)}
.ol-dashboard a.au-stat-link:focus-visible{outline-color:#0d9488}
.ol-dashboard .au-feed-row.is-link:hover{border-color:rgba(94,234,212,.85);box-shadow:0 12px 28px rgba(15,118,110,.1)}
.ol-dashboard .au-feed-row.is-link:hover .au-feed-chevron{color:#0d9488}
@media(min-width:1200px){
    .ol-dashboard .au-lists-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}

/* Communications hub ? indigo twin of Academic / Online dashboards */
.cm-dashboard .cm-hero{
    background:linear-gradient(125deg,#fff 0%,#eef2ff 48%,#e0e7ff 100%);
    border-color:rgba(129,140,248,.42);
    box-shadow:0 18px 48px rgba(79,70,229,.08),inset 0 1px 0 rgba(255,255,255,.9)
}
.cm-dashboard .cm-hero::before{
    background:
        radial-gradient(circle at 18% 24%,rgba(99,102,241,.18),transparent 42%),
        radial-gradient(circle at 82% 18%,rgba(59,130,246,.14),transparent 38%),
        radial-gradient(circle at 70% 88%,rgba(168,85,247,.1),transparent 40%)
}
.cm-dashboard .au-hero-kicker{
    background:linear-gradient(135deg,#e0e7ff,#eef2ff);
    color:#3730a3;
    border-color:rgba(165,180,252,.55);
    box-shadow:0 4px 14px rgba(79,70,229,.1)
}
.cm-dashboard .au-hero-meta span{border-color:rgba(224,231,255,.95)}
.cm-dashboard .au-hero-meta span:hover{border-color:#a5b4fc;box-shadow:0 8px 20px rgba(79,70,229,.1)}
.cm-dashboard .au-hero-meta i{color:#4f46e5}
.cm-dashboard .cm-quick-panel{
    border-color:rgba(129,140,248,.35);
    background:linear-gradient(165deg,rgba(255,255,255,.96),rgba(238,242,255,.92));
    box-shadow:0 16px 40px rgba(79,70,229,.07)
}
.cm-dashboard .cm-quick-panel::before{
    background:linear-gradient(120deg,rgba(99,102,241,.4),rgba(59,130,246,.22),rgba(168,85,247,.28),rgba(99,102,241,.4));
    background-size:240% 240%
}
.cm-dashboard .au-quick-btn{border-color:rgba(224,231,255,.9);background:linear-gradient(165deg,rgba(255,255,255,.98),rgba(238,242,255,.92))}
.cm-dashboard .au-quick-btn:hover{border-color:rgba(165,180,252,.95);box-shadow:0 20px 40px rgba(79,70,229,.14),0 0 0 1px rgba(165,180,252,.25)}
.cm-dashboard .au-quick-btn:hover strong{color:#3730a3}
.cm-dashboard .au-quick-btn .au-ripple{background:rgba(79,70,229,.18)}
.cm-dashboard .au-quick-btn.is-disabled{
    opacity:.62;cursor:default;pointer-events:none;filter:grayscale(.15)
}
.cm-dashboard .au-quick-soon{
    position:absolute;top:10px;left:10px;padding:3px 8px;border-radius:999px;
    background:linear-gradient(135deg,#f3e8ff,#ede9fe);color:#6d28d9;
    font-size:9px;font-style:normal;font-weight:900;border:1px solid rgba(196,181,253,.55);
    animation:au-badge-pop .5s cubic-bezier(.22,1,.36,1) .35s both;z-index:2
}
.cm-dashboard .cm-list-panel::before{background:linear-gradient(90deg,#6366f1,#3b82f6,#a855f7)}
.cm-dashboard .cm-list-panel:hover{border-color:rgba(165,180,252,.65);box-shadow:0 20px 44px rgba(79,70,229,.1)}
.cm-dashboard .cm-list-panel .section-head .secondary-btn{
    border-color:rgba(199,210,254,.85);
    background:linear-gradient(135deg,#eef2ff,#fff);
    box-shadow:0 4px 14px rgba(79,70,229,.08)
}
.cm-dashboard .cm-list-panel .section-head .secondary-btn:hover{
    background:linear-gradient(135deg,#e0e7ff,#eef2ff);
    box-shadow:0 8px 20px rgba(79,70,229,.14)
}
.cm-dashboard a.au-stat-link:hover{border-color:rgba(165,180,252,.75);box-shadow:0 18px 40px rgba(79,70,229,.12)}
.cm-dashboard a.au-stat-link:focus-visible{outline-color:#4f46e5}
.cm-dashboard .au-feed-row.is-link:hover{border-color:rgba(165,180,252,.85);box-shadow:0 12px 28px rgba(79,70,229,.1)}
.cm-dashboard .au-feed-row.is-link:hover .au-feed-chevron{color:#4f46e5}
.cm-dashboard .cm-feed-avatar{
    width:42px;height:42px;border-radius:50%;display:grid;place-items:center;overflow:hidden;
    color:#fff;font-weight:800;font-size:15px;background:linear-gradient(135deg,#818cf8,#4f46e5);
    box-shadow:0 8px 18px rgba(79,70,229,.22);flex:0 0 42px;transition:transform .28s cubic-bezier(.22,1,.36,1)
}
.cm-dashboard .cm-feed-avatar img{width:100%;height:100%;object-fit:cover}
.cm-dashboard .au-feed-row.is-link:hover .cm-feed-avatar{transform:scale(1.08)}
.cm-dashboard .cm-feed-unread{position:static;min-width:22px;height:22px;animation:au-badge-pop .45s cubic-bezier(.22,1,.36,1) both}
.cm-dashboard .cm-lists-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.cm-dashboard .au-feed-empty .primary-btn{margin-top:6px}
@media(min-width:1100px){
    .cm-dashboard .au-quick-actions{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
    .cm-dashboard .au-stats{
        display:flex;flex-wrap:nowrap;gap:12px;width:100%;overflow-x:auto
    }
    .cm-dashboard .au-stats .stat-card{flex:1 1 0;min-width:118px}
}
@media(max-width:1099px) and (min-width:761px){
    .cm-dashboard .cm-lists-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
    .cm-dashboard .cm-lists-grid{grid-template-columns:1fr}
}
@media(min-width:1200px){
    .cm-dashboard .au-lists-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}

/* Create class from timetable ? schedule sync composer */
.ocl-sch-page{display:flex;flex-direction:column;gap:18px}
.ocl-sch-hero{
    display:grid;grid-template-columns:minmax(0,1.4fr) minmax(220px,.7fr);gap:18px;align-items:center;
    padding:22px 24px;border-radius:28px;overflow:hidden;position:relative;
    background:linear-gradient(125deg,#fff 0%,#f0fdfa 48%,#ecfeff 100%);
    border:1px solid rgba(45,212,191,.42);
    box-shadow:0 18px 48px rgba(15,118,110,.08),inset 0 1px 0 rgba(255,255,255,.9)
}
.ocl-sch-hero::before{
    content:"";position:absolute;inset:0;pointer-events:none;
    background:
        radial-gradient(circle at 14% 20%,rgba(20,184,166,.18),transparent 42%),
        radial-gradient(circle at 88% 12%,rgba(6,182,212,.14),transparent 38%),
        radial-gradient(circle at 72% 90%,rgba(59,130,246,.1),transparent 40%)
}
.ocl-sch-hero-main,.ocl-sch-hero-side{position:relative;z-index:1}
.ocl-sch-kicker{
    display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border-radius:999px;font-size:11.5px;font-weight:800;
    background:linear-gradient(135deg,#ccfbf1,#f0fdfa);color:#115e59;border:1px solid rgba(94,234,212,.55);
    box-shadow:0 4px 14px rgba(15,118,110,.1);margin-bottom:12px
}
.ocl-sch-hero h1{margin:0 0 8px;font-size:clamp(1.35rem,2.2vw,1.85rem);color:#0f172a;letter-spacing:-.02em}
.ocl-sch-hero-main>p{margin:0;color:#475569;font-size:13.5px;line-height:1.75;max-width:46rem;font-weight:600}
.ocl-sch-hero-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.ocl-sch-hero-meta span{
    display:inline-flex;align-items:center;gap:7px;padding:7px 11px;border-radius:999px;font-size:11.5px;font-weight:800;color:#0f766e;
    background:rgba(255,255,255,.88);border:1px solid rgba(204,251,241,.95);transition:border-color .2s ease,box-shadow .2s ease
}
.ocl-sch-hero-meta span:hover{border-color:#5eead4;box-shadow:0 8px 20px rgba(15,118,110,.1)}
.ocl-sch-hero-meta i{color:#0d9488}
.ocl-sch-hero-side{display:grid;justify-items:end;gap:16px}
.ocl-sch-back{background:linear-gradient(135deg,#f0fdfa,#fff)!important;border-color:rgba(45,212,191,.45)!important;color:#0f766e!important}
.ocl-sch-back .ohw-back-icon{background:linear-gradient(135deg,#0f766e,#14b8a6)!important}
.ocl-sch-hero-art{position:relative;width:148px;height:110px}
.ocl-sch-hero-art .bubble{
    position:absolute;width:52px;height:52px;border-radius:18px;display:grid;place-items:center;color:#fff;
    box-shadow:0 14px 28px rgba(15,118,110,.22);animation:ocl-sch-float 4.2s ease-in-out infinite
}
.ocl-sch-hero-art .bubble.one{inset-inline-start:8px;top:8px;background:linear-gradient(135deg,#0f766e,#14b8a6)}
.ocl-sch-hero-art .bubble.two{inset-inline-end:4px;top:28px;background:linear-gradient(135deg,#0891b2,#22d3ee);animation-delay:.4s}
.ocl-sch-hero-art .bubble.three{inset-inline-start:48px;bottom:0;background:linear-gradient(135deg,#2563eb,#38bdf8);animation-delay:.8s}
@keyframes ocl-sch-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}

.ocl-sch-steps{
    display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:22px;
    background:linear-gradient(165deg,rgba(255,255,255,.98),rgba(240,253,250,.92));
    border:1px solid rgba(45,212,191,.28);box-shadow:0 12px 28px rgba(15,118,110,.06);overflow-x:auto
}
.ocl-sch-step{display:flex;align-items:center;gap:10px;min-width:max-content;opacity:.55;transition:opacity .2s ease}
.ocl-sch-step.is-active,.ocl-sch-step.is-done{opacity:1}
.ocl-sch-step b{
    width:34px;height:34px;border-radius:12px;display:grid;place-items:center;font-size:13px;
    background:#f1f5f9;color:#64748b;border:1px solid #e2e8f0
}
.ocl-sch-step.is-active b,.ocl-sch-step.is-done b{
    color:#fff;border-color:transparent;background:linear-gradient(135deg,#0f766e,#14b8a6);
    box-shadow:0 10px 20px rgba(15,118,110,.22)
}
.ocl-sch-step strong{display:block;font-size:12.5px;color:#0f172a}
.ocl-sch-step small{display:block;font-size:11px;color:#64748b;font-weight:700}
.ocl-sch-step-line{flex:1;height:2px;min-width:24px;border-radius:99px;background:linear-gradient(90deg,#ccfbf1,#e2e8f0)}

.ocl-sch-form{margin:0}
.ocl-sch-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.85fr);gap:18px;align-items:start}
.ocl-sch-main{display:grid;gap:16px}
.ocl-sch-aside{position:sticky;top:18px}
.ocl-sch-card{
    padding:18px;border-radius:24px;border:1px solid rgba(45,212,191,.28);
    background:linear-gradient(180deg,#fff,rgba(240,253,250,.55));
    box-shadow:0 14px 36px rgba(15,118,110,.06)
}
.ocl-sch-card-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:16px}
.ocl-sch-card-head h2{margin:0 0 4px;font-size:15px;color:#0f172a}
.ocl-sch-card-head p{margin:0;font-size:12.5px;color:#64748b;font-weight:600;line-height:1.6}
.ocl-sch-card-icon{
    width:42px;height:42px;border-radius:15px;display:grid;place-items:center;flex:0 0 auto;color:#fff;
    background:linear-gradient(135deg,#0f766e,#14b8a6);box-shadow:0 12px 24px rgba(15,118,110,.22)
}
.ocl-sch-card-icon.is-orange{background:linear-gradient(135deg,#ea580c,#fb923c);box-shadow:0 12px 24px rgba(234,88,12,.22)}
.ocl-sch-card-icon.is-blue{background:linear-gradient(135deg,#2563eb,#38bdf8);box-shadow:0 12px 24px rgba(37,99,235,.22)}

.ocl-sch-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.ocl-sch-field{display:grid;gap:8px}
.ocl-sch-field-label{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:800;color:#64748b}
.ocl-sch-field-label i{color:#0d9488;width:14px;text-align:center}
.ocl-sch-field select,.ocl-sch-weeks-control input{
    width:100%;appearance:none;border:1.5px solid rgba(203,213,225,.95);border-radius:16px;padding:12px 14px;
    background:linear-gradient(180deg,#fff,#f8fafc);font:inherit;font-size:13.5px;font-weight:700;color:#0f172a;
    box-shadow:0 8px 18px rgba(15,23,42,.04);transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease
}
.ocl-sch-field select:hover,.ocl-sch-weeks-control input:hover{border-color:rgba(94,234,212,.85)}
.ocl-sch-field select:focus,.ocl-sch-weeks-control input:focus{
    outline:none;border-color:#14b8a6;box-shadow:0 0 0 4px rgba(20,184,166,.16),0 10px 22px rgba(15,118,110,.1)
}

.ocl-sch-weeks{display:grid;gap:14px}
.ocl-sch-week-chips{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.ocl-sch-week-chip{
    appearance:none;border:1.5px solid rgba(203,213,225,.9);background:linear-gradient(180deg,#fff,#f8fafc);
    border-radius:18px;padding:12px 8px;cursor:pointer;display:grid;gap:2px;justify-items:center;
    font:inherit;font-size:16px;font-weight:900;color:#0f172a;
    transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,background .18s ease,color .18s ease
}
.ocl-sch-week-chip small{font-size:10.5px;font-weight:800;color:#94a3b8}
.ocl-sch-week-chip:hover{transform:translateY(-2px);border-color:rgba(94,234,212,.9);box-shadow:0 12px 24px rgba(15,118,110,.1)}
.ocl-sch-week-chip.is-active{
    color:#fff;border-color:transparent;
    background:linear-gradient(135deg,#0f766e,#14b8a6);
    box-shadow:0 14px 28px rgba(15,118,110,.24)
}
.ocl-sch-week-chip.is-active small{color:rgba(255,255,255,.82)}
.ocl-sch-weeks-input{max-width:240px}
.ocl-sch-weeks-control{display:grid;grid-template-columns:42px 1fr 42px;gap:8px;align-items:center}
.ocl-sch-weeks-control input{text-align:center;padding-inline:8px}
.ocl-sch-week-nudge{
    appearance:none;width:42px;height:46px;border-radius:14px;border:1.5px solid rgba(204,251,241,.95);
    background:linear-gradient(135deg,#f0fdfa,#fff);color:#0f766e;cursor:pointer;
    display:grid;place-items:center;transition:transform .18s ease,box-shadow .18s ease,background .18s ease
}
.ocl-sch-week-nudge:hover{transform:translateY(-1px);background:linear-gradient(135deg,#ccfbf1,#f0fdfa);box-shadow:0 10px 20px rgba(15,118,110,.12)}

.ocl-sch-tip-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.ocl-sch-tip{
    display:flex;gap:12px;align-items:flex-start;padding:12px;border-radius:18px;
    background:linear-gradient(165deg,#fff,rgba(240,253,250,.8));border:1px solid rgba(204,251,241,.9);
    transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease
}
.ocl-sch-tip:hover{transform:translateY(-2px);border-color:rgba(94,234,212,.95);box-shadow:0 14px 28px rgba(15,118,110,.1)}
.ocl-sch-tip>i{
    width:36px;height:36px;border-radius:13px;flex:0 0 auto;display:grid;place-items:center;color:#fff;
    background:linear-gradient(135deg,#0f766e,#14b8a6);box-shadow:0 8px 16px rgba(15,118,110,.18)
}
.ocl-sch-tip strong{display:block;font-size:12.5px;color:#0f172a;margin-bottom:3px}
.ocl-sch-tip p{margin:0;font-size:11.5px;color:#64748b;font-weight:600;line-height:1.55}

.ocl-sch-preview-panel{
    padding:18px;border-radius:26px;border:1px solid rgba(45,212,191,.35);
    background:
        radial-gradient(120% 80% at 100% 0%,rgba(20,184,166,.12),transparent 55%),
        linear-gradient(180deg,#fff,#f0fdfa);
    box-shadow:0 18px 44px rgba(15,118,110,.1);display:grid;gap:14px
}
.ocl-sch-preview-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.ocl-sch-preview-head h2{margin:0 0 6px;font-size:15px;color:#0f172a}
.ocl-sch-preview-head p{margin:0;font-size:12.5px;color:#64748b;font-weight:600;line-height:1.6}
.ocl-sch-preview-stat{
    min-width:72px;padding:10px 12px;border-radius:18px;text-align:center;
    background:linear-gradient(135deg,#0f766e,#14b8a6);color:#fff;
    box-shadow:0 14px 28px rgba(15,118,110,.24)
}
.ocl-sch-preview-stat strong{display:block;font-size:1.35rem;line-height:1.1}
.ocl-sch-preview-stat small{font-size:10.5px;font-weight:800;opacity:.85}
.ocl-sch-preview-legend{display:flex;flex-wrap:wrap;gap:8px}
.ocl-sch-badge{
    display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;font-size:11px;font-weight:800
}
.ocl-sch-badge.is-new{background:#ecfeff;color:#0e7490;border:1px solid #a5f3fc}
.ocl-sch-badge.is-exist{background:#f0fdf4;color:#15803d;border:1px solid #bbf7d0}
.ocl-sch-preview-empty,.ocl-sch-preview-loading{
    display:grid;justify-items:center;gap:8px;text-align:center;padding:28px 16px;border-radius:20px;
    border:1.5px dashed rgba(153,246,228,.9);background:rgba(255,255,255,.72);color:#64748b
}
.ocl-sch-preview-empty i,.ocl-sch-preview-loading i{font-size:1.6rem;color:#14b8a6;margin-bottom:4px}
.ocl-sch-preview-empty strong{color:#0f172a;font-size:13.5px}
.ocl-sch-preview-empty p{margin:0;font-size:12px;font-weight:600;max-width:18rem;line-height:1.6}
.ocl-sch-preview-loading{grid-auto-flow:column;justify-content:center;align-items:center;gap:10px;font-size:12.5px;font-weight:700;color:#0f766e}
.ocl-sch-preview-list{margin:0;padding:0;list-style:none;display:grid;gap:8px;max-height:min(52vh,420px);overflow:auto}
.ocl-sch-room{
    display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:10px;align-items:center;
    padding:11px 12px;border-radius:16px;background:#fff;border:1px solid rgba(226,232,240,.95);
    transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease
}
.ocl-sch-room:hover{transform:translateY(-1px);border-color:rgba(94,234,212,.85);box-shadow:0 12px 24px rgba(15,118,110,.1)}
.ocl-sch-room-icon{
    width:40px;height:40px;border-radius:14px;display:grid;place-items:center;color:#fff;
    background:linear-gradient(135deg,#0f766e,#14b8a6)
}
.ocl-sch-room.is-exist .ocl-sch-room-icon{background:linear-gradient(135deg,#15803d,#22c55e)}
.ocl-sch-room-body{min-width:0}
.ocl-sch-room-body strong{display:block;font-size:12.5px;color:#0f172a;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ocl-sch-room-body small{display:block;margin-top:3px;font-size:11px;color:#64748b;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ocl-sch-room.is-more{
    display:block;text-align:center;font-size:12px;font-weight:800;color:#0f766e;
    background:linear-gradient(135deg,#f0fdfa,#fff);border-style:dashed;border-color:#99f6e4
}
.ocl-sch-preview-actions{display:grid;gap:8px;padding-top:4px}
.ocl-sch-submit{
    width:100%;justify-content:center;gap:10px;padding:13px 16px;border-radius:16px;font-weight:800;
    background:linear-gradient(135deg,#0f766e,#14b8a6)!important;border:0!important;
    box-shadow:0 16px 34px rgba(15,118,110,.28)!important
}
.ocl-sch-submit:hover{filter:brightness(1.05);transform:translateY(-1px)}
.ocl-sch-submit:disabled{opacity:.72;cursor:wait;transform:none}
.ocl-sch-preview-actions .secondary-btn{justify-content:center;border-radius:14px}

@media(max-width:1100px){
    .ocl-sch-layout{grid-template-columns:1fr}
    .ocl-sch-aside{position:static}
}
@media(max-width:760px){
    .ocl-sch-hero{grid-template-columns:1fr;padding:18px}
    .ocl-sch-hero-side{justify-items:stretch}
    .ocl-sch-hero-art{display:none}
    .ocl-sch-filters,.ocl-sch-tip-grid{grid-template-columns:1fr}
    .ocl-sch-week-chips{grid-template-columns:repeat(3,minmax(0,1fr))}
    .ocl-sch-weeks-input{max-width:none}
}

/* Cultural Unit hub ? emerald twin of Academic / Online dashboards */
.cu-dashboard .cu-hero{
    background:linear-gradient(125deg,#fff 0%,#f0fdf4 48%,#ecfdf5 100%);
    border-color:rgba(74,222,128,.42);
    box-shadow:0 18px 48px rgba(4,120,87,.08),inset 0 1px 0 rgba(255,255,255,.9)
}
.cu-dashboard .cu-hero::before{
    background:
        radial-gradient(circle at 18% 24%,rgba(34,197,94,.18),transparent 42%),
        radial-gradient(circle at 82% 18%,rgba(16,185,129,.14),transparent 38%),
        radial-gradient(circle at 70% 88%,rgba(59,130,246,.08),transparent 40%)
}
.cu-dashboard .au-hero-kicker{
    background:linear-gradient(135deg,#d1fae5,#f0fdf4);
    color:#065f46;
    border-color:rgba(110,231,183,.55);
    box-shadow:0 4px 14px rgba(4,120,87,.1)
}
.cu-dashboard .au-hero-meta span{border-color:rgba(209,250,229,.95)}
.cu-dashboard .au-hero-meta span:hover{border-color:#6ee7b7;box-shadow:0 8px 20px rgba(4,120,87,.1)}
.cu-dashboard .au-hero-meta i{color:#059669}
.cu-dashboard .cu-quick-panel{
    border-color:rgba(74,222,128,.35);
    background:linear-gradient(165deg,rgba(255,255,255,.96),rgba(240,253,244,.92));
    box-shadow:0 16px 40px rgba(4,120,87,.07)
}
.cu-dashboard .cu-quick-panel::before{
    background:linear-gradient(120deg,rgba(34,197,94,.4),rgba(16,185,129,.22),rgba(59,130,246,.2),rgba(34,197,94,.4));
    background-size:240% 240%
}
.cu-dashboard .au-quick-btn{border-color:rgba(209,250,229,.9);background:linear-gradient(165deg,rgba(255,255,255,.98),rgba(240,253,244,.92))}
.cu-dashboard .au-quick-btn:hover{border-color:rgba(110,231,183,.95);box-shadow:0 20px 40px rgba(4,120,87,.14),0 0 0 1px rgba(110,231,183,.25)}
.cu-dashboard .au-quick-btn:hover strong{color:#065f46}
.cu-dashboard .au-quick-btn .au-ripple{background:rgba(5,150,105,.18)}
.cu-dashboard .cu-list-panel::before{background:linear-gradient(90deg,#22c55e,#10b981,#3b82f6)}
.cu-dashboard .cu-list-panel:hover{border-color:rgba(110,231,183,.65);box-shadow:0 20px 44px rgba(4,120,87,.1)}
.cu-dashboard .cu-list-panel .section-head .secondary-btn{
    border-color:rgba(167,243,208,.85);
    background:linear-gradient(135deg,#f0fdf4,#fff);
    box-shadow:0 4px 14px rgba(4,120,87,.08)
}
.cu-dashboard .cu-list-panel .section-head .secondary-btn:hover{
    background:linear-gradient(135deg,#d1fae5,#f0fdf4);
    box-shadow:0 8px 20px rgba(4,120,87,.14)
}
.cu-dashboard a.au-stat-link:hover{border-color:rgba(110,231,183,.75);box-shadow:0 18px 40px rgba(4,120,87,.12)}
.cu-dashboard a.au-stat-link:focus-visible{outline-color:#059669}
.cu-dashboard .au-feed-row.is-link:hover{border-color:rgba(110,231,183,.85);box-shadow:0 12px 28px rgba(4,120,87,.1)}
.cu-dashboard .au-feed-row.is-link:hover .au-feed-chevron{color:#059669}
.cu-dashboard .au-lists-grid-top,
.cu-dashboard .au-lists-grid-bottom{display:grid;gap:16px}
.cu-dashboard .au-lists-grid-bottom{margin-top:16px}
@media(min-width:1100px){
    .cu-dashboard .au-quick-actions{
        grid-template-columns:repeat(4,minmax(0,1fr));
    }
    .cu-dashboard .au-stats{
        display:flex;
        flex-wrap:nowrap;
        gap:12px;
        width:100%;
        overflow-x:auto;
    }
    .cu-dashboard .au-stats .stat-card{
        flex:1 1 0;
        min-width:118px;
    }
    .cu-dashboard .au-lists-grid-top{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
    .cu-dashboard .au-lists-grid-bottom{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}
@media(max-width:1099px) and (min-width:761px){
    .cu-dashboard .au-quick-actions{grid-template-columns:repeat(4,minmax(0,1fr))}
    .cu-dashboard .au-lists-grid-top,
    .cu-dashboard .au-lists-grid-bottom{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
    .cu-dashboard .au-lists-grid-top,
    .cu-dashboard .au-lists-grid-bottom{grid-template-columns:1fr}
}
@media(min-width:1200px){
    .cu-dashboard .au-lists-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}

@media(max-width:980px){
  .ohw-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
  .ohw-schedule-box{grid-template-columns:1fr;gap:8px}
  .ohw-schedule-arrow{justify-self:center;transform:rotate(-90deg)}
  .ohw-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ohw-verdicts{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:680px){
  .ohw-create-btn{width:auto;justify-content:center}
  .ohw-card-grid{grid-template-columns:1fr;gap:14px}
  .ohw-card{border-radius:22px}
  .ohw-card:hover{transform:none}
  .ohw-card-cover{min-height:0}
  .ohw-cover-hero{padding:16px}
  .ohw-subject-title{font-size:20px}
  .ohw-hw-title{font-size:12.5px}
  .ohw-cover-body{padding:12px}
  .ohw-schedule-box{padding:10px}
  .ohw-schedule-item{padding:12px}
  .ohw-schedule-copy strong{font-size:14px}
  .ohw-card-foot{flex-direction:column;align-items:stretch;gap:10px;padding:12px}
  .ohw-card-actions{width:100%;min-width:0;margin:0;grid-auto-flow:column;grid-template-columns:repeat(3,minmax(0,1fr));display:grid}
  .ohw-card-actions:has(> :only-child),.ohw-card-actions:has(> :first-child:last-child){grid-template-columns:1fr}
  .ohw-card-btn{min-height:42px;font-size:12px;padding:0 8px}
  .ohw-pill{align-self:flex-start}
  .ohw-timer-unit b{font-size:14px}
  .ohw-date-grid,.ohw-cascade-3,.ohw-cascade-2{grid-template-columns:1fr}
  .ohw-fab-submit{left:12px;right:12px;bottom:calc(78px + env(safe-area-inset-bottom,0px));justify-content:center;width:auto}
  .ohw-back-btn{width:100%;justify-content:flex-start}
  [data-oex-wizard] .oex-composer-head,
  [data-ohw-create] .ohw-composer-head,
  [data-ocl-form] .ohw-composer-head{flex-direction:row;flex-wrap:nowrap;align-items:center}
  [data-oex-wizard] .oex-back-btn,
  [data-ohw-create] .ohw-back-btn,
  [data-ocl-form] .ohw-back-btn{width:auto;justify-content:flex-start}
  .ohw-detail-banner{flex-direction:column}
  .ohw-detail-actions{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
  .ohw-detail-actions .ohw-card-btn{width:100%;min-width:0}
  .ohw-timer.big{width:100%}
  .ohw-stats{grid-template-columns:1fr 1fr}
  .ohw-verdicts{grid-template-columns:1fr}
  .ohw-student-head .secondary-btn{width:100%;cursor:pointer}
  .ohw-responses-actions{width:100%}
  .ohw-select-all-btn{flex:1;justify-content:center}
  .ohw-class-multi-head{align-items:stretch;flex-direction:column}
  .ohw-class-multi-actions{width:100%}
  .ohw-class-tool{flex:1;justify-content:center}
  .ohw-class-multi-list{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ohw-child-switch{display:flex;flex-wrap:wrap;gap:8px}
}

/* ===== Online Exam (oex-) ===== */
body.oex-desc-float-open{overflow:hidden}
body.oex-exam-body .ambient{display:none}
.oex-soon-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:14px}
.oex-manage-top,.oex-manage-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.oex-back-btn{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:inherit}
.oex-back-icon{width:40px;height:40px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,var(--org-1,#2563eb),var(--org-2,#0ea5e9));color:#fff}
.oex-back-copy{display:grid;gap:2px}.oex-back-copy strong{font-size:13px}.oex-back-copy small{font-size:11px;color:#64748b}
.oex-manage-banner{position:relative;overflow:hidden;margin-top:14px;padding:22px;border-radius:22px;color:#fff;background:linear-gradient(135deg,var(--org-1,#2563eb),var(--org-2,#0ea5e9))}
.oex-manage-banner h2{margin:8px 0 10px;font-size:24px}
.oex-pill{display:inline-flex;padding:5px 12px;border-radius:999px;background:rgba(255,255,255,.18);font-size:11px;font-weight:800}
.oex-meta-list{display:flex;flex-wrap:wrap;gap:10px 16px;margin:0;padding:0;list-style:none;font-size:12.5px}
.oex-meta-list i{margin-left:6px;opacity:.9}
.oex-cover-shine{position:absolute;inset:-30% auto auto -10%;width:180px;height:180px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.28),transparent 70%);pointer-events:none}
.oex-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:14px 0}
.oex-stat-card{display:flex;align-items:center;gap:12px;padding:14px 16px}
.oex-stat-card>i{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,var(--org-1,#2563eb),var(--org-2,#38bdf8));color:#fff;font-size:16px}
.oex-stat-card small{display:block;color:#64748b;font-size:11px;font-weight:700}
.oex-stat-card strong{font-size:14px}
.oex-action-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.oex-action-btn{display:grid;gap:4px;padding:16px;border-radius:18px;border:1px solid #e2e8f0;background:#fff;text-decoration:none;color:inherit;cursor:pointer;text-align:right;position:relative;overflow:hidden;isolation:isolate;transition:transform .28s cubic-bezier(.22,1,.36,1),box-shadow .28s ease,border-color .28s ease}
.oex-action-btn::before{content:"";position:absolute;inset:auto -40% -60% auto;width:120px;height:120px;border-radius:50%;background:radial-gradient(circle,rgba(37,99,235,.12),transparent 70%);opacity:0;transition:opacity .35s ease,transform .35s ease;transform:scale(.6);pointer-events:none;z-index:0}
.oex-action-btn>*{position:relative;z-index:1}
.oex-action-btn:hover{transform:translateY(-4px);box-shadow:0 18px 36px rgba(15,23,42,.1);border-color:#93c5fd}
.oex-action-btn:hover::before{opacity:1;transform:scale(1)}
.oex-action-btn:active{transform:translateY(-1px)}
.oex-action-btn>i{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:#eff6ff;color:#2563eb;transition:transform .35s cubic-bezier(.22,1,.36,1),background .28s ease,color .28s ease,box-shadow .28s ease}
.oex-action-btn:hover>i{transform:translateY(-2px) scale(1.08);background:linear-gradient(135deg,#2563eb,#0ea5e9);color:#fff;box-shadow:0 10px 18px rgba(37,99,235,.28)}
.oex-action-btn span{font-weight:800;font-size:13.5px}
.oex-action-btn small{color:#64748b;font-size:11px;transition:color .25s ease}
.oex-action-btn:hover small{color:#475569}
.oex-action-btn.is-accent>i{background:linear-gradient(135deg,#7c3aed,#2563eb);color:#fff}
.oex-action-btn.is-muted{opacity:.92}
.oex-flag-list{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.oex-flag-list li{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:14px;background:#f8fafc;border:1px solid #e2e8f0;font-size:12.5px;font-weight:700}
.oex-flag-list li.is-on i{color:#16a34a}.oex-flag-list li.is-off i{color:#dc2626}
.oex-desc-card .oex-richtext{line-height:1.8;font-size:13px}
.oex-participants-panel .oex-participants-scroll{overflow-x:visible}
.oex-participants-table{width:100%;min-width:0;table-layout:auto;font-size:11px}
.oex-participants-table th,.oex-participants-table td{padding:7px 6px;white-space:nowrap;vertical-align:middle}
.oex-participants-table .user-cell{max-width:140px}
.oex-participants-table .user-cell>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100px}
.oex-participants-table .icon-btn{width:30px;height:30px;min-width:30px;border-radius:10px;font-size:12px}
.oex-participants-table th:nth-child(1),.oex-participants-table td:nth-child(1){width:36px;text-align:center}
.oex-bool{text-align:center;font-size:14px}
.oex-ok{color:#16a34a}.oex-no{color:#dc2626}.oex-muted{color:#94a3b8}
.oex-participants-table form{display:inline-flex;margin:0}
.oex-participants-table td{text-align:center}
.oex-participants-table td:nth-child(2){text-align:right}
.oex-extra-time-dialog{width:min(420px,calc(100% - 24px))}
.oex-extra-time-dialog .oex-field{display:grid;gap:6px}
.oex-extra-time-dialog .oex-field input{min-height:42px;font-size:16px;font-weight:800;text-align:center;direction:ltr}
.oex-answers-dialog{width:min(720px,calc(100% - 20px))}
.oex-answers-dialog .oex-answers-card{max-height:min(86vh,820px);display:grid;grid-template-rows:auto 1fr auto}
.oex-answers-dialog .oex-answers-body{overflow:auto;max-height:min(58vh,560px);padding-top:4px}
.oex-answers-loading,.oex-answers-error{display:flex;align-items:center;justify-content:center;gap:10px;min-height:120px;color:#64748b;font-weight:700}
.oex-answers-error{color:#b91c1c}
.oex-answers-grid{display:grid;gap:8px;grid-template-columns:1fr}
@media (min-width:900px){
  .oex-answers-grid{grid-template-columns:1fr 1fr;gap:10px}
  .oex-answers-dialog{width:min(920px,calc(100% - 24px))}
}
.oex-answers-row{display:grid;grid-template-columns:44px 1fr 36px;gap:8px;align-items:center;padding:8px 10px;border:1px solid #e2e8f0;border-radius:14px;background:#f8fafc}
.oex-answers-no{display:grid;place-items:center;width:36px;height:36px;border-radius:12px;background:#fff;border:1px solid #cbd5e1;font-weight:900;font-variant-numeric:tabular-nums}
.oex-answers-opts{display:flex;flex-wrap:wrap;gap:6px}
.oex-answers-opt{min-width:40px;height:36px;padding:0 10px;border-radius:12px;border:1px solid #cbd5e1;background:#fff;font-weight:800;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease,transform .12s ease}
.oex-answers-opt:hover{border-color:#93c5fd;transform:translateY(-1px)}
.oex-answers-opt.is-selected{background:#2563eb;border-color:#2563eb;color:#fff}
.oex-answers-opt.is-correct-key:not(.is-selected){box-shadow:inset 0 0 0 2px #86efac}
.oex-answers-opt.is-selected.is-right{background:#16a34a;border-color:#16a34a}
.oex-answers-opt.is-selected.is-wrong{background:#dc2626;border-color:#dc2626}
.oex-answers-clear{width:36px;height:36px;border-radius:12px;border:1px solid #e2e8f0;background:#fff;color:#64748b;cursor:pointer}
.oex-answers-clear:hover{color:#be123c;border-color:#fda4af}
.oex-ok-text{color:#15803d;font-weight:800}.oex-no-text{color:#b91c1c;font-weight:800}.oex-blank-text{color:#ca8a04;font-weight:800}
.oex-inline-actions{display:inline-flex;align-items:center;gap:6px}
.oex-outline-btn{display:inline-flex;align-items:center;justify-content:center;padding:6px 10px;border-radius:10px;border:1px solid #93c5fd;color:#1d4ed8;background:#fff;font-size:11px;font-weight:800;text-decoration:none;white-space:nowrap}
.oex-outline-btn.is-rose{border-color:#fda4af;color:#be123c}
.oex-danger-icon{color:#be123c}
.oex-minutes-form{display:inline-flex;align-items:center;gap:4px}
.oex-minutes-form input{width:58px;min-height:32px;padding:4px 6px;border-radius:10px;border:1px solid #cbd5e1;font-size:12px;direction:ltr;text-align:center;font-variant-numeric:tabular-nums;font-weight:800}
.oex-charts-row{display:grid;grid-template-columns:1.2fr 1fr;gap:14px;margin-top:14px}
.oex-chart-card{min-height:280px}
.oex-bar-chart{display:flex;align-items:end;gap:8px;min-height:220px;padding:10px 4px 0}
.oex-bar-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0}
.oex-bar{width:100%;max-width:42px;height:calc(var(--h,10) * 1.8px);min-height:4px;border-radius:10px 10px 4px 4px;background:linear-gradient(180deg,#38bdf8,#2563eb)}
.oex-bar.is-student{background:linear-gradient(180deg,#4ade80,#16a34a)}
.oex-bar.is-avg{background:linear-gradient(180deg,#93c5fd,#2563eb)}
.oex-bar-val{font-size:11px;font-weight:800;color:#334155}
.oex-bar-label{font-size:10px;color:#64748b;text-align:center}
.oex-hbar-chart{display:grid;gap:12px;padding:8px 0}
.oex-hbar-row{display:grid;grid-template-columns:70px 1fr 48px;gap:10px;align-items:center;font-size:12px}
.oex-hbar-track{height:14px;border-radius:999px;background:#e2e8f0;overflow:hidden;position:relative}
.oex-hbar{display:block;height:100%;border-radius:999px}
.oex-hbar.is-ok{background:#22c55e}.oex-hbar.is-bad{background:#ef4444}.oex-hbar.is-blank{background:#eab308}.oex-hbar.is-score{background:#3b82f6}
.oex-hbar-avg{position:absolute;top:-3px;bottom:-3px;width:3px;background:#1e3a8a;border-radius:2px}
.oex-dual-track{overflow:visible}
.oex-chart-legend{display:flex;flex-wrap:wrap;gap:12px;margin:12px 0 0;padding:0;list-style:none;font-size:11.5px;color:#475569}
.oex-chart-legend i{display:inline-block;width:12px;height:12px;border-radius:4px;margin-left:6px;vertical-align:middle}
.oex-chart-legend i.is-ok{background:#22c55e}.oex-chart-legend i.is-bad{background:#ef4444}.oex-chart-legend i.is-blank{background:#eab308}.oex-chart-legend i.is-score{background:#3b82f6}
.oex-stack-bar{width:36px;height:160px;border-radius:10px;overflow:hidden;display:flex;flex-direction:column-reverse;background:#e2e8f0}
.oex-stack-bar>span{display:block;width:100%}
.oex-stack-bar .is-ok{background:#22c55e}.oex-stack-bar .is-bad{background:#ef4444}.oex-stack-bar .is-blank{background:#eab308}
.oex-print-actions{display:flex;justify-content:flex-end;gap:10px;margin-bottom:16px}
.oex-context-bar{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  margin:0 0 14px;padding:10px 12px;border:1px solid #dbeafe;border-radius:16px;
  background:linear-gradient(135deg,#eff6ff,#fff 58%);
  box-shadow:0 10px 24px rgba(37,99,235,.06);
}
.oex-context-lead{font-size:11px;font-weight:900;color:#1e3a8a;white-space:nowrap}
.oex-context-scroll{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0;flex:1}
.oex-context-link{
  display:inline-flex;align-items:center;gap:7px;min-height:36px;padding:0 12px;
  border-radius:999px;border:1px solid #dbeafe;background:#fff;color:#334155;
  text-decoration:none;font-size:11.5px;font-weight:800;white-space:nowrap;
  box-shadow:0 4px 12px rgba(15,23,42,.04);transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease,background .15s ease,color .15s ease;
}
.oex-context-link i{font-size:12px;color:#2563eb}
.oex-context-link:hover{transform:translateY(-1px);border-color:#93c5fd;box-shadow:0 8px 16px rgba(37,99,235,.12);color:#0f172a}
.oex-context-link.is-active{
  background:linear-gradient(135deg,#2563eb,#0ea5e9);border-color:transparent;color:#fff;
  box-shadow:0 8px 18px rgba(37,99,235,.28);
}
.oex-context-link.is-active i{color:#fff}
.oex-context-link.is-action{border-color:#bbf7d0;background:#f0fdf4;color:#166534}
.oex-context-link.is-action i{color:#16a34a}
.oex-context-link.is-primary{
  border-color:transparent;background:linear-gradient(135deg,#2563eb,#0ea5e9);color:#fff;
  box-shadow:0 8px 18px rgba(37,99,235,.25);cursor:pointer;
}
.oex-context-link.is-primary i{color:#fff}
.oex-context-link.is-primary:hover{filter:brightness(1.03)}
@media(max-width:720px){
  .oex-context-bar{display:block;overflow:hidden;min-width:0;max-width:100%}
  .oex-context-scroll{display:flex;flex-wrap:nowrap!important;overflow-x:auto!important;overflow-y:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scroll-snap-type:x proximity;gap:8px;padding-bottom:6px;max-width:100%;min-width:0}
  .oex-context-link{flex:0 0 auto;scroll-snap-align:start}
}
.oex-empty-report{text-align:center;padding:48px 20px;display:grid;gap:10px;justify-items:center}
.oex-empty-report i{font-size:42px;color:#94a3b8}
.oex-report-sheet{padding:28px 26px;background:#fff;display:flex;flex-direction:column;gap:22px}
.oex-report-title{text-align:center;margin:0}
.oex-report-title h1{margin:0;font-size:24px;font-weight:900;letter-spacing:-.02em;color:#0f172a}
.oex-report-title p{margin:6px 0 0;color:#64748b;font-size:13px;font-weight:700}
.oex-info-table{width:100%;border-collapse:separate;border-spacing:0;font-size:12.5px;overflow:hidden;border:1px solid #cbd5e1;border-radius:14px}
.oex-info-table th,.oex-info-table td{border:1px solid #d8dee8;padding:12px 10px;text-align:center;vertical-align:middle}
.oex-info-table th{background:linear-gradient(180deg,#f8fafc,#eef2f7);font-weight:900;font-size:13.5px;color:#0f172a}
.oex-info-table td{background:#fff;font-weight:700;color:#334155}
.oex-cell-student{color:#1d4ed8!important;background:#eff6ff!important}
.oex-cell-system{color:#047857!important;background:#ecfdf5!important}
.oex-report-kpi{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.oex-kpi{padding:14px 12px;border:1px solid #e2e8f0;border-radius:14px;background:linear-gradient(180deg,#fff,#f8fafc);text-align:center}
.oex-kpi small{display:block;font-size:11px;font-weight:800;color:#64748b;margin-bottom:6px}
.oex-kpi strong{font-size:18px;font-weight:900;color:#0f172a}
.oex-kpi-pct.is-p85,.oex-kpi-status.is-excellent{background:linear-gradient(180deg,#ecfdf5,#d1fae5);border-color:#6ee7b7}
.oex-kpi-pct.is-p85 strong,.oex-kpi-status.is-excellent strong{color:#047857}
.oex-kpi-pct.is-p70,.oex-kpi-status.is-great{background:linear-gradient(180deg,#f0fdf4,#dcfce7);border-color:#86efac}
.oex-kpi-pct.is-p70 strong,.oex-kpi-status.is-great strong{color:#15803d}
.oex-kpi-pct.is-p55,.oex-kpi-status.is-good{background:linear-gradient(180deg,#eff6ff,#dbeafe);border-color:#93c5fd}
.oex-kpi-pct.is-p55 strong,.oex-kpi-status.is-good strong{color:#1d4ed8}
.oex-kpi-pct.is-p40,.oex-kpi-status.is-fair{background:linear-gradient(180deg,#fffbeb,#fef3c7);border-color:#fcd34d}
.oex-kpi-pct.is-p40 strong,.oex-kpi-status.is-fair strong{color:#b45309}
.oex-kpi-pct.is-p0,.oex-kpi-status.is-weak{background:linear-gradient(180deg,#fef2f2,#fee2e2);border-color:#fca5a5}
.oex-kpi-pct.is-p0 strong,.oex-kpi-status.is-weak strong{color:#b91c1c}
.oex-report-table-wrap{overflow-x:auto;border:1px solid #cbd5e1;border-radius:14px;background:#fff}
.oex-formal-table{width:100%;border-collapse:collapse;min-width:980px;font-size:11.5px}
.oex-formal-table th,.oex-formal-table td{border:1px solid #c5ceda;padding:10px 8px;text-align:center;vertical-align:middle}
.oex-formal-table thead th{background:linear-gradient(180deg,#eef2ff,#e0e7ff);font-weight:900;color:#312e81;font-size:11px;line-height:1.45}
.oex-formal-table tbody td{background:#fff;font-weight:700;color:#334155}
.oex-formal-table tbody tr:nth-child(even) td{background:#f8fafc}
.oex-formal-table .oex-td-title{font-weight:900;color:#0f172a;white-space:nowrap}
.oex-formal-table tfoot th{background:#eef2ff;font-weight:900;color:#312e81}
.oex-pct-chip{display:inline-flex;align-items:center;justify-content:center;min-width:2.6em;padding:4px 8px;border-radius:999px;font-weight:900;font-size:11px;line-height:1.2}
.oex-pct-chip.is-p85{background:#d1fae5;color:#047857;border:1px solid #6ee7b7}
.oex-pct-chip.is-p70{background:#bbf7d0;color:#15803d;border:1px solid #86efac}
.oex-pct-chip.is-p55{background:#dbeafe;color:#1d4ed8;border:1px solid #93c5fd}
.oex-pct-chip.is-p40{background:#fef3c7;color:#b45309;border:1px solid #fcd34d}
.oex-pct-chip.is-p0{background:#fee2e2;color:#b91c1c;border:1px solid #fca5a5}
.oex-status-chip{display:inline-block;padding:4px 10px;border-radius:999px;background:#f1f5f9;color:#334155;font-size:10.5px;font-weight:900;white-space:nowrap;border:1px solid #e2e8f0}
.oex-status-chip.is-excellent{background:#d1fae5;color:#047857;border-color:#6ee7b7}
.oex-status-chip.is-great{background:#bbf7d0;color:#166534;border-color:#86efac}
.oex-status-chip.is-good{background:#dbeafe;color:#1d4ed8;border-color:#93c5fd}
.oex-status-chip.is-fair{background:#fef3c7;color:#b45309;border-color:#fcd34d}
.oex-status-chip.is-weak{background:#fee2e2;color:#b91c1c;border-color:#fca5a5}
.oex-ok-text{color:#15803d!important}.oex-no-text{color:#b91c1c!important}.oex-blank-text{color:#64748b!important}
.oex-report-chart-card{border:1px solid #e2e8f0;border-radius:16px;padding:16px 18px 8px;background:linear-gradient(180deg,#fff,#f8fafc)}
.oex-report-chart-card>header{margin-bottom:8px}
.oex-report-chart-card h3{margin:0;font-size:15px;font-weight:900;color:#0f172a}
.oex-report-chart-card p{margin:4px 0 0;font-size:12px;color:#64748b}
.oex-combo-chart-wrap{position:relative;width:100%;height:280px;min-height:260px;overflow:hidden}
.oex-combo-chart-wrap canvas{display:none}
.oex-svg-chart{display:block;width:100%!important;height:100%!important;min-height:260px;max-width:none}
.oex-svg-grid{stroke:#e2e8f0;stroke-width:1}
.oex-svg-zero{stroke:#94a3b8;stroke-width:1.25;stroke-dasharray:4 3}
.oex-svg-axis{fill:#64748b;font-size:11px;font-weight:700}
.oex-svg-label{fill:#0f172a;font-size:12px;font-weight:800}
.oex-svg-bar{fill:rgba(37,99,235,.38);stroke:rgba(37,99,235,.9);stroke-width:1}
.oex-svg-line{stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.oex-svg-line.is-max{stroke:#0f172a}
.oex-svg-line.is-avg{stroke:#64748b}
.oex-svg-line.is-min{stroke:#94a3b8}
.oex-svg-pt.is-max{fill:#0f172a}
.oex-svg-pt.is-avg{fill:#64748b}
.oex-svg-pt.is-min{fill:#94a3b8}
.oex-svg-legend{display:flex;flex-wrap:wrap;gap:12px;margin:4px 0 0;padding:0;list-style:none;font-size:12px;font-weight:800;color:#475569;justify-content:center}
.oex-svg-legend li{display:inline-flex;align-items:center;gap:5px}
.oex-svg-legend i{width:10px;height:10px;border-radius:2px;display:inline-block}
.oex-svg-legend i.is-bar{background:rgba(37,99,235,.55)}
.oex-svg-legend i.is-max{background:#0f172a;border-radius:50%}
.oex-svg-legend i.is-avg{background:#64748b}
.oex-svg-legend i.is-min{width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:9px solid #94a3b8;background:transparent;border-radius:0}
.oex-chart-print-legend,.print-only{display:none}
.oex-answer-sheet-block{margin-top:4px;position:relative;z-index:1;clear:both}
.oex-answer-sheet-block h3{margin:0 0 14px;font-size:15px;font-weight:900}
.oex-answer-grid{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:flex-start;gap:14px;direction:ltr;padding:4px 0 8px}
.oex-answer-col{flex:0 0 auto;min-width:168px;display:flex;flex-direction:column;gap:5px;padding:10px;border:1px solid #e2e8f0;border-radius:14px;background:#fff;box-shadow:0 8px 18px rgba(15,23,42,.04)}
.oex-answer-col-head{text-align:center;font-size:11px;font-weight:900;color:#1d4ed8;padding:4px 6px;border-radius:8px;background:#eff6ff;margin-bottom:2px}
.oex-answer-row{display:flex;align-items:center;gap:8px;direction:ltr;min-height:26px}
.oex-answer-row>b{width:26px;flex:0 0 26px;font-size:12px;font-weight:900;color:#334155;text-align:center;font-variant-numeric:tabular-nums}
.oex-answer-opts{display:flex;gap:4px;direction:ltr}
.oex-ans-box{width:22px;height:22px;border:1.5px solid #94a3b8;border-radius:5px;display:grid;place-items:center;font-size:10px;background:#fff;line-height:1;color:#64748b}
.oex-ans-box em{font-style:normal;font-weight:800;color:#64748b;font-size:10px}
.oex-ans-box.is-correct{background:#dbeafe;border-color:#2563eb;color:#1d4ed8}
.oex-ans-box.is-wrong{background:#fee2e2;border-color:#dc2626;color:#b91c1c}
.oex-ans-box.is-picked{background:#f3f4f6;border-color:#6b7280;color:#374151}
.oex-ans-box.is-picked-correct{background:#dcfce7;border-color:#16a34a;color:#15803d}
.oex-sheet-legend{display:flex;flex-wrap:wrap;gap:14px;margin:14px 0 0;padding:0;list-style:none;font-size:12px;font-weight:700;color:#475569}
.oex-sheet-legend li{display:inline-flex;align-items:center;gap:6px}
.oex-print-hint{margin:0 0 12px;padding:10px 14px;border-radius:12px;background:#fffbeb;border:1px solid #fcd34d;color:#92400e;font-size:12px;font-weight:700;line-height:1.7}
.oex-print-hint strong{font-weight:900}
.oex-float-dock{position:fixed;left:max(14px,env(safe-area-inset-left));bottom:max(18px,env(safe-area-inset-bottom));z-index:45;display:flex;flex-direction:column;align-items:stretch;gap:10px;width:min(178px,42vw);pointer-events:none}
.oex-float-btn{pointer-events:auto;display:inline-flex;align-items:center;justify-content:flex-start;gap:9px;width:100%;padding:11px 14px;border:1px solid #cbd5e1;border-radius:14px;background:rgba(255,255,255,.96);color:#0f172a;font:inherit;font-size:12.5px;font-weight:800;text-decoration:none;box-shadow:0 10px 28px rgba(15,23,42,.14);cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,background .15s ease}
.oex-float-btn i{width:18px;text-align:center;color:#2563eb;flex:0 0 auto}
.oex-float-btn:hover{transform:translateY(-1px);box-shadow:0 14px 32px rgba(15,23,42,.18);background:#fff}
.oex-float-btn.is-primary{background:linear-gradient(135deg,#1d4ed8,#2563eb);border-color:transparent;color:#fff}
.oex-float-btn.is-primary i{color:#fff}
.oex-chart-empty{position:absolute;inset:0;display:grid;place-items:center;padding:16px;text-align:center;font-size:13px;font-weight:700;color:#64748b;background:#fff}
.oex-report-print-stack{display:flex;flex-direction:column;gap:28px}
.oex-report-print-stack .oex-report-sheet{box-shadow:0 12px 36px rgba(15,23,42,.08)}
@media(max-width:900px){
  .oex-report-kpi{grid-template-columns:repeat(2,minmax(0,1fr))}
  .oex-float-dock{left:10px;bottom:88px;width:min(160px,46vw)}
  .oex-float-btn{padding:10px 12px;font-size:11.5px;border-radius:12px}
}
@media print{
  .no-print{display:none!important}
  *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  html,body{width:100%!important;max-width:none!important;margin:0!important;padding:0!important;background:#fff!important}
  body.oex-rc-printing{background:#fff!important;width:100%!important;margin:0!important;padding:0!important}
  body.oex-rc-printing .ambient,
  body.oex-rc-printing .sidebar,
  body.oex-rc-printing .sidebar-backdrop,
  body.oex-rc-printing .messenger-float-btn,
  body.oex-rc-printing .impersonation-bar,
  body.oex-rc-printing .topbar,
  body.oex-rc-printing .mobile-nav,
  body.oex-rc-printing .settings-menu,
  body.oex-rc-printing .ohw-child-switch,
  body.oex-rc-printing .oex-print-actions,
  body.oex-rc-printing .oex-print-hint,
  body.oex-rc-printing .oex-context-bar,
  body.oex-rc-printing .oex-float-dock,
  body.oex-rc-printing .alert,
  body.oex-rc-printing dialog,
  body.oex-rc-printing .upload-overlay{display:none!important;width:0!important;height:0!important;overflow:hidden!important}
  body.oex-rc-printing .app-layout,
  body.oex-rc-printing .main-column,
  body.oex-rc-printing .page-content,
  body.oex-rc-printing .settings-layout,
  body.oex-rc-printing .settings-page,
  body.oex-rc-printing .oex-report-print-stack{
    display:block!important;width:100%!important;max-width:none!important;min-width:0!important;padding:0!important;margin:0!important;gap:0!important;
    background:#fff!important;box-shadow:none!important;border:0!important;min-height:0!important;height:auto!important;overflow:visible!important;
    grid-template-columns:none!important;flex:none!important;position:static!important;inset:auto!important
  }
  body.oex-rc-printing .oex-report-sheet{
    padding:0!important;margin:0!important;gap:7px!important;box-shadow:none!important;border:0!important;border-radius:0!important;
    background:#fff!important;width:100%!important;max-width:none!important;min-width:0!important;box-sizing:border-box!important;
    transform:none!important;overflow:visible!important;break-after:page;page-break-after:always
  }
  body.oex-rc-printing .oex-report-sheet:last-child,
  body.oex-rc-printing .oex-report-sheet:only-child{break-after:auto;page-break-after:auto}
  body.oex-rc-printing .oex-report-title{margin:0!important}
  body.oex-rc-printing .oex-report-title h1{font-size:17px!important;line-height:1.25!important}
  body.oex-rc-printing .oex-report-title p{font-size:10px!important;margin:2px 0 0!important}
  body.oex-rc-printing .oex-info-table{font-size:9.5px!important;border-radius:5px!important}
  body.oex-rc-printing .oex-info-table th{font-size:9.5px!important;padding:5px 3px!important}
  body.oex-rc-printing .oex-info-table td{padding:5px 3px!important;font-weight:700!important}
  body.oex-rc-printing .oex-report-kpi{grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:5px!important}
  body.oex-rc-printing .oex-kpi{padding:6px 3px!important;border-radius:6px!important}
  body.oex-rc-printing .oex-kpi small{font-size:8.5px!important;margin-bottom:2px!important}
  body.oex-rc-printing .oex-kpi strong{font-size:13px!important}
  body.oex-rc-printing .oex-report-table-wrap{border-radius:5px!important;overflow:visible!important}
  body.oex-rc-printing .oex-formal-table{min-width:0!important;width:100%!important;font-size:9px!important;table-layout:fixed!important}
  body.oex-rc-printing .oex-formal-table th,
  body.oex-rc-printing .oex-formal-table td{padding:4px 2px!important;line-height:1.25!important;word-break:break-word}
  body.oex-rc-printing .oex-formal-table thead th{font-size:8.5px!important}
  body.oex-rc-printing .oex-status-chip,
  body.oex-rc-printing .oex-pct-chip{padding:1px 4px!important;font-size:8px!important;min-width:0;border-radius:5px}
  body.oex-rc-printing .oex-report-sheet.is-dense-print .oex-formal-table{font-size:8px!important}
  body.oex-rc-printing .oex-report-sheet.is-dense-print .oex-formal-table th,
  body.oex-rc-printing .oex-report-sheet.is-dense-print .oex-formal-table td{padding:3px 1.5px!important}
  body.oex-rc-printing .oex-report-sheet.is-dense-print .oex-formal-table thead th{font-size:7.5px!important}
  body.oex-rc-printing .oex-report-sheet.is-dense-print .oex-combo-chart-wrap,
  body.oex-rc-printing .oex-report-sheet.is-dense-print .oex-svg-chart{height:145px!important;max-height:145px!important}
  body.oex-rc-printing .oex-report-chart-card{padding:5px 7px!important;border-radius:6px!important;overflow:hidden!important;break-inside:avoid;page-break-inside:avoid}
  body.oex-rc-printing .oex-report-chart-card>header{display:flex;align-items:center;justify-content:space-between;gap:6px;margin:0 0 3px!important}
  body.oex-rc-printing .oex-report-chart-card h3{font-size:11px!important;margin:0!important}
  body.oex-rc-printing .oex-chart-print-legend{display:flex!important;flex-wrap:wrap;gap:7px;margin:0;padding:0;list-style:none;font-size:8.5px;font-weight:800;color:#475569}
  body.oex-rc-printing .oex-chart-print-legend li{display:inline-flex;align-items:center;gap:3px}
  body.oex-rc-printing .oex-chart-print-legend i{width:9px;height:9px;border-radius:2px;display:inline-block}
  body.oex-rc-printing .oex-chart-print-legend i.is-bar{background:#94a3b8}
  body.oex-rc-printing .oex-chart-print-legend i.is-max{background:#334155;border-radius:50%}
  body.oex-rc-printing .oex-chart-print-legend i.is-avg{background:#64748b}
  body.oex-rc-printing .oex-chart-print-legend i.is-min{width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:8px solid #94a3b8;background:transparent;border-radius:0}
  body.oex-rc-printing .oex-combo-chart-wrap{min-height:0!important;height:175px!important;max-height:175px!important;overflow:hidden!important;width:100%!important}
  body.oex-rc-printing .oex-combo-chart-wrap canvas{display:none!important}
  body.oex-rc-printing .oex-svg-chart{width:100%!important;height:165px!important;max-height:165px!important}
  body.oex-rc-printing .oex-svg-legend{display:none!important}
  body.oex-rc-printing .oex-svg-label{font-size:12px!important}
  body.oex-rc-printing .oex-svg-axis{font-size:11px!important}
  body.oex-rc-printing .oex-answer-sheet-block{margin-top:2px!important;position:relative!important;z-index:2!important;overflow:visible!important}
  body.oex-rc-printing .oex-answer-sheet-block h3{font-size:11px!important;margin:0 0 5px!important}
  body.oex-rc-printing .oex-answer-grid{gap:6px!important;padding:0!important;width:100%!important;justify-content:stretch!important}
  body.oex-rc-printing .oex-answer-col{min-width:0!important;flex:1 1 0!important;max-width:none!important;width:auto!important;padding:5px!important;border-radius:5px!important;box-shadow:none!important;break-inside:avoid;page-break-inside:avoid}
  body.oex-rc-printing .oex-report-chart-card,
  body.oex-rc-printing .oex-report-table-wrap,
  body.oex-rc-printing .oex-info-table,
  body.oex-rc-printing .oex-report-kpi,
  body.oex-rc-printing .oex-answer-sheet-block{width:100%!important;max-width:none!important;box-sizing:border-box!important}
  body.oex-rc-printing .oex-answer-col-head{font-size:9px!important;padding:2px!important;margin-bottom:1px!important}
  body.oex-rc-printing .oex-answer-row{gap:3px!important;min-height:15px!important}
  body.oex-rc-printing .oex-answer-row>b{width:14px!important;flex-basis:14px!important;font-size:9px!important}
  body.oex-rc-printing .oex-ans-box{width:13px!important;height:13px!important;border-radius:3px!important;font-size:7.5px!important}
  body.oex-rc-printing .oex-ans-box em{font-size:7.5px!important}
  body.oex-rc-printing .oex-sheet-legend{gap:7px!important;margin:5px 0 0!important;font-size:9px!important}
  body.oex-rc-printing .panel{box-shadow:none!important;border:0!important}
}
@page{
  margin:5mm;
}

/* Take UI */
.oex-take{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:#e8edf5}
.oex-take.is-offline::before{content:"\0627\062A\0635\0627\0644 \0627\06CC\0646\062A\0631\0646\062A \0642\0637\0639 \0627\0633\062A \2014 \067E\0627\0633\062E\200C\0647\0627\06CC \0630\062E\06CC\0631\0647\200C\0634\062F\0647 \0645\062D\0641\0648\0638 \0645\06CC\200C\0645\0627\0646\0646\062F.";display:block;background:#7f1d1d;color:#fff;text-align:center;padding:8px;font-size:12px;font-weight:800}
.oex-take-topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 16px;background:#fff;border-bottom:1px solid #e2e8f0;position:sticky;top:0;z-index:20}
.oex-take-user{display:inline-flex;align-items:center;gap:8px;font-size:13px}
.oex-take-user i{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#eff6ff;color:#2563eb}
.oex-test-badge{padding:3px 8px;border-radius:999px;background:#fef3c7;color:#b45309;font-size:10px;font-style:normal;font-weight:800}
.oex-take-meta{display:flex;flex-wrap:wrap;gap:14px;font-size:12.5px;font-weight:700;color:#334155}
.oex-take-meta i{color:#2563eb;margin-left:5px}
.oex-finish-btn{border:0;border-radius:12px;padding:10px 14px;background:linear-gradient(135deg,#db2777,#e11d48);color:#fff;font-weight:800;cursor:pointer}
.oex-finish-btn:disabled{opacity:.45;cursor:not-allowed}
.oex-take-body{flex:1;display:flex;gap:12px;padding:12px;min-height:0}
.oex-take:has(.oex-pdf-frame-wrap.is-system:not(.is-pdf-zoomed)) .oex-take-body{flex:1 0 auto;min-height:auto;align-items:flex-start}
.oex-take:has(.oex-pdf-frame-wrap.is-system:not(.is-pdf-zoomed)) .oex-take-main{flex:1 1 auto;min-height:auto;max-height:none}
.oex-take:has(.oex-pdf-frame-wrap.is-system:not(.is-pdf-zoomed)) .oex-pdf-frame-wrap{flex:0 0 auto;min-height:0;height:auto}
.oex-take:has(.oex-pdf-frame-wrap.is-system:not(.is-pdf-zoomed)) .oex-take-body{flex:1 0 auto;min-height:auto;align-items:flex-start}
.oex-take:has(.oex-pdf-frame-wrap.is-system:not(.is-pdf-zoomed)) .oex-take-main{flex:1 1 auto;min-height:auto;max-height:none}
.oex-take:has(.oex-pdf-frame-wrap.is-system:not(.is-pdf-zoomed)) .oex-pdf-frame-wrap{flex:0 0 auto;min-height:0;height:auto}
.oex-take-main{flex:1;min-width:0;background:#fff;border-radius:18px;border:1px solid #e2e8f0;display:flex;flex-direction:column;overflow:visible;box-shadow:0 12px 30px rgba(15,23,42,.06)}
.oex-take-side{width:min(340px,100%);flex:0 0 auto;display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 88px);position:sticky;top:72px}
.oex-pdf-toolbar{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:10px 12px;border-bottom:1px solid #e2e8f0;background:#f8fafc;border-radius:18px 18px 0 0}
.oex-pdf-modes{display:flex;gap:6px;flex-wrap:wrap}
.oex-pdf-modes button{border:1px solid #bfdbfe;background:#fff;color:#1d4ed8;border-radius:10px;padding:8px 10px;font-size:11.5px;font-weight:800;cursor:pointer}
.oex-pdf-modes button.is-active{background:#2563eb;color:#fff;border-color:#2563eb}
.oex-pdf-actions{display:flex;gap:8px}
.oex-pdf-frame-wrap{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;background:#0f172a;border-radius:0 0 18px 18px;overflow:visible}
.oex-pdf-frame{width:100%;height:100%;min-height:0;border:0;background:#0f172a}
.oex-typed-list{padding:16px;overflow:auto;display:grid;gap:14px;max-height:calc(100vh - 120px)}
.oex-typed-q{border:1px solid #e2e8f0;border-radius:16px;padding:14px;background:#fff}
.oex-typed-q.is-locked{opacity:.78}
.oex-typed-q header{display:flex;justify-content:space-between;margin-bottom:8px;font-weight:800}
.oex-typed-stem img{max-width:100%;border-radius:12px;margin-bottom:8px}
.oex-typed-options{display:grid;gap:8px;margin-top:10px}
.oex-typed-opt{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border-radius:14px;border:1px solid #e2e8f0;background:#f8fafc;cursor:pointer;text-align:right}
.oex-typed-opt.is-selected{border-color:#db2777;background:#fdf2f8;box-shadow:0 0 0 3px rgba(219,39,119,.12)}
.oex-opt-badge{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;border:1.5px solid #db2777;color:#db2777;font-weight:900;flex:0 0 auto;background:#fff}
.oex-typed-opt.is-selected .oex-opt-badge{background:#db2777;color:#fff}
.oex-timer-wrap{position:relative;width:150px;height:150px;margin:0 auto}
.oex-timer-svg{width:100%;height:100%;transform:rotate(-90deg)}
.oex-timer-bg{fill:none;stroke:#e2e8f0;stroke-width:8}
.oex-timer-fg{fill:none;stroke:#2563eb;stroke-width:8;stroke-linecap:round;transition:stroke-dashoffset .4s linear}
.oex-timer-text{position:absolute;inset:0;display:grid;place-content:center;text-align:center}
.oex-timer-text strong{font-size:18px;font-variant-numeric:tabular-nums}
.oex-timer-text small{color:#64748b;font-size:11px}
.oex-take-toggles{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;padding:10px 12px;background:#fff;border-radius:16px;border:1px solid #e2e8f0}
.oex-take-toggles .oex-switch{flex:1 1 auto;min-width:0}
.oex-switch{display:flex;align-items:center;gap:10px;font-size:12.5px;font-weight:700;cursor:pointer}
.oex-switch input{appearance:none;width:42px;height:24px;border-radius:999px;background:#cbd5e1;position:relative;transition:.2s;flex:0 0 auto}
.oex-switch input:before{content:"";position:absolute;top:3px;right:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:.2s}
.oex-switch input:checked{background:#2563eb}
.oex-switch input:checked:before{right:21px}
.oex-custom-subject-input{margin-top:8px;width:100%}
.oex-custom-subject-input.hidden{display:none!important}
.oex-subjects-table td .oex-custom-subject-input{margin-top:6px}
.oex-side-btns{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%}
.oex-help-btn,.oex-exit-btn{appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:6px;width:100%;height:36px;padding:0 10px;border-radius:12px;font:inherit;font-size:12px;font-weight:800;text-decoration:none;border:0;cursor:pointer;white-space:nowrap;line-height:1;box-sizing:border-box}
.oex-help-btn{background:#2563eb;color:#fff}
.oex-help-btn:hover{background:#1d4ed8}
.oex-exit-btn{background:linear-gradient(135deg,#fdf2f8,#fce7f3);color:#be185d;border:1px solid #f9a8d4;box-shadow:0 4px 12px rgba(190,24,93,.12)}
.oex-exit-btn:hover{background:linear-gradient(135deg,#fce7f3,#fbcfe8);transform:translateY(-1px);box-shadow:0 8px 16px rgba(190,24,93,.16)}
.oex-help-btn i,.oex-exit-btn i{font-size:12px;line-height:1}
.oex-sheet{flex:1;min-height:0;display:flex;flex-direction:column;background:#fff;border:1px solid #e2e8f0;border-radius:16px;overflow:hidden}
.oex-sheet>h3{margin:0;padding:12px;color:#db2777;font-size:16px;text-align:center}
.oex-sheet-exam-title{margin:0 12px 8px;padding:8px 10px;border-radius:10px;background:#334155;color:#fff;font-size:12px;font-weight:800;text-align:center}
.oex-sheet-scroll{overflow:auto;padding:0 8px 12px;flex:1}
.oex-sheet-subject{margin-bottom:10px}
.oex-sheet-subject>header{padding:6px 8px;margin-bottom:8px;border-radius:8px;background:#f1f5f9;font-size:11.5px;font-weight:800;color:#475569;text-align:center}
.oex-sheet-row{position:relative;display:flex;align-items:center;justify-content:center;padding:5px 16px;border-radius:10px;transition:background .15s ease}
.oex-sheet-row.is-current{background:#f8fafc}
.oex-sheet-row.is-current .oex-current-mark{opacity:1}
.oex-sheet-row.is-locked{opacity:.85}
.oex-sheet-cluster{display:inline-flex;align-items:center;justify-content:center;gap:8px;direction:ltr;margin:0 auto}
.oex-sheet-clear,.oex-sheet-flag{position:relative;z-index:2}
.oex-sheet-clear{width:26px;height:28px;border:1px solid #bae6fd;border-radius:7px;background:#e0f2fe;color:#0369a1;cursor:pointer;display:grid;place-items:center;font-size:11px;flex:0 0 auto}
.oex-sheet-clear:hover{background:#bae6fd}
.oex-sheet-no{min-width:30px;color:#be185d;font-size:13.5px;font-weight:900;display:inline-flex;align-items:center;justify-content:center;gap:3px;flex:0 0 auto;font-variant-numeric:tabular-nums}
.oex-lock-check{color:#16a34a;font-size:11px}
.oex-sheet-opts{display:inline-flex;align-items:center;gap:5px;flex:0 0 auto;direction:ltr}
.oex-sheet-opt{appearance:none;position:relative;overflow:hidden;isolation:isolate;min-width:34px;width:34px;height:28px;padding:0;border-radius:6px;border:1.5px solid #db2777;background:#fff;color:#be185d;font-size:12.5px;font-weight:900;cursor:pointer;line-height:1;box-shadow:inset 0 1px 0 rgba(255,255,255,.8);transition:color .12s ease,border-color .12s ease,box-shadow .12s ease,transform .12s ease;z-index:0}
.oex-sheet-opt::before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#22c55e,#16a34a);transform:scaleX(0);transform-origin:right center;transition:transform .22s cubic-bezier(.22,1,.36,1);z-index:-1}
.oex-sheet-opt:hover:not(:disabled){background:#f0fdf4;transform:translateY(-1px)}
.oex-sheet-opt.is-selected{border-color:#15803d;color:#fff;box-shadow:0 2px 8px rgba(22,163,74,.28)}
.oex-sheet-opt.is-selected::before{transform:scaleX(1)}
.oex-sheet-opt:disabled{opacity:.55;cursor:not-allowed}
.oex-take.is-descriptive .oex-take-side{width:min(420px,100%)}
.oex-take.is-descriptive .oex-sheet{min-height:0}
.oex-take.is-descriptive .oex-desc-per{flex:1;min-height:0;display:flex;flex-direction:column}
.oex-take.is-descriptive .oex-desc-per .oex-sheet-scroll{flex:1;min-height:0;overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y;padding-bottom:96px}
.oex-desc-mode-pick{display:flex;flex-direction:column;gap:10px;padding:12px;margin:0 10px 12px;border:1px dashed #cbd5e1;border-radius:14px;background:#f8fafc}
.oex-desc-mode-pick>p{margin:0;font-size:12.5px;line-height:1.7;color:#475569;text-align:center}
.oex-desc-mode-pick .primary-btn,.oex-desc-mode-pick .secondary-btn{width:100%;justify-content:center}
.oex-desc-row{display:flex;flex-direction:column;align-items:stretch;gap:8px;padding:10px 12px;margin-bottom:8px;border:1px solid #e2e8f0;border-radius:12px;touch-action:pan-y}
.oex-desc-qhead{display:flex;align-items:center;justify-content:space-between;gap:8px}
.oex-desc-qhead>b{color:#be185d;font-size:13px}
.oex-desc-text{width:100%;min-height:88px;max-height:220px;resize:vertical;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;touch-action:pan-y;border:1px solid #cbd5e1;border-radius:10px;padding:10px 12px;font:inherit;line-height:1.7;background:#fff;color:#0f172a;pointer-events:auto}
.oex-desc-text:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.12)}
.oex-desc-text:disabled{opacity:.65;cursor:not-allowed;background:#f8fafc}
.oex-desc-qfiles{display:flex;flex-wrap:wrap;gap:6px}
.oex-desc-file-chip{display:inline-flex;align-items:center;gap:4px;max-width:100%;padding:2px 2px 2px 8px;border-radius:10px;background:#eff6ff;border:1px solid #bfdbfe}
.oex-desc-file{display:inline-flex;align-items:center;gap:6px;padding:4px 4px 4px 0;border-radius:8px;background:transparent;color:#1d4ed8;text-decoration:none;font-size:11.5px;font-weight:700;min-width:0;max-width:100%}
.oex-desc-file>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:160px}
.oex-desc-file-del{appearance:none;width:28px;height:28px;border:0;border-radius:8px;background:#fee2e2;color:#b91c1c;cursor:pointer;display:grid;place-items:center;flex:0 0 auto;font-size:11px}
.oex-desc-file-del:hover{background:#fecaca}
.oex-desc-file-del:disabled{opacity:.45;cursor:not-allowed}
.oex-desc-attach{display:flex;align-items:center;gap:12px;width:100%;margin:0;padding:10px 12px;border:1.5px dashed #93c5fd;border-radius:12px;background:linear-gradient(180deg,#f8fbff,#eff6ff);cursor:pointer;box-sizing:border-box;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}
.oex-desc-attach:hover{border-color:#2563eb;background:linear-gradient(180deg,#eff6ff,#dbeafe);box-shadow:0 6px 16px rgba(37,99,235,.1)}
.oex-desc-attach.is-disabled{opacity:.55;cursor:not-allowed;pointer-events:none}
.oex-desc-attach-icon{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:#2563eb;color:#fff;flex:0 0 auto;font-size:16px;box-shadow:0 8px 18px rgba(37,99,235,.25)}
.oex-desc-attach-copy{display:flex;flex-direction:column;gap:2px;min-width:0;text-align:right}
.oex-desc-attach-copy strong{font-size:12.5px;font-weight:800;color:#1e3a8a}
.oex-desc-attach-copy small{font-size:11px;font-weight:600;color:#64748b}
.oex-desc-hybrid-lead{flex:0 0 auto;margin:0 10px 10px;padding:10px 12px;border-radius:12px;background:#eff6ff;border:1px solid #bfdbfe;color:#1e40af;font-size:12.5px;line-height:1.7}
.oex-desc-float{position:fixed;left:18px;right:auto;bottom:78px;z-index:61;display:flex;flex-direction:column-reverse;align-items:flex-start;gap:10px;pointer-events:none}
.oex-desc-float>*{pointer-events:auto}
.oex-desc-float-btn{appearance:none;display:inline-flex;align-items:center;gap:8px;border:0;border-radius:999px;padding:13px 16px;background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;font:inherit;font-size:13px;font-weight:800;cursor:pointer;box-shadow:0 16px 36px rgba(37,99,235,.35);-webkit-tap-highlight-color:transparent}
.oex-desc-float-btn:hover{filter:brightness(1.05)}
.oex-desc-float-count{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:rgba(255,255,255,.22);font-style:normal;font-size:11px;font-weight:900}
.oex-desc-float-panel{width:min(360px,calc(100vw - 36px));max-height:min(60vh,480px);overflow:auto;-webkit-overflow-scrolling:touch;padding:14px;border-radius:18px;background:#fff;border:1px solid #e2e8f0;box-shadow:0 24px 60px rgba(15,23,42,.22)}
.oex-desc-float-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:12px}
.oex-desc-float-head strong{display:block;font-size:13.5px;font-weight:900;color:#0f172a}
.oex-desc-float-head p{margin:4px 0 0;font-size:12px;color:#64748b;line-height:1.6}
.oex-desc-float-close{width:34px;height:34px;border:0;border-radius:10px;background:#f1f5f9;color:#64748b;cursor:pointer;display:grid;place-items:center;flex:0 0 auto}
.oex-desc-float-close:hover{background:#fee2e2;color:#b91c1c}
.oex-desc-drop{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;width:100%;margin:0;padding:22px 14px;border:1.5px dashed #93c5fd;border-radius:14px;background:linear-gradient(180deg,#f8fbff,#eff6ff);cursor:pointer;text-align:center;box-sizing:border-box;overflow:hidden;-webkit-tap-highlight-color:transparent}
.oex-desc-drop input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;z-index:2;font-size:16px}
.oex-desc-drop-icon{width:48px;height:48px;border-radius:16px;display:grid;place-items:center;background:#2563eb;color:#fff;font-size:20px;margin-bottom:4px;box-shadow:0 10px 22px rgba(37,99,235,.25);pointer-events:none}
.oex-desc-drop b,.oex-desc-drop small{pointer-events:none}
.oex-desc-drop b{font-size:13px;font-weight:800;color:#1e3a8a}
.oex-desc-drop small{font-size:11.5px;font-weight:600;color:#64748b}
.oex-desc-drop.is-disabled{opacity:.55;cursor:not-allowed;pointer-events:none}
.oex-desc-drop.is-dragover{border-color:#2563eb;background:#dbeafe}
.oex-desc-drop-mobile{display:none}
.oex-grade-list{display:flex;flex-direction:column;gap:12px;margin-top:14px}
.oex-grade-card{border:1px solid #e2e8f0;border-radius:16px;padding:14px;background:#fff}
.oex-grade-card>header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.oex-grade-score{display:flex;align-items:center;gap:8px;margin:0}
.oex-grade-score input{width:110px;text-align:center}
.oex-grade-answer{background:#f8fafc;border-radius:12px;padding:12px;line-height:1.8}
.oex-grade-files{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.oex-grade-global-files{margin:12px 0;padding:12px;border-radius:14px;background:#f0fdf4;border:1px solid #bbf7d0}
.oex-desc-report-files{margin:14px 0;padding:12px;border-radius:14px;background:#f8fafc;border:1px solid #e2e8f0}
.oex-desc-file-list{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.oex-desc-file-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border:1px solid #e2e8f0;border-radius:10px;background:#fff}
.oex-desc-file-row a{display:inline-flex;align-items:center;gap:6px;color:#0f172a;text-decoration:none;font-size:12.5px;font-weight:700;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.oex-desc-file-row .mini-action,
.oex-desc-file-row [data-oex-desc-file-del]{width:32px;height:32px;border:0;border-radius:9px;background:#fee2e2;color:#b91c1c;cursor:pointer;display:grid;place-items:center;flex:0 0 auto}
.oex-org-grading-preview{margin-top:14px}
.oex-org-grading-card{border:1px solid #e2e8f0;border-radius:14px;padding:14px 16px;background:linear-gradient(180deg,#f8fafc,#fff)}
.oex-org-grading-card>header{display:flex;align-items:center;gap:8px;font-weight:900;color:#0f172a;margin-bottom:8px}
.oex-org-grading-card>p{margin:0;font-size:13px;line-height:1.7;color:#475569}
.oex-custom-grading{margin-top:14px;display:flex;flex-direction:column;gap:14px}
.oex-current-mark{position:absolute;right:4px;left:auto;top:50%;transform:translateY(-50%);width:0;height:0;border-top:6px solid transparent;border-bottom:6px solid transparent;border-left:8px solid #0f172a;border-right:0;opacity:0;pointer-events:none}
.oex-help-dialog.modern-dialog{width:min(760px,calc(100% - 24px));max-height:88vh;padding:0;border:0;border-radius:24px;background:transparent;overflow:visible}
.oex-help-dialog.modern-dialog::backdrop{background:rgba(15,23,42,.55);backdrop-filter:blur(10px)}
.oex-help-card{background:#fff;border-radius:24px;overflow:hidden;box-shadow:0 30px 70px rgba(15,23,42,.35);animation:dialog-in .25s ease}
.oex-help-card>header{display:flex;align-items:center;gap:12px;padding:18px 20px;border-bottom:1px solid #e8eef6;background:linear-gradient(135deg,#fffbeb,#fff 55%,#f8fafc)}
.oex-help-card>header>div{flex:1;min-width:0}
.oex-help-card>header h2{margin:0;font-size:16px;font-weight:900;color:#0f172a;line-height:1.35}
.oex-help-card>header p{margin:4px 0 0;font-size:12px;color:#64748b;line-height:1.5}
.oex-help-card .dialog-close{width:36px;height:36px;border:0;border-radius:12px;background:#f1f5f9;color:#64748b;cursor:pointer;display:grid;place-items:center;flex:0 0 auto;transition:background .15s ease,color .15s ease}
.oex-help-card .dialog-close:hover{background:#fee2e2;color:#b91c1c}
.oex-help-badge,.oex-help-card .oex-help-badge{width:44px;height:44px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#fff;box-shadow:0 10px 22px rgba(245,158,11,.28);flex:0 0 auto}
.oex-help-body{padding:16px 18px;max-height:min(62vh,520px);overflow:auto}
.oex-help-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.oex-help-panel{padding:14px;border-radius:16px;border:1px solid #e2e8f0;background:linear-gradient(180deg,#fff,#f8fafc)}
.oex-help-panel h3{margin:0 0 10px;font-size:13px;font-weight:900;display:flex;align-items:center;gap:8px;color:#0f172a}
.oex-help-panel h3 i{color:#d97706}
.oex-help-panel ul{margin:0;padding-right:16px;display:grid;gap:8px;font-size:12.5px;line-height:1.75;color:#334155}
.oex-help-card>footer{padding:14px 18px;border-top:1px solid #e8eef6;display:flex;justify-content:flex-end;background:#fff}
@media(max-width:1100px){
  .oex-stat-grid,.oex-action-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .oex-charts-row,.oex-report-charts{grid-template-columns:1fr}
  .oex-take-body{flex-direction:column;gap:10px;min-height:auto;padding-bottom:calc(120px + env(safe-area-inset-bottom,0px))}
  .oex-take-side{width:100%;max-height:none;position:static;display:contents}
  .oex-take-main{order:2;overflow:visible;min-height:0;flex:0 0 auto;padding-bottom:12px}
  .oex-take-side > [data-oex-take-timer],
  .oex-take [data-oex-take-timer]{order:1;position:sticky;top:0;z-index:18;width:100%;margin:0}
  .oex-side-btns{display:none}
  .oex-take-toggles{order:3}
  .oex-sheet{order:4}
  .oex-sheet-scroll{padding-bottom:calc(24px + env(safe-area-inset-bottom,0px))}
  .oex-q-list,.oex-typed-list{padding-bottom:calc(24px + env(safe-area-inset-bottom,0px))}
  .oex-take.is-descriptive .oex-take-side{max-height:none}
  .oex-take.is-descriptive .oex-sheet{max-height:min(68vh,620px)}
  .oex-take.is-descriptive .oex-sheet-scroll{padding-bottom:calc(48px + env(safe-area-inset-bottom,0px))}
  .oex-take.is-descriptive .oex-desc-text{max-height:min(34vh,220px);resize:none}
  .oex-pdf-frame-wrap{min-height:0;flex:0 0 auto;height:auto;overflow:visible}
  .oex-pdf-system .oex-pdf-stage.is-zoomed,.oex-pdf-frame-wrap.is-system .oex-pdf-stage.is-zoomed{max-height:min(70vh,560px);min-height:min(45vh,320px)}
}
@media(max-width:1100px){
  .oex-participants-panel .oex-participants-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .oex-participants-table{min-width:1080px;font-size:11.5px}
  .oex-participants-table .user-cell{max-width:none}
  .oex-participants-table .user-cell>span{max-width:none}
}
@media(max-width:680px){
  .oex-stat-grid,.oex-action-grid{grid-template-columns:1fr}
  .oex-take-meta{width:100%}
  .oex-participants-table{min-width:980px}
}
.oex-typed-layout{display:grid;grid-template-columns:56px minmax(0,1fr);gap:14px;align-items:start}
.oex-typed-num{width:56px;min-height:56px;border-radius:18px;display:grid;place-items:center;gap:4px;background:linear-gradient(160deg,#ecfeff,#e0f2fe);color:#0e7490;font-size:18px;font-weight:900;border:1px solid #a5f3fc}
.oex-typed-num i{font-size:11px;color:#0369a1}
.oex-typed-main{min-width:0}
.oex-typed-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;justify-items:center;margin-top:12px}
.oex-typed-opt{width:100%;max-width:220px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:12px 10px;border-radius:16px;border:1.5px solid #f9a8d4;background:#fff;color:#9d174d;cursor:pointer;transition:.2s}
.oex-typed-opt.is-selected{background:#db2777;border-color:#db2777;color:#fff}
.oex-typed-opt .oex-opt-badge{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-weight:900;border:1.5px solid currentColor}
.oex-typed-opt .oex-opt-body{font-size:13px;line-height:1.6;width:100%}
.oex-typed-opt img{max-width:100%;max-height:120px;border-radius:10px;object-fit:contain}
.oex-sheet-flag{width:26px;height:28px;border:1px solid #fed7aa;border-radius:7px;background:#fff7ed;color:#c2410c;cursor:pointer;display:grid;place-items:center;font-size:11px;flex:0 0 auto}
.oex-sheet-flag:hover{background:#ffedd5}
.oex-sheet-flag.is-on{background:#fb923c;border-color:#ea580c;color:#fff}
.oex-sheet-row.is-flagged{background:linear-gradient(180deg,#fff7ed,#fff)}
.oex-sheet-row.is-flagged.is-current{background:linear-gradient(180deg,#ffedd5,#f8fafc)}
/* exit fancy variants retired ? compact pink exit used instead */
.oex-stat-grid-6{grid-template-columns:repeat(3,minmax(0,1fr))}
.oex-status-form{margin-top:8px}
.oex-status-btn{appearance:none;border:0;border-radius:999px;padding:6px 12px;font-size:11px;font-weight:800;cursor:pointer}
.oex-status-btn.is-on{background:#fee2e2;color:#b91c1c}
.oex-status-btn.is-off{background:#dcfce7;color:#15803d}
.oex-manage-ops{margin-top:14px}
.oex-back-btn.is-fancy{padding:8px 10px;border-radius:16px;background:#fff;border:1px solid #e2e8f0;box-shadow:0 10px 24px rgba(15,23,42,.05)}
.oex-pdf-stage{flex:0 0 auto;min-height:0;overflow:visible;-webkit-overflow-scrolling:touch;overscroll-behavior:auto;background:#0f172a;display:flex;justify-content:safe center;align-items:flex-start;position:relative;touch-action:pan-x pan-y}
.oex-pdf-stage .oex-pdf-frame{width:100%;height:100%;min-height:0;border:0;transform:none;max-width:none}
.oex-opt-chip{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;padding:10px;border-radius:14px;border:1px solid #fbcfe8;background:#fff}
.oex-opt-chip.is-correct{border-color:#db2777;box-shadow:0 0 0 2px rgba(219,39,119,.15)}
.oex-opt-pick{appearance:none;border:0;background:transparent;cursor:pointer;padding:0}
.oex-opt-img{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#f1f5f9;color:#475569;cursor:pointer;position:relative;overflow:hidden}
.oex-opt-img input{position:absolute;inset:0;opacity:0;cursor:pointer}
.oex-opt-preview{width:100%;max-height:72px;object-fit:contain;border-radius:10px;grid-column:1/-1}
@media(max-width:900px){
  .oex-typed-options{grid-template-columns:repeat(2,minmax(0,1fr))}
  .oex-help-grid{grid-template-columns:1fr}
  .oex-stat-grid-6{grid-template-columns:1fr 1fr}
  .oex-typed-layout{grid-template-columns:44px minmax(0,1fr)}
}
@media(max-width:680px){
  .oex-stat-grid-6{grid-template-columns:repeat(2,minmax(0,1fr))}
  .oex-pdf-frame-wrap{min-height:0}
  .oex-pdf-frame-wrap.is-system:not(.is-pdf-zoomed){min-height:0;height:auto}
  .oex-pdf-frame-wrap.is-system.is-pdf-zoomed{min-height:min(45vh,320px)}
}


/* Start confirm dialog */
.oex-start-dialog{border:0;border-radius:22px;padding:0;max-width:520px;width:calc(100% - 24px);box-shadow:0 28px 60px rgba(15,23,42,.28)}
.oex-start-dialog::backdrop{background:rgba(15,23,42,.45);backdrop-filter:blur(4px)}
.oex-start-body{display:grid;gap:14px}
.oex-start-meta{display:grid;gap:8px;margin:0}
.oex-start-meta>div{display:grid;grid-template-columns:88px 1fr;gap:8px;padding:10px 12px;border-radius:14px;background:#f0fdfa;border:1px solid #ccfbf1}
.oex-start-meta dt{margin:0;font-size:11px;font-weight:800;color:#0f766e}
.oex-start-meta dd{margin:0;font-size:13px;font-weight:700;color:#134e4a}
.oex-start-desc{padding:14px;border-radius:16px;background:linear-gradient(180deg,#fff,#f8fafc);border:1px solid #e2e8f0}
.oex-start-desc strong{display:block;margin-bottom:8px;font-size:13px;color:#0f172a}
.oex-start-desc p{margin:0;font-size:13.5px;line-height:1.9;font-weight:800;color:#1e293b}
.oex-start-warn{display:flex;gap:8px;align-items:flex-start;margin:0;padding:10px 12px;border-radius:12px;background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;font-size:12px;font-weight:700}
.oex-start-dialog .dialog-actions{display:flex;justify-content:flex-end;gap:10px;padding:0 18px 18px}
.dialog-icon.teal{background:linear-gradient(135deg,#0d9488,#0891b2);color:#fff}

/* ===== Online Exam list / wizard (oex- extended) ===== */
[data-oex-page],[data-oex-wizard],.oex-card{--org-1:#0e7490;--org-2:#0284c7;--org-3:#a5f3fc}
.oex-hero .oex-create-btn{animation:oex-pulse 2.4s ease-in-out infinite}
@keyframes oex-pulse{0%,100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--org-1,#0e7490) 35%,transparent)}50%{box-shadow:0 0 0 10px transparent}}
.oex-create-btn{display:inline-flex;align-items:center;gap:8px}

/* Format modal ? test vs descriptive */
.oex-format-modal,.oex-format-dialog{border:0;padding:0;background:transparent;max-width:min(640px,calc(100vw - 24px))}
.oex-format-modal::backdrop,.oex-format-dialog::backdrop{background:rgba(15,23,42,.55);backdrop-filter:blur(6px)}
.oex-format-modal .dialog-card,.oex-format-dialog .dialog-card{border-radius:24px;overflow:hidden;border:1px solid #e2e8f0;box-shadow:0 28px 64px rgba(14,116,144,.22);background:#fff}
.oex-format-modal header,.oex-format-dialog header{display:flex;align-items:flex-start;gap:14px;padding:18px 18px 8px}
.oex-format-modal .dialog-icon,.oex-format-dialog .dialog-icon{width:48px;height:48px;border-radius:16px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,#0e7490,#0284c7);box-shadow:0 12px 24px rgba(14,116,144,.28);flex:0 0 auto}
.oex-format-picks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:8px 18px 20px}
.oex-format-card{display:grid;gap:8px;justify-items:start;padding:18px 16px;border-radius:20px;border:1.5px solid #e2e8f0;text-decoration:none;color:inherit;background:linear-gradient(180deg,#fff,#f8fafc);transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}
.oex-format-card:hover{transform:translateY(-3px);box-shadow:0 18px 36px rgba(14,116,144,.14)}
.oex-format-card.is-test{border-color:#bae6fd}
.oex-format-card.is-test:hover{border-color:#0ea5e9;background:linear-gradient(180deg,#fff,#f0f9ff)}
.oex-format-card.is-desc{border-color:#fecdd3;opacity:.92}
.oex-format-card.is-desc:hover{border-color:#fb7185;background:linear-gradient(180deg,#fff,#fff1f2)}
.oex-format-icon{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;color:#fff;font-size:18px}
.oex-format-card.is-test .oex-format-icon{background:linear-gradient(135deg,#0e7490,#0284c7);box-shadow:0 10px 20px rgba(14,116,144,.28)}
.oex-format-card.is-desc .oex-format-icon{background:linear-gradient(135deg,#db2777,#e11d48);box-shadow:0 10px 20px rgba(219,39,119,.24)}
.oex-format-card strong{font-size:15px;font-weight:900;color:#0f172a}
.oex-format-card small{font-size:12px;line-height:1.6;color:#64748b;font-weight:600}

/* Filter panel */
.oex-filter-panel{padding:0;overflow:hidden;border:1px solid color-mix(in srgb,var(--org-1,#0e7490) 14%,#e2e8f0);background:#fff}
.oex-filter-toggle{appearance:none;width:100%;display:flex;align-items:center;gap:12px;padding:14px 16px;border:0;background:linear-gradient(180deg,#fff,color-mix(in srgb,var(--org-3,#a5f3fc) 22%,#fff));cursor:pointer;font:inherit;text-align:right;color:#0f172a}
.oex-filter-toggle-icon{width:40px;height:40px;border-radius:14px;display:grid;place-items:center;flex:0 0 auto;color:#fff;background:linear-gradient(135deg,var(--org-1,#0e7490),var(--org-2,#0284c7));box-shadow:0 10px 20px color-mix(in srgb,var(--org-1,#0e7490) 28%,transparent)}
.oex-filter-toggle-copy{display:grid;gap:2px;flex:1;min-width:0}
.oex-filter-toggle-copy strong{font-size:13.5px}
.oex-filter-toggle-copy small{font-size:11px;color:#64748b;font-weight:700}
.oex-filter-chevron{color:#64748b;transition:transform .25s ease}
.oex-filter-panel.is-open .oex-filter-chevron{transform:rotate(180deg)}
.oex-filter-body{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;align-items:end;padding:4px 16px 16px;border-top:1px solid color-mix(in srgb,var(--org-3,#a5f3fc) 40%,#e2e8f0);background:linear-gradient(180deg,color-mix(in srgb,var(--org-3,#a5f3fc) 12%,#fff),#fff)}
.oex-filter-body[hidden]{display:none!important}
.oex-filter-body>label{display:grid;gap:6px;font-size:12px;color:#64748b;font-weight:700;min-width:0}
.oex-filter-body .search-submit-btn,.oex-filter-body .filter-reset-btn{min-height:42px}

/* Child switch */
.oex-child-switch{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.oex-child-chip{padding:8px 14px;border-radius:999px;border:1px solid color-mix(in srgb,var(--org-1,#0e7490) 18%,#e2e8f0);background:color-mix(in srgb,var(--org-3,#a5f3fc) 28%,#fff);color:#334155;font-size:12px;font-weight:800;text-decoration:none;transition:.2s}
.oex-child-chip.is-active,.oex-child-chip:hover{background:linear-gradient(135deg,var(--org-1,#0e7490),var(--org-2,#0284c7));color:#fff;border-color:transparent}

/* Exam cards */
.oex-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:16px;align-items:start}
.oex-card{border-radius:28px;overflow:visible;border:1px solid color-mix(in srgb,var(--org-1) 18%,#e2e8f0);background:#fff;box-shadow:0 20px 44px color-mix(in srgb,var(--org-1) 14%,transparent);animation:oex-card-in .55s ease both;animation-delay:calc(var(--i,1)*70ms);transition:transform .28s ease,box-shadow .28s ease,z-index 0s,border-color .2s ease;display:flex;flex-direction:column;position:relative;z-index:1}
.oex-card.is-bulk-selected,.ohw-card.is-bulk-selected{border-color:color-mix(in srgb,var(--org-1,#0e7490) 55%,#38bdf8);box-shadow:0 0 0 2px color-mix(in srgb,var(--org-1,#0e7490) 28%,transparent),0 20px 44px color-mix(in srgb,var(--org-1,#0e7490) 14%,transparent)}
.oex-card.is-disabled-item,.ohw-card.is-disabled-item{opacity:.78;filter:grayscale(.12)}
.oex-card > .ol-bulk-pick,.ohw-card > .ol-bulk-pick{position:absolute;top:16px;inset-inline-start:16px;z-index:6}
.oex-card:has(> .ol-bulk-pick) .oex-cover-top,.ohw-card:has(> .ol-bulk-pick) .ohw-cover-top{padding-inline-start:44px}
.ol-bulk-pick{position:relative;z-index:3;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:30px;height:30px;margin:0;border-radius:11px;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.28);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 6px 14px rgba(15,23,42,.1);cursor:pointer;transition:background .18s ease,border-color .18s ease,transform .18s ease,box-shadow .18s ease}
.ol-bulk-pick:hover{background:rgba(255,255,255,.28);border-color:rgba(255,255,255,.42);transform:translateY(-1px)}
.ol-bulk-pick input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer;z-index:2}
.ol-bulk-pick-box{display:grid;place-items:center;width:16px;height:16px;border-radius:5px;border:1.5px solid rgba(255,255,255,.85);background:transparent;color:transparent;font-size:9px;line-height:1;transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease}
.ol-bulk-pick:has(input:checked),.ol-bulk-pick.is-checked{background:rgba(255,255,255,.92);border-color:rgba(255,255,255,.95);box-shadow:0 8px 16px rgba(15,23,42,.16)}
.ol-bulk-pick:has(input:checked) .ol-bulk-pick-box,.ol-bulk-pick.is-checked .ol-bulk-pick-box{background:linear-gradient(135deg,var(--org-1,#0e7490),var(--org-2,#0284c7));border-color:transparent;color:#fff;transform:scale(1.05)}
.ol-bulk-pick:has(input:focus-visible){outline:2px solid rgba(255,255,255,.7);outline-offset:2px}
.ol-bulk-bar{position:sticky;top:12px;z-index:30;margin:0 0 14px;padding:0;border:0;background:transparent}
.ol-bulk-bar[hidden]{display:none!important}
.ol-bulk-bar-inner{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:12px 14px;border-radius:18px;border:1px solid color-mix(in srgb,var(--org-1,#0e7490) 22%,#bae6fd);background:linear-gradient(135deg,color-mix(in srgb,var(--org-3,#a5f3fc) 35%,#fff),#fff);box-shadow:0 16px 36px color-mix(in srgb,var(--org-1,#0e7490) 12%,transparent)}
.ol-bulk-select-all{position:relative;display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:800;color:#0f172a;cursor:pointer;user-select:none}
.ol-bulk-select-all input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer;z-index:2}
.ol-bulk-select-all::before{content:"";width:18px;height:18px;border-radius:6px;border:1.5px solid color-mix(in srgb,var(--org-1,#0e7490) 35%,#94a3b8);background:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.8);background-repeat:no-repeat;background-position:center;background-size:12px;transition:.16s ease}
.ol-bulk-select-all:has(input:checked)::before,.ol-bulk-select-all.is-checked::before{border-color:transparent;background-color:var(--org-1,#0e7490);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 8.5 6.5 11.5 12.5 4.5'/%3E%3C/svg%3E")}
.ol-bulk-select-all:has(input:indeterminate)::before,.ol-bulk-select-all.is-indeterminate::before{border-color:transparent;background-color:var(--org-2,#0284c7);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M4 8h8'/%3E%3C/svg%3E")}
.ol-bulk-count{display:inline-flex;align-items:baseline;gap:6px;padding:6px 10px;border-radius:999px;background:color-mix(in srgb,var(--org-3,#a5f3fc) 55%,#e0f2fe);color:var(--org-1,#0369a1);font-size:12px;font-weight:800}
.ol-bulk-count b{font-size:15px}
.ol-bulk-actions{display:inline-flex;flex-wrap:wrap;gap:8px;margin-inline-start:auto}
.ol-bulk-btn{appearance:none;display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 12px;border-radius:12px;border:1.5px solid rgba(255,255,255,.35);background:linear-gradient(180deg,rgba(255,255,255,.95),rgba(248,250,252,.9));color:#334155;font:inherit;font-size:12px;font-weight:800;cursor:pointer;box-shadow:0 6px 14px rgba(15,23,42,.06);transition:.18s ease}
.ol-bulk-btn.is-enable{color:#047857;border-color:#a7f3d0;background:linear-gradient(180deg,#fff,#ecfdf5)}
.ol-bulk-btn.is-disable{color:#b45309;border-color:#fde68a;background:linear-gradient(180deg,#fff,#fffbeb)}
.ol-bulk-btn.is-copy{color:#0f766e;border-color:#99f6e4;background:linear-gradient(180deg,#fff,#f0fdfa)}
.ol-bulk-btn.is-delete{color:#dc2626;border-color:#fecdd3;background:linear-gradient(180deg,#fff,#fff1f2)}
.ol-bulk-btn:hover{transform:translateY(-1px);box-shadow:0 8px 16px rgba(15,23,42,.08)}
.ol-bulk-clear{appearance:none;width:36px;height:36px;border-radius:12px;border:1px solid #e2e8f0;background:#fff;color:#64748b;cursor:pointer}
@media (max-width:720px){
  .ol-bulk-bar-inner{gap:10px}
  .ol-bulk-actions{width:100%;margin-inline-start:0}
  .ol-bulk-btn{flex:1 1 calc(50% - 8px);justify-content:center}
}
.oex-card:hover,.oex-card:focus-within{z-index:8}
.oex-card:hover{transform:translateY(-5px);box-shadow:0 28px 56px color-mix(in srgb,var(--org-1) 22%,transparent)}
@keyframes oex-card-in{from{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:none}}
.oex-card-cover{position:relative;display:flex;flex-direction:column;text-decoration:none;color:inherit;overflow:hidden;min-height:270px;border-radius:28px 28px 0 0}
.oex-cover-hero{position:relative;padding:18px 18px 20px;color:#fff;background:linear-gradient(135deg,var(--org-1) 0%,var(--org-2) 58%,color-mix(in srgb,var(--org-3) 55%,var(--org-1)) 120%);overflow:hidden;isolation:isolate}
.oex-cover-shine{position:absolute;inset:-20% auto auto -10%;width:180px;height:180px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.34),transparent 68%);pointer-events:none;animation:oex-orb 7s ease-in-out infinite}
.oex-cover-wave{position:absolute;inset:auto -8% -42% auto;width:220px;height:160px;border-radius:45% 55% 40% 60%;background:rgba(255,255,255,.12);pointer-events:none;animation:oex-orb 9s ease-in-out infinite reverse}
.oex-cover-badge{position:absolute;left:16px;top:16px;z-index:2;width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.28);backdrop-filter:blur(8px);font-size:18px}
@keyframes oex-orb{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(14px,-10px) scale(1.06)}}
.oex-cover-top{position:relative;z-index:1;display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;padding-left:52px}
.oex-class-tag,.oex-scope-tag{display:inline-flex;align-items:center;padding:5px 11px;border-radius:999px;font-size:11px;font-weight:800;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.28);backdrop-filter:blur(8px);color:#fff}
.oex-subject-title{position:relative;z-index:1;margin:0;font-size:22px;line-height:1.35;font-weight:900;letter-spacing:-.02em;text-shadow:0 10px 24px rgba(15,23,42,.18)}
.oex-exam-title{position:relative;z-index:1;margin:8px 0 0;font-size:13px;line-height:1.5;font-weight:600;opacity:.92}
.oex-cover-body{position:relative;z-index:1;display:grid;gap:12px;padding:14px 16px 16px;background:linear-gradient(180deg,color-mix(in srgb,var(--org-3) 22%,#fff),#fff);flex:1}
.oex-schedule-box{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:8px;align-items:stretch;padding:12px;border-radius:20px;background:radial-gradient(120% 90% at 0% 0%,color-mix(in srgb,var(--org-3) 40%,transparent),transparent 55%),linear-gradient(180deg,#fff,color-mix(in srgb,var(--org-3) 16%,#f8fafc));border:1.5px solid color-mix(in srgb,var(--org-1) 16%,#e2e8f0);box-shadow:0 14px 30px color-mix(in srgb,var(--org-1) 12%,transparent)}
.oex-schedule-item{display:grid;min-width:0;padding:12px;border-radius:16px;background:#fff;border:1.5px solid #e2e8f0;box-shadow:0 8px 18px rgba(15,23,42,.04)}
.oex-schedule-item.is-start{border-color:color-mix(in srgb,var(--org-2) 42%,#e2e8f0);background:linear-gradient(160deg,#fff 35%,color-mix(in srgb,var(--org-3) 34%,#fff))}
.oex-schedule-item.is-end{border-color:#7dd3fc;background:linear-gradient(160deg,#fff 35%,#f0f9ff)}
.oex-schedule-item.is-end.is-expired{border-color:#fca5a5;background:linear-gradient(160deg,#fff 35%,#fef2f2)}
.oex-schedule-label{display:inline-flex;align-items:center;gap:6px;width:fit-content}
.oex-schedule-icon{width:18px;height:18px;border-radius:6px;display:grid;place-items:center;flex:0 0 auto;font-size:8px;color:#fff;box-shadow:0 4px 10px rgba(15,23,42,.12)}
.oex-schedule-item.is-start .oex-schedule-icon{background:linear-gradient(135deg,var(--org-1),var(--org-2))}
.oex-schedule-item.is-end .oex-schedule-icon{background:linear-gradient(135deg,#0369a1,#0ea5e9)}
.oex-schedule-item.is-end.is-expired .oex-schedule-icon{background:linear-gradient(135deg,#dc2626,#ef4444)}
.oex-schedule-copy{display:grid;gap:3px;min-width:0}
.oex-schedule-copy small{font-size:10.5px;font-weight:900;color:#64748b}
.oex-schedule-copy strong{font-size:14px;font-weight:900;color:#0f172a;line-height:1.35;overflow-wrap:anywhere}
.oex-schedule-copy em{font-style:normal;display:inline-flex;width:fit-content;margin-top:2px;padding:3px 8px;border-radius:999px;font-size:11.5px;font-weight:900;font-variant-numeric:tabular-nums;background:color-mix(in srgb,var(--org-3) 42%,#fff);color:var(--org-1)}
.oex-schedule-item.is-end .oex-schedule-copy em{background:#e0f2fe;color:#0369a1}
.oex-schedule-item.is-end.is-expired .oex-schedule-copy em{background:#fee2e2;color:#b91c1c}
.oex-schedule-arrow{display:grid;place-items:center;width:28px;height:28px;border-radius:999px;align-self:center;color:var(--org-1);font-size:13px;background:color-mix(in srgb,var(--org-3) 45%,#fff);border:1px solid color-mix(in srgb,var(--org-1) 14%,#e2e8f0)}
.oex-duration-chip{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:14px;font-size:12px;font-weight:800;color:var(--org-1);background:color-mix(in srgb,var(--org-3) 36%,#fff);border:1px solid color-mix(in srgb,var(--org-1) 14%,#e2e8f0)}
.oex-duration-chip b{font-variant-numeric:tabular-nums}
.oex-teacher{display:flex;align-items:center;gap:8px;min-width:0;font-size:11.5px;font-weight:700;color:#475569}
.oex-teacher img{width:24px;height:24px;border-radius:50%;object-fit:cover;border:2px solid #fff;box-shadow:0 0 0 1px color-mix(in srgb,var(--org-1) 22%,#e2e8f0);flex:0 0 auto}
.oex-teacher>i{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--org-3) 55%,#fff);color:var(--org-1);font-size:11px;flex:0 0 auto}
.oex-teacher-copy{display:grid;gap:2px;min-width:0;flex:1}
.oex-teacher-copy b{font-size:12px;font-weight:800;color:#334155;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.oex-teacher-copy small{font-size:10px;font-weight:700;color:#64748b;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Card countdown timers (list) */
.oex-card .oex-timer,.oex-timer[data-oex-timer]{position:relative;z-index:1;margin-top:2px;display:grid;gap:8px;padding:10px;border-radius:18px;background:#fff;border:1px solid color-mix(in srgb,var(--org-1) 12%,#e2e8f0);box-shadow:0 10px 24px color-mix(in srgb,var(--org-1) 8%,transparent)}
.oex-timer-caption{font-size:11px;font-weight:800;color:#64748b;text-align:center;letter-spacing:.01em}
.oex-timer.is-until-start{border-color:color-mix(in srgb,#0ea5e9 22%,#e2e8f0);background:linear-gradient(180deg,#fff,#f0f9ff)}
.oex-timer.is-until-start .oex-timer-caption{color:#0369a1}
.oex-card.is-upcoming{box-shadow:0 14px 28px rgba(14,165,233,.08)}
.oex-timer-units[data-oex-timer-units]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;transition:opacity .45s ease,filter .45s ease}
.oex-timer-units[data-oex-timer-units].is-faded{opacity:.28;filter:grayscale(.55);pointer-events:none}
.oex-timer[data-oex-timer] .oex-timer-unit{display:grid;gap:3px;justify-items:center;padding:8px 4px;border-radius:14px;background:linear-gradient(180deg,#fff,color-mix(in srgb,var(--org-3) 28%,#fff));border:1px solid color-mix(in srgb,var(--org-1) 12%,#fff);box-shadow:inset 0 1px 0 #fff,0 6px 14px color-mix(in srgb,var(--org-1) 8%,transparent);min-width:0}
.oex-timer[data-oex-timer] .oex-timer-unit b{font-size:15px;font-weight:900;letter-spacing:.02em;color:color-mix(in srgb,var(--org-1) 85%,#0f172a);line-height:1;font-variant-numeric:tabular-nums}
.oex-timer[data-oex-timer] .oex-timer-unit small{font-size:9px;font-weight:800;color:#64748b}
.oex-timer[data-oex-timer] .oex-timer-status{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:8px 12px;border-radius:14px;font-size:12px;font-weight:800;text-align:center;background:color-mix(in srgb,var(--org-3) 35%,#fff);color:var(--org-1)}
.oex-timer[data-oex-timer].is-done{border-color:#fecaca;background:linear-gradient(180deg,#fff,#fef2f2)}
.oex-timer[data-oex-timer].is-done .oex-timer-status{background:linear-gradient(135deg,#fee2e2,#fecaca);color:#b91c1c;border:1px solid #fca5a5;box-shadow:0 8px 20px rgba(185,28,28,.14);animation:oex-deadline-blink 1.15s ease-in-out infinite}
@keyframes oex-deadline-blink{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(1.02)}}
@media(prefers-reduced-motion:reduce){.oex-timer[data-oex-timer].is-done .oex-timer-status,.oex-hero .oex-create-btn,.oex-cover-shine,.oex-cover-wave{animation:none}}

.oex-card-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;background:#fff;border-top:1px solid color-mix(in srgb,var(--org-3) 40%,#fff);flex-wrap:wrap;position:relative;z-index:4;overflow:visible;border-radius:0 0 28px 28px}
.oex-card-actions{display:inline-grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);align-items:stretch;gap:6px;margin-inline-start:auto;min-width:min(100%,280px);position:relative;z-index:5;overflow:visible}
.oex-card-actions form{margin:0;display:contents}
.oex-card-btn{appearance:none;position:relative;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:38px;width:100%;padding:0 10px;border-radius:12px;border:1.5px solid #e2e8f0;background:#fff;color:#334155;font:inherit;font-size:11.5px;font-weight:800;text-decoration:none;cursor:pointer;box-shadow:0 6px 14px rgba(15,23,42,.04);transition:transform .18s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease,color .18s ease;white-space:nowrap;z-index:1}
.oex-card-btn i{font-size:12px}
.oex-card-btn.is-start,.oex-card-btn.is-manage{color:var(--org-1);border-color:color-mix(in srgb,var(--org-1) 22%,#e2e8f0);background:linear-gradient(180deg,#fff,color-mix(in srgb,var(--org-3) 28%,#fff))}
.oex-card-btn.is-edit{color:#0369a1;border-color:#bae6fd;background:linear-gradient(180deg,#fff,#f0f9ff)}
.oex-card-btn.is-copy{color:#0f766e;border-color:#99f6e4;background:linear-gradient(180deg,#fff,#f0fdfa)}
.oex-card-btn.is-delete{color:#dc2626;border-color:#fecdd3;background:linear-gradient(180deg,#fff,#fff1f2)}
.oex-card-btn.is-report{color:#0f766e;border-color:#99f6e4;background:linear-gradient(180deg,#fff,#f0fdfa)}
.oex-card-btn.is-report-cta{
  min-height:46px;min-width:168px;padding:6px 12px 6px 10px;gap:10px;justify-content:flex-start;
  border:0;border-radius:14px;overflow:hidden;isolation:isolate;
  color:#fff;background:linear-gradient(135deg,#0d9488 0%,#059669 55%,#047857 100%);
  box-shadow:0 10px 22px rgba(5,150,105,.28),inset 0 1px 0 rgba(255,255,255,.28);
  animation:oex-report-cta-idle 2.8s ease-in-out infinite
}
.oex-card-btn.is-report-cta .oex-report-cta-glow{
  position:absolute;inset:-40% -30%;z-index:0;pointer-events:none;
  background:radial-gradient(circle at 30% 40%,rgba(255,255,255,.35),transparent 55%),
             linear-gradient(115deg,transparent 35%,rgba(255,255,255,.28) 48%,transparent 62%);
  transform:translateX(35%);animation:oex-report-cta-shine 3.4s ease-in-out infinite
}
.oex-card-btn.is-report-cta .oex-report-cta-icon{
  position:relative;z-index:1;flex:0 0 auto;width:30px;height:30px;border-radius:10px;
  display:grid;place-items:center;background:rgba(255,255,255,.2);backdrop-filter:blur(4px);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.25);animation:oex-report-cta-bob 2.2s ease-in-out infinite
}
.oex-card-btn.is-report-cta .oex-report-cta-icon i{font-size:13px;color:#fff}
.oex-card-btn.is-report-cta .oex-report-cta-copy{
  position:relative;z-index:1;display:flex;flex-direction:column;align-items:flex-start;gap:1px;min-width:0;flex:1
}
.oex-card-btn.is-report-cta .oex-report-cta-copy strong{font-size:12.5px;font-weight:900;line-height:1.15;letter-spacing:-.01em}
.oex-card-btn.is-report-cta .oex-report-cta-copy small{font-size:9.5px;font-weight:700;opacity:.88;line-height:1.1}
.oex-card-btn.is-report-cta .oex-report-cta-arrow{
  position:relative;z-index:1;font-size:11px;opacity:.85;margin-inline-start:auto;
  transition:transform .25s ease,opacity .25s ease
}
.oex-card-btn.is-report-cta:hover{
  transform:translateY(-2px) scale(1.02);
  box-shadow:0 14px 28px rgba(5,150,105,.36),inset 0 1px 0 rgba(255,255,255,.35);
  filter:saturate(1.08)
}
.oex-card-btn.is-report-cta:hover .oex-report-cta-arrow{transform:translateX(-4px);opacity:1}
.oex-card-btn.is-report-cta:hover .oex-report-cta-icon{animation:oex-report-cta-pop .45s ease}
.oex-card-btn.is-report-cta:active{transform:translateY(0) scale(.99)}
@keyframes oex-report-cta-idle{
  0%,100%{box-shadow:0 10px 22px rgba(5,150,105,.28),inset 0 1px 0 rgba(255,255,255,.28)}
  50%{box-shadow:0 12px 26px rgba(5,150,105,.38),0 0 0 5px rgba(16,185,129,.12),inset 0 1px 0 rgba(255,255,255,.28)}
}
@keyframes oex-report-cta-shine{
  0%,100%{transform:translateX(40%) rotate(8deg)}
  50%{transform:translateX(-45%) rotate(8deg)}
}
@keyframes oex-report-cta-bob{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-2px)}
}
@keyframes oex-report-cta-pop{
  0%{transform:scale(1)}
  45%{transform:scale(1.12) rotate(-6deg)}
  100%{transform:scale(1)}
}
@media (prefers-reduced-motion:reduce){
  .oex-card-btn.is-report-cta,
  .oex-card-btn.is-report-cta .oex-report-cta-glow,
  .oex-card-btn.is-report-cta .oex-report-cta-icon{animation:none}
}
.oex-card-btn.is-users{color:#1d4ed8;border-color:#bfdbfe;background:linear-gradient(180deg,#fff,#eff6ff)}
.oex-card-btn.is-print{color:#7c3aed;border-color:#ddd6fe;background:linear-gradient(180deg,#fff,#f5f3ff)}
.oex-card-btn.is-disabled{opacity:.55;cursor:not-allowed;pointer-events:none}
.oex-card-btn:hover:not(.is-disabled){transform:translateY(-1px);box-shadow:0 10px 20px rgba(15,23,42,.08);z-index:6}
.oex-card-actions{min-width:min(100%,340px)}

.ol-copy-dialog{width:min(640px,calc(100% - 24px))}
.ol-copy-card{overflow:hidden}
.ol-copy-head{display:flex;align-items:center;gap:14px;padding:18px 20px;border-bottom:1px solid #e8eef6;background:linear-gradient(135deg,#f8fbff 0%,#fff 55%,#f0fdfa 100%)}
.ol-copy-head>div{flex:1;min-width:0}
.ol-copy-head h2{margin:0;font-size:16px;font-weight:900;color:#0f172a}
.ol-copy-head p{margin:4px 0 0;font-size:11.5px;color:#64748b;line-height:1.6}
.ol-copy-badge{width:46px;height:46px;border-radius:16px;display:grid;place-items:center;flex:0 0 auto;color:#fff;background:linear-gradient(145deg,#0d9488,#0891b2);box-shadow:0 12px 24px rgba(13,148,136,.28)}
.ol-copy-body{padding:16px 18px 18px;background:#fbfcfe}
.ol-copy-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.ol-copy-toolbar-label{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:800;color:#334155}
.ol-copy-toolbar-label i{color:#0d9488}
.ol-copy-toolbar-actions{display:inline-flex;gap:6px}
.ol-copy-chip{appearance:none;display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:999px;border:1px solid #dbeafe;background:#fff;color:#1d4ed8;font:inherit;font-size:11px;font-weight:800;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease}
.ol-copy-chip:hover{transform:translateY(-1px);box-shadow:0 8px 16px rgba(37,99,235,.12);border-color:#93c5fd}
.ol-copy-chip.is-muted{color:#64748b;border-color:#e2e8f0;background:#f8fafc}
.ol-copy-chip.is-muted:hover{border-color:#cbd5e1;box-shadow:0 8px 16px rgba(15,23,42,.06)}
.ol-copy-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.ol-copy-option{position:relative;display:grid;grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:10px;padding:12px 12px 12px 14px;border-radius:16px;border:1.5px solid #e2e8f0;background:#fff;cursor:pointer;overflow:hidden;isolation:isolate;transition:transform .2s cubic-bezier(.22,1,.36,1),border-color .2s ease,box-shadow .2s ease,background .2s ease}
.ol-copy-option::before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--ol-tone,#94a3b8);opacity:.35;transition:opacity .2s ease}
.ol-copy-option:hover{transform:translateY(-2px);border-color:#cbd5e1;box-shadow:0 12px 28px rgba(15,23,42,.07)}
.ol-copy-option input{position:absolute;opacity:0;pointer-events:none}
.ol-copy-check{width:22px;height:22px;border-radius:8px;border:1.5px solid #cbd5e1;background:#fff;display:grid;place-items:center;color:transparent;font-size:11px;flex:0 0 auto;transition:background .2s ease,border-color .2s ease,color .2s ease,box-shadow .2s ease}
.ol-copy-icon{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;background:var(--ol-tone-soft,#f1f5f9);color:var(--ol-tone,#475569);font-size:14px;flex:0 0 auto;transition:transform .22s ease,box-shadow .22s ease}
.ol-copy-copy{display:grid;gap:2px;min-width:0}
.ol-copy-copy b{font-size:12.5px;font-weight:800;color:#0f172a;line-height:1.35}
.ol-copy-copy small{font-size:10.5px;color:#64748b;line-height:1.55}
.ol-copy-tag{position:absolute;top:8px;left:8px;padding:2px 7px;border-radius:999px;background:#ecfdf5;color:#047857;font-size:9px;font-style:normal;font-weight:900}
.ol-copy-option:has(input:checked){border-color:color-mix(in srgb,var(--ol-tone,#0ea5e9) 45%,#e2e8f0);background:linear-gradient(160deg,#fff,color-mix(in srgb,var(--ol-tone-soft,#f0f9ff) 70%,#fff));box-shadow:0 14px 30px color-mix(in srgb,var(--ol-tone,#0ea5e9) 14%,transparent)}
.ol-copy-option:has(input:checked)::before{opacity:1}
.ol-copy-option:has(input:checked) .ol-copy-check{background:var(--ol-tone,#0ea5e9);border-color:var(--ol-tone,#0ea5e9);color:#fff;box-shadow:0 6px 14px color-mix(in srgb,var(--ol-tone,#0ea5e9) 35%,transparent)}
.ol-copy-option:has(input:checked) .ol-copy-icon{transform:scale(1.05);box-shadow:0 8px 16px color-mix(in srgb,var(--ol-tone,#0ea5e9) 18%,transparent)}
.ol-copy-option.tone-sky{--ol-tone:#0284c7;--ol-tone-soft:#e0f2fe}
.ol-copy-option.tone-indigo{--ol-tone:#4f46e5;--ol-tone-soft:#e0e7ff}
.ol-copy-option.tone-teal{--ol-tone:#0d9488;--ol-tone-soft:#ccfbf1}
.ol-copy-option.tone-violet{--ol-tone:#7c3aed;--ol-tone-soft:#ede9fe}
.ol-copy-option.tone-rose{--ol-tone:#e11d48;--ol-tone-soft:#ffe4e6}
.ol-copy-option.tone-amber{--ol-tone:#d97706;--ol-tone-soft:#fef3c7}
.ol-copy-option.tone-slate{--ol-tone:#475569;--ol-tone-soft:#f1f5f9}
.ol-copy-option.tone-emerald{--ol-tone:#059669;--ol-tone-soft:#d1fae5}
.ol-copy-option.is-required{box-shadow:inset 0 0 0 1px color-mix(in srgb,#10b981 20%,transparent)}
.ol-copy-option.is-soft{opacity:.98}
.ol-copy-note{display:flex;align-items:flex-start;gap:10px;margin:14px 0 0;padding:12px 14px;border-radius:14px;border:1px solid #fde68a;background:linear-gradient(135deg,#fffbeb,#fff);color:#92400e;font-size:11.5px;line-height:1.7}
.ol-copy-note i{margin-top:2px;color:#d97706;flex:0 0 auto}
.ol-copy-foot{padding:14px 18px;border-top:1px solid #e8eef6;background:#fff}
@media(max-width:680px){
  .ol-copy-options{grid-template-columns:1fr}
  .ol-copy-toolbar{align-items:stretch}
  .ol-copy-toolbar-actions{width:100%}
  .ol-copy-chip{flex:1;justify-content:center}
}
@media(prefers-reduced-motion:reduce){
  .ol-copy-option,.ol-copy-chip,.ol-copy-icon{transition:none}
}
.oex-pill{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;font-size:11px;font-weight:700;background:#f1f5f9;color:#475569}
.oex-pill.ok{background:#dcfce7;color:#15803d}.oex-pill.wait{background:#ffedd5;color:#c2410c}.oex-pill.info{background:color-mix(in srgb,var(--org-3,#a5f3fc) 40%,#fff);color:var(--org-1,#0e7490)}
.oex-empty{text-align:center;padding:48px 20px;display:grid;gap:10px;justify-items:center}
.oex-empty i{font-size:42px;color:#94a3b8;background:linear-gradient(135deg,color-mix(in srgb,var(--org-3,#a5f3fc) 55%,#fff),#fff);width:84px;height:84px;border-radius:28px;display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--org-1,#0e7490) 12%,#e2e8f0);box-shadow:0 16px 32px color-mix(in srgb,var(--org-1,#0e7490) 10%,transparent)}
.oex-empty strong{font-size:16px;color:#0f172a}
.oex-empty p{margin:0;max-width:360px;color:#64748b;font-size:13px;line-height:1.7}

/* Wizard */
.oex-wizard-page{padding-bottom:96px}
.oex-composer{display:grid;gap:18px}
.oex-composer-head{align-items:flex-start;gap:14px}
.oex-steps{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px;border-radius:22px;background:linear-gradient(180deg,#fff,color-mix(in srgb,var(--org-3,#a5f3fc) 18%,#f8fafc));border:1px solid color-mix(in srgb,var(--org-1,#0e7490) 12%,#e2e8f0);overflow-x:auto}
.oex-step{appearance:none;border:0;background:transparent;cursor:pointer;display:flex;align-items:center;gap:10px;padding:6px;font:inherit;color:#64748b;min-width:0;flex:1 1 0;text-align:right}
.oex-step-num{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;flex:0 0 auto;font-size:13px;font-weight:900;color:var(--org-1,#0e7490);background:#fff;border:2px solid color-mix(in srgb,var(--org-1,#0e7490) 28%,#cbd5e1);box-shadow:0 8px 16px color-mix(in srgb,var(--org-1,#0e7490) 10%,transparent);transition:color .22s,border-color .22s,box-shadow .22s,background .22s;position:relative;overflow:hidden;z-index:0}
.oex-step-num::before{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(135deg,var(--org-1,#0e7490),var(--org-2,#0284c7));transform:scale(0);opacity:0;z-index:-1;transition:transform .45s cubic-bezier(.2,.8,.2,1),opacity .28s ease}
.oex-step-meta{display:grid;gap:2px;min-width:0}
.oex-step-meta strong{font-size:12.5px;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.oex-step-meta small{font-size:10.5px;color:#94a3b8;font-weight:700;display:inline-flex;align-items:center;gap:5px}
.oex-step-connector{flex:0 0 18px;height:0;border-top:2px dotted color-mix(in srgb,var(--org-1,#0e7490) 35%,#cbd5e1);margin:0 2px}
.oex-step.is-active .oex-step-num,.oex-step.is-done .oex-step-num{color:#fff;border-color:transparent;background:transparent;box-shadow:0 12px 22px color-mix(in srgb,var(--org-1,#0e7490) 32%,transparent)}
.oex-step.is-active .oex-step-num::before,.oex-step.is-done .oex-step-num::before{transform:scale(1);opacity:1}
.oex-step.oex-step-just-filled .oex-step-num::before{animation:oexStepFill .5s cubic-bezier(.2,.8,.2,1)}
@keyframes oexStepFill{0%{transform:scale(0);opacity:.35}60%{transform:scale(1.08);opacity:1}100%{transform:scale(1);opacity:1}}
.oex-step.is-active .oex-step-meta strong{color:var(--org-1,#0e7490)}
.oex-step.is-done{opacity:.92}
.oex-step-panel{display:none;gap:16px}
.oex-step-panel.is-active{display:grid}
.oex-form-block{padding:16px;border:1px solid #e2e8f0;border-radius:20px;background:linear-gradient(180deg,#fff,#f8fafc);display:grid;gap:12px}
.oex-form-block h3{margin:0;font-size:14px;display:flex;align-items:center;gap:8px;color:#0f172a}
.oex-form-block h3 i{color:var(--org-1,#0e7490)}
.oex-form-block h3 em{font-style:normal;font-size:11px;font-weight:700;color:#94a3b8;margin-right:6px}
.oex-field{display:grid;gap:8px}
.oex-field input[data-oex-int-input],.oex-field input[dir="ltr"][inputmode="numeric"]{direction:ltr;text-align:center;font-variant-numeric:tabular-nums;letter-spacing:.04em;font-weight:800}
.oex-field>span,.oex-inline-label{font-size:12px;color:#64748b;font-weight:700}
.oex-field-hint,.oex-block-lead{margin:0;font-size:12px;line-height:1.7;color:#64748b}
.oex-date-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.oex-date-grid label{display:grid;gap:6px;font-size:12px;color:#64748b}
.oex-cascade{display:grid;gap:12px}
.oex-cascade-row{display:grid;gap:12px}
.oex-cascade-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.oex-cascade-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.oex-cascade-row label{display:grid;gap:6px;font-size:12px;color:#64748b}
.oex-mode-picks,.oex-scope-picks{display:grid;gap:.5rem}
.oex-scope-3,.oex-source-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.oex-sol-4{grid-template-columns:repeat(2,minmax(0,1fr))}
.oex-toggle{margin-top:2px}
.oex-wizard-foot{position:sticky;bottom:12px;z-index:40;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:12px 14px;margin-top:18px;border-radius:20px;background:rgba(255,255,255,.92);backdrop-filter:blur(12px);border:1px solid color-mix(in srgb,var(--org-1,#0e7490) 14%,#e2e8f0);box-shadow:0 18px 40px color-mix(in srgb,var(--org-1,#0e7490) 16%,transparent)}
.oex-wizard-foot .primary-btn,.oex-wizard-foot .secondary-btn{min-height:44px;display:inline-flex;align-items:center;gap:8px}
.oex-foot-prev{grid-column:1;justify-self:start}
.oex-foot-save{grid-column:2;justify-self:center;margin-inline:0;transition:transform .35s cubic-bezier(.2,.8,.2,1),opacity .3s ease}
.oex-foot-next{grid-column:3;justify-self:end}
.oex-foot-save.is-next-slot{grid-column:3;justify-self:end}
.oex-foot-save.oex-save-enter{animation:oexSaveToNext .45s cubic-bezier(.2,.8,.2,1)}
@keyframes oexSaveToNext{0%{opacity:.35;transform:translateX(28px) scale(.94)}100%{opacity:1;transform:none}}

/* Class multi (exam) */
.oex-class-multi{display:grid;gap:12px;padding:14px;border:1px solid color-mix(in srgb,var(--org-1,#0e7490) 14%,#e2e8f0);border-radius:22px;background:radial-gradient(120% 80% at 100% 0%,color-mix(in srgb,var(--org-3,#a5f3fc) 34%,transparent),transparent 55%),linear-gradient(180deg,#fff,color-mix(in srgb,var(--org-3,#a5f3fc) 12%,#fff));box-shadow:0 14px 32px color-mix(in srgb,var(--org-1,#0e7490) 8%,transparent)}
.oex-class-multi-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.oex-class-multi-title{display:flex;align-items:center;gap:10px;min-width:0}
.oex-class-multi-title>div{display:grid;gap:2px;min-width:0}
.oex-class-multi-title strong{font-size:13px;color:#0f172a}
.oex-class-multi-title small{font-size:11px;color:#64748b;font-weight:700}
.oex-class-multi-icon{width:40px;height:40px;border-radius:14px;display:grid;place-items:center;flex:0 0 auto;color:#fff;background:linear-gradient(135deg,var(--org-1,#0e7490),var(--org-2,#0284c7));box-shadow:0 10px 20px color-mix(in srgb,var(--org-1,#0e7490) 28%,transparent)}
.oex-class-multi-actions{display:flex;gap:8px;flex-wrap:wrap}
.oex-class-tool{appearance:none;border:0;cursor:pointer;display:inline-flex;align-items:center;gap:7px;padding:9px 14px;border-radius:999px;font:inherit;font-size:11.5px;font-weight:800;transition:transform .18s ease,box-shadow .18s ease,filter .18s ease;box-shadow:0 8px 18px rgba(15,23,42,.06)}
.oex-class-tool.is-select{color:#fff;background:linear-gradient(135deg,var(--org-1,#0e7490),var(--org-2,#0284c7));box-shadow:0 10px 22px color-mix(in srgb,var(--org-1,#0e7490) 28%,transparent)}
.oex-class-tool.is-select:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.05)}
.oex-class-tool.is-clear,.oex-class-tool.is-clear-mode{color:#b91c1c;background:linear-gradient(135deg,#fff,#fff1f2);border:1px solid #fecdd3}
.oex-class-tool:disabled{opacity:.42;cursor:not-allowed;transform:none!important;box-shadow:none!important}
.oex-class-multi-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:10px;min-height:64px;align-content:start;padding:4px}
.oex-class-multi-list.is-empty{display:flex;align-items:center;justify-content:center;grid-template-columns:none}
.oex-class-multi-empty{margin:0;font-size:12.5px;color:#94a3b8;font-weight:700}
.oex-class-chip{position:relative;display:flex;align-items:center;gap:10px;min-height:54px;padding:10px 12px;border-radius:16px;border:1.5px solid color-mix(in srgb,var(--org-1,#0e7490) 12%,#e2e8f0);background:#fff;cursor:pointer;color:#334155;transition:border-color .2s ease,background .2s ease,transform .2s ease,box-shadow .2s ease;user-select:none}
.oex-class-chip input{position:absolute;opacity:0;pointer-events:none}
.oex-class-chip-mark{width:22px;height:22px;border-radius:8px;flex:0 0 auto;display:grid;place-items:center;border:1.5px solid #cbd5e1;background:#f8fafc;color:transparent;font-size:10px;transition:.2s ease}
.oex-class-chip-copy{display:flex;align-items:center;gap:8px;min-width:0}
.oex-class-chip-copy>i{color:#94a3b8;font-size:13px}
.oex-class-chip-copy b{font-size:12.5px;font-weight:800;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.oex-class-chip:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--org-2,#0284c7) 45%,#e2e8f0);box-shadow:0 12px 24px color-mix(in srgb,var(--org-1,#0e7490) 12%,transparent)}
.oex-class-chip:has(input:checked){border-color:transparent;background:linear-gradient(135deg,color-mix(in srgb,var(--org-3,#a5f3fc) 42%,#fff),#fff);color:var(--org-1,#0e7490);box-shadow:0 14px 28px color-mix(in srgb,var(--org-1,#0e7490) 16%,transparent),inset 0 0 0 1.5px color-mix(in srgb,var(--org-2,#0284c7) 55%,transparent)}
.oex-class-chip:has(input:checked) .oex-class-chip-mark{border-color:transparent;background:linear-gradient(135deg,var(--org-1,#0e7490),var(--org-2,#0284c7));color:#fff}
.oex-class-chip:has(input:checked) .oex-class-chip-copy>i{color:var(--org-1,#0e7490)}

/* OMR key grid */
.oex-key-code-row{display:flex;gap:12px;align-items:end;flex-wrap:wrap}
.oex-key-code-row .oex-grow{flex:1 1 240px}
.oex-key-apply{min-height:44px;white-space:nowrap}
.oex-key-scroll{position:relative;border-radius:18px;border:1px solid color-mix(in srgb,var(--org-1,#0e7490) 12%,#e2e8f0);background:linear-gradient(180deg,#fff,color-mix(in srgb,var(--org-3,#a5f3fc) 14%,#f8fafc));box-shadow:inset 0 1px 0 rgba(255,255,255,.8)}
.oex-key-scroll::after{content:"";position:absolute;inset:8px 0 8px auto;width:28px;pointer-events:none;border-radius:12px 0 0 12px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.92));opacity:0;transition:opacity .2s}
.oex-key-grid.is-scrollable ~ .oex-key-scroll-hint,
.oex-key-scroll:has(.oex-key-grid.is-scrollable)::after{opacity:1}
.oex-key-grid{display:flex;flex-wrap:nowrap;align-items:flex-start;justify-content:flex-start;gap:14px;overflow-x:auto;overflow-y:hidden;padding:14px 12px 18px;scroll-snap-type:x proximity;direction:ltr;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--org-1,#0e7490) 45%,#94a3b8) transparent}
.oex-key-grid::-webkit-scrollbar{height:8px}
.oex-key-grid::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--org-1,#0e7490) 45%,#94a3b8);border-radius:999px}
.oex-key-grid::-webkit-scrollbar-track{background:transparent}
.oex-key-col{flex:0 0 auto;align-self:flex-start;min-width:178px;width:max-content;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:4px;padding:10px;border-radius:16px;background:#fff;border:1px solid #e2e8f0;box-shadow:0 10px 22px rgba(14,116,144,.06);scroll-snap-align:start}
.oex-key-row{display:flex;align-items:center;gap:5px;min-height:30px;direction:ltr}
.oex-key-flag,.oex-key-clear{width:22px;height:22px;border-radius:50%;border:1.5px solid #94a3b8;background:#fff;color:#64748b;font-size:10px;font-weight:900;cursor:pointer;display:grid;place-items:center;padding:0;line-height:1;position:relative;z-index:1}
.oex-key-flag.is-on{background:#0ea5e9;border-color:#0284c7;color:#fff;box-shadow:0 0 0 3px rgba(14,165,233,.18)}
.oex-key-clear:hover{background:#e0f2fe;border-color:#38bdf8;color:#0369a1}
.oex-key-no{min-width:22px;font-size:12px;font-weight:900;color:#db2777;text-align:center;font-variant-numeric:tabular-nums}
.oex-key-opts{display:flex;gap:3px;direction:ltr}
.oex-key-opt{width:22px;height:22px;border-radius:50%;border:1.5px solid #db2777;background:#fff;color:#db2777;font-size:10px;font-weight:900;cursor:pointer;display:grid;place-items:center;padding:0}
.oex-key-opt.is-selected{background:#e91e63;border-color:#db2777;color:#fff;box-shadow:0 0 0 3px rgba(233,30,99,.18)}
.oex-key-col-head{margin-bottom:6px;padding:6px 8px;border-radius:10px;background:linear-gradient(135deg,color-mix(in srgb,var(--org-1,#0e7490) 12%,#fff),#f8fafc);border:1px solid color-mix(in srgb,var(--org-1,#0e7490) 16%,#e2e8f0);text-align:center;font-size:11.5px;font-weight:900;color:var(--org-1,#0e7490)}
.oex-key-flag{font-size:9px}
.oex-key-flag i{pointer-events:none}

/* Question builder cards */
.oex-builder-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.oex-math-note{margin:0;font-size:12px;color:#64748b;display:inline-flex;align-items:center;gap:6px}
.oex-q-list{display:grid;gap:12px}
.oex-q-card{padding:14px;border-radius:18px;border:1px solid #e2e8f0;background:#fff;display:grid;gap:12px;box-shadow:0 10px 24px rgba(15,23,42,.04)}
.oex-q-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.oex-q-num{font-size:13px;font-weight:900;color:var(--org-1,#0e7490)}
.oex-math-btn{appearance:none;border:1px solid #bae6fd;background:linear-gradient(180deg,#fff,#f0f9ff);color:#0369a1;border-radius:12px;padding:8px 12px;font:inherit;font-size:12px;font-weight:800;cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.oex-q-options{display:grid;gap:8px}
.oex-opt-chip{appearance:none;display:grid;grid-template-columns:34px 1fr;gap:8px;align-items:center;width:100%;padding:8px 10px;border-radius:14px;border:1.5px solid #e2e8f0;background:#f8fafc;cursor:pointer;text-align:right;font:inherit;transition:.18s}
.oex-opt-chip .oex-opt-label{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;border:1.5px solid #db2777;color:#db2777;font-weight:900;background:#fff;font-size:12px}
.oex-opt-chip input[data-oex-opt-input]{border:0;background:transparent;outline:none;font:inherit;font-size:12.5px;min-width:0;width:100%}
.oex-opt-chip.is-correct{border-color:#db2777;background:#fdf2f8;box-shadow:0 0 0 3px rgba(233,30,99,.12)}
.oex-opt-chip.is-correct .oex-opt-label{background:#e91e63;border-color:#db2777;color:#fff}

/* Subjects table */
.oex-subject-single-card{display:grid;gap:12px;padding:14px;border-radius:18px;border:1px solid color-mix(in srgb,var(--org-1,#0e7490) 14%,#e2e8f0);background:linear-gradient(180deg,#fff,color-mix(in srgb,var(--org-3,#a5f3fc) 18%,#fff))}
.oex-subject-single-icon{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,var(--org-1,#0e7490),var(--org-2,#0284c7))}
.oex-subjects-table-wrap{overflow-x:auto;border-radius:18px;border:1px solid color-mix(in srgb,var(--org-1,#0e7490) 12%,#e2e8f0);background:#fff;box-shadow:0 14px 28px color-mix(in srgb,var(--org-1,#0e7490) 8%,transparent)}
.oex-subjects-table{width:100%;border-collapse:separate;border-spacing:0;min-width:560px;direction:rtl}
.oex-subjects-table thead th{padding:12px 14px;background:linear-gradient(135deg,var(--org-1,#0e7490),var(--org-2,#0284c7));color:#fff;font-size:12px;font-weight:800;text-align:center}
.oex-subjects-table thead th:first-child{border-radius:0 17px 0 0;text-align:right}
.oex-subjects-table thead th:last-child{border-radius:17px 0 0 0}
.oex-subj-title-cell{display:inline-flex;align-items:center;gap:8px}
.oex-subjects-table tbody td{padding:10px 12px;border-bottom:1px solid #e2e8f0;vertical-align:middle;text-align:center}
.oex-subjects-table tbody tr:last-child td{border-bottom:0}
.oex-subjects-table tbody tr:hover{background:color-mix(in srgb,var(--org-3,#a5f3fc) 18%,#fff)}
.oex-subjects-table select,.oex-subjects-table input{width:100%;min-height:38px;border-radius:12px;border:1px solid #cbd5e1;padding:6px 10px;font:inherit;font-size:12.5px;background:#fff}
.oex-subjects-table .pretty-select{width:100%;min-width:0}
.oex-subjects-table .pretty-select-trigger{min-height:42px;border-radius:14px;padding:10px 12px;border-color:color-mix(in srgb,var(--org-1,#0e7490) 22%,#cbd5e1);background:linear-gradient(180deg,#fff,color-mix(in srgb,var(--org-3,#a5f3fc) 16%,#fff));font-weight:800;box-shadow:0 6px 14px color-mix(in srgb,var(--org-1,#0e7490) 8%,transparent)}
.oex-subjects-table .pretty-select.open .pretty-select-trigger,.oex-subjects-table .pretty-select-trigger:hover{border-color:var(--org-2,#0284c7);box-shadow:0 0 0 4px color-mix(in srgb,var(--org-1,#0e7490) 14%,transparent)}
.oex-subjects-table .pretty-select-trigger>span{justify-content:flex-start;text-align:right;gap:10px}
.oex-subjects-table .pretty-select-trigger>span>i{width:28px;height:28px;border-radius:10px;display:grid;place-items:center;background:color-mix(in srgb,var(--org-3,#a5f3fc) 55%,#fff);color:var(--org-1,#0e7490);font-size:12px}
[data-oex-wizard] .pretty-select-menu.portal-open.is-wide-menu{min-width:min(360px,calc(100vw - 24px));max-height:340px;padding:12px;border-radius:20px;border:1px solid color-mix(in srgb,var(--org-1,#0e7490) 18%,#e2e8f0);background:linear-gradient(180deg,#fff,color-mix(in srgb,var(--org-3,#a5f3fc) 12%,#f8fafc));box-shadow:0 28px 60px color-mix(in srgb,var(--org-1,#0e7490) 18%,transparent)}
[data-oex-wizard] .pretty-select-menu.portal-open.is-wide-menu .pretty-select-search{margin:0 0 10px;min-height:40px!important;border-radius:14px;border-color:color-mix(in srgb,var(--org-1,#0e7490) 22%,#cbd5e1);background:#fff}
[data-oex-wizard] .pretty-select-menu.portal-open.is-wide-menu>div{grid-template-columns:1fr;gap:6px}
[data-oex-wizard] .pretty-select-menu.portal-open.is-wide-menu .pretty-select-option{min-height:48px;padding:12px 14px;border-radius:14px;border:1px solid #e2e8f0;background:#fff;justify-content:flex-start;text-align:right;gap:12px;font-size:13px;font-weight:800;color:#0f172a}
[data-oex-wizard] .pretty-select-menu.portal-open.is-wide-menu .pretty-select-option>i{width:30px;height:30px;border-radius:11px;display:grid;place-items:center;background:color-mix(in srgb,var(--org-3,#a5f3fc) 48%,#fff);color:var(--org-1,#0e7490);font-size:12px}
[data-oex-wizard] .pretty-select-menu.portal-open.is-wide-menu .pretty-select-option:hover{border-color:color-mix(in srgb,var(--org-2,#0284c7) 45%,#e2e8f0);background:color-mix(in srgb,var(--org-3,#a5f3fc) 22%,#fff);transform:translateY(-1px)}
[data-oex-wizard] .pretty-select-menu.portal-open.is-wide-menu .pretty-select-option.selected{border-color:transparent;background:linear-gradient(135deg,color-mix(in srgb,var(--org-1,#0e7490) 12%,#fff),color-mix(in srgb,var(--org-3,#a5f3fc) 35%,#fff));box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--org-2,#0284c7) 40%,transparent);color:var(--org-1,#0e7490)}
.oex-row-remove{appearance:none;width:36px;height:36px;border-radius:12px;border:1px solid #fecdd3;background:#fff1f2;color:#dc2626;cursor:pointer;display:grid;place-items:center}

/* Review */
.oex-review-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.oex-review-card{border-radius:18px;border:1px solid color-mix(in srgb,var(--org-1,#0e7490) 12%,#e2e8f0);background:linear-gradient(180deg,#fff,color-mix(in srgb,var(--org-3,#a5f3fc) 14%,#fff));overflow:hidden;box-shadow:0 12px 28px color-mix(in srgb,var(--org-1,#0e7490) 8%,transparent)}
.oex-review-card>header{display:flex;align-items:center;gap:8px;padding:12px 14px;background:linear-gradient(135deg,var(--org-1,#0e7490),var(--org-2,#0284c7));color:#fff;font-size:13px;font-weight:800}
.oex-review-card dl{margin:0;padding:10px 14px 14px;display:grid;gap:8px}
.oex-review-card dl>div{display:grid;grid-template-columns:110px 1fr;gap:8px;align-items:start;padding:8px 0;border-bottom:1px dashed #e2e8f0}
.oex-review-card dl>div:last-child{border-bottom:0}
.oex-review-card dt{margin:0;font-size:11.5px;font-weight:800;color:#64748b}
.oex-review-card dd{margin:0;font-size:12.5px;font-weight:700;color:#0f172a;overflow-wrap:anywhere}

@media(max-width:1100px){
  .oex-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
  .oex-filter-body{grid-template-columns:repeat(2,minmax(0,1fr))}
  .oex-review-grid{grid-template-columns:1fr}
  .oex-format-picks{grid-template-columns:1fr}
  .oex-scope-3,.oex-source-3{grid-template-columns:1fr}
}
@media(max-width:680px){
  .oex-card-grid{grid-template-columns:1fr;gap:14px}
  .oex-card{border-radius:22px}
  .oex-card:hover{transform:none}
  .oex-card-cover{min-height:0}
  .oex-card-foot{flex-direction:column;align-items:stretch;gap:10px;padding:12px}
  .oex-card-actions{width:100%;min-width:0;margin:0;display:grid;grid-auto-flow:column;grid-template-columns:repeat(3,minmax(0,1fr))}
  .oex-create-btn{width:auto;justify-content:center}
  .oex-filter-body{grid-template-columns:1fr}
  .oex-date-grid,.oex-cascade-2,.oex-cascade-3{grid-template-columns:1fr}
  .oex-steps{justify-content:flex-start!important;flex-wrap:nowrap!important;overflow-x:auto!important;overflow-y:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scroll-snap-type:x proximity;max-width:100%;min-width:0}
  .oex-step{flex:0 0 auto!important;min-width:104px;scroll-snap-align:start}
  .oex-step-connector{display:none}
  .oex-step-panel.is-active{grid-template-columns:minmax(0,1fr);width:100%;max-width:100%;min-width:0;overflow-x:clip}
  .oex-step-panel.is-active>*{min-width:0;max-width:100%}
  .oex-form{min-width:0;max-width:100%;grid-template-columns:minmax(0,1fr)}
  .oex-wizard-foot{grid-template-columns:1fr 1fr;bottom:calc(78px + env(safe-area-inset-bottom,0px))}
  .oex-foot-prev{grid-column:1}
  .oex-foot-next{grid-column:2;justify-self:end}
  .oex-foot-save{grid-column:1 / -1;justify-self:stretch;width:100%}
  .oex-foot-save.is-next-slot{grid-column:2;justify-self:end;width:auto}
  .oex-class-multi-list{grid-template-columns:repeat(2,minmax(0,1fr))}
  .oex-sol-4{grid-template-columns:1fr}
}

/* ===== Online exam UX refresh (wizard + take) ===== */
.oex-settings-access{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:8px}
.oex-neg-row{display:flex;align-items:flex-start;gap:14px;flex-wrap:wrap}
.oex-neg-row .oex-toggle{flex:1 1 260px;margin:0}
.oex-neg-row .oex-neg-ratio{flex:0 1 220px;margin:0;align-self:center}
.oex-q-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.oex-opt-chip{grid-template-columns:34px minmax(0,1fr) auto;align-items:center}
.oex-opt-img{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:34px;padding:4px 10px;border-radius:10px;border:1px dashed #94a3b8;background:#fff;color:#475569;font-size:11px;font-weight:800;cursor:pointer;overflow:hidden}
.oex-opt-img input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}
.oex-opt-img span{pointer-events:none}
.oex-opt-img-preview{width:36px;height:36px;object-fit:cover;border-radius:8px;border:1px solid #e2e8f0}
.oex-batch-images-btn{display:inline-flex;align-items:center;gap:8px;cursor:pointer;position:relative}
.oex-batch-images-btn input{position:absolute;inset:0;opacity:0;cursor:pointer}
.oex-wizard-foot [data-oex-save][hidden],.oex-wizard-foot [data-oex-next][hidden]{display:none!important}

.oex-math-dialog{border:0;border-radius:18px;padding:0;max-width:520px;width:calc(100% - 24px);box-shadow:0 28px 60px rgba(15,23,42,.28)}
.oex-math-dialog::backdrop{backdrop-filter:blur(8px);background:rgba(15,23,42,.55)}
.oex-math-dialog article{padding:16px;display:grid;gap:12px}
.oex-math-dialog header{display:flex;align-items:center;justify-content:space-between;gap:10px}
.oex-math-dialog header h2{margin:0;font-size:15px}
.oex-math-palette{display:grid;gap:12px}
.oex-math-group{display:grid;gap:6px}
.oex-math-group>strong{font-size:12px;color:#64748b}
.oex-math-chars{display:flex;flex-wrap:wrap;gap:6px}
.oex-math-char{width:36px;height:36px;border-radius:10px;border:1px solid #cbd5e1;background:#fff;font-size:16px;cursor:pointer}
.oex-math-char:hover{border-color:#38bdf8;background:#f0f9ff}
.oex-math-power{justify-self:start}

.oex-typed-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:10px;align-items:stretch}
.oex-typed-q{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start}
.oex-typed-q>header{grid-column:1;min-width:64px}
.oex-typed-stem,.oex-typed-options{grid-column:2}
.oex-typed-opt{justify-content:center;text-align:center}

.oex-take-topbar .oex-finish-btn{display:none}
/* Desktop: finish button peeks from left edge; expands on arrow click */
.oex-finish-rail{
  position:fixed;
  left:0;
  bottom:32px;
  z-index:60;
  display:flex;
  flex-direction:row;
  align-items:stretch;
  max-width:min(300px,calc(100vw - 20px));
  transform:translateX(calc(-100% + 52px));
  transition:transform .34s cubic-bezier(.22,1,.36,1),filter .28s ease;
  filter:drop-shadow(0 16px 34px rgba(190,18,60,.34));
}
.oex-finish-rail.is-open{
  transform:translateX(0);
  filter:drop-shadow(0 20px 40px rgba(190,18,60,.4));
}
.oex-finish-rail .oex-finish-fab{
  position:relative;
  left:auto;
  bottom:auto;
  z-index:auto;
  border:0;
  border-radius:0;
  padding:12px 14px 12px 16px;
  background:
    radial-gradient(120% 140% at 0% 0%,rgba(255,255,255,.28),transparent 46%),
    linear-gradient(135deg,#f43f5e 0%,#e11d48 48%,#be123c 100%);
  color:#fff;
  font:inherit;
  cursor:pointer;
  box-shadow:none;
  display:inline-flex;
  align-items:center;
  gap:11px;
  white-space:nowrap;
  line-height:1.15;
  overflow:hidden;
}
.oex-finish-rail .oex-finish-fab::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.22) 50%,transparent 65%);
  transform:translateX(-120%);
  transition:transform .55s ease;
  pointer-events:none;
}
.oex-finish-rail.is-open .oex-finish-fab:hover::after{transform:translateX(120%)}
.oex-finish-rail .oex-finish-fab:disabled,
.oex-finish-rail .oex-finish-fab[aria-disabled="true"],
.oex-finish-rail .oex-finish-fab.is-finish-locked{opacity:.55;cursor:not-allowed}
.oex-finish-rail .oex-finish-fab:disabled::after,
.oex-finish-rail .oex-finish-fab[aria-disabled="true"]::after,
.oex-finish-rail .oex-finish-fab.is-finish-locked::after{display:none}
.oex-finish-rail.is-finish-locked .oex-finish-rail-toggle{opacity:.72;filter:saturate(.85)}
.oex-finish-fab-icon{
  width:36px;height:36px;border-radius:12px;flex:0 0 auto;
  display:grid;place-items:center;
  background:rgba(255,255,255,.18);
  border:1px solid rgba(255,255,255,.28);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.25);
  font-size:15px;
}
.oex-finish-fab-copy{display:grid;gap:2px;text-align:right}
.oex-finish-fab-copy strong{font-size:13.5px;font-weight:900;letter-spacing:.01em}
.oex-finish-fab-copy small{font-size:10.5px;font-weight:700;opacity:.86}
.oex-finish-rail-toggle{
  appearance:none;
  position:relative;
  flex:0 0 52px;
  width:52px;
  border:0;
  border-radius:0 20px 20px 0;
  padding:0;
  background:
    radial-gradient(120% 120% at 30% 20%,rgba(255,255,255,.3),transparent 55%),
    linear-gradient(160deg,#fb7185 0%,#e11d48 45%,#9f1239 100%);
  color:#fff;
  cursor:pointer;
  display:grid;
  place-items:center;
  overflow:hidden;
  box-shadow:inset 1px 0 0 rgba(255,255,255,.22);
  transition:transform .2s ease,filter .2s ease,background .2s ease;
}
.oex-finish-rail-glow{
  position:absolute;inset:0;
  background:radial-gradient(circle at 30% 40%,rgba(255,255,255,.35),transparent 55%);
  opacity:.55;pointer-events:none;
  animation:oex-finish-rail-breathe 2.6s ease-in-out infinite;
}
.oex-finish-rail.is-open .oex-finish-rail-glow{animation:none;opacity:.25}
.oex-finish-rail-toggle-inner{
  position:relative;z-index:1;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
}
.oex-finish-rail-flag{font-size:15px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.18))}
.oex-finish-rail-chevron{
  font-size:12px;opacity:.92;
  transition:transform .28s cubic-bezier(.22,1,.36,1),opacity .2s ease;
}
.oex-finish-rail:not(.is-open) .oex-finish-rail-chevron{animation:oex-finish-rail-nudge 1.8s ease-in-out infinite}
.oex-finish-rail-toggle:hover{
  filter:brightness(1.06);
  transform:translateX(2px);
}
.oex-finish-rail.is-open .oex-finish-rail-toggle:hover{transform:none}
.oex-finish-rail-toggle:focus-visible{outline:2px solid #fecdd3;outline-offset:3px}
.oex-finish-rail:not(.is-open) .oex-finish-fab{pointer-events:auto}
.oex-finish-fab{display:none}
.oex-finish-rail .oex-finish-fab.is-finishing,
.oex-take-dock .oex-dock-finish.is-finishing{opacity:.75;pointer-events:none;cursor:wait}
@keyframes oex-finish-rail-breathe{
  0%,100%{opacity:.4;transform:scale(.96)}
  50%{opacity:.75;transform:scale(1.05)}
}
@keyframes oex-finish-rail-nudge{
  0%,100%{transform:translateX(0)}
  50%{transform:translateX(3px)}
}
@media(prefers-reduced-motion:reduce){
  .oex-finish-rail,.oex-finish-rail-chevron,.oex-finish-rail .oex-finish-fab::after{transition:none}
  .oex-finish-rail-glow,.oex-finish-rail:not(.is-open) .oex-finish-rail-chevron{animation:none}
}
.oex-take-dock{display:none!important}
@media(max-width:1100px){
  .oex-finish-rail{display:none!important}
  .oex-finish-fab{display:none!important}
  /* Pin to the true bottom of the viewport (above mobile-nav when present). */
  body.has-oex-take-dock .mobile-nav{display:none!important}
  body.has-oex-take-dock{padding-bottom:max(12px,env(safe-area-inset-bottom,0px))!important}
  .oex-take-dock{
    display:flex!important;
    position:fixed!important;
    z-index:90;
    left:10px;
    right:10px;
    top:auto!important;
    bottom:max(10px,env(safe-area-inset-bottom,0px))!important;
    width:auto;
    margin:0;
    flex-direction:column;
    align-items:stretch;
    gap:8px;
    padding:10px 12px;
    background:rgba(255,255,255,.97);
    border:1px solid #e2e8f0;
    border-radius:16px;
    box-shadow:0 18px 40px rgba(15,23,42,.16);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
    box-sizing:border-box;
  }
  .oex-take-dock .oex-dock-finish{appearance:none;border:0;border-radius:12px;padding:13px 14px;background:linear-gradient(135deg,#db2777,#e11d48);color:#fff;font:inherit;font-size:13.5px;font-weight:800;cursor:pointer;box-shadow:0 10px 24px rgba(225,29,72,.28);display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;line-height:1.2;white-space:nowrap}
  .oex-take-dock .oex-dock-finish:disabled,
  .oex-take-dock .oex-dock-finish[aria-disabled="true"],
  .oex-take-dock .oex-dock-finish.is-finish-locked{opacity:.45;cursor:not-allowed;box-shadow:none}
  .oex-take-dock .oex-dock-secondary{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:nowrap;min-width:0;padding:2px 4px 0}
  .oex-take-dock .oex-dock-sep{color:#cbd5e1;font-weight:800;line-height:1;user-select:none;flex:0 0 auto}
  .oex-take-dock .oex-dock-link,
  .oex-take-dock .oex-help-btn,
  .oex-take-dock .oex-exit-btn{appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:6px;width:auto;max-width:none;height:auto;min-height:0;padding:8px 6px;border:0;border-radius:0;background:transparent;box-shadow:none;font:inherit;font-size:13px;font-weight:800;text-decoration:none;cursor:pointer;white-space:nowrap;line-height:1;box-sizing:border-box;transform:none}
  .oex-take-dock .oex-help-btn{color:#2563eb}
  .oex-take-dock .oex-help-btn:hover{background:transparent;color:#1d4ed8;transform:none}
  .oex-take-dock .oex-exit-btn{color:#be185d;border:0}
  .oex-take-dock .oex-exit-btn:hover{background:transparent;color:#9d174d;transform:none;box-shadow:none}
  .oex-take-dock .oex-dock-link i{font-size:12px;line-height:1}
}
.oex-timer-modern{width:auto;height:auto;margin:0;display:flex;align-items:center;justify-content:center;gap:12px;padding:14px 16px;border-radius:18px;background:#fff;border:1px solid #e2e8f0;box-shadow:0 12px 28px rgba(15,23,42,.06)}
.oex-timer-hourglass{width:48px;height:48px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(135deg,#0ea5e9,#2563eb);color:#fff;font-size:20px;animation:oex-hourglass-spin 30s ease-in-out infinite}
.oex-timer-digital{display:grid;gap:2px}
.oex-timer-digital strong{font-size:20px;font-variant-numeric:tabular-nums;line-height:1.1}
.oex-timer-digital small{color:#64748b;font-size:11px;font-weight:700}
@keyframes oex-hourglass-spin{
  0%,92%{transform:rotate(0deg)}
  96%{transform:rotate(180deg)}
  100%{transform:rotate(180deg)}
}

.oex-pdf-chrome{display:grid;gap:6px;padding:10px 12px;background:linear-gradient(180deg,#0f172a,#1e293b);color:#e2e8f0;border-bottom:1px solid rgba(148,163,184,.25);flex:0 0 auto}
.oex-pdf-chrome-tools{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap}
.oex-pdf-chrome-tools button,.oex-pdf-open{appearance:none;border:1px solid rgba(148,163,184,.35);background:rgba(255,255,255,.06);color:#fff;border-radius:10px;padding:8px 10px;font-size:12px;font-weight:800;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:6px}
.oex-pdf-chrome-tools button:hover,.oex-pdf-open:hover{background:rgba(255,255,255,.12)}
.oex-pdf-chrome-tools button:disabled{opacity:.35;cursor:not-allowed}
.oex-pdf-chrome-tools button.is-fit-active{background:rgba(14,165,233,.28);border-color:rgba(56,189,248,.55)}
.oex-pdf-zoom-label{min-width:48px;font-size:12px;font-weight:800;font-variant-numeric:tabular-nums;color:#94a3b8;text-align:center}
.oex-pdf-page-label{min-width:110px;padding:6px 12px;border-radius:999px;background:rgba(15,23,42,.55);border:1px solid rgba(148,163,184,.28);font-size:12px;font-weight:800;color:#e2e8f0;text-align:center;font-variant-numeric:tabular-nums}
.oex-pdf-chrome-tip{margin:0;font-size:11px;opacity:.78}
.oex-pdf-system,.oex-pdf-frame-wrap.is-system{display:flex;flex-direction:column}
/* Fit/normal: grow with PDF so the page scrolls. Zoomed: nested pan box. */
.oex-pdf-system .oex-pdf-stage,.oex-pdf-frame-wrap.is-system .oex-pdf-stage{flex:0 0 auto;min-height:0;overflow:visible;-webkit-overflow-scrolling:touch;overscroll-behavior:auto;touch-action:pan-x pan-y;max-width:100%;position:relative;display:flex;justify-content:safe center;align-items:flex-start;padding:12px;direction:ltr;cursor:default;background:#0f172a}
.oex-pdf-system .oex-pdf-stage.is-zoomed,.oex-pdf-frame-wrap.is-system .oex-pdf-stage.is-zoomed{flex:1 1 auto;overflow:auto;max-height:min(78vh,920px);min-height:min(42vh,360px);cursor:grab;overscroll-behavior:auto}
.oex-pdf-system .oex-pdf-stage.is-panning,.oex-pdf-frame-wrap.is-system .oex-pdf-stage.is-panning{cursor:grabbing}
.oex-pdf-host{width:max-content;min-width:100%;display:flex;justify-content:center;align-items:flex-start;direction:ltr;unicode-bidi:isolate;margin-inline:auto}
.oex-pdf-canvas{display:block;max-width:none;height:auto;background:#fff;box-shadow:0 18px 40px rgba(0,0,0,.35);border-radius:2px;direction:ltr;unicode-bidi:isolate;touch-action:pan-x pan-y}
.oex-pdf-system .oex-pdf-frame,.oex-pdf-frame-wrap.is-system .oex-pdf-frame{display:none!important}
.oex-pdf-frame-wrap.is-browser .oex-pdf-chrome{display:none}
.oex-pdf-frame-wrap.is-browser .oex-pdf-host{display:none!important}
.oex-pdf-frame-wrap.is-browser .oex-pdf-stage{flex:1;min-height:0;overflow:hidden;padding:0;display:block;position:relative}
.oex-pdf-frame-wrap.is-browser .oex-pdf-frame{display:block!important;position:absolute;inset:0;width:100%;height:100%;border:0;background:#0f172a}
.oex-pdf-mobile-fallback{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px;text-align:center;background:linear-gradient(180deg,#0f172a,#1e293b);color:#e2e8f0}
.oex-pdf-mobile-fallback.hidden{display:none!important}
.oex-pdf-mobile-fallback p{margin:0;max-width:28rem;line-height:1.7;font-size:13.5px;font-weight:700;color:#cbd5e1}
.oex-pdf-mobile-fallback-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.oex-pdf-mobile-fallback-actions .primary-btn,.oex-pdf-mobile-fallback-actions .secondary-btn{font-size:12px;font-weight:800}
.oex-exit-btn{background:linear-gradient(135deg,#fdf2f8,#fce7f3);color:#be185d;border:1px solid #f9a8d4;box-shadow:0 4px 12px rgba(190,24,93,.12);transition:transform .18s ease,box-shadow .18s ease,background .18s ease}
.oex-exit-btn:hover{transform:translateY(-1px);box-shadow:0 8px 16px rgba(190,24,93,.16)}

.oex-action-rail,[data-oex-manage] .oex-action-grid.oex-action-rail{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
  gap:10px;
  overflow:visible;
  padding-bottom:0;
  scroll-snap-type:none;
}
.oex-action-rail .oex-action-btn{
  flex:initial;
  min-width:0;
  width:100%;
  scroll-snap-align:none;
  animation:oex-rail-in .55s cubic-bezier(.22,1,.36,1) both;
}
.oex-action-rail .oex-action-btn:nth-child(1){animation-delay:.02s}
.oex-action-rail .oex-action-btn:nth-child(2){animation-delay:.07s}
.oex-action-rail .oex-action-btn:nth-child(3){animation-delay:.12s}
.oex-action-rail .oex-action-btn:nth-child(4){animation-delay:.17s}
.oex-action-rail .oex-action-btn:nth-child(5){animation-delay:.22s}
.oex-action-rail .oex-action-btn:nth-child(6){animation-delay:.27s}
.oex-action-rail .oex-action-btn:nth-child(7){animation-delay:.32s}
@media(max-width:900px){
  .oex-action-rail,[data-oex-manage] .oex-action-grid.oex-action-rail{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;
    overflow:visible;
    padding-bottom:0;
    scroll-snap-type:none;
  }
  .oex-action-rail .oex-action-btn{
    flex:initial;
    min-width:0;
    width:100%;
    scroll-snap-align:none;
    justify-items:center;
    text-align:center;
    padding:12px 6px;
    gap:6px;
    border-radius:16px;
  }
  .oex-action-rail .oex-action-btn>i{width:36px;height:36px;margin:0 auto;font-size:14px}
  .oex-action-rail .oex-action-btn span{font-size:10.5px;line-height:1.35}
  .oex-action-rail .oex-action-btn small{display:none}
  .oex-stat-grid-6{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@keyframes oex-rail-in{from{opacity:0;transform:translateY(16px) scale(.96);filter:blur(2px)}to{opacity:1;transform:none;filter:none}}
.oex-floating-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px;padding:14px;border-radius:16px;border:1px solid #bae6fd;background:linear-gradient(180deg,#f0f9ff,#fff);animation:oex-rail-in .4s ease both}
.oex-floating-fields .oex-req{color:#dc2626;font-style:normal;font-weight:900;margin-right:2px}
.oex-min-finish-fields{margin-top:12px;padding:14px;border-radius:16px;border:1px solid #e2e8f0;background:linear-gradient(180deg,#f8fafc,#fff);animation:oex-rail-in .4s ease both}
.oex-min-finish-fields .oex-field{margin:0}
.oex-min-finish-fields .oex-req{color:#dc2626;font-style:normal;font-weight:900;margin-right:2px}
@media(max-width:680px){.oex-floating-fields{grid-template-columns:1fr}}
[data-oex-manage] .oex-stat-card{border:1px solid #e2e8f0;border-radius:18px;background:linear-gradient(180deg,#fff,#f8fafc);box-shadow:0 12px 28px rgba(15,23,42,.05)}
[data-oex-manage] .oex-manage-banner{box-shadow:0 22px 48px rgba(14,116,144,.22)}

.oex-take.is-offline::before{content:"\0627\062A\0635\0627\0644 \0627\06CC\0646\062A\0631\0646\062A \0642\0637\0639 \0627\0633\062A \2014 \067E\0627\0633\062E\200C\0647\0627\06CC \0630\062E\06CC\0631\0647\200C\0634\062F\0647 \0645\062D\0641\0648\0638 \0645\06CC\200C\0645\0627\0646\0646\062F.";display:block;background:#7f1d1d;color:#fff;text-align:center;padding:8px;font-size:12px;font-weight:800}

@media(max-width:1100px){
  .oex-settings-access{grid-template-columns:1fr}
  .oex-typed-options{grid-template-columns:repeat(2,minmax(0,1fr))}
  .oex-typed-q{grid-template-columns:1fr}
  .oex-typed-q>header,.oex-typed-stem,.oex-typed-options{grid-column:1}
  .oex-desc-float{
    left:12px;
    right:auto;
    bottom:calc(124px + env(safe-area-inset-bottom,0px));
    z-index:70;
    width:auto;
    max-width:none;
  }
  .oex-desc-float.is-open{pointer-events:auto}
  .oex-desc-float.is-open::before{
    content:"";
    position:fixed;
    inset:0;
    z-index:0;
    background:rgba(15,23,42,.45);
    pointer-events:auto;
  }
  .oex-desc-float-btn{
    position:relative;
    z-index:2;
    padding:14px;
    border-radius:50%;
    width:52px;
    height:52px;
    justify-content:center;
    box-shadow:0 14px 32px rgba(37,99,235,.4);
  }
  .oex-desc-float-btn span{display:none}
  .oex-desc-float-count{
    position:absolute;
    top:-4px;
    left:-4px;
    min-width:20px;
    height:20px;
    padding:0 5px;
    background:#fff;
    color:#1d4ed8;
    box-shadow:0 4px 10px rgba(15,23,42,.18);
  }
  .oex-desc-float-panel{
    position:fixed;
    left:12px;
    right:12px;
    bottom:max(12px,env(safe-area-inset-bottom));
    width:auto;
    max-width:none;
    max-height:min(72vh,560px);
    z-index:1;
    border-radius:20px;
    padding:16px 14px calc(16px + env(safe-area-inset-bottom,0px));
    box-shadow:0 24px 60px rgba(15,23,42,.28);
  }
  .oex-desc-float.is-open .oex-desc-float-btn{display:none}
  .oex-desc-drop{min-height:120px;padding:20px 12px}
  .oex-desc-drop input{
    /* iOS: keep tappable hit area without breaking panel scroll */
    position:absolute;
    inset:0;
    opacity:0.01;
    font-size:20px;
  }
  .oex-desc-drop-desktop{display:none}
  .oex-desc-drop-mobile{display:inline}
  .oex-desc-text{max-height:min(38vh,220px);resize:none}
  .oex-take.is-descriptive .oex-take-side{max-height:none}
  .oex-take.is-descriptive .oex-sheet{max-height:min(68vh,620px)}
  .oex-take.is-descriptive .oex-desc-per .oex-sheet-scroll{padding-bottom:140px}
  .oex-desc-file>span{max-width:120px}
}
@media(max-width:680px){
  .oex-q-options{grid-template-columns:1fr}
  .oex-pdf-system .oex-pdf-stage,.oex-pdf-frame-wrap.is-system .oex-pdf-stage{touch-action:pan-x pan-y;background:#0f172a}
  .oex-pdf-system .oex-pdf-frame,.oex-pdf-frame-wrap.is-system .oex-pdf-frame{transform:none!important;touch-action:manipulation}
  .oex-take-body{padding:8px;padding-bottom:calc(140px + env(safe-area-inset-bottom,0px))}
  .oex-take-main{border-radius:14px;min-height:0}
  .oex-pdf-toolbar{border-radius:14px 14px 0 0}
  .oex-pdf-frame-wrap{border-radius:0 0 14px 14px}
  .oex-timer-modern{width:100%;padding:10px 12px;border-radius:14px;box-shadow:0 8px 20px rgba(15,23,42,.08)}
  .oex-timer-hourglass{width:40px;height:40px;border-radius:12px;font-size:16px}
  .oex-timer-digital strong{font-size:18px}
  .oex-sheet-scroll{padding-bottom:calc(24px + env(safe-area-inset-bottom,0px))}
  .oex-take-dock .oex-dock-finish{font-size:13px;padding:12px}
  .oex-take-dock .oex-dock-link{font-size:12.5px}
  .oex-desc-float{bottom:calc(130px + env(safe-area-inset-bottom,0px))}
}
@media(prefers-reduced-motion:reduce){
  .oex-timer-hourglass,.oex-action-rail .oex-action-btn{animation:none}
}

/* oex refinements 2026-08-20 */
.oex-take.is-offline::before{content:"\0627\062A\0635\0627\0644 \0627\06CC\0646\062A\0631\0646\062A \0642\0637\0639 \0627\0633\062A \2014 \067E\0627\0633\062E\200C\0647\0627\06CC \0630\062E\06CC\0631\0647\200C\0634\062F\0647 \0645\062D\0641\0648\0638 \0645\06CC\200C\0645\0627\0646\0646\062F.";display:block;background:#7f1d1d;color:#fff;text-align:center;padding:8px;font-size:12px;font-weight:800}
.oex-typed-layout{display:grid;grid-template-columns:56px minmax(0,1fr);gap:14px;align-items:start}
.oex-typed-num{width:56px;min-height:56px;border-radius:18px;display:grid;place-items:center;gap:4px;background:linear-gradient(160deg,#ecfeff,#e0f2fe);color:#0e7490;font-size:18px;font-weight:900;border:1px solid #a5f3fc}
.oex-typed-num i{font-size:11px;color:#0369a1}
.oex-typed-main{min-width:0}
.oex-typed-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;justify-items:center;margin-top:12px}
.oex-typed-opt{width:100%;max-width:220px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:12px 10px;border-radius:16px;border:1.5px solid #f9a8d4;background:#fff;color:#9d174d;cursor:pointer;transition:.2s}
.oex-typed-opt.is-selected{background:#db2777;border-color:#db2777;color:#fff}
.oex-typed-opt .oex-opt-badge{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-weight:900;border:1.5px solid currentColor}
.oex-typed-opt .oex-opt-body{font-size:13px;line-height:1.6;width:100%}
.oex-typed-opt img{max-width:100%;max-height:120px;border-radius:10px;object-fit:contain}
.oex-sheet-flag{width:26px;height:28px;border:1px solid #fed7aa;border-radius:7px;background:#fff7ed;color:#c2410c;cursor:pointer;display:grid;place-items:center;font-size:11px;flex:0 0 auto}
.oex-sheet-flag:hover{background:#ffedd5}
.oex-sheet-flag.is-on{background:#fb923c;border-color:#ea580c;color:#fff}
.oex-sheet-row.is-flagged{background:linear-gradient(180deg,#fff7ed,#fff)}
.oex-sheet-row.is-flagged.is-current{background:linear-gradient(180deg,#ffedd5,#f8fafc)}
/* exit fancy variants retired ? compact pink exit used instead */
.oex-stat-grid-6{grid-template-columns:repeat(3,minmax(0,1fr))}
.oex-status-form{margin-top:8px}
.oex-status-btn{appearance:none;border:0;border-radius:999px;padding:6px 12px;font-size:11px;font-weight:800;cursor:pointer}
.oex-status-btn.is-on{background:#fee2e2;color:#b91c1c}
.oex-status-btn.is-off{background:#dcfce7;color:#15803d}
.oex-manage-ops{margin-top:14px}
.oex-back-btn.is-fancy{padding:8px 10px;border-radius:16px;background:#fff;border:1px solid #e2e8f0;box-shadow:0 10px 24px rgba(15,23,42,.05)}
.oex-pdf-stage{flex:0 0 auto;min-height:0;overflow:visible;-webkit-overflow-scrolling:touch;overscroll-behavior:auto;background:#0f172a;display:flex;justify-content:safe center;align-items:flex-start;position:relative;touch-action:pan-x pan-y}
.oex-pdf-stage .oex-pdf-frame{width:100%;height:100%;min-height:0;border:0;transform:none;max-width:none}
.oex-opt-chip{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;padding:10px;border-radius:14px;border:1px solid #fbcfe8;background:#fff}
.oex-opt-chip.is-correct{border-color:#db2777;box-shadow:0 0 0 2px rgba(219,39,119,.15)}
.oex-opt-pick{appearance:none;border:0;background:transparent;cursor:pointer;padding:0}
.oex-opt-img{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#f1f5f9;color:#475569;cursor:pointer;position:relative;overflow:hidden}
.oex-opt-img input{position:absolute;inset:0;opacity:0;cursor:pointer}
.oex-opt-preview{width:100%;max-height:72px;object-fit:contain;border-radius:10px;grid-column:1/-1}
.oex-eq-host,.oex-eq{font-feature-settings:""kern"";letter-spacing:.02em}
@media(max-width:900px){
  .oex-typed-options{grid-template-columns:repeat(2,minmax(0,1fr))}
  .oex-help-grid{grid-template-columns:1fr}
  .oex-stat-grid-6{grid-template-columns:1fr 1fr}
  .oex-typed-layout{grid-template-columns:44px minmax(0,1fr)}
}
@media(max-width:680px){
  .oex-stat-grid-6{grid-template-columns:repeat(2,minmax(0,1fr))}
  .oex-pdf-frame-wrap{min-height:0}
  .oex-pdf-frame-wrap.is-system:not(.is-pdf-zoomed){min-height:0;height:auto}
  .oex-pdf-frame-wrap.is-system.is-pdf-zoomed{min-height:min(45vh,320px)}
}

/* ?? School executive calendar (planner style ? distinct from timetable poster) ?? */
.sc-filter-card{overflow:visible;border:1px solid #e8eef6;background:linear-gradient(180deg,#fff,#f8fafc)}
.sc-filter-tools{display:flex;gap:8px;flex-wrap:wrap}
.sc-filter-bar{display:grid;grid-template-columns:minmax(220px,1.4fr) minmax(120px,.7fr) auto;gap:14px;align-items:end;padding:4px 2px 2px}
.sc-filter-bar.is-org-locked{grid-template-columns:minmax(180px,1.1fr) minmax(120px,.7fr) auto}
.sc-locked-org strong{display:flex;align-items:center;min-height:44px;padding:10px 14px;border-radius:12px;border:1px dashed color-mix(in srgb,var(--org-2,#3b82f6) 35%,#cbd5e1);background:#fff;color:#0f172a;font-size:13px;font-weight:850}
.sc-filter-field{display:flex;flex-direction:column;gap:7px;min-width:0;margin:0}
.sc-filter-field>span{font-size:11px;font-weight:800;color:#64748b;padding-inline:2px}
.sc-filter-field select,.sc-filter-field input{width:100%;min-height:44px;border-radius:12px;border:1px solid #e2e8f0;background:#fff;padding:10px 12px;font-size:13px;font-weight:700;color:#0f172a}
.sc-filter-field select:focus,.sc-filter-field input:focus{outline:none;border-color:color-mix(in srgb,var(--primary,#2563eb) 55%,#94a3b8);box-shadow:0 0 0 4px color-mix(in srgb,var(--primary,#2563eb) 16%,transparent)}
.sc-show-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 18px;border:0;border-radius:12px;cursor:pointer;color:#fff;font-size:13px;font-weight:900;background:linear-gradient(135deg,var(--org-1,var(--primary,#2563eb)),var(--org-2,#3b82f6));box-shadow:0 10px 20px color-mix(in srgb,var(--org-1,var(--primary,#2563eb)) 24%,transparent);transition:transform .18s ease,box-shadow .18s ease}
.sc-show-btn:hover{transform:translateY(-1px);box-shadow:0 14px 24px color-mix(in srgb,var(--org-1,var(--primary,#2563eb)) 30%,transparent)}
.sc-board-wrap{display:flex;flex-direction:column;gap:16px;min-width:0;max-width:100%;width:100%;box-sizing:border-box}
.sc-poster{--sc-ink:#0f172a;--sc-accent:var(--org-2,#f59e0b);--sc-accent-deep:var(--org-1,#d97706);--sc-line:#e2e8f0;--sc-friday:color-mix(in srgb,var(--org-3,#fde68a) 55%,#f8fafc);--sc-inactive:#f1f5f9;position:relative;overflow:hidden;border-radius:18px;border:1px solid #e2e8f0;background:#fff;box-shadow:0 12px 32px rgba(15,23,42,.06);width:100%;max-width:100%;min-width:0}
.sc-poster-glow{position:absolute;inset:auto -20% -30% auto;width:55%;height:55%;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--org-3,#fde68a) 45%,transparent),transparent 70%);pointer-events:none;z-index:0}
.sc-poster-head{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;color:var(--sc-ink);background:linear-gradient(180deg,#fff 0%,color-mix(in srgb,var(--org-3,#fde68a) 22%,#fff) 100%);border-bottom:1px solid #e8eef6}
.sc-poster-head-main{display:flex;align-items:center;gap:12px;min-width:0}
.sc-poster-logo{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(145deg,var(--org-1,#d97706),var(--org-2,#f59e0b));color:#fff;font-size:18px;overflow:hidden;box-shadow:0 8px 16px color-mix(in srgb,var(--org-1,#d97706) 28%,transparent);flex:0 0 auto}
.sc-poster-logo img{width:100%;height:100%;object-fit:contain;display:block;background:#fff}
.sc-poster-copy{min-width:0}
.sc-poster-copy em{display:inline-flex;align-items:center;gap:6px;font-style:normal;font-size:10px;font-weight:800;color:var(--org-1,#b45309);background:color-mix(in srgb,var(--org-3,#fde68a) 55%,#fff);border:1px solid color-mix(in srgb,var(--org-2,#f59e0b) 28%,#e2e8f0);border-radius:8px;padding:4px 9px}
.sc-poster-copy h3{margin:7px 0 2px;font-size:17px;line-height:1.35;color:#0f172a;font-weight:900;white-space:normal;overflow:visible;text-overflow:unset}
.sc-poster-sub{margin:0;font-size:11.5px;font-weight:700;color:#64748b}
.sc-poster-side{display:flex;flex-direction:column;align-items:flex-end;gap:8px;flex:0 0 auto}
.sc-month-badge{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:78px;padding:8px 12px;border-radius:14px;background:#fff;border:1px solid color-mix(in srgb,var(--org-2,#f59e0b) 30%,#e2e8f0);box-shadow:0 6px 14px rgba(15,23,42,.05)}
.sc-month-badge strong{font-size:15px;font-weight:900;color:var(--org-1,#b45309);line-height:1.2}
.sc-month-badge small{font-size:11px;font-weight:800;color:#64748b}
.sc-toolbar-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:6px}
.sc-print-open-btn,.sc-copy-open-btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;border:1px solid color-mix(in srgb,var(--org-2,#f59e0b) 35%,#e2e8f0);background:#fff;color:var(--org-1,#b45309);border-radius:10px;padding:6px 10px;font-size:11px;font-weight:800;text-decoration:none;white-space:nowrap;cursor:pointer;line-height:1.2;min-height:32px}
.sc-print-open-btn i,.sc-copy-open-btn i{font-size:11px}
.sc-print-open-btn:hover,.sc-copy-open-btn:hover{background:color-mix(in srgb,var(--org-3,#fde68a) 45%,#fff);color:var(--org-1,#92400e)}
.sc-grid-scroll{position:relative;z-index:1;overflow:auto;width:100%;max-width:100%;padding:14px;background:
  linear-gradient(90deg,rgba(148,163,184,.08) 1px,transparent 1px) 0 0/22px 22px,
  linear-gradient(rgba(148,163,184,.08) 1px,transparent 1px) 0 0/22px 22px,
  #f8fafc}
.sc-grid{width:100%;min-width:900px;border-collapse:separate;border-spacing:8px;table-layout:fixed;margin:0}
.sc-grid th,.sc-grid td{border:0;vertical-align:top}
.sc-grid thead th{background:#fff;color:#334155;text-align:center;padding:10px 6px;font-size:12px;font-weight:800;border-radius:12px;border:1px solid #e2e8f0;box-shadow:0 2px 0 rgba(15,23,42,.03)}
.sc-grid thead th.is-friday{background:color-mix(in srgb,var(--org-1,#d97706) 88%,#0f172a);color:#fff;border-color:transparent}
.sc-week-head{width:86px;background:color-mix(in srgb,var(--org-3,#fde68a) 55%,#fff)!important;color:var(--org-1,#b45309)!important}
.sc-week-label{width:86px;height:128px;padding:0;vertical-align:middle;background:transparent}
.sc-week-label span{display:grid;place-items:center;box-sizing:border-box;width:100%;height:128px;padding:8px 6px;border-radius:12px;background:color-mix(in srgb,var(--org-3,#fde68a) 40%,#fff);border:1px dashed color-mix(in srgb,var(--org-2,#f59e0b) 35%,#e2e8f0);color:var(--org-1,#92400e);text-align:center;font-size:10.5px;font-weight:900;line-height:1.3}
.sc-day{position:relative;display:table-cell;height:128px;padding:8px;vertical-align:top;background:#fff;border-radius:14px;border:1px solid #e2e8f0;box-shadow:0 4px 10px rgba(15,23,42,.04);transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease;box-sizing:border-box;overflow:hidden}
.sc-day.is-friday{background:var(--sc-friday);border-color:color-mix(in srgb,var(--org-2,#f59e0b) 25%,#e2e8f0)}
.sc-day.is-holiday{background:#e5e7eb;border-color:#cbd5e1;box-shadow:none}
.sc-day.is-holiday.is-friday{background:#e5e7eb}
.sc-day.is-inactive{background:var(--sc-inactive);border-style:dashed;color:#94a3b8;box-shadow:none}
.sc-day.has-event{border-color:color-mix(in srgb,var(--org-2,#f59e0b) 35%,#cbd5e1)}
.sc-day.is-editable{cursor:pointer}
.sc-day.is-editable:hover{transform:translateY(-2px);border-color:var(--org-2,#f59e0b);box-shadow:0 10px 18px color-mix(in srgb,var(--org-1,#d97706) 16%,transparent)}
.sc-day-num{position:absolute;top:6px;right:6px;z-index:2;min-width:24px;height:24px;padding:0 6px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;gap:4px;font-size:11px;font-weight:900;color:#fff;background:linear-gradient(135deg,var(--org-1,#d97706),var(--org-2,#f59e0b));box-shadow:0 4px 10px color-mix(in srgb,var(--org-1,#d97706) 25%,transparent);pointer-events:none}
.sc-day.is-friday .sc-day-num{background:linear-gradient(135deg,#475569,#64748b)}
.sc-day.is-holiday .sc-day-num{background:#64748b;box-shadow:none;padding-inline:7px;min-width:auto;height:auto;min-height:24px;border-radius:9px;max-width:calc(100% - 12px)}
.sc-holiday-tag{font-style:normal;font-size:9px;font-weight:900;color:#dc2626;background:#fff;border-radius:6px;padding:1px 5px;line-height:1.2}
.sc-day-events{position:relative;z-index:1;height:100%;padding-top:30px;box-sizing:border-box;overflow:hidden;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:4px}
.sc-day.is-holiday .sc-day-events{padding-top:34px}
.sc-day-events[data-count="1"],
.sc-day-events[data-count="2"],
.sc-day-events[data-count="3"]{display:flex;flex-direction:column;justify-content:stretch;align-items:stretch;gap:4px}
.sc-day-events[data-count="1"]{--sc-ev-lines:5}
.sc-day-events[data-count="2"]{--sc-ev-lines:3}
.sc-day-events[data-count="3"]{--sc-ev-lines:2}
.sc-day-events[data-count] > .sc-event-pill{flex:1 1 0;min-height:0}
.sc-event-pill{appearance:none;border:1px solid color-mix(in srgb,var(--sc-ev-hex) 28%,transparent);margin:0;width:100%;min-height:0;height:100%;box-sizing:border-box;border-radius:8px;padding:5px 6px;font:inherit;font-size:11px;line-height:1.35;font-weight:800;color:var(--sc-ev-fg);background:var(--sc-ev-bg);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;text-align:center;overflow:hidden;max-width:100%}
.sc-event-pill>span{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:var(--sc-ev-lines,2);overflow:hidden;word-break:break-word;max-width:100%;text-align:center}
.sc-event-pill.is-range{border-style:dashed;border-width:1.5px}
.sc-event-range{display:block;font-size:9px;font-style:normal;font-weight:700;opacity:.85;line-height:1.2;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sc-day-events[data-count="1"] .sc-event-pill{font-size:12px;border-radius:10px;padding:8px}
.sc-day-events[data-count="2"] .sc-event-pill{font-size:11px;padding:6px}
.sc-day-events[data-count="3"] .sc-event-pill{font-size:10.5px;padding:4px 5px}
.sc-event-more{position:absolute;bottom:4px;left:5px;z-index:2;display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:900;color:#64748b;background:#e2e8f0;border-radius:999px;padding:2px 7px;pointer-events:none}
.sc-event-tip{position:fixed;z-index:240;max-width:min(300px,calc(100vw - 24px));padding:11px 13px;border-radius:12px;background:#0f172a;color:#fff;font-size:12.5px;font-weight:750;line-height:1.7;box-shadow:0 16px 36px rgba(15,23,42,.3);pointer-events:none;opacity:0;transform:translateY(6px) scale(.98);transition:opacity .16s ease,transform .18s ease}
.sc-event-tip.is-on{opacity:1;transform:none}
.sc-day-hint{display:inline-flex;align-items:center;justify-content:center;gap:5px;align-self:center;margin-top:auto;margin-bottom:auto;color:#94a3b8;font-size:11px;font-weight:800}
.sc-inactive-mark{position:absolute;inset:0;display:grid;place-items:center;font-size:15px;opacity:.4}
.sc-occasions{display:flex;flex-direction:column;gap:0;min-width:0;max-width:100%;width:100%;overflow:visible;padding:0}
.sc-occasions-box{display:grid;gap:14px;padding:18px;border-radius:16px;border:1px solid #e2e8f0;background:linear-gradient(180deg,#fff,#f8fafc);min-width:0;max-width:100%;width:100%;box-sizing:border-box}
.sc-occasions-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:12px}
.sc-occasions-head h2{margin:0;font-size:16px;font-weight:900;color:#0f172a}
.sc-occasions-head p{margin:4px 0 0;font-size:12px;line-height:1.7;color:#64748b}
.sc-occasions-head a{color:var(--org-1,#b45309);font-weight:800}
.sc-occasions-tools{display:flex;flex-wrap:wrap;gap:8px}
.sc-occasions-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px;min-width:0}
.sc-occasion-item{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border-radius:12px;border:1px solid #e2e8f0;background:#fff;cursor:pointer}
.sc-occasion-item.is-holiday{background:#f3f4f6;border-color:#d1d5db}
.sc-occasion-item.is-applied{opacity:.72;cursor:default}
.sc-occasion-item input{margin-top:3px;accent-color:var(--org-1,#d97706)}
.sc-occasion-day{flex:0 0 auto;min-width:28px;height:28px;border-radius:9px;display:grid;place-items:center;background:#e2e8f0;color:#334155;font-size:12px;font-weight:900}
.sc-occasion-body{min-width:0;display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.sc-occasion-body strong{font-size:12.5px;font-weight:800;color:#0f172a;line-height:1.45}
.sc-occasion-used{font-size:10px;color:#059669;font-weight:800}
.sc-notes{display:flex;flex-direction:column;gap:0;min-width:0;max-width:100%;width:100%;overflow:visible;padding:0}
.sc-notes-box{display:grid;gap:14px;padding:18px;border-radius:16px;border:1px dashed color-mix(in srgb,var(--org-2,#f59e0b) 35%,#e2e8f0);background:linear-gradient(180deg,#fff,color-mix(in srgb,var(--org-3,#fde68a) 18%,#fff));min-width:0;max-width:100%;width:100%;box-sizing:border-box;overflow:visible}
.sc-notes-head{display:flex;flex-direction:column;gap:4px;min-width:0;max-width:100%;padding:0 2px}
.sc-notes-head h2{margin:0;font-size:16px;font-weight:900;color:#0f172a;white-space:normal;overflow:visible;text-overflow:unset;line-height:1.4}
.sc-notes-head p{margin:0;font-size:12px;line-height:1.7;color:#64748b;white-space:normal;overflow:visible;overflow-wrap:anywhere;word-break:break-word}
.sc-notes-list{display:grid;gap:10px;min-width:0;max-width:100%;width:100%}
.sc-notes-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:28px 16px;border:1px dashed color-mix(in srgb,var(--org-2) 40%,#cbd5e1);border-radius:16px;background:rgba(255,255,255,.72);color:#64748b;text-align:center;min-width:0;max-width:100%;width:100%;box-sizing:border-box}
.sc-notes-empty i{font-size:22px;color:var(--org-1);flex:0 0 auto}
.sc-notes-empty p{margin:0;max-width:100%;white-space:normal;overflow:visible;overflow-wrap:anywhere;word-break:break-word;font-size:13px;line-height:1.7}
.sc-note-card{display:grid;grid-template-columns:6px minmax(0,1fr) auto;gap:12px;align-items:stretch;padding:14px 14px 14px 12px;border-radius:16px;border:1px solid color-mix(in srgb,var(--org-3) 45%,#e2e8f0);background:#fff;box-shadow:0 8px 20px color-mix(in srgb,var(--org-1) 7%,transparent);animation:sc-note-in .45s cubic-bezier(.22,1,.36,1) both;min-width:0;max-width:100%;width:100%;overflow:hidden;box-sizing:border-box}
.sc-note-card.is-all-months{border-color:color-mix(in srgb,var(--org-1) 35%,#e2e8f0);background:linear-gradient(135deg,color-mix(in srgb,var(--org-3) 30%,#fff),#fff)}
.sc-note-accent{border-radius:999px;background:linear-gradient(180deg,var(--org-1),var(--org-2));min-height:100%}
.sc-note-content{min-width:0;max-width:100%;overflow:hidden}
.sc-note-scope{display:inline-flex;align-items:center;margin-bottom:8px;padding:3px 9px;border-radius:999px;font-size:10px;font-weight:800;letter-spacing:.02em;color:#fff;background:linear-gradient(135deg,var(--org-1),var(--org-2))}
.sc-note-scope.is-month{color:#334155;background:color-mix(in srgb,var(--org-3) 55%,#e2e8f0)}
.sc-note-content p{margin:0 0 8px;font-size:13px;line-height:1.7;color:#1e293b;font-weight:650;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;max-width:100%}
.sc-note-content small{display:block;color:#64748b;font-size:10.5px;font-weight:700;overflow-wrap:anywhere;word-break:break-word}
.sc-note-actions{display:flex;flex-direction:column;gap:6px;flex:0 0 auto}
.sc-note-form{display:grid;gap:12px;padding:14px;border-radius:16px;border:1px solid color-mix(in srgb,var(--org-3) 40%,#e2e8f0);background:rgba(255,255,255,.88);min-width:0;max-width:100%;width:100%;overflow:visible;box-sizing:border-box}
.sc-note-body-field{display:grid;gap:6px;min-width:0;max-width:100%}
.sc-note-body-field span{font-size:11px;font-weight:800;color:#64748b}
.sc-note-form textarea{min-height:88px;resize:vertical;width:100%;max-width:100%;box-sizing:border-box;overflow-wrap:anywhere;word-break:break-word}
.sc-note-scope-field{margin:0;padding:0;border:0;display:grid;gap:8px;min-width:0;max-width:100%}
.sc-note-scope-field legend{padding:0;font-size:11px;font-weight:800;color:#64748b}
.sc-note-scope-option{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:12px;border:1px solid #e2e8f0;background:#fff;cursor:pointer;font-size:12px;font-weight:750;color:#334155;min-width:0;max-width:100%;box-sizing:border-box}
.sc-note-scope-option span{min-width:0;overflow-wrap:anywhere;white-space:normal}
.sc-note-scope-option:has(input:checked){border-color:color-mix(in srgb,var(--org-1) 45%,#cbd5e1);background:color-mix(in srgb,var(--org-3) 35%,#fff);box-shadow:0 0 0 3px color-mix(in srgb,var(--org-1) 12%,transparent)}
.sc-note-scope-option input{accent-color:var(--org-1);flex:0 0 auto}
.sc-note-form-actions{display:flex;justify-content:flex-start;flex-wrap:wrap;gap:8px}
.sc-day-event-list{display:grid;gap:8px;margin-bottom:14px}
.sc-day-editor{display:grid;gap:10px;width:100%;min-width:0}
.sc-day-editor>label{width:100%;min-width:0}
.sc-date-mode{display:grid;gap:8px}
.sc-date-mode>span{font-size:12px;font-weight:800;color:#64748b}
.sc-range-fields{display:grid;gap:8px;padding:10px 12px;border-radius:14px;background:#f8fafc;border:1px solid #e2e8f0}
.sc-range-end-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.sc-range-end-row label{display:grid;gap:4px;font-size:12px;font-weight:700;color:#475569}
.sc-range-end-row select{width:100%;min-width:0}
.sc-day-event-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;padding:10px 12px;border-radius:14px;background:var(--sc-ev-bg);color:var(--sc-ev-fg);border:1px solid color-mix(in srgb,var(--sc-ev-hex) 25%,transparent)}
.sc-day-event-item.is-range{border-style:dashed}
.sc-day-event-main{display:grid;gap:2px;min-width:0}
.sc-day-event-item strong{font-size:13px;line-height:1.5}
.sc-day-event-item small{font-size:11px;opacity:.85}
.sc-day-event-item .sc-day-event-actions{display:flex;gap:4px}
.sc-color-picker{display:grid;gap:8px;margin-top:10px;width:100%;min-width:0;box-sizing:border-box}
.sc-color-picker-label{font-size:11px;font-weight:800;color:#64748b}
.sc-color-options{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;width:100%;min-width:0;box-sizing:border-box}
.sc-color-option{position:relative;cursor:pointer;display:block!important;width:100%;min-width:0;margin:0;padding:0;gap:0;flex:none}
.sc-color-option input{position:absolute;opacity:0;pointer-events:none;inset:0;margin:0}
.sc-color-option span{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;width:100%;box-sizing:border-box;min-height:56px;border-radius:14px;padding:10px 6px;background:var(--sc-pick-bg);border:2px solid color-mix(in srgb,var(--sc-pick-hex) 18%,transparent);color:var(--sc-pick-fg,#0f172a);transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease;writing-mode:horizontal-tb}
.sc-color-option span i{width:14px;height:14px;border-radius:50%;background:var(--sc-pick-hex);box-shadow:0 0 0 3px color-mix(in srgb,var(--sc-pick-hex) 18%,transparent);flex:0 0 auto}
.sc-color-option span em{font-style:normal;font-size:12px;font-weight:900;line-height:1.2;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;writing-mode:horizontal-tb}
.sc-color-option:hover span{transform:translateY(-1px);border-color:var(--sc-pick-hex)}
.sc-color-option input:checked+span{border-color:var(--sc-pick-hex);box-shadow:0 0 0 3px color-mix(in srgb,var(--sc-pick-hex) 24%,transparent)}
.sc-day-dialog-card .form-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.sc-month-fabs{position:fixed;left:12px;bottom:18px;z-index:75;display:flex;flex-direction:column-reverse;align-items:stretch;gap:6px;max-height:calc(100vh - 110px);width:52px}
.sc-month-fabs-head{appearance:none;border:0;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:8px 4px;border-radius:12px;background:linear-gradient(135deg,var(--org-1,#1d4ed8),var(--org-2,#2563eb));color:#fff;font:inherit;box-shadow:0 10px 22px color-mix(in srgb,var(--org-1,#1d4ed8) 28%,transparent);transition:transform .2s ease,box-shadow .2s ease}
.sc-month-fabs-head:active{transform:scale(.96)}
.sc-month-fabs-head small{font-size:8px;font-weight:800;opacity:.9;line-height:1}
.sc-month-fabs-head strong{font-size:11px;font-weight:900;letter-spacing:.02em;line-height:1.2}
.sc-month-fabs-head>i{font-size:9px;opacity:.85;transition:transform .28s cubic-bezier(.22,1,.36,1)}
.sc-month-fabs:not(.is-collapsed) .sc-month-fabs-head>i{transform:rotate(180deg)}
.sc-month-fabs-list{display:flex;flex-direction:column;gap:4px;overflow:hidden;padding:0 1px;scrollbar-width:thin;max-height:0;opacity:0;transform:translateY(12px) scale(.94);transform-origin:bottom center;pointer-events:none;visibility:hidden;transition:max-height .38s cubic-bezier(.22,1,.36,1),opacity .28s ease,transform .34s cubic-bezier(.22,1,.36,1),visibility 0s linear .38s}
.sc-month-fabs:not(.is-collapsed) .sc-month-fabs-list{max-height:min(70vh,520px);opacity:1;transform:none;pointer-events:auto;visibility:visible;overflow:auto;transition:max-height .42s cubic-bezier(.22,1,.36,1),opacity .26s ease,transform .34s cubic-bezier(.22,1,.36,1),visibility 0s}
.sc-month-fabs:not(.is-collapsed) .sc-month-fab{animation:sc-month-fab-in .32s cubic-bezier(.22,1,.36,1) both}
.sc-month-fabs:not(.is-collapsed) .sc-month-fab:nth-child(1){animation-delay:.02s}
.sc-month-fabs:not(.is-collapsed) .sc-month-fab:nth-child(2){animation-delay:.04s}
.sc-month-fabs:not(.is-collapsed) .sc-month-fab:nth-child(3){animation-delay:.06s}
.sc-month-fabs:not(.is-collapsed) .sc-month-fab:nth-child(4){animation-delay:.08s}
.sc-month-fabs:not(.is-collapsed) .sc-month-fab:nth-child(5){animation-delay:.1s}
.sc-month-fabs:not(.is-collapsed) .sc-month-fab:nth-child(6){animation-delay:.12s}
.sc-month-fabs:not(.is-collapsed) .sc-month-fab:nth-child(7){animation-delay:.14s}
.sc-month-fabs:not(.is-collapsed) .sc-month-fab:nth-child(8){animation-delay:.16s}
.sc-month-fabs:not(.is-collapsed) .sc-month-fab:nth-child(9){animation-delay:.18s}
.sc-month-fabs:not(.is-collapsed) .sc-month-fab:nth-child(10){animation-delay:.2s}
.sc-month-fabs:not(.is-collapsed) .sc-month-fab:nth-child(11){animation-delay:.22s}
.sc-month-fabs:not(.is-collapsed) .sc-month-fab:nth-child(12){animation-delay:.24s}
@keyframes sc-month-fab-in{from{opacity:0;transform:translateY(8px) scale(.9)}to{opacity:1;transform:none}}
.sc-month-fab{appearance:none;text-decoration:none;border:1px solid color-mix(in srgb,var(--org-2,#2563eb) 18%,#e2e8f0);border-radius:10px;padding:7px 4px;display:flex;align-items:center;justify-content:center;gap:0;background:rgba(255,255,255,.96);color:#334155;font:inherit;font-size:11px;font-weight:800;box-shadow:0 6px 14px rgba(15,23,42,.08);backdrop-filter:blur(8px);transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease,background .15s ease,color .15s ease}
.sc-month-fab b{width:auto;flex:0 0 auto;text-align:center;font-size:11px;color:var(--org-1,#1d4ed8)}
.sc-month-fab span{display:none}
.sc-month-fab:hover{transform:translateX(2px);border-color:color-mix(in srgb,var(--org-2,#2563eb) 45%,#cbd5e1);box-shadow:0 10px 18px color-mix(in srgb,var(--org-1,#1d4ed8) 18%,transparent)}
.sc-month-fab.is-active{background:linear-gradient(135deg,var(--org-1,#1d4ed8),var(--org-2,#2563eb));color:#fff;border-color:transparent;box-shadow:0 10px 20px color-mix(in srgb,var(--org-1,#1d4ed8) 32%,transparent)}
.sc-month-fab.is-active b{color:#fff}
.sc-month-tabs{display:flex;flex-wrap:nowrap;align-items:stretch;gap:3px;width:100%;box-sizing:border-box;padding:6px 8px;border-radius:12px;border:1px solid color-mix(in srgb,var(--org-2,#2563eb) 16%,#e2e8f0);background:linear-gradient(180deg,#fff,color-mix(in srgb,var(--org-3,#dbeafe) 22%,#f8fafc))}
.sc-month-tab{appearance:none;text-decoration:none;flex:1 1 0;min-width:0;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:5px 2px;border-radius:8px;border:1px solid transparent;background:transparent;color:#475569;font:inherit;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease,transform .15s ease}
.sc-month-tab b{font-size:10px;font-weight:900;line-height:1.1;color:var(--org-1,#1d4ed8)}
.sc-month-tab span{font-size:8px;font-weight:800;line-height:1.1;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.sc-month-tab:hover{background:rgba(255,255,255,.92);border-color:color-mix(in srgb,var(--org-2,#2563eb) 24%,#e2e8f0);transform:translateY(-1px)}
.sc-month-tab.is-active{background:linear-gradient(135deg,var(--org-1,#1d4ed8),var(--org-2,#2563eb));color:#fff;border-color:transparent;box-shadow:0 6px 14px color-mix(in srgb,var(--org-1,#1d4ed8) 28%,transparent)}
.sc-month-tab.is-active b,.sc-month-tab.is-active span{color:#fff}
.sc-month-tab.is-disabled,.sc-month-fab.is-disabled{
  opacity:.42;cursor:not-allowed;pointer-events:none;filter:grayscale(1);
  background:#f1f5f9!important;border-color:#e2e8f0!important;color:#94a3b8!important;
  box-shadow:none!important;transform:none!important;
}
.sc-month-tab.is-disabled b,.sc-month-tab.is-disabled span,
.sc-month-fab.is-disabled b,.sc-month-fab.is-disabled span{color:#94a3b8!important}
.sc-copy-body{display:grid;grid-template-columns:1fr;gap:12px}
.sc-print-toolbar{gap:10px;flex-wrap:wrap}
.sc-print-hint{max-width:210mm;margin:0 auto 14px;text-align:center;color:#64748b;font-size:11px}
.sc-print-stack{display:flex;flex-direction:column;gap:18px}
.sc-print-page{--sc-ink:#0f172a;--sc-line:#334155;--sc-friday:#e2e8f0;--sc-inactive:#f1f5f9;box-sizing:border-box;width:100%;max-width:297mm;margin:0 auto;padding:8mm;border:1px solid #dbe3ee;border-radius:12px;background:#fff;color:var(--sc-ink);display:flex;flex-direction:column;break-after:page;page-break-after:always;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.sc-print-page:last-child{break-after:auto;page-break-after:auto}
.sc-print-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:8px}
.sc-print-brand{display:flex;align-items:flex-start;gap:10px;min-width:0}
.sc-print-logo{width:42px;height:42px;border-radius:10px;display:grid;place-items:center;background:color-mix(in srgb,var(--org-1,#2563eb) 12%,#fff);color:var(--org-1,#2563eb);border:1px solid color-mix(in srgb,var(--org-1,#2563eb) 25%,#e2e8f0);overflow:hidden;flex:0 0 auto}
.sc-print-logo img{width:100%;height:100%;object-fit:contain}
.sc-print-brand em{display:block;font-style:normal;font-size:10px;font-weight:800;color:#64748b}
.sc-print-brand h1{margin:4px 0;font-size:15px;line-height:1.4}
.sc-print-brand p{margin:0;font-size:11px;color:#475569}
.sc-print-month{font-size:13px;font-weight:900;white-space:nowrap;padding:6px 10px;border-radius:10px;background:color-mix(in srgb,var(--org-3,#bfdbfe) 45%,#fff);border:1px solid color-mix(in srgb,var(--org-2,#3b82f6) 25%,#e2e8f0)}
.sc-print-grid{width:100%;border-collapse:collapse;border-spacing:0;table-layout:fixed;border:1.5pt solid #0f172a}
.sc-print-grid th,.sc-print-grid td{border:1pt solid #0f172a;vertical-align:top;outline:none}
.sc-print-grid thead th{background:color-mix(in srgb,var(--org-1,#1d4ed8) 88%,#0f172a);color:#fff;text-align:center;padding:5px 4px;font-size:10px;font-weight:800;border:1pt solid #0f172a}
.sc-print-grid thead th.is-friday{background:color-mix(in srgb,var(--org-2,#64748b) 70%,#475569)}
.sc-print-week-head,.sc-print-week-label{width:54px;text-align:center;font-size:9px;font-weight:900;padding:4px 2px;background:color-mix(in srgb,var(--org-3,#bfdbfe) 40%,#fff);color:var(--sc-ink);border:1pt solid #0f172a}
.sc-print-day{position:relative;height:28mm;padding:4px;background:#fff;border:1pt solid #0f172a}
.sc-print-day.is-friday{background:var(--sc-friday)}
.sc-print-day.is-inactive{background:var(--sc-inactive)}
.sc-print-day-body{height:calc(100% - 14px);overflow:hidden;display:flex;flex-direction:column;justify-content:center;gap:3px}
.sc-print-event{border-radius:7px;padding:5px 6px;font-size:11.5px;line-height:1.4;font-weight:800;color:var(--sc-ev-fg);background:var(--sc-ev-bg);border:1px solid color-mix(in srgb,var(--sc-ev-hex) 32%,transparent);overflow:hidden;display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center;box-sizing:border-box;max-width:100%}
.sc-print-event.is-range{border-style:dashed}
.sc-print-event>small{font-size:9px;font-weight:700;opacity:.85}
.sc-print-day.is-holiday{background:#e5e7eb!important}
.sc-print-day-num{position:absolute;left:5px;bottom:3px;font-size:11px;font-weight:900;color:var(--org-1,#1d4ed8);display:inline-flex;align-items:center;gap:4px}
.sc-print-day.is-holiday .sc-print-day-num{color:#334155}
.sc-print-day .sc-holiday-tag{font-size:8px;padding:1px 4px;background:#fff;border:1px solid #fecaca;color:#dc2626;font-style:normal;font-weight:900;border-radius:4px}
.sc-print-notes{margin-top:8px;padding-top:6px;border-top:1.5pt solid #0f172a;flex:0 0 auto;min-width:0;overflow:hidden}
.sc-print-notes-line{margin:0;font-size:9.5px;line-height:1.35;font-weight:700;color:#334155;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sc-print-notes-line strong{font-weight:900;color:var(--org-1,#1d4ed8);margin-left:6px}
@media print{
  .sc-print-hint,.sc-print-toolbar,.sc-month-fabs{display:none!important}
  .sc-print-stack{gap:0}
  .sc-print-page{
    max-width:none;margin:0;padding:0;border:0;border-radius:0;box-shadow:none;
    box-sizing:border-box;width:285mm;max-width:285mm;height:198mm;max-height:198mm;
    overflow:hidden;display:flex;flex-direction:column;
    break-after:page;page-break-after:always;break-inside:avoid;page-break-inside:avoid;
    -webkit-print-color-adjust:exact;print-color-adjust:exact
  }
  .sc-print-page:last-child{break-after:auto;page-break-after:auto}
  .sc-print-head{flex:0 0 auto;margin-bottom:4px}
  .sc-print-brand h1{margin:2px 0;font-size:13px}
  .sc-print-brand p,.sc-print-brand em{font-size:9px}
  .sc-print-logo{width:34px;height:34px}
  .sc-print-month{font-size:11px;padding:4px 8px}
  .sc-print-grid{flex:1 1 auto;min-height:0;height:100%;border:1.5pt solid #000!important}
  .sc-print-grid th,.sc-print-grid td,.sc-print-day,.sc-print-week-head,.sc-print-week-label{border:1pt solid #000!important}
  .sc-print-grid thead th{padding:3px 2px;font-size:9px}
  .sc-print-week-head,.sc-print-week-label{width:44px;font-size:8px;padding:2px}
  .sc-print-day{height:24mm;max-height:24mm;padding:3px}
  .sc-print-day-body{height:calc(100% - 12px);gap:2px}
  .sc-print-event{font-size:10px;padding:3px 4px;line-height:1.25;-webkit-line-clamp:2}
  .sc-print-day-num{font-size:10px;left:3px;bottom:2px}
  .sc-print-notes{margin-top:3px;padding-top:2px;flex:0 0 auto;max-height:6mm;overflow:hidden;border-top-width:1pt}
  .sc-print-notes-line{font-size:8px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
}
.school-calendar-embed{display:flex;flex-direction:column;gap:14px}
.profile-calendar-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.profile-calendar-tab{border:1px solid #e2e8f0;background:#fff;border-radius:999px;padding:8px 12px;font-size:11px;font-weight:800;color:#475569;cursor:pointer}
.profile-calendar-tab.is-active{background:linear-gradient(135deg,var(--org-1, #2563eb),var(--org-2, #3b82f6));color:#fff;border-color:transparent;box-shadow:0 8px 18px rgba(37,99,235,.18)}
.profile-calendar-panel[hidden]{display:none!important}
@keyframes sc-note-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(max-width:980px){
  .sc-filter-bar{grid-template-columns:1fr 1fr;gap:12px}
  .sc-filter-bar.is-org-locked{grid-template-columns:1fr 1fr}
  .sc-show-btn{grid-column:1/-1}
  .sc-poster-head{flex-wrap:wrap;align-items:stretch;gap:12px}
  .sc-poster-head-main{flex:1 1 220px}
  .sc-poster-side{flex:1 1 100%;width:100%;align-items:stretch}
  .sc-month-badge{align-self:flex-start}
  .sc-toolbar-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;width:100%}
  .sc-print-open-btn,.sc-copy-open-btn{width:100%;min-width:0;justify-content:center;white-space:normal;text-align:center;padding:10px 8px;min-height:42px;line-height:1.35}
}
@media(max-width:680px){
  .sc-filter-card .section-head{flex-direction:column;align-items:stretch;gap:10px}
  .sc-filter-tools{width:100%}
  .sc-filter-tools .app-action-btn{width:100%;justify-content:center}
  .sc-filter-bar{grid-template-columns:1fr}
  .sc-board-wrap{box-sizing:border-box}
  .sc-poster-head{flex-direction:column;align-items:stretch;padding:14px 12px;gap:12px}
  .sc-poster-head-main{width:100%;align-items:flex-start}
  .sc-poster-logo{width:42px;height:42px;border-radius:12px;font-size:16px}
  .sc-poster-copy em{font-size:9.5px;padding:3px 8px}
  .sc-poster-copy h3{margin:6px 0 2px;font-size:15px}
  .sc-poster-sub{font-size:11px}
  .sc-poster-side{width:100%;align-items:stretch;gap:10px}
  .sc-month-badge{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:10px;width:100%;min-width:0;padding:10px 12px;border-radius:12px}
  .sc-month-badge strong{font-size:14px}
  .sc-month-badge small{font-size:11px}
  .sc-toolbar-row{grid-template-columns:1fr;gap:8px}
  .sc-print-open-btn,.sc-copy-open-btn{width:100%;font-size:12px;padding:11px 12px;border-radius:12px;min-height:44px}
  .sc-grid-scroll{padding:10px 8px 12px}
  .sc-grid{min-width:720px;border-spacing:5px}
  .sc-day{height:118px;padding:7px;border-radius:12px}
  .sc-week-head,.sc-week-label{width:64px}
  .sc-week-label{height:118px}
  .sc-week-label span{height:118px;font-size:9.5px;padding:6px 4px}
  .sc-day-num{top:5px;right:5px;min-width:22px;height:22px;font-size:10.5px}
  .sc-day-events{padding-top:28px;gap:3px}
  .sc-day-events[data-count="1"] .sc-event-pill{font-size:11px;padding:6px}
  .sc-day-events[data-count="2"] .sc-event-pill,
  .sc-day-events[data-count="3"] .sc-event-pill{font-size:10px;padding:4px}
  .sc-occasions-box,.sc-notes-box{padding:14px 12px;border-radius:14px}
  .sc-occasions-head{flex-direction:column;align-items:stretch}
  .sc-occasions-tools{width:100%;display:grid;grid-template-columns:1fr;gap:8px}
  .sc-occasions-tools .secondary-btn,
  .sc-occasions-tools .primary-btn{width:100%;justify-content:center}
  .sc-occasions-list{grid-template-columns:1fr}
  .sc-note-card{grid-template-columns:5px minmax(0,1fr);gap:10px;padding:12px}
  .sc-note-actions{grid-column:2;flex-direction:row;justify-content:flex-end}
  .sc-color-options{gap:6px;grid-template-columns:repeat(5,minmax(0,1fr))}
  .sc-color-option span{min-height:50px;padding:8px 4px}
  .sc-color-option span em{font-size:11px}
  .sc-month-fabs{left:50%;right:auto;bottom:max(86px,calc(env(safe-area-inset-bottom) + 78px));transform:translateX(-50%);width:auto;max-width:min(340px,calc(100vw - 20px));align-items:center}
  .sc-month-tabs{display:none!important}
  .sc-month-fabs-head{flex-direction:row;gap:8px;padding:10px 16px;border-radius:999px;min-width:132px;box-shadow:0 12px 28px color-mix(in srgb,var(--org-1,#1d4ed8) 32%,transparent)}
  .sc-month-fabs-head small{font-size:10px}
  .sc-month-fabs-head strong{font-size:13px}
  .sc-month-fabs-head>i{font-size:10px;margin-right:2px}
  .sc-month-fabs-list{flex-direction:row;flex-wrap:wrap;justify-content:center;gap:6px;width:100%;max-height:0;padding:0 10px;border-radius:16px;background:rgba(255,255,255,.96);border:1px solid transparent;box-shadow:none;backdrop-filter:blur(10px);transform:translateY(14px) scale(.96);transform-origin:bottom center}
  .sc-month-fabs:not(.is-collapsed) .sc-month-fabs-list{max-height:min(42vh,280px);padding:10px;border-color:color-mix(in srgb,var(--org-2,#2563eb) 18%,#e2e8f0);box-shadow:0 14px 34px rgba(15,23,42,.16)}
  .sc-month-fab{min-width:44px;padding:9px 8px;border-radius:12px}
  .sc-month-fab b{font-size:12px}
  .sc-month-fab:hover{transform:translateY(-1px)}
  .sc-day-dialog.modern-dialog{width:calc(100% - 14px)}
  .sc-day-dialog-card .form-actions{flex-direction:column-reverse;align-items:stretch}
  .sc-day-dialog-card .form-actions .secondary-btn,
  .sc-day-dialog-card .form-actions .primary-btn{width:100%;justify-content:center}
  .sc-range-end-row{grid-template-columns:1fr}
}

/* ---- Animated school-themed error pages (full page, no chrome) ---- */
html:has(.err-page){height:100%;overflow:auto}
body.guest-body:has(.err-page){padding:0;margin:0;min-height:100dvh;height:auto;align-items:stretch;justify-content:stretch;overflow-x:hidden;overflow-y:auto}
@media(max-width:680px){body.guest-body:has(.err-page){padding-bottom:0}}
body.guest-body:has(.err-page) .guest-shell{max-width:none;width:100%;min-height:100dvh;display:flex;flex-direction:column;flex:1}
body.guest-body:has(.err-page) .ambient{z-index:0}
body.guest-body:has(.err-page) .mobile-nav,body.guest-body:has(.err-page) .sidebar-backdrop{display:none!important}
.err-page{position:relative;isolation:isolate;overflow:hidden;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(20px,4vw,48px);align-items:center;justify-content:center;box-sizing:border-box;width:100%;flex:1;min-height:100dvh;margin:0;padding:clamp(24px,5vw,56px) clamp(18px,6vw,80px);border:0;border-radius:0;box-shadow:none;background:linear-gradient(145deg,#ffffff 0%,#f7fbff 48%,#fff8eb 100%)}
.err-page-inner{display:contents}
.err-page-glow{position:absolute;inset:auto -12% -30% 35%;height:70%;border-radius:50%;background:radial-gradient(circle,rgba(250,204,21,.22),transparent 68%);pointer-events:none;z-index:0;animation:err-pageGlow 6s ease-in-out infinite}
.err-page-stage{position:relative;z-index:1;width:100%;max-width:440px;min-height:min(360px,42vh);margin-inline:auto;display:grid;place-items:center}
.err-page-board{position:relative;width:min(100%,360px);z-index:1;animation:err-pageBoardIn .7s cubic-bezier(.22,1,.36,1) both}
.err-page-board-frame{padding:14px;border-radius:18px;background:linear-gradient(160deg,#8b5a2b,#6b4423 55%,#5a381c);box-shadow:0 22px 40px rgba(91,58,28,.28),inset 0 1px 0 rgba(255,255,255,.18)}
.err-page-board-screen{position:relative;overflow:hidden;aspect-ratio:16/11;border-radius:10px;background:linear-gradient(160deg,#1f6b4a,#145239 60%,#0f3f2c);box-shadow:inset 0 0 0 2px rgba(255,255,255,.06),inset 0 18px 40px rgba(0,0,0,.18);display:grid;place-items:center}
.err-page--403 .err-page-board-screen{background:linear-gradient(160deg,#b45309,#92400e 60%,#78350f)}
.err-page--403{background:linear-gradient(145deg,#ffffff 0%,#fff7ed 48%,#fff1f2 100%)}
.err-page--403 .err-page-glow{background:radial-gradient(circle,rgba(251,146,60,.28),transparent 68%)}
.err-page--403 .err-page-eyebrow{background:#fff7ed;color:#c2410c}
.err-page--403 .err-page-backpack{background:linear-gradient(135deg,#f59e0b,#ea580c);box-shadow:0 14px 28px rgba(234,88,12,.28)}
.err-page--403 .err-page-hints i{color:#ea580c}
.err-page--419 .err-page-board-screen{background:linear-gradient(160deg,#0369a1,#075985 60%,#0c4a6e)}
.err-page--419{background:linear-gradient(145deg,#ffffff 0%,#f0f9ff 48%,#ecfeff 100%)}
.err-page--419 .err-page-glow{background:radial-gradient(circle,rgba(14,165,233,.24),transparent 68%)}
.err-page--419 .err-page-eyebrow{background:#e0f2fe;color:#0369a1}
.err-page--419 .err-page-backpack{background:linear-gradient(135deg,#0ea5e9,#0284c7);box-shadow:0 14px 28px rgba(2,132,199,.28)}
.err-page--419 .err-page-hints i{color:#0284c7}
.err-page--419 .err-page-countdown{background:#e0f2fe;border-color:#7dd3fc;color:#075985}
.err-page--500 .err-page-board-screen{background:linear-gradient(160deg,#be123c,#9f1239 60%,#881337)}
.err-page--500{background:linear-gradient(145deg,#ffffff 0%,#fff1f2 48%,#f8fafc 100%)}
.err-page--500 .err-page-glow{background:radial-gradient(circle,rgba(244,63,94,.22),transparent 68%)}
.err-page--500 .err-page-eyebrow{background:#fff1f2;color:#e11d48}
.err-page--500 .err-page-backpack{background:linear-gradient(135deg,#f43f5e,#e11d48);box-shadow:0 14px 28px rgba(225,29,72,.28)}
.err-page--500 .err-page-hints i{color:#e11d48}
.err-page:has(.err-page-debug){grid-template-columns:minmax(0,1fr);align-content:start;min-height:100dvh;overflow:auto}
.err-page:has(.err-page-debug) .err-page-stage{max-width:360px;min-height:220px}
.err-page:has(.err-page-debug) .err-page-copy{max-width:920px}
.err-page-debug{margin-top:22px;text-align:right;border:1px solid #fecdd3;border-radius:18px;background:rgba(255,255,255,.92);box-shadow:0 12px 28px rgba(225,29,72,.08);overflow:hidden}
.err-page-debug>header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;background:linear-gradient(135deg,#fff1f2,#ffe4e6);border-bottom:1px solid #fecdd3}
.err-page-debug>header strong{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:#9f1239}
.err-page-debug>header small{font-size:11px;color:#be123c;background:#fff;border:1px solid #fecdd3;border-radius:999px;padding:3px 9px}
.err-page-debug-list{display:flex;flex-direction:column;gap:0;max-height:min(52vh,520px);overflow:auto}
.err-page-debug-item{padding:14px;border-bottom:1px solid #ffe4e6}
.err-page-debug-item:last-child{border-bottom:0}
.err-page-debug-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px}
.err-page-debug-index{display:inline-grid;place-items:center;min-width:28px;height:22px;padding:0 7px;border-radius:999px;background:#e11d48;color:#fff;font-size:10px;font-weight:800}
.err-page-debug-meta code{font-family:ui-monospace,Consolas,monospace;font-size:11px;color:#9f1239;background:#fff1f2;border:1px solid #fecdd3;border-radius:8px;padding:3px 8px;direction:ltr;unicode-bidi:plaintext}
.err-page-debug-meta em{font-style:normal;font-size:10px;color:#64748b}
.err-page-debug-message{margin:0;font-size:12.5px;line-height:1.9;color:#1f2937;white-space:pre-wrap;word-break:break-word}
.err-page-debug-file{margin:8px 0 0;font-size:11px;color:#64748b;direction:ltr;text-align:left;unicode-bidi:plaintext;word-break:break-all}
.err-page-debug-file i{margin-left:6px;color:#e11d48}
.err-page-debug-trace{margin-top:10px;border:1px dashed #fecdd3;border-radius:12px;background:#fffafa;overflow:hidden}
.err-page-debug-trace summary{cursor:pointer;padding:8px 12px;font-size:11px;font-weight:700;color:#be123c;list-style:none}
.err-page-debug-trace summary::-webkit-details-marker{display:none}
.err-page-debug-trace[open] summary{border-bottom:1px solid #fecdd3;background:#fff1f2}
.err-page-debug-trace pre{margin:0;padding:12px;max-height:240px;overflow:auto;font-family:ui-monospace,Consolas,monospace;font-size:10.5px;line-height:1.7;color:#334155;direction:ltr;text-align:left;white-space:pre-wrap;word-break:break-word}
@media(max-width:900px){
  .err-page:has(.err-page-debug) .err-page-stage{min-height:180px}
  .err-page-debug-list{max-height:none}
}
.err-page--503 .err-page-board-screen{background:linear-gradient(160deg,#1d4ed8,#1e3a8a 60%,#172554)}
.err-page--503{background:linear-gradient(145deg,#ffffff 0%,#eff6ff 48%,#f8fafc 100%)}
.err-page--503 .err-page-glow{background:radial-gradient(circle,rgba(59,130,246,.26),transparent 68%)}
.err-page--503 .err-page-eyebrow{background:#eff6ff;color:#1d4ed8}
.err-page--503 .err-page-backpack{background:linear-gradient(135deg,#3b82f6,#1d4ed8);box-shadow:0 14px 28px rgba(37,99,235,.28)}
.err-page--503 .err-page-hints i{color:#2563eb}
.err-page-chalk-lines{position:absolute;inset:18px 22px auto;height:54%;opacity:.12;background:repeating-linear-gradient(transparent,transparent 18px,rgba(255,255,255,.55) 18px,rgba(255,255,255,.55) 19px);pointer-events:none}
.err-page-code{position:relative;z-index:1;font-size:clamp(56px,12vw,96px);line-height:1;letter-spacing:.04em;color:#f8fafc;text-shadow:0 2px 0 rgba(255,255,255,.18),0 10px 24px rgba(0,0,0,.25);font-weight:800;animation:err-pageChalk .9s ease .15s both}
.err-page-chalk-note{position:absolute;bottom:18px;left:0;right:0;text-align:center;font-style:normal;font-size:clamp(12px,2.8vw,14px);font-weight:700;color:rgba(255,250,230,.88);letter-spacing:.02em;animation:err-pageFadeUp .7s ease .45s both}
.err-page-eraser{position:absolute;bottom:12px;right:18px;width:42px;height:14px;border-radius:4px;background:linear-gradient(180deg,#f8fafc,#cbd5e1);box-shadow:0 2px 6px rgba(0,0,0,.2);animation:err-pageEraser 5.5s ease-in-out infinite}
.err-page-chalk{position:absolute;bottom:14px;left:22px;width:34px;height:8px;border-radius:99px;background:linear-gradient(90deg,#fff,#e2e8f0);transform:rotate(-12deg);box-shadow:0 2px 5px rgba(0,0,0,.18);animation:err-pageChalkStick 4.8s ease-in-out infinite}
.err-page-board-ledge{height:10px;margin:0 8px;border-radius:0 0 10px 10px;background:linear-gradient(180deg,#c4a484,#8b5a2b);box-shadow:0 8px 16px rgba(91,58,28,.18)}
.err-page-seeker{position:absolute;bottom:8px;left:8%;z-index:4;display:grid;justify-items:center;animation:err-pageSeeker 4.2s ease-in-out infinite}
.err-page-backpack{width:58px;height:58px;border-radius:20px;display:grid;place-items:center;color:#fff;font-size:24px;background:linear-gradient(135deg,var(--primary),#4f46e5);box-shadow:0 14px 28px rgba(37,99,235,.28)}
.err-page-seeker-shadow{width:46px;height:10px;margin-top:8px;border-radius:50%;background:rgba(23,32,51,.12);filter:blur(2px);animation:err-pageShadow 4.2s ease-in-out infinite}
.err-page-orbit{position:absolute;z-index:3;width:46px;height:46px;border-radius:16px;display:grid;place-items:center;color:#fff;font-size:18px;box-shadow:0 12px 24px rgba(37,99,235,.18);animation:err-pageFloat 4.8s ease-in-out infinite}
.err-page-orbit-a{right:2%;top:6%;background:linear-gradient(135deg,#3b82f6,#2563eb)}
.err-page-orbit-b{left:0;top:16%;background:linear-gradient(135deg,#fbbf24,#f59e0b);animation-delay:.5s}
.err-page-orbit-c{right:8%;bottom:14%;background:linear-gradient(135deg,#ef4444,#dc2626);animation-delay:1s}
.err-page-orbit-d{left:6%;bottom:24%;background:linear-gradient(135deg,#10b981,#059669);animation-delay:1.4s}
.err-page-orbit-e{right:40%;top:0;background:linear-gradient(135deg,#38bdf8,#0284c7);animation-delay:.8s;width:40px;height:40px;border-radius:14px;font-size:15px}
.err-page-dust{position:absolute;z-index:2;width:8px;height:8px;border-radius:50%;background:rgba(250,204,21,.55);right:28%;top:30%;animation:err-pageDust 3.6s linear infinite}
.err-page-dust-2{right:48%;top:18%;width:6px;height:6px;animation-delay:1.1s;background:rgba(96,165,250,.55)}
.err-page-dust-3{left:30%;top:24%;width:5px;height:5px;animation-delay:2s;background:rgba(52,211,153,.5)}
.err-page-copy{position:relative;z-index:1;max-width:520px;width:100%;margin-inline:auto;animation:err-pageFadeUp .75s ease .2s both}
.err-page-eyebrow{display:inline-flex;align-items:center;gap:8px;margin:0 0 12px;padding:6px 12px;border-radius:999px;background:var(--primary-soft);color:var(--primary);font-size:11px;font-weight:700}
.err-page-copy h2{margin:0;font-size:clamp(20px,4.5vw,32px);line-height:1.55;color:var(--ink)}
.err-page-lead{margin:12px 0 0;color:var(--muted);font-size:clamp(12.5px,2.8vw,14.5px);line-height:2;max-width:42ch}
.err-page-countdown{display:inline-flex;align-items:center;gap:8px;margin:16px 0 0;padding:10px 14px;border-radius:14px;background:#f8fafc;border:1px solid #e2e8f0;color:#334155;font-size:12.5px;font-weight:700;line-height:1.6}
.err-page-countdown i{color:inherit;opacity:.85}
.err-page-countdown strong{font-variant-numeric:tabular-nums;min-width:1.5ch;display:inline-block;text-align:center}
.err-page-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.err-page-actions .secondary-btn{padding:12px 16px;font-size:13px;border-radius:14px;border:0;cursor:pointer;font-family:inherit}
.err-page-hints{list-style:none;margin:24px 0 0;padding:0;display:grid;gap:10px}
.err-page-hints li{display:flex;align-items:flex-start;gap:10px;padding:11px 13px;border-radius:14px;background:rgba(255,255,255,.72);border:1px solid #e8eef8;color:#475569;font-size:clamp(11.5px,2.6vw,12.5px);line-height:1.8}
.err-page-hints i{margin-top:3px;color:var(--primary);width:16px;text-align:center;flex:0 0 auto}
@keyframes err-pageFloat{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-12px) rotate(4deg)}}
@keyframes err-pageSeeker{0%,100%{transform:translateX(0)}50%{transform:translateX(18px)}}
@keyframes err-pageShadow{0%,100%{transform:scaleX(1);opacity:.9}50%{transform:scaleX(.78);opacity:.55}}
@keyframes err-pageEraser{0%,100%{transform:translateX(0)}40%{transform:translateX(-26px)}55%{transform:translateX(-18px)}}
@keyframes err-pageChalkStick{0%,100%{transform:rotate(-12deg) translateX(0)}50%{transform:rotate(-18deg) translateX(10px)}}
@keyframes err-pageDust{0%{transform:translateY(0) scale(1);opacity:0}15%{opacity:.9}100%{transform:translateY(-90px) scale(.4);opacity:0}}
@keyframes err-pageChalk{from{opacity:0;transform:translateY(10px) scale(.94);filter:blur(2px)}to{opacity:1;transform:none;filter:none}}
@keyframes err-pageBoardIn{from{opacity:0;transform:translateY(18px) scale(.96)}to{opacity:1;transform:none}}
@keyframes err-pageFadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes err-pageGlow{0%,100%{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}
@media(max-width:900px){
  .err-page{grid-template-columns:1fr;align-content:center;justify-items:center;gap:8px;padding:max(20px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(28px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));text-align:center}
  .err-page-stage{min-height:220px;order:-1;max-width:320px}
  .err-page-orbit-e,.err-page-dust,.err-page-dust-2,.err-page-dust-3{display:none}
  .err-page-orbit{width:38px;height:38px;border-radius:13px;font-size:15px}
  .err-page-board{width:min(100%,260px)}
  .err-page-code{font-size:clamp(52px,18vw,72px)}
  .err-page-chalk-note{font-size:12px;bottom:14px}
  .err-page-backpack{width:48px;height:48px;border-radius:16px;font-size:20px}
  .err-page-copy{text-align:center}
  .err-page-eyebrow{margin-inline:auto}
  .err-page-lead{margin-inline:auto;max-width:36ch}
  .err-page-actions{flex-direction:column;width:100%;max-width:360px;margin-inline:auto}
  .err-page-actions .primary-btn,.err-page-actions .secondary-btn{width:100%;justify-content:center}
  .err-page-hints{text-align:right;width:100%;max-width:420px;margin-inline:auto}
}
@media(max-width:420px){
  .err-page-stage{min-height:190px}
  .err-page-orbit-b,.err-page-orbit-d,.err-page-seeker{display:none}
  .err-page-board{width:min(100%,220px)}
  .err-page-hints li{padding:10px 11px;font-size:11px}
}
@media(prefers-reduced-motion:reduce){
  .err-page-glow,.err-page-orbit,.err-page-seeker,.err-page-seeker-shadow,.err-page-eraser,.err-page-chalk,.err-page-dust,.err-page-code,.err-page-board,.err-page-copy,.err-page-chalk-note{animation:none!important}
}

.site-copyright{text-align:center;line-height:1.4;padding:6px 8px 2px}
.site-copyright:not(.site-copyright--login){opacity:.9}
.site-copyright p{margin:0}
.site-copyright__line{font-size:8.5px;color:#94a3b8;letter-spacing:.01em;white-space:nowrap}
.site-copyright:not(.site-copyright--login) .site-copyright__line a{color:#64748b;font-weight:600;text-decoration:none}
.site-copyright:not(.site-copyright--login) .site-copyright__line a:hover{color:var(--primary,#2563eb);text-decoration:underline}
.site-copyright--footer{margin-top:4px;padding:4px 0 0;background:none;border:0;border-radius:0}
.main-column .page-content{flex:1 0 auto}
.site-copyright--guest{width:100%;max-width:980px;padding:8px 8px 4px;flex-shrink:0}
.site-copyright--footer{padding:4px 0 0;margin-top:4px}
.site-copyright--compact{
  position:fixed;left:0;right:0;bottom:0;z-index:3;
  padding:2px 10px max(2px,env(safe-area-inset-bottom));
  pointer-events:none;opacity:.82;background:none
}
.site-copyright--compact .site-copyright__line{pointer-events:auto;color:#8b97a8}
.site-copyright--compact .site-copyright__line a{color:#5b6778}
.site-copyright--login{
  width:100%;max-width:none;margin:0;padding:0;opacity:1;flex-shrink:0;
  container-type:inline-size;container-name:copyright-login
}
.site-copyright__login-badge{
  display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;
  width:100%;max-width:100%;min-width:0;
  padding:7px 12px 7px 10px;border-radius:var(--radius,24px);
  background:linear-gradient(135deg,rgba(255,255,255,.98),rgba(248,250,252,.94));
  border:1px solid rgba(226,232,240,.95);
  box-shadow:0 8px 22px rgba(15,23,42,.06),0 1px 0 rgba(255,255,255,.95) inset;
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  position:relative;overflow:hidden;box-sizing:border-box
}
.site-copyright__login-badge::before{
  content:"";position:absolute;inset:0;border-radius:inherit;
  background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.62) 50%,transparent 65%);
  transform:translateX(-120%);animation:siteCopyrightShine 7s ease-in-out infinite
}
.site-copyright__login-icon{
  position:relative;z-index:1;flex:0 0 auto;width:26px;height:26px;border-radius:50%;
  padding:1.5px;display:grid;place-items:center;
  background:linear-gradient(145deg,#6366f1,#2563eb 55%,#7c3aed);
  box-shadow:0 4px 12px rgba(37,99,235,.22),0 0 0 1px rgba(255,255,255,.35) inset
}
.site-copyright__login-icon-ring{
  width:100%;height:100%;border-radius:50%;display:grid;place-items:center;
  background:#fff;padding:3px;box-shadow:0 1px 3px rgba(15,23,42,.06) inset;overflow:hidden
}
.site-copyright__login-icon img{width:100%;height:100%;object-fit:contain;display:block}
.site-copyright--login .site-copyright__line{
  position:relative;z-index:1;width:100%;min-width:0;margin:0;
  font-size:clamp(5.4px,1.72cqi,7.4px);color:#64748b;white-space:nowrap;line-height:1.35;
  letter-spacing:-.015em;text-align:center
}
.site-copyright--login .site-copyright__line a{
  font-weight:700;
  background:linear-gradient(135deg,#2563eb,#7c3aed);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  color:transparent
}
.site-copyright--login .site-copyright__line a:hover{
  -webkit-text-fill-color:#1d4ed8;color:#1d4ed8;background:none;text-decoration:underline
}
@keyframes siteCopyrightShine{0%,78%{transform:translateX(-120%)}100%{transform:translateX(120%)}}
@supports not (font-size:1cqi){
  .site-copyright--login .site-copyright__line{font-size:clamp(5.8px,1.65vw,7.2px)}
}
@media(max-width:680px){.site-copyright--footer{margin-bottom:2px;padding-bottom:0}.site-copyright__line{font-size:7.5px}.site-copyright--login{width:100%}.site-copyright__login-badge{padding:6px 10px 6px 8px;gap:7px;border-radius:var(--radius,24px)}.site-copyright__login-icon{width:24px;height:24px}.site-copyright__login-icon-ring{padding:2px}}
@media(max-width:420px){.site-copyright__line{font-size:6.8px;letter-spacing:0}.site-copyright--login{width:100%}.site-copyright__login-badge{padding:5px 9px 5px 7px;gap:6px}}
@media(max-width:360px){.site-copyright__login-icon{width:22px;height:22px}}
@media(prefers-reduced-motion:reduce){.site-copyright__login-badge::before{animation:none;display:none}}

/* ?? ???????? ????? ?????? ?? */
.ghost-btn{
  appearance:none;border:1px solid #dbe3f0;cursor:pointer;
  border-radius:14px;display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-weight:800;font-size:12.5px;padding:10px 16px;font-family:inherit;
  color:#334155;background:linear-gradient(180deg,#fff,#f8fafc);
  box-shadow:0 6px 16px rgba(15,23,42,.06);
  transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,color .16s ease,background .16s ease;
}
.ghost-btn:hover{
  transform:translateY(-1px);border-color:#94a3b8;color:#0f172a;
  box-shadow:0 10px 22px rgba(15,23,42,.1);background:linear-gradient(180deg,#fff,#f1f5f9);
}
.ghost-btn:active{transform:translateY(0)}
.ghost-btn i{font-size:12px;opacity:.85}
.dialog-actions .ghost-btn{min-width:96px}
.dialog-actions .primary-btn{min-width:120px}
.modern-dialog .dialog-actions{
  display:flex;justify-content:flex-end;align-items:center;gap:10px;
  padding:14px 18px 18px;border-top:1px solid #eef2f7;margin-top:0;flex-wrap:wrap;
}

/* Learner discipline cards */
.disc-learner-hero{overflow:hidden;border:1px solid #d1fae5;box-shadow:0 18px 40px rgba(15,118,110,.08);border-radius:22px}
.disc-learner-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}
.disc-learner-kpis article{
  display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:16px;
  border:1px solid rgba(15,23,42,.06);background:linear-gradient(145deg,rgba(15,118,110,.08),rgba(15,23,42,.03));
}
.disc-learner-kpis .disc-kpi-ico{
  width:42px;height:42px;flex:0 0 42px;border-radius:14px;display:grid;place-items:center;
  background:linear-gradient(135deg,#14b8a6,#0f766e);color:#fff;font-size:16px;
  box-shadow:0 8px 18px rgba(15,118,110,.25);
}
.disc-learner-kpis article.is-penalty .disc-kpi-ico{background:linear-gradient(135deg,#fb7185,#e11d48);box-shadow:0 8px 18px rgba(225,29,72,.22)}
.disc-learner-kpis article.is-tone-excellent{background:linear-gradient(145deg,#ecfdf5,#fff);border-color:#a7f3d0}
.disc-learner-kpis article.is-tone-good{background:linear-gradient(145deg,#f0fdfa,#fff);border-color:#99f6e4}
.disc-learner-kpis article.is-tone-mid{background:linear-gradient(145deg,#fffbeb,#fff);border-color:#fde68a}
.disc-learner-kpis article.is-tone-low{background:linear-gradient(145deg,#fff1f2,#fff);border-color:#fecdd3}
.disc-learner-kpis small{display:block;font-size:11px;font-weight:700;color:#64748b;margin-bottom:2px}
.disc-learner-kpis strong{display:block;font-size:1.4rem;font-weight:900;color:#0f172a;line-height:1.1}
.disc-learner-kpis em{display:block;font-style:normal;font-size:11px;color:#94a3b8;margin-top:3px}
.disc-records-card{margin-top:14px;overflow:hidden;border-radius:22px;border:1px solid #e2e8f0;box-shadow:0 14px 36px rgba(15,23,42,.06)}
.disc-empty{padding:36px 24px;text-align:center}
.disc-record-feed{display:flex;flex-direction:column;gap:12px;padding:8px 20px 22px}
.disc-record-tile{
  display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start;
  padding:14px 16px;border-radius:16px;border:1px solid #e2e8f0;background:#fff;
  transition:transform .2s,box-shadow .2s;
}
.disc-record-tile:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(15,23,42,.06)}
.disc-record-date{
  display:flex;flex-direction:column;align-items:center;gap:4px;min-width:92px;
  padding:10px 12px;border-radius:14px;background:linear-gradient(180deg,#f8fafc,#fff);
  border:1px solid #e2e8f0;text-align:center;
}
.disc-record-date i{color:#64748b;font-size:14px}
.disc-record-date b{font-size:12px;color:#0f172a;font-weight:800}
.disc-record-top{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:6px}
.disc-record-top strong{font-size:14px;color:#0f172a}
.disc-penalty-chip{
  display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;
  font-size:12px;font-weight:900;background:#fee2e2;color:#b91c1c;border:1px solid #fecaca;
}
.disc-record-meta{display:flex;flex-wrap:wrap;gap:10px 14px;margin:0 0 6px;font-size:11.5px;color:#64748b;font-weight:700}
.disc-record-meta i{margin-left:4px;opacity:.8}
.disc-record-desc{margin:0;font-size:12.5px;line-height:1.7;color:#475569}
@media(max-width:640px){
  .disc-learner-kpis{grid-template-columns:1fr}
  .disc-record-tile{grid-template-columns:1fr}
  .disc-record-date{flex-direction:row;justify-content:flex-start;width:100%;min-width:0}
  .att-notice-tile{grid-template-columns:44px 1fr}
}

/* Official learner report card (کارنامه) */
.lr-karnameh{padding:0;background:transparent;border:0;box-shadow:none}
.lr-karnameh-sheet{
  --kh-line:#1e293b;--kh-soft:#f8fafc;--kh-accent:var(--org-1,#0f766e);
  border:2px solid #0f172a;border-radius:6px;background:#fff;
  box-shadow:0 18px 44px rgba(15,23,42,.1);overflow:hidden;
}
.lr-kh-head{
  display:flex;align-items:stretch;justify-content:space-between;gap:12px;
  padding:14px 16px;border-bottom:2px solid #0f172a;
  background:linear-gradient(180deg,#f8fafc,#fff);
}
.lr-kh-gov{display:flex;align-items:center;gap:12px;min-width:0}
.lr-kh-logo,.lr-kh-logo-fallback{
  width:64px;height:64px;flex:0 0 64px;border:1px solid #cbd5e1;border-radius:4px;
  object-fit:contain;background:#fff;padding:4px;
}
.lr-kh-logo-fallback{display:grid;place-items:center;color:#64748b;font-size:24px}
.lr-kh-gov p{margin:0;font-size:11px;font-weight:800;color:#334155}
.lr-kh-gov strong{display:block;margin-top:2px;font-size:16px;color:#0f172a}
.lr-kh-gov small{display:block;margin-top:3px;font-size:11px;color:#64748b;font-weight:700}
.lr-kh-photo{
  width:78px;height:96px;flex:0 0 78px;border:1px solid #0f172a;border-radius:2px;
  overflow:hidden;background:#f1f5f9;display:grid;place-items:center;
}
.lr-kh-photo img{width:100%;height:100%;object-fit:cover}
.lr-kh-photo span{font-size:28px;font-weight:900;color:#94a3b8}
.lr-kh-meta{border-bottom:2px solid #0f172a}
.lr-kh-meta table{width:100%;border-collapse:collapse;table-layout:fixed}
.lr-kh-meta th,.lr-kh-meta td{
  border:1px solid #94a3b8;padding:7px 8px;font-size:11px;text-align:right;vertical-align:middle;
}
.lr-kh-meta th{width:12%;background:#f1f5f9;font-weight:800;color:#334155;white-space:nowrap}
.lr-kh-meta td{font-weight:700;color:#0f172a}
.lr-kh-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.lr-kh-table{
  width:100%;min-width:720px;border-collapse:collapse;table-layout:fixed;
  font-size:11.5px;
}
.lr-kh-table.is-final{min-width:780px}
.lr-kh-table th,.lr-kh-table td{
  border:1px solid #334155;padding:6px 5px;text-align:center;vertical-align:middle;
}
.lr-kh-table thead th{
  background:#e2e8f0;font-weight:900;color:#0f172a;font-size:10.5px;line-height:1.45;
}
.lr-kh-table .is-row{width:42px}
.lr-kh-table .is-subj{width:160px;text-align:right;padding-inline:8px}
.lr-kh-table tbody td.is-subj{background:color-mix(in srgb,var(--subj-soft,#f8fafc) 70%,#fff)}
.lr-kh-subj{display:inline-flex;align-items:center;gap:7px;justify-content:flex-start;width:100%}
.lr-kh-subj i{
  width:22px;height:22px;flex:0 0 22px;border-radius:6px;display:grid;place-items:center;
  background:var(--subj-accent,#64748b);color:#fff;font-size:10px;
}
.lr-kh-subj b{font-size:12px;font-weight:800;color:#0f172a}
.lr-kh-table tr.is-subj-quran td.is-subj{
  background:linear-gradient(90deg,#ecfdf5,#fff);
}
.lr-kh-table tr.is-subj-quran .lr-kh-subj i{box-shadow:0 0 0 2px #99f6e4}
.lr-kh-score{
  display:inline-grid;place-items:center;min-width:42px;min-height:28px;padding:2px 6px;
  border-radius:6px;font-weight:900;font-size:12.5px;border:1px solid transparent;
}
.lr-kh-score.is-excellent{color:#047857;background:#d1fae5;border-color:#6ee7b7}
.lr-kh-score.is-good{color:#0f766e;background:#ccfbf1;border-color:#5eead4}
.lr-kh-score.is-mid{color:#a16207;background:#fef9c3;border-color:#fde047}
.lr-kh-score.is-low{color:#c2410c;background:#ffedd5;border-color:#fdba74}
.lr-kh-score.is-poor{color:#be123c;background:#ffe4e6;border-color:#fda4af}
.lr-kh-score.is-neutral{color:#334155;background:#f8fafc;border-color:#e2e8f0}
.lr-kh-score.is-annual{min-width:48px;font-size:13.5px}
.lr-kh-status{
  display:inline-block;min-width:48px;padding:2px 8px;border-radius:999px;
  font-size:10.5px;font-weight:800;background:#f1f5f9;color:#475569;
}
.lr-kh-status.is-pass{background:#dcfce7;color:#166534}
.lr-kh-status.is-fail{background:#fee2e2;color:#991b1b}
.lr-kh-table .is-muted{color:#64748b;font-size:10.5px}
.lr-kh-table .is-note{text-align:right;font-size:10.5px;color:#64748b;padding-inline:8px}
.lr-kh-summary{
  display:grid;grid-template-columns:minmax(120px,160px) 1fr;gap:0;
  border-top:2px solid #0f172a;
}
.lr-kh-disc{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
  padding:14px 10px;border-left:1px solid #0f172a;background:#fffbeb;text-align:center;
}
.lr-kh-disc span{font-size:11px;font-weight:800;color:#92400e}
.lr-kh-disc strong{font-size:18px;color:#b45309}
.lr-kh-disc em{font-style:normal;font-size:12px;font-weight:700;color:#78350f}
.lr-kh-boxes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.lr-kh-boxes article{
  padding:12px 14px;border-left:1px solid #94a3b8;background:#fff;
  display:flex;flex-direction:column;gap:8px;
}
.lr-kh-boxes article:last-child{border-left:0}
.lr-kh-boxes article header{
  font-size:11px;font-weight:900;color:#0f172a;padding-bottom:6px;
  border-bottom:1px dashed #cbd5e1;text-align:center;
}
.lr-kh-boxes article div{display:flex;justify-content:space-between;align-items:center;gap:8px}
.lr-kh-boxes article span{font-size:11px;color:#64748b;font-weight:700}
.lr-kh-boxes article b{font-size:14px;color:#0f172a}
.lr-kh-boxes article.is-result{background:#f0fdf4}
.lr-kh-boxes article.is-result b{color:#166534}
.lr-kh-foot{
  padding:14px 16px 16px;border-top:2px solid #0f172a;background:#f8fafc;
}
.lr-kh-foot>p{margin:0 0 14px;font-size:11.5px;line-height:1.8;color:#334155;text-align:justify}
.lr-kh-signs{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:12px}
.lr-kh-signs div{
  min-height:72px;border:1px dashed #94a3b8;border-radius:4px;padding:10px 12px;
  display:flex;flex-direction:column;gap:6px;background:#fff;
}
.lr-kh-signs strong{font-size:12px;color:#0f172a}
.lr-kh-signs span{font-size:10.5px;color:#94a3b8;margin-top:auto}
.lr-kh-foot>small{display:block;text-align:center;font-size:10px;color:#64748b}

@media(max-width:760px){
  .lg-subject-card{grid-template-columns:1fr;justify-items:stretch}
  .lg-score-box{justify-self:start;min-width:84px;min-height:84px}
  .lg-motif-1{font-size:42px}
  .lr-kh-head{flex-wrap:wrap}
  .lr-kh-photo{margin-right:auto}
  .lr-kh-meta th{width:auto;white-space:normal}
  .lr-kh-summary{grid-template-columns:1fr}
  .lr-kh-disc{border-left:0;border-bottom:1px solid #0f172a;flex-direction:row;justify-content:center;gap:10px}
  .lr-kh-boxes{grid-template-columns:1fr}
  .lr-kh-boxes article{border-left:0;border-bottom:1px solid #94a3b8}
  .lr-kh-boxes article:last-child{border-bottom:0}
  .lr-kh-signs{grid-template-columns:1fr}
}

/* Learner discipline cards */
.disc-learner-hero{overflow:hidden;border:1px solid #d1fae5;box-shadow:0 18px 40px rgba(15,118,110,.08);border-radius:22px}
.disc-learner-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}
.disc-learner-kpis article{
  display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:16px;
  border:1px solid rgba(15,23,42,.06);background:linear-gradient(145deg,rgba(15,118,110,.08),rgba(15,23,42,.03));
}
.disc-learner-kpis .disc-kpi-ico{
  width:42px;height:42px;flex:0 0 42px;border-radius:14px;display:grid;place-items:center;
  background:linear-gradient(135deg,#14b8a6,#0f766e);color:#fff;font-size:16px;
  box-shadow:0 8px 18px rgba(15,118,110,.25);
}
.disc-learner-kpis article.is-penalty .disc-kpi-ico{background:linear-gradient(135deg,#fb7185,#e11d48);box-shadow:0 8px 18px rgba(225,29,72,.22)}
.disc-learner-kpis article.is-tone-excellent{background:linear-gradient(145deg,#ecfdf5,#fff);border-color:#a7f3d0}
.disc-learner-kpis article.is-tone-good{background:linear-gradient(145deg,#f0fdfa,#fff);border-color:#99f6e4}
.disc-learner-kpis article.is-tone-mid{background:linear-gradient(145deg,#fffbeb,#fff);border-color:#fde68a}
.disc-learner-kpis article.is-tone-low{background:linear-gradient(145deg,#fff1f2,#fff);border-color:#fecdd3}
.disc-learner-kpis small{display:block;font-size:11px;font-weight:700;color:#64748b;margin-bottom:2px}
.disc-learner-kpis strong{display:block;font-size:1.4rem;font-weight:900;color:#0f172a;line-height:1.1}
.disc-learner-kpis em{display:block;font-style:normal;font-size:11px;color:#94a3b8;margin-top:3px}
.disc-records-card{margin-top:14px;overflow:hidden;border-radius:22px;border:1px solid #e2e8f0;box-shadow:0 14px 36px rgba(15,23,42,.06)}
.disc-empty{padding:36px 24px;text-align:center}
.disc-record-feed{display:flex;flex-direction:column;gap:12px;padding:8px 20px 22px}
.disc-record-tile{
  display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start;
  padding:14px 16px;border-radius:16px;border:1px solid #e2e8f0;background:#fff;
  transition:transform .2s,box-shadow .2s;
}
.disc-record-tile:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(15,23,42,.06)}
.disc-record-date{
  display:flex;flex-direction:column;align-items:center;gap:4px;min-width:92px;
  padding:10px 12px;border-radius:14px;background:linear-gradient(180deg,#f8fafc,#fff);
  border:1px solid #e2e8f0;text-align:center;
}
.disc-record-date i{color:#64748b;font-size:14px}
.disc-record-date b{font-size:12px;color:#0f172a;font-weight:800}
.disc-record-top{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:6px}
.disc-record-top strong{font-size:14px;color:#0f172a}
.disc-penalty-chip{
  display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;
  font-size:12px;font-weight:900;background:#fee2e2;color:#b91c1c;border:1px solid #fecaca;
}
.disc-record-meta{display:flex;flex-wrap:wrap;gap:10px 14px;margin:0 0 6px;font-size:11.5px;color:#64748b;font-weight:700}
.disc-record-meta i{margin-left:4px;opacity:.8}
.disc-record-desc{margin:0;font-size:12.5px;line-height:1.7;color:#475569}
@media(max-width:640px){
  .disc-learner-kpis{grid-template-columns:1fr}
  .disc-record-tile{grid-template-columns:1fr}
  .disc-record-date{flex-direction:row;justify-content:flex-start;width:100%;min-width:0}
  .att-notice-tile{grid-template-columns:44px 1fr}
}

/* گزارش کلاسی آزمون آنلاین */
[data-oex-class-report] .oex-cr-hero-head{align-items:flex-start;gap:14px}
[data-oex-class-report] .oex-cr-export-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
[data-oex-class-report] .oex-cr-meta{margin-top:12px}
[data-oex-class-report] .oex-cr-stats{grid-template-columns:repeat(6,minmax(0,1fr))}
[data-oex-class-report] .oex-cr-table-wrap{margin-top:4px}
[data-oex-class-report] .oex-cr-table{min-width:1100px}
[data-oex-class-report] .oex-cr-table.has-subjects{min-width:1400px}
[data-oex-class-report] .oex-cr-sub-head{background:linear-gradient(180deg,#ecfeff,#cffafe)!important;color:#0f766e!important}
[data-oex-class-report] .oex-cr-total-head{background:linear-gradient(180deg,#eef2ff,#e0e7ff)!important;color:#312e81!important}
[data-oex-class-report] .oex-pct-chip.is-muted{background:#f1f5f9;color:#64748b;border:1px solid #e2e8f0}
@media(max-width:1100px){
  [data-oex-class-report] .oex-cr-stats{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:720px){
  [data-oex-class-report] .oex-cr-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  [data-oex-class-report] .oex-cr-hero-head{flex-direction:column}
  [data-oex-class-report] .oex-cr-export-actions{width:100%;justify-content:stretch}
  [data-oex-class-report] .oex-cr-export-actions a{flex:1;justify-content:center}
}
