:root{
  --lms-bg:#f6f8fb;
  --lms-bg-subtle:#f8fafc;
  --lms-surface:#ffffff;
  --lms-surface-2:#f9fbfd;
  --lms-surface-3:#eef4ff;
  --lms-ink:#0f172a;
  --lms-ink-2:#1e293b;
  --lms-muted:#64748b;
  --lms-muted-2:#94a3b8;
  --lms-line:#e2e8f0;
  --lms-line-2:#edf2f7;
  --lms-brand:#2563eb;
  --lms-brand-600:#1d4ed8;
  --lms-brand-700:#1e40af;
  --lms-brand-soft:#eff6ff;
  --lms-accent:#0f766e;
  --lms-accent-soft:#ecfdf5;
  --lms-success:#047857;
  --lms-success-bg:#ecfdf5;
  --lms-warning:#b45309;
  --lms-warning-bg:#fffbeb;
  --lms-danger:#b42318;
  --lms-danger-bg:#fff1f2;
  --lms-sidebar:#0f172a;
  --lms-sidebar-2:#111827;
  --lms-sidebar-muted:#94a3b8;
  --lms-sidebar-line:rgba(255,255,255,.09);
  --shadow-xs:0 1px 2px rgba(15,23,42,.04);
  --shadow-sm:0 8px 24px rgba(15,23,42,.06);
  --shadow:0 18px 50px rgba(15,23,42,.09);
  --radius-xs:8px;
  --radius-sm:12px;
  --radius:16px;
  --radius-lg:22px;
  --container:1480px;
  --sidebar-w:282px;
  --topbar-h:72px;
  --font-sans:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,"Helvetica Neue",sans-serif;
  --font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;

  /* Backward-compatible aliases used by the existing PHP markup. */
  --brand:var(--lms-brand);
  --brand-600:var(--lms-brand-600);
  --brand-700:var(--lms-brand-700);
  --brand-soft:var(--lms-brand-soft);
  --ink:var(--lms-ink);
  --ink-2:var(--lms-ink-2);
  --muted:var(--lms-muted);
  --line:var(--lms-line);
  --line-2:var(--lms-line-2);
  --bg:var(--lms-bg);
  --surface:var(--lms-surface);
  --surface-2:var(--lms-surface-2);
  --success:var(--lms-success);
  --success-bg:var(--lms-success-bg);
  --danger:var(--lms-danger);
  --danger-bg:var(--lms-danger-bg);
  --warning:var(--lms-warning);
  --warning-bg:var(--lms-warning-bg);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;min-height:100dvh;background:var(--lms-bg);color:var(--lms-ink);font-family:var(--font-sans);line-height:1.5;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none} img{max-width:100%;display:block} button,input,select,textarea{font:inherit} [hidden],.hidden{display:none!important}.no-scroll{overflow:hidden}.print-only{display:none!important}.notranslate{unicode-bidi:isolate}.right{text-align:right}.small{font-size:13px}.muted{color:var(--lms-muted)}.text-success{color:var(--lms-success)}.text-danger{color:var(--lms-danger)}

/* ---------- Application shell ---------- */
.app-shell{min-height:100dvh;display:flex;background:radial-gradient(circle at top right,rgba(37,99,235,.10),transparent 34%),var(--lms-bg)}
.sidebar{position:sticky;top:0;align-self:flex-start;width:var(--sidebar-w);height:100dvh;overflow-y:auto;background:linear-gradient(180deg,var(--lms-sidebar),var(--lms-sidebar-2));color:#fff;border-right:1px solid var(--lms-sidebar-line);padding:18px 14px;z-index:60;display:flex;flex-direction:column;gap:16px;box-shadow:14px 0 36px rgba(15,23,42,.10)}
.sidebar-brand{display:flex;align-items:center;gap:12px;padding:10px 10px 18px;border-bottom:1px solid var(--lms-sidebar-line);min-width:0}
.brand-symbol{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,#3b82f6,#0f766e);box-shadow:0 12px 28px rgba(37,99,235,.28);color:#fff;flex:0 0 auto}
.brand-symbol svg{width:23px;height:23px;stroke:currentColor;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}.brand-copy{min-width:0}.brand-copy strong{display:block;font-size:14px;letter-spacing:.08em;text-transform:uppercase;font-weight:850;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand-copy span{display:block;font-size:12px;color:var(--lms-sidebar-muted);font-weight:650;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sidebar-section-label{padding:4px 10px 0;color:#64748b;font-size:11px;text-transform:uppercase;letter-spacing:.12em;font-weight:850}.sidebar-nav{display:grid;gap:4px}.sidebar-link{display:flex;align-items:center;gap:11px;min-height:42px;border-radius:12px;padding:10px 11px;color:#cbd5e1;font-weight:760;font-size:14px;transition:background .15s ease,color .15s ease,transform .15s ease}.sidebar-link:hover{background:rgba(255,255,255,.075);color:#fff}.sidebar-link.active{background:#fff;color:var(--lms-sidebar);box-shadow:0 12px 28px rgba(0,0,0,.16)}.nav-icon{width:20px;height:20px;display:inline-grid;place-items:center;flex:0 0 20px}.nav-icon svg{width:19px;height:19px;stroke:currentColor;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}.sidebar-footer{margin-top:auto;padding:12px 10px;border-top:1px solid var(--lms-sidebar-line);color:var(--lms-sidebar-muted);font-size:12px}.sidebar-footer strong{display:block;color:#e2e8f0;font-size:13px;margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.app-main{min-width:0;flex:1;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:45;height:var(--topbar-h);background:rgba(255,255,255,.88);backdrop-filter:saturate(180%) blur(18px);border-bottom:1px solid var(--lms-line);box-shadow:var(--shadow-xs)}.topbar-inner{height:100%;width:min(var(--container),calc(100% - 40px));margin:0 auto;display:flex;align-items:center;gap:16px;justify-content:space-between}.topbar-left,.topbar-actions{display:flex;align-items:center;gap:10px;min-width:0}.topbar-title{min-width:0}.topbar-title strong{display:block;font-size:15px;font-weight:860;letter-spacing:-.01em;color:var(--lms-ink);line-height:1.2;max-width:360px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-title span{display:block;font-size:12px;color:var(--lms-muted);font-weight:650}.topbar nav{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.topbar nav a{display:inline-flex;align-items:center;min-height:36px;border-radius:10px;padding:8px 10px;color:var(--lms-muted);font-weight:760;font-size:13px}.topbar nav a:hover,.topbar nav a.active{background:var(--lms-brand-soft);color:var(--lms-brand-700)}
.sidebar-toggle{display:none;appearance:none;border:1px solid var(--lms-line);background:#fff;color:var(--lms-ink);border-radius:12px;width:42px;height:42px;align-items:center;justify-content:center;padding:0;box-shadow:var(--shadow-xs)}.sidebar-toggle svg{width:22px;height:22px}.mobile-backdrop{display:none}.top-search{position:relative;min-width:260px}.top-search input{padding-left:38px;min-height:40px;background:#fff;border-radius:999px}.top-search:before{content:"";position:absolute;left:14px;top:50%;width:15px;height:15px;transform:translateY(-50%);opacity:.55;background:currentColor;mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="black" d="M9.5 3a6.5 6.5 0 0 1 5.17 10.44l4.44 4.45-1.42 1.41-4.44-4.44A6.5 6.5 0 1 1 9.5 3Zm0 2a4.5 4.5 0 1 0 0 9a4.5 4.5 0 0 0 0-9Z"/></svg>') center/contain no-repeat}.user-chip{display:flex;align-items:center;gap:9px;padding:5px 7px 5px 5px;border:1px solid var(--lms-line);border-radius:999px;background:#fff;max-width:250px}.avatar{width:30px;height:30px;border-radius:999px;display:grid;place-items:center;background:var(--lms-brand-soft);color:var(--lms-brand-700);font-size:12px;font-weight:900}.user-chip span{font-size:13px;font-weight:760;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.container{width:min(var(--container),calc(100% - 40px));margin:0 auto;padding:28px 0 56px;flex:1}.public-page{background:radial-gradient(circle at top left,rgba(37,99,235,.10),transparent 32%),var(--lms-bg)}.public-page .topbar{height:auto;min-height:72px}.public-page .container{max-width:1180px}.public-page .brand{display:flex;align-items:center;gap:12px;font-weight:900}.public-page .brand-logo{display:none!important}.public-page .brand-mark{display:grid!important}

/* ---------- Typography and layout ---------- */
h1,h2,h3,h4{color:var(--lms-ink);letter-spacing:-.025em;line-height:1.18}h1{font-size:clamp(28px,3vw,42px);margin:0 0 16px}h2{font-size:clamp(20px,2.1vw,26px);margin:0 0 14px}h3{font-size:18px;margin:18px 0 10px}p{margin:0 0 12px}.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:18px;align-items:start}.col-3{grid-column:span 3}.col-4{grid-column:span 4}.col-5{grid-column:span 5}.col-6{grid-column:span 6}.col-7{grid-column:span 7}.col-8{grid-column:span 8}.col-9{grid-column:span 9}.col-12{grid-column:span 12}.split-head,.section-heading,.lms-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:16px}.section-heading{padding-bottom:14px;border-bottom:1px solid var(--lms-line-2)}
.hero{position:relative;overflow:hidden;border:1px solid rgba(37,99,235,.14);background:linear-gradient(135deg,#10233f 0%,#1e3a8a 58%,#0f766e 130%);color:#fff;border-radius:24px;padding:28px 30px;margin:0 0 22px;box-shadow:0 20px 55px rgba(30,64,175,.16)}.hero:after{content:"";position:absolute;right:-90px;top:-90px;width:280px;height:280px;border-radius:999px;background:radial-gradient(circle,rgba(96,165,250,.38),transparent 68%);pointer-events:none}.hero h1{position:relative;color:#fff;margin:0 0 8px;font-weight:880}.hero p{position:relative;color:rgba(255,255,255,.82);max-width:920px}.compact-hero{padding:22px 24px}.landing-hero{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:24px;align-items:center;margin-top:20px}.landing-copy{border:1px solid var(--lms-line);background:#fff;border-radius:28px;padding:34px;box-shadow:var(--shadow-sm)}.landing-copy h1{font-size:clamp(34px,5vw,60px);letter-spacing:-.055em}.eyebrow{display:inline-flex;align-items:center;border:1px solid var(--lms-line);background:var(--lms-brand-soft);color:var(--lms-brand-700);border-radius:999px;padding:6px 10px;font-size:12px;font-weight:850;text-transform:uppercase;letter-spacing:.08em;margin-bottom:14px}.landing-logo-card{min-height:280px;border:1px solid var(--lms-line);border-radius:28px;background:linear-gradient(180deg,#fff,#f8fafc);display:grid;place-items:center;box-shadow:var(--shadow-sm)}.landing-logo-card img,.center-logo{width:82px!important;height:82px!important;border-radius:24px;background:#fff;padding:8px;box-shadow:0 18px 34px rgba(15,23,42,.10);object-fit:contain}.role-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:20px}.role-card{display:block;border:1px solid var(--lms-line);background:#fff;border-radius:24px;padding:24px;box-shadow:var(--shadow-sm);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.role-card:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:#bfdbfe}.role-icon{width:48px;height:48px;border-radius:16px;background:var(--lms-brand-soft);display:grid;place-items:center;margin-bottom:14px;font-size:24px}
.card{background:rgba(255,255,255,.98);border:1px solid var(--lms-line);border-radius:var(--radius-lg);padding:22px;box-shadow:var(--shadow-sm)}.card+.card{margin-top:18px}.card h1,.card h2,.card h3{margin-top:0}.kpi{font-size:40px;font-weight:920;line-height:1;letter-spacing:-.05em;color:var(--lms-ink)}.kpi:after{content:"";display:block;width:40px;height:4px;border-radius:999px;margin-top:12px;background:linear-gradient(90deg,var(--lms-brand),var(--lms-accent))}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.metric-card{border:1px solid var(--lms-line);border-radius:18px;background:#fff;padding:18px;box-shadow:var(--shadow-xs)}.metric-label{font-size:12px;font-weight:820;text-transform:uppercase;letter-spacing:.08em;color:var(--lms-muted)}.metric-value{font-size:30px;font-weight:900;letter-spacing:-.04em;margin-top:8px}.empty-state{border:1px dashed #cbd5e1;background:#fff;border-radius:14px;padding:18px;color:var(--lms-muted);font-weight:650;text-align:left}.skeleton{position:relative;overflow:hidden;background:#e2e8f0;border-radius:10px;color:transparent}.skeleton:after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);animation:shimmer 1.4s infinite}@keyframes shimmer{100%{transform:translateX(100%)}}

/* ---------- Forms and controls ---------- */
label{display:block;margin:14px 0 7px;color:var(--lms-ink-2);font-size:13px;font-weight:780;letter-spacing:.01em}input,select,textarea{width:100%;border:1px solid var(--lms-line);background:#fff;border-radius:12px;min-height:44px;padding:11px 13px;font-size:14px;color:var(--lms-ink);outline:none;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}input::placeholder,textarea::placeholder{color:#94a3b8}textarea{min-height:130px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:#93c5fd;box-shadow:0 0 0 4px rgba(37,99,235,.12);background:#fff}.code-box{text-transform:uppercase;letter-spacing:.14em;font-weight:900;text-align:center;font-size:21px;font-family:var(--font-mono)}.form-row{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px}.field-3{grid-column:span 3}.field-4{grid-column:span 4}.field-6{grid-column:span 6}.field-8{grid-column:span 8}.field-12{grid-column:span 12}.filter-bar,.toolbar,.table-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;border:1px solid var(--lms-line);background:#fff;border-radius:16px;padding:12px;margin:0 0 14px;box-shadow:var(--shadow-xs)}.filter-bar .filters,.toolbar .filters{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.filter-bar input,.filter-bar select,.table-toolbar input,.table-toolbar select{min-height:40px;border-radius:10px}.table-toolbar input[type=search],.filter-search{max-width:340px}.btn,.button,button,input[type=submit],.file-label{appearance:none;border:1px solid transparent;border-radius:11px;background:var(--lms-brand);color:#fff;font-weight:820;padding:10px 14px;min-height:42px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:14px;line-height:1;box-shadow:0 9px 20px rgba(37,99,235,.18);transition:transform .14s ease,background .14s ease,border-color .14s ease,box-shadow .14s ease,opacity .14s ease;vertical-align:middle}.btn:hover,.button:hover,button:hover,input[type=submit]:hover,.file-label:hover{background:var(--lms-brand-600);color:#fff;transform:translateY(-1px);box-shadow:0 12px 26px rgba(37,99,235,.22)}.btn.secondary,button.secondary{background:#334155;color:#fff;box-shadow:0 9px 18px rgba(51,65,85,.15)}.btn.secondary:hover,button.secondary:hover{background:#1e293b}.btn.light,button.light,.button.light{background:#fff;color:var(--lms-ink-2);border-color:var(--lms-line);box-shadow:var(--shadow-xs)}.btn.light:hover,button.light:hover,.button.light:hover{background:var(--lms-bg-subtle);color:var(--lms-ink);box-shadow:var(--shadow-xs)}.btn.danger,button.danger{background:var(--lms-danger);color:#fff;box-shadow:0 9px 18px rgba(180,35,24,.13)}.btn.danger:hover,button.danger:hover{background:#991b1b}.outline-danger{background:#fff!important;color:var(--lms-danger)!important;border-color:#fecaca!important;box-shadow:none!important}.mini-btn{min-height:34px!important;padding:7px 10px!important;font-size:12px!important;border-radius:9px!important}.wide{width:100%}.btn.busy,button.busy,input[type=submit].busy,.file-label.busy{background:#64748b!important;color:#fff!important;cursor:not-allowed!important;opacity:.86;transform:none!important;box-shadow:none!important}.btn.done,button.done,input[type=submit].done{background:var(--lms-success)!important;color:#fff!important}.btn[disabled],button[disabled],input[type=submit][disabled]{opacity:.62;cursor:not-allowed;transform:none!important;box-shadow:none!important}.inline-form{display:inline-flex;align-items:center;gap:7px;margin:3px 2px}.inline-form input,.inline-form select{min-height:36px}.action-row,.table-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.action-grid{display:grid;grid-template-columns:1fr;gap:8px}.action-grid .btn,.action-grid button,.action-grid a{width:100%;justify-content:center}
.notice{padding:13px 15px;border-radius:14px;background:var(--lms-brand-soft);border:1px solid #bfdbfe;margin:14px 0;color:#1e3a8a}.notice strong{font-weight:860}.notice.success{background:var(--lms-success-bg);border-color:#a7f3d0;color:#065f46}.notice.danger{background:var(--lms-danger-bg);border-color:#fecdd3;color:#991b1b}.notice.warn,.notice.warning{background:var(--lms-warning-bg);border-color:#fde68a;color:#92400e}.notice.soft{background:var(--lms-bg-subtle);border-color:var(--lms-line);color:var(--lms-ink-2)}.warning{color:var(--lms-danger);font-weight:820}.badge{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:4px 9px;font-weight:820;font-size:12px;background:#f1f5f9;color:#334155;border:1px solid #e2e8f0;white-space:nowrap}.badge.active,.badge.success{background:var(--lms-success-bg);color:#027a48;border-color:#abefc6}.badge.warn{background:#fff7ed;color:var(--lms-warning);border-color:#fed7aa}.badge.danger{background:#fee4e2;color:#912018;border-color:#fecdca}.badge.dark{background:#e2e8f0;color:#1e293b;border-color:#cbd5e1}.pill-list{display:flex;gap:8px;flex-wrap:wrap}.pill{display:inline-flex;align-items:center;border-radius:999px;background:#f1f5f9;border:1px solid var(--lms-line);padding:5px 9px;font-size:12px;font-weight:760;color:#334155}

/* ---------- Tables and large data ---------- */
.table-wrap{width:100%;overflow:auto;border:1px solid var(--lms-line);border-radius:16px;background:#fff;box-shadow:var(--shadow-xs)}table{width:100%;border-collapse:separate;border-spacing:0;background:#fff;min-width:860px}th,td{border-bottom:1px solid var(--lms-line-2);padding:13px 14px;text-align:left;vertical-align:top}th{position:sticky;top:0;background:#f8fafc;color:#475569;font-size:12px;text-transform:uppercase;letter-spacing:.075em;font-weight:880;z-index:2;white-space:nowrap}th[data-sortable],th.sortable{cursor:pointer}th[data-sortable]:after,th.sortable:after{content:"↕";margin-left:6px;color:#94a3b8;font-size:11px}tr:hover td{background:#fbfdff}tr:last-child td{border-bottom:0}td .btn,td button{padding:8px 10px;min-height:34px;font-size:12px;box-shadow:none}.copy-link{font-family:var(--font-mono);font-size:12px;word-break:break-all;background:#f8fafc;border:1px solid var(--lms-line);padding:9px;border-radius:10px;color:#334155;max-width:420px}.student-link-input{font-family:var(--font-mono);font-size:12px;background:#fff}.message-log{max-height:330px;overflow:auto}.pagination{display:flex;justify-content:flex-end;align-items:center;gap:6px;margin-top:14px}.page-link{min-width:34px;height:34px;border:1px solid var(--lms-line);background:#fff;border-radius:9px;display:inline-grid;place-items:center;font-size:13px;font-weight:750}.page-link.active{background:var(--lms-brand);color:#fff;border-color:var(--lms-brand)}

/* ---------- LMS-specific views ---------- */
.teacher-dashboard .card,.admin-dashboard .card{min-height:100%}.lms-create-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px;align-items:start;margin:16px 0}.lms-control-card{position:sticky;top:calc(var(--topbar-h) + 18px)}.control-card .btn{width:100%;justify-content:center;margin-top:6px}.recipient-panel{margin:18px 0;padding:0;border:0;background:transparent}.main-sync-box{background:#fff;border:1px solid var(--lms-line);border-radius:14px;padding:16px;margin-top:10px;box-shadow:var(--shadow-xs)}.sync-status.private,.main-sync-box .sync-status{display:inline-flex;border-radius:10px;padding:8px 10px;background:var(--lms-success-bg);border:1px solid #a7f3d0;color:#065f46;font-size:12px;font-weight:820}.group-picker-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:10px 0 18px}.group-picker-grid.tall{max-height:520px;overflow:auto;padding-right:4px}.group-pill{display:grid;grid-template-columns:22px minmax(0,1fr);align-items:flex-start;gap:10px;min-height:72px;padding:12px;border:1px solid var(--lms-line);border-radius:14px;background:#fff;box-shadow:var(--shadow-xs);transition:border .12s ease,background .12s ease,box-shadow .12s ease}.group-pill:hover{border-color:#bfdbfe;background:#f8fbff}.group-pill input{width:18px;height:18px;margin-top:2px;accent-color:var(--lms-brand);min-height:18px}.group-pill span{font-size:14px;line-height:1.35;font-weight:760;color:var(--lms-ink-2);word-break:normal}.group-pill small{grid-column:2;color:var(--lms-muted);font-size:12px}.group-pill:has(input:checked){background:var(--lms-brand-soft);border-color:#93c5fd}.student-picker-panel{border:1px solid var(--lms-line);border-radius:16px;padding:12px;background:#fff;margin:8px 0 14px;box-shadow:var(--shadow-xs)}.student-search-results{max-height:360px;overflow:auto;border-radius:14px;background:#f8fafc;padding:10px;border:1px solid var(--lms-line-2);margin-top:10px}.student-picker-toolbar{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;padding:8px 10px;border-radius:12px;background:#fff;border:1px solid var(--lms-line)}.student-check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.student-check-card{min-height:64px;border-radius:12px;background:#fff;border:1px solid var(--lms-line);padding:10px;box-shadow:var(--shadow-xs);display:flex;gap:10px;align-items:flex-start}.student-check-card:hover{border-color:#bfdbfe}.student-check-card:has(input:checked){background:var(--lms-brand-soft);border-color:#93c5fd}.student-check-card input{width:18px;height:18px;margin-top:2px;accent-color:var(--lms-brand);min-height:18px}.student-check-card strong{display:block;font-size:14px}.student-check-card small{display:block;font-size:12px;color:var(--lms-muted)}.optional-search{margin-top:10px;border:1px solid var(--lms-line);border-radius:12px;padding:10px;background:#fff}.optional-search summary{font-weight:780;color:#334155;cursor:pointer}.selected-student-pill{display:inline-grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;border-radius:12px;background:#0f172a;color:#fff;padding:8px 8px 8px 10px;margin:4px;box-shadow:none}.selected-student-pill strong{display:block;font-size:13px}.selected-student-pill small{display:block;color:#cbd5e1;font-size:11px}.selected-student-pill .mini-x{width:24px;height:24px;min-height:24px;padding:0;border-radius:8px;background:#fff;color:#0f172a;box-shadow:none}.assignment-list{display:grid;gap:14px}.assignment-card{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;border:1px solid var(--lms-line);border-radius:18px;background:#fff;padding:16px;box-shadow:var(--shadow-sm)}.assignment-title-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;border-bottom:1px solid var(--lms-line-2);padding-bottom:10px;margin-bottom:12px}.assignment-title-row h3{width:100%;margin:4px 0 0;font-size:18px}.assignment-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.assignment-meta>div{border:1px solid var(--lms-line-2);background:#f8fafc;border-radius:12px;padding:10px;min-height:58px}.assignment-meta span,.assignment-link span,.attempt-limit-card label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--lms-muted);font-weight:830;margin:0 0 4px}.assignment-meta strong{font-size:14px;word-break:break-word}.assignment-link{margin-top:10px;background:#f8fafc;border:1px solid var(--lms-line-2);border-radius:12px;padding:10px}.copy-link-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.assignment-side{border-left:1px solid var(--lms-line-2);padding-left:16px}.attempt-limit-card{background:#f8fafc;border:1px solid var(--lms-line-2);border-radius:12px;padding:10px;margin-bottom:10px}.attempt-limit-row{display:grid;grid-template-columns:82px minmax(0,1fr);gap:8px}.attempt-usage-tile small,.attempt-limit-help{color:var(--lms-muted);font-size:12px}.attempt-card{border:1px solid var(--lms-line);border-radius:18px;background:#fff;padding:16px;box-shadow:var(--shadow-sm);margin-bottom:14px}.attempt-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.receipt-box{border:1px solid var(--lms-line);border-radius:14px;background:#fff;padding:12px;margin:10px 0}.audio-review-list audio{width:100%;margin-top:8px}

/* ---------- Exam editor / exam-taking UI ---------- */
.question{border:1px solid var(--lms-line);border-radius:18px;background:#fff;padding:18px;margin:16px 0;box-shadow:var(--shadow-xs)}.question-title{font-weight:850;margin:8px 0 13px;color:var(--lms-ink)}.reading-text{background:#f8fafc;border:1px solid var(--lms-line);border-radius:14px;padding:16px;margin:12px 0;line-height:1.65}.options label{font-weight:650;margin:8px 0;padding:12px 13px;border:1px solid var(--lms-line);border-radius:14px;background:#fff;cursor:pointer;transition:.14s ease}.options label:hover{border-color:#93c5fd;background:var(--lms-brand-soft)}.options input,.inline-options input{width:auto;min-height:0;margin-right:8px;accent-color:var(--lms-brand)}.inline-options label{display:inline-flex;align-items:center;width:auto;margin:6px 8px 6px 0;padding:9px 12px;border:1px solid var(--lms-line);border-radius:999px;background:#fff;cursor:pointer;font-weight:700}.exam-shell{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:20px;align-items:start}.exam-side{position:sticky;top:calc(var(--topbar-h) + 18px)}.timer{font-size:40px;font-weight:920;color:var(--lms-ink);letter-spacing:-.05em}.progress{height:10px;background:#e2e8f0;border-radius:999px;overflow:hidden}.progress span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--lms-brand),var(--lms-accent))}.section-title{font-size:24px;color:var(--lms-ink);margin:30px 0 12px;border-left:5px solid var(--lms-brand);padding-left:12px}.audio-status{font-size:12px;color:var(--lms-muted);margin-top:8px}.audio-answer-box{border:1px solid var(--lms-line);border-radius:16px;background:#f8fafc;padding:14px;margin-top:12px}.audio-answer-actions{display:flex;gap:8px;flex-wrap:wrap}.audio-progress-wrap{height:9px;background:#e2e8f0;border-radius:999px;overflow:hidden;margin:10px 0}.audio-progress-bar{height:100%;width:0;background:linear-gradient(90deg,var(--lms-brand),var(--lms-accent));transition:width .2s ease}.exam-integrity-bar{position:sticky;top:var(--topbar-h);z-index:35;background:#fff7ed;border:1px solid #fed7aa;color:#7c2d12;border-radius:16px;padding:12px 14px;margin-bottom:16px;box-shadow:var(--shadow-xs)}.integrity-overlay,.secure-start-gate{position:fixed;inset:0;background:rgba(15,23,42,.68);backdrop-filter:blur(8px);z-index:100;display:none;align-items:center;justify-content:center;padding:20px}.integrity-overlay.active,.secure-start-gate.active{display:flex}.integrity-card{width:min(560px,100%);border:1px solid var(--lms-line);border-radius:24px;background:#fff;padding:26px;box-shadow:0 26px 80px rgba(15,23,42,.28);text-align:left}.secure-card{text-align:center}.secure-card .center-logo{margin:0 auto 16px!important}.login-box{max-width:520px;margin:44px auto}.student-entry-wrap{display:grid;grid-template-columns:minmax(0,540px) minmax(280px,1fr);gap:18px;align-items:start}.info-card{position:sticky;top:calc(var(--topbar-h) + 18px)}

/* ---------- Tabs / charts / results ---------- */
.tabs{display:flex;gap:6px;border-bottom:1px solid var(--lms-line);margin-bottom:16px;overflow:auto}.tab,.tab-button{border:0;background:transparent;color:var(--lms-muted);box-shadow:none;border-radius:10px 10px 0 0;padding:10px 12px;font-weight:820}.tab.active,.tab-button.active{background:#fff;color:var(--lms-brand-700);border:1px solid var(--lms-line);border-bottom-color:#fff}.score-bar{height:10px;background:#e2e8f0;border-radius:999px;overflow:hidden}.score-bar span{display:block;height:100%;background:linear-gradient(90deg,var(--lms-danger),var(--lms-warning),var(--lms-success));border-radius:999px}.chart-card{border:1px solid var(--lms-line);border-radius:18px;background:#fff;padding:18px;box-shadow:var(--shadow-xs)}.result-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.result-tile{border:1px solid var(--lms-line);border-radius:16px;background:#fff;padding:14px}.result-tile strong{display:block;font-size:24px;letter-spacing:-.035em}

/* ---------- Responsive ---------- */
@media(max-width:1180px){.top-search{display:none}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.col-3{grid-column:span 6}.col-4{grid-column:span 6}.col-5,.col-6,.col-7,.col-8,.col-9{grid-column:span 12}.lms-create-layout{grid-template-columns:1fr}.lms-control-card,.info-card{position:static}.assignment-card{grid-template-columns:1fr}.assignment-side{border-left:0;border-top:1px solid var(--lms-line-2);padding-left:0;padding-top:12px}.group-picker-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.result-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.landing-hero{grid-template-columns:1fr}.landing-logo-card{display:none}}
@media(max-width:900px){:root{--topbar-h:64px}.sidebar-toggle{display:inline-flex}.app-shell{display:block}.sidebar{position:fixed;left:0;top:0;transform:translateX(-104%);transition:transform .18s ease;width:min(88vw,320px);height:100dvh}.sidebar-open .sidebar{transform:translateX(0)}.mobile-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.45);z-index:55}.sidebar-open .mobile-backdrop{display:block}.topbar-inner{width:calc(100% - 24px)}.container{width:calc(100% - 24px);padding:18px 0 42px}.topbar-actions nav{display:none}.hero{border-radius:18px;padding:20px}.card{border-radius:18px;padding:16px}.grid{gap:14px}.form-row{grid-template-columns:1fr}.field-3,.field-4,.field-6,.field-8,.field-12{grid-column:span 1}.student-entry-wrap,.exam-shell{grid-template-columns:1fr}.exam-side{position:static}.exam-integrity-bar{top:64px}.student-check-grid{grid-template-columns:1fr}.copy-link-row{grid-template-columns:1fr}.attempt-limit-row{grid-template-columns:1fr}.role-grid{grid-template-columns:1fr}.landing-copy{padding:24px}.split-head,.section-heading,.lms-card-head{display:block}.table-toolbar,.filter-bar,.toolbar{align-items:stretch}.table-toolbar input,.filter-bar input,.filter-bar select{max-width:none}.group-picker-grid{grid-template-columns:1fr}}
@media(max-width:620px){.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-12{grid-column:span 12}.metric-grid,.result-grid{grid-template-columns:1fr}.topbar-title strong{max-width:190px}.user-chip span{display:none}.hero h1{font-size:25px}.kpi{font-size:34px}.assignment-meta{grid-template-columns:1fr}.audio-answer-actions .btn,.audio-answer-actions button{width:100%}.question{padding:14px}.landing-copy h1{font-size:34px}}
@media print{.topbar,.sidebar,.mobile-backdrop,.sidebar-toggle,.no-print,.footer{display:none!important}.app-shell,.app-main{display:block}.container{width:100%;padding:0}.card,.question,.table-wrap{box-shadow:none!important;border-color:#cbd5e1}.print-only{display:block!important}body{background:#fff;color:#000}}

.lms-loader{position:fixed;right:18px;bottom:18px;z-index:120;background:#0f172a;color:#fff;border-radius:14px;padding:12px 14px;font-weight:800;font-size:13px;box-shadow:0 18px 50px rgba(15,23,42,.22)}

/* ---------- v35 enterprise hardening + dashboard polish ---------- */
.hero-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;position:relative;z-index:1}.dashboard-hero{display:flex;justify-content:space-between;align-items:flex-end;gap:22px}.insight-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;margin:0 0 22px}.insight-card{border:1px solid var(--lms-line);background:#fff;border-radius:20px;padding:18px;box-shadow:var(--shadow-sm);min-height:126px;display:flex;flex-direction:column;justify-content:space-between}.insight-card span{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--lms-muted);font-weight:850}.insight-card strong{font-size:34px;line-height:1;color:var(--lms-ink);letter-spacing:-.04em}.insight-card small{color:var(--lms-muted);font-weight:650}.warning-card{background:linear-gradient(180deg,#fff,#fffbeb)}.danger-card{background:linear-gradient(180deg,#fff,#fff1f2)}.dashboard-grid{align-items:stretch}.timeline-list{display:grid;gap:12px}.timeline-item{display:grid;grid-template-columns:16px 1fr;gap:12px;padding:12px;border:1px solid var(--lms-line-2);border-radius:16px;background:linear-gradient(180deg,#fff,#f8fafc)}.timeline-dot{width:11px;height:11px;border-radius:999px;background:var(--lms-brand);margin-top:8px;box-shadow:0 0 0 5px var(--lms-brand-soft)}.timeline-head{display:flex;justify-content:space-between;gap:12px;align-items:center}.metric-row{display:flex;gap:10px;flex-wrap:wrap;font-size:13px;color:var(--lms-muted)}.metric-row span{padding:5px 8px;border-radius:999px;background:#fff;border:1px solid var(--lms-line-2)}.queue-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--lms-line-2);border-radius:14px;background:#fff;margin-bottom:10px}.queue-row:hover{border-color:rgba(37,99,235,.35);box-shadow:var(--shadow-xs)}.queue-row strong{display:block}.queue-row small{display:block;color:var(--lms-muted);margin-top:2px}.queue-row em{font-style:normal;color:var(--lms-muted);font-size:12px;white-space:nowrap}.compact-notice{padding:10px 12px;border-radius:12px;margin:10px 0}.copy-link-row input.student-link-input{font-family:var(--font-mono);font-size:12px}.sidebar-toggle{display:inline-flex}
@media (min-width:1025px){body.sidebar-collapsed .sidebar{width:82px;padding-left:10px;padding-right:10px}body.sidebar-collapsed .brand-copy,body.sidebar-collapsed .sidebar-section-label,body.sidebar-collapsed .sidebar-link span:not(.nav-icon),body.sidebar-collapsed .sidebar-footer span,body.sidebar-collapsed .sidebar-footer strong{display:none}body.sidebar-collapsed .sidebar-brand{justify-content:center;padding-left:0;padding-right:0}body.sidebar-collapsed .sidebar-link{justify-content:center;padding-left:0;padding-right:0}body.sidebar-collapsed .sidebar-footer{min-height:48px}.sidebar{transition:width .18s ease,padding .18s ease}}
.exam-stepper{position:sticky;top:calc(var(--topbar-h) + 8px);z-index:25;background:rgba(255,255,255,.92);backdrop-filter:blur(12px);border:1px solid var(--lms-line);border-radius:18px;padding:10px;margin:0 0 16px;box-shadow:var(--shadow-xs);display:flex;align-items:center;gap:8px;overflow:auto}.exam-stepper button{white-space:nowrap;border:1px solid var(--lms-line);background:#fff;border-radius:999px;padding:8px 12px;font-weight:800;color:var(--lms-muted)}.exam-stepper button.active{background:var(--lms-brand);border-color:var(--lms-brand);color:#fff}.exam-panel[hidden]{display:none!important}.exam-step-actions{display:flex;justify-content:space-between;gap:10px;margin:16px 0}.exam-step-actions .btn{min-width:130px}.secure-start-gate .secure-card{max-width:620px}.table-pagination{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin:10px 0}.table-pagination button{border:1px solid var(--lms-line);background:#fff;border-radius:10px;padding:6px 10px;font-weight:800}.table-pagination button:disabled{opacity:.45;cursor:not-allowed}
@media (max-width:1180px){.insight-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-hero{align-items:flex-start;flex-direction:column}.dashboard-grid .col-7,.dashboard-grid .col-5{grid-column:span 12}}
@media (max-width:720px){.insight-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.insight-card{padding:14px;min-height:110px}.insight-card strong{font-size:28px}.hero-actions{width:100%}.hero-actions .btn{flex:1}.exam-stepper{top:8px;border-radius:14px}.timeline-head{align-items:flex-start;flex-direction:column}}

/* ======================================================================
   v36 Premium LMS polish + large student picker hardening
   Intent: keep the legacy PHP structure, but make key flows feel like a
   modern European education SaaS. This layer is intentionally additive so
   older markup keeps working.
   ====================================================================== */
:root{
  --lms-navy-950:#081526;
  --lms-navy-900:#0b1f35;
  --lms-blue-800:#174577;
  --lms-teal-500:#14b8a6;
  --lms-warm-50:#fbf8f3;
  --lms-warm-100:#f4efe7;
  --lms-card-glow:0 1px 0 rgba(255,255,255,.78) inset,0 20px 60px rgba(8,21,38,.08);
  --lms-focus:0 0 0 4px rgba(20,184,166,.18);
}
body{background:
  radial-gradient(circle at 12% -12%,rgba(20,184,166,.12),transparent 31rem),
  radial-gradient(circle at 88% -18%,rgba(37,99,235,.13),transparent 34rem),
  linear-gradient(180deg,#f8fafc 0%,#f4f7fb 48%,#f8f5ef 100%);
}
body.public-page{background:
  radial-gradient(circle at 8% 0%,rgba(20,184,166,.12),transparent 33rem),
  radial-gradient(circle at 90% 5%,rgba(37,99,235,.14),transparent 32rem),
  linear-gradient(180deg,#f8fafc,#f5f0e8);
}
.card,.question,.chart-card,.assignment-card,.attempt-card,.receipt-box,.grading-panel,.student-entry-card,.info-card{
  border-color:rgba(148,163,184,.28)!important;
  background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(255,255,255,.92));
  box-shadow:var(--lms-card-glow);
}
.card:hover,.assignment-card:hover,.attempt-card:hover,.student-check-card:hover,.group-pill:hover{border-color:rgba(20,184,166,.34)!important;box-shadow:0 1px 0 rgba(255,255,255,.78) inset,0 24px 70px rgba(8,21,38,.10)}
.hero{background:
  linear-gradient(135deg,rgba(8,21,38,.98),rgba(23,69,119,.97) 54%,rgba(15,118,110,.96)),
  radial-gradient(circle at 82% 18%,rgba(255,255,255,.24),transparent 18rem);
  box-shadow:0 28px 80px rgba(8,21,38,.18);
}
.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.10),transparent 30%,rgba(255,255,255,.07));opacity:.72;pointer-events:none}
.hero h1,.hero p,.hero .hero-actions{z-index:1}
button,.btn,input[type="submit"]{transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background .16s ease,color .16s ease}
button:hover,.btn:hover,input[type="submit"]:hover{transform:translateY(-1px)}
button:active,.btn:active,input[type="submit"]:active{transform:translateY(0)}
input:focus,select:focus,textarea:focus,button:focus-visible,.btn:focus-visible{outline:0!important;box-shadow:var(--lms-focus)!important;border-color:rgba(20,184,166,.65)!important}
input,select,textarea{background:rgba(255,255,255,.92);border-color:rgba(148,163,184,.35)}
textarea{resize:vertical;min-height:132px}
.sidebar{background:
  linear-gradient(180deg,rgba(8,21,38,.98),rgba(11,31,53,.99) 58%,rgba(7,25,44,.99)),
  radial-gradient(circle at top right,rgba(20,184,166,.18),transparent 16rem);
}
.sidebar-link{position:relative}.sidebar-link:after{content:"";position:absolute;left:10px;right:10px;bottom:5px;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.08),transparent);opacity:0}.sidebar-link:hover:after{opacity:1}
.brand-symbol{background:linear-gradient(135deg,#2563eb,#14b8a6);box-shadow:0 15px 36px rgba(20,184,166,.20)}
.topbar{background:rgba(255,255,255,.82);backdrop-filter:saturate(190%) blur(22px)}
.kpi,.score-tile strong,.insight-card strong{font-variant-numeric:tabular-nums}
.notice{border-left-width:4px}.notice.success{background:linear-gradient(90deg,rgba(236,253,245,.96),rgba(255,255,255,.92))}.notice.danger{background:linear-gradient(90deg,rgba(255,241,242,.96),rgba(255,255,255,.92))}.notice.warning,.notice.warn{background:linear-gradient(90deg,rgba(255,251,235,.98),rgba(255,255,255,.92))}

/* Teacher creation flow */
.lms-create-layout{container-type:inline-size}.recipient-panel{border:1px solid rgba(148,163,184,.28);border-radius:22px;padding:18px;background:linear-gradient(180deg,#fff,#fbfcfe);box-shadow:inset 0 1px 0 rgba(255,255,255,.8)}
.main-sync-box{display:grid;gap:14px}.sync-status{border-radius:14px;padding:10px 12px}.sync-status.ok{background:#ecfdf5;color:#065f46}.sync-status.bad{background:#fff1f2;color:#991b1b}
.picker-actionbar,.student-picker-controls,.student-picker-meta,.student-picker-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.picker-actionbar,.student-picker-controls{padding:10px;border:1px solid rgba(148,163,184,.22);background:rgba(248,250,252,.8);border-radius:16px}.picker-actionbar input,.student-picker-controls input{flex:1 1 220px;min-width:0}.picker-actionbar .btn,.student-picker-controls .btn{white-space:nowrap}.picker-count,.student-picker-meta span{font-size:12px;font-weight:850;color:var(--lms-muted);letter-spacing:.01em}.student-picker-meta{justify-content:space-between;padding:2px 4px 0}.student-picker-panel{display:grid;gap:12px;border:1px solid rgba(37,99,235,.12);border-radius:22px;background:linear-gradient(180deg,rgba(239,246,255,.58),rgba(255,255,255,.8));padding:14px;container-type:inline-size}.student-picker-controls select{flex:1 1 260px}.student-search-results{min-height:116px;border:1px dashed rgba(148,163,184,.42);border-radius:18px;background:rgba(255,255,255,.72);padding:12px;overflow:hidden}.student-picker-toolbar{justify-content:space-between;margin-bottom:10px;padding:8px 8px 10px;border-bottom:1px solid rgba(226,232,240,.9)}.student-picker-toolbar strong{font-size:13px;color:var(--lms-ink)}.student-check-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(245px,1fr));gap:10px;max-height:460px;overflow:auto;padding:2px;scrollbar-width:thin}.student-check-card{display:flex;gap:10px;align-items:flex-start;min-height:72px;border:1px solid rgba(148,163,184,.28);border-radius:16px;padding:12px;background:#fff;cursor:pointer;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.student-check-card input{width:18px;min-height:18px;margin-top:3px;accent-color:var(--lms-accent)}.student-check-card span{min-width:0}.student-check-card strong{display:block;font-size:14px;line-height:1.25;overflow:hidden;text-overflow:ellipsis}.student-check-card small{display:block;color:var(--lms-muted);font-size:12px;line-height:1.3;margin-top:3px;overflow:hidden;text-overflow:ellipsis}.student-check-card:has(input:checked){border-color:rgba(20,184,166,.7);background:linear-gradient(180deg,#ecfdf5,#fff);box-shadow:0 10px 28px rgba(20,184,166,.10)}.student-check-card:focus-visible{box-shadow:var(--lms-focus);outline:0}.selected-students-box{display:flex;gap:8px;flex-wrap:wrap;min-height:0}.selected-students-box.has-selected{padding:10px;border:1px solid rgba(20,184,166,.22);background:rgba(236,253,245,.62);border-radius:16px}.selected-student-pill{display:inline-flex;align-items:center;gap:9px;max-width:100%;padding:8px 8px 8px 11px;border:1px solid rgba(20,184,166,.32);border-radius:999px;background:#fff;box-shadow:0 8px 20px rgba(15,23,42,.05)}.selected-student-pill span{min-width:0}.selected-student-pill strong{font-size:12px}.selected-student-pill small{display:block;max-width:230px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--lms-muted);font-size:11px}.mini-x{display:grid;place-items:center;width:24px;height:24px;min-height:24px;border:0;border-radius:999px;background:#f1f5f9;color:#334155;padding:0;box-shadow:none}.mini-x:hover{background:#fee2e2;color:#991b1b}.load-more-students{width:100%;margin-top:12px}.picker-loading{display:grid;place-items:center;min-height:86px;color:var(--lms-muted);font-weight:850}.picker-loading:before{content:"";display:inline-block;width:18px;height:18px;margin-right:8px;border-radius:999px;border:2px solid #cbd5e1;border-top-color:var(--lms-accent);animation:lmsSpin .72s linear infinite;vertical-align:-4px}@keyframes lmsSpin{to{transform:rotate(360deg)}}
.group-actionbar{margin-bottom:10px}.group-picker-grid{max-height:330px;overflow:auto;padding:2px;scrollbar-width:thin}.group-pill{transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease;background:#fff}.group-pill input{accent-color:var(--lms-brand)}.group-pill:has(input:checked){background:linear-gradient(180deg,#eff6ff,#fff);border-color:rgba(37,99,235,.55);box-shadow:0 12px 28px rgba(37,99,235,.08)}

/* Grading */
.grade-live-summary{position:sticky;top:calc(var(--topbar-h) + 10px);z-index:32;backdrop-filter:blur(16px);background:rgba(248,250,252,.72);border:1px solid rgba(226,232,240,.75);border-radius:22px;padding:10px;box-shadow:0 16px 45px rgba(8,21,38,.08)}
.score-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.score-tile{border:1px solid rgba(148,163,184,.28);border-radius:18px;background:linear-gradient(180deg,#fff,#f8fafc);padding:14px;box-shadow:var(--shadow-xs)}.score-tile span{display:block;color:var(--lms-muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em;font-weight:900}.score-tile strong{display:block;font-size:26px;letter-spacing:-.04em;margin-top:4px;color:var(--lms-ink)}.grading-review-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.grading-panel{padding:16px;border-radius:22px}.grading-answer-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.9fr);gap:14px;border:1px solid rgba(148,163,184,.26);border-radius:18px;background:#fff;padding:14px;margin:0 0 12px}.grading-question p,.grading-answer p,.answer-prompt{white-space:pre-wrap}.grading-answer{border-left:1px solid rgba(226,232,240,.9);padding-left:14px}.grading-answer>span{display:inline-flex;margin-bottom:6px;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--lms-muted);font-weight:900}.point-box{display:flex;align-items:center;gap:8px;margin-top:12px;padding:10px;border:1px solid rgba(148,163,184,.24);border-radius:14px;background:#f8fafc}.point-box input{max-width:92px;min-height:40px;text-align:center;font-weight:900;font-variant-numeric:tabular-nums}.point-box em{font-style:normal;color:var(--lms-muted);font-weight:850}.sticky-grade-actions,.sticky-save{position:sticky;bottom:12px;z-index:33;margin-top:18px;padding:10px;border:1px solid rgba(148,163,184,.24);border-radius:18px;background:rgba(255,255,255,.86);backdrop-filter:blur(18px);box-shadow:0 20px 60px rgba(8,21,38,.13);display:flex;gap:10px;flex-wrap:wrap}.auto-review-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;max-height:620px;overflow:auto;padding:2px}.auto-review-card{border:1px solid rgba(148,163,184,.26);border-radius:18px;padding:12px;background:#fff}.auto-review-card.correct{border-color:rgba(4,120,87,.26)}.auto-review-card.wrong{border-color:rgba(180,35,24,.22)}.auto-review-head{display:grid;gap:8px}.option-review-list{display:grid;gap:6px;margin:10px 0}.option-review{border:1px solid rgba(226,232,240,.9);border-radius:12px;padding:8px;background:#f8fafc;font-size:13px}.option-review.is-correct{background:#ecfdf5;border-color:rgba(4,120,87,.26)}.option-review.is-student{box-shadow:inset 0 0 0 2px rgba(37,99,235,.20)}

/* Exam taking */
.exam-shell{align-items:start}.exam-side{border-top:5px solid var(--lms-accent)}.timer{font-size:clamp(38px,5vw,58px);letter-spacing:-.06em;font-weight:950;font-variant-numeric:tabular-nums;color:var(--lms-navy-950)}.timer.low{color:var(--lms-danger)}.timer.warn{color:var(--lms-warning)}.question{position:relative}.question:focus-within{box-shadow:var(--lms-focus),var(--lms-card-glow)}.options label{border:1px solid rgba(148,163,184,.24);border-radius:14px;padding:11px 12px;background:#fff;transition:border-color .16s ease,background .16s ease,transform .16s ease}.options label:hover{border-color:rgba(37,99,235,.35);background:#f8fafc}.options label:has(input:checked){border-color:rgba(20,184,166,.65);background:#ecfdf5}.secure-start-gate,.integrity-overlay{backdrop-filter:blur(14px)}.integrity-card{border-top:5px solid var(--lms-accent)}

/* Results/admin tables */
.table-toolbar{border:1px solid rgba(148,163,184,.24);background:rgba(255,255,255,.78);backdrop-filter:blur(14px);border-radius:16px;padding:10px;margin:0 0 10px}.table-wrap{border-radius:18px;border:1px solid rgba(148,163,184,.26);box-shadow:var(--shadow-xs)}table th{background:#f8fafc;color:#334155;text-transform:uppercase;font-size:11px;letter-spacing:.07em}table tr:hover td{background:#fbfdff}.badge{font-weight:900;letter-spacing:.01em}

@container (max-width:760px){.student-check-grid{grid-template-columns:1fr}.grading-answer-card{grid-template-columns:1fr}.grading-answer{border-left:0;border-top:1px solid rgba(226,232,240,.9);padding-left:0;padding-top:12px}}
@media(max-width:980px){.score-grid,.grading-review-grid{grid-template-columns:1fr}.grade-live-summary{position:static}.student-picker-controls{display:grid}.student-picker-controls select,.student-picker-controls input{width:100%}.sticky-grade-actions,.sticky-save{bottom:8px}.auto-review-grid{max-height:none}}
@media(max-width:620px){.picker-actionbar{display:grid}.picker-actionbar input,.picker-actionbar .btn{width:100%}.student-picker-meta{align-items:flex-start;flex-direction:column}.student-check-grid{max-height:380px}.selected-student-pill{width:100%;justify-content:space-between;border-radius:14px}.selected-student-pill small{max-width:calc(100vw - 120px)}.score-tile strong{font-size:22px}.grading-answer-card{padding:12px}.sticky-grade-actions .btn,.sticky-grade-actions button,.sticky-save .btn,.sticky-save button{width:100%}}
@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}}
/* v40 hotfix: selected student chip text visibility
   Fixes white student name on white chip caused by old .selected-student-pill color inheritance. */

.selected-students-box .selected-student-pill,
.selected-student-pill {
  color: #0f172a !important;
  background: #ffffff !important;
  border: 1px solid rgba(20, 184, 166, 0.34) !important;
}

.selected-students-box .selected-student-pill span,
.selected-student-pill span {
  color: #0f172a !important;
}

.selected-students-box .selected-student-pill strong,
.selected-student-pill strong {
  display: block !important;
  color: #0f172a !important;
  font-weight: 850 !important;
  font-size: 12.5px !important;
  line-height: 1.2 !important;
  max-width: 230px !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

.selected-students-box .selected-student-pill small,
.selected-student-pill small {
  display: block !important;
  color: #64748b !important;
  font-size: 11px !important;
  line-height: 1.25 !important;
  max-width: 260px !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

.selected-students-box .selected-student-pill .mini-x,
.selected-student-pill .mini-x {
  background: #f1f5f9 !important;
  color: #334155 !important;
}

.selected-students-box .selected-student-pill .mini-x:hover,
.selected-student-pill .mini-x:hover {
  background: #fee2e2 !important;
  color: #991b1b !important;
}

/* v41 Renao brand alignment + header/footer cleanup
   Uses the real RÉ NAO logo direction: deep navy, soft rose, controlled teal. */
:root{
  --lms-bg:#f7f8fb;
  --lms-bg-subtle:#fafbfc;
  --lms-surface:#ffffff;
  --lms-ink:#081526;
  --lms-ink-2:#172337;
  --lms-muted:#637083;
  --lms-line:#e5e9f0;
  --lms-line-2:#eef2f6;
  --lms-brand:#e879a6;
  --lms-brand-600:#db5f94;
  --lms-brand-700:#b83f78;
  --lms-brand-soft:#fff1f7;
  --lms-accent:#14b8a6;
  --lms-accent-soft:#eefdfa;
  --lms-sidebar:#081526;
  --lms-sidebar-2:#0b1f35;
  --lms-focus:0 0 0 4px rgba(232,121,166,.18);
  --brand:var(--lms-brand);
  --brand-600:var(--lms-brand-600);
  --brand-700:var(--lms-brand-700);
  --brand-soft:var(--lms-brand-soft);
}

body,
body.public-page{
  background:
    radial-gradient(circle at 10% -10%,rgba(232,121,166,.13),transparent 32rem),
    radial-gradient(circle at 92% -12%,rgba(20,184,166,.10),transparent 34rem),
    linear-gradient(180deg,#fbfcfe 0%,#f7f8fb 52%,#f6f1f4 100%) !important;
}

.app-shell{
  background:
    radial-gradient(circle at 90% -10%,rgba(232,121,166,.10),transparent 34rem),
    linear-gradient(180deg,#f8fafc,#f7f8fb) !important;
}

.sidebar{
  background:
    radial-gradient(circle at 100% 0,rgba(232,121,166,.16),transparent 15rem),
    linear-gradient(180deg,#081526 0%,#0b1f35 62%,#071525 100%) !important;
}

.brand-symbol{
  background:linear-gradient(135deg,#e879a6 0%,#14b8a6 100%) !important;
  box-shadow:0 16px 34px rgba(232,121,166,.22) !important;
}

.topbar{
  background:rgba(255,255,255,.92) !important;
  border-bottom:1px solid rgba(229,233,240,.92) !important;
}

.public-page .topbar-inner,
.topbar-inner{
  width:min(var(--container),calc(100% - 48px));
}

.public-page .brand{
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
  color:var(--lms-ink);
}

.public-page .brand-text,
.public-page .brand > div{
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-width:0;
  line-height:1.05;
}

.public-page .brand strong,
.brand-copy strong{
  display:block;
  color:var(--lms-ink);
  font-weight:900;
  letter-spacing:.11em;
  text-transform:uppercase;
  white-space:nowrap;
}

.public-page .brand span span,
.public-page .brand-text > span{
  display:block;
  color:var(--lms-muted);
  font-size:12px;
  font-weight:700;
  letter-spacing:.02em;
  margin-top:4px;
  white-space:nowrap;
}

.sidebar .brand-copy strong{color:#ffffff}
.sidebar .brand-copy span{color:#aeb9c8}

.footer{
  width:min(var(--container),calc(100% - 48px));
  margin:0 auto;
  padding:18px 0 26px;
  color:#6b7280;
  font-size:13px;
  font-weight:650;
  border-top:1px solid rgba(229,233,240,.72);
}

.has-sidebar .footer{
  width:min(var(--container),calc(100% - 40px));
  padding-bottom:24px;
}

.hero{
  background:
    linear-gradient(135deg,#081526 0%,#0b1f35 58%,#164e63 125%) !important;
  border:1px solid rgba(232,121,166,.16) !important;
  box-shadow:0 22px 55px rgba(8,21,38,.13) !important;
}
.hero:after{background:radial-gradient(circle,rgba(232,121,166,.20),transparent 68%) !important}

button,.btn,input[type="submit"]{
  background:var(--lms-brand);
  border-color:var(--lms-brand);
}
button.secondary,.btn.secondary,
button.light,.btn.light{
  background:#fff;
  border-color:var(--lms-line);
  color:var(--lms-ink-2);
}
button:hover,.btn:hover,input[type="submit"]:hover{
  border-color:var(--lms-brand-600);
}
.topbar nav a:hover,.topbar nav a.active,
.tab.active,.tab-button.active{
  background:var(--lms-brand-soft) !important;
  color:var(--lms-brand-700) !important;
}

.kpi:after,
.progress span,
.audio-progress-bar{
  background:linear-gradient(90deg,var(--lms-brand),var(--lms-accent)) !important;
}

.eyebrow,
.avatar,
.role-icon{
  background:var(--lms-brand-soft) !important;
  color:var(--lms-brand-700) !important;
}

.student-check-card strong,
.group-pill span,
.selected-student-pill strong{
  color:var(--lms-ink) !important;
}
.student-check-card small,
.selected-student-pill small{
  color:var(--lms-muted) !important;
}
.student-check-card:has(input:checked),
.group-pill:has(input:checked){
  background:linear-gradient(180deg,#fff7fb,#fff) !important;
  border-color:rgba(232,121,166,.55) !important;
  box-shadow:0 12px 28px rgba(232,121,166,.10) !important;
}
.student-check-card input,
.group-pill input{accent-color:var(--lms-brand) !important}

.selected-students-box.has-selected{
  border-color:rgba(232,121,166,.24) !important;
  background:rgba(255,241,247,.68) !important;
}
.selected-students-box .selected-student-pill,
.selected-student-pill{
  background:#fff !important;
  border-color:rgba(232,121,166,.34) !important;
}

@media(max-width:900px){
  .public-page .topbar-inner,
  .topbar-inner,
  .footer{width:calc(100% - 24px)}
  .public-page .brand strong{max-width:190px;overflow:hidden;text-overflow:ellipsis}
  .public-page .brand span span,.public-page .brand-text > span{font-size:11px}
}
.renao-center-logo{
  width:180px !important;
  height:180px !important;
  border-radius:28px !important;
  padding:14px !important;
  object-fit:contain !important;
}
@media(max-width:1180px){.renao-center-logo{width:150px !important;height:150px !important}}

/* v42: RÉ NAO LMS shell + teacher UX aligned with approved mockup */
:root{
  --lms-bg:#f7f8fb;
  --lms-page:#fbfcfe;
  --lms-surface:#ffffff;
  --lms-ink:#101828;
  --lms-ink-2:#243247;
  --lms-muted:#667085;
  --lms-line:#e7eaf0;
  --lms-line-2:#f0f2f6;
  --lms-brand:#e56f9f;
  --lms-brand-600:#d9568b;
  --lms-brand-700:#b83f78;
  --lms-brand-soft:#fff1f7;
  --lms-navy:#081526;
  --lms-navy-2:#0b1f35;
  --lms-teal:#40c7bd;
  --lms-teal-soft:#edfdfa;
  --lms-blue:#3388f5;
  --lms-blue-soft:#eef6ff;
  --lms-gold:#f5b544;
  --lms-gold-soft:#fff7e8;
  --shadow-soft:0 18px 55px rgba(16,24,40,.08);
  --shadow-card:0 1px 0 rgba(255,255,255,.9) inset,0 18px 48px rgba(16,24,40,.065);
  --radius:16px;
  --radius-lg:22px;
  --radius-xl:28px;
  --container:1560px;
  --sidebar-w:270px;
  --topbar-h:74px;
}
body,body.public-page{background:linear-gradient(180deg,#fbfcfe 0%,#f8fafc 54%,#f7f4f6 100%)!important;color:var(--lms-ink)}
.app-shell{background:linear-gradient(180deg,#fbfcfe 0%,#f7f8fb 100%)!important}
.container{width:min(var(--container),calc(100% - 44px));padding:28px 0 44px}.card,.assignment-card,.attempt-card,.question,.receipt-box,.student-entry-card,.info-card{border:1px solid rgba(231,234,240,.95)!important;border-radius:var(--radius-xl)!important;background:rgba(255,255,255,.92)!important;box-shadow:var(--shadow-card)!important}.card:hover,.assignment-card:hover{box-shadow:0 1px 0 rgba(255,255,255,.9) inset,0 22px 60px rgba(16,24,40,.09)!important;border-color:rgba(229,111,159,.25)!important}

/* Brand shell */
.sidebar{width:var(--sidebar-w);padding:20px 16px;background:radial-gradient(circle at 90% -4%,rgba(229,111,159,.18),transparent 15rem),linear-gradient(180deg,#071426 0%,#0b1f35 62%,#071323 100%)!important;border-right:0;box-shadow:18px 0 45px rgba(8,21,38,.16)}
.sidebar-brand{padding:8px 8px 20px;margin-bottom:4px;gap:12px;border-bottom:1px solid rgba(255,255,255,.08)}
.brand-logo-shell{width:50px;height:50px;border-radius:17px;background:#fff;display:grid;place-items:center;overflow:hidden;box-shadow:0 18px 35px rgba(0,0,0,.18);flex:0 0 auto}.brand-logo-shell img{width:92%;height:92%;object-fit:contain}.brand-copy strong{font-size:14px;letter-spacing:.18em;color:#fff!important}.brand-copy span{color:#b5c0cf!important;font-size:12px}.sidebar-section-label{color:#708198;letter-spacing:.15em;padding:5px 10px;text-transform:uppercase}.sidebar-tools-label{margin-top:14px}.sidebar-link{min-height:48px;border-radius:13px;color:#d6deea;font-weight:780;padding:12px 13px}.sidebar-link.active{background:rgba(229,111,159,.14)!important;color:#fff!important;box-shadow:none}.sidebar-link.active .nav-icon{color:#f08ab2}.sidebar-link:hover{background:rgba(255,255,255,.075);color:#fff;transform:none}.user-menu-card{display:flex;align-items:center;gap:10px;border:1px solid rgba(255,255,255,.10);border-radius:15px;padding:12px;margin-top:auto;background:rgba(255,255,255,.035)}.user-menu-card .avatar{width:38px;height:38px;background:linear-gradient(135deg,#f08ab2,#d9568b)!important;color:#fff!important}.user-menu-card span{min-width:0}.user-menu-card strong{display:block;color:#fff;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-menu-card small{display:block;color:#aeb9c8;font-weight:650;font-size:12px}
.topbar{height:var(--topbar-h);background:rgba(255,255,255,.94)!important;border-bottom:1px solid rgba(231,234,240,.96)!important;box-shadow:0 1px 0 rgba(255,255,255,.7)}.topbar-inner{width:min(var(--container),calc(100% - 44px));gap:18px}.topbar-brand{display:flex;align-items:center;gap:12px;min-width:230px}.topbar-brand img{width:42px;height:42px;border-radius:14px;background:#fff;object-fit:contain;box-shadow:0 10px 24px rgba(229,111,159,.12)}.topbar-brand strong{display:block;max-width:360px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:17px;font-weight:890;letter-spacing:-.02em}.topbar-brand small{display:block;font-size:12px;color:var(--lms-muted);font-weight:760;letter-spacing:.05em}.top-search{min-width:min(420px,32vw)}.top-search input{border:1px solid var(--lms-line);background:#fff;box-shadow:0 8px 22px rgba(16,24,40,.035)}.topbar-actions nav a{border-radius:11px;font-weight:820}.topbar nav a.active{background:var(--lms-brand-soft)!important;color:var(--lms-brand-700)!important}.topbar-bell{position:relative;display:grid;place-items:center;width:38px;height:38px;border-radius:12px;color:#475467}.topbar-bell svg{width:20px;height:20px;stroke:currentColor;stroke-width:2;fill:none}.topbar-bell:after{content:"";position:absolute;right:7px;top:8px;width:8px;height:8px;border-radius:99px;background:var(--lms-brand)}
.public-brand-logo{width:76px;height:46px;object-fit:contain;border-radius:14px;background:#fff}.public-brand .brand-text strong{font-size:14px;letter-spacing:.16em}.public-topbar .topbar-inner{min-height:74px}.public-page .brand-symbol{display:none!important}

/* Teacher approved mockup layout */
.teacher-welcome{display:flex;align-items:flex-end;justify-content:space-between;margin:4px 0 18px}.teacher-welcome h1{font-size:clamp(28px,2.4vw,38px);line-height:1.12;margin:0 0 8px;font-weight:900;letter-spacing:-.04em;color:var(--lms-ink)}.teacher-welcome p{font-size:15px;color:var(--lms-muted);margin:0}.teacher-stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0 0 18px}.stat-card{position:relative;min-height:106px;border:1px solid rgba(231,234,240,.95);border-radius:22px;background:#fff;box-shadow:var(--shadow-card);padding:18px 20px 16px 90px;overflow:hidden}.stat-card strong{display:block;font-size:32px;line-height:1;font-weight:950;letter-spacing:-.05em;font-variant-numeric:tabular-nums}.stat-card small{display:block;margin-top:8px;color:var(--lms-muted);font-size:14px;font-weight:700}.stat-icon{position:absolute;left:22px;top:23px;width:52px;height:52px;border-radius:17px;display:grid;place-items:center;font-size:24px;font-weight:900}.stat-rose .stat-icon{background:var(--lms-brand-soft);color:var(--lms-brand-700)}.stat-teal .stat-icon{background:var(--lms-teal-soft);color:#189e94}.stat-blue .stat-icon{background:var(--lms-blue-soft);color:var(--lms-blue)}.stat-gold .stat-icon{background:var(--lms-gold-soft);color:#d99112}
.teacher-create-grid{display:grid;grid-template-columns:minmax(0,1fr) 470px;gap:18px;align-items:start;margin:0 0 24px}.create-main-card,.teacher-student-card{min-height:0}.create-main-card{padding:22px 22px 20px}.teacher-student-card{padding:20px;position:sticky;top:calc(var(--topbar-h) + 16px)}.lms-card-head,.student-card-head{margin-bottom:18px}.lms-card-head h2,.student-card-head h2{font-size:22px;margin:0 0 6px}.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.compact-fields{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.create-main-card label,.teacher-student-card label{display:block;margin:12px 0 7px;font-size:12px;font-weight:900;letter-spacing:.02em;color:#263246}.create-main-card input,.create-main-card select,.teacher-student-card input,.teacher-student-card select,.teacher-student-card textarea{min-height:44px;border:1px solid #d9dee8!important;border-radius:13px!important;background:#fff!important;color:var(--lms-ink)!important;box-shadow:none!important}.create-main-card input:focus,.create-main-card select:focus,.teacher-student-card input:focus,.teacher-student-card select:focus,.teacher-student-card textarea:focus{border-color:rgba(229,111,159,.68)!important;box-shadow:0 0 0 4px rgba(229,111,159,.12)!important;outline:0}.segmented-tabs{display:flex;gap:8px;border-bottom:1px solid var(--lms-line);margin:0 0 14px}.segmented-tabs .tab-button{appearance:none;border:0!important;background:transparent!important;color:var(--lms-muted)!important;padding:11px 12px!important;border-radius:0!important;box-shadow:none!important;font-size:13px;font-weight:900;position:relative}.segmented-tabs .tab-button.active{color:var(--lms-brand-700)!important;background:transparent!important}.segmented-tabs .tab-button.active:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--lms-brand);border-radius:99px}.main-sync-box{display:grid;gap:10px}.sync-status.private{display:none}.compact-group-tools{display:grid!important;grid-template-columns:1fr auto auto auto;gap:8px;padding:0!important;border:0!important;background:transparent!important}.compact-group-tools .picker-count{grid-column:1/-1}.compact-group-grid{max-height:138px!important;border:1px solid var(--lms-line);border-radius:14px;padding:8px;background:#fff}.group-pill{border-radius:12px!important;padding:9px 10px!important}.student-picker-panel{border:0!important;background:transparent!important;padding:0!important;gap:10px}.student-picker-controls{display:grid!important;grid-template-columns:1fr;gap:10px;padding:0!important;border:0!important;background:transparent!important}.student-picker-meta{display:flex;justify-content:space-between;padding:0 2px;font-size:12px}.student-search-results{border:0!important;background:transparent!important;padding:0!important;min-height:150px}.student-picker-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;border:0!important;padding:0 0 8px!important;margin:0!important}.student-picker-toolbar div{display:flex;gap:7px;flex-wrap:wrap}.student-check-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;max-height:310px;overflow:auto;padding:2px}.student-check-card{min-height:64px;border-radius:13px!important;padding:11px!important;background:#fff!important;border:1px solid var(--lms-line)!important;box-shadow:0 6px 18px rgba(16,24,40,.035)!important}.student-check-card:has(input:checked){background:#fff3f8!important;border-color:rgba(229,111,159,.45)!important;box-shadow:0 10px 22px rgba(229,111,159,.08)!important}.student-check-card input{accent-color:var(--lms-brand)!important}.student-check-card strong{font-size:13px!important}.student-check-card small{font-size:11.5px!important}.selected-title{margin:10px 0 6px;color:var(--lms-ink);font-size:13px}.selected-students-box{min-height:42px}.selected-students-box.has-selected{padding:8px!important;background:#fff7fb!important;border:1px solid rgba(229,111,159,.24)!important;border-radius:14px!important}.selected-student-pill{padding:7px 6px 7px 10px!important;border-radius:999px!important;border-color:rgba(229,111,159,.26)!important;box-shadow:none!important}.selected-student-pill strong{font-size:11.5px!important}.selected-student-pill small{display:none!important}.mini-x{width:20px;height:20px;min-height:20px;background:#fff1f7!important;color:var(--lms-brand-700)!important}.create-action-strip{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:18px;border:1px dashed rgba(229,111,159,.42);border-radius:22px;background:linear-gradient(180deg,#fff7fb,#fff);padding:16px 18px;box-shadow:0 14px 38px rgba(16,24,40,.04)}.action-info{display:flex;gap:13px;align-items:flex-start;min-width:0}.info-dot{width:28px;height:28px;border:2px solid var(--lms-brand);border-radius:99px;display:grid;place-items:center;color:var(--lms-brand-700);font-weight:950;flex:0 0 auto}.action-info p{margin:0;color:#344054;font-size:13px}.action-buttons{display:flex;gap:10px;flex:0 0 auto}.action-buttons .btn,.action-buttons button{min-width:160px}.btn,button,input[type="submit"]{background:linear-gradient(135deg,var(--lms-brand),var(--lms-brand-600))!important;border:1px solid var(--lms-brand-600)!important;color:#fff!important;border-radius:13px!important;box-shadow:0 12px 24px rgba(229,111,159,.18)!important;font-weight:850}.btn.light,button.light,.btn.secondary,button.secondary{background:#fff!important;color:#263246!important;border:1px solid var(--lms-line)!important;box-shadow:0 8px 18px rgba(16,24,40,.045)!important}.btn.danger,button.danger{background:#fff1f2!important;color:#b42318!important;border-color:#fecdd3!important;box-shadow:none!important}.mini-btn{min-height:36px!important;padding:8px 10px!important;font-size:12px!important}.assignment-list{display:grid;gap:14px}.assignment-card{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:16px;padding:16px}.assignment-title-row h3{margin-top:8px}.assignment-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.assignment-meta>div{border:1px solid var(--lms-line);border-radius:14px;padding:10px;background:#fbfcfe}.assignment-link{margin-top:12px}.action-grid{gap:8px}

/* Footer matching approved concept */
.footer.lms-footer{width:100%!important;margin:0!important;padding:0!important;background:#fff;border-top:1px solid var(--lms-line);color:var(--lms-muted)}.footer-grid{width:min(var(--container),calc(100% - 44px));margin:0 auto;display:grid;grid-template-columns:1.5fr .8fr .8fr 1.4fr;gap:28px;align-items:center;padding:26px 0}.footer-brand img{width:128px;height:auto;margin-bottom:10px}.footer-brand p{margin:0;font-size:13px;line-height:1.65}.footer-col{display:grid;gap:7px;align-content:start}.footer-col strong{color:#344054;font-size:12px;letter-spacing:.08em}.footer-col a{font-size:13px;color:var(--lms-muted)}.footer-help{display:flex;gap:14px;align-items:center;border-radius:22px;background:linear-gradient(135deg,#fff7fb,#fff);padding:18px;border:1px solid #ffe0ed}.footer-help-icon{width:46px;height:46px;border-radius:16px;display:grid;place-items:center;color:var(--lms-brand-700);background:#fff;font-size:24px}.footer-help strong{color:#344054}.footer-help p{font-size:13px;margin:3px 0}.footer-help a{font-size:13px;color:var(--lms-brand-700);font-weight:800}.footer-bottom{text-align:center;border-top:1px solid var(--lms-line);padding:14px 12px;font-size:13px}

@media (min-width:1025px){body.sidebar-collapsed{--sidebar-w:88px}body.sidebar-collapsed .brand-copy,body.sidebar-collapsed .sidebar-section-label,body.sidebar-collapsed .sidebar-link span:not(.nav-icon),body.sidebar-collapsed .user-menu-card span:not(.avatar){display:none!important}body.sidebar-collapsed .brand-logo-shell{width:50px}body.sidebar-collapsed .sidebar-brand{justify-content:center}body.sidebar-collapsed .sidebar-link{justify-content:center}}
@media(max-width:1240px){.teacher-create-grid{grid-template-columns:1fr}.teacher-student-card{position:static}.teacher-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.assignment-card{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr 1fr}.topbar-brand{min-width:0}.topbar-brand strong{max-width:260px}.top-search{min-width:220px}}
@media(max-width:1024px){.sidebar{position:fixed;left:0;top:0;transform:translateX(-105%);transition:transform .18s ease}.sidebar-toggle{display:flex}.sidebar-open .sidebar{transform:translateX(0)}.sidebar-open .mobile-backdrop{display:block;position:fixed;inset:0;background:rgba(8,21,38,.48);z-index:55}.topbar-actions .user-chip{display:none}.container,.topbar-inner,.footer-grid{width:calc(100% - 26px)}.topbar-brand strong{max-width:calc(100vw - 170px)}.top-search{display:none}}
@media(max-width:760px){.container{padding-top:18px}.teacher-welcome{margin-top:0}.teacher-stats-grid,.form-grid-2,.compact-fields,.student-check-grid,.footer-grid{grid-template-columns:1fr}.stat-card{min-height:96px}.teacher-create-grid{gap:14px}.create-action-strip{display:grid}.action-buttons{display:grid}.action-buttons .btn,.action-buttons button{width:100%;min-width:0}.compact-group-tools{grid-template-columns:1fr!important}.assignment-meta{grid-template-columns:1fr}.footer-help{align-items:flex-start}.topbar-actions nav a:first-child{display:none}.public-brand-logo{width:58px}.public-brand .brand-text{display:none}}

/* v43: Real production pass — fix broken teacher/student picker + test library density */
:root{
  --container:1680px;
  --sidebar-w:270px;
  --lms-card-border:rgba(231,234,240,.96);
}
body{overflow-x:hidden}.container{width:min(var(--container),calc(100% - 44px));padding-top:22px}.topbar-inner{width:min(var(--container),calc(100% - 44px))}.topbar-brand img{background:transparent!important;box-shadow:none!important;border-radius:0!important;padding:0!important;object-fit:contain}.brand-logo-shell{background:transparent!important;box-shadow:none!important;border-radius:0!important}.brand-logo-shell img{width:100%!important;height:100%!important;object-fit:contain}.public-brand-logo{background:transparent!important;border-radius:0!important;box-shadow:none!important}

.teacher-welcome{margin:0 0 16px!important;padding:0!important;background:transparent!important;border:0!important;box-shadow:none!important}.teacher-welcome h1{font-size:clamp(25px,2vw,34px);letter-spacing:-.04em;margin:0 0 4px}.teacher-welcome p{margin:0;color:var(--lms-muted);font-weight:650}.teacher-stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0 0 16px}.stat-card,.bank-stat-card{border:1px solid var(--lms-card-border);border-radius:20px;background:#fff;box-shadow:0 14px 40px rgba(16,24,40,.055);padding:18px 18px 18px 86px;min-height:96px;position:relative}.stat-card strong,.bank-stat-card strong{display:block;font-size:29px;line-height:1;font-weight:950;color:var(--lms-ink)}.stat-card small,.bank-stat-card small{display:block;margin-top:8px;color:var(--lms-muted);font-weight:760}.stat-icon{left:20px!important;top:20px!important;width:50px!important;height:50px!important;border-radius:16px!important}
.teacher-create-grid{grid-template-columns:minmax(0,1fr) minmax(390px,460px)!important;gap:18px!important;margin-bottom:18px!important}.create-main-card,.teacher-student-card{border-radius:24px!important}.create-main-card{padding:20px!important}.create-main-card .lms-card-head{margin-bottom:12px}.create-main-card .lms-card-head h2,.teacher-student-card h2{font-size:22px;letter-spacing:-.03em}.create-main-card label,.teacher-student-card label{margin:10px 0 6px!important}.create-main-card input,.create-main-card select,.teacher-student-card input,.teacher-student-card select,.teacher-student-card textarea{min-height:42px!important;border-radius:12px!important}.form-grid-2{gap:12px!important}.compact-fields{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:12px!important}.inside-create-card{margin-top:16px!important;display:flex!important;grid-column:auto!important;border-radius:18px!important;padding:13px 14px!important}.inside-create-card .action-info p{font-size:12.5px;line-height:1.45}.inside-create-card .action-buttons .btn,.inside-create-card .action-buttons button{min-width:138px!important}.info-dot{width:25px!important;height:25px!important;font-size:12px!important}.teacher-student-card{position:sticky!important;top:calc(var(--topbar-h) + 14px)!important;max-height:calc(100vh - var(--topbar-h) - 28px)!important;overflow:auto!important;padding:18px!important}.teacher-student-card::-webkit-scrollbar,.student-check-grid::-webkit-scrollbar{width:7px}.teacher-student-card::-webkit-scrollbar-thumb,.student-check-grid::-webkit-scrollbar-thumb{background:#cfd6e2;border-radius:99px}.student-card-head{margin-bottom:10px!important}.segmented-tabs{margin-bottom:12px!important}.main-sync-box{gap:9px!important}.main-sync-box [data-main-group-loading]{padding:10px 12px!important;margin:0!important;border-radius:14px!important}.group-select-shell{display:grid;gap:8px}.group-select-topline{display:flex;align-items:center;justify-content:space-between;gap:10px}.group-select-topline .picker-count{font-size:12px;font-weight:850;color:var(--lms-muted)}.hidden-group-grid{display:none!important}.student-only-search{display:block!important}.student-picker-panel{display:grid!important;gap:9px!important}.student-picker-meta{font-size:12px!important;font-weight:800;color:var(--lms-muted)}.student-search-results{min-height:0!important}.student-picker-toolbar{gap:8px!important;align-items:center!important}.student-picker-toolbar strong{font-size:12px!important;color:var(--lms-ink)!important}.student-picker-toolbar .btn{white-space:nowrap}.student-check-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;max-height:254px!important;overflow:auto!important;padding:2px 3px 2px 2px!important}.student-check-card{min-height:58px!important;padding:10px!important;display:grid!important;grid-template-columns:20px minmax(0,1fr)!important;gap:8px!important;align-items:start!important}.student-check-card input{width:17px!important;height:17px!important;min-height:17px!important;margin:2px 0 0!important}.student-check-card strong{font-size:12.5px!important;line-height:1.2!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.student-check-card small{display:block!important;max-width:100%;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;font-size:11px!important}.selected-title{margin:8px 0 4px!important}.selected-students-box.has-selected{max-height:92px;overflow:auto;align-content:flex-start}.selected-student-pill{max-width:100%;min-height:28px!important}.selected-student-pill strong{max-width:160px!important}.student-picker-panel .empty-state,.student-picker-panel .notice{padding:12px!important;border-radius:14px!important;font-size:12px!important}.load-more-students{min-height:38px!important;margin-top:8px!important}
.assignment-card{grid-template-columns:minmax(0,1fr) 300px!important}.assignment-meta{grid-template-columns:repeat(3,minmax(0,1fr))!important}.assignment-meta>div{min-width:0}.assignment-link input{font-size:12px}.grid>.card.col-12{margin-top:18px!important}

/* Test bank page */
.bank-header{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin:0 0 16px}.bank-header h1{font-size:clamp(28px,2.2vw,38px);letter-spacing:-.045em;margin:0 0 5px}.bank-header p{margin:0;color:var(--lms-muted);font-weight:650;max-width:850px}.bank-stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0 0 16px}.bank-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(380px,470px);gap:18px;align-items:start}.bank-main,.bank-aside{min-width:0}.bank-toolbar{display:grid;grid-template-columns:minmax(260px,1fr) 180px 180px auto;gap:10px;margin-bottom:16px;border:1px solid var(--lms-card-border);border-radius:18px;background:#fff;padding:12px;box-shadow:0 12px 34px rgba(16,24,40,.045)}.bank-toolbar input,.bank-toolbar select{min-height:42px;border-radius:12px}.bank-section-heading{margin:4px 0 12px}.template-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.template-pro-card{border:1px solid var(--lms-card-border);border-radius:22px;background:#fff;padding:15px;box-shadow:0 14px 40px rgba(16,24,40,.055);min-width:0;transition:transform .14s ease,border-color .14s ease,box-shadow .14s ease}.template-pro-card:hover{transform:translateY(-1px);border-color:rgba(229,111,159,.28);box-shadow:0 18px 50px rgba(16,24,40,.08)}.template-pro-top{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:8px}.level-badge{background:#eef2f7!important;color:#344054!important}.bookmark-icon{color:#98a2b3;font-size:20px}.template-pro-card h3{font-size:18px;margin:0 0 6px;letter-spacing:-.025em}.template-description{min-height:36px;margin:0 0 12px;font-size:13px;line-height:1.45}.template-mini-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;padding:10px 0;border-top:1px solid var(--lms-line);border-bottom:1px solid var(--lms-line);margin:0 0 12px}.template-mini-stats div{min-width:0}.template-mini-stats span{display:block;color:var(--lms-muted);font-size:11px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.template-mini-stats strong{display:block;margin-top:4px;font-size:15px;font-weight:950;color:var(--lms-ink)}.template-actions.pro-actions{display:grid;grid-template-columns:1.2fr 1fr auto;gap:8px;align-items:center}.template-actions.pro-actions form{margin:0}.template-actions.pro-actions .btn,.template-actions.pro-actions button{width:100%;min-height:38px!important;font-size:12px!important}.bank-aside{display:grid;gap:14px;position:sticky;top:calc(var(--topbar-h) + 14px)}.create-template-panel{padding:20px!important}.create-template-panel h2{font-size:24px;letter-spacing:-.035em}.create-template-panel textarea{min-height:112px}.create-template-panel button{margin-top:12px}.integrity-strip{display:flex;gap:12px;align-items:flex-start;border:1px solid #cfe0ff;border-radius:18px;background:linear-gradient(180deg,#f8fbff,#fff);padding:14px;box-shadow:0 12px 34px rgba(16,24,40,.045)}.shield-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:12px;background:#eef6ff;color:#2563eb;font-weight:950;flex:0 0 auto}.integrity-strip strong{display:block;color:#1d3b70}.integrity-strip p{margin:4px 0 0;color:var(--lms-muted);font-size:13px}.quick-guide-card{padding:18px!important}.quick-guide-card h3{font-size:18px}.guide-item{display:flex;gap:10px;align-items:flex-start;padding:10px 0;border-top:1px solid var(--lms-line)}.guide-item:first-of-type{border-top:0}.guide-item>span{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:var(--lms-brand-soft);color:var(--lms-brand-700);font-weight:950;flex:0 0 auto}.guide-item strong{display:block;color:var(--lms-ink);font-size:13px}.guide-item small{display:block;color:var(--lms-muted);font-size:12px;margin-top:2px}.private-models-table{margin-top:18px!important}.private-models-table .section-heading{display:flex;justify-content:space-between;align-items:center;gap:16px}.private-models-table .table-wrap{border-radius:16px;overflow:hidden}.bank-empty{grid-column:1/-1!important}

@media(max-width:1320px){.teacher-create-grid,.bank-layout{grid-template-columns:1fr!important}.teacher-student-card,.bank-aside{position:static!important;max-height:none!important}.student-check-grid{max-height:320px!important}.assignment-card{grid-template-columns:1fr!important}.template-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:980px){.teacher-stats-grid,.bank-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.bank-toolbar{grid-template-columns:1fr 1fr}.template-card-grid{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr 1fr!important}.assignment-meta{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:720px){.container,.topbar-inner{width:calc(100% - 24px)}.teacher-stats-grid,.bank-stats-grid,.form-grid-2,.compact-fields,.student-check-grid,.bank-toolbar{grid-template-columns:1fr!important}.inside-create-card,.bank-header,.private-models-table .section-heading{display:grid!important}.action-buttons{display:grid!important;width:100%}.action-buttons .btn,.action-buttons button{width:100%!important}.template-actions.pro-actions{grid-template-columns:1fr}.assignment-meta{grid-template-columns:1fr!important}.stat-card,.bank-stat-card{padding-left:76px}.footer-grid{grid-template-columns:1fr!important}.topbar-brand small{display:none}.topbar-actions nav a:not(.active){display:none}}
