:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif;color:#251817;background:#f4efe9}*{box-sizing:border-box}body{margin:0}.app-shell{min-height:100vh;display:grid;grid-template-columns:220px 1fr}aside{background:#3a1216;color:#fff;padding:24px 18px;display:flex;flex-direction:column}.brand{font-size:18px;font-weight:750}.brand-subtitle{margin:2px 0 28px;color:#c99a96;font-size:12px;text-transform:uppercase;letter-spacing:.08em}nav{display:grid;gap:3px;flex:1;align-content:start}.nav-group-label{margin:14px 4px 2px;color:#a9807c;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}nav a{color:#f0d9d5;padding:9px 12px;border-radius:7px;border:0;background:transparent;text-align:left;cursor:pointer;text-decoration:none;display:block;font:inherit;font-size:14px}nav a.active,nav a:hover{background:#8d2631;color:#fff}.logout-button{margin-top:16px;background:transparent;border:1px solid #5c2226;color:#f0d9d5;border-radius:7px;padding:9px 12px;cursor:pointer;text-align:left;font:inherit;font-size:14px}.logout-button:hover{background:#5c2226;color:#fff}main{padding:36px 44px 64px;max-width:1280px}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:28px;padding-bottom:20px;border-bottom:1px solid #e7dcd5}.page-header-actions{display:flex;flex-wrap:wrap;gap:14px;flex-shrink:0}.page-header>div>.link-button:first-child{display:inline-block;margin-bottom:8px}.eyebrow{color:#982d35;font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;margin:0 0 4px}h1{font-size:26px;font-weight:750;margin:0;line-height:1.25}h2{font-size:17px;font-weight:700;margin:0 0 14px}.section-heading{margin-top:28px}.lead{color:#745c58;margin:6px 0 0;font-size:14px}.breadcrumbs{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:13px;color:#a08d88;margin-bottom:10px}.breadcrumb-item{display:inline-flex;flex-shrink:0;align-items:center;gap:6px;white-space:nowrap}.breadcrumbs a{color:#8d2631;text-decoration:none}.breadcrumbs a:hover{text-decoration:underline}.breadcrumb-current{color:#251817;font-weight:600}.breadcrumb-sep{color:#b9a89f}.course-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin-bottom:28px}article{background:#fff;border:1px solid #e7dcd5;border-radius:12px;padding:18px;box-shadow:0 4px 14px #5220160a}article span{color:#276749;font-size:11px;text-transform:uppercase;letter-spacing:.04em;font-weight:700}article h2{margin:10px 0 4px;font-size:22px}article p{color:#745c58;margin:0;font-size:13px}.error{background:#fee2e2;color:#991b1b;border-radius:8px;padding:12px;margin-bottom:16px;font-size:14px}.course-card,.lesson-list a,.lesson-list button{text-align:left;background:#fff;border:1px solid #e7dcd5;border-radius:12px;padding:18px;cursor:pointer;display:grid;gap:6px;text-decoration:none;color:inherit;font:inherit}.course-card span,.lesson-list span{color:#8d2631;font-size:11px;text-transform:uppercase;font-weight:700;letter-spacing:.04em}.course-card strong{font-size:16px}.lesson-list{display:grid;gap:10px;margin-top:16px}.lesson-list a:hover,.lesson-list button:hover,.course-card:hover{border-color:#8d2631}.link-button{background:transparent;border:0;border-radius:6px;color:#8d2631;cursor:pointer;padding:6px 10px;font-size:14px}.link-button:hover:not(:disabled){background:#f3e9e2}.link-button:disabled{opacity:.5;cursor:default}.link-button.danger{color:#991b1b}.link-button.danger:hover:not(:disabled){background:#fde2e2}.button-primary{background:#8d2631;color:#fff;border:0;border-radius:7px;padding:9px 15px;cursor:pointer;font:inherit;font-size:14px}.button-primary:hover:not(:disabled){background:#7a1f29}.button-primary:disabled{opacity:.5;cursor:default}.management-panel,.block-card{background:#fff;border:1px solid #e7dcd5;border-radius:12px;padding:20px 22px;margin-top:18px}.management-panel:first-of-type{margin-top:0}.management-panel article button,.course-grid article button{border:0;border-radius:7px;padding:7px 12px;cursor:pointer}.page-header-actions button:not(.link-button),.block-card>button,.block-form button:not(.link-button),.question-form button:not(.link-button),.management-panel>form button[type=submit],.section-toolbar button:not(.link-button){background:#8d2631;color:#fff;border:0;border-radius:7px;padding:9px 15px;cursor:pointer;font:inherit;font-size:14px}.section-toolbar{display:flex;justify-content:flex-end;gap:12px;margin:16px 0}.page-header-actions button:not(.link-button):disabled,.management-panel>form button[type=submit]:disabled{opacity:.5;cursor:default}.page-header-actions button.button-secondary{background:#fff;color:#8d2631;border:1px solid #d7c8c0}.page-header-actions button.button-secondary:hover:not(:disabled){border-color:#8d2631}.page-header-actions button.button-danger{background:#fff;color:#991b1b;border:1px solid #f3caca}.page-header-actions button.button-danger:hover:not(:disabled){background:#fde2e2}.block-list{display:grid;gap:16px}.block-card{padding:20px 22px}.block-card>header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.block-card-meta{display:flex;align-items:center;gap:12px;color:#745c58;font-size:13px}.tabs-list{display:flex;gap:4px;border-bottom:1px solid #e7dcd5;margin-bottom:20px}.tabs-list button{background:transparent;border:0;border-bottom:2px solid transparent;padding:10px 4px;margin-right:20px;cursor:pointer;font:inherit;font-size:14px;color:#745c58;display:flex;align-items:center;gap:6px}.tabs-list button.active{color:#8d2631;border-bottom-color:#8d2631;font-weight:600}.tabs-list button:hover:not(.active){color:#251817}.tab-badge{background:#eee5df;color:#745c58;font-size:11px;padding:1px 7px;border-radius:999px}.tabs-list button.active .tab-badge{background:#f7ded8;color:#8d2631}.block-form{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:2px 16px;align-items:start}.block-form>p,.block-form>button{grid-column:1 / -1}.field{display:grid;gap:5px;margin-bottom:10px}.field-wide{grid-column:1 / -1}.field-label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#8d2631}.field-error{color:#991b1b;font-size:12px}.field input,.field textarea,.field select{padding:9px 10px;border:1px solid #d7c8c0;border-radius:8px;font:inherit}.field-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.hint{color:#745c58;font-size:13px;margin:8px 0}.table-empty{margin:0;padding:16px;text-align:center}.dynamic-list{grid-column:1 / -1;margin:4px 0 14px;display:grid;gap:8px}.dynamic-row,.dialogue-row,.vocabulary-row,.grammar-row,.option-row,.pair-row,.blank-row,.hanzi-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.dynamic-row input,.dialogue-row input,.vocabulary-row input,.grammar-row input,.grammar-row textarea,.option-row input,.pair-row input,.blank-row input,.blank-row select,.hanzi-row input{flex:1;min-width:120px;padding:9px 10px;border:1px solid #d7c8c0;border-radius:8px;font:inherit}.dialogue-row-media,.vocabulary-row-media{flex-basis:100%;display:flex;gap:14px;flex-wrap:wrap}.dialogue-row-media .media-picker,.vocabulary-row-media .media-picker{flex:1;min-width:200px}.checkbox-row{display:flex;align-items:center;gap:8px;font-size:14px}.checkbox-row input{flex:none}.row-actions{display:flex;gap:6px;margin-left:4px}.icon-button{border:1px solid #d7c8c0;background:#fff;border-radius:6px;width:30px;height:30px;cursor:pointer}.icon-button:disabled{opacity:.35;cursor:default}.icon-button.danger{color:#991b1b;border-color:#f3caca}.question-list{grid-column:1 / -1;display:grid;gap:14px;margin:14px 0}.question-card{border:1px solid #e7dcd5;border-radius:10px;padding:16px;background:#fbf8f5}.question-card header{display:flex;justify-content:space-between;gap:12px;margin-bottom:8px}.question-card header span{color:#745c58;font-size:12px;white-space:nowrap}.question-card-actions{display:flex;gap:10px;align-items:center;margin-bottom:6px}.question-form{grid-column:1 / -1;border:1px solid #d7c8c0;border-radius:10px;padding:16px;margin:14px 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 14px}.question-form legend{font-weight:700;padding:0 6px}.question-form-actions{grid-column:1 / -1;display:flex;gap:12px;margin-top:8px}.option-row input[type=radio],.option-row input[type=checkbox]{flex:0 0 auto}.media-picker{display:grid;gap:8px}.media-picker-selected{display:flex;align-items:center;gap:10px}.media-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;max-height:220px;overflow-y:auto}.media-picker-option{display:grid;gap:4px;border:1px solid #d7c8c0;border-radius:8px;padding:6px;background:#fff;cursor:pointer}.media-picker-option small{word-break:break-all}.media-thumb{width:100%;height:64px;object-fit:cover;border-radius:6px;background:#eee5df}.media-thumb-audio{width:100%}.media-thumb-missing{display:grid;place-items:center;color:#a08d88}.upload-inline{display:inline-block;padding:8px 14px;border:1px dashed #8d2631;border-radius:8px;color:#8d2631;cursor:pointer;font-size:13px}.add-block-form{margin-top:24px}.centered-state{min-height:60vh;display:grid;place-items:center;color:#745c58}.inline-form{display:flex;gap:12px;margin:0 0 20px;flex-wrap:wrap;align-items:flex-end;padding:16px;background:#faf6f2;border:1px solid #eee5df;border-radius:10px}.inline-form label{display:grid;gap:4px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:#8d2631}.inline-form input,.inline-form select{padding:9px 11px;border:1px solid #d7c8c0;border-radius:8px;font:inherit;font-size:14px}.inline-form>input,.inline-form>select{align-self:flex-end}.inline-form button{background:#8d2631;color:#fff;border:0;border-radius:8px;padding:10px 16px;cursor:pointer;font:inherit;font-size:14px}.inline-form button:disabled{opacity:.5;cursor:default}.assignment-form{flex-wrap:wrap}.assignment-result{display:grid;gap:4px;margin-top:10px;padding:10px;border-radius:8px;background:#f2eee8}.login-page{min-height:100vh;margin:auto;display:grid;place-items:center;background:#f4efe9}.login-card{width:min(420px,92vw);background:#fff;padding:32px;border-radius:16px;box-shadow:0 16px 50px #5220161a}.login-card label{display:grid;gap:6px;margin:14px 0}.login-card input{padding:12px;border:1px solid #d7c8c0;border-radius:8px}.login-card button{width:100%;padding:12px;margin-top:10px;border:0;border-radius:8px;background:#8d2631;color:#fff;cursor:pointer}.login-card button.secondary{background:#eee5df;color:#721c24}.table-wrap{overflow-x:auto;background:#fff;border-radius:12px;border:1px solid #e7dcd5}table{width:100%;border-collapse:collapse}.data-table th{background:#faf6f2}th,td{padding:12px 14px;text-align:left;border-bottom:1px solid #eee5df;font-size:14px}th{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#8d2631;font-weight:700}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fbf8f5}td small{display:block;color:#745c58;margin-top:2px}td select{padding:7px}td a{color:#8d2631}.lesson-preview{display:grid;gap:16px}.preview-block{background:#fff;border:1px solid #e7dcd5;border-radius:12px;padding:20px 22px}.preview-block h3{margin:0 0 10px;color:#8d2631}.preview-block ul{margin:0;padding-left:20px;display:grid;gap:6px}.preview-dialogue{list-style:none;padding:0}.preview-grammar-point{margin:10px 0}.preview-grammar-point code{background:#faf6f2;padding:2px 6px;border-radius:4px}.preview-question{border-top:1px solid #eee5df;padding-top:14px;margin-top:14px}.preview-question:first-of-type{border-top:0;margin-top:0;padding-top:0}.preview-question small{display:block;color:#745c58;margin:2px 0 8px}.preview-passage{background:#faf6f2;padding:10px 12px;border-radius:8px}.preview-options{list-style:none;padding:0;display:grid;gap:6px}.preview-options li{padding:6px 10px;border:1px solid #e7dcd5;border-radius:6px}.preview-options li.correct{border-color:#8d2631;background:#f7ded8;font-weight:600}.preview-options li.wrong,.wrong-text{border-color:#991b1b;background:#fde2e2;color:#991b1b;font-weight:600}.attempt-question.correct{border-left:4px solid #2f6b3a}.attempt-question.incorrect{border-left:4px solid #991b1b}@media(max-width:720px){.app-shell{grid-template-columns:1fr}aside{padding:18px}nav{display:flex;overflow-x:auto;flex-wrap:nowrap}.nav-group-label{display:none}main{padding:24px 16px}.page-header{flex-direction:column}}.bar-chart{display:grid;gap:10px;margin:14px 0}.bar-chart-row{display:grid;grid-template-columns:minmax(100px,160px) 1fr 56px;align-items:center;gap:12px}.bar-chart-label{font-size:13px;color:#251817;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bar-chart-track{background:#f2eee8;border-radius:6px;height:14px;overflow:hidden}.bar-chart-fill{background:#8d2631;height:100%;border-radius:6px}.bar-chart-value{font-size:13px;font-weight:700;color:#745c58;text-align:right}.chart-panel{margin-top:24px}.modal-backdrop{position:fixed;inset:0;background:#251817b3;display:grid;place-items:center;padding:24px;z-index:100}.modal-panel{background:#fff;border-radius:14px;width:min(520px,100%);max-height:90vh;overflow-y:auto;box-shadow:0 24px 60px #25181740}.modal-panel.wide{width:min(680px,100%)}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 20px;border-bottom:1px solid #eee5df}.modal-header h2{margin:0;font-size:17px}.modal-body{padding:20px}.modal-body .field{margin-bottom:14px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.modal-actions button:not(.link-button){background:#8d2631;color:#fff;border:0;border-radius:7px;padding:9px 15px;cursor:pointer;font:inherit;font-size:14px}.modal-actions button.button-danger-solid{background:#991b1b}.row-link-button{background:transparent;border:0;color:#8d2631;cursor:pointer;padding:0;font:inherit;font-size:14px;text-decoration:underline}.updated-meta{color:#a08d88;font-size:12px}.modal-section{margin:18px 0 4px;padding-top:14px;border-top:1px solid #eee5df}.modal-section:first-child{margin-top:0;padding-top:0;border-top:0}.modal-section-title{font-size:13px;font-weight:700;color:#251817;margin:0 0 10px}.scope-selector{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}.scope-option{padding:8px 16px;border-radius:999px;border:1px solid #d7c8c0;background:#fff;color:#55423c;font:inherit;font-size:13px;font-weight:600;cursor:pointer}.scope-option:hover:not(.active){border-color:#8d2631;color:#8d2631}.scope-option.active{background:#8d2631;border-color:#8d2631;color:#fff}.picker-search{width:100%;padding:9px 11px;border:1px solid #d7c8c0;border-radius:8px;font:inherit;font-size:14px;margin-bottom:10px;box-sizing:border-box}.picker-selection-hint{display:flex;align-items:center;gap:8px;margin:0 0 10px}.picker-group{margin-bottom:12px}.picker-group-label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.04em;font-weight:700;color:#8d2631;margin-bottom:6px}.picker-list{max-height:190px;overflow-y:auto;border:1px solid #eee5df;border-radius:8px;padding:6px;background:#faf6f2;display:grid;gap:2px}.picker-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 8px;border-radius:6px;font-size:14px}.picker-row:hover{background:#f3e9e2}.picker-row label{display:flex;align-items:center;gap:8px;cursor:pointer}.picker-row input{flex:none}.picker-tag{color:#a08d88;font-weight:400}.picker-empty{padding:8px;margin:0;color:#a08d88;font-size:13px}.advanced-options{margin:16px 0 4px;border:1px solid #eee5df;border-radius:8px;padding:4px 12px}.advanced-options summary{cursor:pointer;padding:10px 0;font-size:13px;font-weight:700;color:#8d2631}.advanced-options[open] summary{border-bottom:1px solid #eee5df}.advanced-options .field,.advanced-options .dynamic-list{margin:12px 0}.status-pill{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap}.status-pill.active,.status-pill.published{background:#e4f3e6;color:#1c6b32}.status-pill.closed,.status-pill.draft{background:#efe7e2;color:#745c58}.status-pill.pending_manual{background:#fff3d8;color:#9b5c00}.status-pill.archived{background:#f3e2e2;color:#8d2631}.mini-meter{display:inline-block;width:60px;height:6px;border-radius:999px;background:#eee5df;overflow:hidden;vertical-align:middle;margin-right:8px}.mini-meter>span{display:block;height:100%;background:#8d2631}
