/* AUTO-GENERATED by scripts/build_design_system_bundle.py.
   Canonical sources remain the files listed below; do not hand-edit this bundle. */

/* ===== source: tokens.css ===== */
@layer lms-foundation, lms-components, lms-pages, lms-legacy, lms-overrides;
/* LMS UI U1 — semantic design tokens. No component selectors in this file. */
:root {
  color-scheme: light;

  /* Brand */
  --lms-color-brand-50: #eff6ff;
  --lms-color-brand-100: #dbeafe;
  --lms-color-brand-200: #bfdbfe;
  --lms-color-brand-300: #93c5fd;
  --lms-color-brand-400: #60a5fa;
  --lms-color-brand-500: #3b82f6;
  --lms-color-brand-600: #2563eb;
  --lms-color-brand-700: #1d4ed8;
  --lms-color-brand-800: #1e40af;
  --lms-color-brand-900: #1e3a8a;

  /* Neutral */
  --lms-color-neutral-0: #ffffff;
  --lms-color-neutral-50: #f8fafc;
  --lms-color-neutral-100: #f1f5f9;
  --lms-color-neutral-200: #e2e8f0;
  --lms-color-neutral-300: #cbd5e1;
  --lms-color-neutral-400: #94a3b8;
  --lms-color-neutral-500: #64748b;
  --lms-color-neutral-600: #475569;
  --lms-color-neutral-700: #334155;
  --lms-color-neutral-800: #1e293b;
  --lms-color-neutral-900: #0f172a;
  --lms-color-neutral-950: #020617;

  /* Semantic surfaces and text — light mapping */
  --lms-color-canvas: #f6f8fc;
  --lms-color-surface: #ffffff;
  --lms-color-surface-subtle: #f1f5f9;
  --lms-color-surface-elevated: #ffffff;
  --lms-color-surface-inverse: #0f172a;
  --lms-color-border: #cbd5e1;
  --lms-color-divider: #e2e8f0;
  --lms-color-text-primary: #0f172a;
  --lms-color-text-secondary: #334155;
  --lms-color-text-muted: #64748b;
  --lms-color-text-inverse: #f8fafc;
  --lms-color-link: #1d4ed8;
  --lms-color-link-hover: #1e3a8a;
  --lms-color-focus-ring: #2563eb;
  --lms-color-overlay: rgb(15 23 42 / 58%);

  /* Semantic status — light mapping */
  --lms-color-success-text: #166534;
  --lms-color-success-bg: #dcfce7;
  --lms-color-success-border: #86efac;
  --lms-color-warning-text: #854d0e;
  --lms-color-warning-bg: #fef9c3;
  --lms-color-warning-border: #fde047;
  --lms-color-danger-text: #991b1b;
  --lms-color-danger-bg: #fee2e2;
  --lms-color-danger-border: #fca5a5;
  --lms-color-info-text: #1e40af;
  --lms-color-info-bg: #dbeafe;
  --lms-color-info-border: #93c5fd;


  /* Semantic solid status controls — UI-U1-001 main-page bridge */
  --lms-color-success-solid: #15803d;
  --lms-color-on-success-solid: #ffffff;
  --lms-color-warning-solid: #a16207;
  --lms-color-on-warning-solid: #ffffff;
  --lms-color-danger-solid: #b91c1c;
  --lms-color-on-danger-solid: #ffffff;
  --lms-color-info-solid: #1d4ed8;
  --lms-color-on-info-solid: #ffffff;

  /* Compatibility bridge for applied legacy main-page colors. */
  --lms-color-compat-00ace2998a: rgba(210, 153, 34, .12);
  --lms-color-compat-013de1e1ab: #bbf7d0;
  --lms-color-compat-0158c9bf0f: #1c1e21;
  --lms-color-compat-01fcc383ae: rgba(59, 89, 152, .12);
  --lms-color-compat-02830e2c16: rgba(88,166,255,.12);
  --lms-color-compat-034dfea9c3: #1e1e1e;
  --lms-color-compat-03a75ddcd5: rgba(248, 81, 73, .18);
  --lms-color-compat-0477cc2c3b: #fa383e;
  --lms-color-compat-05781f634b: #a9b2bb;
  --lms-color-compat-057952abb6: rgb(0 0 0 / 0%);
  --lms-color-compat-06efbaa775: #9a9a9a;
  --lms-color-compat-088a1285f0: #fb7185;
  --lms-color-compat-08cd960d37: rgb(237 237 237 / 20%);
  --lms-color-compat-08e14993c0: rgba(255,255,255,.06);
  --lms-color-compat-08fa79eea1: rgba(124,92,255,.16);
  --lms-color-compat-0937f4aa99: rgba(63, 185, 80, .25);
  --lms-color-compat-0a045233ad: rgba(63,185,80,.3);
  --lms-color-compat-0cafc19a00: #0c675e;
  --lms-color-compat-0d62af6f76: #56ab2f;
  --lms-color-compat-0f1c00d7e3: rgba(255,255,255,.08);
  --lms-color-compat-0f3025895b: #23d5ab;
  --lms-color-compat-101c1429e1: rgba(56, 189, 248, 0.10);
  --lms-color-compat-10f25756ce: rgb(255 255 255 / 85%);
  --lms-color-compat-122b49ec49: rgb(255 255 255 / 25%);
  --lms-color-compat-123a659abc: #e4e8ec;
  --lms-color-compat-128f8e6c23: rgba(255, 255, 255, 0.09);
  --lms-color-compat-12b43a06c4: rgba(255,255,255,.04);
  --lms-color-compat-160644726d: #a78bfa;
  --lms-color-compat-19e9ef06ac: #ff416c;
  --lms-color-compat-1b142f7b96: rgb(255 255 255 / 13%);
  --lms-color-compat-1b2115b01a: #b7891e;
  --lms-color-compat-1e6f9dc87b: #21262d;
  --lms-color-compat-1e90f6b071: #388bfd;
  --lms-color-compat-20c781d4ad: rgba(255,255,255,.095);
  --lms-color-compat-21f6b6ef26: rgba(4, 79, 88, 0.94);
  --lms-color-compat-2250631055: #2b2a2a;
  --lms-color-compat-2451293d79: rgba(255,255,255,.105);
  --lms-color-compat-250322bc3e: rgba(34,197,94,.12);
  --lms-color-compat-257d6bb07c: rgb(255 255 255 / 12%);
  --lms-color-compat-261611f36a: rgba(7, 17, 31, 0.55);
  --lms-color-compat-26e3c1f9a0: #e4e6eb;
  --lms-color-compat-27499d7679: #f6f8fa;
  --lms-color-compat-274c132909: rgba(255, 255, 255, 0.15);
  --lms-color-compat-282d5b142f: rgb(244 17 39 / .11);
  --lms-color-compat-28b0106d1b: rgba(37,99,235,.18);
  --lms-color-compat-29617b7937: rgba(0, 0, 0, .10);
  --lms-color-compat-296c7e518c: #795548;
  --lms-color-compat-29d703b879: rgb(23 160 14 / .11);
  --lms-color-compat-29fe90a292: #f62718;
  --lms-color-compat-2b0858eaae: rgba(255, 255, 255, 0.70);
  --lms-color-compat-2b126c96d9: rgb(11 12 15);
  --lms-color-compat-2bdb974184: rgba(0, 0, 0, .2);
  --lms-color-compat-2e43cf0061: rgba(255,255,255,.42);
  --lms-color-compat-2e62758294: #0d1117;
  --lms-color-compat-2fc4233294: rgb(255 255 255 / 32%);
  --lms-color-compat-3031e02e34: rgb(255 255 255 / 15%);
  --lms-color-compat-30336449ce: rgba(210,153,34,.2);
  --lms-color-compat-30ee0cad4c: #1877f2;
  --lms-color-compat-3161238660: #fff0;
  --lms-color-compat-3175dcf77f: #ebeef1;
  --lms-color-compat-320a975b68: #ff5447;
  --lms-color-compat-3261355281: #3fb950;
  --lms-color-compat-329141516a: rgba(56, 189, 248, 0.12);
  --lms-color-compat-3379689eb9: rgba(8,11,20,.55);
  --lms-color-compat-33db841992: #1E88E5;
  --lms-color-compat-361d22dac9: rgba(210,153,34,.06);
  --lms-color-compat-365d112733: rgba(88,166,255,.15);
  --lms-color-compat-37264b319f: rgba(113, 102, 8, 0.89);
  --lms-color-compat-381878cb83: #111314;
  --lms-color-compat-38566d5c27: rgba(1,4,9,.7);
  --lms-color-compat-3919adbeb1: rgb(255 255 255 / 14%);
  --lms-color-compat-391df97436: rgba(0, 0, 0, 0.2);
  --lms-color-compat-3a6ad02be6: rgba(56,189,248,.10);
  --lms-color-compat-3aa8a76459: #069e90;
  --lms-color-compat-3cad7ac4f0: #6a11cb;
  --lms-color-compat-3d30716b15: #0d6efd;
  --lms-color-compat-3d399e2e7b: #f6f7f8;
  --lms-color-compat-3f437cae31: rgb(0 0 0 / 60%);
  --lms-color-compat-3f460891b1: rgba(250, 204, 21, 0.12);
  --lms-color-compat-3f53b359fb: #f1f1f1;
  --lms-color-compat-4010f1a6fc: rgba(56,189,248,.12);
  --lms-color-compat-402bf10029: #2e3338;
  --lms-color-compat-40ed4cfc4c: #272a2d;
  --lms-color-compat-40fe92bb05: rgba(88,166,255,.3);
  --lms-color-compat-4103ee486b: #69bb03;
  --lms-color-compat-430838d00e: rgb(255 255 255 / 35%);
  --lms-color-compat-43204128dc: rgba(56,189,248,.95);
  --lms-color-compat-43864a3bef: rgba(210,153,34,.4);
  --lms-color-compat-43bcc0762e: rgba(255, 255, 255, 0.25);
  --lms-color-compat-443cfb42fd: rgba(88,166,255,.2);
  --lms-color-compat-44501a115a: rgba(255,255,255,.05);
  --lms-color-compat-4491f485fc: #e5e5e5;
  --lms-color-compat-452dba57c0: #ff4b2b;
  --lms-color-compat-45df695a89: rgba(19, 56, 86, 0.9);
  --lms-color-compat-466bc8cef3: #000000;
  --lms-color-compat-46e559cb88: rgba(0, 0, 0, .075);
  --lms-color-compat-4842dcf4ab: #1f4e79;
  --lms-color-compat-486f02f40c: rgba(250,204,21,.14);
  --lms-color-compat-499668ca1a: #f8fafc;
  --lms-color-compat-49cc5e1c92: #ff5c7a;
  --lms-color-compat-4a104c3dbb: rgba(63,185,80,.15);
  --lms-color-compat-4abac66ce5: #1c2128;
  --lms-color-compat-4c58cd2153: #eee;
  --lms-color-compat-4c907f06a2: #b0b3b8;
  --lms-color-compat-4f447aedd9: rgb(255 255 255 / 0%);
  --lms-color-compat-5169b36520: #f85149;
  --lms-color-compat-5195aa109a: #29323c;
  --lms-color-compat-526e6af974: rgb(0 0 0 / 20%);
  --lms-color-compat-528cef87d0: #ffffff;
  --lms-color-compat-53fc295c4e: rgba(255,255,255,.045);
  --lms-color-compat-550f118d37: rgba(34,197,94,.24);
  --lms-color-compat-559a2b9a25: #fff7cc;
  --lms-color-compat-55ad4291f8: rgba(167,139,250,.22);
  --lms-color-compat-5613576c5f: rgba(0, 0, 0, .3);
  --lms-color-compat-5621e5a65e: rgba(248, 81, 73, .1);
  --lms-color-compat-563230e864: rgba(210, 153, 34, .07);
  --lms-color-compat-56c9b3a2a2: #08a50e;
  --lms-color-compat-57ff61e677: #d29922;
  --lms-color-compat-580419c966: rgba(255,200,87,.11);
  --lms-color-compat-5858f7f2ae: #e2e8f0;
  --lms-color-compat-598b32b7d9: #000;
  --lms-color-compat-5a2cf7fb93: rgb(255 255 255 / 55%);
  --lms-color-compat-5b2b5eebba: rgba(248,81,73,.12);
  --lms-color-compat-5b70a016df: rgba(1,4,9,.6);
  --lms-color-compat-5c06006db4: #945c48;
  --lms-color-compat-5c08c15447: rgba(0,0,0,.4);
  --lms-color-compat-5d0054813d: rgba(56,189,248,.18);
  --lms-color-compat-5dff86d9c5: rgba(0, 0, 0, .13);
  --lms-color-compat-601b1bcda1: #7c5cff;
  --lms-color-compat-605bcc7c58: rgba(56, 189, 248, 0.25);
  --lms-color-compat-61ec216cf6: rgba(56, 189, 248, 0.15);
  --lms-color-compat-63208f92af: #1565C0;
  --lms-color-compat-64cd295af5: rgba(255,200,87,.22);
  --lms-color-compat-65740991a0: #fef08a;
  --lms-color-compat-65a6db58de: rgb(255 255 255 / 34%);
  --lms-color-compat-65cc239df4: #0a7cff;
  --lms-color-compat-661e9ea7f5: rgba(255,255,255,.10);
  --lms-color-compat-6678108163: #e7eaf3;
  --lms-color-compat-674134e862: #08111f;
  --lms-color-compat-678740547d: #e52d27;
  --lms-color-compat-684a459d86: #0c62e0;
  --lms-color-compat-691a030797: rgb(255 255 255 / 10%);
  --lms-color-compat-69272bd517: rgb(255 255 255 / 23%);
  --lms-color-compat-696601d9b8: rgba(250, 204, 21, 0.24);
  --lms-color-compat-6a45b692a5: rgba(56, 189, 248, 0.22);
  --lms-color-compat-6d16dc0609: rgb(255 255 255 / 21%);
  --lms-color-compat-6df680c972: rgba(167,139,250,.16);
  --lms-color-compat-6e39e4c78b: rgba(1,4,9,.72);
  --lms-color-compat-6e50b0c8cb: #0070ef;
  --lms-color-compat-6eba725076: rgba(56,189,248,.16);
  --lms-color-compat-6f43ca45e9: #4a00e0;
  --lms-color-compat-6f6044e5fa: #05070d;
  --lms-color-compat-708c63c045: #2c5364;
  --lms-color-compat-71c199402a: rgb(0 0 0 / 14%);
  --lms-color-compat-723aadedcc: #7d8590;
  --lms-color-compat-72f6ff157b: #c7d2fe;
  --lms-color-compat-7390c96e42: #ffd200;
  --lms-color-compat-73a94fd3a4: #ffc857;
  --lms-color-compat-7434de8ab4: #e6e0e0;
  --lms-color-compat-760a9c2b8f: rgba(255,255,255,.45);
  --lms-color-compat-766ee9d1fc: rgb(13 202 240 / 18%);
  --lms-color-compat-77330a6286: rgb(13 110 253 / .11);
  --lms-color-compat-77dc5a24eb: #eeecec;
  --lms-color-compat-77ea75cbae: #e9ecef;
  --lms-color-compat-7ad934b182: rgb(255 255 255 / 50%);
  --lms-color-compat-7c7c03d297: #203a43;
  --lms-color-compat-7f8c306c6d: rgba(248,81,73,.3);
  --lms-color-compat-803a253c58: #aaa;
  --lms-color-compat-809bfc82f3: rgba(8,11,20,.85);
  --lms-color-compat-80a73fa219: #080b14;
  --lms-color-compat-8231243dbd: #767676;
  --lms-color-compat-82707059ec: #65676b;
  --lms-color-compat-837da11305: #31a24c;
  --lms-color-compat-83ca005294: rgb(0 0 0 / 0.2);
  --lms-color-compat-85085b32cd: rgba(124,92,255,.30);
  --lms-color-compat-851f635c90: #eaecef;
  --lms-color-compat-8655b638f1: #818189;
  --lms-color-compat-87f183fa4b: rgba(167, 139, 250, 0.16);
  --lms-color-compat-88b31319e7: rgba(255, 255, 255, 0.115);
  --lms-color-compat-895780ff49: rgba(255,255,255,.12);
  --lms-color-compat-8a3cac0d0e: #343a40;
  --lms-color-compat-8a5000b2e8: rgb(255 255 255 / 0.14);
  --lms-color-compat-8aa2dbb5d9: #eef4ff;
  --lms-color-compat-8aa9aa255b: rgba(35,213,171,.10);
  --lms-color-compat-8b028ac209: rgba(37, 99, 235, 0.26);
  --lms-color-compat-8b2203805c: rgba(248,250,252,.78);
  --lms-color-compat-8b9e57369b: #1c2432;
  --lms-color-compat-8fc2eda8e1: #8e2de2;
  --lms-color-compat-91fef0062f: rgba(59, 89, 152, .14);
  --lms-color-compat-92d1271365: rgba(56,189,248,.13);
  --lms-color-compat-92fd49858f: rgba(0, 0, 0, .125);
  --lms-color-compat-9322028a67: rgba(255,255,255,.065);
  --lms-color-compat-9338cf8cb1: #d2d2d2;
  --lms-color-compat-9343aef05b: #38bdf8;
  --lms-color-compat-9504f69d96: rgba(56,189,248,.14);
  --lms-color-compat-96c623742e: rgba(250,204,21,.13);
  --lms-color-compat-97d4761484: rgb(255 255 255);
  --lms-color-compat-9868e9facd: rgba(1,4,9,.4);
  --lms-color-compat-9a2a49fa47: #98a6c3;
  --lms-color-compat-9d5c61c250: #5b5b5b;
  --lms-color-compat-9e3854f184: rgba(255,255,255,.09);
  --lms-color-compat-9e6faaf3f9: rgba(0,0,0,.1);
  --lms-color-compat-9fb7ae6626: #a8e063;
  --lms-color-compat-a0724b5360: rgba(210,153,34,.25);
  --lms-color-compat-a116b27c5f: #0976b4;
  --lms-color-compat-a190b5e9af: #0f2027;
  --lms-color-compat-a59544b1e5: rgba(0,0,0,.25);
  --lms-color-compat-a5e16193ab: rgba(15, 23, 42, 0.72);
  --lms-color-compat-a5e56740a4: rgba(10,124,255,.3);
  --lms-color-compat-a63bc2067f: rgba(210,153,34,.3);
  --lms-color-compat-a6668fc738: rgba(0, 0, 0, .7);
  --lms-color-compat-a6f87266b2: rgba(0, 0, 0, .12);
  --lms-color-compat-a7d7499c9d: rgba(255, 255, 255, 0.55);
  --lms-color-compat-a8b6bcc21d: rgb(0 0 0 / 34%);
  --lms-color-compat-a955314276: rgba(100, 8, 115, 0.95);
  --lms-color-compat-a9ea3be97d: #b9fff0;
  --lms-color-compat-a9f41f02ae: rgba(88,166,255,.1);
  --lms-color-compat-aae8622a40: #e4e4e4;
  --lms-color-compat-abd0ea9c93: rgba(10,124,255,.1);
  --lms-color-compat-abefe21ee8: #55acee;
  --lms-color-compat-abfef18f95: #000000;
  --lms-color-compat-ac2aba7a55: rgb(255 255 255 / 58%);
  --lms-color-compat-ac8586a3cb: rgb(255 255 255 / 64%);
  --lms-color-compat-acbcbfcec3: rgb(0 0 0 / 21%);
  --lms-color-compat-acd0b7d06b: rgba(255, 255, 255, 0.075);
  --lms-color-compat-ad13c7f0ac: rgba(255,255,255,.25);
  --lms-color-compat-af20d8ddd8: #ededed;
  --lms-color-compat-afdca90366: #886aea;
  --lms-color-compat-b0576c9bb9: rgba(24, 32, 78, 0.94);
  --lms-color-compat-b0be07023c: rgba(7,17,31,.54);
  --lms-color-compat-b207284884: #171717;
  --lms-color-compat-b32bc84f4c: rgb(255 255 255 / 22%);
  --lms-color-compat-b41805d683: rgba(0, 0, 0, .15);
  --lms-color-compat-b599dd69c7: rgb(0 0 0 / 15%);
  --lms-color-compat-b7f48560f0: rgba(13, 95, 16, 0.93);
  --lms-color-compat-b92c566199: rgba(210,153,34,.05);
  --lms-color-compat-b95d02d86b: rgba(255,255,255,.55);
  --lms-color-compat-ba3d55cd0b: rgb(255 255 255 / 63%);
  --lms-color-compat-ba8956d088: rgba(37,99,235,.92);
  --lms-color-compat-bad0191551: #151d31;
  --lms-color-compat-bb3f6b864b: rgba(7, 17, 31, 0.72);
  --lms-color-compat-bc0aec2633: rgb(0 0 0 / 18%);
  --lms-color-compat-bc6505cfed: #f7971e;
  --lms-color-compat-bdbe0baeec: rgba(255,255,255,.07);
  --lms-color-compat-bf637492e1: rgba(56, 189, 248, 0.20);
  --lms-color-compat-bfe2375e09: rgba(56,189,248,.22);
  --lms-color-compat-bfeccfcf90: rgba(255, 255, 255, 0.08);
  --lms-color-compat-bffefe7d03: rgba(250, 204, 21, 0.18);
  --lms-color-compat-c07b691c52: #1a4570;
  --lms-color-compat-c0ca07e286: #65379b;
  --lms-color-compat-c1419dcb4d: #22c55e;
  --lms-color-compat-c1ec8972cf: rgba(35,213,171,.24);
  --lms-color-compat-c26f5d428b: rgba(0,0,0,.04);
  --lms-color-compat-c2a44324fb: rgba(210,153,34,.1);
  --lms-color-compat-c453f33a6b: rgba(59, 89, 152, .2);
  --lms-color-compat-c4b8f21e40: #0b1730;
  --lms-color-compat-c5102c914f: rgba(0,0,0,.08);
  --lms-color-compat-c659d630ce: #ffffff;
  --lms-color-compat-c769e3c091: #dbeafe;
  --lms-color-compat-c8b9c427b2: rgba(250,204,21,.11);
  --lms-color-compat-c8bb88a2fb: #bae6fd;
  --lms-color-compat-ca2d2fa731: rgba(255,255,255,.055);
  --lms-color-compat-cb045510d1: rgba(165, 42, 4, 0.89);
  --lms-color-compat-cb1a684341: rgb(242 239 239 / 15%);
  --lms-color-compat-cbd7f17a8a: #515a62;
  --lms-color-compat-ccf6db170a: #485563;
  --lms-color-compat-cd5fad86be: #f0f2f5;
  --lms-color-compat-ce398330f3: #111827;
  --lms-color-compat-cec7c718d9: rgb(255 193 7 / .11);
  --lms-color-compat-d01004761c: rgb(255 255 255 / 75%);
  --lms-color-compat-d14657dc5e: #1a2450;
  --lms-color-compat-d14f901611: #fff;
  --lms-color-compat-d2337bffb0: #ffffff00;
  --lms-color-compat-d25667b708: #404142;
  --lms-color-compat-d45186d6d7: #e0f2fe;
  --lms-color-compat-d4b8c12b5f: rgba(56,189,248,.24);
  --lms-color-compat-d6c093003c: rgba(63, 185, 80, .08);
  --lms-color-compat-d7c716a22c: rgba(63,185,80,.1);
  --lms-color-compat-d8b715e980: rgba(124,92,255,.22);
  --lms-color-compat-d9167fd7b0: #484f58;
  --lms-color-compat-da7e5f1d55: #f1076f;
  --lms-color-compat-db22b4e747: rgb(0 0 0 / 0.14);
  --lms-color-compat-dc0c508c40: rgba(0,0,0,.16);
  --lms-color-compat-dc9d658642: #c27400;
  --lms-color-compat-df018f564c: #2563eb;
  --lms-color-compat-e082d125f0: #0e1316;
  --lms-color-compat-e17a016746: rgba(124,92,255,.35);
  --lms-color-compat-e21d663d4a: #101626;
  --lms-color-compat-e2ea3a523e: #f2f2f2;
  --lms-color-compat-e49ac12337: #161b22;
  --lms-color-compat-e65a3569e0: rgba(255,255,255,.14);
  --lms-color-compat-e66b9d0a8e: #cbd5e1;
  --lms-color-compat-e6c6f1059d: rgba(255,255,255,.72);
  --lms-color-compat-e6d392acb3: rgba(10,15,29,.86);
  --lms-color-compat-e76b1090e2: #010409;
  --lms-color-compat-e7d1bbbea9: rgba(255, 255, 255, 0.035);
  --lms-color-compat-e82e3e8d8d: rgb(255 255 255 / 30%);
  --lms-color-compat-e8db479080: rgba(255, 255, 255, 0.12);
  --lms-color-compat-e99bd4116a: #3b5998;
  --lms-color-compat-ea04407e74: rgba(37,99,235,.9);
  --lms-color-compat-eb37436eb4: rgba(124,92,255,.10);
  --lms-color-compat-ed5b0bee05: #fef3c7;
  --lms-color-compat-eeab03cf7d: rgba(250,204,21,.10);
  --lms-color-compat-eeb798c11f: rgba(255, 255, 255, 0.13);
  --lms-color-compat-f07a282945: #ffe9aa;
  --lms-color-compat-f0ecda7f1e: #07111f;
  --lms-color-compat-f0fe225bfe: rgba(0,0,0,.14);
  --lms-color-compat-f14df18295: rgba(255,255,255,.085);
  --lms-color-compat-f1a79fee73: rgba(1,4,9,.5);
  --lms-color-compat-f25b5edd39: rgba(17,24,39,.96);
  --lms-color-compat-f2aaafa501: #56ccf2;
  --lms-color-compat-f323018336: rgba(248, 81, 73, .2);
  --lms-color-compat-f3247c8734: rgba(248, 81, 73, .4);
  --lms-color-compat-f414224812: rgba(56, 189, 248, 0.28);
  --lms-color-compat-f581093e7d: #3e7bff;
  --lms-color-compat-f60cdf0a7b: #94a3b8;
  --lms-color-compat-f677f22640: rgba(0, 0, 0, 0.34);
  --lms-color-compat-f6ccfcc268: rgb(255 255 255 / 20%);
  --lms-color-compat-f714e7af2b: rgb(255 255 255 / 45%);
  --lms-color-compat-f733503564: #c8d4ee;
  --lms-color-compat-f8c13cc3f4: #2575fc;
  --lms-color-compat-f8febc78da: #58a6ff;
  --lms-color-compat-fb73b2b0f8: #facc15;
  --lms-color-compat-fe4c951014: #dffef7;
  --lms-color-compat-fee9e56d8c: #e6edf3;
  --lms-color-compat-ff1b8a75b0: #2f80ed;
  --lms-color-compat-ff3611848c: #16e15e;

  /* Typography */
  --lms-font-family: "LMS Vazirmatn", Vazirmatn, Tahoma, Arial, sans-serif;
  --lms-font-family-mono: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", monospace;
  --lms-font-size-caption: 0.75rem;
  --lms-font-size-label: 0.8125rem;
  --lms-font-size-body-sm: 0.875rem;
  --lms-font-size-body: 1rem;
  --lms-font-size-title-sm: 1.125rem;
  --lms-font-size-title: 1.25rem;
  --lms-font-size-heading-sm: 1.5rem;
  --lms-font-size-heading: 1.875rem;
  --lms-font-size-display: 2.25rem;
  --lms-font-weight-regular: 400;
  --lms-font-weight-medium: 500;
  --lms-font-weight-semibold: 600;
  --lms-font-weight-bold: 700;
  --lms-line-height-tight: 1.35;
  --lms-line-height-heading: 1.5;
  --lms-line-height-body: 1.75;

  /* Spacing: 4/8/12/16/24/32/48 */
  --lms-space-0: 0;
  --lms-space-1: 0.25rem;
  --lms-space-2: 0.5rem;
  --lms-space-3: 0.75rem;
  --lms-space-4: 1rem;
  --lms-space-6: 1.5rem;
  --lms-space-8: 2rem;
  --lms-space-12: 3rem;

  /* Radius */
  --lms-radius-sm: 0.5rem;
  --lms-radius-md: 0.75rem;
  --lms-radius-lg: 1rem;
  --lms-radius-xl: 1.25rem;
  --lms-radius-pill: 999px;

  /* Elevation */
  --lms-shadow-card: 0 8px 24px rgb(15 23 42 / 8%);
  --lms-shadow-dropdown: 0 16px 40px rgb(15 23 42 / 16%);
  --lms-shadow-modal: 0 28px 80px rgb(15 23 42 / 24%);
  --lms-shadow-focus: 0 0 0 0.25rem rgb(37 99 235 / 24%);

  /* Motion */
  --lms-duration-fast: 120ms;
  --lms-duration-normal: 200ms;
  --lms-duration-slow: 320ms;
  --lms-ease-standard: cubic-bezier(0.2, 0, 0, 1);
  --lms-ease-emphasized: cubic-bezier(0.2, 0.8, 0.2, 1);

  /* Layering */
  --lms-z-dropdown: 1000;
  --lms-z-sticky: 1020;
  --lms-z-drawer: 1040;
  --lms-z-modal: 1060;
  --lms-z-toast: 1080;
}

:root[data-lms-theme="dark"],
:root[data-theme="dark"],
:root[data-bs-theme="dark"] {
  color-scheme: dark;
  --lms-color-canvas: #070b14;
  --lms-color-surface: #0f172a;
  --lms-color-surface-subtle: #172033;
  --lms-color-surface-elevated: #1e293b;
  --lms-color-surface-inverse: #f8fafc;
  --lms-color-border: #475569;
  --lms-color-divider: #334155;
  --lms-color-text-primary: #f8fafc;
  --lms-color-text-secondary: #cbd5e1;
  --lms-color-text-muted: #94a3b8;
  --lms-color-text-inverse: #0f172a;
  --lms-color-link: #93c5fd;
  --lms-color-link-hover: #dbeafe;
  --lms-color-focus-ring: #60a5fa;
  --lms-color-overlay: rgb(2 6 23 / 74%);

  --lms-color-success-text: #bbf7d0;
  --lms-color-success-bg: #052e16;
  --lms-color-success-border: #166534;
  --lms-color-warning-text: #fef08a;
  --lms-color-warning-bg: #422006;
  --lms-color-warning-border: #a16207;
  --lms-color-danger-text: #fecaca;
  --lms-color-danger-bg: #450a0a;
  --lms-color-danger-border: #b91c1c;
  --lms-color-info-text: #bfdbfe;
  --lms-color-info-bg: #172554;
  --lms-color-info-border: #1d4ed8;

  --lms-shadow-card: 0 10px 30px rgb(0 0 0 / 28%);
  --lms-shadow-dropdown: 0 18px 48px rgb(0 0 0 / 40%);
  --lms-shadow-modal: 0 30px 90px rgb(0 0 0 / 52%);
  --lms-shadow-focus: 0 0 0 0.25rem rgb(96 165 250 / 28%);
}

@media (prefers-contrast: more) {
  :root {
    --lms-color-border: #64748b;
    --lms-color-divider: #94a3b8;
    --lms-color-focus-ring: #1d4ed8;
  }
  :root[data-lms-theme="dark"],
  :root[data-theme="dark"],
  :root[data-bs-theme="dark"] {
    --lms-color-border: #94a3b8;
    --lms-color-divider: #64748b;
    --lms-color-focus-ring: #93c5fd;
  }
}

/* ===== source: typography.css ===== */
/* LMS UI U1 — local Persian typography; only approved weights are exposed. */
@font-face {
  font-family: "LMS Vazirmatn";
  src: url("../../aghdasi-typo/typography/vazirmatn/regular.ef0daa1b5d03.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "LMS Vazirmatn";
  src: url("../../aghdasi-typo/typography/vazirmatn/medium.b3f098d37faf.woff2") format("woff2");
  font-style: normal;
  font-weight: 500;
  font-display: swap;
}

@font-face {
  font-family: "LMS Vazirmatn";
  src: url("../../aghdasi-typo/typography/vazirmatn/semibold.9674a18bbab9.woff2") format("woff2");
  font-style: normal;
  font-weight: 600;
  font-display: swap;
}

@font-face {
  font-family: "LMS Vazirmatn";
  src: url("../../aghdasi-typo/typography/vazirmatn/bold.84e9e88507f1.woff2") format("woff2");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}

.lms-type-display,
.lms-type-heading,
.lms-type-title,
.lms-type-body,
.lms-type-label,
.lms-type-caption {
  font-family: var(--lms-font-family);
  margin-block-start: 0;
}

.lms-type-display {
  font-size: clamp(1.875rem, 1.4rem + 2vw, var(--lms-font-size-display));
  font-weight: var(--lms-font-weight-bold);
  line-height: var(--lms-line-height-tight);
}

.lms-type-heading {
  font-size: clamp(var(--lms-font-size-heading-sm), 1.25rem + 1vw, var(--lms-font-size-heading));
  font-weight: var(--lms-font-weight-bold);
  line-height: var(--lms-line-height-heading);
}

.lms-type-title {
  font-size: var(--lms-font-size-title);
  font-weight: var(--lms-font-weight-semibold);
  line-height: var(--lms-line-height-heading);
}

.lms-type-body {
  font-size: var(--lms-font-size-body-sm);
  font-weight: var(--lms-font-weight-regular);
  line-height: var(--lms-line-height-body);
}

.lms-type-label {
  font-size: var(--lms-font-size-label);
  font-weight: var(--lms-font-weight-medium);
  line-height: var(--lms-line-height-heading);
}

.lms-type-caption {
  font-size: var(--lms-font-size-caption);
  font-weight: var(--lms-font-weight-regular);
  line-height: var(--lms-line-height-heading);
}

.lms-numeric {
  font-variant-numeric: tabular-nums lining-nums;
}

/* ===== source: foundation.css ===== */
/* LMS UI U1 — safe foundation layer. Components migrate in later controlled patches. */
html[data-lms-design-system] {
  /*
   * Compatibility bridge for legacy app.css/rtl.css font variables.
   * The old RTL layer applies --third-font with !important; mapping the
   * legacy variables here keeps the central typography contract effective
   * without editing the legacy stylesheet or adding another !important.
   */
  --main-font: var(--lms-font-family);
  --second-font: var(--lms-font-family);
  --third-font: var(--lms-font-family);
  --forth-font: var(--lms-font-family);
  --fifth-font: var(--lms-font-family);
  --dana-font: var(--lms-font-family);
  --khaton-font: var(--lms-font-family);
  --bottun-font: var(--lms-font-family);
  --title-font: var(--lms-font-family);
  --yekan-font: var(--lms-font-family);
  --vazirmatn: var(--lms-font-family);

  font-family: var(--lms-font-family);
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  text-rendering: optimizeLegibility;
}

html[data-lms-design-system] body,
html[data-lms-design-system] button,
html[data-lms-design-system] input,
html[data-lms-design-system] select,
html[data-lms-design-system] textarea {
  font-family: var(--lms-font-family);
}

html[data-lms-design-system] body {
  min-inline-size: 0;
  color: var(--lms-color-text-primary);
  font-family: var(--lms-font-family);
  font-size: max(var(--lms-font-size-body-sm), 0.875rem);
  line-height: var(--lms-line-height-body);
}

html[data-lms-design-system] :where(h1, h2, h3, h4, h5, h6) {
  line-height: var(--lms-line-height-heading);
  text-wrap: balance;
}

html[data-lms-design-system] :where(p, li, dd, dt, label, input, select, textarea, button) {
  overflow-wrap: anywhere;
}

html[data-lms-design-system] :where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 3px solid var(--lms-color-focus-ring);
  outline-offset: 2px;
  box-shadow: var(--lms-shadow-focus);
}

html[data-lms-design-system] :where(button, [role="button"], input, select, textarea):disabled,
html[data-lms-design-system] :where(button, [role="button"])[aria-disabled="true"] {
  cursor: not-allowed;
}

html[data-lms-design-system] ::selection {
  color: var(--lms-color-text-inverse);
  background: var(--lms-color-brand-700);
}

html[data-lms-design-system] .lms-sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

html[data-lms-design-system] .lms-sr-only-focusable:focus,
html[data-lms-design-system] .lms-sr-only-focusable:focus-visible {
  position: static !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  overflow: visible !important;
  clip: auto !important;
  white-space: normal !important;
}


/* U12 responsive data-surface contract: the wrapper owns horizontal scroll, never the page body. */
html[data-lms-design-system] .lms-table-scroll {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  -webkit-overflow-scrolling: touch;
}

html[data-lms-design-system] .lms-table-scroll > table {
  width: 100%;
  margin-bottom: 0;
}

@media (prefers-reduced-motion: reduce) {
  html[data-lms-design-system] {
    scroll-behavior: auto !important;
  }

  html[data-lms-design-system] *,
  html[data-lms-design-system] *::before,
  html[data-lms-design-system] *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}


@media (forced-colors: active) {
  html[data-lms-design-system] :where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
    outline: 2px solid Highlight;
    outline-offset: 2px;
    box-shadow: none;
  }

  html[data-lms-design-system] :where(button, [role="button"], input, select, textarea):disabled,
  html[data-lms-design-system] :where(button, [role="button"])[aria-disabled="true"] {
    color: GrayText;
    border-color: GrayText;
    opacity: 1;
  }

  html[data-lms-design-system] .lms-skip-link:focus-visible {
    color: CanvasText;
    background: Canvas;
    border: 2px solid Highlight;
  }
}

@media print {
  html[data-lms-design-system] {
    color-scheme: light;
  }
}

/* ===== source: primitives.css ===== */
/* LMS UI U1-P2 — opt-in button and form primitives.
 * Apply with data-lms-primitives="u1-p2" on a page container/body and
 * data-lms-form on forms. Legacy pages remain visually unchanged until migrated.
 */

html[data-lms-design-system] [data-lms-primitives="u1-p2"] {
  --lms-control-height-sm: 2.25rem;
  --lms-control-height-md: 2.75rem;
  --lms-control-height-lg: 3rem;
  --lms-control-padding-inline: var(--lms-space-4);
  --lms-control-bg: var(--lms-color-surface);
  --lms-control-bg-readonly: var(--lms-color-surface-subtle);
  --lms-control-border: var(--lms-color-border);
  --lms-control-placeholder: var(--lms-color-text-muted);
  --lms-control-text: var(--lms-color-text-primary);
}

/* --------------------------------------------------------------------------
 * Button system
 * -------------------------------------------------------------------------- */
html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-btn {
  -webkit-appearance: none;
  appearance: none;
  box-sizing: border-box;
  min-height: var(--lms-control-height-md);
  min-width: var(--lms-control-height-md);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--lms-space-2);
  padding: var(--lms-space-2) var(--lms-space-4);
  border: 1px solid transparent;
  border-radius: var(--lms-radius-md);
  font: inherit;
  font-size: var(--lms-font-size-body-sm);
  font-weight: var(--lms-font-weight-semibold);
  line-height: 1.5;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  user-select: none;
  transition:
    color var(--lms-duration-fast) var(--lms-ease-standard),
    background-color var(--lms-duration-fast) var(--lms-ease-standard),
    border-color var(--lms-duration-fast) var(--lms-ease-standard),
    box-shadow var(--lms-duration-fast) var(--lms-ease-standard),
    transform var(--lms-duration-fast) var(--lms-ease-standard);
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-btn:hover {
  text-decoration: none;
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-btn:active:not(:disabled):not([aria-disabled="true"]) {
  transform: translateY(1px);
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-btn[aria-pressed="true"] {
  border-color: var(--lms-color-brand-500);
  box-shadow: inset 0 0 0 1px var(--lms-color-brand-500);
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-btn:disabled,
html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-btn[aria-disabled="true"] {
  opacity: 0.55;
  cursor: not-allowed;
  pointer-events: none;
  transform: none;
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-btn--sm {
  min-height: var(--lms-control-height-sm);
  min-width: var(--lms-control-height-sm);
  padding: var(--lms-space-1) var(--lms-space-3);
  font-size: var(--lms-font-size-label);
  border-radius: var(--lms-radius-sm);
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-btn--lg {
  min-height: var(--lms-control-height-lg);
  min-width: var(--lms-control-height-lg);
  padding: var(--lms-space-3) var(--lms-space-6);
  font-size: var(--lms-font-size-body);
  border-radius: var(--lms-radius-lg);
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-btn--block {
  width: 100%;
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-btn--primary {
  color: var(--lms-color-neutral-0);
  background: var(--lms-color-brand-600);
  border-color: var(--lms-color-brand-600);
  box-shadow: none;
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-btn--primary:hover {
  color: var(--lms-color-neutral-0);
  background: var(--lms-color-brand-700);
  border-color: var(--lms-color-brand-700);
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-btn--secondary {
  color: var(--lms-color-text-primary);
  background: var(--lms-color-surface-elevated);
  border-color: var(--lms-color-text-muted);
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-btn--secondary:hover {
  color: var(--lms-color-text-primary);
  background: var(--lms-color-surface-subtle);
  border-color: var(--lms-color-text-primary);
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-btn--secondary:focus-visible {
  color: var(--lms-color-text-primary);
  background: var(--lms-color-surface-elevated);
  border-color: var(--lms-color-focus-ring);
  outline: 3px solid var(--lms-color-focus-ring);
  outline-offset: 2px;
  box-shadow: var(--lms-shadow-focus);
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-btn--secondary:active:not(:disabled):not([aria-disabled="true"]),
html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-btn--secondary.active {
  color: var(--lms-color-text-primary);
  background: var(--lms-color-brand-100);
  border-color: var(--lms-color-brand-600);
  box-shadow: inset 0 0 0 1px var(--lms-color-brand-600);
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-btn--secondary:disabled,
html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-btn--secondary.disabled,
html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-btn--secondary[aria-disabled="true"] {
  color: var(--lms-color-text-muted);
  background: var(--lms-color-surface-subtle);
  border-color: var(--lms-color-text-muted);
  opacity: 1;
}

:root[data-lms-theme="dark"] [data-lms-primitives="u1-p2"] .lms-btn--secondary:active:not(:disabled):not([aria-disabled="true"]),
:root[data-lms-theme="dark"] [data-lms-primitives="u1-p2"] .lms-btn--secondary.active,
:root[data-theme="dark"] [data-lms-primitives="u1-p2"] .lms-btn--secondary:active:not(:disabled):not([aria-disabled="true"]),
:root[data-theme="dark"] [data-lms-primitives="u1-p2"] .lms-btn--secondary.active {
  color: var(--lms-color-brand-100);
  background: var(--lms-color-surface-elevated);
  border-color: var(--lms-color-brand-400);
  box-shadow: inset 0 0 0 1px var(--lms-color-brand-400);
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-btn--ghost {
  color: var(--lms-color-link);
  background: transparent;
  border-color: transparent;
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-btn--ghost:hover {
  color: var(--lms-color-link-hover);
  background: var(--lms-color-surface-subtle);
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-btn--link {
  min-height: var(--lms-control-height-md);
  min-width: auto;
  padding: var(--lms-space-1);
  color: var(--lms-color-link);
  background: transparent;
  border-color: transparent;
  border-radius: var(--lms-radius-sm);
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-btn--link:hover {
  color: var(--lms-color-link-hover);
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

html[data-lms-design-system] .lms-btn--warning,
html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-btn--warning {
  color: var(--lms-color-warning-text);
  background: var(--lms-color-warning-bg);
  border-color: var(--lms-color-warning-border);
}
html[data-lms-design-system] .lms-btn--warning:hover,
html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-btn--warning:hover {
  filter: brightness(0.96);
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-btn--danger {
  color: var(--lms-color-danger-text);
  background: var(--lms-color-danger-bg);
  border-color: var(--lms-color-danger-border);
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-btn--danger:hover {
  filter: brightness(0.96);
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-btn--success {
  color: var(--lms-color-success-text);
  background: var(--lms-color-success-bg);
  border-color: var(--lms-color-success-border);
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-btn--success:hover {
  border-color: var(--lms-color-success-text);
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-btn--icon {
  width: var(--lms-control-height-md);
  padding: 0;
  flex: 0 0 auto;
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-btn__icon {
  width: 1.25rem;
  height: 1.25rem;
  flex: 0 0 auto;
}

html[dir="rtl"][data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-btn__icon--start {
  order: -1;
}

html[dir="rtl"][data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-btn__icon--end {
  order: 1;
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-btn[aria-busy="true"],
html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-btn.is-loading {
  position: relative;
  cursor: wait;
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-btn[aria-busy="true"]::before,
html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-btn.is-loading::before {
  content: "";
  width: 1rem;
  height: 1rem;
  flex: 0 0 auto;
  border: 2px solid currentColor;
  border-inline-end-color: transparent;
  border-radius: 50%;
  animation: lms-spin 0.75s linear infinite;
}

@keyframes lms-spin {
  to { transform: rotate(360deg); }
}

/* --------------------------------------------------------------------------
 * Form primitives
 * -------------------------------------------------------------------------- */
html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-form {
  color: var(--lms-color-text-primary);
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-field {
  display: flex;
  flex-direction: column;
  gap: var(--lms-space-2);
  min-width: 0;
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-field__label,
html[data-lms-design-system] [data-lms-primitives="u1-p2"] .form-label {
  margin: 0;
  color: var(--lms-color-text-primary);
  font-size: var(--lms-font-size-label);
  font-weight: var(--lms-font-weight-semibold);
  line-height: var(--lms-line-height-heading);
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-required-marker {
  margin-inline-start: var(--lms-space-1);
  color: var(--lms-color-danger-text);
  font-size: var(--lms-font-size-caption);
  font-weight: var(--lms-font-weight-bold);
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] :where(
  .lms-control,
  .form-control,
  .form-select,
  input[type="text"],
  input[type="email"],
  input[type="password"],
  input[type="search"],
  input[type="tel"],
  input[type="url"],
  input[type="number"],
  input[type="date"],
  input[type="time"],
  input[type="file"],
  select,
  textarea
) {
  box-sizing: border-box;
  width: 100%;
  min-height: var(--lms-control-height-md);
  margin: 0;
  padding: var(--lms-space-2) var(--lms-control-padding-inline);
  color: var(--lms-control-text);
  caret-color: var(--lms-color-brand-500);
  background-color: var(--lms-control-bg);
  background-image: none;
  border: 1px solid var(--lms-control-border);
  border-radius: var(--lms-radius-md);
  box-shadow: none;
  font: inherit;
  font-size: var(--lms-font-size-body-sm);
  line-height: 1.5;
  transition:
    background-color var(--lms-duration-fast) var(--lms-ease-standard),
    border-color var(--lms-duration-fast) var(--lms-ease-standard),
    box-shadow var(--lms-duration-fast) var(--lms-ease-standard);
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] textarea {
  min-height: 7rem;
  resize: vertical;
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] :where(select, .form-select) {
  -webkit-appearance: auto;
  appearance: auto;
  padding-inline-end: var(--lms-space-6);
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] :where(.lms-control, .form-control, .form-select, input, select, textarea)::placeholder {
  color: var(--lms-control-placeholder);
  opacity: 1;
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] :where(.lms-control, .form-control, .form-select, input, select, textarea):hover:not(:disabled):not([readonly]) {
  border-color: var(--lms-color-neutral-400);
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] :where(.lms-control, .form-control, .form-select, input, select, textarea):focus,
html[data-lms-design-system] [data-lms-primitives="u1-p2"] :where(.lms-control, .form-control, .form-select, input, select, textarea):focus-visible {
  color: var(--lms-control-text);
  background-color: var(--lms-control-bg);
  border-color: var(--lms-color-focus-ring);
  outline: 0;
  box-shadow: var(--lms-shadow-focus);
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] :where(.lms-control, .form-control, .form-select, input, select, textarea):disabled {
  color: var(--lms-color-text-muted);
  background-color: var(--lms-color-surface-subtle);
  border-color: var(--lms-color-divider);
  opacity: 0.72;
  cursor: not-allowed;
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] :where(.lms-control, .form-control, .form-select, input, select, textarea)[readonly] {
  color: var(--lms-color-text-secondary);
  background-color: var(--lms-control-bg-readonly);
  border-style: dashed;
  cursor: default;
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] :where(.lms-control, .form-control, .form-select, input, select, textarea)[aria-invalid="true"],
html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-field.is-invalid :where(.lms-control, .form-control, .form-select, input, select, textarea) {
  border-color: var(--lms-color-danger-border);
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] :where(.lms-control, .form-control, .form-select, input, select, textarea)[aria-invalid="true"]:focus,
html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-field.is-invalid :where(.lms-control, .form-control, .form-select, input, select, textarea):focus {
  box-shadow: var(--lms-shadow-focus);
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-field.is-valid :where(.lms-control, .form-control, .form-select, input, select, textarea),
html[data-lms-design-system] [data-lms-primitives="u1-p2"] :where(.lms-control, .form-control, .form-select, input, select, textarea)[aria-invalid="false"][data-lms-validated="true"] {
  border-color: var(--lms-color-success-border);
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-field__hint {
  margin: 0;
  color: var(--lms-color-text-muted);
  font-size: var(--lms-font-size-caption);
  line-height: var(--lms-line-height-heading);
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-field__error {
  margin: 0;
  color: var(--lms-color-danger-text);
  font-size: var(--lms-font-size-label);
  font-weight: var(--lms-font-weight-medium);
  line-height: var(--lms-line-height-heading);
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-form-summary {
  padding: var(--lms-space-3) var(--lms-space-4);
  color: var(--lms-color-danger-text);
  background: var(--lms-color-danger-bg);
  border: 1px solid var(--lms-color-danger-border);
  border-radius: var(--lms-radius-md);
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-check {
  display: flex;
  align-items: flex-start;
  gap: var(--lms-space-2);
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] :where(input[type="checkbox"], input[type="radio"], .form-check-input) {
  -webkit-appearance: auto;
  appearance: auto;
  width: 1.125rem;
  height: 1.125rem;
  min-height: auto;
  flex: 0 0 auto;
  margin: 0.2rem 0 0;
  padding: 0;
  accent-color: var(--lms-color-brand-600);
  border: 1px solid var(--lms-color-border);
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-switch {
  display: inline-flex;
  align-items: center;
  gap: var(--lms-space-2);
  min-height: var(--lms-control-height-md);
  cursor: pointer;
  user-select: none;
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-switch__control {
  -webkit-appearance: none;
  appearance: none;
  position: relative;
  width: 2.75rem;
  height: 1.5rem;
  min-height: 1.5rem;
  flex: 0 0 auto;
  margin: 0;
  padding: 0;
  background: var(--lms-color-neutral-300);
  border: 1px solid var(--lms-color-border);
  border-radius: var(--lms-radius-pill);
  cursor: pointer;
  transition:
    background-color var(--lms-duration-fast) var(--lms-ease-standard),
    border-color var(--lms-duration-fast) var(--lms-ease-standard);
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-switch__control::before {
  content: "";
  position: absolute;
  inset-block-start: 0.1875rem;
  inset-inline-start: 0.1875rem;
  width: 1rem;
  height: 1rem;
  background: var(--lms-color-neutral-0);
  border-radius: 50%;
  box-shadow: var(--lms-shadow-card);
  transition: transform var(--lms-duration-fast) var(--lms-ease-standard);
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-switch__control:checked {
  background: var(--lms-color-brand-600);
  border-color: var(--lms-color-brand-600);
}

html[dir="rtl"][data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-switch__control:checked::before {
  transform: translateX(-1.25rem);
}

html[dir="ltr"][data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-switch__control:checked::before {
  transform: translateX(1.25rem);
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-switch__control:disabled {
  cursor: not-allowed;
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] input[type="file"] {
  padding: var(--lms-space-1);
  cursor: pointer;
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] input[type="file"]::file-selector-button {
  min-height: calc(var(--lms-control-height-md) - var(--lms-space-2));
  margin-inline-end: var(--lms-space-3);
  padding: var(--lms-space-1) var(--lms-space-3);
  color: var(--lms-color-text-primary);
  background: var(--lms-color-surface-subtle);
  border: 0;
  border-inline-end: 1px solid var(--lms-color-divider);
  border-radius: var(--lms-radius-sm);
  font: inherit;
  font-weight: var(--lms-font-weight-medium);
  cursor: pointer;
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-password-control {
  position: relative;
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-password-control > input {
  padding-inline-end: 5rem;
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-password-toggle {
  position: absolute;
  inset-block: 0;
  inset-inline-end: var(--lms-space-2);
  min-width: 4rem;
  min-height: 2.25rem;
  margin: auto 0;
  padding: 0 var(--lms-space-2);
  color: var(--lms-color-link);
  background: transparent;
  border: 0;
  border-radius: var(--lms-radius-sm);
  font: inherit;
  font-size: var(--lms-font-size-caption);
  font-weight: var(--lms-font-weight-semibold);
  cursor: pointer;
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-file-preview {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: var(--lms-space-3);
  align-items: center;
  margin-top: var(--lms-space-2);
  padding: var(--lms-space-3);
  color: var(--lms-color-text-secondary);
  background: var(--lms-color-surface-subtle);
  border: 1px dashed var(--lms-color-border);
  border-radius: var(--lms-radius-md);
  font-size: var(--lms-font-size-caption);
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-file-preview[hidden] {
  display: none;
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-file-preview__thumb {
  width: 3rem;
  height: 3rem;
  object-fit: cover;
  border-radius: var(--lms-radius-sm);
  background: var(--lms-color-surface);
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-file-preview__name {
  overflow: hidden;
  color: var(--lms-color-text-primary);
  font-weight: var(--lms-font-weight-semibold);
  text-overflow: ellipsis;
  white-space: nowrap;
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-form[aria-busy="true"] {
  cursor: wait;
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-form[aria-busy="true"] :where(input, select, textarea) {
  pointer-events: none;
}

@media (max-width: 767.98px) {
  html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-btn {
    min-height: 2.75rem;
  }

  html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-btn--sm {
    min-height: 2.75rem;
    min-width: 2.75rem;
  }

  html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-password-toggle,
  html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-check,
  html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-switch {
    min-height: 2.75rem;
  }

  html[data-lms-design-system] [data-lms-primitives="u1-p2"] :where(
    .lms-control,
    .form-control,
    .form-select,
    input[type="text"],
    input[type="email"],
    input[type="password"],
    input[type="search"],
    input[type="tel"],
    input[type="url"],
    input[type="number"],
    input[type="date"],
    input[type="time"],
    input[type="file"],
    select,
    textarea
  ) {
    min-height: 2.75rem;
    font-size: 1rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-btn[aria-busy="true"]::before,
  html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-btn.is-loading::before {
    animation-duration: 1.5s;
  }
}

@media (forced-colors: active) {
  html[data-lms-design-system] [data-lms-primitives="u1-p2"] .lms-btn,
  html[data-lms-design-system] [data-lms-primitives="u1-p2"] :where(.lms-control, .form-control, .form-select, input, select, textarea) {
    border: 1px solid ButtonText;
  }
}

/* ===== source: composites.css ===== */
/* LMS UI U1-P3 — composite components. Explicit classes only; legacy pages are not restyled implicitly. */
html[data-lms-design-system] .lms-page-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--lms-space-4);
  margin-block-end: var(--lms-space-6);
  padding-block-end: var(--lms-space-4);
  border-block-end: 1px solid var(--lms-color-divider);
}
html[data-lms-design-system] .lms-page-header__content { min-width: 0; }
html[data-lms-design-system] .lms-page-header__eyebrow {
  margin: 0 0 var(--lms-space-1);
  color: var(--lms-color-brand-400);
  font-size: var(--lms-font-size-caption);
  font-weight: var(--lms-font-weight-semibold);
}
html[data-lms-design-system] .lms-page-header__title {
  margin: 0;
  color: var(--lms-color-text-primary);
  font-size: clamp(var(--lms-font-size-title), 3vw, var(--lms-font-size-heading));
  font-weight: var(--lms-font-weight-bold);
}
html[data-lms-design-system] .lms-page-header__description {
  max-width: 70ch;
  margin: var(--lms-space-1) 0 0;
  color: var(--lms-color-text-muted);
}
html[data-lms-design-system] .lms-page-header__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--lms-space-2);
}
html[data-lms-design-system] .lms-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  gap: var(--lms-space-2);
  padding: 0;
  margin: 0 0 var(--lms-space-2);
  list-style: none;
  color: var(--lms-color-text-muted);
  font-size: var(--lms-font-size-caption);
}
html[data-lms-design-system] .lms-breadcrumb li + li::before { content: "/"; margin-inline-end: var(--lms-space-2); }

html[data-lms-design-system] .lms-card {
  position: relative;
  color: var(--lms-color-text-primary);
  background: var(--lms-color-surface);
  border: 1px solid var(--lms-color-border);
  border-radius: var(--lms-radius-lg);
  box-shadow: var(--lms-shadow-card);
  overflow: clip;
}
html[data-lms-design-system] .lms-card__header,
html[data-lms-design-system] .lms-card__body,
html[data-lms-design-system] .lms-card__footer { padding: var(--lms-space-4); }
html[data-lms-design-system] .lms-card__header {
  display: flex; align-items: flex-start; justify-content: space-between; gap: var(--lms-space-3);
  border-block-end: 1px solid var(--lms-color-divider);
}
html[data-lms-design-system] .lms-card__footer { border-block-start: 1px solid var(--lms-color-divider); }
html[data-lms-design-system] .lms-card__title { margin: 0; font-size: var(--lms-font-size-title-sm); }
html[data-lms-design-system] .lms-card__description { margin: var(--lms-space-1) 0 0; color: var(--lms-color-text-muted); }
html[data-lms-design-system] .lms-card--action { transition: transform var(--lms-duration-normal) var(--lms-ease-standard), border-color var(--lms-duration-normal) var(--lms-ease-standard), box-shadow var(--lms-duration-normal) var(--lms-ease-standard); }
html[data-lms-design-system] .lms-card--action:hover { transform: translateY(-2px); border-color: var(--lms-color-brand-400); box-shadow: var(--lms-shadow-dropdown); }
html[data-lms-design-system] .lms-card--stat .lms-card__body { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: var(--lms-space-3); }
html[data-lms-design-system] .lms-stat__value { margin: 0; font-size: var(--lms-font-size-heading); font-weight: var(--lms-font-weight-bold); }
html[data-lms-design-system] .lms-stat__label { margin: 0; color: var(--lms-color-text-muted); }
html[data-lms-design-system] .lms-card--selectable { cursor: pointer; }
html[data-lms-design-system] .lms-card--selectable[aria-selected="true"] { border-color: var(--lms-color-brand-500); box-shadow: var(--lms-shadow-focus); }

html[data-lms-design-system] .lms-badge {
  display: inline-flex; align-items: center; gap: var(--lms-space-1);
  min-height: 1.625rem; padding: 0.125rem var(--lms-space-2);
  border: 1px solid var(--lms-color-border); border-radius: var(--lms-radius-pill);
  color: var(--lms-color-text-secondary); background: var(--lms-color-surface-subtle);
  font-size: var(--lms-font-size-caption); font-weight: var(--lms-font-weight-semibold); line-height: 1.4;
}
html[data-lms-design-system] .lms-badge--success { color: var(--lms-color-success-text); background: var(--lms-color-success-bg); border-color: var(--lms-color-success-border); }
html[data-lms-design-system] .lms-badge--warning { color: var(--lms-color-warning-text); background: var(--lms-color-warning-bg); border-color: var(--lms-color-warning-border); }
html[data-lms-design-system] .lms-badge--danger { color: var(--lms-color-danger-text); background: var(--lms-color-danger-bg); border-color: var(--lms-color-danger-border); }
html[data-lms-design-system] .lms-badge--info { color: var(--lms-color-info-text); background: var(--lms-color-info-bg); border-color: var(--lms-color-info-border); }
html[data-lms-design-system] .lms-badge--neutral { color: var(--lms-color-text-secondary); background: var(--lms-color-surface-subtle); border-color: var(--lms-color-divider); }

html[data-lms-design-system] .lms-alert {
  display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: start; gap: var(--lms-space-3);
  padding: var(--lms-space-3) var(--lms-space-4); border: 1px solid var(--lms-color-border);
  border-radius: var(--lms-radius-md); color: var(--lms-color-text-primary); background: var(--lms-color-surface-subtle);
}
html[data-lms-design-system] .lms-alert__title { margin: 0; font-weight: var(--lms-font-weight-bold); }
html[data-lms-design-system] .lms-alert__message { margin: 0; color: inherit; }
html[data-lms-design-system] .lms-alert--success { color: var(--lms-color-success-text); background: var(--lms-color-success-bg); border-color: var(--lms-color-success-border); }
html[data-lms-design-system] .lms-alert--warning { color: var(--lms-color-warning-text); background: var(--lms-color-warning-bg); border-color: var(--lms-color-warning-border); }
html[data-lms-design-system] .lms-alert--danger { color: var(--lms-color-danger-text); background: var(--lms-color-danger-bg); border-color: var(--lms-color-danger-border); }
html[data-lms-design-system] .lms-alert--info { color: var(--lms-color-info-text); background: var(--lms-color-info-bg); border-color: var(--lms-color-info-border); }
html[data-lms-design-system] .lms-alert__dismiss { align-self: center; }

html[data-lms-design-system] .lms-cluster { display: flex; flex-wrap: wrap; align-items: center; gap: var(--lms-space-2); }
html[data-lms-design-system] .lms-stack { display: grid; gap: var(--lms-space-4); }
html[data-lms-design-system] .lms-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr)); gap: var(--lms-space-4); }

@media (max-width: 47.99rem) {
  html[data-lms-design-system] .lms-page-header { flex-direction: column; }
  html[data-lms-design-system] .lms-page-header__actions { width: 100%; }
  html[data-lms-design-system] .lms-page-header__actions > .lms-btn { flex: 1 1 auto; }
  html[data-lms-design-system] .lms-alert { grid-template-columns: auto minmax(0,1fr); }
  html[data-lms-design-system] .lms-alert__dismiss { grid-column: 2; justify-self: end; }
}

/* FIX-017 — theme-semantic tables and light-theme hero contrast */
/* FIX-017 v1.0.2 — semantic table marker may live on <table> or <thead> */
html[data-lms-design-system] .table.lms-theme-table,
html[data-lms-design-system] .table > thead.lms-theme-table {
  --bs-table-color: var(--lms-color-text-primary);
  --bs-table-bg: var(--lms-color-surface);
  --bs-table-striped-color: var(--lms-color-text-primary);
  --bs-table-striped-bg: var(--lms-color-surface-subtle);
  --bs-table-hover-color: var(--lms-color-text-primary);
  --bs-table-hover-bg: var(--lms-color-info-bg);
  --bs-table-border-color: var(--lms-color-border);
  color: var(--lms-color-text-primary);
  border-color: var(--lms-color-border);
}

html[data-lms-design-system] .table.lms-theme-table > thead > tr > *,
html[data-lms-design-system] .table > thead.lms-theme-table > tr > * {
  --bs-table-bg: var(--lms-color-surface-subtle);
  color: var(--lms-color-text-primary);
  background-color: var(--lms-color-surface-subtle);
  border-color: var(--lms-color-border);
}

html[data-lms-design-system] .table.lms-theme-table > tbody > tr > *,
html[data-lms-design-system] .table > thead.lms-theme-table ~ tbody > tr > * {
  color: var(--lms-color-text-primary);
  border-color: var(--lms-color-border);
}

html[data-lms-design-system] .table.lms-theme-table.table-hover > tbody > tr:hover > *,
html[data-lms-design-system] .table.table-hover > thead.lms-theme-table ~ tbody > tr:hover > *,
html[data-lms-design-system] .table.lms-theme-table > tbody > tr.table-active > *,
html[data-lms-design-system] .table > thead.lms-theme-table ~ tbody > tr.table-active > *,
html[data-lms-design-system] .table.lms-theme-table > tbody > tr[aria-selected="true"] > *,
html[data-lms-design-system] .table > thead.lms-theme-table ~ tbody > tr[aria-selected="true"] > * {
  --bs-table-accent-bg: var(--lms-color-info-bg);
  color: var(--lms-color-text-primary);
  background-color: var(--lms-color-info-bg);
}

html[data-lms-design-system] .table.lms-theme-table > tbody > tr:only-child > td[colspan],
html[data-lms-design-system] .table.lms-theme-table .lms-table-empty,
html[data-lms-design-system] .table > thead.lms-theme-table ~ tbody > tr:only-child > td[colspan],
html[data-lms-design-system] .table > thead.lms-theme-table ~ tbody .lms-table-empty {
  color: var(--lms-color-text-secondary);
  background-color: var(--lms-color-surface-subtle);
}

html[data-lms-design-system][data-lms-theme="light"] .lms-theme-hero {
  color: var(--lms-color-text-primary);
  background: var(--lms-color-surface-elevated);
  border: 1px solid var(--lms-color-border);
  border-radius: var(--lms-radius-lg);
  padding: var(--lms-space-4);
}

html[data-lms-design-system][data-lms-theme="light"] .lms-theme-hero :is(h1,h2,h3,h4,h5,h6,strong) {
  color: var(--lms-color-text-primary);
}

html[data-lms-design-system][data-lms-theme="light"] .lms-theme-hero :is(p,.text-muted,.text-white-50,.muted) {
  color: var(--lms-color-text-secondary) !important;
}

/* ===== source: interactions.css ===== */
/* LMS UI U1-P4 — interactive components. */
html[data-lms-design-system] .lms-overlay {
  position: fixed; inset: 0; z-index: var(--lms-z-drawer); background: var(--lms-color-overlay);
  opacity: 0; visibility: hidden; transition: opacity var(--lms-duration-normal) var(--lms-ease-standard), visibility var(--lms-duration-normal) var(--lms-ease-standard);
}
html[data-lms-design-system] .lms-overlay[data-open="true"] { opacity: 1; visibility: visible; }
html[data-lms-design-system] .lms-dialog,
html[data-lms-design-system] .lms-drawer {
  color: var(--lms-color-text-primary); background: var(--lms-color-surface-elevated);
  border: 1px solid var(--lms-color-border); box-shadow: var(--lms-shadow-modal);
}
html[data-lms-design-system] .lms-dialog {
  width: min(calc(100% - 2rem), 36rem); max-height: min(90vh, 48rem); overflow: auto;
  margin: auto; padding: 0; border-radius: var(--lms-radius-xl);
}
html[data-lms-design-system] .lms-dialog::backdrop { background: var(--lms-color-overlay); }
html[data-lms-design-system] .lms-dialog[hidden] { display: none; }
html[data-lms-design-system] .lms-dialog__header,
html[data-lms-design-system] .lms-dialog__body,
html[data-lms-design-system] .lms-dialog__footer { padding: var(--lms-space-4); }
html[data-lms-design-system] .lms-dialog__header { display: flex; justify-content: space-between; gap: var(--lms-space-3); border-block-end: 1px solid var(--lms-color-divider); }
html[data-lms-design-system] .lms-dialog__footer { display: flex; justify-content: flex-end; gap: var(--lms-space-2); border-block-start: 1px solid var(--lms-color-divider); }
html[data-lms-design-system] .lms-drawer {
  position: fixed; inset-block: 0; inset-inline-end: 0; z-index: var(--lms-z-drawer);
  width: min(92vw, 24rem); overflow: auto; transform: translateX(-105%);
  transition: transform var(--lms-duration-normal) var(--lms-ease-emphasized);
}
html[dir="ltr"][data-lms-design-system] .lms-drawer { transform: translateX(105%); }
html[data-lms-design-system] .lms-drawer[data-open="true"] { transform: translateX(0); }
html[data-lms-design-system] .lms-dropdown { position: relative; display: inline-flex; }
html[data-lms-design-system] .lms-dropdown__menu {
  position: absolute; inset-block-start: calc(100% + var(--lms-space-2)); inset-inline-end: 0;
  z-index: var(--lms-z-dropdown); min-width: 13rem; max-width: min(90vw, 22rem); padding: var(--lms-space-2);
  color: var(--lms-color-text-primary); background: var(--lms-color-surface-elevated);
  border: 1px solid var(--lms-color-border); border-radius: var(--lms-radius-md); box-shadow: var(--lms-shadow-dropdown);
}
html[data-lms-design-system] .lms-dropdown__menu[hidden] { display: none; }
html[data-lms-design-system] .lms-dropdown__item {
  width: 100%; display: flex; align-items: center; gap: var(--lms-space-2); min-height: 2.75rem;
  padding: var(--lms-space-2) var(--lms-space-3); color: var(--lms-color-text-primary); background: transparent;
  border: 0; border-radius: var(--lms-radius-sm); text-align: start; text-decoration: none; cursor: pointer;
}
html[data-lms-design-system] .lms-dropdown__item:hover,
html[data-lms-design-system] .lms-dropdown__item:focus-visible { background: var(--lms-color-surface-subtle); }
html[data-lms-design-system] .lms-tooltip {
  position: fixed; z-index: var(--lms-z-toast); max-width: 18rem; padding: var(--lms-space-1) var(--lms-space-2);
  color: var(--lms-color-text-inverse); background: var(--lms-color-surface-inverse); border-radius: var(--lms-radius-sm);
  font-size: var(--lms-font-size-caption); box-shadow: var(--lms-shadow-dropdown); pointer-events: none;
}
html[data-lms-design-system] .lms-toast-region {
  position: fixed; inset-block-start: var(--lms-space-4); inset-inline-start: var(--lms-space-4);
  z-index: var(--lms-z-toast); width: min(calc(100vw - 2rem), 24rem); display: grid; gap: var(--lms-space-2); pointer-events: none;
}
html[data-lms-design-system] .lms-toast {
  display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: var(--lms-space-2); align-items: start;
  padding: var(--lms-space-3); color: var(--lms-color-text-primary); background: var(--lms-color-surface-elevated);
  border: 1px solid var(--lms-color-border); border-radius: var(--lms-radius-md); box-shadow: var(--lms-shadow-dropdown);
  pointer-events: auto; animation: lms-toast-enter var(--lms-duration-normal) var(--lms-ease-emphasized);
}
html[data-lms-design-system] .lms-toast[data-tone="success"] { border-color: var(--lms-color-success-border); }
html[data-lms-design-system] .lms-toast[data-tone="warning"] { border-color: var(--lms-color-warning-border); }
html[data-lms-design-system] .lms-toast[data-tone="danger"] { border-color: var(--lms-color-danger-border); }
html[data-lms-design-system] .lms-toast[data-tone="info"] { border-color: var(--lms-color-info-border); }
@keyframes lms-toast-enter { from { opacity: 0; transform: translateY(-0.5rem); } to { opacity: 1; transform: none; } }
@media (max-width: 47.99rem) {
  html[data-lms-design-system] .lms-dialog { width: calc(100% - 1rem); max-height: calc(100vh - 1rem); }
  html[data-lms-design-system] .lms-drawer { width: 100%; }
  html[data-lms-design-system] .lms-toast-region { inset-inline: var(--lms-space-2); width: auto; }
}

/* U1 final accessibility bridge for legacy shell/public navigation controls. */
html[data-lms-design-system] [data-lms-primitives="u1-p2"] .navbar-toggler,
html[data-lms-design-system] [data-lms-primitives="u1-p2"] .switcher-btn,
html[data-lms-design-system] [data-lms-primitives="u1-p2"] .close-switcher {
  box-sizing: border-box;
  inline-size: var(--lms-control-height-md);
  min-inline-size: var(--lms-control-height-md);
  block-size: var(--lms-control-height-md);
  min-block-size: var(--lms-control-height-md);
  display: inline-grid;
  place-items: center;
  padding: 0;
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] .switcher-btn {
  border: 0;
}

html[data-lms-design-system] [data-lms-primitives="u1-p2"] .navbar-toggler:focus-visible,
html[data-lms-design-system] [data-lms-primitives="u1-p2"] .switcher-btn:focus-visible,
html[data-lms-design-system] [data-lms-primitives="u1-p2"] .close-switcher:focus-visible {
  outline: var(--lms-focus-ring-width) solid var(--lms-color-focus-ring);
  outline-offset: var(--lms-focus-ring-offset);
}

/* U1 final mobile touch target for the legacy profile dropdown trigger. */
html[data-lms-design-system] [data-lms-primitives="u1-p2"] .user-box > .nav-link {
  min-block-size: var(--lms-control-height-md);
}

/* ===== source: states.css ===== */
/* LMS UI U1-P5 — loading/empty/error/permission/offline/success states. */
html[data-lms-design-system] .lms-state {
  min-height: 12rem; display: grid; place-items: center; padding: var(--lms-space-8) var(--lms-space-4);
  text-align: center; color: var(--lms-color-text-primary); background: var(--lms-color-surface);
  border: 1px dashed var(--lms-color-border); border-radius: var(--lms-radius-lg);
}
html[data-lms-design-system] .lms-state__content { width: min(100%, 34rem); display: grid; justify-items: center; gap: var(--lms-space-2); }
html[data-lms-design-system] .lms-state__icon { width: 3rem; height: 3rem; color: var(--lms-color-brand-400); }
html[data-lms-design-system] .lms-state__title { margin: 0; font-size: var(--lms-font-size-title); }
html[data-lms-design-system] .lms-state__description { margin: 0; color: var(--lms-color-text-muted); }
html[data-lms-design-system] .lms-state[data-state="error"] .lms-state__icon,
html[data-lms-design-system] .lms-state[data-state="permission"] .lms-state__icon { color: var(--lms-color-danger-text); }
html[data-lms-design-system] .lms-state[data-state="success"] .lms-state__icon { color: var(--lms-color-success-text); }
html[data-lms-design-system] .lms-state[data-state="offline"] .lms-state__icon { color: var(--lms-color-warning-text); }
html[data-lms-design-system] .lms-skeleton { position: relative; overflow: hidden; min-height: 1rem; background: var(--lms-color-surface-subtle); border-radius: var(--lms-radius-sm); }
html[data-lms-design-system] .lms-skeleton::after { content:""; position:absolute; inset:0; transform:translateX(100%); background:linear-gradient(90deg,transparent,rgb(148 163 184 / 18%),transparent); animation:lms-skeleton 1.4s infinite; }
@keyframes lms-skeleton { to { transform: translateX(-100%); } }
html[data-lms-design-system] .lms-spinner { width: 1.25rem; height: 1.25rem; border: 2px solid var(--lms-color-divider); border-block-start-color: var(--lms-color-brand-500); border-radius: 50%; animation: lms-spin .8s linear infinite; }
@keyframes lms-spin { to { transform: rotate(360deg); } }
html[data-lms-design-system] .lms-progress { width: 100%; height: .625rem; appearance: none; overflow: hidden; background: var(--lms-color-surface-subtle); border: 0; border-radius: var(--lms-radius-pill); }
html[data-lms-design-system] .lms-progress::-webkit-progress-bar { background: var(--lms-color-surface-subtle); }
html[data-lms-design-system] .lms-progress::-webkit-progress-value { background: var(--lms-color-brand-500); border-radius: inherit; }
html[data-lms-design-system] .lms-progress::-moz-progress-bar { background: var(--lms-color-brand-500); border-radius: inherit; }
html[data-lms-design-system] [data-lms-progress-value] { width: calc(var(--lms-progress-value, 0) * 1%); }
html[data-lms-design-system] .lms-offline-banner { position: sticky; inset-block-start: 0; z-index: var(--lms-z-sticky); padding: var(--lms-space-2) var(--lms-space-4); color: var(--lms-color-warning-text); background: var(--lms-color-warning-bg); border-block-end: 1px solid var(--lms-color-warning-border); text-align: center; }
html[data-lms-design-system] .lms-offline-banner[hidden] { display: none; }
html[data-lms-design-system] .lms-job-status { display: grid; gap: var(--lms-space-3); }
@media (prefers-reduced-motion: reduce) { html[data-lms-design-system] .lms-skeleton::after, html[data-lms-design-system] .lms-spinner { animation: none; } }

/* U13 state quality: reserve geometry, distinguish outcomes, and keep actions usable on mobile. */
html[data-lms-design-system] .lms-state[data-state="loading"] { border-style: solid; background: var(--lms-color-info-bg); border-color: var(--lms-color-info-border); }
html[data-lms-design-system] .lms-state[data-state="no-result"] { background: var(--lms-color-surface-subtle); }
html[data-lms-design-system] .lms-state[data-state="error"],
html[data-lms-design-system] .lms-state[data-state="permission"] { background: var(--lms-color-danger-bg); border-color: var(--lms-color-danger-border); }
html[data-lms-design-system] .lms-state[data-state="success"] { background: var(--lms-color-success-bg); border-color: var(--lms-color-success-border); }
html[data-lms-design-system] .lms-state__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--lms-space-2); margin-block-start: var(--lms-space-2); }
html[data-lms-design-system] .lms-skeleton[data-lms-skeleton-block] { min-block-size: 5rem; }
html[data-lms-design-system] [data-lms-progress-value] { min-inline-size: 0; }
@media (max-width: 35.99rem) {
  html[data-lms-design-system] .lms-state { min-height: 10rem; padding: var(--lms-space-6) var(--lms-space-3); }
  html[data-lms-design-system] .lms-state__actions { inline-size: 100%; }
  html[data-lms-design-system] .lms-state__actions .lms-btn { inline-size: 100%; }
}

/* ===== source: icons.css ===== */
/* LMS UI U1-P6 — local icon contract. */
html[data-lms-design-system] .lms-icon, html[data-lms-design-system] [data-lms-icon] > svg {
  width: 1.25rem; height: 1.25rem; display: inline-block; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; vertical-align: -.2em;
}
html[data-lms-design-system] .lms-icon--sm { width: 1rem; height: 1rem; }
html[data-lms-design-system] .lms-icon--lg { width: 1.5rem; height: 1.5rem; }
html[data-lms-design-system] .lms-icon-button { position: relative; }

/* ===== source: u1-002-010-adoption.css ===== */
/* LMS UI U1-002..010 — product-wide compatibility and adoption layer.
 * v2.3.0 failed-only gap closure: typography, spacing, touch and form labels.
 */
html[data-lms-design-system] {
  font-size: 100%;
  font-synthesis: none;
  font-kerning: normal;
}
html[data-lms-design-system] :where(button,input,select,textarea,label,summary,[role="button"],.btn,.form-control,.form-select,.dropdown-menu,.modal-content) {
  font-family: var(--lms-font-family);
}
html[data-lms-design-system] :where(h1,h2,h3,h4,h5,h6) {
  font-family: var(--lms-font-family);
  font-weight: var(--lms-font-weight-bold);
  line-height: var(--lms-line-height-heading);
  text-wrap: balance;
}
html[data-lms-design-system] :where(small,.small,.text-small,.caption) {
  font-size: max(var(--lms-font-size-caption), 0.75rem);
  line-height: var(--lms-line-height-heading);
}
html[data-lms-design-system] :where(.lms-numeric,time,data,output,.counter,.count,[data-count]) {
  font-variant-numeric: tabular-nums lining-nums;
}
html[data-lms-design-system] [data-lms-u1-adopted="button"] {
  min-block-size: 2.75rem;
  border-radius: var(--lms-radius-md);
  font-weight: var(--lms-font-weight-semibold);
  line-height: 1.5;
}
html[data-lms-design-system] [data-lms-u1-adopted="button"]:focus-visible {
  outline: 3px solid var(--lms-color-focus-ring);
  outline-offset: 2px;
  box-shadow: var(--lms-shadow-focus);
}
html[data-lms-design-system] [data-lms-u1-adopted="control"] {
  min-block-size: 2.75rem;
  border-radius: var(--lms-radius-md);
  font-size: max(var(--lms-font-size-body-sm), 0.875rem);
  line-height: 1.5;
}
html[data-lms-design-system] [data-lms-u1-adopted="card"] {
  border-radius: var(--lms-radius-lg);
  box-shadow: var(--lms-shadow-card);
}
html[data-lms-design-system] [data-lms-u1-adopted="modal-surface"] {
  border-radius: var(--lms-radius-xl);
  box-shadow: var(--lms-shadow-modal);
}
html[data-lms-design-system] [data-lms-u1-adopted="dropdown-surface"] {
  border-radius: var(--lms-radius-md);
  box-shadow: var(--lms-shadow-dropdown);
}
html[data-lms-design-system] [data-lms-u1-adopted="badge"] {
  border-radius: var(--lms-radius-pill);
  font-size: var(--lms-font-size-caption);
  font-weight: var(--lms-font-weight-semibold);
}
html[data-lms-design-system] [data-lms-u1-adopted="alert"] {
  border-radius: var(--lms-radius-md);
  line-height: var(--lms-line-height-body);
}
html[data-lms-design-system] [data-lms-u1-state] {
  overflow-wrap: anywhere;
  border-radius: var(--lms-radius-lg);
}
html[data-lms-design-system] [data-lms-u1-state="empty"],
html[data-lms-design-system] [data-lms-u1-state="no-result"] { color: var(--lms-color-text-muted); }
html[data-lms-design-system] [data-lms-u1-state="error"] { color: var(--lms-color-danger-text); }
html[data-lms-design-system] [data-lms-u1-state="success"] { color: var(--lms-color-success-text); }
html[data-lms-design-system] [data-lms-u1-state="loading"] { color: var(--lms-color-text-secondary); }
html[data-lms-design-system] .lms-icon,
html[data-lms-design-system] [data-lms-icon] > .lms-icon {
  inline-size: 1.25rem;
  block-size: 1.25rem;
  flex: 0 0 auto;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
  fill: none;
}
html[data-lms-design-system] [data-lms-icon-only="true"] {
  display: inline-grid;
  place-items: center;
  min-inline-size: 2.75rem;
  min-block-size: 2.75rem;
}
html[data-lms-design-system] [data-lms-u1-wrap="true"] {
  min-inline-size: 0;
  max-inline-size: 100%;
  flex-wrap: wrap;
}
html[data-lms-design-system] :where(.lms-page-header,.page-title,.page-header,.card-header,.modal-header,.modal-footer,.header-actions,.toolbar,.action-bar) {
  min-inline-size: 0;
}
@media (max-width: 50rem) {
  html[data-lms-design-system] :where(.lms-page-header,.page-title,.page-header,.card-header,.modal-header,.modal-footer,.header-actions,.toolbar,.action-bar) {
    flex-wrap: wrap;
    max-inline-size: 100%;
  }
  html[data-lms-design-system] :where(.modal-dialog,.lms-dialog,.custom-modal-card,.drawer,.lms-drawer) {
    max-inline-size: calc(100vw - var(--lms-space-4));
  }
  html[data-lms-design-system] :where(button,[role="button"],a.btn,.round-btn,.circle-action,.soft-btn,.mini-btn,.live-control-btn,.live-command-chip,.live-tool-tab,.essay-tool-btn,.tool-card) {
    min-block-size: 2.75rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  html[data-lms-design-system] [data-lms-u1-adopted] { scroll-behavior: auto; }
}


/* v2.3.0 — confirmed Browser Matrix gap closure. */
html[data-lms-design-system] .page-shell {
  max-inline-size: 100%;
  overflow-x: clip;
}
html[data-lms-design-system] [data-lms-u1-adopted="button"] {
  min-inline-size: 2.75rem;
  padding-block: var(--lms-space-2, .5rem) !important;
  padding-inline: var(--lms-space-3, .75rem) !important;
  font-size: max(var(--lms-font-size-body-sm), .875rem) !important;
  font-weight: var(--lms-font-weight-semibold) !important;
}
html[data-lms-design-system] [data-lms-u1-adopted="control"] {
  min-inline-size: 0;
  padding-block: var(--lms-space-2, .5rem) !important;
  padding-inline: var(--lms-space-3, .75rem) !important;
}
html[data-lms-design-system] [data-lms-u1-adopted="badge"] {
  padding-block: var(--lms-space-1, .25rem) !important;
  padding-inline: var(--lms-space-2, .5rem) !important;
  line-height: 1.5 !important;
}
html[data-lms-design-system] [data-lms-u1-adopted="card"]:not(.card) {
  padding-block: var(--lms-space-3, .75rem) !important;
  padding-inline: var(--lms-space-4, 1rem) !important;
}
html[data-lms-design-system] :where(
  .soft-btn,.mini-btn,.live-btn,.live-lobby-chip,.live-tooltip-host,
  .send-btn,.tab-btn,.essay-tool-btn,.live-panel-btn
) {
  font-size: max(var(--lms-font-size-body-sm), .875rem) !important;
}
@media (max-width: 50rem) {
  html[data-lms-design-system] [data-lms-u1-adopted="button"],
  html[data-lms-design-system] [data-lms-icon-only="true"] {
    min-inline-size: 2.75rem !important;
    min-block-size: 2.75rem !important;
  }
}

/* ===== source: legacy-inline-migrations.css ===== */
/* LMS UI U1-P7 — generated replacements for static inline style attributes. */
html[data-lms-design-system] .lms-inline-03fd3ef4d6 {white-space: pre-line;}
html[data-lms-design-system] .lms-inline-08f65a0ee7 {max-width: 820px;}
html[data-lms-design-system] .lms-inline-0faa8260ed {height: 120px; background: rgba(255,255,255,0.05);}
html[data-lms-design-system] .lms-inline-1298b9f8d6 {height:160px;object-fit:cover;}
html[data-lms-design-system] .lms-inline-172f5e3172 {max-height:160px}
html[data-lms-design-system] .lms-inline-1b0e7a2e01 {height:10px;}
html[data-lms-design-system] .lms-inline-1ba51881f3 {width:70px}
html[data-lms-design-system] .lms-inline-254af67eb8 {width:100%;max-height:360px;object-fit:cover;}
html[data-lms-design-system] .lms-inline-2d2b9d4e96 {max-width: 900px;}
html[data-lms-design-system] .lms-inline-32128d3318 {white-space: pre-wrap}
html[data-lms-design-system] .lms-inline-3fa301e161 {width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;}
html[data-lms-design-system] .lms-inline-4908cb0a13 {font-size: 0.85rem;}
html[data-lms-design-system] .lms-inline-4c7d583bb3 {display:inline-block;}
html[data-lms-design-system] .lms-inline-4d73067dfb {top:90px;}
html[data-lms-design-system] .lms-inline-5346564436 {height:8px;}
html[data-lms-design-system] .lms-inline-55db2416be {justify-content:space-between}
html[data-lms-design-system] .lms-inline-59c0a50067 {max-width: 200px; height: auto; border-radius: 4px;}
html[data-lms-design-system] .lms-inline-5c22713a2d {height:190px;object-fit:cover;}
html[data-lms-design-system] .lms-inline-662c8e4334 {width:150px}
html[data-lms-design-system] .lms-inline-6c6c76e4cc {min-width:900px}
html[data-lms-design-system] .lms-inline-6f30f75c6a {height:8px}
html[data-lms-design-system] .lms-inline-85a7e5dde7 {min-width:380px}
html[data-lms-design-system] .lms-inline-88dec3c223 {max-height:65vh;overflow:auto;}
html[data-lms-design-system] .lms-inline-9291d4b6c2 {height: 12px;}
html[data-lms-design-system] .lms-inline-981abf020d {border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:14px;margin-bottom:14px;background:rgba(56,189,248,.08)}
html[data-lms-design-system] .lms-inline-9b4e8fc4e4 {height:180px;object-fit:cover;}
html[data-lms-design-system] .lms-inline-9be7441361 {font-size: 0.9rem;}
html[data-lms-design-system] .lms-inline-aae30f4ce1 {font-size: 0.8rem;}
html[data-lms-design-system] .lms-inline-ad426e4154 {width:260px}
html[data-lms-design-system] .lms-inline-aebc026e77 {width:240px}
html[data-lms-design-system] .lms-inline-b0dfcd35fe {width:430px}
html[data-lms-design-system] .lms-inline-b9b46ea26c {width:150px;height:150px;}
html[data-lms-design-system] .lms-inline-d0466aa33f {display:none;}
html[data-lms-design-system] .lms-inline-d334b57bfc {width:120px}
html[data-lms-design-system] .lms-inline-d5b0dfb2c5 {height:650px;border:0;}
html[data-lms-design-system] .lms-inline-dca60b9525 {max-height:320px}
html[data-lms-design-system] .lms-inline-e1f0ec29ef {height: 250px; background: rgba(255,255,255,0.05);}
html[data-lms-design-system] .lms-inline-e203621317 {min-width:310px}
html[data-lms-design-system] .lms-inline-e2bd13fd5d {direction:rtl}
html[data-lms-design-system] .lms-inline-e60906c9ba {min-width:210px}
html[data-lms-design-system] .lms-inline-f5551d8b47 {max-width: 720px;}
html[data-lms-design-system] .lms-inline-ff58db6a5f {max-width: 150px; height: auto; border-radius: 4px; display: block; margin-bottom: 5px;}
html[data-lms-design-system] .lms-inline-ff6fb370b4 {font-size:72px;}
/* LMS UI-U1-001 — pixel-confirmed main-layout contrast hardening v1.8.8 */
html[data-lms-design-system] body.bg-theme .page-wrapper {
  min-height: calc(100vh - 60px);
  color: var(--lms-color-text-primary);
  background: var(--lms-color-canvas) !important;
  --bs-body-color: var(--lms-color-text-primary);
  --bs-secondary-color: var(--lms-color-text-muted);
  --bs-emphasis-color: var(--lms-color-text-primary);
  --bs-border-color: var(--lms-color-border);
  --bs-card-color: var(--lms-color-text-primary);
  --bs-card-bg: var(--lms-color-surface);
}

html[data-lms-design-system] body.bg-theme .page-content {
  min-height: calc(100vh - 60px);
  color: var(--lms-color-text-primary);
  background: var(--lms-color-canvas);
}

html[data-lms-design-system] .page-wrapper .card,
html[data-lms-design-system] .page-wrapper .lms-card,
html[data-lms-design-system] .page-wrapper .list-group-item {
  color: var(--lms-color-text-primary) !important;
  background-color: var(--lms-color-surface) !important;
  background-image: none !important;
  border-color: var(--lms-color-border) !important;
}

html[data-lms-design-system] .page-wrapper :where(.card-header, .card-footer) {
  color: var(--lms-color-text-primary) !important;
  background: var(--lms-color-surface-subtle) !important;
  border-color: var(--lms-color-divider) !important;
}

html[data-lms-design-system] .page-wrapper :where(.card, .lms-card) :where(h1, h2, h3, h4, h5, h6),
html[data-lms-design-system] .page-wrapper .card-title,
html[data-lms-design-system] .page-wrapper .lms-page-header__title {
  color: var(--lms-color-text-primary) !important;
}

html[data-lms-design-system] .page-wrapper :where(.text-muted, .card-text.text-muted),
html[data-lms-design-system] .page-wrapper .lms-page-header__description,
html[data-lms-design-system] .page-wrapper :where(.card, .lms-card) p.mb-0 {
  color: var(--lms-color-text-muted) !important;
  opacity: 1 !important;
}

html[data-lms-design-system] .page-wrapper .text-white-50 {
  color: var(--lms-color-text-secondary) !important;
  opacity: 1 !important;
}

html[data-lms-design-system] .page-wrapper :where(.text-white, .text-dark) {
  color: var(--lms-color-text-primary) !important;
}

html[data-lms-design-system] .page-wrapper .text-success {
  color: var(--lms-color-success-text) !important;
}

html[data-lms-design-system] .page-wrapper .lms-page-header__eyebrow {
  color: var(--lms-color-link) !important;
}

html[data-lms-design-system] .page-wrapper :where(.alert, .bg-transparent) {
  color: var(--lms-color-text-primary);
  background-color: var(--lms-color-surface-subtle) !important;
}

html[data-lms-design-system] .page-wrapper .alert-info {
  color: var(--lms-color-info-text) !important;
  background: var(--lms-color-info-bg) !important;
  border-color: var(--lms-color-info-border) !important;
}

html[data-lms-design-system] .page-wrapper .alert-warning {
  color: var(--lms-color-warning-text) !important;
  background: var(--lms-color-warning-bg) !important;
  border-color: var(--lms-color-warning-border) !important;
}

html[data-lms-design-system] .page-wrapper :where(.border-light, .border-secondary) {
  border-color: var(--lms-color-border) !important;
}

html[data-lms-design-system] .page-wrapper .btn-outline-secondary {
  color: var(--lms-color-text-primary) !important;
  background: var(--lms-color-surface) !important;
  border-color: var(--lms-color-text-secondary) !important;
}

html[data-lms-design-system] .page-wrapper .btn-outline-light {
  color: var(--lms-color-text-primary) !important;
  background: var(--lms-color-surface) !important;
  border-color: var(--lms-color-border) !important;
}

html[data-lms-design-system] .page-wrapper .btn-outline-primary {
  color: var(--lms-color-link) !important;
  background: var(--lms-color-surface) !important;
  border-color: var(--lms-color-link) !important;
}

html[data-lms-design-system] .page-wrapper .btn-outline-success {
  color: var(--lms-color-success-text) !important;
  background: var(--lms-color-success-bg) !important;
  border-color: var(--lms-color-success-border) !important;
}

html[data-lms-design-system] .page-wrapper .btn-outline-info {
  color: var(--lms-color-info-text) !important;
  background: var(--lms-color-info-bg) !important;
  border-color: var(--lms-color-info-border) !important;
}

html[data-lms-design-system] .page-wrapper .btn-outline-warning {
  color: var(--lms-color-warning-text) !important;
  background: var(--lms-color-warning-bg) !important;
  border-color: var(--lms-color-warning-border) !important;
}

html[data-lms-design-system] .page-wrapper .btn-info {
  color: var(--lms-color-on-info-solid) !important;
  background: var(--lms-color-info-solid) !important;
  border-color: var(--lms-color-info-solid) !important;
}

html[data-lms-design-system] .page-wrapper .btn-warning {
  color: var(--lms-color-on-warning-solid) !important;
  background: var(--lms-color-warning-solid) !important;
  border-color: var(--lms-color-warning-solid) !important;
}

html[data-lms-design-system] .page-wrapper .btn-light {
  color: var(--lms-color-text-primary) !important;
  background: var(--lms-color-surface-subtle) !important;
  border-color: var(--lms-color-border) !important;
}

html[data-lms-design-system] .page-wrapper .lms-btn--ghost {
  color: var(--lms-color-link) !important;
  background: var(--lms-color-surface-subtle);
}

html[data-lms-design-system] .page-wrapper .badge.bg-light.text-dark,
html[data-lms-design-system] .page-wrapper .badge.bg-secondary {
  color: var(--lms-color-text-primary) !important;
  background: var(--lms-color-surface-subtle) !important;
  border: 1px solid var(--lms-color-border);
}

html[data-lms-design-system] .page-wrapper .badge.bg-primary {
  color: var(--lms-color-neutral-0) !important;
  background: var(--lms-color-brand-700) !important;
}

html[data-lms-design-system] .page-wrapper .badge.bg-success {
  color: var(--lms-color-success-text) !important;
  background: var(--lms-color-success-bg) !important;
  border: 1px solid var(--lms-color-success-border);
}

html[data-lms-design-system] .page-wrapper .badge.bg-warning {
  color: var(--lms-color-warning-text) !important;
  background: var(--lms-color-warning-bg) !important;
  border: 1px solid var(--lms-color-warning-border);
}

html[data-lms-design-system] .page-wrapper .badge.bg-info {
  color: var(--lms-color-info-text) !important;
  background: var(--lms-color-info-bg) !important;
  border: 1px solid var(--lms-color-info-border);
}

html[data-lms-design-system] :where(.topbar, .sidebar-wrapper, .sidebar-header, .page-footer) {
  color: var(--lms-color-neutral-50) !important;
  background: var(--lms-color-neutral-900) !important;
}

html[data-lms-design-system] :where(.topbar, .sidebar-wrapper, .sidebar-header, .page-footer)
  :where(h1, h2, h3, h4, h5, h6, p, .mb-0, .text-white, .text-light) {
  color: var(--lms-color-neutral-50) !important;
}

html[data-lms-design-system] :where(.topbar, .sidebar-wrapper, .sidebar-header, .page-footer)
  .text-white-50 {
  color: var(--lms-color-neutral-200) !important;
  opacity: 1 !important;
}
/* LMS UI-U1-001 — render-aware final application contrast v1.9.1 */
html[data-lms-design-system] .page-content .card .h4,
html[data-lms-design-system] .page-content .card h3.mb-1,
html[data-lms-design-system] .page-content .container.py-4 > .d-flex h3 {
  color: var(--lms-color-text-primary) !important;
}

html[data-lms-design-system] .page-content .container.py-4 > .d-flex .text-white-50,
html[data-lms-design-system] .page-content .lms-page-header__description {
  color: var(--lms-color-text-secondary) !important;
  opacity: 1 !important;
}

html[data-lms-design-system] .page-content .nav-pills .nav-link {
  color: var(--lms-color-link) !important;
  background: var(--lms-color-surface-subtle) !important;
  border: 1px solid var(--lms-color-border) !important;
}

html[data-lms-design-system] .page-content .nav-pills .nav-link.active,
html[data-lms-design-system] .page-content .nav-pills .show > .nav-link {
  color: var(--lms-color-neutral-0) !important;
  background: var(--lms-color-brand-700) !important;
  border-color: var(--lms-color-brand-700) !important;
}

html[data-lms-design-system] .page-content .table.table-dark {
  --bs-table-color: var(--lms-color-text-primary);
  --bs-table-bg: var(--lms-color-surface);
  --bs-table-striped-color: var(--lms-color-text-primary);
  --bs-table-striped-bg: var(--lms-color-surface-subtle);
  --bs-table-hover-color: var(--lms-color-text-primary);
  --bs-table-hover-bg: var(--lms-color-info-bg);
  --bs-table-border-color: var(--lms-color-border);
  color: var(--lms-color-text-primary) !important;
  border-color: var(--lms-color-border) !important;
}

html[data-lms-design-system] .page-content .table.table-dark > :not(caption) > * > * {
  color: var(--lms-color-text-primary) !important;
  background-color: var(--bs-table-bg) !important;
  border-color: var(--lms-color-border) !important;
}

html[data-lms-design-system] .page-content .table:not(.table-dark) {
  --bs-table-color: var(--lms-color-text-primary);
  --bs-table-bg: var(--lms-color-surface);
  --bs-table-border-color: var(--lms-color-border);
  color: var(--lms-color-text-primary);
}

html[data-lms-design-system] .page-content .table:not(.table-dark) > :not(caption) > * > * {
  color: var(--lms-color-text-primary) !important;
  background-color: var(--lms-color-surface) !important;
  border-color: var(--lms-color-border) !important;
}

/* LMS-U1-001 v1.9.3 PUBLIC-DETAIL LIGHT CONTRAST BEGIN */
/*
 * Evidence scope:
 *   BASE-027 Book public detail — light/mobile + light/desktop
 *   BASE-028 Note public detail — light/mobile + light/desktop
 *
 * `body:has(.tab-title)` keeps the bridge on the shared public-detail layout.
 * Dark-theme captures already passed and are intentionally untouched.
 */
html[data-lms-theme="light"] body:has(.tab-title) .tab-title,
html[data-lms-theme="light"] body:has(.tab-title) .breadcrumb-item.active,
html[data-lms-theme="light"] body:has(.tab-title) h6.text-uppercase.mb-0.mt-4,
html[data-lms-theme="light"] body:has(.tab-title) p.text-muted,
html[data-theme="light"] body:has(.tab-title) .tab-title,
html[data-theme="light"] body:has(.tab-title) .breadcrumb-item.active,
html[data-theme="light"] body:has(.tab-title) h6.text-uppercase.mb-0.mt-4,
html[data-theme="light"] body:has(.tab-title) p.text-muted,
html[data-bs-theme="light"] body:has(.tab-title) .tab-title,
html[data-bs-theme="light"] body:has(.tab-title) .breadcrumb-item.active,
html[data-bs-theme="light"] body:has(.tab-title) h6.text-uppercase.mb-0.mt-4,
html[data-bs-theme="light"] body:has(.tab-title) p.text-muted {
  color: var(--lms-color-text-primary) !important;
}
/* LMS-U1-001 v1.9.3 PUBLIC-DETAIL LIGHT CONTRAST END */

/* LMS-U1-001 v1.9.5 BASE-017 CONFIRMED CONTRAST BEGIN */
/*
 * Evidence scope:
 *   BASE-017 Exam Attempt — light/mobile + light/desktop + dark/mobile + dark/desktop
 *
 * Confirmed v1.9.4 clusters:
 *   - h4.mb-1 in light theme: 2 failures, pixel ratio 1.06
 *   - .text-muted.small in light theme: 10 failures, pixel ratio 4.48
 *   - .choice-bullet in both themes: 16 failures, pixel ratio 4.45
 *
 * `body:has(.choice-bullet)` limits this bridge to the exam-attempt layout.
 * Bootstrap's static gray-800 token stays dark on the white choice controls in
 * both themes and avoids introducing a new direct color literal.
 */
body:has(.choice-bullet) .choice-bullet,
html[data-lms-theme="light"] body:has(.choice-bullet) h4.mb-1,
html[data-lms-theme="light"] body:has(.choice-bullet) .text-muted.small,
html[data-theme="light"] body:has(.choice-bullet) h4.mb-1,
html[data-theme="light"] body:has(.choice-bullet) .text-muted.small,
html[data-bs-theme="light"] body:has(.choice-bullet) h4.mb-1,
html[data-bs-theme="light"] body:has(.choice-bullet) .text-muted.small {
  color: var(--bs-gray-800) !important;
}
/* LMS-U1-001 v1.9.5 BASE-017 CONFIRMED CONTRAST END */

/* ===== source: shell.css ===== */

/* LMS UI U2 — dashboard/public shell, header, role navigation, footer and real theme. */
:root {
  --lms-shell-sidebar-width: 17rem;
  --lms-shell-sidebar-collapsed-width: 5.25rem;
  --lms-shell-header-height: 4.5rem;
  --lms-shell-content-max: 100rem;
  --lms-shell-brand-color: var(--lms-color-brand-600);
}

html { scroll-padding-top: calc(var(--lms-shell-header-height) + 1rem); }
body.lms-dashboard-body,
body.lms-public-body {
  min-height: 100vh;
  margin: 0;
  color: var(--lms-color-text-primary);
  background: var(--lms-color-canvas);
}

.lms-skip-link {
  position: fixed;
  top: .5rem;
  right: .75rem;
  z-index: 2000;
  padding: .75rem 1rem;
  border-radius: .75rem;
  color: var(--lms-color-text-inverse);
  background: var(--lms-shell-brand-color);
  transform: translateY(-180%);
  transition: transform .15s ease;
}
.lms-skip-link:focus { transform: translateY(0); }

.lms-app-shell { min-height: 100vh; }
.lms-sidebar {
  position: fixed;
  inset: 0 0 0 auto;
  z-index: 1040;
  display: flex;
  width: var(--lms-shell-sidebar-width);
  height: 100dvh;
  flex-direction: column;
  border-left: 1px solid var(--lms-color-border);
  background: var(--lms-color-surface);
  box-shadow: -8px 0 24px rgb(15 23 42 / 8%);
  transition: width .2s ease, transform .2s ease;
}
.lms-sidebar__brand {
  position: relative;
  inset: auto;
  z-index: auto;
  display: flex;
  width: 100%;
  height: auto;
  min-height: var(--lms-shell-header-height);
  flex: 0 0 auto;
  align-items: center;
  gap: .5rem;
  padding: .65rem .75rem;
  border-bottom: 1px solid var(--lms-color-divider);
  background: var(--lms-color-surface);
}
.lms-brand {
  display: inline-flex;
  min-width: 0;
  align-items: center;
  gap: .7rem;
  color: var(--lms-color-text-primary);
  text-decoration: none;
}
.lms-brand:hover { color: var(--lms-color-text-primary); }
.lms-brand__logo {
  width: 2.75rem;
  height: 2.75rem;
  flex: 0 0 auto;
  object-fit: contain;
  border-radius: .85rem;
}
.lms-brand__logo--dark { display: none; }
html[data-lms-theme="dark"] .lms-brand__logo--light { display: none; }
html[data-lms-theme="dark"] .lms-brand__logo--dark { display: block; }
.lms-brand__text { min-width: 0; display: grid; gap: .15rem; }
.lms-brand__text strong,
.lms-brand__text small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lms-brand__text strong { font-size: .95rem; }
.lms-brand__text small { color: var(--lms-color-text-muted); font-size: .72rem; }
.lms-sidebar__collapse {
  display: inline-grid;
  width: 2.5rem;
  height: 2.5rem;
  margin-right: auto;
  place-items: center;
  border: 1px solid var(--lms-color-border);
  border-radius: .75rem;
  color: var(--lms-color-text-secondary);
  background: var(--lms-color-surface-subtle);
}
.lms-sidebar__nav { min-height: 0; flex: 1 1 auto; overflow: auto; padding: .75rem; }
.lms-shell-menu,
.lms-nav-section__items { margin: 0; padding: 0; list-style: none; }
.lms-nav-section + .lms-nav-section { margin-top: .4rem; }
.lms-nav-section__toggle,
.lms-nav-link {
  display: flex;
  width: 100%;
  min-height: 2.75rem;
  align-items: center;
  gap: .7rem;
  border: 0;
  border-radius: .75rem;
  color: var(--lms-color-text-secondary);
  background: transparent;
  text-align: right;
  text-decoration: none;
}
.lms-nav-section__toggle { padding: .55rem .7rem; font-weight: 700; }
.lms-nav-section__toggle:hover,
.lms-nav-section__toggle:focus-visible,
.lms-nav-link:hover,
.lms-nav-link:focus-visible { color: var(--lms-color-text-primary); background: var(--lms-color-surface-subtle); }
.lms-nav-section__toggle [data-lms-icon],
.lms-nav-link [data-lms-icon] { flex: 0 0 1.25rem; }
.lms-nav-section__chevron { margin-right: auto; transition: transform .16s ease; }
.lms-nav-section__toggle[aria-expanded="true"] .lms-nav-section__chevron { transform: rotate(180deg); }
.lms-nav-section__items { display: grid; gap: .2rem; padding: .25rem .8rem .35rem 0; }
.lms-nav-section__items[hidden] { display: none; }
.lms-nav-link { min-height: 2.5rem; padding: .45rem .7rem; font-size: .9rem; }
.lms-nav-link.is-active {
  color: var(--lms-color-brand-700);
  background: var(--lms-color-brand-50);
  box-shadow: inset -3px 0 0 var(--lms-shell-brand-color);
}
html[data-lms-theme="dark"] .lms-nav-link.is-active { color: var(--lms-color-brand-200); background: rgb(37 99 235 / 20%); }
.lms-sidebar__footer { display: grid; gap: .45rem; padding: .75rem; border-top: 1px solid var(--lms-color-divider); }
.lms-sidebar__role { color: var(--lms-color-text-muted); font-size: .78rem; }
.lms-sidebar__site-link { display: flex; align-items: center; gap: .55rem; color: var(--lms-color-text-secondary); text-decoration: none; }

.lms-app-header {
  position: fixed;
  inset: 0 var(--lms-shell-sidebar-width) auto 0;
  z-index: 1030;
  height: var(--lms-shell-header-height);
  border-bottom: 1px solid var(--lms-color-border);
  background: color-mix(in srgb, var(--lms-color-surface) 92%, transparent);
  backdrop-filter: blur(14px);
  transition: right .2s ease;
}
.lms-app-header__inner {
  display: flex;
  width: 100%;
  height: 100%;
  align-items: center;
  gap: 1rem;
  padding: 0 clamp(.75rem, 2vw, 1.5rem);
}
.lms-header-action {
  position: relative;
  display: inline-grid;
  width: 2.65rem;
  height: 2.65rem;
  flex: 0 0 auto;
  place-items: center;
  border: 1px solid var(--lms-color-border);
  border-radius: .8rem;
  color: var(--lms-color-text-secondary);
  background: var(--lms-color-surface);
  text-decoration: none;
}
.lms-header-action:hover,
.lms-header-action:focus-visible { color: var(--lms-color-text-primary); background: var(--lms-color-surface-subtle); }
.lms-header-action--menu { display: none; }
.lms-header-heading { min-width: 0; }
.lms-header-heading__eyebrow { margin: 0 0 .1rem; color: var(--lms-color-text-muted); font-size: .72rem; }
.lms-header-heading__title { max-width: 42vw; margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: clamp(1rem, 2vw, 1.25rem); }
.lms-header-actions { display: flex; min-width: 0; align-items: center; gap: .5rem; margin-right: auto; }
.lms-header-badge {
  position: absolute;
  top: -.35rem;
  left: -.35rem;
  display: grid;
  min-width: 1.25rem;
  height: 1.25rem;
  place-items: center;
  border: 2px solid var(--lms-color-surface);
  border-radius: 999px;
  color: #fff;
  background: var(--lms-color-danger-solid);
  font-size: .65rem;
}
.lms-user-menu__toggle {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: .6rem;
  padding: .25rem .45rem;
  border: 1px solid var(--lms-color-border);
  border-radius: .9rem;
  color: var(--lms-color-text-primary);
  background: var(--lms-color-surface);
}
.lms-avatar { width: 2.55rem; height: 2.55rem; border-radius: .75rem; object-fit: cover; }
.lms-avatar--fallback { display: grid; place-items: center; color: #fff; background: var(--lms-shell-brand-color); font-weight: 800; }
.lms-user-menu__identity { display: grid; min-width: 7rem; max-width: 13rem; text-align: right; }
.lms-user-menu__identity strong,
.lms-user-menu__identity small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lms-user-menu__identity small { color: var(--lms-color-text-muted); font-size: .72rem; }
.lms-header-dropdown { width: min(22rem, calc(100vw - 1rem)); padding: 0; overflow: hidden; border-color: var(--lms-color-border); color: var(--lms-color-text-primary); background: var(--lms-color-surface-elevated); }
.lms-header-dropdown__head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .8rem 1rem; border-bottom: 1px solid var(--lms-color-divider); }
.lms-header-dropdown__body { max-height: 23rem; overflow: auto; }
.lms-notification-item { display: grid; gap: .2rem; padding: .75rem 1rem; border-bottom: 1px solid var(--lms-color-divider); color: var(--lms-color-text-secondary); text-decoration: none; }
.lms-notification-item.is-unread { box-shadow: inset -3px 0 var(--lms-shell-brand-color); background: var(--lms-color-surface-subtle); }
.lms-notification-item span,
.lms-notification-item time { color: var(--lms-color-text-muted); font-size: .75rem; }
.lms-header-empty { padding: 1.5rem; color: var(--lms-color-text-muted); text-align: center; }
.lms-user-dropdown__summary { display: grid; padding: 1rem; border-bottom: 1px solid var(--lms-color-divider); }
.lms-user-dropdown__summary span { color: var(--lms-color-text-muted); font-size: .8rem; }
.lms-user-dropdown .dropdown-item { display: flex; align-items: center; gap: .65rem; min-height: 2.75rem; color: var(--lms-color-text-secondary); }
.lms-user-dropdown__logout { color: var(--lms-color-danger-text) !important; }

.lms-app-main {
  min-height: calc(100vh - var(--lms-shell-header-height));
  margin: var(--lms-shell-header-height) var(--lms-shell-sidebar-width) 0 0;
  transition: margin-right .2s ease;
}
.lms-page-container {
  width: min(100%, var(--lms-shell-content-max));
  min-width: 0;
  margin-inline: auto;
  padding: clamp(1rem, 2.4vw, 2rem);
}
.lms-content-section { min-width: 0; }
.lms-dashboard-footer {
  position: static;
  display: flex;
  min-height: 3.25rem;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-right: var(--lms-shell-sidebar-width);
  padding: .75rem clamp(1rem, 2.4vw, 2rem);
  border-top: 1px solid var(--lms-color-border);
  color: var(--lms-color-text-muted);
  background: var(--lms-color-surface);
  transition: margin-right .2s ease;
}
.lms-dashboard-footer nav { display: flex; gap: 1rem; }
.lms-dashboard-footer a { color: var(--lms-color-link); }
.lms-shell-overlay { display: none; }

.lms-app-shell.lms-sidebar-collapsed .lms-sidebar { width: var(--lms-shell-sidebar-collapsed-width); }
.lms-app-shell.lms-sidebar-collapsed .lms-app-header { right: var(--lms-shell-sidebar-collapsed-width); }
.lms-app-shell.lms-sidebar-collapsed .lms-app-main,
.lms-app-shell.lms-sidebar-collapsed .lms-dashboard-footer { margin-right: var(--lms-shell-sidebar-collapsed-width); }
.lms-app-shell.lms-sidebar-collapsed .lms-brand__text,
.lms-app-shell.lms-sidebar-collapsed .lms-nav-section__label,
.lms-app-shell.lms-sidebar-collapsed .lms-nav-section__chevron,
.lms-app-shell.lms-sidebar-collapsed .lms-nav-link span:last-child,
.lms-app-shell.lms-sidebar-collapsed .lms-sidebar__role,
.lms-app-shell.lms-sidebar-collapsed .lms-sidebar__site-link span:last-child { display: none; }
.lms-app-shell.lms-sidebar-collapsed .lms-sidebar__brand { justify-content: center; padding-inline: .45rem; }
.lms-app-shell.lms-sidebar-collapsed .lms-sidebar__collapse { display: none; }
.lms-app-shell.lms-sidebar-collapsed .lms-header-action--menu { display: inline-grid; }
.lms-app-shell.lms-sidebar-collapsed .lms-nav-section__toggle,
.lms-app-shell.lms-sidebar-collapsed .lms-nav-link { justify-content: center; padding-inline: .4rem; }
.lms-app-shell.lms-sidebar-collapsed .lms-nav-section__items { padding-right: 0; }

/* Public shell */
.lms-public-header { position: sticky; top: 0; z-index: 1020; border-bottom: 1px solid var(--lms-color-border); background: color-mix(in srgb, var(--lms-color-surface) 94%, transparent); backdrop-filter: blur(14px); }
.lms-public-header__inner,
.lms-public-container,
.lms-public-footer__inner { width: min(calc(100% - 2rem), 76rem); margin-inline: auto; }
.lms-public-header__inner { display: flex; min-height: 4.75rem; align-items: center; gap: 1.25rem; }
.lms-public-brand { flex: 0 1 20rem; }
.lms-public-navigation { display: flex; flex: 1 1 auto; align-items: center; justify-content: space-between; gap: 1rem; }
.lms-public-navigation > ul { display: flex; align-items: center; gap: .25rem; margin: 0; padding: 0; list-style: none; }
.lms-public-navigation a:not(.lms-btn) { display: inline-flex; padding: .6rem .75rem; border-radius: .65rem; color: var(--lms-color-text-secondary); text-decoration: none; }
.lms-public-navigation a:hover { background: var(--lms-color-surface-subtle); }
.lms-public-header__actions { display: flex; align-items: center; gap: .5rem; }
.lms-public-nav-toggle { display: none; width: 2.75rem; height: 2.75rem; margin-right: auto; border: 1px solid var(--lms-color-border); border-radius: .75rem; color: var(--lms-color-text-primary); background: var(--lms-color-surface); }
.lms-public-main { min-height: 65vh; }
.lms-public-container { padding-block: clamp(1.25rem, 4vw, 3rem); }
.lms-public-footer { border-top: 1px solid var(--lms-color-border); background: var(--lms-color-surface); }
.lms-public-footer__inner { display: grid; grid-template-columns: minmax(14rem, 1.4fr) 1fr minmax(10rem, .7fr); gap: 2rem; padding-block: 2rem; }
.lms-public-footer__brand p { max-width: 36rem; margin: .5rem 0 0; color: var(--lms-color-text-muted); }
.lms-public-footer nav,
.lms-public-footer__contact { display: grid; align-content: start; gap: .6rem; }
.lms-public-footer a { color: var(--lms-color-link); text-decoration: none; }
.lms-public-footer__legal { padding: .85rem 1rem; border-top: 1px solid var(--lms-color-divider); color: var(--lms-color-text-muted); text-align: center; font-size: .82rem; }
.lms-public-info__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr)); gap: 1rem; }


@media (min-width: 761px) {
  .lms-public-nav-toggle { display: none !important; }
  .lms-public-navigation.collapse { display: flex !important; }
}
@media (max-width: 1024px) {
  .lms-sidebar { width: min(19rem, calc(100vw - 2.5rem)); transform: translateX(105%); }
  .lms-app-header { right: 0; }
  .lms-app-main,
  .lms-dashboard-footer,
  .lms-app-shell.lms-sidebar-collapsed .lms-app-main,
  .lms-app-shell.lms-sidebar-collapsed .lms-dashboard-footer { margin-right: 0; }
  .lms-header-action--menu { display: inline-grid; }
  .lms-sidebar__collapse { display: none; }
  .lms-app-shell.lms-sidebar-open .lms-sidebar { transform: translateX(0); }
  .lms-shell-overlay {
    position: fixed;
    inset: 0;
    z-index: 1035;
    display: block;
    border: 0;
    background: var(--lms-color-overlay);
    opacity: 0;
    pointer-events: none;
    transition: opacity .2s ease;
  }
  .lms-app-shell.lms-sidebar-open .lms-shell-overlay { opacity: 1; pointer-events: auto; }
  body.lms-sidebar-lock { overflow: hidden; }
  .lms-app-shell.lms-sidebar-collapsed .lms-sidebar { width: min(19rem, calc(100vw - 2.5rem)); }
  .lms-app-shell.lms-sidebar-collapsed .lms-brand__text,
  .lms-app-shell.lms-sidebar-collapsed .lms-nav-section__label,
  .lms-app-shell.lms-sidebar-collapsed .lms-nav-section__chevron,
  .lms-app-shell.lms-sidebar-collapsed .lms-nav-link span:last-child,
  .lms-app-shell.lms-sidebar-collapsed .lms-sidebar__role,
  .lms-app-shell.lms-sidebar-collapsed .lms-sidebar__site-link span:last-child { display: initial; }
}

@media (max-width: 760px) {
  .lms-app-header__inner { gap: .55rem; }
  .lms-header-heading__eyebrow,
  .lms-header-action--help,
  .lms-user-menu__identity { display: none; }
  .lms-header-heading__title { max-width: 32vw; }
  .lms-header-actions { gap: .3rem; }
  .lms-user-menu__toggle { padding: .2rem; }
  .lms-user-menu__toggle > [data-lms-icon="chevron"] { display: none; }
  .lms-dashboard-footer { align-items: flex-start; flex-direction: column; }
  .lms-public-header__inner { min-height: 4.25rem; flex-wrap: wrap; padding-block: .55rem; }
  .lms-public-brand { flex: 1 1 auto; }
  .lms-public-brand .lms-brand__text small { display: none; }
  .lms-public-nav-toggle { display: inline-grid !important; place-items: center; }
  .lms-public-navigation { width: 100%; flex-basis: 100%; align-items: stretch; flex-direction: column; padding: .5rem 0 1rem; }
  .lms-public-navigation:not(.show) { display: none; }
  .lms-public-navigation > ul,
  .lms-public-header__actions { align-items: stretch; flex-direction: column; }
  .lms-public-navigation a,
  .lms-public-header__actions .lms-btn { justify-content: center; }
  .lms-public-footer__inner { grid-template-columns: 1fr; gap: 1.25rem; }
}

@media (max-width: 360px) {
  .lms-page-container { padding-inline: .75rem; }
  .lms-header-heading__title { max-width: 27vw; font-size: .9rem; }
  .lms-header-action { width: 2.45rem; height: 2.45rem; }
  .lms-avatar { width: 2.35rem; height: 2.35rem; }
}

@media (max-width: 300px) {
  .lms-app-header__inner { gap: .35rem; padding-inline: .5rem; }
  .lms-header-heading { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .lms-sidebar,
  .lms-app-header,
  .lms-app-main,
  .lms-dashboard-footer,
  .lms-shell-overlay { transition: none; }
}

/* ===== source: confirmation-dialog.css ===== */
/* UI-U6-003 — shared accessible confirmation dialog. */
.lms-confirm-backdrop {
  position: fixed;
  inset: 0;
  z-index: 1090;
  display: grid;
  place-items: center;
  padding: var(--lms-space-4, 1rem);
  background: var(--lms-color-overlay, rgb(15 23 42 / 58%));
}

.lms-confirm-backdrop[hidden] {
  display: none;
}

.lms-confirm-dialog {
  width: min(100%, 32rem);
  max-height: min(90vh, 42rem);
  overflow: auto;
  color: var(--lms-color-text-primary);
  background: var(--lms-color-surface-elevated);
  border: 1px solid var(--lms-color-border);
  border-radius: var(--lms-radius-xl, 1rem);
  box-shadow: var(--lms-shadow-modal, 0 24px 64px rgb(15 23 42 / 28%));
}

.lms-confirm-dialog__header,
.lms-confirm-dialog__body,
.lms-confirm-dialog__actions {
  padding: var(--lms-space-5, 1.25rem);
}

.lms-confirm-dialog__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--lms-space-3, .75rem);
  border-bottom: 1px solid var(--lms-color-divider);
}

.lms-confirm-dialog__title {
  margin: 0;
  font-size: var(--lms-font-size-h4, 1.125rem);
  line-height: 1.7;
}

.lms-confirm-dialog__body {
  display: grid;
  gap: var(--lms-space-3, .75rem);
}

.lms-confirm-dialog__object {
  margin: 0;
  padding: var(--lms-space-3, .75rem);
  color: var(--lms-color-text-primary);
  background: var(--lms-color-surface-subtle);
  border: 1px solid var(--lms-color-divider);
  border-radius: var(--lms-radius-md, .75rem);
  font-weight: 700;
  overflow-wrap: anywhere;
}

.lms-confirm-dialog__impact {
  margin: 0;
  color: var(--lms-color-text-secondary);
  line-height: 1.9;
}

.lms-confirm-dialog__warning {
  margin: 0;
  padding: var(--lms-space-3, .75rem);
  color: var(--lms-color-danger-text);
  background: var(--lms-color-danger-bg);
  border: 1px solid var(--lms-color-danger-border);
  border-radius: var(--lms-radius-md, .75rem);
}

.lms-confirm-dialog__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: var(--lms-space-2, .5rem);
  border-top: 1px solid var(--lms-color-divider);
}

.lms-confirm-dialog__close {
  flex: 0 0 auto;
}

body.lms-confirm-open {
  overflow: hidden;
}

@media (max-width: 575.98px) {
  .lms-confirm-backdrop {
    align-items: end;
    padding: 0;
  }

  .lms-confirm-dialog {
    width: 100%;
    max-height: 88vh;
    border-radius: var(--lms-radius-xl, 1rem) var(--lms-radius-xl, 1rem) 0 0;
  }

  .lms-confirm-dialog__actions > .lms-btn,
  .lms-confirm-dialog__actions > button {
    min-height: 44px;
    flex: 1 1 9rem;
  }
}

@media (prefers-reduced-motion: no-preference) {
  .lms-confirm-dialog {
    animation: lms-confirm-enter 140ms ease-out;
  }

  @keyframes lms-confirm-enter {
    from { opacity: 0; transform: translateY(.5rem) scale(.985); }
    to { opacity: 1; transform: translateY(0) scale(1); }
  }
}
