:root{--forest-950:#0a261d;--forest-900:#0d3227;--forest-800:#114033;--forest-700:#175440;--forest-600:#1e6b51;--forest-500:#2b8565;--forest-200:#c9ddd3;--forest-100:#e2eee8;--forest-50:#f0f6f2;--gold-700:#8c6a1f;--gold-600:#a8822c;--gold-500:#c39a3d;--gold-400:#d6b25c;--gold-200:#ecdcb3;--gold-100:#f6eedb;--paper:#faf8f3;--paper-2:#f4f1e9;--surface:#fff;--line:#e7e2d7;--line-strong:#d5cdbb;--ink:#17221d;--ink-2:#36443d;--muted:#66716b;--faint:#8d958f;--success:#12704a;--success-bg:#e6f4ec;--warning:#9a5b07;--warning-bg:#fdf1dc;--danger:#b3261e;--danger-bg:#fbe9e7;--info:#1d5a9e;--info-bg:#e7f0fa;--progress:#5b3fa8;--progress-bg:#efebfa;--font-display:"Raleway", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-sans:"Raleway", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--radius-sm:6px;--radius:10px;--radius-lg:16px;--shadow-sm:0 1px 2px #10281e0f;--shadow:0 1px 2px #10281e0d, 0 8px 24px -12px #10281e2e;--shadow-lg:0 24px 60px -24px #0a261d59;--focus:0 0 0 3px #c39a3d73;--wrap:1200px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}body{background:var(--paper);color:var(--ink);font:400 16px/1.6 var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-variant-numeric:lining-nums;margin:0}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{box-shadow:var(--focus);border-radius:4px;outline:none}h1,h2,h3,h4{letter-spacing:-.01em;margin:0;font-weight:700}table,.mono,time{font-variant-numeric:lining-nums tabular-nums}p{margin:0}::selection{background:var(--gold-200)}.skip-link{z-index:100;background:var(--forest-900);color:#fff;border-radius:var(--radius-sm);padding:10px 16px;position:absolute;top:-60px;left:12px}.skip-link:focus{top:12px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.wrap{width:min(var(--wrap), 100% - 32px);margin-inline:auto}.display{font-family:var(--font-display);letter-spacing:-.02em;font-variation-settings:"opsz" 96;font-weight:700}.eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--gold-700);align-items:center;gap:10px;font-size:12px;font-weight:600;display:inline-flex}.eyebrow:before{content:"";background:currentColor;width:22px;height:1px}.eyebrow.light{color:var(--gold-400)}.muted{color:var(--muted)}.small{font-size:14px}.tiny{font-size:12px}.mono{letter-spacing:.02em;font-family:ui-monospace,SF Mono,Consolas,monospace;font-size:.92em}.btn{--btn-bg:var(--surface);--btn-fg:var(--ink);--btn-border:var(--line-strong);border:1px solid var(--btn-border);background:var(--btn-bg);min-height:44px;color:var(--btn-fg);white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-size:15px;font-weight:600;line-height:1;transition:background .15s,border-color .15s,transform .15s,box-shadow .15s;display:inline-flex}.btn:hover{border-color:var(--ink-2)}.btn:active{transform:translateY(1px)}.btn:disabled,.btn[aria-disabled=true]{opacity:.55;cursor:not-allowed;transform:none}.btn svg{flex:none;width:17px;height:17px}.btn-primary{--btn-bg:var(--forest-800);--btn-fg:#fff;--btn-border:var(--forest-800)}.btn-primary:hover{--btn-bg:var(--forest-700);--btn-border:var(--forest-700)}.btn-gold{--btn-bg:var(--gold-500);--btn-fg:var(--forest-950);--btn-border:var(--gold-500)}.btn-gold:hover{--btn-bg:var(--gold-400);--btn-border:var(--gold-400)}.btn-ghost{--btn-bg:transparent;--btn-border:transparent}.btn-ghost:hover{--btn-bg:var(--paper-2);--btn-border:transparent}.btn-outline-light{--btn-bg:transparent;--btn-fg:#fff;--btn-border:#ffffff73}.btn-outline-light:hover{--btn-bg:#ffffff14;--btn-border:#fff}.btn-danger{--btn-bg:var(--danger);--btn-fg:#fff;--btn-border:var(--danger)}.btn-danger:hover{--btn-bg:#9a1f18}.btn-success{--btn-bg:var(--success);--btn-fg:#fff;--btn-border:var(--success)}.btn-sm{min-height:36px;padding:0 14px;font-size:14px}.btn-xs{gap:6px;min-height:30px;padding:0 10px;font-size:13px}.btn-xs svg{width:15px;height:15px}.btn-lg{min-height:52px;padding:0 26px;font-size:16px}.btn-block{width:100%}.btn-icon{border-radius:10px;width:40px;min-height:40px;padding:0}.link{color:var(--forest-700);text-decoration:underline;-webkit-text-decoration-color:var(--gold-400);text-decoration-color:var(--gold-400);text-underline-offset:3px;font-weight:600}.link:hover{color:var(--forest-900)}.text-btn{color:var(--forest-700);background:0 0;border:0;align-items:center;gap:6px;padding:0;font-size:14px;font-weight:600;display:inline-flex}.text-btn:hover{color:var(--forest-900)}.text-btn svg{width:16px;height:16px}.badge{white-space:nowrap;background:var(--paper-2);height:24px;color:var(--ink-2);border-radius:999px;align-items:center;gap:6px;padding:0 10px;font-size:12.5px;font-weight:600;display:inline-flex}.badge:before{content:"";opacity:.85;background:currentColor;border-radius:50%;width:6px;height:6px}.badge.plain:before{display:none}.badge.success{background:var(--success-bg);color:var(--success)}.badge.warning{background:var(--warning-bg);color:var(--warning)}.badge.danger{background:var(--danger-bg);color:var(--danger)}.badge.info{background:var(--info-bg);color:var(--info)}.badge.progress{background:var(--progress-bg);color:var(--progress)}.badge.neutral{color:#4d5852;background:#eef0ee}.badge.gold{background:var(--gold-100);color:var(--gold-700)}.field{gap:6px;min-width:0;display:grid}.field>label,.field-label{color:var(--ink);font-size:14.5px;font-weight:600}.field .req{color:var(--danger);margin-left:2px}.field .optional{color:var(--faint);margin-left:6px;font-size:13px;font-weight:400}.hint{color:var(--muted);font-size:13px;line-height:1.45}.error-text{color:var(--danger);align-items:flex-start;gap:6px;font-size:13px;font-weight:500;display:flex}.error-text svg{flex:none;width:15px;height:15px;margin-top:2px}.input,.select,.textarea{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);width:100%;min-height:46px;padding:10px 14px;font-size:15.5px;transition:border-color .15s,box-shadow .15s}.textarea{resize:vertical;min-height:120px;line-height:1.5}.select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%2336443d' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4 6 4 4 4-4'/%3E%3C/svg%3E");background-position:right 14px center;background-repeat:no-repeat;padding-right:40px}.input:hover,.select:hover,.textarea:hover{border-color:var(--faint)}.input:focus,.select:focus,.textarea:focus{border-color:var(--forest-600);outline:none;box-shadow:0 0 0 3px #1e6b5129}.input[aria-invalid=true],.select[aria-invalid=true],.textarea[aria-invalid=true]{border-color:var(--danger);background:snow}.input:disabled,.select:disabled,.textarea:disabled{background:var(--paper-2);color:var(--muted);cursor:not-allowed}.input-sm{min-height:38px;padding:6px 12px;font-size:14px}.select.input-sm{background-position:right 10px center;padding-right:34px}.choice-group{gap:8px;display:grid}.choice-group.inline{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}.choice{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;align-items:flex-start;gap:12px;padding:12px 14px;font-size:15px;line-height:1.4;transition:border-color .15s,background .15s;display:flex}.choice:hover{border-color:var(--faint)}.choice:has(input:checked){border-color:var(--forest-600);background:var(--forest-50)}.choice:has(input:focus-visible){box-shadow:var(--focus)}.choice input{width:18px;height:18px;accent-color:var(--forest-700);flex:none;margin:2px 0 0}.checkbox-line{cursor:pointer;align-items:flex-start;gap:12px;font-size:15px;line-height:1.5;display:flex}.checkbox-line input{width:20px;height:20px;accent-color:var(--forest-700);flex:none;margin-top:2px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.form-grid .span-2{grid-column:1/-1}.course-image-upload{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--paper);align-items:center;gap:12px;padding:8px;display:flex}.course-image-upload img{object-fit:cover;border-radius:4px;width:76px;height:54px}.course-image-empty{border:1px dashed var(--line-strong);border-radius:var(--radius-sm);min-height:72px;color:var(--muted);justify-content:center;align-items:center;gap:8px;font-size:14px;display:flex}.course-image-empty svg{width:18px}.upload-course-image{width:max-content}.upload-course-image input{display:none}@media (max-width:640px){.form-grid{grid-template-columns:1fr}}.alert{border-radius:var(--radius);border:1px solid;align-items:flex-start;gap:12px;padding:14px 16px;font-size:14.5px;line-height:1.5;display:flex}.alert svg{flex:none;width:19px;height:19px;margin-top:1px}.alert b{margin-bottom:2px;display:block}.alert.error{background:var(--danger-bg);color:#7d1a14;border-color:#f1c4bf}.alert.success{background:var(--success-bg);color:#0b4f33;border-color:#bfe2cf}.alert.warning{background:var(--warning-bg);color:#6e4105;border-color:#f2d6a6}.alert.info{background:var(--info-bg);color:#143f6f;border-color:#c4d8ef}.alert.gold{background:var(--gold-100);border-color:var(--gold-200);color:var(--gold-700)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg)}.card-pad{padding:24px}.divider{background:var(--line);border:0;height:1px;margin:0}.spinner{border:2px solid;border-right-color:#0000;border-radius:50%;flex:none;width:18px;height:18px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{background:linear-gradient(90deg, var(--paper-2), #ece8de, var(--paper-2));border-radius:var(--radius-sm);background-size:200% 100%;animation:1.4s infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}.empty{text-align:center;color:var(--muted);justify-items:center;gap:10px;padding:48px 24px;display:grid}.empty-icon{background:var(--forest-50);width:52px;height:52px;color:var(--forest-700);border-radius:14px;place-items:center;display:grid}.empty-icon svg{width:24px;height:24px}.empty h3{color:var(--ink);font-size:17px}.empty p{max-width:420px;font-size:14.5px}.kv{grid-template-columns:minmax(130px,38%) 1fr;gap:10px 20px;margin:0;font-size:14.5px;display:grid}.kv dt{color:var(--muted)}.kv dd{color:var(--ink);overflow-wrap:anywhere;margin:0;font-weight:500}@media (max-width:520px){.kv{grid-template-columns:1fr;gap:2px}.kv dd{margin-bottom:10px}}.check-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.check-list li{align-items:flex-start;gap:12px;line-height:1.5;display:flex}.check-list svg{width:19px;height:19px;color:var(--forest-600);flex:none;margin-top:3px}dialog.modal{border-radius:var(--radius-lg);width:min(560px,100% - 32px);max-height:calc(100dvh - 48px);box-shadow:var(--shadow-lg);color:var(--ink);background:var(--surface);border:0;padding:0}dialog.modal::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0a1e1680}dialog.modal.wide{width:min(760px,100% - 32px)}.modal-head{justify-content:space-between;align-items:flex-start;gap:16px;padding:22px 24px 0;display:flex}.modal-head h2{font-size:20px}.modal-body{gap:18px;padding:18px 24px;display:grid}.modal-foot{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:flex-end;gap:10px;padding:16px 24px 22px;display:flex}.toast-region{z-index:90;gap:10px;width:min(380px,100% - 40px);display:grid;position:fixed;bottom:20px;right:20px}.toast{background:var(--forest-950);color:#fff;border-radius:var(--radius);box-shadow:var(--shadow-lg);align-items:flex-start;gap:10px;padding:14px 16px;font-size:14.5px;animation:.2s ease-out toast-in;display:flex}.toast.error{background:#5f1510}.toast svg{width:18px;height:18px;color:var(--gold-400);flex:none;margin-top:2px}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}.spin{animation:.8s linear infinite spin}
