:root{--jds-blue-100: #f7f9ff;--jds-blue-200: #e0eaff;--jds-blue-300: #a9bff5;--jds-blue-400: #496cde;--jds-blue-500: #2159a4;--jds-blue-600: #28313a;--jds-red-400: #f86d6d;--jds-red-500: #dc0909;--jds-red-600: #aa0808;--jds-yellow-500: #e5a30c;--jds-green-500: #09b909;--jds-green-600: #0e8345;--jds-neutral-0: #ffffff;--jds-neutral-100: #fafafa;--jds-neutral-200: #f5f5f7;--jds-neutral-300: #eeeeee;--jds-neutral-400: #dddddd;--jds-neutral-500: #58585a;--jds-neutral-600: #3c3c3c;--jds-neutral-700: #2c2c2c;--jds-neutral-800: #1c1c1c;--jds-primary: var(--jds-blue-500);--jds-primary-strong: var(--jds-blue-600);--jds-primary-hover: #1e2530;--jds-primary-tint: var(--jds-blue-100);--jds-accent: var(--jds-blue-400);--jds-surface: var(--jds-neutral-0);--jds-surface-muted: var(--jds-neutral-200);--jds-border: var(--jds-neutral-300);--jds-border-strong: var(--jds-neutral-400);--jds-border-field: #c9c6c5;--jds-text: var(--jds-neutral-800);--jds-text-secondary: var(--jds-neutral-600);--jds-text-muted: var(--jds-neutral-500);--jds-on-primary: var(--jds-neutral-0);--jds-danger: var(--jds-red-500);--jds-warning: var(--jds-yellow-500);--jds-success: var(--jds-green-600);--jds-space-1: 2px;--jds-space-2: 4px;--jds-space-3: 8px;--jds-space-4: 12px;--jds-space-5: 16px;--jds-space-6: 20px;--jds-space-7: 24px;--jds-space-8: 32px;--jds-space-9: 40px;--jds-space-10: 48px;--jds-space-11: 56px;--jds-space-12: 64px;--jds-space-13: 80px;--jds-space-14: 96px;--jds-space-15: 120px;--jds-space-16: 144px;--jds-radius-1: 6px;--jds-radius-2: 999px;--jds-radius-control: 4px;--jds-shadow-1: 0 1px 1px 0 rgba(0, 0, 0, .1), 0 3px 3px 0 rgba(0, 0, 0, .09), 0 6px 4px 0 rgba(0, 0, 0, .05), 0 11px 4px 0 rgba(0, 0, 0, .01);--jds-shadow-2: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 6px 6px 0 rgba(0, 0, 0, .09), 0 13px 8px 0 rgba(0, 0, 0, .05), 0 24px 10px 0 rgba(0, 0, 0, .01);--jds-shadow-3: 0 3px 7px 0 rgba(0, 0, 0, .1), 0 12px 12px 0 rgba(0, 0, 0, .09), 0 28px 17px 0 rgba(0, 0, 0, .05), 0 50px 20px 0 rgba(0, 0, 0, .01);--jds-font-body: "Noto Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--jds-font-title: "Montserrat", "Noto Sans", system-ui, sans-serif;--jds-font: var(--jds-font-body);--jds-text-display-xs: 20px;--jds-text-display-s: 24px;--jds-text-display-m: 30px;--jds-text-display-l: 36px;--jds-text-heading-xs: 14px;--jds-text-heading-s: 20px;--jds-text-heading-m: 24px;--jds-text-heading-l: 30px;--jds-text-label-xs: 12px;--jds-text-label-s: 14px;--jds-text-label-m: 16px;--jds-text-label-l: 20px;--jds-text-paragraph-s: 12px;--jds-text-paragraph-m: 14px;--jds-text-paragraph-l: 16px;--jds-modal-sm: 548px;--jds-modal-md: 814px;--jds-modal-lg: 1080px;--jds-panel-rail: 33.333%;--jds-panel-body: 66.667%;--jds-btn-h: 44px;--jds-btn-h-sm: 36px;--jds-btn-pad-x: 16px;--jds-btn-pad-x-sm: 12px;--jds-btn-gap: 8px;--jds-btn-icon: 20px;--jds-btn-icon-sm: 14px;--jds-btn-font: var(--jds-text-label-m);--jds-btn-font-sm: var(--jds-text-label-s)}.jds-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--jds-btn-gap);height:var(--jds-btn-h);padding:0 var(--jds-btn-pad-x);border:1px solid transparent;border-radius:var(--jds-radius-control);font-family:var(--jds-font-body);font-size:var(--jds-btn-font);font-weight:700;line-height:1;white-space:nowrap;cursor:pointer;transition:background-color .12s ease,border-color .12s ease,color .12s ease,box-shadow .12s ease}.jds-btn:focus-visible{outline:2px solid var(--jds-accent);outline-offset:2px}.jds-btn:disabled,.jds-btn[disabled]{opacity:.5;cursor:not-allowed}.jds-btn{--_accent: var(--jds-primary);--_accent-strong: var(--jds-primary-hover);--_accent-tint: var(--jds-primary-tint);background:var(--_accent);color:var(--jds-on-primary)}.jds-btn:hover:not(:disabled){background:var(--_accent-strong)}.jds-btn:active:not(:disabled){background:var(--_accent-strong);filter:brightness(.92)}.jds-btn--neutral{--_accent: var(--jds-neutral-600);--_accent-strong: var(--jds-neutral-700);--_accent-tint: var(--jds-neutral-200)}.jds-btn--alert{--_accent: var(--jds-danger);--_accent-strong: var(--jds-red-600);--_accent-tint: #fdecec}.jds-btn--outlined{background:var(--jds-surface);color:var(--_accent);border-color:var(--jds-border-strong)}.jds-btn--outlined:hover:not(:disabled){background:var(--_accent-tint)}.jds-btn--tonal{background:var(--_accent-tint);color:var(--_accent)}.jds-btn--tonal:hover:not(:disabled){background:var(--_accent-tint);filter:brightness(.96)}.jds-btn--plain{background:transparent;color:var(--_accent)}.jds-btn--plain:hover:not(:disabled){background:var(--jds-surface-muted)}.jds-btn--icon{width:var(--jds-btn-h);padding:0}.jds-btn--sm{height:var(--jds-btn-h-sm);padding:0 var(--jds-btn-pad-x-sm);font-size:var(--jds-btn-font-sm);font-weight:600}.jds-btn--icon.jds-btn--sm{width:var(--jds-btn-h-sm);padding:0}.jds-btn.is-loading{pointer-events:none;opacity:.85}.jds-input,.jds-select{box-sizing:border-box;height:32px;padding:0 var(--jds-space-4);border:1px solid var(--jds-border-field);border-radius:var(--jds-radius-control);background:var(--jds-surface);color:var(--jds-text);font-family:var(--jds-font);font-size:13px;transition:border-color .12s ease,box-shadow .12s ease}.jds-input:focus,.jds-input:focus-visible,.jds-select:focus,.jds-select:focus-visible{outline:none;border-color:var(--jds-accent);box-shadow:0 0 0 3px var(--jds-primary-tint)}.jds-select{cursor:pointer}.jds-field{display:flex;flex-direction:column;gap:var(--jds-space-2)}.jds-field>label{font-family:var(--jds-font-body);font-size:var(--jds-text-label-xs);font-weight:600;color:var(--jds-text-secondary)}.jds-input.is-error,.jds-select.is-error{border-color:var(--jds-danger)}.jds-input.is-error:focus,.jds-select.is-error:focus{box-shadow:0 0 0 3px #fdecec}.jds-input:disabled,.jds-select:disabled,.jds-input[readonly]{background:var(--jds-surface-muted);color:var(--jds-text-muted);cursor:not-allowed}.jds-field__hint{font-size:var(--jds-text-label-xs);color:var(--jds-text-muted)}.jds-field__error{font-size:var(--jds-text-label-xs);color:var(--jds-danger)}.jds-checkbox{display:inline-flex;align-items:center;gap:var(--jds-space-3);font-family:var(--jds-font-body);font-size:var(--jds-text-label-s);color:var(--jds-text);cursor:pointer}.jds-checkbox>input[type=checkbox]{width:16px;height:16px;margin:0;accent-color:var(--jds-primary);cursor:pointer}.jds-checkbox.is-disabled{opacity:.5;cursor:not-allowed}.jds-card{background:var(--jds-surface);border:1px solid var(--jds-border);border-radius:var(--jds-radius-1);box-shadow:var(--jds-shadow-2);padding:var(--jds-space-5)}.jds-dialog{background:var(--jds-surface);border:1px solid var(--jds-border);border-radius:var(--jds-radius-1);box-shadow:var(--jds-shadow-3);width:100%}.jds-dialog--sm{max-width:var(--jds-modal-sm)}.jds-dialog--md{max-width:var(--jds-modal-md)}.jds-dialog--lg{max-width:var(--jds-modal-lg)}.jds-title{font-family:var(--jds-font-title);font-weight:600;font-size:var(--jds-text-heading-m);color:var(--jds-text);margin:0}.jds-pill{display:inline-flex;align-items:center;padding:var(--jds-space-1) 10px;border-radius:var(--jds-radius-2);font-family:var(--jds-font);font-size:14px;font-weight:600;line-height:1.4;color:var(--jds-on-primary);background:var(--jds-primary)}.jds-pill--warning{background:var(--jds-warning);color:var(--jds-neutral-800)}.jds-pill--danger{background:var(--jds-danger)}.jds-pill--success{background:var(--jds-success)}.jds-pill--outlined{background:transparent;color:var(--jds-text);border:1px solid var(--jds-border-field);font-weight:500}.jds-pill__dot{width:6px;height:6px;margin-right:var(--jds-space-2);border-radius:var(--jds-radius-2);background:currentColor;flex:0 0 auto}.jds-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;padding:0 var(--jds-space-2);border-radius:var(--jds-radius-control);font-family:var(--jds-font);font-size:14px;font-weight:600;font-variant-numeric:tabular-nums;line-height:1.5;color:var(--jds-text);background:var(--jds-neutral-300)}.jds-table-wrap{position:relative;width:100%;box-sizing:border-box;overflow:auto;border-radius:var(--jds-radius-1);border:1px solid var(--jds-border)}.jds-table{width:100%;border-collapse:collapse;font-family:var(--jds-font);font-size:14px;font-variant-numeric:tabular-nums}.jds-table thead{background:var(--jds-surface-muted)}.jds-table thead th{height:48px;padding:0 var(--jds-space-5);text-align:left;vertical-align:middle;font-weight:500;color:var(--jds-text-muted);white-space:nowrap}.jds-table tbody tr{background:var(--jds-surface);border-bottom:1px solid var(--jds-border);transition:background-color .15s ease}.jds-table tbody td{padding:var(--jds-space-4) var(--jds-space-5);vertical-align:middle;color:var(--jds-text);white-space:nowrap}.jds-table input[type=checkbox]{width:16px;height:16px;margin:0;accent-color:var(--jds-primary);cursor:pointer}.jds-table tbody tr.is-selected,.jds-table tbody tr[data-selected=true]{background:var(--jds-surface-muted)}.jds-table--selectable tbody tr{cursor:pointer}.jds-table--selectable tbody tr:hover{background:var(--jds-surface-muted)}.jds-search{position:relative;display:flex;align-items:center}.jds-search>svg{position:absolute;left:var(--jds-space-4);width:16px;height:16px;color:var(--jds-text-muted);pointer-events:none}.jds-search>input{padding-left:40px}.jds-stepper{display:flex;align-items:center;gap:var(--jds-space-3)}.jds-stepper>input{text-align:center;font-variant-numeric:tabular-nums}.jds-hint{font-size:14px;color:var(--jds-text-muted)}@keyframes jds-skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.jds-skeleton{display:block;border-radius:999px;background:linear-gradient(90deg,var(--jds-neutral-200) 25%,var(--jds-neutral-300) 37%,var(--jds-neutral-200) 63%);background-size:200% 100%;animation:jds-skeleton-shimmer 1.4s ease-in-out infinite}.jds-skeleton--line{height:.85rem}.jds-skeleton--block{border-radius:var(--jds-radius-1)}.jds-skeleton--circle{border-radius:999px;width:2.25rem;height:2.25rem}@media(prefers-reduced-motion:reduce){.jds-skeleton{animation:none}}.jds-elev-1{box-shadow:var(--jds-shadow-1)}.jds-elev-2{box-shadow:var(--jds-shadow-2)}.jds-elev-3{box-shadow:var(--jds-shadow-3)}.jds-banner{--_banner-bg: var(--jds-surface);--_banner-fg: var(--jds-text);--_banner-border: var(--jds-border-strong);display:flex;align-items:center;gap:10px;min-height:40px;padding:8px 12px;border:1px solid var(--_banner-border);border-radius:var(--jds-radius-control);background:var(--_banner-bg);color:var(--_banner-fg);font-family:var(--jds-font-body);font-size:13px;white-space:pre-line}.jds-banner--success{--_banner-bg: var(--jds-success);--_banner-fg: var(--jds-on-primary);--_banner-border: var(--jds-success)}.jds-banner--error{--_banner-bg: var(--jds-danger);--_banner-fg: var(--jds-on-primary);--_banner-border: var(--jds-danger)}.jds-banner--warning{--_banner-bg: var(--jds-warning);--_banner-fg: var(--jds-neutral-800);--_banner-border: var(--jds-warning)}.jds-banner__icon{flex:0 0 auto;width:18px;height:18px;fill:currentColor}.jds-banner__message{flex:1 1 auto;min-width:0}.jds-banner__close{flex:0 0 auto;margin-left:auto;border:0;background:none;color:inherit;opacity:.85;font-size:16px;line-height:1;cursor:pointer}.jds-banner__close:hover{opacity:1}[class*=std-][hidden]{display:none!important}.std-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap;flex:0 0 auto;box-sizing:border-box;height:32px;padding:0 14px;border:1px solid var(--jds-border-strong);border-radius:var(--jds-radius-control);background:var(--jds-surface);color:var(--jds-text);font:inherit;font-size:12.5px;font-weight:500;cursor:pointer}.std-btn:hover:not(:disabled){background:var(--jds-surface-muted)}.std-btn:disabled{border-color:var(--jds-border);color:var(--jds-text-muted);background:var(--jds-surface);cursor:not-allowed}.std-btn--primary{border-color:var(--jds-primary);background:var(--jds-primary);color:var(--jds-on-primary)}.std-btn--primary:hover:not(:disabled){border-color:var(--jds-primary-hover);background:var(--jds-primary-hover)}.std-btn--primary:disabled{border-color:var(--jds-primary);background:var(--jds-primary);color:var(--jds-on-primary);opacity:.45}.std-btn--mini{width:24px;height:24px;padding:0;font-size:12px;line-height:1}.std-ribbon{display:flex;flex-wrap:wrap;align-items:flex-start;flex:0 0 auto;padding:4px 8px;background:linear-gradient(#fbfcfe,#eef1f6);border-bottom:1px solid var(--spa-border, #d8d8d8)}.std-ribbon--inline{align-items:center;gap:1px}.std-ribbon__group{display:flex;flex-direction:column;align-items:center;padding:0 3px 4px}.std-ribbon__row{display:flex;gap:1px}.std-ribbon__caption{margin-top:3px;font-size:9.5px;color:#7a8494;white-space:nowrap}.std-ribbon__sep{align-self:stretch;width:1px;margin:3px 4px;background:#d3d9e1}.std-ribbon__btn{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;white-space:nowrap;padding:4px 8px;border:1px solid transparent;border-radius:4px;background:transparent;color:#33404f;font:inherit;cursor:pointer}.std-ribbon__icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.3}.std-ribbon__btn:hover:not(:disabled){background:#eaf2ff;border-color:#bcd6f9}.std-ribbon__btn:active:not(:disabled){background:#d8e8fd}.std-ribbon__btn[aria-pressed=true]{background:#cfe0fb;border-color:#7fa8e8;color:#16305c}.std-ribbon__btn:disabled{color:#a7afba;cursor:not-allowed}.std-overlay{position:fixed;inset:0;z-index:1200;display:flex;align-items:center;justify-content:center;padding:16px;background:#10162673;font-family:var(--spa-font)}.std-dialog{display:flex;flex-direction:column;box-sizing:border-box;width:min(560px,96%);max-height:90%;border-radius:8px;box-shadow:0 12px 40px #00000059;background:#fff;overflow:hidden;outline:none}.std-dialog__head{display:flex;align-items:center;gap:8px;flex:0 0 auto;padding:12px 16px;background:#1b2a4a;color:#fff;font-size:13px;font-weight:600}.std-dialog__close{margin-left:auto;border:0;background:none;color:#cbd7ea;font-size:18px;line-height:1;cursor:pointer}.std-dialog__body{flex:1 1 auto;min-height:0;padding:16px;overflow:auto;font-size:12.5px;color:#374151}.std-dialog__foot{display:flex;align-items:center;flex-wrap:wrap;gap:8px;row-gap:8px;flex:0 0 auto;padding:10px 16px;background:var(--spa-bar-bg, #f7f8fa);border-top:1px solid var(--spa-border, #d8d8d8)}.std-dialog__foot--end{justify-content:flex-end}.std-spacer{flex:1 1 auto}.std-tabs{display:flex;flex-wrap:wrap;gap:2px;flex:0 0 auto;padding:8px 16px 0;background:#f7f8fa;border-bottom:1px solid var(--spa-border, #d8d8d8)}.std-tab{flex:0 0 auto;border:1px solid transparent;border-bottom:none;border-radius:4px 4px 0 0;background:transparent;padding:7px 14px;font:inherit;font-size:12px;color:#6b7280;cursor:pointer}.std-tab.active,.std-tab[aria-selected=true]{background:#fff;border-color:var(--spa-border, #d8d8d8);color:#1f2937;font-weight:600}.std-tab:disabled{color:#a7afba;cursor:not-allowed}.std-tab-err{margin-left:4px;color:#a33}.std-field{display:flex;flex-direction:column;gap:3px;margin-bottom:10px;font-size:11px;color:#6b7280}.std-field input:not([type=checkbox]):not([type=radio]),.std-field select{box-sizing:border-box;height:28px;padding:0 8px;font:inherit;font-size:12px;border:1px solid #d8d8d8;border-radius:4px;color:#374151;background:#fff}.std-field textarea{box-sizing:border-box;padding:5px 8px;font:inherit;font-size:12px;border:1px solid #d8d8d8;border-radius:4px;color:#374151;resize:vertical}.std-field input:disabled,.std-field select:disabled,.std-field textarea:disabled{background:var(--jds-surface-muted);color:var(--jds-text-muted)}.std-control{box-sizing:border-box;height:28px;padding:0 8px;font:inherit;font-size:12px;border:1px solid #d8d8d8;border-radius:4px;color:#374151;background:#fff}textarea.std-control{height:auto;padding:5px 8px;resize:vertical}.std-control:disabled{background:var(--jds-surface-muted);color:var(--jds-text-muted)}.std-field--check{flex-direction:row;align-items:center;gap:6px;font-size:12px;color:#374151}.std-field-error{font-size:11px;color:#b3261e;white-space:pre-line}.std-group-heading{margin:14px 0 8px;padding-bottom:4px;border-bottom:1px solid #e3e6ec;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#5b6472}.std-message{margin:8px 16px 0;padding:8px 12px;border-radius:4px;font-size:12px;white-space:pre-line}.std-message--success{background:#e6f4ea;color:#1e7a3c}.std-message--error{background:#fdecea;color:#a33}.std-loading{color:#6b7280;font-size:12px}.std-grid{width:100%;border-collapse:collapse;font-size:12px}.std-grid th{position:sticky;top:0;padding:6px 10px;text-align:left;background:#eef1f6;border-bottom:1px solid #d8d8d8;white-space:nowrap}.std-grid td{padding:5px 10px;border-bottom:1px solid #eee;color:#374151}.std-grid tbody tr.selected{background:#dce6f7}.std-grid td.empty{text-align:center;color:#9ca3af;cursor:default;padding:18px 10px}:root{--spa-brand-navy: #1b2a4a;--spa-brand-navy-lift: #2a4a7a;--spa-encore-blue: #3fa9dc;--spa-accent: var(--jds-primary);--spa-accent-hover: var(--jds-primary-hover);--spa-accent-rule: var(--jds-accent);--spa-page-tint: var(--jds-primary-tint);--spa-border: var(--jds-border);--spa-field-border: var(--jds-border-strong);--spa-bar-bg: var(--jds-neutral-100);--spa-panel-bg: var(--jds-surface);--spa-band-header-bg: var(--jds-neutral-200);--spa-text-primary: var(--jds-text);--spa-text-secondary: var(--jds-text-secondary);--spa-text-muted: var(--jds-text-muted);--lesson-accent: var(--jds-primary);--lesson-border: var(--jds-border);--lesson-bar-bg: var(--jds-neutral-100);--lesson-panel-bg: var(--jds-surface);--spa-error: #b3261e;--spa-error-bg: #fdecea;--spa-error-border: #f0c4c0;--spa-warn: #8a5a00;--spa-font: var(--jds-font-body)}html,body{height:100%;margin:0}body{font-family:var(--jds-font-body)}
