@charset "UTF-8";@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--c-bg: #eef2f8;--c-surface: #ffffff;--c-navy: #0f1a2e;--c-primary: #1f3a8a;--c-primary-h: #16306e;--c-muted: #6b7a99;--c-border: #d1d9e8;--c-text: #1a2540;--c-success: #1f6b4a;--c-success-bg:#d4f0e5;--c-warning: #8a5a12;--c-warning-bg:#fff0cc;--c-danger: #9b2c2c;--c-danger-bg: #fde8e8;--c-info: #255b87;--c-info-bg: #dceeff;--r-xs: 4px;--r-sm: 6px;--r-md: 8px;--r-lg: 10px;--r-xl: 14px;--r-pill:999px;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 20px;--s-6: 24px;--s-7: 32px;--s-8: 40px;--s-9: 56px;--ff-sans: "Inter", system-ui, sans-serif;--ff-mono: "JetBrains Mono", "Fira Code", monospace;--fs-11: 11px;--fs-12: 12px;--fs-13: 13px;--fs-14: 14px;--fs-15: 15px;--fs-16: 16px;--fs-18: 18px;--fs-20: 20px;--fs-24: 24px;--fs-28: 28px;--fs-32: 32px;--lh-tight: 1.2;--lh-snug: 1.35;--lh-base: 1.5;--fw-400: 400;--fw-500: 500;--fw-600: 600;--fw-700: 700;--ease-out: cubic-bezier(.2, .7, .2, 1);--dur-1: .12s;--dur-2: .2s;--dur-3: .32s;--sidebar-w: 240px;--sidebar-w-collapsed: 64px;--topbar-h: 56px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:var(--ff-sans);font-size:var(--fs-14);color:var(--c-text);background:var(--c-bg);line-height:var(--lh-base);-webkit-font-smoothing:antialiased}a{text-decoration:none;color:inherit}button{font-family:inherit;cursor:pointer;border:none;background:none}input,select,textarea{font-family:inherit}.app{display:grid;grid-template-columns:var(--sidebar-w) 1fr;grid-template-rows:var(--topbar-h) 1fr;grid-template-areas:"side top" "side main";min-height:100vh}.app.collapsed{grid-template-columns:var(--sidebar-w-collapsed) 1fr}.sidebar{grid-area:side;background:var(--c-navy);color:#fff;display:flex;flex-direction:column;overflow:hidden;position:sticky;top:0;height:100vh}.topbar{grid-area:top;background:var(--c-surface);border-bottom:1px solid var(--c-border);display:flex;align-items:center;padding:0 var(--s-6);gap:var(--s-4);position:sticky;top:0;z-index:10}.main{grid-area:main;padding:var(--s-7);overflow-y:auto}.sidebar .brand{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-5) var(--s-5);border-bottom:1px solid rgba(255,255,255,.08);min-height:var(--topbar-h)}.sidebar .brand .mark{width:32px;height:32px;border-radius:var(--r-md);background:var(--c-primary);display:flex;align-items:center;justify-content:center;font-weight:var(--fw-700);font-size:var(--fs-14);flex-shrink:0}.sidebar .brand .wordmark .title{display:block;font-weight:var(--fw-700);font-size:var(--fs-14);letter-spacing:.05em}.sidebar .brand .wordmark .tld{display:block;font-size:var(--fs-11);color:#ffffff80;letter-spacing:.08em}.side-sec{flex:1;padding:var(--s-4) 0;overflow-y:auto}.side-sec .lbl{font-size:var(--fs-11);font-weight:var(--fw-600);letter-spacing:.08em;text-transform:uppercase;color:#fff6;padding:var(--s-2) var(--s-5);margin-top:var(--s-2)}.side-nav{display:flex;flex-direction:column;gap:2px;padding:0 var(--s-3)}.side-nav a{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-2) var(--s-3);border-radius:var(--r-md);font-size:var(--fs-14);font-weight:var(--fw-500);color:#ffffffb3;transition:background var(--dur-1) var(--ease-out),color var(--dur-1)}.side-nav a:hover{background:#ffffff0f;color:#fff}.side-nav a.active{background:#ffffff1f;color:#fff}.side-nav a svg{width:18px;height:18px;flex-shrink:0}.sidebar .foot{padding:var(--s-4) var(--s-4);border-top:1px solid rgba(255,255,255,.08)}.sidebar .foot .user{display:flex;align-items:center;gap:var(--s-3)}.sidebar .foot .user .avatar{width:32px;height:32px;border-radius:var(--r-pill);background:var(--c-primary);display:flex;align-items:center;justify-content:center;font-size:var(--fs-12);font-weight:var(--fw-700);flex-shrink:0}.sidebar .foot .user .who{flex:1;min-width:0}.sidebar .foot .user .who .n{display:block;font-size:var(--fs-13);font-weight:var(--fw-600);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar .foot .user .who .r{display:block;font-size:var(--fs-11);color:#ffffff80}.topbar .crumbs{flex:1;display:flex;align-items:center;gap:var(--s-2);font-size:var(--fs-14);color:var(--c-muted)}.topbar .crumbs .sep{color:var(--c-border)}.topbar .crumbs .cur{color:var(--c-text);font-weight:var(--fw-500)}.btn{display:inline-flex;align-items:center;gap:var(--s-2);padding:0 var(--s-4);height:36px;border-radius:var(--r-md);font-size:var(--fs-14);font-weight:var(--fw-500);transition:background var(--dur-1),color var(--dur-1),opacity var(--dur-1);white-space:nowrap;flex-shrink:0}.btn.primary{background:var(--c-primary);color:#fff}.btn.primary:hover{background:var(--c-primary-h)}.btn.ghost{background:transparent;color:var(--c-text);border:1px solid var(--c-border)}.btn.ghost:hover{background:var(--c-bg)}.btn.sm{height:30px;padding:0 var(--s-3);font-size:var(--fs-13)}.btn.lg{height:44px;padding:0 var(--s-6);font-size:var(--fs-15)}.btn.icon{padding:0;width:36px;justify-content:center}.btn.icon.sm{width:30px;height:30px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.full{width:100%;justify-content:center}.field{display:flex;flex-direction:column;gap:var(--s-1)}.field label{font-size:var(--fs-13);font-weight:var(--fw-500);color:var(--c-text)}.input,.select,.textarea{height:40px;padding:0 var(--s-3);border:1px solid var(--c-border);border-radius:var(--r-md);font-size:var(--fs-14);color:var(--c-text);background:var(--c-surface);transition:border-color var(--dur-1);width:100%;outline:none}.textarea{height:auto;min-height:96px;padding:var(--s-3);resize:vertical}.input:focus,.select:focus,.textarea:focus{border-color:var(--c-primary);box-shadow:0 0 0 3px #1f3a8a1a}.card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-xl);overflow:hidden}.card-head{padding:var(--s-5) var(--s-6);border-bottom:1px solid var(--c-border);display:flex;align-items:center;justify-content:space-between;gap:var(--s-4)}.card-head h3{font-size:var(--fs-15);font-weight:var(--fw-600)}.card-body{padding:var(--s-6)}.card-foot{padding:var(--s-4) var(--s-6);border-top:1px solid var(--c-border);display:flex;align-items:center;justify-content:flex-end;gap:var(--s-3)}.chip{display:inline-flex;align-items:center;gap:var(--s-1);padding:2px var(--s-2);border-radius:var(--r-pill);font-size:var(--fs-12);font-weight:var(--fw-500);background:var(--c-bg);color:var(--c-text)}.chip .dot{width:6px;height:6px;border-radius:50%;background:currentColor}.chip.success{background:var(--c-success-bg);color:var(--c-success)}.chip.warning{background:var(--c-warning-bg);color:var(--c-warning)}.chip.danger{background:var(--c-danger-bg);color:var(--c-danger)}.chip.info{background:var(--c-info-bg);color:var(--c-info)}.chip.primary{background:#1f3a8a1a;color:var(--c-primary)}.tbl{width:100%;border-collapse:collapse}.tbl th{text-align:left;font-size:var(--fs-12);font-weight:var(--fw-600);color:var(--c-muted);text-transform:uppercase;letter-spacing:.04em;padding:var(--s-3) var(--s-4);border-bottom:1px solid var(--c-border)}.tbl td{padding:var(--s-3) var(--s-4);font-size:var(--fs-14);border-bottom:1px solid var(--c-border)}.tbl tr:last-child td{border-bottom:none}.tbl tr:hover td{background:var(--c-bg)}.tbl .empty{text-align:center;color:var(--c-muted);padding:var(--s-9)}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-4);margin-bottom:var(--s-6)}.page-head h1{font-size:var(--fs-24);font-weight:var(--fw-700);line-height:var(--lh-tight)}.page-head .eyebrow{font-size:var(--fs-12);font-weight:var(--fw-500);color:var(--c-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--s-1)}.actions{display:flex;align-items:center;gap:var(--s-3)}.muted{color:var(--c-muted);font-size:var(--fs-14)}.mono{font-family:var(--ff-mono);font-size:var(--fs-13)}.login-error{background:var(--c-danger-bg);color:var(--c-danger);padding:var(--s-3) var(--s-4);border-radius:var(--r-md);font-size:var(--fs-14)}.divider{display:flex;align-items:center;gap:var(--s-3);color:var(--c-muted);font-size:var(--fs-13);margin:var(--s-4) 0}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--c-border)}.builder-wrap{display:flex;flex-direction:column;height:calc(100vh - 56px);overflow:hidden}.builder-topbar{display:flex;align-items:center;gap:var(--s-4);padding:var(--s-3) var(--s-5);background:var(--c-surface);border-bottom:1px solid var(--c-border);flex-shrink:0}.builder-title{font-weight:600;font-size:var(--fs-16);flex:1}.builder-body{display:grid;grid-template-columns:300px 1fr;flex:1;overflow:hidden}.builder-left{border-right:1px solid var(--c-border);overflow-y:auto;padding:var(--s-4);display:flex;flex-direction:column;gap:var(--s-3);background:var(--c-bg)}.builder-right{overflow-y:auto;padding:var(--s-6)}.builder-empty{display:flex;align-items:center;justify-content:center;height:100%;text-align:center}.modules-list{display:flex;flex-direction:column;gap:var(--s-2)}.builder-module{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-md);overflow:hidden}.module-header{display:flex;align-items:center;gap:var(--s-2);padding:var(--s-3) var(--s-3);cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:500;font-size:var(--fs-14)}.module-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chevron{font-size:10px;color:var(--c-muted)}.drag-handle{cursor:grab;color:var(--c-muted);font-size:16px;flex-shrink:0}.lessons-list{padding:0 var(--s-3) var(--s-2);display:flex;flex-direction:column;gap:2px}.builder-lesson{display:flex;align-items:center;gap:var(--s-2);padding:var(--s-2) var(--s-3);border-radius:var(--r-sm);cursor:pointer;font-size:var(--fs-13)}.builder-lesson:hover{background:var(--c-bg)}.builder-lesson.active{background:var(--c-primary);color:#fff}.builder-lesson.active .drag-handle{color:#fff9}.lesson-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.add-lesson-btn{margin:var(--s-2) var(--s-3) var(--s-3);width:calc(100% - 24px)}.add-module-btn{margin-top:auto}.lesson-form{max-width:640px}.lesson-form h3{margin-bottom:var(--s-5);font-size:var(--fs-18)}.drive-field-row{display:flex;align-items:center;gap:var(--s-3);flex-wrap:wrap;margin-top:var(--s-2)}.file-name{font-size:var(--fs-13);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachments-list{display:flex;flex-direction:column;gap:var(--s-2);margin-top:var(--s-2)}.attachment-row{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-2) var(--s-3);background:var(--c-bg);border-radius:var(--r-sm);font-size:var(--fs-13)}.attachment-row span{flex:1}.cdk-drag-preview{background:var(--c-surface);border:1px solid var(--c-primary);border-radius:var(--r-md);padding:var(--s-2) var(--s-3);box-shadow:0 4px 16px #00000026}.cdk-drag-placeholder{opacity:.3}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.viewer-wrap{display:grid;grid-template-columns:1fr 320px;height:calc(100vh - 56px);overflow:hidden}.viewer-main{overflow-y:auto;display:flex;flex-direction:column}.viewer-video-box{background:#000;width:100%;aspect-ratio:16/9;flex-shrink:0}.viewer-iframe{width:100%;height:100%;border:none;display:block}.viewer-no-video{display:flex;align-items:center;justify-content:center;height:100%}.viewer-lesson-info{padding:var(--s-5) var(--s-6)}.viewer-breadcrumb{font-size:var(--fs-13);margin-bottom:var(--s-2)}.viewer-lesson-title{font-size:var(--fs-22);font-weight:700;margin-bottom:var(--s-3)}.viewer-lesson-desc{color:var(--c-muted);font-size:var(--fs-15);margin-bottom:var(--s-5);line-height:1.6}.viewer-attachments{margin-bottom:var(--s-5)}.viewer-attachments h4{font-size:var(--fs-14);font-weight:600;margin-bottom:var(--s-3)}.attachment-link{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-4);background:var(--c-bg);border:1px solid var(--c-border);border-radius:var(--r-md);font-size:var(--fs-14);text-decoration:none;color:var(--c-text);margin-bottom:var(--s-2);transition:border-color .15s}.attachment-link:hover{border-color:var(--c-primary)}.viewer-actions{display:flex;align-items:center;gap:var(--s-4);padding-top:var(--s-5);border-top:1px solid var(--c-border);flex-wrap:wrap}.viewer-sidebar{border-left:1px solid var(--c-border);display:flex;flex-direction:column;overflow:hidden;background:var(--c-surface)}.sidebar-header{padding:var(--s-4) var(--s-5);border-bottom:1px solid var(--c-border);flex-shrink:0}.sidebar-course-title{font-weight:700;font-size:var(--fs-15);display:block}.sidebar-scroll{overflow-y:auto;flex:1}.sidebar-module{border-bottom:1px solid var(--c-border)}.sidebar-module-title{padding:var(--s-3) var(--s-4);font-size:var(--fs-13);font-weight:700;color:var(--c-muted);text-transform:uppercase;letter-spacing:.04em;background:var(--c-bg)}.sidebar-lesson{display:flex;align-items:flex-start;gap:var(--s-3);padding:var(--s-3) var(--s-4);cursor:pointer;font-size:var(--fs-14);transition:background .1s}.sidebar-lesson:hover{background:var(--c-bg)}.sidebar-lesson.active{background:#1f3a8a14;color:var(--c-primary);font-weight:500}.sidebar-lesson.done .lesson-check{color:var(--c-success)}.lesson-check{flex-shrink:0;font-size:12px;margin-top:2px;color:var(--c-muted)}.lesson-name{line-height:1.4}
