:root{color:#202a33;font-synthesis:none;text-rendering:optimizelegibility;--green-700:#216447;--green-600:#2d7a58;--green-100:#dceee5;--line:#cfd5da;--muted:#68747f;--paper-width:210mm;--paper-min-height:297mm;background:#edf0f2;font-family:Inter,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0}button,textarea,input{font:inherit}#app{min-height:100vh}.app-shell{flex-direction:column;min-height:100vh;display:flex}.app-page{max-width:880px;margin:0 auto;padding:32px 16px}.app-page-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.app-page-header h1{color:var(--green-700);margin:0;font-size:24px}.app-page-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.ui-button{border:1px solid var(--line);color:var(--green-700);cursor:pointer;white-space:nowrap;background:#fff;border-radius:6px;padding:6px 14px}.ui-button:hover:not(:disabled){background:var(--green-100);border-color:var(--green-600)}.ui-button:disabled{color:#43515c;border-color:var(--line);cursor:not-allowed;background:#f4f6f7}.ui-button--primary{border-color:var(--green-600);background:var(--green-600);color:#fff}.ui-button--primary:hover:not(:disabled){background:var(--green-700);border-color:var(--green-700)}.ui-button--danger{color:#c0392b}.ui-button--danger:hover:not(:disabled){background:#fdecea;border-color:#c0392b}.ui-field,.ui-select{border:1px solid var(--line);color:#202a33;background:#fff;border-radius:6px;padding:8px 12px}.ui-field:focus,.ui-select:focus{border-color:var(--green-600);outline:none;box-shadow:0 0 0 2px #2d7a5829}.ui-field:disabled,.ui-select:disabled{color:var(--muted);cursor:not-allowed;background:#f4f6f7}.ui-table{border-collapse:collapse;border:1px solid var(--line);background:#fff;width:100%;margin-top:8px}.ui-table th,.ui-table td{text-align:left;border-bottom:1px solid var(--line);padding:8px 10px}.ui-table th{background:var(--green-100);color:var(--green-700);font-weight:600}.ui-table tr:last-child td{border-bottom:none}.ui-error{color:#c0392b;margin:8px 0 0;font-size:14px}.ui-success{color:var(--green-700);margin:8px 0 0;font-size:14px}.workspace-toolbar{border-bottom:1px solid var(--line);background:#fff;flex:0 0 56px;align-items:center;gap:16px;height:56px;padding:0 16px;display:flex}.workspace-toolbar button{border:1px solid var(--line);color:var(--green-700);cursor:pointer;background:#fff;border-radius:6px;padding:6px 14px}.workspace-toolbar button:hover:not(:disabled){background:var(--green-100);border-color:var(--green-600)}.workspace-toolbar button:disabled{color:#43515c;border-color:var(--line);cursor:not-allowed;background:#f4f6f7}.workspace-toolbar-count,.workspace-toolbar-warning,.workspace-toolbar-status{color:var(--muted);font-size:14px}.workspace-toolbar-warning{color:#b65c00}.workspace-toolbar-status--error{color:#c0392b}.workspace-toolbar-status--saved{color:var(--green-700)}.workspace-layout{flex:auto;min-height:0;display:flex}.lesson-sidebar{border-right:1px solid var(--line);background:#fff;flex-direction:column;flex:0 0 360px;width:360px;display:flex;overflow-y:auto}.lesson-sidebar-list{margin:0;padding:0;list-style:none}.lesson-sidebar-item{border-bottom:1px solid var(--line);align-items:stretch;display:flex}.lesson-sidebar-item--active{background:var(--green-100);box-shadow:inset 3px 0 0 var(--green-600)}.lesson-sidebar-select{text-align:left;cursor:pointer;background:0 0;border:none;flex:auto;align-items:center;gap:8px;min-width:0;padding:10px 12px;display:flex}.lesson-sidebar-number{color:var(--muted);flex:none;font-size:13px}.lesson-sidebar-topic{text-overflow:ellipsis;white-space:nowrap;flex:auto;overflow:hidden}.lesson-sidebar-badge{color:#fff;text-align:center;background:#e67e22;border-radius:999px;flex:none;min-width:1.6em;padding:0 4px;font-size:12px;line-height:1.6}.lesson-sidebar-remove{color:var(--muted);cursor:pointer;background:0 0;border:none;flex:none;padding:0 12px;font-size:24px}.lesson-sidebar-remove:hover{color:#c0392b}.a4-workspace{flex:auto;justify-content:center;padding:16mm;display:flex;overflow:auto}.a4-paper{flex:none}.page{width:var(--paper-width);min-height:var(--paper-min-height);background:#fff;margin:0 auto;padding:16mm;display:block;box-shadow:0 4px 18px #202a331f}.print-book .page{box-shadow:none}.teaching-design-page{flex-direction:column;gap:12px;display:flex}.design-title{text-align:center;color:var(--green-700);font-size:22px;font-weight:700}.page-subtitle{color:var(--green-600);letter-spacing:.05em;vertical-align:middle;margin-left:10px;font-size:13px;font-weight:400}.section-heading{border-left:4px solid var(--green-600);color:var(--green-700);margin:12px 0 0;padding-left:10px;font-size:16px}table{border-collapse:collapse;table-layout:fixed;width:100%}.basic-info-table th,.basic-info-table td,.process-table th,.process-table td,.reflection-table th,.reflection-table td{border:1px solid var(--line);vertical-align:top;text-align:left;padding:6px 8px}.basic-info-table th,.process-table th,.reflection-table th{background:var(--green-100);color:var(--green-700);width:8em;font-weight:600}.process-table th{width:auto}.objectives-cell{flex-direction:column;gap:4px;display:flex}.objective-row{align-items:baseline;gap:6px;display:flex}.objective-label{color:var(--muted);flex:none;font-size:13px}.process-step-name>*+*{margin-top:4px}.process-step-actions{text-align:center;width:6em}.process-step-actions button{border:1px solid var(--line);cursor:pointer;color:#c0392b;background:#fff;border-radius:4px;padding:2px 6px;font-size:12px}.process-step-actions button:disabled{color:var(--muted);cursor:not-allowed}.board-design{white-space:pre-wrap;border:1px solid var(--line);border-radius:4px;min-height:6em;padding:8px;font-family:ui-monospace,Cascadia Code,Consolas,monospace}.warning-summary{color:#8a6116;background:#fbf3e1;border:1px solid #e6c98b;border-radius:4px;margin:8px 0 0;padding:8px 12px;font-size:13px}.editable-field{font:inherit;color:inherit;line-height:1.6}.editable-text{resize:none;background:0 0;border:1px solid #0000;border-radius:4px;width:100%;padding:2px 4px;display:block;overflow:hidden}.editable-text--multiline{white-space:pre-wrap}.editable-text--static{white-space:pre-wrap;width:100%;padding:2px 4px;display:block}.editable-text:hover{background:var(--green-100)}.editable-text:focus{border-color:var(--green-600);background:#fff;outline:none}.editable-markdown{width:100%}.markdown-preview{cursor:text;border:1px solid #0000;border-radius:4px;min-height:1.6em;padding:2px 4px}.markdown-preview--empty{color:var(--muted)}.markdown-preview :first-child{margin-top:0}.markdown-preview :last-child{margin-bottom:0}.markdown-preview:hover{background:var(--green-100)}.markdown-source{border:1px solid var(--green-600);resize:none;background:#fff;border-radius:4px;outline:none;width:100%;padding:2px 4px;display:block;overflow:hidden}.upload-dropzone{border:2px dashed var(--line);max-width:480px;min-height:200px;color:var(--muted);text-align:center;cursor:pointer;background:#fff;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:8px;margin:16mm auto;padding:24px;display:flex}.upload-dropzone--drag-over{border-color:var(--green-600);background:var(--green-100)}.upload-dropzone--compact{border-radius:6px;flex-direction:row;min-height:0;margin:0;padding:6px 14px}.upload-dropzone-input{opacity:0;width:1px;height:1px;position:absolute}.upload-dropzone-title{color:#202a33;margin:0;font-size:16px}.upload-dropzone-hint{margin:0;font-size:13px}.dialog-overlay{z-index:10;background:#202a3366;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog{background:#fff;border-radius:8px;max-width:420px;padding:24px;box-shadow:0 12px 32px #202a3340}.dialog-filenames{color:var(--muted);margin:8px 0;padding-left:20px}.dialog-actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.dialog-actions button{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:6px;padding:6px 14px}.app-notice{justify-content:space-between;align-items:center;gap:12px;margin:0;padding:8px 16px;display:flex}.app-notice--error{color:#c0392b;background:#fdecea;border-bottom:1px solid #f5c6c0}.app-notice button{cursor:pointer;color:inherit;background:0 0;border:1px solid;border-radius:4px;padding:2px 8px}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (width<=900px){.workspace-layout{flex-direction:column}.lesson-sidebar{border-right:none;border-bottom:1px solid var(--line);flex:none;width:auto;max-height:180px}.a4-workspace{padding:6mm}.page{width:100%;min-height:auto}}.book-list-create{gap:8px;margin-bottom:16px;display:flex}.dialog input{border:1px solid var(--line);border-radius:6px;flex:auto;width:100%;padding:8px 12px}.book-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.book-list-item{border:1px solid var(--line);background:#fff;border-radius:8px;align-items:center;gap:12px;padding:12px 16px;display:flex}.book-list-name{flex:none;font-weight:600}.book-list-meta{color:var(--muted);flex:auto;font-size:14px}.batch-dialog{width:480px}.batch-topics-input{border:1px solid var(--line);resize:vertical;border-radius:6px;width:100%;margin-top:8px;padding:8px 12px;display:block}.batch-topics-input:focus{border-color:var(--green-600);outline:none}.batch-topics-count{color:var(--muted);margin:6px 0 0;font-size:13px}.batch-progress-label{margin:8px 0 4px;font-size:16px}.batch-current-topic{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;margin:0 0 12px;font-size:14px;overflow:hidden}.batch-progress-bar{background:var(--line);border-radius:3px;height:6px;margin-bottom:4px;overflow:hidden}.batch-progress-fill{background:var(--green-600);border-radius:3px;height:100%;transition:width .3s}@page{size:A4;margin:12mm}.print-book{display:none}@media print{html,body,#app{background:#fff;margin:0;padding:0}.app-shell>:not(.print-book){display:none!important}.print-book{display:block}.print-section{break-before:page}.print-section:first-child{break-before:auto}.page{width:auto;min-height:0;box-shadow:none;margin:0;padding:0}.process-table{break-inside:auto}.process-table thead{display:table-header-group}.process-table tr{break-inside:avoid}.section-heading{break-after:avoid}.basic-info-table,.reflection-table,.board-design{break-inside:avoid}.no-print,.warning-summary{display:none!important}.markdown-source{display:none}.editable-text--static,.markdown-preview{white-space:pre-wrap;word-break:break-word;background:0 0;border-color:#0000}.board-design{word-break:break-word}}.app-page-header h1[data-v-758cc4f4]{flex:1}.create-user[data-v-758cc4f4]{margin-bottom:24px}.create-user h2[data-v-758cc4f4],.user-list h2[data-v-758cc4f4]{color:var(--green-700);margin:0 0 12px;font-size:18px}.create-user form[data-v-758cc4f4]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.login-wrapper[data-v-e254d3b9]{background:#edf0f2;justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-form[data-v-e254d3b9]{border:1px solid var(--line);background:#fff;border-radius:8px;flex-direction:column;gap:16px;width:min(100%,340px);padding:24px;display:flex;box-shadow:0 4px 18px #202a331f}.login-form h1[data-v-e254d3b9]{color:var(--green-700);text-align:center;margin:0;font-size:24px}.field[data-v-e254d3b9]{flex-direction:column;gap:6px;display:flex}.field label[data-v-e254d3b9]{color:var(--muted);font-size:14px}
