:root{font-family:"Google Sans Text","Google Sans","Product Sans","Segoe UI",Roboto,Arial,sans-serif}*{box-sizing:border-box}body{margin:0;background:#f5f7fb;color:#1f2937;overflow-x:hidden}.layout{display:flex;min-height:100vh;align-items:stretch}.sidebar{width:240px;background:#111827;color:#fff;padding:1rem}.sidebar a,.link-button{color:#d1d5db;display:block;margin:.5rem 0;text-decoration:none;background:none;border:0;padding:0;cursor:pointer}.content{flex:1;padding:1.5rem;min-width:0}.card{background:#fff;border-radius:12px;padding:1.25rem;box-shadow:0 10px 28px rgba(2,6,23,.08)}.card-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.guest-body{display:grid;place-items:center;min-height:100vh}.guest-main{width:min(92vw,420px)}form{display:grid;gap:.6rem}input:not([type=checkbox]):not([type=radio]),button{padding:.68rem .72rem;border-radius:8px;border:1px solid #d1d5db}input[type=checkbox],input[type=radio]{padding:0}button{background:#0f766e;color:#fff;border:none}.alert{padding:.6rem;border-radius:6px;margin-bottom:.5rem}.alert.success{background:#dcfce7;color:#14532d}.alert.error{background:#fee2e2;color:#991b1b}.field-error{color:#b91c1c}table{width:100%;border-collapse:collapse}th,td{padding:.5rem;border-bottom:1px solid #e5e7eb;text-align:left}
a,button,[role="button"],input[type="submit"],input[type="button"],.btn-link,.link-button{cursor:pointer}
button:disabled,input:disabled,select:disabled,textarea:disabled,[aria-disabled="true"]{cursor:not-allowed}
/* Thin scrollbar by default, wider on hover for easier grab */
*{scrollbar-width:thin;scrollbar-color:#94a3b8 transparent}
*::-webkit-scrollbar{width:6px;height:6px}
*::-webkit-scrollbar-track{background:transparent}
*::-webkit-scrollbar-thumb{background:#94a3b8;border-radius:999px;border:1px solid transparent;background-clip:padding-box}
*:hover::-webkit-scrollbar{width:12px;height:12px}
*:hover::-webkit-scrollbar-thumb{background:#64748b}
.inline-form{display:inline}
.danger-link{color:#dc2626}
.btn-link{display:inline-block;padding:.6rem 1rem;background:#0f766e;color:#fff;text-decoration:none;border-radius:6px}
.filter-grid{grid-template-columns:2fr 1fr auto auto;align-items:end}
.pagination{display:flex;gap:.5rem;margin-top:1rem}
.pagination a{padding:.3rem .6rem;border:1px solid #cbd5e1;border-radius:4px;text-decoration:none}
.active-page{background:#0f766e;color:#fff}
.mt-16{margin-top:1rem}
.inline-grid{display:grid;grid-template-columns:2fr 120px auto;gap:.5rem;align-items:center}
.module-box{border:1px solid #e5e7eb;border-radius:8px;padding:.75rem;margin-top:.75rem;background:#fafafa}
/* Course editor — scoped layout (overrides global form grid) */
.course-form-page.card{padding:0;overflow:hidden;max-width:960px}
.course-form-page .course-form-header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.25rem 1.35rem 1rem;border-bottom:1px solid #e2e8f0;background:linear-gradient(180deg,#fff 0%,#f8fafc 100%)}
.course-form-page .course-form-header h2{margin:0;font-size:1.35rem;font-weight:600;color:#0f172a;letter-spacing:-.02em}
.course-form-page .course-form-header .course-form-back{display:inline-flex;align-items:center;gap:.35rem;font-size:.875rem;font-weight:500;color:#475569;text-decoration:none;padding:.45rem .65rem;border-radius:8px;border:1px solid #e2e8f0;background:#fff}
.course-form-page .course-form-header .course-form-back:hover{border-color:#cbd5e1;color:#334155}
.course-form-page .course-form-header .course-form-back .material-symbols-outlined{font-size:1.15rem}
.course-form-alerts{padding:1rem 1.35rem 0;display:flex;flex-direction:column;gap:.65rem}
.course-editor-form{display:flex;flex-direction:column;gap:0;padding:1.25rem 1.35rem 1.5rem;max-width:100%}
.course-editor-form .course-form-section{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:1.15rem 1.25rem;margin-bottom:1.15rem;box-shadow:0 1px 2px rgba(15,23,42,.04)}
.course-editor-form .course-form-section:last-of-type{margin-bottom:0}
.course-form-section__head{display:flex;align-items:center;gap:.55rem;margin:0 0 1rem;padding-bottom:.85rem;border-bottom:1px solid #f1f5f9}
.course-form-section__head .material-symbols-outlined{font-size:1.35rem;color:#64748b;line-height:1}
.course-form-section__title{font-size:.9375rem;font-weight:600;color:#0f172a;letter-spacing:-.01em}
.course-form-section__sub{font-size:.8rem;color:#64748b;font-weight:400;margin-top:.15rem}
.course-form-grid{display:grid;gap:1rem 1.25rem}
.course-form-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.course-form-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.course-form-grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}
.course-field{display:flex;flex-direction:column;gap:0;min-width:0}
.course-field--full{grid-column:1/-1}
.course-field--span2{grid-column:span 2}
.course-label{display:flex;align-items:center;gap:.4rem;font-size:.78rem;font-weight:600;color:#475569;text-transform:uppercase;letter-spacing:.04em;margin-bottom:.4rem}
.course-label .material-symbols-outlined{font-size:1.125rem;font-weight:400;color:#94a3b8;line-height:1}
.course-label abbr{color:#dc2626;text-decoration:none;border:0}
.course-editor-form input:not([type=checkbox]):not([type=radio]),.course-editor-form select,.course-editor-form textarea{width:100%;padding:.6rem .75rem;border-radius:8px;border:1px solid #cbd5e1;font:inherit;font-size:.9375rem;color:#0f172a;background:#fff;transition:border-color .15s,box-shadow .15s}
.course-editor-form input:not([type=checkbox]):not([type=radio]):hover,.course-editor-form select:hover,.course-editor-form textarea:hover{border-color:#94a3b8}
.course-editor-form input:not([type=checkbox]):not([type=radio]):focus,.course-editor-form select:focus,.course-editor-form textarea:focus{outline:none;border-color:#14b8a6;box-shadow:0 0 0 3px rgba(20,184,166,.2)}
.course-editor-form select{cursor:pointer;appearance:auto;background-image:none}
.course-field-hint{font-size:.78rem;color:#64748b;margin:.35rem 0 0;line-height:1.4}
.course-checkbox{display:flex;align-items:flex-start;gap:.6rem;padding:.65rem .85rem;border-radius:8px;border:1px solid #e2e8f0;background:#f8fafc;cursor:pointer;margin:0}
.course-checkbox input{margin-top:.2rem;flex-shrink:0}
.course-checkbox span{font-size:.875rem;color:#334155;line-height:1.4}
.course-form-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;padding-top:1.25rem;margin-top:.25rem;border-top:1px solid #e2e8f0}
.course-form-actions button[type=submit]{display:inline-flex;align-items:center;gap:.4rem;padding:.65rem 1.25rem;font-weight:600;border-radius:8px}
.course-form-actions .btn-link{margin:0}
.course-form-actions .course-cancel-link{display:inline-flex;align-items:center;gap:.35rem;padding:.6rem 1rem;font-size:.875rem;font-weight:500;color:#64748b;text-decoration:none;border-radius:8px;border:1px solid #e2e8f0;background:#fff}
.course-form-actions .course-cancel-link:hover{color:#334155;border-color:#cbd5e1;background:#f8fafc}
.course-form-actions button[type=submit] .material-symbols-outlined{line-height:1}
.course-instructor-layout{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;align-items:start}
@media (max-width:720px){.course-form-grid--3,.course-form-grid--4{grid-template-columns:1fr}.course-field--span2{grid-column:span 1}.course-instructor-layout{grid-template-columns:1fr}}
@media (max-width:900px){.course-form-grid--4{grid-template-columns:repeat(2,minmax(0,1fr))}}
.course-multi-select{width:100%;min-height:8.5rem;padding:.5rem;border-radius:8px;border:1px solid #cbd5e1;font:inherit;font-size:.875rem}
.course-modules-card{margin-top:1rem;max-width:960px}
.course-modules-card h3{display:flex;align-items:center;gap:.45rem;margin:0 0 1rem;font-size:1.05rem;color:#0f172a}
.course-modules-card h3 .material-symbols-outlined{font-size:1.25rem;color:#64748b}
.module-box{border:1px solid #e2e8f0;border-radius:10px;padding:1rem;margin-top:.85rem;background:#fafbfc}
.lesson-form{display:grid;grid-template-columns:2fr 1fr 2fr 2fr 100px auto auto;gap:.5rem;align-items:center;margin-top:.5rem}
.lesson-form.lesson-form-stack{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}
.lesson-row{background:#fff;padding:.5rem;border-radius:6px}
textarea,select{padding:.6rem;border-radius:6px;border:1px solid #cbd5e1}
.player-grid{display:grid;grid-template-columns:320px 1fr;gap:1rem}
.lesson-list{border-right:1px solid #e5e7eb;padding-right:.75rem}
.lesson-item{padding:.5rem;border:1px solid #e5e7eb;border-radius:6px;margin-bottom:.5rem;background:#fff}
.active-lesson{border-color:#99f6e4;background:#ecfdf5}
label{font-size:.9rem;color:#374151}
input[type=checkbox]:focus-visible,input[type=radio]:focus-visible{outline:2px solid #0d9488;outline-offset:2px}
small{color:#6b7280}
.sidebar-subtitle{font-size:.78rem;color:#9ca3af;margin-top:-.25rem;margin-bottom:.75rem}
.auth-card{border-top:3px solid #1d4ed8}
.muted{color:#6b7280}
.auth-eyebrow{margin:0 0 .35rem;font-size:.72rem;letter-spacing:.08em;color:#64748b}
.auth-links{margin-top:.9rem;display:flex;justify-content:space-between;gap:1rem}
.auth-links a{font-size:.88rem;text-decoration:none;color:#1d4ed8}
.site-footer{margin-top:1rem;padding:1rem;border-radius:10px;background:#fff;border:1px solid #e5e7eb;color:#4b5563;font-size:.88rem}
.site-footer nav{display:flex;gap:1rem;flex-wrap:wrap;margin:.35rem 0}
.site-footer a{color:#1d4ed8;text-decoration:none}
.site-footer p{margin:.25rem 0 0}
.app-footer{margin-top:1.2rem}
.clean-guest{background:radial-gradient(900px 360px at 50% -80px,#dbeafe 10%,#f5f7fb 60%)}
@media (max-width:860px){.layout{display:block}.sidebar{width:auto}.content{padding:1rem}}
.auth-split{display:grid;grid-template-columns:1fr 1.1fr;background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 18px 40px rgba(15,23,42,.12)}
.auth-promo{padding:2rem 1.5rem;background:#f8fafc;display:flex;flex-direction:column;justify-content:center}
.auth-promo h2{margin:.1rem 0 .45rem;font-size:2rem;color:#1e3a8a}
.auth-promo p{margin:0 0 1rem;color:#475569;line-height:1.45}
.auth-promo a{color:#1d4ed8;text-decoration:none;font-weight:600}
.auth-panel{padding:1.6rem;background:#1f3b82;color:#fff}
.auth-panel .alert{margin-top:.8rem}
.auth-panel .alert.error{background:#fee2e2;color:#7f1d1d;border:1px solid #fca5a5}
.auth-toggle{display:grid;grid-template-columns:1fr 1fr;background:rgba(255,255,255,.16);border-radius:10px;padding:.2rem;gap:.2rem}
.auth-tab-btn{background:transparent;color:#c7d2fe;border:0;padding:.52rem .7rem;cursor:pointer;font-weight:600}
.auth-tab-btn.active{background:#fff;color:#1e3a8a}
.auth-forms{position:relative;min-height:390px;overflow:hidden;margin-top:1rem}
.auth-form{position:absolute;inset:0;display:grid;gap:.72rem;align-content:start;transition:transform .32s ease,opacity .32s ease;max-height:100%;overflow-y:auto;padding-right:.25rem}
.auth-form::-webkit-scrollbar{width:8px}
.auth-form::-webkit-scrollbar-thumb{background:rgba(148,163,184,.45);border-radius:8px}
.auth-form h3{margin:.2rem 0 .5rem;font-size:1.25rem;line-height:1.25}
.auth-form label{color:#dbeafe}
.auth-form .field-error{display:block;padding:.35rem .5rem;border-radius:8px;background:rgba(127,29,29,.36);color:#ffe4e6;font-size:.84rem;line-height:1.25}
.live-match-msg{display:none;padding:.35rem .5rem;border-radius:8px;font-size:.82rem;line-height:1.25}
.live-match-msg.show{display:block}
.live-match-msg.ok{background:rgba(6,95,70,.32);color:#d1fae5}
.live-match-msg.bad{background:rgba(127,29,29,.36);color:#ffe4e6}
.input-wrap{position:relative}
.auth-form input{width:100%;max-width:100%;min-width:0;height:48px;padding:.75rem .85rem;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.28);color:#fff;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}
.auth-form input:focus{outline:none;border-color:#7dd3fc;box-shadow:0 0 0 3px rgba(56,189,248,.22);background:rgba(255,255,255,.2)}
.auth-form input::placeholder{color:#cbd5e1}
.auth-form button{margin-top:.5rem;background:#38bdf8;color:#0c4a6e;font-weight:700}
.auth-submit{position:relative;overflow:hidden;transition:transform .14s ease,box-shadow .22s ease,filter .22s ease}
.auth-submit{cursor:pointer}
.auth-submit:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(56,189,248,.35);filter:brightness(1.05)}
.auth-submit:active{transform:translateY(0)}
.auth-submit::after{content:"";position:absolute;inset:0;left:-120%;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.33),transparent 70%);transition:left .55s ease}
.auth-submit:hover::after{left:120%}
.auth-form .form-meta{margin:.35rem 0 0;font-size:.9rem}
.auth-form .form-meta a{color:#bfdbfe}
.forgot-cta{display:inline-block;padding:0;background:none;border:0;text-decoration:underline;color:#fff}
.forgot-cta:hover{opacity:.88}
.show-pass-toggle{display:flex;align-items:center;gap:.45rem;color:#dbeafe;font-size:.84rem;cursor:pointer;margin-top:-.2rem}
.show-pass-toggle input{width:16px;height:16px;margin:0}
.modern-pass-toggle{gap:.55rem;user-select:none}
.modern-pass-toggle input{position:absolute;opacity:0;pointer-events:none}
.toggle-ui{position:relative;width:38px;height:22px;border-radius:999px;background:rgba(148,163,184,.45);transition:background .2s ease}
.toggle-ui::after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .2s ease}
.modern-pass-toggle input:checked + .toggle-ui{background:#38bdf8}
.modern-pass-toggle input:checked + .toggle-ui::after{transform:translateX(16px)}
.toggle-label{font-size:.84rem;color:#cfe3ff}
a:hover{cursor:pointer}
.auth-form-login{transform:translateX(0);opacity:1}
.auth-form-register{transform:translateX(105%);opacity:0}
.auth-split.show-register .auth-form-login{transform:translateX(-105%);opacity:0}
.auth-split.show-register .auth-form-register{transform:translateX(0);opacity:1}
.auth-split.show-register .auth-tab-btn[data-auth-tab="register"],
.auth-split.show-login .auth-tab-btn[data-auth-tab="login"]{background:#fff;color:#1e3a8a}
.auth-split.show-register .auth-tab-btn[data-auth-tab="login"],
.auth-split.show-login .auth-tab-btn[data-auth-tab="register"]{background:transparent;color:#c7d2fe}
.clean-guest{padding:1rem}
.clean-guest .guest-main{width:clamp(320px,90vw,920px)}
.clean-guest .auth-split{grid-template-columns:minmax(280px,.9fr) minmax(340px,1fr);min-height:auto}
.clean-guest .auth-promo,.clean-guest .auth-panel{padding:clamp(1rem,1.8vw,1.6rem)}
.clean-guest .auth-panel{display:flex;flex-direction:column;justify-content:center}
.register-steps-indicator{display:flex;gap:.4rem;align-items:center;margin:.1rem 0 .2rem}
.step-dot{width:24px;height:24px;border-radius:999px;display:inline-grid;place-items:center;font-size:.76rem;background:rgba(148,163,184,.34);color:#dbeafe}
.step-dot.active{background:#38bdf8;color:#0c4a6e;font-weight:700}
.register-step{display:none;gap:.6rem}
.register-step.active{display:grid}
.step-actions{display:flex;gap:.7rem;align-items:center}
.step-actions .auth-submit{flex:1}
.step-back{background:rgba(255,255,255,.15);color:#dbeafe;border:1px solid rgba(148,163,184,.45);padding:.7rem 1rem;border-radius:10px;cursor:pointer}
.step-back:hover{background:rgba(255,255,255,.22)}
@media (max-width:980px){.clean-guest .guest-main{width:min(94vw,760px)}.clean-guest .auth-split{grid-template-columns:1fr}.auth-promo{padding:1.2rem}.auth-panel{padding:1.1rem}.auth-forms{min-height:420px}}
@media (max-width:640px){.clean-guest{padding:.6rem}.clean-guest .guest-main{width:100%}.auth-split{border-radius:12px}.auth-panel{padding:1rem}.auth-forms{min-height:460px}.auth-form{gap:.62rem}.step-actions{flex-direction:column}.step-actions .auth-submit,.step-back{width:100%}}
.auth-split--flow .auth-panel--simple{justify-content:center}
.auth-form-title{margin:0 0 .15rem;font-size:1.25rem;line-height:1.25}
.auth-form-static{display:grid;gap:.72rem;margin:.35rem 0 0}
.auth-form-static label{color:#dbeafe}
.auth-lead{margin:-.1rem 0 .35rem;color:#bfdbfe;font-size:.9rem;line-height:1.45}
.auth-panel--faq{background:#fff!important;color:#0f172a!important}
.auth-panel--faq .alert.error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}
.auth-panel--faq .alert.success{background:#ecfdf5;color:#065f46;border:1px solid #a7f3d0}
.help-faq-title{margin:0 0 .35rem;font-size:1.35rem;color:#0f172a;font-weight:700}
.help-faq-lead{margin:0 0 1rem;font-size:.88rem;line-height:1.5;color:#64748b}
.help-empty{margin:0;color:#64748b;line-height:1.6;font-size:.95rem}
.auth-panel--faq .support-faq-preview{display:flex;flex-direction:column;gap:.55rem;margin:0}
.auth-panel--faq .support-faq-preview__item{margin:0;border:1px solid #e2e8f0;border-radius:12px;padding:.65rem .9rem;background:#f8fafc}
.auth-panel--faq .support-faq-preview__item summary{cursor:pointer;font-weight:600;color:#0f172a;list-style:none;display:flex;align-items:center;gap:.5rem}
.auth-panel--faq .support-faq-preview__item summary::-webkit-details-marker{display:none}
.auth-panel--faq .faq-answer{margin:.5rem 0 0;color:#475569!important;white-space:pre-wrap;line-height:1.55;font-size:.9rem}
.app-shell{background:#edf2ff}
.app-sidebar{width:clamp(248px,22vw,290px);min-width:248px;display:flex;flex-direction:column;padding:1rem .78rem;transition:width .22s ease,min-width .22s ease;gap:.55rem;position:sticky;top:0;max-height:100vh;overflow-y:auto;background:linear-gradient(180deg,#0b1630 0%,#101f3e 100%);border-right:1px solid #1d2d55}
.app-brand__head{display:flex;align-items:flex-start;gap:.65rem;width:100%}
.app-brand__logo{width:44px;height:44px;object-fit:contain;border-radius:10px;flex-shrink:0;background:rgba(255,255,255,.06)}
.app-brand__text{min-width:0;flex:1}
.app-brand h1{font-size:1.6rem;line-height:1.1;margin:.15rem .55rem;word-break:break-word}
.auth-brand-logo{width:56px;height:56px;object-fit:contain;border-radius:12px;display:block;margin:0 0 .45rem;background:#fff;box-shadow:0 1px 3px rgba(15,23,42,.08)}
.sidebar-separator{border:0;border-top:1px solid #233a69;margin:.2rem .35rem .48rem}
.app-nav a,.sidebar-logout .link-button{display:flex;align-items:center;gap:.72rem;padding:.58rem .66rem;border-radius:12px;margin:.14rem .22rem;color:#d9e4ff;transition:background .2s ease,color .2s ease,transform .15s ease;min-height:40px}
.app-nav a:hover,.sidebar-logout .link-button:hover{background:#1f3462;color:#fff;text-decoration:none;transform:translateX(1px)}
.app-nav a.active{background:linear-gradient(90deg,#29439e,#3256be);color:#fff;box-shadow:inset 0 0 0 1px rgba(147,197,253,.24),0 8px 20px rgba(25,53,140,.35)}
.app-nav .nav-sub-item.active{background:#1f3462;color:#eaf1ff}
.nav-section-label{font-size:.66rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#8ea6dd;margin:.78rem .58rem .24rem;display:flex;align-items:center;justify-content:space-between;cursor:pointer;user-select:none}
.nav-section-label::after{content:'▸';font-size:.7rem;color:#7f99d3;transition:transform .2s ease,color .2s ease}
.nav-section-label.open{color:#c0d6ff}
.nav-section-label.open::after{transform:rotate(90deg);color:#c0d6ff}
.sidebar-role-chip{font-size:.72rem;color:#a6c8ff;margin:.35rem .55rem 0;line-height:1.35}
.app-nav .nav-sub-item{padding:.4rem .62rem .4rem .9rem;margin:.02rem .25rem;color:#afc2ee;border-radius:9px;font-size:.83rem;line-height:1.25}
.app-nav .nav-sub-item:hover{background:#1b2f5a;color:#e4edff}
.nav-icon{display:inline-grid;place-items:center;width:22px;min-width:22px;height:22px}
.nav-icon-auto{font-size:18px;opacity:.86}
.app-nav .nav-sub-item .nav-icon-auto{font-size:16px;opacity:.78}
.material-symbols-outlined{
 font-family:'Material Symbols Outlined','Material Symbols Rounded';
 font-weight:normal;
 font-style:normal;
 font-size:20px;
 line-height:1;
 letter-spacing:normal;
 text-transform:none;
 display:inline-block;
 white-space:nowrap;
 word-wrap:normal;
 direction:ltr;
 -webkit-font-feature-settings:'liga';
 -webkit-font-smoothing:antialiased;
 font-variation-settings:'FILL' 0,'wght' 300,'GRAD' 0,'opsz' 20;
}
.app-nav .nav-external-link{opacity:.9;font-size:.92rem;color:#a8bbe4}
.app-nav .nav-external-link:hover{color:#fff;background:#1f3462}
.sidebar-logout{margin-top:auto;padding-top:.6rem}
.sidebar-logout .link-button{border:1px solid rgba(244,114,182,.22);background:linear-gradient(180deg,#3a1f3f,#2a1631);color:#ffd7ec}
.sidebar-logout .link-button:hover{background:linear-gradient(180deg,#51265a,#3c1c46);color:#fff0f8}
.course-manage__asset-uploader{border:1px solid #e2e8f0;background:linear-gradient(180deg,#ffffff,#f8fafc)}
.course-manage__upload-row{flex-wrap:wrap}
.course-manage__builder{display:grid;grid-template-columns:300px minmax(0,1fr);gap:1rem;align-items:start}
.course-manage__builder-left{position:sticky;top:.75rem}
.course-manage__builder-right{display:flex;flex-direction:column;gap:1rem}
.course-manage__curriculum-tree{margin-top:.8rem;display:flex;flex-direction:column;gap:.45rem;max-height:72vh;overflow:auto;padding-right:.25rem}
.course-manage__tree-section{border:1px solid #e2e8f0;border-radius:10px;background:#fff}
.course-manage__tree-section summary{cursor:pointer;padding:.55rem .65rem;font-weight:600;color:#334155}
.course-manage__tree-section summary a{text-decoration:none;color:inherit}
.course-manage__tree-section ul{list-style:none;margin:0;padding:0 .45rem .45rem}
.course-manage__tree-section li{margin:.2rem 0}
.course-manage__tree-section li a{display:block;padding:.38rem .45rem;border-radius:8px;color:#475569;text-decoration:none;font-size:.88rem}
.course-manage__tree-section li a:hover{background:#f1f5f9;color:#0f172a}
.course-manage__tree-section li.is-active a{background:#ecfdf5;color:#065f46;border:1px solid #a7f3d0}
@media (max-width:980px){.course-manage__builder{grid-template-columns:1fr}.course-manage__builder-left{position:static}}
.course-manage__file-input{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.course-manage__file-cta{display:inline-flex;align-items:center;justify-content:center}
.course-manage__upload-btn{display:inline-flex;align-items:center;justify-content:center}
.course-manage__lesson-form textarea,.course-manage__lesson-form select[multiple]{border:1px solid #cbd5e1;border-radius:10px;padding:.55rem .6rem;background:#fff;min-height:44px}
.course-manage__lesson-form textarea:focus,.course-manage__lesson-form select[multiple]:focus{outline:0;border-color:#38bdf8;box-shadow:0 0 0 3px rgba(56,189,248,.15)}
.course-manage__check input[type=checkbox]{accent-color:#0f766e;width:18px;height:18px}
.app-content{padding:1rem 1.1rem 1.2rem;min-width:0}
.app-page-content{min-height:auto}
.app-topbar{display:flex;align-items:center;gap:.8rem;justify-content:space-between;margin-bottom:.45rem}
.sidebar-toggle-btn{width:40px;height:40px;border-radius:10px;background:#fff;border:1px solid #e2e8f0;color:#334155;cursor:pointer;padding:0;display:grid;place-items:center}
.global-search{flex:1;max-width:620px;position:relative;background:#fff;border:1px solid #d8e2f7;border-radius:12px;padding:0;box-shadow:0 2px 8px rgba(15,23,42,.06);transition:box-shadow .2s ease,border-color .2s ease}
.global-search:focus-within{border-color:#5b7ce6;box-shadow:0 0 0 3px rgba(91,124,230,.16)}
.global-search .search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:#64748b;font-size:19px;transition:color .2s ease;pointer-events:none;z-index:2}
.global-search:focus-within .search-icon{color:#3b82f6}
.global-search input{width:100%;height:42px;border-radius:12px;border:0;background:#fff;padding:.5rem .95rem .5rem 2.75rem;box-shadow:none;font-size:.91rem}
.global-search input::placeholder{color:#94a3b8}
.global-search input[type="search"]{-webkit-appearance:none;appearance:none}
.global-search input[type="search"]::-webkit-search-decoration,
.global-search input[type="search"]::-webkit-search-results-button,
.global-search input[type="search"]::-webkit-search-results-decoration{display:none}
.search-popup{position:absolute;left:0;right:0;top:calc(100% + 8px);background:#fff;border:1px solid #dbe3f6;border-radius:12px;box-shadow:0 16px 34px rgba(15,23,42,.14);display:none;z-index:20;max-height:320px;overflow:auto}
.search-popup.open{display:block}
.search-popup-list{padding:.35rem}
.search-result{display:flex;align-items:center;gap:.5rem;padding:.55rem .6rem;border-radius:8px;color:#1f2937;text-decoration:none}
.search-result:hover{background:#f1f5f9}
.search-result-text{display:flex;flex-direction:column;gap:.1rem;min-width:0}
.search-result-text strong{font-size:.9rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.search-result-text small{font-size:.76rem;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.search-empty{margin:0;padding:.65rem .6rem;color:#64748b;font-size:.88rem}
.header-separator{height:1px;background:#dbe3f6;margin:0 0 .95rem}
.dashboard-wrap{display:grid;gap:1rem;max-width:100%}
.analytics-snapshot-wrap{gap:1.1rem}
.dashboard-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;padding:.25rem .15rem}
.dashboard-header h2{margin:0 0 .2rem}
.dashboard-header p{margin:0;color:#64748b}
.dashboard-filter-bar{display:flex;align-items:flex-end;gap:.55rem;flex-wrap:wrap;background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:.55rem .7rem}
.dashboard-filter-bar label{font-size:.85rem;color:#475569}
.dashboard-filter-bar select,.dashboard-filter-bar input[type="month"],.dashboard-filter-bar input[type="date"],.dashboard-filter-bar input.js-date-picker,.dashboard-filter-bar input.js-datetime-picker{height:34px;min-width:120px}
.dashboard-filter-bar button{height:34px;padding:0 .9rem;background:#0f766e;color:#fff;border:0;border-radius:8px;cursor:pointer;font-weight:600}
.dashboard-filter-bar button:hover{filter:brightness(1.05)}
.modern-range-bar{padding:.7rem .85rem;border-radius:12px;gap:.7rem;background:linear-gradient(180deg,#ffffff,#f8fafc);box-shadow:0 3px 10px rgba(15,23,42,.04);align-items:center}
.dashboard-range-pills{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;background:#f1f5f9;padding:.28rem;border-radius:10px}
.range-pill{height:32px;padding:0 .75rem;border-radius:8px;border:1px solid transparent;background:transparent;color:#334155;font-size:.83rem;font-weight:700;cursor:pointer;transition:all .18s ease}
.range-pill:hover{background:#e2e8f0}
.range-pill.active{background:#0f766e;color:#fff;box-shadow:0 4px 12px rgba(15,118,110,.22)}
.dashboard-range-select{position:relative;min-width:220px;width:min(100%,260px)}
.dashboard-filter-bar .range-select-trigger{
height:38px;
width:100%;
padding:0 .62rem;
display:inline-flex;
align-items:center;
gap:.42rem;
border:1px solid #d5deee;
border-radius:9px;
background:linear-gradient(180deg,#ffffff,#f8fafc);
color:#1e293b;
font-size:.925rem;
font-weight:500;
cursor:pointer;
box-shadow:0 1px 4px rgba(15,23,42,.06);
transition:border-color .18s ease,box-shadow .18s ease,transform .16s ease
}
.dashboard-filter-bar .range-select-trigger:hover{border-color:#99f6e4;box-shadow:0 8px 16px rgba(15,118,110,.1);transform:translateY(-1px)}
.dashboard-filter-bar .range-select-trigger:focus-visible{outline:none;border-color:#14b8a6;box-shadow:0 0 0 3px rgba(20,184,166,.22)}
.dashboard-filter-bar .range-select-trigger .range-select-text{white-space:nowrap}
.range-chevron{margin-left:auto;color:#94a3b8;font-size:18px;transition:transform .2s ease}
.dashboard-range-select.open .range-chevron{transform:rotate(180deg)}
.range-select-menu{
position:absolute;
top:calc(100% + 6px);
left:0;
z-index:35;
width:100%;
min-width:220px;
padding:.3rem;
background:#fff;
border:1px solid #e2e8f0;
border-radius:9px;
box-shadow:0 16px 28px rgba(15,23,42,.12);
opacity:0;
pointer-events:none;
transform:translateY(-4px) scale(.98);
transition:opacity .16s ease,transform .18s ease
}
.dashboard-range-select.open .range-select-menu{
opacity:1;
pointer-events:auto;
transform:translateY(0) scale(1)
}
.dashboard-filter-bar .range-option{
width:100%;
height:36px;
padding:0 .62rem;
display:flex;
align-items:center;
border:0;
background:#fff;
border-radius:7px;
color:#1e293b;
font-size:.93rem;
font-weight:400;
cursor:pointer;
text-align:left;
transition:background .16s ease,color .16s ease,transform .14s ease
}
.dashboard-filter-bar .range-option:hover{background:#f8fafc;color:#1e293b}
.dashboard-filter-bar .range-option:focus-visible{outline:none;background:#f1f5f9;box-shadow:inset 0 0 0 1px #cbd5e1}
.dashboard-filter-bar .range-option.active{background:#ecfdf5;color:#065f46;font-weight:500}
.dashboard-filter-bar .range-option::after{content:"";margin-left:auto;width:14px;height:14px;opacity:0;transform:scale(.85);transition:opacity .15s ease,transform .15s ease}
.dashboard-filter-bar .range-option.active::after{content:"\2713";opacity:.85;transform:scale(1);color:#0f766e;font-size:.85rem;font-weight:600;display:inline-flex;align-items:center;justify-content:center}
.range-current-hint{
margin:0;
font-size:.84rem;
color:#64748b;
font-weight:500;
line-height:1.25;
flex:1 1 260px;
display:flex;
align-items:center;
min-height:38px
}
.range-apply-btn{
height:36px;
padding:0 1.1rem;
border-radius:10px;
min-width:116px;
white-space:nowrap;
font-weight:700;
background:linear-gradient(180deg,#0d9488,#0f766e);
box-shadow:0 8px 16px rgba(15,118,110,.2);
transition:transform .16s ease,box-shadow .18s ease,filter .18s ease
}
.range-apply-btn:hover{transform:translateY(-1px);box-shadow:0 10px 20px rgba(15,118,110,.26);filter:brightness(1.03)}
.range-apply-btn:active{transform:translateY(0)}
.analytics-filter-bar .range-group{min-width:145px}
.analytics-filter-bar input,.analytics-filter-bar select{min-width:145px}
.analytics-section-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.analytics-section{padding:1rem}
.analytics-mini-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem}
.analytics-mini{border:1px solid #e2e8f0;border-radius:10px;padding:.62rem .68rem;background:#fff;overflow:visible}
.analytics-mini span{display:flex;align-items:center;gap:.24rem;flex-wrap:wrap;font-size:.76rem;color:#64748b;line-height:1.2}
.analytics-mini strong{display:block;margin-top:.22rem;font-size:1.02rem;color:#0f172a;line-height:1.2}
.analytics-subtable{margin-top:.7rem}
.analytics-subtable h4,.drilldown-grid h4{margin:.1rem 0 .45rem;font-size:.93rem;color:#334155}
.info-tip{
display:inline-flex;
align-items:center;
justify-content:center;
width:16px;
height:16px;
margin-left:.22rem;
border-radius:999px;
border:1px solid #99f6e4;
background:#ccfbf1;
color:#0f766e;
font-size:.7rem;
font-weight:700;
line-height:1;
cursor:help;
position:relative;
flex:0 0 auto;
box-shadow:0 1px 2px rgba(15,118,110,.12);
vertical-align:middle
}
.info-tip::after{
content:attr(data-tip);
position:absolute;
left:50%;
bottom:calc(100% + 8px);
transform:translateX(-50%);
min-width:180px;
max-width:260px;
padding:.42rem .5rem;
border-radius:8px;
background:#0f172a;
color:#fff;
font-size:.74rem;
font-weight:500;
line-height:1.35;
text-align:left;
opacity:0;
pointer-events:none;
transition:opacity .16s ease,transform .16s ease;
z-index:40
}
.info-tip:hover::after,.info-tip:focus-visible::after{opacity:1;transform:translateX(-50%) translateY(-2px)}
.info-tip::before{
content:"";
position:absolute;
left:50%;
bottom:calc(100% + 2px);
transform:translateX(-50%);
border:6px solid transparent;
border-top-color:#0f172a;
opacity:0;
transition:opacity .16s ease;
pointer-events:none
}
.info-tip:hover::before,.info-tip:focus-visible::before{opacity:1}
.info-tip:focus-visible{outline:none;box-shadow:0 0 0 2px rgba(20,184,166,.35)}
.drilldown-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem}
.compact-table th,.compact-table td{padding:.46rem .5rem;font-size:.84rem}
.is-hidden-row{display:none}
.see-more-btn{margin-top:.38rem;border:1px solid #e2e8f0;background:#fff;color:#334155;height:32px;padding:0 .8rem;border-radius:8px;font-weight:600;cursor:pointer}
.see-more-btn:hover{background:#f8fafc;color:#0f766e;border-color:#cbd5e1}
/* App-wide date fields: Flatpickr (same as dashboard), not native type=date */
input.js-date-picker,
input.modern-date-input{
height:40px;
padding:.52rem .78rem;
border:1px solid #cbd5e1;
border-radius:12px;
background:linear-gradient(180deg,#ffffff,#f8fafc);
box-shadow:inset 0 1px 2px rgba(15,23,42,.04);
color:#0f172a;
font:inherit;
font-size:.92rem;
font-weight:600;
width:100%;
max-width:100%;
box-sizing:border-box;
transition:border-color .18s ease,box-shadow .18s ease,background .18s ease
}
input.js-date-picker:hover,
input.modern-date-input:hover{
border-color:#99f6e4;
background:#fff
}
input.js-date-picker:focus,
input.modern-date-input:focus{
outline:none;
border-color:#14b8a6;
box-shadow:0 0 0 3px rgba(20,184,166,.2)
}
.course-form-grid input.js-date-picker,
.course-form-grid input.modern-date-input,
.rbac-create-form input.js-date-picker,
.rbac-create-form input.modern-date-input{min-width:0}
.admin-more-filters-grid input.js-date-picker{width:100%;min-width:0}
.range-group{display:flex;align-items:center;gap:.4rem}
.range-group label{
font-size:.92rem;
font-weight:600;
color:#475569;
margin-right:.1rem
}
.range-group input[type="date"],
.range-group input[type="month"],
.range-group input.js-date-picker,
.range-group input.js-datetime-picker{
height:40px;
padding:.52rem 2.3rem .52rem .78rem;
border:1px solid #cbd5e1;
border-radius:12px;
background:linear-gradient(180deg,#ffffff,#f8fafc);
box-shadow:inset 0 1px 2px rgba(15,23,42,.04);
color:#0f172a;
font-weight:600;
font-size:.92rem;
transition:border-color .18s ease,box-shadow .18s ease,background .18s ease
}
.range-group input[type="date"]:hover,
.range-group input[type="month"]:hover,
.range-group input.js-date-picker:hover,
.range-group input.js-datetime-picker:hover{
border-color:#93c5fd;
background:#fff
}
.range-group input[type="date"]:focus,
.range-group input[type="month"]:focus,
.range-group input.js-date-picker:focus,
.range-group input.js-datetime-picker:focus{
outline:none;
border-color:#60a5fa;
box-shadow:0 0 0 3px rgba(59,130,246,.2)
}
.range-group input[type="date"]::-webkit-calendar-picker-indicator,
.range-group input[type="month"]::-webkit-calendar-picker-indicator{
opacity:.86;
padding:.24rem;
border-radius:8px;
cursor:pointer;
transition:background .16s ease,opacity .16s ease
}
.range-group input[type="date"]::-webkit-calendar-picker-indicator:hover,
.range-group input[type="month"]::-webkit-calendar-picker-indicator:hover{
background:#dbeafe;
opacity:1
}
.flatpickr-calendar{
border:1px solid #e2e8f0!important;
border-radius:14px!important;
box-shadow:0 18px 36px rgba(15,23,42,.14)!important;
font-family:"Google Sans Text","Google Sans","Product Sans","Segoe UI",Roboto,Arial,sans-serif!important
}
.flatpickr-months{
background:linear-gradient(180deg,#f8fafc,#f1f5f9);
border-top-left-radius:14px;
border-top-right-radius:14px
}
.flatpickr-current-month .flatpickr-monthDropdown-months,
.flatpickr-current-month input.cur-year{
font-weight:700;
color:#0f172a
}
.flatpickr-weekdays{
background:#fff;
border-bottom:1px solid #e2e8f0
}
span.flatpickr-weekday{
color:#64748b!important;
font-weight:700!important
}
.flatpickr-day{
border-radius:9px!important;
font-weight:600;
color:#0f172a
}
.flatpickr-day:hover{
background:#ecfdf5!important;
border-color:#a7f3d0!important
}
.flatpickr-day.today{
border-color:#5eead4!important
}
.flatpickr-day.selected,
.flatpickr-day.startRange,
.flatpickr-day.endRange{
background:#0f766e!important;
border-color:#0d9488!important;
color:#fff!important;
box-shadow:0 6px 14px rgba(15,118,110,.25)
}
.flatpickr-day.inRange{
background:#ccfbf1!important;
border-color:#99f6e4!important;
color:#115e59!important
}
.flatpickr-prev-month:hover svg,
.flatpickr-next-month:hover svg{
fill:#0f766e!important
}
.flatpickr-calendar .flatpickr-button{
color:#0f766e!important;
font-weight:700
}
.custom-group{display:none}
.dashboard-filter-bar.custom-mode .custom-group{display:flex}
.dashboard-filter-bar.custom-mode .month-group{display:none}
.dashboard-filter-bar:not(.custom-mode):not(.month-mode) .month-group,
.dashboard-filter-bar:not(.custom-mode):not(.month-mode) .custom-group{display:none}
.chip{background:#e2e8f0;color:#334155;padding:.35rem .7rem;border-radius:999px;font-size:.82rem}
.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:1rem}
.kpi-card-link{display:block;text-decoration:none;color:inherit}
.kpi-card-link:focus-visible{outline:none}
.kpi-card-link:focus-visible .kpi-card{box-shadow:0 0 0 3px rgba(59,130,246,.24),0 10px 24px rgba(15,23,42,.06)}
.kpi-card{background:#fff;border:1px solid #dde5f7;border-radius:16px;padding:1rem 1rem .95rem;box-shadow:0 8px 20px rgba(15,23,42,.05);position:relative;overflow:hidden}
.kpi-card-link:hover .kpi-card{transform:translateY(-2px);box-shadow:0 14px 26px rgba(15,23,42,.1)}
.kpi-card::before{content:"";position:absolute;left:0;top:0;right:0;height:4px;background:linear-gradient(90deg,#4f46e5,#22c55e)}
.kpi-card p{margin:0;color:#64748b;font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.kpi-card h3{margin:.48rem 0 .22rem;font-size:1.8rem;line-height:1.05;letter-spacing:-.02em;color:#1e293b}
.kpi-card small{color:#0f766e;font-size:.82rem}
.kpi-trend{display:inline-flex;align-items:center;gap:.28rem;margin-top:.4rem;font-size:.78rem;font-weight:700}
.kpi-trend.up{color:#059669}
.kpi-trend.down{color:#dc2626}
.analytics-grid{display:grid;grid-template-columns:2fr 1fr;gap:1rem}
.analytics-grid > .card{min-width:0}
#enrollments-chart,#revenue-chart,#user-growth-chart,#completion-trend-chart{display:block;width:100%;max-width:100%;height:230px !important;border-radius:10px;background:linear-gradient(180deg,#f8fafc,#ffffff)}
.dashboard-panel{border-radius:14px;border:1px solid #e2e8f0;box-shadow:0 10px 24px rgba(15,23,42,.06)}
.dashboard-panel h3{margin:0 0 .85rem;font-size:1.35rem;letter-spacing:-.01em}
.dashboard-table thead th{font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:#64748b;background:#f8fafc}
.dashboard-table td,.dashboard-table th{padding:.68rem .62rem}
.dashboard-table tbody tr:hover{background:#f8fafc}
.pending-actions-table thead th{font-size:.76rem;color:#64748b;background:#f8fafc}
.pending-actions-table th:last-child,.pending-actions-table td:last-child{text-align:right;width:120px}
.pending-actions-table td:first-child a{
color:#334155;
text-decoration:none;
font-weight:600;
transition:color .16s ease
}
.pending-actions-table td:first-child a:hover{color:#0f766e;text-decoration:underline}
.pending-count-pill{
display:inline-flex;
align-items:center;
justify-content:center;
min-width:34px;
height:26px;
padding:0 .55rem;
border-radius:999px;
background:#f1f5f9;
color:#475569;
font-weight:700;
font-size:.82rem
}
.activity-header-row{display:flex;justify-content:space-between;align-items:center;gap:.8rem;margin-bottom:.45rem}
.activity-pagination{display:flex;justify-content:flex-end;align-items:center;gap:.65rem;margin-top:.8rem}
.page-btn{display:inline-flex;align-items:center;justify-content:center;height:34px;padding:0 .85rem;border:1px solid #e2e8f0;border-radius:8px;background:#fff;color:#334155;text-decoration:none;font-weight:600}
.page-btn:hover{background:#f8fafc;color:#0f766e;border-color:#cbd5e1}
.page-btn.disabled{pointer-events:none;opacity:.45}
.page-meta{font-size:.84rem;color:#64748b}
.students-page .students-header,
.student-admission-page .students-header{display:flex;align-items:center;justify-content:space-between;gap:.8rem;flex-wrap:wrap}
.students-page h2,.student-admission-page h2{margin:0 0 .2rem}
.students-filter-wrap{margin-top:.35rem}
.students-filter-grid{grid-template-columns:1.3fr .55fr auto}
.students-table thead th{font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:#64748b;background:#f8fafc}
.students-table td,.students-table th{padding:.64rem .58rem}
.students-table tbody tr:hover{background:#f8fafc}
.student-row{cursor:pointer}
.admission-pill{display:inline-flex;align-items:center;justify-content:center;min-width:92px;height:24px;padding:0 .5rem;border-radius:999px;background:#ecfdf5;color:#065f46;font-size:.76rem;font-weight:700}
.student-name-cell{display:flex;align-items:center;gap:.5rem}
.student-mini-avatar{width:30px;height:30px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:#ccfbf1;color:#0f766e;font-size:.76rem;font-weight:700;overflow:hidden}
.student-mini-avatar img{width:100%;height:100%;object-fit:cover}
.student-photo-preview{display:flex;align-items:center;gap:.5rem;margin-top:.35rem}
.student-photo-preview img{width:44px;height:44px;border-radius:999px;object-fit:cover;border:1px solid #dbe3f6}
.student-admission-form{display:grid;gap:.95rem}
.student-form-section{border:1px solid #e2e8f0;border-radius:14px;padding:.88rem .95rem;background:linear-gradient(180deg,#ffffff,#fbfdff)}
.student-form-section-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.62rem;padding-bottom:.5rem;border-bottom:1px dashed #dbe7fb}
.student-admission-form h3{margin:0;font-size:1rem;color:#334155;letter-spacing:.01em}
.student-form-grid{grid-template-columns:repeat(3,minmax(220px,1fr));gap:.85rem .9rem}
.student-admission-form label{display:block;margin-bottom:.32rem;font-weight:600;color:#475569}
.student-admission-form label.required-label::after{content:" *";color:#dc2626;font-weight:800}
.student-admission-form input,.student-admission-form select,.student-admission-form textarea{background:#fff;border:1px solid #dbe3f6}
.student-admission-form input:focus,.student-admission-form select:focus,.student-admission-form textarea:focus{outline:none;border-color:#60a5fa;box-shadow:0 0 0 3px rgba(59,130,246,.16)}
.student-admission-form textarea{min-height:96px;resize:vertical}
.student-admission-form .modern-select{
height:42px;
padding:.52rem 2.2rem .52rem .72rem;
border-radius:10px;
background:linear-gradient(180deg,#ffffff,#f8fafc);
appearance:none;
background-image:linear-gradient(45deg,transparent 50%,#64748b 50%),linear-gradient(135deg,#64748b 50%,transparent 50%);
background-position:calc(100% - 18px) calc(50% - 2px),calc(100% - 12px) calc(50% - 2px);
background-size:6px 6px,6px 6px;
background-repeat:no-repeat
}
.student-admission-form .modern-date-input{
height:42px;
padding:.52rem 2.3rem .52rem .72rem;
border-radius:10px;
background:linear-gradient(180deg,#ffffff,#f8fafc)
}
.student-admission-form .modern-file-input{
width:100%;
padding:.46rem .55rem;
border:1px dashed #bfdbfe;
border-radius:10px;
background:#f8fbff;
font-size:0;
color:transparent
}
.student-admission-form .modern-file-input::file-selector-button{
margin-right:.7rem;
border:1px solid #bfdbfe;
background:#eff6ff;
color:#1e40af;
border-radius:8px;
padding:.38rem .68rem;
font-weight:600;
font-size:1rem;
cursor:pointer
}
.student-admission-form .modern-file-input:hover{border-color:#93c5fd;background:#f1f7ff}
.student-upload-preview{margin-top:.5rem;display:inline-flex;align-items:center;justify-content:center;min-height:82px;min-width:82px;border:1px solid #dbe3f6;border-radius:12px;background:#fff;padding:.3rem}
.student-upload-preview img{width:74px;height:74px;object-fit:cover;border-radius:10px}
.student-form-actions{position:sticky;bottom:0;display:flex;justify-content:flex-end;gap:.6rem;padding:.7rem .1rem .1rem;background:linear-gradient(180deg,rgba(245,247,251,0),#f5f7fb 30%,#f5f7fb)}
.student-form-actions button{min-width:210px;height:42px;border-radius:10px;font-weight:700}
.student-drawer-overlay{position:fixed;inset:0;background:rgba(2,6,23,.35);z-index:100;opacity:0;pointer-events:none;transition:opacity .2s ease}
.student-drawer{position:fixed;right:0;top:0;bottom:0;width:min(520px,92vw);background:#fff;box-shadow:-14px 0 30px rgba(15,23,42,.16);z-index:101;transform:translateX(102%);transition:transform .24s ease;display:flex;flex-direction:column}
.student-drawer.open{transform:translateX(0)}
.student-drawer-overlay.open{opacity:1;pointer-events:auto}
.student-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:.9rem 1rem;border-bottom:1px solid #e2e8f0}
.student-drawer-header h3{margin:0;font-size:1.05rem}
.student-drawer-close{width:32px;height:32px;border-radius:8px;border:1px solid #dbe3f6;background:#fff;color:#334155;cursor:pointer}
.student-drawer-body{padding:.9rem 1rem;overflow-y:auto;display:grid;gap:.9rem}
.student-drawer-profile{display:flex;align-items:center;gap:.65rem}
.student-drawer-actions{display:flex;justify-content:flex-start;gap:.5rem;flex-wrap:wrap}
.student-drawer-avatar{width:54px;height:54px;border-radius:999px;background:#ccfbf1;color:#0f766e;display:grid;place-items:center;font-weight:700;font-size:1rem;overflow:hidden}
.student-drawer-avatar img{width:100%;height:100%;object-fit:cover}
.student-drawer-meta{font-size:.85rem;color:#64748b;margin-top:.14rem}
.student-drawer-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}
.student-drawer-kpis article{border:1px solid #e2e8f0;border-radius:10px;padding:.52rem .58rem;background:#f8fbff}
.student-drawer-kpis article span{display:block;font-size:.75rem;color:#64748b}
.student-drawer-kpis article strong{display:block;margin-top:.16rem;color:#0f172a;font-size:1rem}
.student-drawer-section{border:1px solid #e2e8f0;border-radius:12px;padding:.62rem .68rem;background:#fff}
.student-drawer-section h4{margin:.1rem 0 .45rem;font-size:.9rem;color:#334155}
.student-drawer-section ul{list-style:none;padding:0;margin:0;display:grid;gap:.38rem}
.student-drawer-section li{font-size:.83rem;color:#1f2937;border:1px solid #eef2ff;background:#f8fbff;border-radius:8px;padding:.42rem .48rem}
.student-drawer-section li small{display:block;color:#64748b;font-size:.75rem}
.student-drawer-personal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.48rem}
.student-drawer-personal-grid div{border:1px solid #eef2ff;background:#f8fbff;border-radius:8px;padding:.42rem .48rem}
.student-drawer-personal-grid span{display:block;font-size:.74rem;color:#64748b}
.student-drawer-personal-grid strong{display:block;font-size:.83rem;color:#0f172a;margin-top:.12rem;word-break:break-word}
.student-drawer-personal-grid .wide{grid-column:1 / -1}
.status-pill.active{background:#dcfce7;color:#166534}
.status-pill.inactive{background:#fef3c7;color:#92400e}
.status-pill.suspended{background:#fee2e2;color:#991b1b}
.system-alert-list{display:grid;gap:.6rem}
.system-alert-item{
display:flex;
align-items:center;
justify-content:space-between;
gap:.75rem;
padding:.72rem .76rem;
border:1px solid #e2e8f0;
border-left-width:4px;
border-radius:10px;
background:#fff;
text-decoration:none;
color:inherit;
transition:box-shadow .16s ease,transform .16s ease,border-color .16s ease
}
.system-alert-item:hover{transform:translateY(-1px);box-shadow:0 10px 20px rgba(15,23,42,.08)}
.system-alert-main{display:grid;gap:.14rem}
.system-alert-main strong{font-size:.96rem;color:#0f172a}
.system-alert-main small{font-size:.81rem;color:#64748b}
.system-alert-meta{display:flex;align-items:center;gap:.35rem}
.system-alert-value{font-size:1rem;font-weight:700;color:#0f172a}
.system-alert-item.level-ok{border-left-color:#22c55e}
.system-alert-item.level-medium{border-left-color:#f59e0b}
.system-alert-item.level-high{border-left-color:#ef4444}
.table-scroll{width:100%;max-width:100%;overflow-x:auto}
.recent-activity-table{table-layout:fixed;width:100%;min-width:520px}
.recent-activity-table th:nth-child(1),.recent-activity-table td:nth-child(1){width:30%;word-break:break-word;white-space:normal}
.recent-activity-table th:nth-child(2),.recent-activity-table td:nth-child(2){width:26%;word-break:break-word}
.recent-activity-table th:nth-child(3),.recent-activity-table td:nth-child(3){width:16%}
.recent-activity-table th:nth-child(4),.recent-activity-table td:nth-child(4){width:14%}
.recent-activity-table th:nth-child(5),.recent-activity-table td:nth-child(5){width:14%;word-break:break-word}
.modern-table th,.modern-table td{padding:.65rem .55rem}
.status-pill{padding:.2rem .55rem;border-radius:999px;font-size:.76rem;font-weight:600}
.status-pill.done{background:#dcfce7;color:#166534}
.status-pill.paid{background:#ccfbf1;color:#0f766e}
.status-pill.progress{background:#fef3c7;color:#92400e}
.layout.sidebar-collapsed .app-sidebar{width:78px;min-width:78px}
.layout.sidebar-collapsed .app-brand__text{display:none}
.layout.sidebar-collapsed .app-brand__head{justify-content:center}
.layout.sidebar-collapsed .app-brand__logo{margin:0}
.layout.sidebar-collapsed .nav-text,.layout.sidebar-collapsed .nav-section-label{display:none}
.layout.sidebar-collapsed .sidebar-separator{margin:.2rem 0 .45rem}
.layout.sidebar-collapsed .app-nav a,.layout.sidebar-collapsed .sidebar-logout .link-button{justify-content:center}
.layout.sidebar-collapsed .app-nav .nav-sub-item{display:none!important}
.layout.sidebar-collapsed .nav-icon{width:22px;min-width:22px;height:22px}
@media (max-width:1080px){.kpi-grid{grid-template-columns:repeat(2,minmax(160px,1fr))}.analytics-grid{grid-template-columns:1fr}.analytics-section-grid{grid-template-columns:1fr}.analytics-mini-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.drilldown-grid{grid-template-columns:1fr}}
@media (max-width:980px){.dashboard-filter-bar{display:grid;grid-template-columns:1fr 1fr;align-items:end}.dashboard-range-select{grid-column:1 / -1;width:100%}.range-select-trigger{width:100%}.range-select-menu{width:100%;min-width:0}.dashboard-filter-bar .range-group{flex-wrap:wrap}.dashboard-filter-bar .range-group input{width:100%;min-width:0}.range-apply-btn{width:100%}.kpi-card h3{font-size:1.7rem}}
@media (max-width:980px){.student-form-grid{grid-template-columns:repeat(2,minmax(200px,1fr))}}
@media (max-width:720px){.kpi-grid{grid-template-columns:1fr}.dashboard-filter-bar{grid-template-columns:1fr}.card{padding:1rem;min-width:0}.modern-table{display:block;overflow-x:auto;white-space:nowrap}.recent-activity-table{min-width:600px}.dashboard-panel h3{font-size:1.15rem}.kpi-card h3{font-size:1.55rem}.analytics-mini-grid{grid-template-columns:1fr}.students-filter-grid{grid-template-columns:1fr}.students-page .btn-link,.student-admission-page .btn-link{width:100%;text-align:center}.student-drawer-kpis{grid-template-columns:1fr}.student-drawer-personal-grid{grid-template-columns:1fr}.student-form-grid{grid-template-columns:1fr}.student-form-actions{position:static;padding:.25rem 0 0}.student-form-actions button{width:100%;min-width:0}}
@media (max-width:860px){.app-sidebar{width:100%;min-width:0;position:static;height:auto;overflow:visible}.app-topbar{flex-wrap:wrap}.global-search{max-width:none;width:100%}.app-page-content{min-height:auto}}

.quick-actions-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.72rem;width:100%}
.quick-action-btn{
display:flex;
align-items:center;
justify-content:flex-start;
gap:.55rem;
width:100%;
max-width:100%;
min-width:0;
min-height:52px;
padding:.58rem .84rem;
border-radius:10px;
background:#fff;
border:1px solid #e2e8f0;
color:#334155;
text-decoration:none;
font-weight:600;
font-size:.98rem;
line-height:1.2;
box-shadow:0 4px 10px rgba(15,23,42,.05);
transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,color .16s ease
}
.quick-action-btn .material-symbols-outlined{font-size:19px;color:#0f766e;flex:0 0 20px}
.quick-action-btn span:last-child{display:block;white-space:normal;word-break:break-word;overflow-wrap:anywhere}
.quick-action-btn:hover{transform:translateY(-1px);box-shadow:0 10px 20px rgba(15,118,110,.1);border-color:#99f6e4;color:#065f46}
.quick-action-btn:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(13,148,136,.22),0 10px 20px rgba(15,118,110,.1)}
@media (max-width:1200px){.quick-actions-grid{grid-template-columns:1fr}}

/* Admin directory */
.admin-hub-page{padding:1.25rem 1.35rem}
.admin-hub-page--clean{padding:1.1rem 1.25rem}
.admin-hub-header{display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;align-items:flex-start;margin-bottom:.85rem}
.admin-hub-header--clean{margin-bottom:.65rem;align-items:center}
.admin-hub-title{margin:0;font-size:1.35rem;color:#0f172a}
.admin-hub-metrics-inline{margin:.35rem 0 0;font-size:.88rem}
.admin-hub-metrics-inline strong{color:#0f172a;font-weight:600}
.admin-hub-header-actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}
.admin-hub-header-actions--clean{gap:.65rem;align-items:center}
.admin-icon-link{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:8px;color:#475569;text-decoration:none}
.admin-icon-link:hover{background:#f1f5f9;color:#334155}
.admin-icon-link .material-symbols-outlined{font-size:1.35rem;line-height:1}
.admin-icon-btn{display:inline-flex;align-items:center;justify-content:center;min-width:2.25rem;min-height:2.25rem;padding:.35rem;border-radius:8px;border:0;background:transparent;cursor:pointer;font:inherit}
.admin-icon-btn .material-symbols-outlined{font-size:1.35rem;line-height:1}
.admin-btn-with-icon{display:inline-flex;align-items:center;gap:.35rem}
.admin-btn-with-icon .material-symbols-outlined{font-size:1.2rem;line-height:1}
.admin-more-filters summary{display:flex;align-items:center;gap:.35rem}
.admin-summary-icon{font-size:1.15rem;line-height:1;color:#64748b}
.admin-summary-text{font-size:.86rem}
.admin-text-link{font-size:.88rem;color:#475569;text-decoration:none;font-weight:500}
.admin-text-link:hover{color:#0f766e;text-decoration:underline}
.btn-muted{background:#475569!important}
.btn-muted:hover{filter:brightness(1.06)}
.admin-filter-form--clean{margin:.5rem 0 0}
.admin-toolbar-row{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-bottom:.35rem}
.admin-search-input{flex:1;min-width:200px;max-width:320px;padding:.55rem .7rem;border:1px solid #cbd5e1;border-radius:8px;font:inherit}
.admin-toolbar-select{padding:.55rem .6rem;border-radius:8px;border:1px solid #cbd5e1;font:inherit;min-width:130px;background:#fff}
.admin-more-filters{margin:.35rem 0 .75rem;border:0;border-radius:8px}
.admin-more-filters summary{cursor:pointer;font-size:.86rem;color:#64748b;user-select:none;padding:.25rem 0}
.admin-more-filters summary:hover{color:#334155}
.admin-more-filters[open] summary{margin-bottom:.5rem}
.admin-more-filters-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.65rem 1rem;padding:.75rem 0 0;border-top:1px solid #e5e7eb}
.admin-more-filters-grid label{display:block;font-size:.78rem;color:#64748b;margin-bottom:.2rem}
.admin-more-filters-grid input,.admin-more-filters-grid select{width:100%;padding:.45rem .5rem;border-radius:8px;border:1px solid #cbd5e1;font:inherit}
.admin-more-filters-actions{align-self:end}
.admin-bulk-inline{margin:.25rem 0 .75rem;padding:.5rem 0;border-top:1px solid #f1f5f9;border-bottom:1px solid #f1f5f9}
.admin-bulk-inline .admin-bulk-form{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center}
.admin-bulk-inline select{padding:.45rem .5rem;border-radius:8px;border:1px solid #cbd5e1;font:inherit;font-size:.86rem}
.admin-table-scroll{width:100%;overflow-x:auto;margin-top:.25rem;border-radius:10px;border:1px solid #e5e7eb}
.admin-table-scroll--clean{border-color:#e2e8f0}
.admin-admins-table{min-width:640px}
.admin-admins-table--clean{min-width:0;width:100%}
.admin-th-check{width:36px}
.admin-th-actions{width:48px;text-align:center}
.admin-actions-cell{text-align:center;position:static;box-shadow:none}
.admin-role-tags{font-size:.84rem;color:#334155}
.admin-table-hint{font-size:.82rem;margin:.5rem 0 0}
.admin-actions-dropdown-wrap{position:relative;display:inline-block}
.admin-actions-trigger{display:inline-flex;align-items:center;justify-content:center;background:#f1f5f9;color:#334155;border:1px solid #e2e8f0;border-radius:8px;padding:.3rem;cursor:pointer;min-width:2.25rem;min-height:2.25rem}
.admin-actions-trigger .material-symbols-outlined{font-size:1.35rem;line-height:1}
.admin-actions-trigger:hover{background:#e2e8f0}
.admin-actions-menu{display:none;position:absolute;right:0;top:100%;margin-top:.25rem;min-width:168px;background:#fff;border:1px solid #e5e7eb;border-radius:10px;box-shadow:0 12px 28px rgba(15,23,42,.12);z-index:20;padding:.35rem}
.admin-actions-dropdown-wrap.open .admin-actions-menu{display:block}
.admin-actions-menu a,.admin-actions-menu button{display:block;width:100%;text-align:left;padding:.45rem .6rem;border:0;background:none;font:inherit;cursor:pointer;color:#1e293b;text-decoration:none;border-radius:6px;font-size:.88rem}
.admin-actions-menu a:hover,.admin-actions-menu button:hover{background:#f1f5f9}
.admin-actions-menu form{margin:0}
.admin-drawer-kpis article span{font-size:.72rem}
.admin-perm-group{margin-bottom:.5rem}
.admin-perm-group ul{margin:.25rem 0 0 1rem;padding:0;list-style:disc}
.admin-perm-group li{font-size:.84rem;color:#475569}
.admin-admins-form-page .admin-hub-header{margin-bottom:1.25rem}
.admin-admins-form-grid{display:grid;grid-template-columns:minmax(120px,160px) 1fr;gap:.65rem 1rem;max-width:640px;align-items:center}
.admin-form-roles{grid-column:1 / -1;display:flex;flex-direction:column;gap:.5rem}
.admin-form-roles-label{font-weight:600;color:#374151}
.admin-roles-checklist{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.35rem}
.admin-form-actions{grid-column:1 / -1;display:flex;justify-content:flex-end;margin-top:.5rem}
@media (max-width:640px){.admin-admins-form-grid{grid-template-columns:1fr}.admin-toolbar-row .admin-search-input{max-width:none}}

.course-index-shortcuts{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem .5rem;font-size:.8125rem;margin:0 0 .75rem}
.course-index-shortcuts a{color:#475569;text-decoration:none;font-weight:500}
.course-index-shortcuts a:hover{color:#0f766e;text-decoration:underline;text-underline-offset:2px}
.course-index-shortcuts__sep{color:#cbd5e1;user-select:none}
.courses-index-actions{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}
.courses-index-manage-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:.32rem .72rem;
  border-radius:999px;
  border:1px solid #14b8a6;
  background:linear-gradient(180deg,#14b8a6 0%,#0f766e 100%);
  color:#ffffff !important;
  font-weight:600;
  text-decoration:none;
  box-shadow:0 4px 12px rgba(15,118,110,.28);
  transition:transform .16s ease, box-shadow .16s ease, filter .16s ease;
}
.courses-index-manage-link:hover{
  transform:translateY(-1px) scale(1.02);
  filter:brightness(1.03);
  box-shadow:0 8px 16px rgba(15,118,110,.32);
}
.courses-index-manage-link:focus-visible{
  outline:2px solid rgba(20,184,166,.32);
  outline-offset:2px;
}

/* Course workspace (per-course manage) */
.course-form-header__actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;justify-content:flex-end}
.course-form-back--primary{background:#ecfdf5;border-color:#a7f3d0;color:#065f46}
.course-form-back--primary:hover{border-color:#6ee7b7;color:#064e3b}
.course-workspace-cta h3{display:flex;align-items:center;gap:.45rem;margin:0 0 .75rem;font-size:1.05rem;color:#0f172a}
.course-workspace-cta h3 .material-symbols-outlined{font-size:1.25rem;color:#64748b}
.course-manage{max-width:1100px;padding:0;overflow:hidden}
.course-manage__header{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;align-items:flex-start;padding:1.25rem 1.35rem;border-bottom:1px solid #e2e8f0;background:linear-gradient(180deg,#fff,#f8fafc)}
.course-manage__crumb{margin:0 0 .35rem;font-size:.8rem}
.course-manage__crumb a{color:#64748b;text-decoration:none}
.course-manage__crumb a:hover{color:#0f172a;text-decoration:underline;text-underline-offset:2px}
.course-manage__title{margin:0;font-size:1.35rem;font-weight:600;color:#0f172a;letter-spacing:-.02em}
.course-manage__meta{margin:.5rem 0 0;font-size:.85rem;display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}
.course-manage__ops{margin-top:.65rem;display:flex;flex-wrap:wrap;gap:.4rem .85rem;font-size:.78rem;color:#475569}
.course-manage__ops span{display:inline-flex;align-items:center;gap:.25rem;padding:.18rem .5rem;border-radius:999px;background:#f8fafc;border:1px solid #e2e8f0}
.course-manage__ops strong{color:#0f172a;font-weight:700}
.course-manage__code{font-size:.78rem;background:#f1f5f9;padding:.1rem .35rem;border-radius:4px}
.course-manage__header-actions{display:flex;flex-wrap:wrap;gap:.5rem}
.course-manage__chip{display:inline-flex;align-items:center;padding:.2rem .5rem;border-radius:6px;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;background:#ecfdf5;color:#065f46}
.course-manage__chip--soft{background:#f1f5f9;color:#475569;font-weight:500;text-transform:none;letter-spacing:0}
.course-manage__tabs{display:flex;flex-wrap:wrap;gap:.25rem;padding:.65rem 1rem;border-bottom:1px solid #e2e8f0;background:#fff}
.course-manage__tab{padding:.5rem .85rem;border-radius:8px;font-size:.875rem;font-weight:500;color:#64748b;text-decoration:none;border:1px solid transparent}
.course-manage__tab:hover{background:#f8fafc;color:#334155}
.course-manage__tab.is-active{background:#ecfdf5;color:#065f46;border-color:#a7f3d0}
.course-manage__panel{padding:1.25rem 1.35rem 1.5rem}
.course-manage__kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem;margin-bottom:1.25rem}
.course-manage__kpis--small{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}
.course-manage__kpi{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:.85rem 1rem}
.course-manage__kpi p{margin:0;font-size:.75rem;color:#64748b;text-transform:uppercase;letter-spacing:.03em}
.course-manage__kpi strong{display:block;margin-top:.35rem;font-size:1.35rem;color:#0f172a}
.course-manage__grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;margin-bottom:1rem}
.course-manage__grid2--overview{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.course-manage__subcard{border:1px solid #e2e8f0;border-radius:12px;padding:1rem 1.1rem;background:#fff}
.course-manage__subcard h3{margin:0 0 .65rem;font-size:.9375rem;color:#0f172a}
.course-manage__subcard h4{margin:0 0 .5rem;font-size:.82rem;color:#475569}
.course-manage__list{margin:0;padding-left:1.1rem;line-height:1.5}
.course-manage__dl{display:grid;grid-template-columns:auto 1fr;gap:.35rem .75rem;margin:0;font-size:.875rem}
.course-manage__dl dt{margin:0;color:#64748b}
.course-manage__dl dd{margin:0}
.course-manage__quick{display:flex;flex-wrap:wrap;gap:.5rem}
.course-manage__checklist{list-style:none;margin:0;padding:0;display:grid;gap:.45rem}
.course-manage__checklist li{display:flex;align-items:center;gap:.45rem;padding:.35rem .5rem;border-radius:8px;font-size:.86rem}
.course-manage__checklist li .material-symbols-outlined{font-size:1.1rem;line-height:1}
.course-manage__checklist li.is-done{background:#ecfdf5;color:#065f46}
.course-manage__checklist li.is-pending{background:#fff7ed;color:#9a3412}
.course-manage__callout{font-size:.875rem;color:#334155;background:#fffbeb;border:1px solid #fde68a;border-radius:10px;padding:.75rem 1rem;margin-bottom:1rem;line-height:1.45}
.course-manage__inline-form{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}
.course-manage__inline-form--grow{flex:1;min-width:200px}
.course-manage__inline-form input[type=text],.course-manage__inline-form input[type=number]{min-width:140px;flex:1}
.course-manage__module{border:1px solid #e2e8f0;border-radius:12px;padding:1rem;margin-top:1rem;background:#fafbfc}
.course-manage__module-head{display:flex;flex-wrap:wrap;gap:.65rem;align-items:flex-start;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid #e2e8f0}
.course-manage__lesson-add{margin-bottom:1rem}
.course-manage__lesson-form{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.5rem;align-items:end}
.course-manage__lesson-form input,.course-manage__lesson-form select{width:100%}
.course-manage__publish-toggle{background:#ecfeff;border:1px solid #a5f3fc;border-radius:10px;padding:.45rem .55rem}
.course-manage__publish-toggle span{font-size:.82rem;color:#0f172a}
.course-manage__lesson{border:1px solid #e5e7eb;border-radius:10px;padding:.75rem;margin-top:.65rem;background:#fff}
.course-manage__lesson-title-row{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;grid-column:1/-1}
.course-manage__lesson-title-row input{flex:1;min-width:160px}
.course-manage__lesson-actions{grid-column:1/-1}
.course-manage__check{display:flex;align-items:center;gap:.35rem;font-size:.82rem;margin:0}
.course-manage__check--block{grid-column:1/-1;align-items:flex-start}
.course-manage__session-form{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.5rem;align-items:end;margin-top:.5rem}
.course-manage__session-form--edit{padding-top:.5rem}
.course-manage__session-form label{display:flex;flex-direction:column;gap:.25rem;font-size:.75rem;color:#64748b}
.course-manage__session-form label input{width:100%}
.course-manage__session-list{display:flex;flex-direction:column;gap:.5rem}
.course-manage__session{border:1px solid #e2e8f0;border-radius:10px;padding:0;background:#fff}
.course-manage__session summary{cursor:pointer;list-style:none;padding:.65rem .85rem;display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}
.course-manage__session summary::-webkit-details-marker{display:none}
.course-manage__session[open] summary{border-bottom:1px solid #f1f5f9}
.course-manage__session-sum-title{font-weight:600;color:#0f172a;flex:1;min-width:120px}
.course-manage__session .course-manage__session-form,.course-manage__session-delete{padding:0 .85rem .85rem}
.course-manage__session-row-actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;grid-column:1/-1}
.course-manage__session-delete{margin-top:.25rem}
.cm-classes{display:flex;flex-direction:column;gap:1rem}
.cm-classes__create,.cm-classes__list-wrap{padding:1rem 1.1rem}
.cm-classes__head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;margin-bottom:.75rem}
.cm-classes__head h3{margin:0}
.cm-classes__head p{margin:0;font-size:.8rem}
.cm-classes__form{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}
.cm-classes__field{display:flex;flex-direction:column;gap:.32rem}
.cm-classes__field--span2{grid-column:1 / -1}
.cm-classes__label{font-size:.76rem;color:#64748b;font-weight:600}
.cm-modern-input,.cm-modern-select{
  width:100%;
  min-height:42px;
  border:1px solid #d0d7e2;
  border-radius:10px;
  padding:.58rem .75rem;
  background:#fff;
  color:#0f172a;
  font:inherit;
  transition:border-color .15s ease, box-shadow .15s ease;
}
.cm-modern-input:focus,.cm-modern-select:focus{
  border-color:#22c55e;
  box-shadow:0 0 0 3px rgba(34,197,94,.14);
  outline:none;
}
.cm-modern-select{
  appearance:none;
  background-image:linear-gradient(45deg, transparent 50%, #64748b 50%),linear-gradient(135deg, #64748b 50%, transparent 50%);
  background-position:calc(100% - 16px) calc(50% - 2px),calc(100% - 10px) calc(50% - 2px);
  background-size:6px 6px,6px 6px;
  background-repeat:no-repeat;
  padding-right:2rem;
}
.cm-classes__api-note{display:flex;align-items:center;gap:.45rem;border:1px solid #d1fae5;background:#ecfdf5;padding:.7rem .8rem;border-radius:10px;color:#065f46;font-weight:600}
.cm-classes__api-note .material-symbols-outlined{font-size:1rem;color:#059669}
.cm-classes__api-note--warn{border-color:#fde68a;background:#fffbeb;color:#92400e}
.cm-classes__api-note--warn .material-symbols-outlined{color:#d97706}
.cm-classes__actions{display:flex;justify-content:flex-end}
.cm-classes__hint{font-size:.72rem;color:#64748b;line-height:1.35}
.cm-info-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:18px;
  height:18px;
  margin-left:.35rem;
  border:1px solid #cbd5e1;
  border-radius:999px;
  background:#fff;
  color:#334155;
  font-size:.72rem;
  font-weight:700;
  line-height:1;
  cursor:pointer;
}
.cm-info-btn:hover{background:#f8fafc}
.cm-info-btn:focus{outline:none;box-shadow:0 0 0 3px rgba(34,197,94,.14);border-color:#22c55e}
.cm-classes__session summary{padding:.78rem .9rem}
.cm-classes__session[open] summary{background:#f8fafc}
.cm-classes__empty{display:flex;align-items:center;gap:.55rem;color:#64748b}
.cm-classes__empty p{margin:0}
.cm-classes__empty .material-symbols-outlined{font-size:1.1rem;color:#94a3b8}
@media (max-width:900px){
  .cm-classes__form{grid-template-columns:1fr}
}
.cm-settings-form{display:flex;flex-direction:column;gap:1rem}
.cm-settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}
.cm-settings-span2{grid-column:1 / -1}
.cm-settings-check{flex-direction:row;align-items:center;gap:.55rem}
.cm-settings-check input{width:auto;min-height:auto}
@media (max-width:900px){
  .cm-settings-grid{grid-template-columns:1fr}
  .cm-settings-span2{grid-column:auto}
}
.eval-settings-row{align-items:flex-end;gap:.65rem}
.eval-settings-save-btn{margin-bottom:1px}
.course-manage__h3{font-size:1rem;margin:1.25rem 0 .65rem;color:#0f172a}
.course-manage__table-wrap{overflow-x:auto;border-radius:10px;border:1px solid #e5e7eb}
.course-manage__bars{display:flex;flex-direction:column;gap:.65rem}
.course-manage__bar-row{display:grid;grid-template-columns:minmax(120px,1fr) 2fr auto;gap:.65rem;align-items:center;font-size:.82rem}
.course-manage__bar-label{color:#334155}
.course-manage__bar-track{height:8px;background:#e2e8f0;border-radius:999px;overflow:hidden}
.course-manage__bar-fill{display:block;height:100%;background:linear-gradient(90deg,#0f766e,#14b8a6);border-radius:999px}
.course-manage__bar-num{color:#64748b;white-space:nowrap;text-align:right}
.course-manage__timeline{list-style:none;margin:0;padding:0}
.course-manage__timeline li{display:grid;grid-template-columns:140px 1fr;gap:1rem;padding:.75rem 0;border-bottom:1px solid #f1f5f9;font-size:.875rem}
.course-manage__timeline time{color:#64748b;font-size:.8rem}
.course-manage__meta-pre{margin:.35rem 0 0;font-size:.72rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:.5rem;overflow:auto;max-height:8rem}
.course-manage>.alert{margin:.75rem 1.35rem 0}
@media (max-width:640px){.course-manage__bar-row{grid-template-columns:1fr}.course-manage__bar-num{text-align:left}.course-manage__timeline li{grid-template-columns:1fr}}
.course-manage__panel--content-redesign{display:flex;flex-direction:column;gap:1rem}
.course-manage__content-topnav{padding:.7rem .9rem}
.course-manage__content-steps{display:flex;flex-wrap:wrap;gap:.45rem}
.course-manage__step-link{text-decoration:none;font-size:.8rem;color:#0f766e;background:#ecfeff;border:1px solid #a5f3fc;padding:.35rem .55rem;border-radius:999px}
.course-manage__step-link:hover{background:#cffafe;color:#0f172a}
.course-manage__content-head{display:flex;justify-content:space-between;gap:.8rem;align-items:flex-start;flex-wrap:wrap}
.course-manage__content-head p{margin:0}
.course-manage__media-stats{display:flex;flex-wrap:wrap;gap:.35rem}
.course-manage__media-stats span{font-size:.75rem;padding:.2rem .5rem;border-radius:999px;background:#f1f5f9;border:1px solid #e2e8f0;color:#334155}
.course-manage__upload-row{align-items:center;gap:.6rem}
.course-manage__queue-list{margin-top:.55rem;font-size:.83rem;line-height:1.45;color:#334155}
.course-manage__library-list{display:grid;grid-template-columns:1fr;gap:.5rem;margin-top:.7rem;max-height:280px;overflow:auto;padding-right:.15rem}
.course-manage__library-item{display:flex;align-items:center;gap:.65rem;border:1px solid #e2e8f0;border-radius:10px;padding:.5rem .65rem;background:#fafcfe}
.course-manage__library-icon{width:34px;height:34px;border-radius:8px;background:#e2e8f0;color:#334155;display:flex;align-items:center;justify-content:center;font-size:.63rem;font-weight:700}
.course-manage__library-main{display:flex;flex-direction:column;gap:.1rem;min-width:0}
.course-manage__library-main strong{font-size:.84rem;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.course-manage__curriculum-tree summary{display:flex;justify-content:space-between;gap:.45rem;align-items:center}
.course-manage__curriculum-tree summary .muted{font-size:.74rem}
.course-manage__curriculum-tree li{display:flex;justify-content:space-between;gap:.45rem;align-items:center}
.course-manage__status-pill{font-size:.68rem;padding:.12rem .45rem;border-radius:999px;border:1px solid transparent;white-space:nowrap}
.course-manage__status-pill.is-live{background:#dcfce7;border-color:#86efac;color:#166534}
.course-manage__status-pill.is-draft{background:#fef3c7;border-color:#fcd34d;color:#92400e}
.course-manage__blocks-list{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.8rem}
.course-manage__block-item{display:flex;justify-content:space-between;gap:.7rem;align-items:center;border:1px solid #e2e8f0;border-radius:10px;padding:.6rem .75rem;background:#fbfdff}
.course-manage__block-main strong{display:block;font-size:.88rem;color:#0f172a}
.course-manage__block-main p{margin:.15rem 0 0;font-size:.78rem}

/* RBAC — roles & permissions hub */
.rbac-hub-page .rbac-hub-header{margin-bottom:1rem}
.rbac-hub-title{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.rbac-hub-title-icon{font-size:1.75rem;color:#475569;line-height:1}
.rbac-slug-chip--inline{margin-left:.35rem;vertical-align:middle;font-weight:400}
.rbac-roles-stats{display:flex;flex-wrap:wrap;gap:.75rem;margin:1rem 0 1.25rem}
.rbac-stat-card{display:flex;align-items:center;gap:.65rem;padding:.85rem 1.1rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;min-width:140px}
.rbac-stat-card .material-symbols-outlined{font-size:1.5rem;color:#64748b}
.rbac-stat-card strong{display:block;font-size:1.2rem;color:#0f172a}
.rbac-stat-card span:last-child{font-size:.75rem;color:#64748b;text-transform:uppercase;letter-spacing:.04em}
.rbac-table-wrap{margin-top:.25rem}
.rbac-roles-table .rbac-th-icon{width:52px}
.rbac-td-icon{width:52px;vertical-align:middle}
.rbac-role-avatar{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;background:#f1f5f9;color:#475569;border:1px solid #e2e8f0}
.rbac-role-avatar .material-symbols-outlined{font-size:1.35rem}
.rbac-role-avatar--large{width:48px;height:48px;border-radius:12px}
.rbac-role-avatar--large .material-symbols-outlined{font-size:1.6rem}
.rbac-role-name{font-weight:600;color:#0f172a}
.rbac-id-pill{font-size:.78rem}
.rbac-slug-chip{font-size:.75rem;background:#f1f5f9;padding:.2rem .45rem;border-radius:6px;color:#475569}
.rbac-perm-count{display:inline-flex;align-items:center;gap:.25rem;font-size:.86rem;color:#475569}
.rbac-perm-count-icon{font-size:1.1rem;color:#94a3b8}
.rbac-edit-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.45rem .65rem;border-radius:8px;background:#fff;color:#334155;text-decoration:none;font-size:.875rem;font-weight:600;border:1px solid #cbd5e1}
.rbac-edit-btn:hover{background:#f8fafc;border-color:#94a3b8;color:#0f172a}
.rbac-edit-btn .material-symbols-outlined{font-size:1.15rem;color:#64748b}
.rbac-edit-page .rbac-breadcrumb{margin:0 0 .25rem;font-size:.82rem}
.rbac-edit-page .rbac-breadcrumb a{color:#64748b;text-decoration:none}
.rbac-edit-page .rbac-breadcrumb a:hover{color:#0f172a;text-decoration:underline;text-underline-offset:2px}
.rbac-edit-toolbar{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between;margin:1rem 0;padding:.75rem 1rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px}
.rbac-edit-summary{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:#334155}
.rbac-edit-summary .material-symbols-outlined{color:#64748b}
.rbac-search-wrap{display:flex;align-items:center;gap:.35rem;flex:1;min-width:200px;max-width:320px;background:#fff;border:1px solid #cbd5e1;border-radius:8px;padding:0 .5rem 0 .35rem}
.rbac-search-icon{color:#94a3b8;font-size:1.25rem}
.rbac-search-input{flex:1;border:0;padding:.55rem .25rem;font:inherit;min-width:0}
.rbac-search-input:focus{outline:none}
.rbac-perm-groups{display:flex;flex-direction:column;gap:1rem}
.rbac-perm-group{border:1px solid #e2e8f0;border-radius:14px;background:#fff;overflow:hidden;box-shadow:0 1px 2px rgba(15,23,42,.04)}
.rbac-perm-group__head{display:flex;flex-wrap:wrap;align-items:center;gap:.65rem 1rem;padding:.85rem 1rem;background:linear-gradient(180deg,#fafbfc,#fff);border-bottom:1px solid #f1f5f9}
.rbac-perm-group__icon{font-size:1.5rem;color:#64748b;line-height:1}
.rbac-perm-group__titles{flex:1;min-width:120px}
.rbac-perm-group__title{margin:0;font-size:.95rem;font-weight:600;color:#0f172a}
.rbac-group-toggle{font-size:.8rem;font:inherit;color:#334155;padding:.35rem .55rem;background:#fff;border:1px solid #cbd5e1;border-radius:8px;cursor:pointer}
.rbac-group-toggle:hover{background:#f8fafc;border-color:#94a3b8;color:#0f172a}
.rbac-perm-list{list-style:none;margin:0;padding:.35rem .5rem .65rem}
.rbac-perm-item{padding:0;margin:0}
.rbac-perm-label{display:flex;align-items:center;gap:.65rem;padding:.55rem .65rem;margin:.2rem 0;border-radius:10px;cursor:pointer;border:1px solid transparent;transition:background .12s,border-color .12s}
.rbac-perm-label:hover{background:#f8fafc;border-color:#e2e8f0}
.rbac-perm-form{display:flex;flex-direction:column;gap:.75rem}
.rbac-perm-check-wrap{position:relative;flex-shrink:0;width:1.25rem;height:1.25rem;display:inline-flex;align-items:center;justify-content:center}
.rbac-perm-check{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;z-index:2;accent-color:#0f766e}
.rbac-perm-check-faux{position:absolute;inset:0;box-sizing:border-box;border:2px solid #64748b;border-radius:5px;background:#fff;pointer-events:none;z-index:1;transition:border-color .12s,background .12s,box-shadow .12s}
.rbac-perm-check:hover + .rbac-perm-check-faux,.rbac-perm-check:focus-visible + .rbac-perm-check-faux{border-color:#0f766e}
.rbac-perm-check:focus-visible + .rbac-perm-check-faux{box-shadow:0 0 0 3px rgba(20,184,166,.25)}
.rbac-perm-check:checked + .rbac-perm-check-faux{background:#0f766e;border-color:#0d9488}
.rbac-perm-check:checked + .rbac-perm-check-faux::after{
content:"";
position:absolute;
left:5px;
top:2px;
width:4px;
height:9px;
border:solid #fff;
border-width:0 2px 2px 0;
transform:rotate(45deg);
box-sizing:border-box
}
.rbac-perm-label__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:.15rem;justify-content:center}
.rbac-perm-label__name{font-weight:500;color:#1e293b;font-size:.9rem;line-height:1.35}
.rbac-perm-label__slug{font-size:.72rem;color:#64748b;background:#f1f5f9;padding:.1rem .35rem;border-radius:4px;align-self:flex-start;line-height:1.3}
.rbac-perm-label__tick{font-size:1.25rem;color:#e2e8f0;flex-shrink:0;line-height:1;display:inline-flex;align-items:center;justify-content:center;transition:color .12s}
.rbac-perm-label:has(.rbac-perm-check:checked) .rbac-perm-label__tick{color:#22c55e}
.rbac-form-footer{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid #e2e8f0}
.rbac-save-btn{display:inline-flex;align-items:center;gap:.4rem}
.rbac-create-form{max-width:520px}
.rbac-create-fields{display:flex;flex-direction:column;gap:1.15rem;margin-top:.5rem}
.rbac-field-label{display:flex;align-items:center;gap:.35rem;font-size:.78rem;font-weight:600;color:#475569;text-transform:uppercase;letter-spacing:.04em;margin-bottom:.4rem}
.rbac-field-label .material-symbols-outlined{font-size:1.1rem;color:#94a3b8}
.rbac-field input{width:100%;padding:.65rem .75rem;border-radius:8px;border:1px solid #cbd5e1;font:inherit}
.rbac-field-hint{font-size:.78rem;margin:.35rem 0 0}
@media (max-width:640px){.rbac-perm-group__head{flex-direction:column;align-items:flex-start}}

/* App shell: in-content text links — slate, not browser blue */
.app-content a:not(.btn-link):not(.rbac-edit-btn):not(.admin-icon-link):not(.course-manage__tab):not(.danger-link):not(.course-form-back--primary):not(.users-bulk-export-chip){
  color:#334155;
  text-decoration:none;
}
.app-content a:not(.btn-link):not(.rbac-edit-btn):not(.admin-icon-link):not(.course-manage__tab):not(.danger-link):not(.course-form-back--primary):not(.users-bulk-export-chip):hover{
  color:#0f172a;
  text-decoration:underline;
  text-underline-offset:2px;
}
.app-content .pagination a{color:#475569;text-decoration:none;border-color:#e2e8f0}
.app-content .pagination a:hover{background:#f1f5f9;color:#0f172a}
.app-content .pagination a.active-page{background:#0f766e!important;border-color:#0d9488!important;color:#fff!important}
.admin-icon-link:hover{background:#f1f5f9!important;color:#334155!important}
.course-workspace-cta h3{margin:0 0 .75rem;display:flex;align-items:center;gap:.45rem;font-size:1.05rem;color:#0f172a}
.course-workspace-cta h3 .material-symbols-outlined{color:#64748b}

/* Users directory & bulk import/export */
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.users-bulk-header-title{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.users-bulk-header-title .admin-hub-title{margin:0}
.users-bulk-section-head{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin:1.35rem 0 .65rem}
.users-bulk-section-title{margin:0;font-size:1rem;color:#0f172a;font-weight:600}
.users-bulk-panel-title-row{display:flex;align-items:flex-start;gap:.5rem;flex-wrap:wrap;margin-bottom:.65rem}
.users-bulk-panel-title-row .users-bulk-panel-title{margin:0}
.users-bulk-info{position:relative}
.users-bulk-info>summary{list-style:none;cursor:pointer}
.users-bulk-info>summary::-webkit-details-marker{display:none}
.users-bulk-info-trigger{display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;border-radius:999px;border:1px solid #e2e8f0;background:#f8fafc;color:#64748b;transition:background .15s,color .15s,border-color .15s}
.users-bulk-info-trigger:hover{background:#ecfdf5;border-color:#a7f3d0;color:#0f766e}
.users-bulk-info-trigger .material-symbols-outlined{font-size:1.15rem;line-height:1}
.users-bulk-info-panel{margin:.5rem 0 0;padding:.65rem .85rem;max-width:min(100%,28rem);font-size:.84rem;line-height:1.45;color:#475569;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px}
.users-bulk-info-panel p{margin:0}
.users-bulk-info-panel p+p{margin-top:.5rem}
.users-bulk-info-panel code{font-size:.78rem;background:#fff;padding:.08rem .28rem;border-radius:4px;border:1px solid #e5e7eb}
.users-bulk-info--card{align-self:flex-start;margin-left:auto}
.users-bulk-card-head .users-bulk-info-panel{position:absolute;right:0;top:100%;z-index:5;margin-top:.35rem;box-shadow:0 8px 24px rgba(15,23,42,.08)}
.users-bulk-card-head{position:relative}
.users-bulk-section-head .users-bulk-info-panel{margin-top:.35rem}
.users-bulk-header-title .users-bulk-info-panel{max-width:min(100%,36rem)}
.users-bulk-panel{margin:1rem 0 0;padding:1rem 1.1rem;border:1px solid #e2e8f0;border-radius:12px;background:linear-gradient(180deg,#fafafa,#fff)}
.users-bulk-panel--custom{margin-top:1.25rem}
.users-bulk-panel-title{display:flex;align-items:center;gap:.45rem;font-size:1rem;color:#0f172a;font-weight:600}
.users-bulk-panel-title .material-symbols-outlined{font-size:1.35rem;color:#0f766e}
.users-bulk-export-grid{display:flex;flex-wrap:wrap;gap:.5rem}
.users-bulk-export-chip{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem .85rem;border-radius:10px;border:1px solid #cbd5e1;background:#fff;color:#0f172a!important;text-decoration:none!important;font-size:.86rem;font-weight:500;transition:background .15s,border-color .15s}
.users-bulk-export-chip:hover{background:#ecfdf5;border-color:#6ee7b7;color:#065f46!important}
.users-bulk-export-chip .material-symbols-outlined{font-size:1.2rem;color:#0f766e}
.users-bulk-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;margin-top:.5rem}
.users-bulk-card{border:1px solid #e2e8f0;border-radius:12px;padding:1rem 1.1rem;background:#fff;display:flex;flex-direction:column;gap:.65rem}
.users-bulk-card-head{display:flex;align-items:center;gap:.5rem}
.users-bulk-card-head h4{margin:0;font-size:1rem;color:#0f172a}
.users-bulk-card-icon{font-size:1.75rem;color:#0f766e}
.users-bulk-card p{margin:0;font-size:.84rem;line-height:1.45}
.users-bulk-card code{font-size:.78rem;background:#f1f5f9;padding:.1rem .3rem;border-radius:4px}
.users-bulk-template-btn{align-self:flex-start;margin-top:.15rem}
.users-bulk-form{display:flex;flex-direction:column;gap:.6rem;margin-top:.35rem;padding-top:.75rem;border-top:1px solid #f1f5f9}
.users-bulk-custom-form{display:flex;flex-wrap:wrap;align-items:center;gap:.65rem;margin-top:.75rem}
.users-bulk-file-label{display:inline-flex;flex-direction:column;gap:.25rem;cursor:pointer}
.users-bulk-file-label--inline{flex-direction:row;align-items:center;gap:.5rem}
.users-bulk-file-text{font-size:.8rem;color:#64748b}
.users-bulk-file-input{font-size:.86rem;max-width:100%}
.users-directory-table .users-role-cell{font-size:.84rem;color:#475569;word-break:break-word}
.users-directory-table .users-actions-cell{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem}
@media (max-width:720px){.users-bulk-export-grid{flex-direction:column}.users-bulk-export-chip{justify-content:center}}

/* Admin page subsections (live sessions, certificates, etc.) */
.admin-page-subcard{border:1px solid #e2e8f0;border-radius:12px;padding:1rem 1.15rem;margin:1rem 0;background:linear-gradient(180deg,#fafafa,#fff)}
.admin-page-subcard__title{margin:0 0 .35rem;font-size:.95rem;font-weight:600;color:#0f172a}
.admin-page-subcard__hint{margin:0 0 .75rem;font-size:.82rem}
.admin-page-section-title{margin:1.35rem 0 .65rem;font-size:1rem;font-weight:600;color:#0f172a}
.admin-live-session-form{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem 1rem;align-items:end}
.admin-live-session-form label{display:block;font-size:.75rem;font-weight:600;color:#64748b;margin-bottom:.25rem;text-transform:uppercase;letter-spacing:.03em}
.muted-table-cell{color:#64748b;font-size:.9rem}
.orders-order-code{font-size:.8rem;background:#f1f5f9;padding:.15rem .4rem;border-radius:6px}
.live-sessions-actions{vertical-align:middle}
.live-sessions-inline-actions{display:inline-flex;flex-wrap:wrap;align-items:center;gap:.35rem;margin-right:.5rem}
.certificates-revoke-form{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem}
.certificates-revoke-reason{min-width:140px;max-width:220px;padding:.4rem .55rem!important;font-size:.82rem!important}
.status-pill.pending{background:#e0f2fe;color:#0369a1}
.status-pill.paid{background:#ccfbf1;color:#0f766e}
.status-pill.failed{background:#fee2e2;color:#991b1b}
.status-pill.cancelled{background:#f1f5f9;color:#475569}
.status-pill.scheduled{background:#e0e7ff;color:#3730a3}
.status-pill.completed{background:#dcfce7;color:#166534}
.status-pill.expired{background:#fef3c7;color:#92400e}
.status-pill.pass{background:#dcfce7;color:#166534}
.status-pill.fail{background:#fee2e2;color:#991b1b}
.status-pill.submitted{background:#e0f2fe;color:#0369a1}
.status-pill.under_review{background:#fef3c7;color:#92400e}
.status-pill.graded{background:#dcfce7;color:#166534}
.status-pill.resubmit{background:#ffedd5;color:#c2410c}
.assessments-hub-tabs{margin-bottom:1rem}
.reports-hub-tabs{margin-bottom:1rem}
.finance-hub-tabs,.content-hub-tabs,.communication-hub-tabs,.integrations-hub-tabs,.settings-hub-tabs,.security-hub-tabs,.support-hub-tabs{margin-bottom:1rem}

/* Integrations hub — structured cards, callouts, mock tables */
.integrations-hub-page .admin-hub-title{letter-spacing:-.02em}
.integrations-callout{display:flex;gap:.85rem;align-items:flex-start;padding:1rem 1.1rem;border-radius:12px;margin-bottom:1.15rem;border:1px solid #e2e8f0;background:linear-gradient(135deg,#f8fafc 0%,#fff 50%)}
.integrations-callout--info{border-color:#c7d2fe;background:linear-gradient(135deg,#eef2ff 0%,#fff 55%)}
.integrations-callout--warn{border-color:#fcd34d;background:linear-gradient(135deg,#fffbeb 0%,#fff 50%)}
.integrations-callout--ok{border-color:#86efac;background:linear-gradient(135deg,#ecfdf5 0%,#fff 55%)}
.integrations-callout__icon{font-size:1.75rem;flex-shrink:0;line-height:1;color:#64748b}
.integrations-callout--info .integrations-callout__icon{color:#4f46e5}
.integrations-callout--warn .integrations-callout__icon{color:#d97706}
.integrations-callout--ok .integrations-callout__icon{color:#16a34a}
.integrations-callout__text{margin:.35rem 0 0;font-size:.88rem;line-height:1.5;color:#475569}
.integrations-feature-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem}
.integrations-feature-card{border:1px solid #e2e8f0;border-radius:14px;padding:1rem 1.1rem 1.1rem;background:#fff;box-shadow:0 1px 2px rgba(15,23,42,.04)}
.integrations-feature-card h4{margin:0 0 .35rem;font-size:.98rem;font-weight:700;color:#0f172a}
.integrations-feature-card__hint{margin:0;font-size:.82rem;line-height:1.45;color:#64748b}
.integrations-feature-card__badge{display:inline-block;font-size:.65rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#6366f1;background:#eef2ff;padding:.2rem .45rem;border-radius:6px;margin-bottom:.5rem}
.integrations-mini-list{margin:.55rem 0 0;padding-left:1.15rem;font-size:.82rem;line-height:1.55;color:#475569}
.integrations-code-pill{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.75rem;background:#f1f5f9;padding:.12rem .4rem;border-radius:6px;color:#334155}
.integrations-btn-muted{opacity:.45;cursor:not-allowed}
.integrations-mock-table tbody td{padding:.85rem 1rem}
.integrations-mock-table__placeholder-row td{font-size:.88rem}
.integrations-endpoint-preview{margin-bottom:1.1rem;padding:1rem 1.1rem;border-radius:12px;border:1px dashed #cbd5e1;background:#fafafa}
.integrations-field-label{display:block;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#64748b;margin-bottom:.4rem}
.integrations-endpoint-preview__row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem}
.integrations-endpoint-preview__url{font-family:ui-monospace,monospace;font-size:.8rem;color:#0f172a;word-break:break-all}
.integrations-pill{display:inline-flex;align-items:center;font-size:.72rem;font-weight:600;padding:.2rem .5rem;border-radius:999px;background:#f1f5f9;color:#475569}
.integrations-pill--draft{background:#e0e7ff;color:#3730a3}
.integrations-pill--on{background:#dcfce7;color:#166534}
.integrations-pill--off{background:#f1f5f9;color:#64748b}
.integrations-env-block{margin-top:.5rem}
.integrations-env-row{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .75rem;margin-top:.4rem;font-size:.84rem}
.integrations-kv-label{color:#64748b;min-width:10rem;font-size:.78rem;font-weight:600}
.integrations-event-chips{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.5rem}
.integrations-feature-card--crm .integrations-crm-card__head{display:flex;gap:.75rem;align-items:flex-start;margin-bottom:.65rem}
.integrations-crm-logo{flex-shrink:0;width:2.5rem;height:2.5rem;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:800;color:#fff}
.integrations-crm-logo--sf{background:linear-gradient(145deg,#00a1e0,#0070d2)}
.integrations-crm-logo--hs{background:linear-gradient(145deg,#ff7a59,#ff5c35)}
.integrations-crm-logo--zoho{background:linear-gradient(145deg,#e42527,#b71c1c)}
.integrations-mapping-preview{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-top:.65rem;padding:1rem;border-radius:12px;border:1px solid #e2e8f0;background:#f8fafc}
.integrations-mapping-preview__col{display:flex;flex-direction:column;gap:.4rem;align-items:flex-start}
.integrations-mapping-preview__arrow{color:#94a3b8;flex-shrink:0}
.integrations-feature-card--payment .integrations-payment-row{display:flex;flex-wrap:wrap;align-items:flex-start;gap:.75rem 1rem}
.integrations-payment-logo{flex-shrink:0;width:2.5rem;height:2.5rem;border-radius:10px;background:linear-gradient(145deg,#0d9488,#0f766e);color:#fff;font-weight:800;font-size:.85rem;display:flex;align-items:center;justify-content:center}
.integrations-tool-matrix{border:1px solid #e2e8f0;border-radius:12px;overflow:hidden;background:#fff}
.integrations-tool-matrix__row{display:grid;grid-template-columns:minmax(100px,0.9fr) 2fr minmax(88px,0.7fr);gap:0;border-bottom:1px solid #f1f5f9}
.integrations-tool-matrix__row:last-child{border-bottom:0}
.integrations-tool-matrix__cell{padding:.65rem .85rem;font-size:.84rem}
.integrations-tool-matrix__cell--head{background:#f8fafc;font-weight:700;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:#64748b}
@media (max-width:720px){
 .integrations-tool-matrix__row{grid-template-columns:1fr}
 .integrations-tool-matrix__cell--head{display:none}
 .integrations-tool-matrix__row:not(:first-child) .integrations-tool-matrix__cell:first-child{font-weight:700}
}

.settings-brand-swatches{display:flex;gap:.35rem;margin:.5rem 0}
.settings-brand-swatches__dot{width:1.25rem;height:1.25rem;border-radius:50%;border:1px solid rgba(15,23,42,.12)}
.settings-notify-preview{border:1px solid #e2e8f0;border-radius:12px;overflow:hidden;background:#fff;margin-top:.85rem;max-width:520px}
.settings-notify-preview__row{display:grid;grid-template-columns:1.4fr repeat(3,4rem);gap:0;align-items:center;padding:.5rem .75rem;font-size:.84rem;border-bottom:1px solid #f1f5f9}
.settings-notify-preview__row:last-child{border-bottom:0}
.settings-notify-preview__row--head{background:#f8fafc;font-weight:700;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:#64748b}
.settings-notify-preview__mock-on{color:#16a34a;text-align:center;font-size:.9rem}
.settings-notify-preview__mock-off{color:#cbd5e1;text-align:center;font-size:.9rem}
@media (max-width:520px){
 .settings-notify-preview__row{grid-template-columns:1fr repeat(3,1fr)}
}

.security-csp-pre{margin:.5rem 0 0;padding:.65rem .85rem;font-size:.72rem;line-height:1.45;background:#0f172a;color:#e2e8f0;border-radius:8px;overflow:auto;max-height:12rem;white-space:pre-wrap;word-break:break-word}
.security-csp-details summary{list-style:none}
.security-csp-details summary::-webkit-details-marker{display:none}
.security-mock-table th{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:#64748b}

.support-tag-chips{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.35rem}
.support-faq-preview{border:1px solid #e2e8f0;border-radius:12px;overflow:hidden;background:#fff;margin-top:.85rem}
.support-faq-preview__item{border-bottom:1px solid #f1f5f9}
.support-faq-preview__item:last-child{border-bottom:0}
.support-faq-preview__item summary{cursor:pointer;padding:.85rem 1rem;font-weight:600;font-size:.9rem;color:#0f172a;list-style:none}
.support-faq-preview__item summary::-webkit-details-marker{display:none}
.support-faq-preview__item[open] summary{background:#f8fafc}
.support-faq-preview__item p{margin:0;padding:0 1rem 1rem;font-size:.86rem;line-height:1.5}
.status-pill.created{background:#e0e7ff;color:#3730a3}
.status-pill.authorized{background:#fef3c7;color:#92400e}
.status-pill.captured{background:#dcfce7;color:#166534}
.reports-range-hint{margin:-.35rem 0 .85rem;font-size:.82rem;color:#64748b}
.reports-users-filter-card{margin-bottom:1rem}
.reports-users-filter-grid{display:grid;grid-template-columns:repeat(6,minmax(140px,1fr));gap:.6rem;align-items:end}
.reports-users-filter-field{display:flex;flex-direction:column;gap:.3rem}
.reports-users-filter-field input,.reports-users-filter-field select{width:100%}
.reports-users-filter-actions{display:flex;align-items:flex-end}
.reports-users-kpis{margin-bottom:1.25rem}
@media (max-width:1100px){.reports-users-filter-grid{grid-template-columns:repeat(3,minmax(160px,1fr))}}
@media (max-width:720px){.reports-users-filter-grid{grid-template-columns:1fr}}
.status-pill.issued{background:#dcfce7;color:#166534}
.status-pill.revoked{background:#fee2e2;color:#991b1b}
@media (max-width:720px){.admin-live-session-form{grid-template-columns:1fr}}
.courses-index-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .85rem}
.course-status-published{background:#dcfce7;color:#166534}
.course-status-draft{background:#f1f5f9;color:#475569}
.course-status-archived{background:#e2e8f0;color:#334155}
.course-status-under_review{background:#fef3c7;color:#92400e}
.course-status-rejected{background:#fee2e2;color:#991b1b}
.approval-settings-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.75rem 1rem}
.approval-settings-form label{display:block;font-size:.75rem;font-weight:600;color:#64748b;margin-bottom:.25rem}
.course-approval-actions{vertical-align:top}
.course-approval-reject-form{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin-top:.35rem}
.course-approval-feedback{min-width:180px;max-width:280px;padding:.45rem .55rem!important;font-size:.82rem!important}
.learning-path-form__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem 1rem}
.learning-path-form__wide{grid-column:1/-1}
.learning-path-form label{display:block;font-size:.75rem;font-weight:600;color:#64748b;margin-bottom:.25rem;text-transform:uppercase;letter-spacing:.03em}
.learning-path-textarea{width:100%;min-height:4rem;padding:.55rem .65rem;border:1px solid #cbd5e1;border-radius:8px;font:inherit;resize:vertical}
.learning-path-form__submit{margin-top:.75rem}
.learning-paths-list{display:flex;flex-direction:column;gap:1rem}
.learning-path-card__footer{margin-top:.75rem;padding-top:.75rem;border-top:1px solid #f1f5f9}
.learning-path-preview{font-size:.82rem;margin:.5rem 0 0}
.learning-path-delete-form{margin-top:.65rem;padding-top:.65rem;border-top:1px solid #f1f5f9}
@media (max-width:720px){.course-approval-reject-form{flex-direction:column;align-items:stretch}}
.content-library-upload-form{display:flex;flex-direction:column;gap:.8rem}
.content-library-uploader__dropzone{border:1.5px dashed #cbd5e1;border-radius:12px;background:#f8fafc;padding:1rem;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:.25rem;cursor:pointer;transition:border-color .15s ease,background .15s ease}
.content-library-uploader__dropzone:hover{border-color:#14b8a6;background:#f0fdfa}
.content-library-uploader__dropzone.is-dragover{border-color:#0d9488;background:#ecfeff}
.content-library-uploader__icon{font-size:1.35rem;color:#0f766e}
.content-library-uploader__title{margin:0;font-weight:600;color:#0f172a}
.content-library-uploader__subtitle{margin:0;font-size:.85rem;color:#64748b}
.content-library-uploader__browse{border:0;background:none;padding:0;color:#0f766e;text-decoration:underline;font:inherit;cursor:pointer}
.content-library-uploader__meta{display:flex;align-items:center;gap:.4rem;color:#475569;font-size:.86rem}
.content-library-uploader__meta .material-symbols-outlined{font-size:1rem}
.content-library-uploader__actions{display:flex;justify-content:flex-start}
.content-library-file-cell{display:flex;align-items:center;gap:.65rem;min-width:240px}
.content-library-file-cell__preview{width:56px;height:40px;border-radius:8px;overflow:hidden;background:#f8fafc;border:1px solid #e2e8f0;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.content-library-file-cell__img{width:100%;height:100%;object-fit:cover;display:block}
.content-library-file-cell__video{width:100%;height:100%;object-fit:cover;display:block}
.content-library-file-cell__icon{font-size:1.05rem;color:#64748b}
.content-library-file-cell__meta{display:flex;flex-direction:column;gap:.2rem;min-width:0}
.content-library-file-cell__meta strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:260px}
.category-sort-input{width:4.5rem;padding:.4rem .5rem;border:1px solid #cbd5e1;border-radius:8px;font:inherit}
.course-categories-save-row{margin-top:.85rem}
.admin-form-actions-row{display:flex;flex-wrap:wrap;gap:.65rem;justify-content:flex-end;margin-top:1.25rem;padding-top:1rem;border-top:1px solid #f1f5f9}
.user-form-roles-label{display:block;font-size:.75rem;font-weight:600;color:#64748b;margin-bottom:.4rem;text-transform:uppercase;letter-spacing:.03em}
.user-form-roles-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.35rem .75rem}
.user-form-role-item{display:flex;align-items:center;gap:.5rem;padding:.35rem 0;font-size:.9rem;cursor:pointer}
.admin-category-form{max-width:720px}
.tickets-filter-tabs{display:flex;flex-wrap:wrap;gap:.5rem;margin:.25rem 0 1rem}
.tickets-filter-tab{padding:.45rem .9rem;border-radius:8px;border:1px solid #e2e8f0;text-decoration:none!important;color:#475569!important;font-size:.86rem;font-weight:500;transition:background .15s,border-color .15s}
.tickets-filter-tab:hover{background:#f8fafc}
.tickets-filter-tab.is-active{background:#ecfdf5!important;border-color:#a7f3d0!important;color:#065f46!important;font-weight:600}
.ticket-priority{display:inline-block;padding:.15rem .45rem;border-radius:6px;font-size:.72rem;font-weight:600;text-transform:capitalize}
.ticket-priority-low{background:#f1f5f9;color:#475569}
.ticket-priority-medium{background:#fef3c7;color:#92400e}
.ticket-priority-high{background:#ffedd5;color:#c2410c}
.ticket-priority-urgent{background:#fee2e2;color:#991b1b}
.ticket-status-open{background:#e0f2fe;color:#0369a1}
.ticket-status-in-progress{background:#fef3c7;color:#92400e}
.ticket-status-resolved{background:#dcfce7;color:#166534}
.ticket-status-closed{background:#f1f5f9;color:#64748b}
.ticket-meta-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;margin:1rem 0;padding:1rem 1.1rem;background:#f8fafc;border-radius:12px;border:1px solid #e2e8f0}
.ticket-meta-label{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:#64748b;margin-bottom:.3rem;font-weight:600}
.ticket-meta-value{font-size:.9rem;color:#0f172a;line-height:1.4}
.ticket-thread{display:flex;flex-direction:column;gap:.75rem;margin:.5rem 0 1.25rem}
.ticket-message{border:1px solid #e2e8f0;border-radius:12px;padding:.9rem 1.05rem;background:#fff;box-shadow:0 1px 2px rgba(15,23,42,.04)}
.ticket-message__head{display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem .5rem;margin-bottom:.5rem;font-size:.84rem}
.ticket-message__time{margin-left:auto;color:#94a3b8;font-size:.78rem;white-space:nowrap}
.ticket-message__body{font-size:.9rem;line-height:1.5;color:#334155;word-break:break-word}
.ticket-create-form .learning-path-form__wide{margin-bottom:0}
.student-hub-page .admin-hub-title{font-size:1.25rem}
.student-catalog-table .btn-link{white-space:nowrap}
.student-hub-page .admin-hub-metrics-inline{font-size:.88rem}
.student-progress-wrap{height:6px;background:#e2e8f0;border-radius:999px;overflow:hidden;min-width:72px;max-width:120px;display:inline-block;vertical-align:middle;margin-right:.4rem}
.student-progress-bar{height:100%;background:linear-gradient(90deg,#2dd4bf,#0d9488);border-radius:999px;transition:width .25s ease}
.student-checkout-actions{display:flex;flex-wrap:wrap;gap:.65rem;align-items:center;margin-top:1rem}
.student-player-page .player-grid{margin-top:1rem}
@media (max-width:900px){.student-player-page .player-grid{grid-template-columns:1fr}}
.student-player-page .lesson-list.student-lesson-sidebar{border-right:none;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:.75rem .65rem;max-height:min(70vh,520px);overflow-y:auto}
.student-player-page .lesson-item{border-color:#e2e8f0}
.student-player-page .lesson-item--locked{opacity:.72;background:#f1f5f9}
.student-player-page .lesson-locked-label{display:block;color:#64748b;font-size:.95rem;line-height:1.35;cursor:not-allowed;user-select:none}
.student-player-page .lesson-content.student-lesson-main{border:1px solid #e2e8f0;border-radius:12px;padding:1rem 1.15rem;background:#fff;min-width:0}
.student-player-page .lesson-content h3{margin-top:0}
.student-player-page .lesson-done-badge{display:block;margin-top:.2rem;color:#059669;font-weight:600}
.app-announcements{display:flex;flex-direction:column;gap:.5rem;margin:0 0 .85rem}
.app-announcement-bar{display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem .65rem;padding:.65rem 1rem;border-radius:10px;background:linear-gradient(90deg,#ecfdf5,#f0fdfa);border:1px solid #99f6e4;color:#0f172a;font-size:.88rem;line-height:1.45}
.app-announcement-bar__body{color:#334155;font-weight:400}

/* ── Course Content Manager (cm-*) ── */
.cm-content{display:grid;grid-template-columns:280px minmax(0,1fr) 220px;gap:0;min-height:70vh;border-top:1px solid #e2e8f0}
@media(max-width:1100px){.cm-content{grid-template-columns:240px minmax(0,1fr)}.cm-upload-panel{display:none}}
@media(max-width:768px){.cm-content{grid-template-columns:1fr;grid-template-rows:auto 1fr}}

/* Sidebar */
.cm-sidebar{background:#f8fafc;border-right:1px solid #e2e8f0;padding:.75rem;overflow-y:auto;max-height:80vh;position:sticky;top:0}
.cm-sidebar__head{margin-bottom:.65rem}
.cm-sidebar__head h3{margin:0 0 .15rem;font-size:.9rem;color:#0f172a}
.cm-sidebar__head span{font-size:.75rem}
.cm-sidebar__add-form{display:flex;gap:.35rem;margin-bottom:.6rem}
.cm-sidebar__input{width:100%;border:1px solid #cbd5e1;border-radius:8px;padding:.4rem .55rem;font-size:.82rem;background:#fff}
.cm-sidebar__input:focus{outline:0;border-color:#38bdf8;box-shadow:0 0 0 2px rgba(56,189,248,.15)}
.cm-sidebar__input--sm{padding:.3rem .45rem;font-size:.78rem}
.cm-sidebar__add-btn{border:none;background:#0f766e;color:#fff;border-radius:8px;padding:.35rem .5rem;cursor:pointer;display:flex;align-items:center}
.cm-sidebar__add-btn .material-symbols-outlined{font-size:1.1rem}
.cm-sidebar__add-btn:hover{background:#115e59}
.cm-sidebar__type-select{border:1px solid #cbd5e1;border-radius:6px;padding:.25rem .3rem;font-size:.72rem;background:#fff;max-width:70px;color:#475569;cursor:pointer}
.cm-sidebar__type-select:focus{outline:0;border-color:#38bdf8}
.cm-sidebar__tree{display:flex;flex-direction:column;gap:.4rem}

/* Section */
.cm-section{border:1px solid #e2e8f0;border-radius:10px;background:#fff;overflow:hidden}
.cm-section__head{display:flex;align-items:center;gap:.4rem;padding:.5rem .6rem;cursor:pointer;user-select:none}
.cm-section__head:hover{background:#f1f5f9}
.cm-section__title{flex:1;font-size:.84rem;font-weight:600;color:#334155;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cm-section__count{font-size:.7rem;background:#e2e8f0;color:#475569;padding:.1rem .4rem;border-radius:99px}
.cm-section__arrow{font-size:1.1rem;color:#94a3b8;transition:transform .15s}
.cm-section.is-open .cm-section__arrow{transform:rotate(180deg)}
.cm-section__body{display:none;padding:0 .5rem .5rem}
.cm-section.is-open .cm-section__body{display:block}
.cm-section__actions{display:flex;gap:.35rem;margin-bottom:.4rem;flex-wrap:wrap;align-items:center}
.cm-section__rename{display:flex;gap:.3rem;flex:1;min-width:0}
.cm-section__lessons{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.15rem}
.cm-section__add-lesson{display:flex;gap:.3rem;margin-top:.4rem}

/* Lesson item in sidebar */
.cm-lesson-item a{display:flex;align-items:center;justify-content:space-between;gap:.4rem;padding:.35rem .5rem;border-radius:8px;text-decoration:none;color:#475569;font-size:.82rem}
.cm-lesson-item a:hover{background:#f1f5f9;color:#0f172a}
.cm-lesson-item.is-active a{background:#ecfdf5;color:#065f46;border:1px solid #a7f3d0;font-weight:600}
.cm-lesson-item__title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cm-lesson-item__badge{font-size:.65rem;padding:.1rem .35rem;border-radius:6px;background:#f1f5f9;color:#64748b;font-weight:600;white-space:nowrap}
.cm-lesson-item__badge.is-live{background:#dcfce7;color:#166534}

/* Mini buttons */
.cm-mini-btn{border:1px solid #cbd5e1;background:#fff;color:#334155;border-radius:8px;padding:.28rem .5rem;font-size:.75rem;cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;gap:.25rem}
.cm-mini-btn:hover{background:#f1f5f9;border-color:#94a3b8}
.cm-mini-btn--danger{color:#dc2626;border-color:#fecaca}
.cm-mini-btn--danger:hover{background:#fef2f2;color:#b91c1c}

/* Editor panel */
.cm-editor{padding:1.25rem 1.5rem 2rem;overflow-y:auto;max-height:80vh}
.cm-editor__topbar{display:flex;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid #e2e8f0;flex-wrap:wrap}
.cm-editor__breadcrumb{display:flex;align-items:center;gap:.35rem;font-size:.84rem;min-width:0;flex-wrap:wrap}
.cm-editor__topbar-actions{display:flex;gap:.45rem;align-items:center}
.cm-editor__badge{font-size:.7rem;padding:.2rem .5rem;border-radius:6px;background:#fef3c7;color:#92400e;font-weight:600}
.cm-editor__badge.is-live{background:#dcfce7;color:#166534}
.cm-editor__form{display:flex;flex-direction:column;gap:.75rem}
.cm-editor__section{display:flex;flex-direction:column;gap:.4rem}
.cm-editor__section-title{margin:0;font-size:.82rem;color:#475569;font-weight:600}
.cm-editor__row{display:flex;gap:.5rem;flex-wrap:wrap}
.cm-editor__section--publish{background:#ecfeff;border:1px solid #a5f3fc;border-radius:10px;padding:.65rem .75rem}
.cm-editor__section--safety{background:#fffbeb;border:1px solid #fde68a;border-radius:10px;padding:.75rem .85rem;margin-top:1rem}
.cm-editor__danger-zone{margin-top:.65rem}
.cm-editor__sticky-bar{position:sticky;bottom:0;background:#fff;border-top:1px solid #e2e8f0;padding:.65rem 0;display:flex;align-items:center;gap:.75rem;z-index:10}
.cm-editor__empty{text-align:center;padding:4rem 2rem;color:#94a3b8}
.cm-editor__empty h3{color:#475569;margin:.75rem 0 .35rem}
.cm-editor__blocks{margin-top:1.25rem;display:flex;flex-direction:column;gap:.5rem}

/* Fields */
.cm-field{display:flex;flex-direction:column;gap:.2rem;flex:1;min-width:120px}
.cm-field--compact{max-width:180px}
.cm-field__label{font-size:.75rem;color:#64748b;font-weight:500}
.cm-field__input,.cm-field__select,.cm-field__textarea{border:1px solid #cbd5e1;border-radius:8px;padding:.45rem .6rem;font-size:.875rem;background:#fff;width:100%}
.cm-field__input:focus,.cm-field__select:focus,.cm-field__textarea:focus{outline:0;border-color:#38bdf8;box-shadow:0 0 0 2px rgba(56,189,248,.15)}
.cm-field__input--lg{font-size:1.05rem;font-weight:600;padding:.55rem .65rem}
.cm-field__input--narrow{max-width:100px}

/* Toggle switch */
.cm-toggle{display:flex;align-items:center;gap:.55rem;cursor:pointer;font-size:.84rem}
.cm-toggle--sm{font-size:.78rem}
.cm-toggle input{display:none}
.cm-toggle__track{width:36px;height:20px;border-radius:99px;background:#cbd5e1;position:relative;transition:background .2s;flex-shrink:0}
.cm-toggle__track::after{content:'';position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .2s}
.cm-toggle input:checked + .cm-toggle__track{background:#0f766e}
.cm-toggle input:checked + .cm-toggle__track::after{transform:translateX(16px)}

/* Save button */
.cm-save-btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;background:#0f766e;color:#fff;border:none;border-radius:8px;padding:.5rem 1.1rem;font-size:.875rem;font-weight:600;cursor:pointer;text-decoration:none}
.cm-save-btn:hover{background:#115e59}
.cm-save-btn--sm{padding:.35rem .75rem;font-size:.8rem}
.cm-save-hint{font-size:.78rem}

/* Content blocks */
.cm-block{border:1px solid #e2e8f0;border-radius:10px;background:#fff;overflow:hidden}
.cm-block--add{border-style:dashed;background:#f8fafc}
.cm-block__head{padding:.5rem .65rem;cursor:pointer;display:flex;align-items:center;gap:.5rem;font-size:.84rem;list-style:none}
.cm-block__head::-webkit-details-marker{display:none}
.cm-block__head--add{color:#0f766e;font-weight:600}
.cm-block__head--add .material-symbols-outlined{font-size:1rem}
.cm-block__type-badge{font-size:.65rem;padding:.15rem .4rem;border-radius:6px;background:#e0f2fe;color:#0369a1;font-weight:600;text-transform:uppercase}
.cm-block__title{flex:1;font-weight:500;color:#334155}
.cm-block__body{padding:.5rem .65rem .75rem;border-top:1px solid #f1f5f9}
.cm-block__form{display:flex;flex-direction:column;gap:.4rem}
.cm-block__row{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;margin-top:.35rem}
.cm-block__del{margin-top:.4rem}

/* Checklist */
.cm-checklist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.3rem}
.cm-checklist li{display:flex;align-items:center;gap:.4rem;font-size:.84rem;color:#92400e;padding:.25rem .4rem;border-radius:6px}
.cm-checklist li.is-ok{color:#166534;background:#f0fdf4}
.cm-checklist li .material-symbols-outlined{font-size:1rem}

/* Upload panel */
.cm-upload-panel{background:#f8fafc;border-left:1px solid #e2e8f0;padding:.65rem;overflow-y:auto;max-height:80vh;font-size:.82rem}
.cm-upload-panel__head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}
.cm-upload-panel__head h4{margin:0;font-size:.85rem;color:#0f172a}
.cm-upload-panel__body.is-collapsed{display:none}
.cm-upload-panel__upload-row{display:flex;gap:.35rem;align-items:center;flex-wrap:wrap}
.cm-upload-panel__file-input{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.cm-upload-panel__list{display:flex;flex-direction:column;gap:.3rem;margin-top:.5rem;max-height:40vh;overflow-y:auto}
.cm-upload-panel__item{display:flex;align-items:center;gap:.4rem;padding:.3rem .4rem;border-radius:6px;border:1px solid #e2e8f0;background:#fff}
.cm-upload-panel__icon{width:26px;height:26px;border-radius:6px;background:#e2e8f0;display:flex;align-items:center;justify-content:center;font-size:.55rem;font-weight:700;color:#475569;flex-shrink:0}
.cm-upload-panel__name{font-size:.76rem;color:#334155;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}

/* 2-column layout variant */
.cm-content--2col{grid-template-columns:260px minmax(0,1fr)}
@media(max-width:768px){.cm-content--2col{grid-template-columns:1fr}}

/* Tab badge */
.cm-tab-badge{display:inline-flex;align-items:center;justify-content:center;background:#e2e8f0;color:#475569;font-size:.65rem;font-weight:700;padding:.1rem .4rem;border-radius:99px;margin-left:.25rem}
.course-manage__tab.is-active .cm-tab-badge{background:#0f766e;color:#fff}

/* Lesson type badge in sidebar */
.cm-lesson-item__type{font-size:.55rem;padding:.15rem .3rem;border-radius:4px;background:#e0e7ff;color:#3730a3;font-weight:700;text-transform:uppercase;flex-shrink:0;letter-spacing:.03em}

/* Quick actions in overview */
.cm-quick-actions{display:flex;flex-direction:column;gap:.35rem}
.cm-quick-link{display:flex;align-items:center;gap:.5rem;padding:.55rem .7rem;border-radius:8px;border:1px solid #e2e8f0;background:#fff;text-decoration:none;color:#334155;font-size:.85rem;font-weight:500;transition:background .15s,border-color .15s}
.cm-quick-link:hover{background:#f0fdf4;border-color:#a7f3d0;color:#065f46}
.cm-quick-link .material-symbols-outlined{font-size:1.15rem;color:#0f766e}

/* Hint bar (cross-tab link) */
.cm-editor__hint{display:flex;align-items:center;gap:.45rem;padding:.6rem .75rem;background:#ecfeff;border:1px solid #a5f3fc;border-radius:8px;margin-top:.75rem;font-size:.84rem;color:#0e7490}
.cm-editor__hint a{color:#0e7490;text-decoration:underline}
.cm-editor__hint .material-symbols-outlined{font-size:1.1rem;flex-shrink:0}
.cm-editor__danger-zone{margin-top:1rem;padding-top:.75rem;border-top:1px solid #fee2e2}

/* Quiz question styles */
.cm-question__options{display:grid;grid-template-columns:1fr 1fr;gap:.35rem;margin-bottom:.75rem}
@media(max-width:600px){.cm-question__options{grid-template-columns:1fr}}
.cm-question__opt{padding:.4rem .6rem;border-radius:6px;font-size:.84rem;background:#f8fafc;border:1px solid #e2e8f0;color:#475569}
.cm-question__opt.is-correct{background:#dcfce7;border-color:#86efac;color:#166534;font-weight:600}
.cm-question__correct-pill{font-size:.65rem;padding:.15rem .4rem;border-radius:6px;background:#dcfce7;color:#166534;font-weight:700}
.cm-question__edit-wrap{margin-top:.5rem}
.cm-question__edit-wrap>summary{cursor:pointer;list-style:none}
.cm-question__edit-wrap>summary::-webkit-details-marker{display:none}

/* Result pill (pass/fail) */
.cm-result-pill{display:inline-block;font-size:.72rem;padding:.15rem .45rem;border-radius:6px;font-weight:700;text-transform:uppercase}
.cm-result-pill--pass{background:#dcfce7;color:#166534}
.cm-result-pill--fail{background:#fef2f2;color:#991b1b}

/* Status pills for assignments */
.cm-status-pill{display:inline-block;font-size:.72rem;padding:.15rem .45rem;border-radius:6px;font-weight:600}
.cm-status-pill--submitted{background:#dbeafe;color:#1e40af}
.cm-status-pill--under_review{background:#fef3c7;color:#92400e}
.cm-status-pill--graded{background:#dcfce7;color:#166534}
.cm-status-pill--resubmit{background:#fef2f2;color:#991b1b}
.cm-status-pill--active{background:#dcfce7;color:#166534}
.cm-status-pill--completed{background:#e0e7ff;color:#3730a3}
.cm-status-pill--cancelled{background:#f1f5f9;color:#64748b}
.cm-status-pill--expired{background:#fef2f2;color:#991b1b}

/* Submission details */
.cm-submission-details{margin-bottom:.75rem;font-size:.84rem;color:#475569;line-height:1.6}
.cm-submission-details p{margin:0 0 .25rem}

/* Grade form */
.cm-grade-form{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:.75rem;margin-top:.5rem;display:flex;flex-direction:column;gap:.5rem}

/* Block marks badge */
.cm-block__marks{font-size:.72rem;padding:.15rem .35rem;border-radius:6px;background:#e0f2fe;color:#0369a1;font-weight:600}

/* Progress bar (students tab) */
.cm-progress-bar{width:100%;max-width:120px;height:6px;background:#e2e8f0;border-radius:99px;overflow:hidden;display:inline-block;vertical-align:middle}
.cm-progress-bar__fill{height:100%;background:#0f766e;border-radius:99px;transition:width .3s}

/* ── Attached file display ── */
.cm-attached{display:flex;align-items:center;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:12px;padding:.6rem .8rem;gap:.75rem}
.cm-attached__preview{position:relative;width:80px;height:56px;border-radius:8px;overflow:hidden;background:#1e293b;flex-shrink:0;display:flex;align-items:center;justify-content:center}
.cm-attached__preview--icon{background:#f1f5f9}
.cm-attached__video{width:100%;height:100%;object-fit:cover}
.cm-attached__play{position:absolute;color:rgba(255,255,255,.85);font-size:2rem;pointer-events:none}
.cm-attached__file-icon{font-size:2rem}
.cm-attached__details{flex:1;min-width:0}
.cm-attached__details strong{display:block;font-size:.84rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cm-attached__meta{font-size:.75rem;color:#64748b}
.cm-attached__actions{display:flex;gap:.35rem;flex-shrink:0}

/* ── Upload zone ── */
.cm-upload__dropzone{border:2px dashed #cbd5e1;border-radius:12px;padding:1.8rem 1rem;text-align:center;cursor:pointer;transition:border-color .2s,background .2s;color:#64748b}
.cm-upload__dropzone:hover,.cm-upload__dropzone.is-dragover{border-color:#38bdf8;background:#f0f9ff}
.cm-upload__dropicon{font-size:2.5rem;color:#94a3b8;display:block;margin:0 auto .25rem}
.cm-upload__browse-link{color:#0ea5e9;cursor:pointer;font-weight:600;text-decoration:underline}

/* File preview (before upload) */
.cm-upload__preview{display:flex;align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:.7rem .85rem;gap:.75rem}
.cm-upload__preview-thumb{position:relative;width:80px;height:56px;border-radius:8px;overflow:hidden;background:#1e293b;flex-shrink:0;display:flex;align-items:center;justify-content:center}
.cm-upload__thumb-video{width:100%;height:100%;object-fit:cover}
.cm-upload__thumb-play{position:absolute;color:rgba(255,255,255,.8);font-size:2rem}
.cm-upload__preview-info{flex:1;min-width:0}
.cm-upload__preview-info strong{display:block;font-size:.84rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cm-upload__preview-actions{display:flex;gap:.4rem;flex-shrink:0}

/* Upload progress */
.cm-upload__uploading{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:.85rem}
.cm-upload__uploading-info{display:flex;align-items:center;gap:.6rem;margin-bottom:.5rem}
.cm-upload__uploading-info strong{font-size:.84rem}
.cm-upload__spin{font-size:1.4rem;color:#0ea5e9;animation:cm-spin 1.2s linear infinite}
@keyframes cm-spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}
.cm-upload__bar{height:8px;background:#e2e8f0;border-radius:99px;overflow:hidden;margin-bottom:.35rem}
.cm-upload__bar-fill{height:100%;background:linear-gradient(90deg,#0ea5e9,#06b6d4);border-radius:99px;transition:width .25s;width:0}

/* Library picker */
.cm-library-picker{margin-top:.25rem}
.cm-library-picker__list{max-height:220px;overflow-y:auto;border:1px solid #e2e8f0;border-radius:8px;margin-top:.35rem;background:#fff}
.cm-library-picker__item{display:flex;align-items:center;gap:.5rem;width:100%;border:none;background:none;padding:.5rem .65rem;cursor:pointer;text-align:left;font-size:.82rem;border-bottom:1px solid #f1f5f9;transition:background .15s}
.cm-library-picker__item:last-child{border-bottom:0}
.cm-library-picker__item:hover{background:#f0f9ff}
.cm-library-picker__name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cm-resource-list{display:flex;flex-wrap:wrap;gap:.4rem;margin:.55rem 0 .35rem}
.cm-resource-chip{display:inline-flex;align-items:center;gap:.35rem;border:1px solid #dbeafe;background:#f8fbff;color:#1e3a8a;border-radius:999px;padding:.18rem .5rem;font-size:.74rem}
.cm-resource-chip__remove{border:0;background:none;color:#1e3a8a;cursor:pointer;font-size:.9rem;line-height:1}

/* ── Student dashboard (learner home / my courses) ── */
.stu-dash{
  --sd-forest:#0d2818;
  --sd-moss:#123d28;
  --sd-accent:#008a61;
  --sd-btn:#f0d80b;
  --sd-btn-text:#0d2818;
  --sd-soft:rgba(255,255,255,.08);
  --sd-line:rgba(255,255,255,.14);
  max-width:1100px;
  margin:0 auto 2rem;
}
.stu-dash__hero{
  display:flex;
  flex-wrap:wrap;
  gap:1.5rem;
  align-items:center;
  justify-content:space-between;
  background:linear-gradient(125deg,var(--sd-forest) 0%,var(--sd-moss) 45%,#0a3d26 100%);
  color:#fff;
  border-radius:18px;
  padding:1.5rem 1.75rem 1.6rem;
  margin-bottom:1.25rem;
  box-shadow:0 14px 42px rgba(13,40,24,.28);
}
.stu-dash__eyebrow{font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:rgba(240,216,11,.9);margin:0 0 .35rem}
.stu-dash__title{font-size:clamp(1.45rem,2.8vw,1.85rem);font-weight:750;margin:0 0 .4rem;line-height:1.2}
.stu-dash__subtitle{margin:0;font-size:.95rem;line-height:1.55;color:rgba(255,255,255,.82);max-width:36rem}
.stu-dash__subtitle strong{color:#fff;font-weight:650}
.stu-dash__hero-chart{flex-shrink:0}
.stu-dash__ring{
  width:118px;height:118px;border-radius:50%;
  background:conic-gradient(var(--sd-accent) calc(var(--p,0)*1%),var(--sd-soft) 0);
  display:grid;place-items:center;position:relative;
}
.stu-dash__ring::after{
  content:'';
  position:absolute;
  inset:15px;
  border-radius:50%;
  background:var(--sd-forest);
}
.stu-dash__ring-label{position:relative;z-index:1;font-size:1.28rem;font-weight:800;line-height:1;color:#fff}
.stu-dash__ring-sub{position:relative;z-index:1;font-size:.62rem;letter-spacing:.04em;text-transform:uppercase;color:rgba(255,255,255,.62);margin-top:.1rem}
.stu-dash__hero-chart .stu-dash__ring{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.stu-dash__alert{margin-bottom:1rem}
.stu-dash__kpis{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:.85rem;
  margin-bottom:1.25rem;
}
.stu-dash__kpi{
  background:#fff;
  border:1px solid rgba(0,138,97,.18);
  border-radius:14px;
  padding:1rem 1.1rem;
  box-shadow:0 2px 14px rgba(13,40,24,.06);
}
.stu-dash__kpi-label{display:block;font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#64748b;margin-bottom:.35rem}
.stu-dash__kpi-value{font-size:1.65rem;font-weight:800;color:var(--sd-forest);line-height:1}
.stu-dash__panel{
  background:#fff;
  border:1px solid #e2e8f0;
  border-radius:16px;
  padding:1.25rem 1.35rem 1.4rem;
  margin-bottom:1.15rem;
  box-shadow:0 4px 18px rgba(15,23,42,.05);
}
.stu-dash__panel-title{font-size:1.05rem;font-weight:750;margin:0 0 .25rem;color:var(--sd-forest)}
.stu-dash__panel-hint{margin:0 0 1rem;font-size:.86rem;color:#64748b}
.stu-dash__chart{display:flex;flex-direction:column;gap:.75rem}
.stu-dash__chart-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(120px,2fr) auto;
  gap:.65rem;
  align-items:center;
}
@media (max-width:640px){
  .stu-dash__chart-row{grid-template-columns:1fr;gap:.35rem}
  .stu-dash__chart-pct{justify-self:start}
}
.stu-dash__chart-name{font-weight:650;color:#1e293b;display:block;font-size:.88rem}
.stu-dash__chart-sub{font-size:.76rem}
.stu-dash__chart-bar-wrap{
  height:10px;
  background:rgba(13,40,24,.08);
  border-radius:99px;
  overflow:hidden;
}
.stu-dash__chart-bar{
  height:100%;
  border-radius:99px;
  background:linear-gradient(90deg,var(--sd-accent),#00b07a);
  min-width:0;
  transition:width .4s ease;
}
.stu-dash__chart-pct{font-size:.82rem;font-weight:700;color:var(--sd-accent);min-width:2.5rem;text-align:right}
.stu-dash__cards{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
  gap:1rem;
}
.stu-dash__card{
  border:1px solid rgba(0,138,97,.2);
  border-radius:14px;
  padding:1.1rem 1.15rem;
  background:linear-gradient(180deg,#fafefd,#fff);
  display:flex;
  flex-direction:column;
  gap:.65rem;
}
.stu-dash__card-top{display:flex;gap:.85rem;align-items:flex-start}
.stu-dash__card-donut{
  width:52px;height:52px;flex-shrink:0;border-radius:50%;
  background:conic-gradient(var(--sd-accent) calc(var(--p,0)*1%),#e2e8f0 0);
}
.stu-dash__card-head{min-width:0}
.stu-dash__card-title{font-size:.95rem;font-weight:700;margin:0 0 .35rem;color:var(--sd-forest);line-height:1.3}
.stu-dash__pill{
  display:inline-block;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;
  padding:.2rem .45rem;border-radius:6px;
}
.stu-dash__pill--active{background:rgba(0,138,97,.12);color:var(--sd-accent)}
.stu-dash__pill--completed{background:#e0e7ff;color:#3730a3}
.stu-dash__pill--cancelled,.stu-dash__pill--expired{background:#fef2f2;color:#991b1b}
.stu-dash__card-stats{font-size:.8rem;margin:0}
.stu-dash__btn{
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--sd-btn);color:var(--sd-btn-text);
  font-weight:750;font-size:.88rem;
  padding:.55rem 1rem;border-radius:10px;text-decoration:none;
  border:none;cursor:pointer;
  transition:filter .15s,transform .12s;
  margin-top:auto;align-self:flex-start;
}
.stu-dash__btn:hover{filter:brightness(1.05);transform:translateY(-1px)}
.stu-dash__btn--ghost{background:transparent;color:var(--sd-accent);border:2px solid var(--sd-accent)}
.stu-dash__empty{text-align:center;padding:2rem 1.25rem}
.stu-dash__empty .stu-dash__panel-title{margin-bottom:.5rem}

/* ── Instructor dashboard (brand: #0d2818, #008a61, #f0d80b) ── */
.instructor-dash{
  --ins-forest:#0d2818;
  --ins-green:#008a61;
  --ins-yellow:#f0d80b;
  max-width:1100px;
  margin:0 auto 2rem;
  scroll-behavior:smooth;
}
.instructor-dash__hero{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
  padding:1.35rem 1.5rem 1.45rem;
  border-radius:16px;
  background:linear-gradient(125deg,var(--ins-forest) 0%,#123d28 40%,var(--ins-green) 100%);
  color:#fff;
  margin-bottom:1.15rem;
  box-shadow:0 14px 36px rgba(13,40,24,.28);
}
.instructor-dash__eyebrow{
  font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  margin:0 0 .35rem;color:rgba(240,216,11,.92);
}
.instructor-dash__title{
  font-size:clamp(1.4rem,2.6vw,1.75rem);
  font-weight:750;margin:0 0 .4rem;line-height:1.2;
}
.instructor-dash__subtitle{
  margin:0;font-size:.92rem;line-height:1.55;max-width:40rem;
  color:rgba(255,255,255,.9);
}
.instructor-dash__role-pill{
  align-self:center;
  font-size:.78rem;font-weight:700;padding:.35rem .85rem;border-radius:999px;
  background:rgba(240,216,11,.18);border:1px solid rgba(240,216,11,.45);
  color:var(--ins-yellow);
}
.instructor-dash__hero-tools{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:flex-end;
  gap:.55rem;
}
.instructor-dash__kpis{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  gap:.85rem;
  margin-bottom:1.15rem;
}
.instructor-dash__kpi{
  background:#fff;
  border:1px solid #e2e8f0;
  border-radius:14px;
  padding:1rem 1.1rem;
  box-shadow:0 4px 18px rgba(15,23,42,.05);
}
.instructor-dash__kpi--click{
  text-decoration:none;
  color:inherit;
  cursor:pointer;
  transition:border-color .18s ease,box-shadow .18s ease,transform .12s ease;
}
.instructor-dash__kpi--click:hover{
  border-color:rgba(0,138,97,.42);
  box-shadow:0 10px 26px rgba(13,40,24,.1);
  transform:translateY(-2px);
}
.instructor-dash__kpi--click:focus-visible{
  outline:2px solid var(--ins-yellow);
  outline-offset:3px;
}
.instructor-dash__kpi--accent{
  border-color:rgba(0,138,97,.32);
  background:linear-gradient(180deg,rgba(240,216,11,.14),#fff);
}
.instructor-dash__kpi-label{
  display:block;font-size:.75rem;font-weight:650;
  text-transform:uppercase;letter-spacing:.04em;color:#64748b;margin-bottom:.35rem;
}
.instructor-dash__kpi-value{
  display:block;font-size:1.85rem;font-weight:800;line-height:1;color:var(--ins-forest);
}
.instructor-dash__kpi-hint{
  display:block;margin-top:.35rem;font-size:.78rem;color:#64748b;line-height:1.35;
}
.instructor-dash__actions{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:1rem;
  margin-bottom:1.25rem;
}
.instructor-dash__action-wrap{display:flex;flex-direction:column;gap:.55rem}
.instructor-dash__action-card{
  display:flex;
  gap:1rem;
  background:#fff;
  border:1px solid #e2e8f0;
  border-radius:14px;
  padding:1.1rem 1.15rem 1.2rem;
  box-shadow:0 4px 16px rgba(15,23,42,.04);
}
.instructor-dash__action-card--link{
  text-decoration:none;
  color:inherit;
  cursor:pointer;
  transition:border-color .18s ease,box-shadow .18s ease,transform .12s ease;
}
.instructor-dash__action-card--link:hover{
  border-color:rgba(0,138,97,.48);
  box-shadow:0 12px 28px rgba(13,40,24,.12);
  transform:translateY(-2px);
}
.instructor-dash__action-card--link:focus-visible{
  outline:2px solid var(--ins-yellow);
  outline-offset:3px;
}
.instructor-dash__action-card--static{cursor:default}
.instructor-dash__action-body{flex:1;min-width:0;display:flex;flex-direction:column}
.instructor-dash__action-go{
  margin-top:auto;
  padding-top:.7rem;
  font-size:.83rem;font-weight:750;
  color:var(--ins-green);
  display:inline-flex;
  align-items:center;
  gap:.4rem;
}
.instructor-dash__action-chevron{font-weight:800;font-size:1rem;line-height:1}
.instructor-dash__action-foot{display:flex;flex-wrap:wrap;gap:.5rem;padding:0 .1rem}
.instructor-dash__action-icon{
  font-size:2rem;
  color:var(--ins-green);
  flex-shrink:0;
  margin-top:.1rem;
}
.instructor-dash__action-title{font-size:1.02rem;font-weight:700;margin:0 0 .35rem;color:var(--ins-forest)}
.instructor-dash__action-desc{margin:0 0 .35rem;font-size:.86rem;line-height:1.5;color:#64748b;flex:1}
.instructor-dash__action-muted{margin:0;font-size:.84rem;color:#64748b;line-height:1.45}
.instructor-dash__btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:var(--ins-green);
  color:#fff;
  font-weight:650;font-size:.86rem;
  padding:.55rem 1rem;
  border-radius:10px;
  text-decoration:none;
  border:none;
  cursor:pointer;
  margin:0;
  box-shadow:0 6px 14px rgba(0,138,97,.28);
  transition:filter .15s,transform .12s;
}
.instructor-dash__btn:hover{filter:brightness(1.06);transform:translateY(-1px);color:#fff}
.instructor-dash__btn--ghost{
  background:var(--ins-yellow);
  color:var(--ins-forest);
  border:2px solid var(--ins-forest);
  box-shadow:0 4px 12px rgba(240,216,11,.25);
  font-weight:700;
}
.instructor-dash__btn--ghost:hover{color:var(--ins-forest)}
.instructor-dash__btn--inline{margin-top:.5rem}
.instructor-dash__btn--tour{
  background:#fff;
  color:var(--ins-forest);
  box-shadow:none;
  border:2px solid rgba(240,216,11,.75);
  font-weight:700;
}
.instructor-dash__btn--tour:hover{
  color:var(--ins-forest);
}
.instructor-dash__panel{
  background:#fff;
  border:1px solid #e2e8f0;
  border-radius:14px;
  padding:1.15rem 1.25rem 1.3rem;
  margin-bottom:1.1rem;
  box-shadow:0 4px 14px rgba(15,23,42,.04);
}
.instructor-dash__panel[id]{scroll-margin-top:5.5rem}
.instructor-dash__panel-title{font-size:1.05rem;font-weight:700;margin:0 0 .35rem;color:var(--ins-forest)}
.instructor-dash__panel-hint{margin:0 0 1rem;font-size:.84rem;color:#64748b;line-height:1.45}
.instructor-dash__course-list{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}
.instructor-dash__course-list li{
  display:flex;align-items:center;justify-content:space-between;gap:.65rem;
  flex-wrap:wrap;
  padding:.55rem .65rem;border-radius:10px;background:#f8fafc;border:1px solid #e2e8f0;
}
.instructor-dash__course-list a{font-weight:600;color:var(--ins-green);text-decoration:none}
.instructor-dash__course-list a:hover{text-decoration:underline}
.instructor-dash__empty{padding:.5rem 0 0}
.instructor-dash__link-list{margin:.85rem 0 0;padding-left:1.2rem;color:#475569;font-size:.88rem}
.instructor-dash__link-list a{color:var(--ins-green);font-weight:600}
.instructor-dash__live-stats{
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
  margin:0 0 .9rem;
}
.instructor-dash__live-pill{
  display:inline-flex;
  align-items:center;
  padding:.28rem .62rem;
  border-radius:999px;
  font-size:.76rem;
  font-weight:700;
  border:1px solid transparent;
}
.instructor-dash__live-pill--scheduled{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe}
.instructor-dash__live-pill--ongoing{background:#ecfdf5;color:#047857;border-color:#a7f3d0}
.instructor-dash__live-pill--expired{background:#f8fafc;color:#475569;border-color:#cbd5e1}
.status-pill.status-scheduled{background:#eff6ff;color:#1d4ed8}
.status-pill.status-ongoing{background:#ecfdf5;color:#047857}
.status-pill.status-expired{background:#f8fafc;color:#475569}
.instructor-dash .table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
[data-tour-step]{
  position:relative;
  transition:box-shadow .2s ease,border-color .2s ease;
}
[data-tour-step].is-tour-active{
  z-index:1202;
  box-shadow:0 0 0 3px rgba(240,216,11,.95),0 0 0 8px rgba(13,40,24,.2);
  border-radius:12px;
}
.instructor-tour-overlay{
  position:fixed;
  inset:0;
  background:rgba(2,6,23,.55);
  z-index:1200;
}
.instructor-tour-popover{
  position:fixed;
  z-index:1203;
  width:min(360px,calc(100vw - 1.5rem));
  background:#fff;
  border:1px solid #cbd5e1;
  border-radius:12px;
  box-shadow:0 18px 44px rgba(2,6,23,.3);
  padding:1rem 1rem .8rem;
}
.instructor-tour-popover__head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:.75rem;
  margin-bottom:.55rem;
}
.instructor-tour-popover__title{
  margin:0;
  font-size:1rem;
  color:#0f172a;
}
.instructor-tour-popover__progress{
  margin:0;
  font-size:.76rem;
  color:#64748b;
}
.instructor-tour-popover__text{
  margin:0 0 .85rem;
  color:#334155;
  font-size:.87rem;
  line-height:1.45;
}
.instructor-tour-popover__actions{
  display:flex;
  justify-content:space-between;
  gap:.5rem;
}
.instructor-tour-popover__btn{
  appearance:none;
  border:1px solid #94a3b8;
  background:#fff;
  color:#0f172a;
  border-radius:9px;
  padding:.45rem .75rem;
  font-size:.82rem;
  font-weight:650;
  cursor:pointer;
}
.instructor-tour-popover__btn--next{
  border-color:var(--ins-green);
  background:var(--ins-green);
  color:#fff;
}
.instructor-tour-popover__btn--ghost{
  border-color:#cbd5e1;
  color:#475569;
}
.instructor-tour-popover__btn:hover{filter:brightness(1.03)}
@media (max-width:640px){
  .instructor-dash__hero-tools{
    width:100%;
    justify-content:space-between;
  }
  .instructor-dash__action-card{flex-direction:column}
  .instructor-dash__action-foot .instructor-dash__btn{width:100%;justify-content:center}
  .instructor-tour-popover{
    left:.75rem !important;
    right:.75rem !important;
    width:auto;
    bottom:.75rem !important;
    top:auto !important;
  }
}

/* ——— Mobile-first shell: off-canvas nav drawer, touch targets, bottom nav (students) ——— */
.nav-drawer-backdrop{
  position:fixed;inset:0;z-index:1000;background:rgba(15,23,42,.42);
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .28s ease,visibility .28s ease;
  -webkit-tap-highlight-color:transparent;
}
.layout.app-shell.nav-drawer-open .nav-drawer-backdrop{
  opacity:1;visibility:visible;pointer-events:auto;
}
.app-bottom-nav{
  display:none;
  position:fixed;left:0;right:0;bottom:0;z-index:999;
  padding:0.35rem 0.5rem calc(0.35rem + env(safe-area-inset-bottom,0px));
  background:rgba(255,255,255,.96);border-top:1px solid #e2e8f0;
  box-shadow:0 -6px 24px rgba(15,23,42,.08);
  justify-content:space-around;align-items:stretch;gap:0.15rem;
  -webkit-backdrop-filter:saturate(180%) blur(12px);backdrop-filter:saturate(180%) blur(12px);
}
.app-bottom-nav__item{
  flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:0.15rem;min-height:48px;min-width:0;padding:0.35rem 0.2rem;
  font-size:0.65rem;font-weight:600;color:#475569;text-decoration:none;
  border-radius:10px;-webkit-tap-highlight-color:transparent;
}
.app-bottom-nav__item .material-symbols-outlined{font-size:24px;color:#334155;font-weight:400}
.app-bottom-nav__item:hover{background:#f1f5f9;color:#0f172a;text-decoration:none}

@media (max-width:1023px){
  .layout.app-shell{display:flex!important;flex-direction:row;flex-wrap:nowrap;align-items:stretch;position:relative;min-height:100vh;min-height:100dvh}
  .layout.app-shell .app-sidebar{
    position:fixed!important;left:0;top:0;bottom:0;
    width:min(19rem,92vw)!important;min-width:0!important;max-width:none!important;
    height:100vh!important;height:100dvh!important;max-height:none!important;
    z-index:1001;margin:0;padding:1rem 0.78rem calc(1rem + env(safe-area-inset-bottom,0px));
    overflow-y:auto;-webkit-overflow-scrolling:touch;
    transform:translate3d(-100%,0,0);
    transition:transform 0.28s cubic-bezier(0.4,0,0.2,1),box-shadow 0.28s ease;
    box-shadow:none;border-right:1px solid #1d2d55;
    overscroll-behavior:contain;
  }
  .layout.app-shell.nav-drawer-open .app-sidebar{
    transform:translate3d(0,0,0);
    box-shadow:8px 0 32px rgba(15,23,42,.28);
  }
  .layout.app-shell.nav-drawer-open .app-bottom-nav{
    opacity:0;visibility:hidden;pointer-events:none;
    transition:opacity .2s ease,visibility .2s ease;
  }
  .layout.app-shell.sidebar-collapsed .app-sidebar{
    width:min(19rem,92vw)!important;min-width:0!important;
  }
  .layout.app-shell.sidebar-collapsed .app-brand__text,
  .layout.app-shell.sidebar-collapsed .nav-text,
  .layout.app-shell.sidebar-collapsed .nav-section-label{display:block!important}
  .layout.app-shell .app-content{
    flex:1;min-width:0;width:100%;
    padding-top:calc(0.85rem + env(safe-area-inset-top,0px));
  }
  .layout.app-shell .app-topbar{
    position:sticky;top:0;z-index:50;
    flex-wrap:wrap;gap:0.5rem;
    padding:0.35rem 0.25rem;margin:0 -0.25rem 0.5rem;
    background:rgba(237,242,255,.92);
    border-bottom:1px solid rgba(226,232,240,.85);
    -webkit-backdrop-filter:saturate(180%) blur(10px);backdrop-filter:saturate(180%) blur(10px);
  }
  .sidebar-toggle-btn{
    min-width:44px;min-height:44px;width:44px;height:44px;border-radius:12px;
  }
  .app-nav a,.sidebar-logout .link-button{min-height:44px;padding:0.62rem 0.75rem}
  .app-nav .nav-sub-item{min-height:40px}
  .global-search input{min-height:44px;font-size:16px}
  .app-shell--student .app-bottom-nav{display:flex}
  .app-shell--student .app-page-content{padding-bottom:5.25rem}
  body.nav-drawer-open{overflow:hidden}
}

@media (min-width:1024px){
  .app-shell--student .app-bottom-nav{display:none}
  .app-shell--student .app-page-content{padding-bottom:0}
}

/* Data tables: horizontal scroll + sticky header on small screens */
@media (max-width:1023px){
  .table-scroll,.admin-table-scroll,.app-content .table-scroll{
    overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -0.35rem;padding:0 0.35rem;
    scroll-snap-type:proximity;
  }
  .table-scroll table,.admin-table-scroll table{min-width:520px}
  .table-scroll thead th,.admin-table-scroll thead th{
    position:sticky;top:0;z-index:1;background:#f8fafc;box-shadow:0 1px 0 #e2e8f0;
  }
}

/* Forms: stacked fields, comfort on touch */
@media (max-width:720px){
  .filter-grid,.inline-grid{grid-template-columns:1fr!important;align-items:stretch!important}
  .app-content input:not([type=checkbox]):not([type=radio]),
  .app-content select,.app-content textarea{min-height:44px;font-size:16px}
  .app-content .course-form-actions,.app-content form .form-actions{
    position:sticky;bottom:0;z-index:40;
    margin:0.75rem -0.35rem -0.35rem;padding:0.75rem 0.35rem calc(0.75rem + env(safe-area-inset-bottom,0px));
    background:linear-gradient(180deg,rgba(245,247,251,0) 0%,#f5f7fb 18%,#f5f7fb 100%);
    border-top:1px solid #e2e8f0;gap:0.5rem;
  }
}
