:root{--bg:#f5f6f8;--surface:#fff;--text:#1d2330;--muted:#667085;--line:#e3e6ec;--primary:#2a5bd7;--primary-ink:#fff;--primary-soft:#e8eefc;--success:#12805c;--success-soft:#e3f5ee;--warn:#a15c00;--warn-soft:#fff4e0;--danger:#c0362c;--danger-soft:#fdecea;--sidebar:#172036;--sidebar-ink:#c9d1e3;--radius:10px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#11151d;--surface:#1a202b;--text:#e6e9ef;--muted:#98a2b3;--line:#2b3240;--primary:#6d93ff;--primary-ink:#0d1220;--primary-soft:#1e2a47;--success:#4cc79a;--success-soft:#16302a;--warn:#f0b155;--warn-soft:#33270f;--danger:#ff7b70;--danger-soft:#3a1c1a;--sidebar:#0c1018;--sidebar-ink:#aab4c8;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--text);font-family:Sarabun,TH Sarabun New,system-ui,sans-serif;font-size:15px;line-height:1.55}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}h1{margin:0 0 .25rem;font-size:1.6rem}h2{margin:1.5rem 0 .6rem;font-size:1.2rem}h3{margin:.2rem 0 .6rem;font-size:1.02rem}.card h2{margin-top:0}.muted{color:var(--muted)}.small{font-size:.85rem}.center{place-items:center;min-height:60vh;display:grid}.center-text{text-align:center}.shell{grid-template-columns:248px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--sidebar);color:var(--sidebar-ink);flex-direction:column;height:100vh;padding:18px 14px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:10px;margin-bottom:22px;display:flex}.brand-mark{background:var(--primary);color:#fff;letter-spacing:.5px;border-radius:8px;padding:6px 8px;font-size:.85rem;font-weight:700}.brand-name{color:#fff;font-weight:700;line-height:1.2}.brand-sub{opacity:.75;font-size:.78rem}.sidebar nav{flex-direction:column;flex:1;gap:2px;display:flex}.nav-group{text-transform:uppercase;letter-spacing:.06em;opacity:.55;margin:14px 8px 4px;font-size:.72rem}.sidebar nav a{color:var(--sidebar-ink);border-radius:8px;padding:8px 10px}.sidebar nav a:hover{background:#ffffff0f;text-decoration:none}.sidebar nav a.active{color:#fff;background:#6d93ff2e}.sidebar-foot{border-top:1px solid #ffffff14;flex-direction:column;gap:8px;padding-top:12px;display:flex}.me{color:var(--sidebar-ink);border-radius:8px;padding:6px 8px}.me:hover{background:#ffffff0f;text-decoration:none}.me-name{color:#fff;font-weight:600}.me-role{opacity:.7;font-size:.78rem}.sidebar .btn.ghost{color:var(--sidebar-ink);border-color:#ffffff26}.content{min-width:0;padding:28px 32px 60px}.page{max-width:1100px}.page.narrow{max-width:760px}.page.wide{max-width:1400px}.page-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px;display:flex}.head-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.crumbs{color:var(--muted);margin-bottom:4px;font-size:.85rem}.meta-line{flex-wrap:wrap;align-items:center;gap:12px;margin:6px 0 2px;font-size:.9rem;display:flex}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:16px;padding:18px 20px}.card.flush{padding:0;overflow-x:auto}.card-actions{justify-content:flex-end;gap:6px;margin-top:8px;display:flex}.btn{font:inherit;border:1px solid var(--line);background:var(--surface);color:var(--text);cursor:pointer;white-space:nowrap;border-radius:8px;align-items:center;gap:6px;padding:7px 14px;display:inline-flex}.btn:hover:not(:disabled){border-color:var(--primary);text-decoration:none}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.primary{background:var(--primary);color:var(--primary-ink);border-color:var(--primary)}.btn.success{background:var(--success);color:#fff;border-color:var(--success)}.btn.ghost{background:0 0}.btn.danger{color:var(--danger)}.btn.danger:hover{border-color:var(--danger)}.btn.block{justify-content:center;width:100%;padding:10px}.btn.sm{padding:4px 10px;font-size:.88rem}.btn.xs{padding:2px 8px;font-size:.8rem}.form{flex-direction:column;gap:12px;display:flex}label{flex-direction:column;gap:4px;font-size:.9rem;font-weight:500;display:flex}label.inline{flex-direction:row;align-items:center;gap:8px;font-weight:400}input,select,textarea{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:8px;min-width:0;padding:7px 10px}input:focus,select:focus,textarea:focus{outline:2px solid var(--primary-soft);border-color:var(--primary)}input[type=checkbox]{width:16px;height:16px;accent-color:var(--primary)}select:disabled{opacity:.8}.grid2{grid-template-columns:1fr 1fr;gap:12px 16px;display:grid}.grid2.top{align-items:start}.alert{border-radius:8px;margin:8px 0;padding:9px 12px;font-size:.92rem}.alert.error{background:var(--danger-soft);color:var(--danger)}.alert.success{background:var(--success-soft);color:var(--success);cursor:pointer}.alert.warn{background:var(--warn-soft);color:var(--warn)}.alert.info{background:var(--primary-soft);color:var(--primary)}.tag{background:var(--primary-soft);color:var(--primary);vertical-align:middle;border-radius:99px;margin-left:4px;padding:1px 8px;font-size:.75rem;font-weight:600;display:inline-block}.tag:first-child{margin-left:0}.tag.lg{padding:2px 10px;font-size:.85rem}.tag.ok{background:var(--success-soft);color:var(--success)}.badge{background:var(--line);color:var(--muted);border-radius:99px;padding:2px 9px;font-size:.78rem;font-weight:600;display:inline-block}.badge.active,.badge.approved{background:var(--success-soft);color:var(--success)}.badge.pending,.badge.in_review{background:var(--warn-soft);color:var(--warn)}.badge.disabled,.badge.superseded,.badge.archived{background:var(--line);color:var(--muted)}.badge.draft{background:var(--primary-soft);color:var(--primary)}.table{border-collapse:collapse;width:100%}.table th,.table td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:9px 12px}.table th{color:var(--muted);background:var(--bg);font-size:.8rem;font-weight:600;position:sticky;top:0}.table tr:last-child td{border-bottom:0}.table td.actions{white-space:nowrap;text-align:right}.table select{max-width:260px;padding:4px 6px;font-size:.88rem}.row-highlight{background:var(--warn-soft)}.row-muted{opacity:.5}.table-toolbar{border-bottom:1px solid var(--line);padding:10px 12px}.toolbar{gap:10px;margin:6px 0 12px;display:flex}.raw-label{white-space:pre-wrap;font-weight:600}.conf{border-radius:99px;padding:2px 8px;font-size:.8rem;font-weight:700}.conf-0{background:var(--danger-soft);color:var(--danger)}.conf-1{background:var(--warn-soft);color:var(--warn)}.conf-2{background:var(--success-soft);color:var(--success)}.stats{flex-wrap:wrap;gap:12px;margin:16px 0;display:flex}.stats.compact{margin:4px 0 10px}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);min-width:140px;color:var(--text);padding:12px 16px}.stat.link:hover{border-color:var(--primary);text-decoration:none}.stat-num{font-size:1.6rem;font-weight:700;line-height:1.1}.stat-num.warn{color:var(--warn)}.stat-label{color:var(--muted);font-size:.82rem}.steps{margin:0;padding-left:20px}.steps li{margin:4px 0}.list{margin:0;padding-left:18px}.list li{margin:4px 0}.kv{grid-template-columns:120px 1fr;gap:6px 12px;margin:0;display:grid}.kv dt{color:var(--muted)}.kv dd{margin:0}.year-group h2{margin-top:1.2rem}.summary-row{flex-wrap:wrap;gap:8px;margin:10px 0;display:flex}.chip{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:5px 10px;font-size:.85rem}.tabs{border-bottom:1px solid var(--line);gap:4px;margin:14px 0;display:flex;overflow-x:auto}.tabs button{font:inherit;color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;padding:8px 14px}.tabs button.on{color:var(--primary);border-bottom-color:var(--primary);font-weight:600}.auth-wrap{background:linear-gradient(160deg, var(--sidebar) 0%, var(--sidebar) 38%, var(--bg) 38%);place-items:center;min-height:100vh;padding:24px 16px;display:grid}.auth-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;width:100%;max-width:420px;padding:28px;box-shadow:0 10px 30px #00000014}.auth-brand .brand-name{color:var(--text)}.auth-brand .brand-sub{color:var(--muted);opacity:1}.auth-card h1{font-size:1.35rem}.dropzone{border:2px dashed var(--line);border-radius:var(--radius);text-align:center;cursor:pointer;color:var(--muted);padding:26px;font-weight:400;position:relative}.dropzone:hover{border-color:var(--primary);color:var(--primary)}.dropzone input{opacity:0;cursor:pointer;position:absolute;inset:0}.image-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;display:grid}.image-pick{border:2px solid var(--line);border-radius:var(--radius);cursor:pointer;padding:8px;font-weight:400;position:relative}.image-pick.on{border-color:var(--primary);background:var(--primary-soft)}.image-pick input{position:absolute;top:8px;left:8px}.image-pick img{object-fit:contain;background:#fff;max-width:100%;max-height:90px;margin:6px auto;display:block}.img-placeholder{height:70px;color:var(--muted);place-items:center;font-size:.8rem;display:grid}.image-card{flex-direction:column;margin:0;padding:10px;display:flex}.image-box{background:repeating-conic-gradient(#eee 0 25%, #fff 0 50%) 0 0/16px 16px;border-radius:6px;place-items:center;height:120px;display:grid;overflow:hidden}.image-box.sm{height:90px}.image-box img{object-fit:contain;max-width:100%;max-height:100%}.image-meta{flex:1;margin-top:8px}.font-list{gap:10px;display:grid}.font-card{margin:0}.font-head{flex-wrap:wrap;justify-content:space-between;gap:12px;display:flex}.font-sample{background:var(--bg);overflow-wrap:anywhere;border-radius:8px;margin-top:8px;padding:10px 12px;font-size:22px}.doc-outline{flex-direction:column;gap:4px;display:flex}.blk{border-left:3px solid #0000;border-radius:4px;flex-direction:column;gap:4px;padding:4px 8px;display:flex}.blk:hover{background:var(--bg)}.blk.heading{border-left-color:var(--primary)}.blk.heading.lvl-1 .blk-text{font-size:1.12rem;font-weight:700}.blk.heading.lvl-2 .blk-text{font-weight:700}.blk.paragraph .blk-text{color:var(--text);opacity:.85}.blk-text{white-space:pre-wrap;overflow-wrap:anywhere}.blk-tools{align-items:center;gap:6px;display:flex}.blk-tools select{padding:2px 4px;font-size:.78rem}.pb{text-align:center;color:var(--muted);border-top:1px dashed var(--line);margin:8px 0;padding-top:4px;font-size:.8rem}.image-blk{color:var(--muted);font-size:.85rem}.src-table{border-collapse:collapse;width:100%;font-size:.85rem}.src-table td{border:1px solid var(--line);vertical-align:top;white-space:pre-wrap;padding:4px 6px}.pdf-pages{flex-direction:column;align-items:center;gap:14px;display:flex}.pdf-page{background:#fff;max-width:100%;height:auto;box-shadow:0 2px 10px #0000001f}@media (width<=860px){.shell{grid-template-columns:1fr}.sidebar{height:auto;position:static}.content{padding:18px 16px 40px}.grid2{grid-template-columns:1fr}.page-head{flex-direction:column}}.sample{color:var(--muted);font-style:italic}.ocr-row{flex-wrap:wrap;align-items:center;gap:10px;margin-top:10px;display:flex}.ocr-row select{padding:4px 6px;font-size:.85rem}.grid3{grid-template-columns:repeat(3,1fr);gap:10px 14px;display:grid}.span2{grid-column:span 2}.warn-text{color:var(--warn);font-weight:600}.nowrap{white-space:nowrap}.grow{flex:1;min-width:0}.chips{flex-wrap:wrap;gap:4px;display:flex}.chip-btn{font:inherit;border:1px solid var(--line);background:var(--bg);color:var(--text);cursor:pointer;border-radius:6px;padding:1px 6px;font-size:.75rem}.chip-btn:hover{border-color:var(--primary)}.tabs.compact{margin:0 0 10px}.tabs.compact button{padding:6px 10px;font-size:.88rem}.preset-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;margin-bottom:8px;display:grid}.preset{font:inherit;text-align:left;border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:var(--radius);cursor:pointer;flex-direction:column;gap:4px;padding:12px;display:flex}.preset:hover:not(:disabled){border-color:var(--primary);box-shadow:0 2px 10px #2a5bd71f}:is(.content:has(.designer),.content:has(.doc-editor)){padding:0}.designer,.doc-editor{flex-direction:column;height:100vh;display:flex}.designer-bar{border-bottom:1px solid var(--line);background:var(--surface);flex-wrap:wrap;align-items:center;gap:8px;padding:8px 14px;display:flex}.designer-bar .spacer{flex:1}.designer-bar>.alert{margin:0}.designer>.alert,.doc-editor>.alert{margin:6px 14px 0}.title-input{min-width:220px;font-weight:700}.designer-grid{flex:1;grid-template-columns:290px 1fr 300px;min-height:0;display:grid}.d-panel{background:var(--surface);border-right:1px solid var(--line);padding:12px;overflow-y:auto}.d-panel.props{border-right:0;border-left:1px solid var(--line)}.d-canvas{background:#e9ebef;padding:24px;overflow:auto}@media (prefers-color-scheme:dark){.d-canvas,.doc-preview{background:#0b0e14!important}}.add-grid{flex-wrap:wrap;gap:4px;margin-bottom:10px;display:flex}.block-list{flex-direction:column;gap:3px;margin:0;padding:0;list-style:none;display:flex}.block-list li{border:1px solid var(--line);cursor:pointer;background:var(--surface);border-radius:7px;grid-template-columns:14px auto 1fr auto;align-items:center;gap:6px;padding:5px 6px;font-size:.84rem;display:grid}.block-list li:hover{border-color:var(--primary)}.block-list li.on{border-color:var(--primary);background:var(--primary-soft)}.block-list li.over{border-top:3px solid var(--primary)}.block-list li.t-page_break{border-style:dashed}.grip{color:var(--muted);cursor:grab;font-size:.7rem}.bl-type{color:var(--primary);white-space:nowrap;font-size:.74rem;font-weight:700}.bl-sum{text-overflow:ellipsis;white-space:nowrap;color:var(--muted);overflow:hidden}.bl-move{display:flex}.bl-move .btn{padding:0 5px}.zone-tools{border-bottom:1px solid var(--line);margin-bottom:10px;padding-bottom:10px}.zone-tools h4,.prop-sec h4{margin:4px 0 8px;font-size:.9rem}.el-list{margin:8px 0 0;padding:0;font-size:.84rem;list-style:none}.el-list li{cursor:pointer;white-space:nowrap;text-overflow:ellipsis;border-radius:6px;padding:4px 8px;overflow:hidden}.el-list li:hover{background:var(--bg)}.el-list li.on{background:var(--primary-soft);color:var(--primary)}.compact-form{gap:9px}.compact-form label{font-size:.84rem}.compact-form input,.compact-form select,.compact-form textarea{padding:5px 8px;font-size:.9rem}.compact-form input[type=color]{width:100%;height:30px;padding:1px}.prop-head{justify-content:space-between;align-items:center;display:flex}.prop-sec{border-top:1px solid var(--line);padding-top:8px}.toggle-row{flex-wrap:wrap;align-items:center;gap:4px;margin-top:6px;display:flex}.toggle-row input[type=color]{height:26px;width:34px!important}.kv-row{grid-template-columns:1fr 1fr auto;gap:4px;margin-bottom:4px;display:grid}.asset-picker{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.asset-thumb{border:2px solid var(--line);cursor:pointer;background:#fff;border-radius:6px;height:54px;padding:3px}.asset-thumb.on{border-color:var(--primary)}.asset-thumb img{object-fit:contain;max-width:100%;max-height:100%}.zone-overlay{z-index:5;outline:1px dashed #2a5bd78c;position:absolute}.zone-overlay:hover{background:#2a5bd70a}.zone-tag{color:#2a5bd7;background:#e8eefc;border-radius:3px;padding:2px 5px;font:600 9px/1 system-ui,sans-serif;position:absolute;top:-5mm;left:-2px}.zone-overlay.footer .zone-tag{top:auto;bottom:-5mm}.z-edit{cursor:move;touch-action:none;position:absolute}.z-edit:hover{outline:1px solid #2a5bd799}.z-edit.on{outline:1.5px solid #2a5bd7}.z-edit-content{pointer-events:none;position:absolute;inset:0}.z-handle{cursor:nwse-resize;background:#2a5bd7;border:2px solid #fff;border-radius:2px;width:10px;height:10px;position:absolute;bottom:-5px;right:-5px}.snap-guide{pointer-events:none;border-left:1px dashed #e0457b;width:0;position:absolute;top:-40mm;bottom:-40mm}.r-doc{position:relative}.r-measure{visibility:hidden;position:absolute;top:0;left:-10000px}.r-page-wrap{margin:0 auto 18px;position:relative}.r-page{color:#111;transform-origin:0 0;background:#fff;position:relative;overflow:hidden;box-shadow:0 2px 12px #0000002e}.r-zone,.r-body{position:absolute}.r-body{overflow:hidden}.z-el{position:absolute}.z-text{white-space:pre;align-items:center;line-height:1.2;display:flex;position:absolute;inset:0;overflow:visible}.z-img{object-fit:contain;width:100%;height:100%;display:block}.z-img-empty{color:#6b7a99;background:repeating-linear-gradient(45deg,#f5f7fb,#f5f7fb 4px,#fff 4px 8px);border:1px dashed #9aa6bf;place-items:center;font:10px system-ui,sans-serif;display:grid;position:absolute;inset:0}.r-clickable [data-block]{cursor:pointer;border-radius:2px}.r-clickable [data-block]:hover{outline-offset:1mm;outline:1px dashed #2a5bd780}.r-selected{outline-offset:1mm;outline:1.5px solid #2a5bd7!important}.r-label{font-weight:700}.r-inline{gap:0 3mm;display:grid}.r-kv .r-inline{margin-bottom:.3mm}.r-p{text-indent:0;text-align:justify;margin:0}.r-li{text-indent:-6mm;padding-left:6mm}.r-h{line-height:1.3}.r-hr{border:0;border-top:.5mm solid;margin:1mm 0}.r-subtitle{margin-top:1mm;font-weight:700}.r-roomtime{justify-content:space-between;gap:6mm;margin:.5mm 0 1mm;display:flex}.r-table{border-collapse:collapse;width:100%}.r-table.r-narrow{width:auto;min-width:60%}.r-table th,.r-table td{vertical-align:top;white-space:pre-wrap;border:.25mm solid #222;padding:.6mm 1.6mm}.r-table th{text-align:center;font-weight:700}.r-table td.c{text-align:center}.r-table .r-exam td{text-align:center;font-weight:700}.r-table .r-total td{font-weight:700}.r-grid{border-collapse:collapse}.r-grid td{white-space:nowrap;padding:0 6mm .3mm 0}.r-note{color:#c00000}.r-footnote{color:#c00000;font-size:.9em}.r-empty{color:#8a94a8;font-style:italic}.r-missing{color:#c00000;font-weight:700}.doc-title{white-space:nowrap;text-overflow:ellipsis;max-width:420px;overflow:hidden}.save-state{background:var(--bg);color:var(--muted);border-radius:99px;padding:2px 8px;font-size:.8rem}.save-state.dirty,.save-state.saving{color:var(--warn)}.save-state.error{color:var(--danger)}.seg{border:1px solid var(--line);border-radius:8px;display:inline-flex;overflow:hidden}.seg button{font:inherit;background:var(--surface);color:var(--text);cursor:pointer;border:0;padding:4px 10px;font-size:.85rem}.seg button.on{background:var(--primary);color:var(--primary-ink)}.doc-grid{flex:1;min-height:0;display:grid}.doc-grid.view-split{grid-template-columns:minmax(420px,1fr) minmax(380px,1fr)}.doc-grid.view-form,.doc-grid.view-preview{grid-template-columns:1fr}.doc-form{padding:14px 18px 60px;overflow-y:auto}.view-form .doc-form{width:100%;max-width:1000px;margin:0 auto}.doc-preview{background:#e9ebef;padding:14px;overflow:auto}.preview-bar{z-index:2;background:#e9ebefeb;justify-content:center;align-items:center;gap:10px;margin:-14px -14px 10px;padding:4px;display:flex;position:sticky;top:-14px}.field-card{margin-bottom:10px;padding:12px 14px}.field-card.need{border-left:4px solid var(--danger)}.field-head{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px;display:flex}.field-label{font-weight:700}.req{color:var(--danger);margin-left:2px}.field-card input,.field-card textarea,.field-card select{width:100%}.field-card textarea{resize:vertical}.rows{flex-direction:column;gap:5px;display:flex}.row-line{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.row-line>input{flex:1;min-width:80px}.row-line.head{padding:0 2px}.row-line .btn{flex:none}.progress-box{flex-direction:column;justify-content:center;gap:4px;display:flex}.progress{background:var(--line);border-radius:99px;height:6px;overflow:hidden}.progress>div{background:var(--success);height:100%;transition:width .3s}.plan-card{border:1px solid var(--line);border-radius:8px;flex-direction:column;gap:8px;margin-bottom:10px;padding:10px;display:flex}.plan-table-wrap{overflow-x:auto}.plan-edit{border-collapse:collapse;width:100%;font-size:.86rem}.plan-edit th{color:var(--muted);text-align:left;padding:2px 4px;font-size:.76rem}.plan-edit td{vertical-align:top;padding:2px}.plan-edit textarea,.plan-edit input,.plan-edit select{resize:vertical;width:100%;min-width:60px;padding:3px 5px;font-size:.86rem}.plan-edit tr.k-exam td{background:var(--warn-soft)}.plan-edit tr.k-makeup textarea{color:var(--danger)}.paste-box{flex-direction:column;gap:6px;display:flex}.print-root{background:#fff}.print-hint{color:#6b5200;text-align:center;background:#fff8db;padding:10px 16px;font-size:14px}@media print{.no-print{display:none!important}.print-root .r-page-wrap{break-after:page;page-break-after:always;margin:0!important}.print-root .r-page-wrap:last-child{break-after:auto;page-break-after:auto}.print-root .r-page{box-shadow:none!important}.r-empty{color:#0000}}@media (width<=1100px){.designer-grid{grid-template-columns:250px 1fr}.d-panel.props{border-left:0;border-top:1px solid var(--line);grid-column:1/-1;max-height:40vh}.doc-grid.view-split{grid-template-columns:1fr}}.list-label{color:var(--primary);font-weight:600}.label-edit{width:100%;padding:4px 8px;font-weight:600}.raw-evidence{background:var(--bg);border-radius:4px;padding:0 4px;font-family:inherit}.edit-btn{opacity:.6;margin-left:6px;padding:0 6px}.blk:hover .edit-btn{opacity:1}.section-tools{flex-wrap:wrap;align-items:center;gap:6px;margin-top:4px;display:flex}.section-input{width:160px;padding:2px 6px;font-size:.85rem;font-weight:700}.form-section{border-bottom:2px solid var(--primary);color:var(--primary);margin:18px 0 8px;padding-bottom:4px;font-size:1.05rem}.blk-result{border-left:2px solid var(--success);background:var(--success-soft);border-radius:4px;margin:2px 0 2px 10px;padding:4px 8px;font-size:.86rem}.res-section{color:var(--primary);font-weight:700}.res-field{color:var(--success)}.res-field.off{opacity:.5;text-decoration:line-through}.row-focus{outline:2px solid var(--primary);outline-offset:-2px;background:var(--primary-soft)}.table-toolbar{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.designer.v2 .designer-grid{grid-template-columns:250px 1fr 310px}.tool-group{margin-bottom:12px}.tool-group h4{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin:4px 0 6px;font-size:.8rem}.tools{flex-direction:column;gap:3px;display:flex}.tool{border:1px solid var(--line);background:var(--surface);cursor:grab;-webkit-user-select:none;user-select:none;border-radius:7px;align-items:center;gap:8px;padding:5px 8px;font-size:.86rem;display:flex}.tool:hover{border-color:var(--primary);background:var(--primary-soft)}.tool:active{cursor:grabbing}.tool.t-field{border-left:3px solid var(--success)}.tool.t-grid{border-left:3px solid #8e6bd8}.tool.t-text{border-left:3px solid var(--primary)}.tool-ic{text-align:center;width:22px;color:var(--muted);flex:none;font-size:.8rem;font-weight:700}.sec-list{margin:0 0 6px;padding:0;list-style:none}.sec-list li{cursor:pointer;border:1px solid #0000;border-radius:7px;flex-direction:column;padding:5px 8px;display:flex}.sec-list li:hover{background:var(--bg)}.sec-list li.on{border-color:var(--primary);background:var(--primary-soft)}.center-seg{width:max-content;margin:0 auto 10px;display:flex}.e-sheet{color:#111;box-sizing:border-box;background:#fff;margin:0 auto 40px;padding-top:6mm;padding-bottom:6mm;position:relative;box-shadow:0 2px 14px #0000002e}.e-ruler{grid-template-columns:repeat(12,1fr);gap:0;height:4px;margin-bottom:4mm;display:grid}.e-ruler span{background:#eef2fb;border-left:1px solid #c9d3ea;border-right:1px solid #c9d3ea;margin:0 1px}.e-zone{border:1px dashed #c3cbe0;border-radius:4px;margin-bottom:4mm;padding:14px 4px 4px;position:relative}.e-zone.z-body{border-color:#9fb3e6;min-height:60mm}.e-zone-tag{color:#5a6b94;background:#fff;padding:0 6px;font:600 11px/1.4 system-ui,sans-serif;position:absolute;top:-9px;left:8px}.e-linked{padding:8px}.drop-slot{border-radius:3px;height:6px;margin:1px 0;transition:height .1s,background .1s}.drop-slot.over{background:#2a5bd740;outline:2px dashed #2a5bd7;height:18px}.drop-slot.empty{background:#fafbfe;border:1px dashed #d4daea;justify-content:center;align-items:center;height:auto;min-height:28px;display:flex}.drop-slot.empty.over{min-height:40px}.e-node{border:1px solid #0000;border-radius:3px;position:relative}.e-node:hover{border-color:#2a5bd759}.e-node.on{border-color:#2a5bd7;box-shadow:0 0 0 1px #2a5bd7}.e-handle{color:#9aa6bf;cursor:grab;opacity:0;-webkit-user-select:none;user-select:none;text-align:center;width:14px;font-size:10px;position:absolute;top:2px;left:-16px}.e-row{background:#8e6bd80a;padding:2px}.e-col{border:1px dashed #d2c6f0;border-radius:3px;min-height:30px;padding:10px 3px 3px;position:relative}.e-col.on{background:#8e6bd80f;border:1.5px solid #8e6bd8}.e-col-tag{color:#8e6bd8;font:600 9px/1.2 system-ui,sans-serif;position:absolute;top:0;right:3px}.e-field-tag{color:#12805c;z-index:1;pointer-events:none;background:#e3f5ee;border-radius:3px;padding:0 4px;font:600 9px/1.3 system-ui,sans-serif;position:absolute;top:-1px;right:0}.add-menu{position:relative}.add-pop{z-index:20;background:var(--surface);border:1px solid var(--line);width:380px;max-height:320px;color:var(--text);border-radius:8px;grid-template-columns:1fr 1fr;gap:2px;padding:6px;display:grid;position:absolute;top:100%;left:50%;overflow:auto;transform:translate(-50%);box-shadow:0 6px 24px #00000026}.add-pop .btn{justify-content:flex-start}.col-edit{grid-template-columns:1fr 64px 70px auto;align-items:center;gap:4px;margin-bottom:4px;display:grid}.span-pick{flex-wrap:wrap;gap:3px;margin-top:4px;display:flex}.span-pick .btn{justify-content:center;min-width:30px}.field-help{margin:-2px 0 6px}.li-mark{text-align:right;width:30px;color:var(--muted);flex:none;font-weight:600}.setting-row{justify-content:space-between;align-items:center;gap:16px;display:flex}.switch{flex-direction:row;align-items:center;gap:8px;font-weight:600;display:flex}.switch input{width:22px;height:22px}.t-doc{position:relative}.t-measure{visibility:hidden;position:absolute;top:0;left:-20000px}.t-page-wrap{margin:0 auto 18px;position:relative}.t-page{color:#111;transform-origin:0 0;background:#fff;position:relative;overflow:hidden;box-shadow:0 2px 12px #0000002e}.t-zone,.t-body{position:absolute}.t-body{overflow:hidden}.t-row{grid-template-columns:repeat(12,minmax(0,1fr));display:grid}.t-row.bordered{border:.25mm solid #333;padding:1.5mm}.t-col{min-width:0}.t-text,.t-p{white-space:pre-wrap;overflow-wrap:anywhere}.t-li{gap:2mm;display:flex}.t-li .t-mk{flex:none;min-width:6mm}.t-li.nomark{display:block}.t-table{border-collapse:collapse;width:100%}.t-table th,.t-table td{vertical-align:top;white-space:pre-wrap;overflow-wrap:anywhere;border:.25mm solid #222;padding:.6mm 1.6mm}.t-table th{text-align:center;font-weight:700}.t-ph{color:#9aa6bf;font-style:italic}.t-missing{color:#c00000;font-weight:700}.t-img-empty{color:#6b7a99;background:#f5f7fb;border:1px dashed #9aa6bf;place-items:center;height:12mm;font:10px system-ui,sans-serif;display:inline-grid}.t-pb{text-align:center;color:#8a94a8;border-top:1px dashed #b8c2d8;margin:2mm 0;padding-top:1mm;font:11px system-ui,sans-serif}.mk{-webkit-print-color-adjust:exact;print-color-adjust:exact;border-radius:1px;padding:0 .2mm}.review-grid{flex:1;grid-template-columns:1fr 280px;min-height:0;display:grid}.review .doc-preview{position:relative}.review-hint{text-align:center;color:var(--muted);margin-bottom:8px}.review .t-page ::selection{background:#2a5bd74d}.review .mk{cursor:pointer}.mark-pop{z-index:30;background:var(--surface);color:var(--text);border:1px solid var(--line);white-space:nowrap;border-radius:10px;align-items:center;gap:4px;padding:6px 8px;display:flex;position:absolute;transform:translate(-50%);box-shadow:0 6px 24px #0003}.swatch{cursor:pointer;border:1px solid #00000026;border-radius:6px;width:24px;height:24px;font-weight:800}.swatch.txt{background:#fff}.mark-list{flex-direction:column;gap:4px;margin:0 0 8px;padding:0;font-size:.86rem;list-style:none;display:flex}.mark-list li{justify-content:space-between;align-items:center;gap:6px;display:flex}@media print{.print-root .t-page-wrap{break-after:page;page-break-after:always;margin:0!important}.print-root .t-page-wrap:last-child{break-after:auto;page-break-after:auto}.print-root .t-page{box-shadow:none!important}.t-ph{color:#0000}}.t-img{vertical-align:top;display:inline-block}.e-sheet{position:relative}.e-zone{overflow:visible}.e-vruler{pointer-events:none;border-right:1px solid #d8deec;width:10mm;position:absolute;top:14px;bottom:0;left:-12mm;overflow:hidden}.e-vruler i{border-top:1px solid #c3cbe0;width:1.2mm;height:0;position:absolute;right:0}.e-vruler i.mid{border-top-color:#a9b4cf;width:2.2mm}.e-vruler i.major{border-top-color:#7d8bb0;width:3.5mm}.e-vruler b{color:#7d8bb0;font:600 8px/1 system-ui,sans-serif;position:absolute;top:-6px;right:4mm}.e-hguides{pointer-events:none;position:absolute;inset:14px 0 0}.e-colguides{pointer-events:none;z-index:0;grid-template-columns:repeat(12,1fr);display:grid;position:absolute;top:0;bottom:0}.e-colguides span{border-left:1px dashed #8e6bd838}.e-colguides span:last-child{border-right:1px dashed #8e6bd838}.e-pageends{pointer-events:none;position:absolute;inset:14px -2px 0;overflow:hidden}.e-pageend{border-top:2px dashed #e0457b;position:absolute;left:0;right:0}.e-pageend span{color:#e0457b;background:#fff;padding:0 4px;font:600 9px/1.2 system-ui,sans-serif;position:absolute;top:-14px;right:2px}.e-selguide{pointer-events:none;z-index:3;border-top:1px dashed #2a5bd7;position:absolute;left:0;right:0}.e-hoverguide{pointer-events:none;z-index:4;border-top:1px solid #e0457b8c;position:absolute;left:0;right:0}.e-hoverguide span{color:#fff;background:#e0457b;border-radius:3px;padding:1px 5px;font:600 9px/1.2 system-ui,sans-serif;position:absolute;top:-15px;left:2px}.sel-measure{background:var(--primary-soft);color:var(--primary);border-radius:6px;margin-bottom:8px;padding:5px 8px}.e-zone>.drop-slot,.e-zone>div:not(.e-vruler):not(.e-hguides):not(.e-pageends):not(.e-zone-tag){z-index:1;position:relative}.designer.v2 .d-center{min-width:0;min-height:0;display:grid}.d-center.view-split{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.d-center.view-edit,.d-center.view-preview{grid-template-columns:minmax(0,1fr)}.d-center .d-canvas{min-width:0}.pv-pane{border-left:1px solid var(--line);background:#525659;flex-direction:column;min-width:0;min-height:0;display:flex}.pv-bar{background:var(--surface);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;padding:6px 10px;display:flex}.pv-scroll{flex:1;padding:16px 18px;overflow:auto}.pv-foot{background:var(--surface);border-top:1px solid var(--line);padding:4px 10px}.pv-log{background:var(--surface);border-bottom:1px solid var(--line);flex-direction:column;gap:3px;max-height:30vh;padding:6px 10px;display:flex;overflow:auto}.pv-issue{cursor:pointer;border-radius:5px;padding:3px 6px;font-size:.85rem}.pv-issue:hover{background:var(--bg)}.pv-issue.error{color:var(--danger)}.pv-issue.warn{color:var(--warn)}.d-canvas .preview-bar{flex-wrap:wrap;gap:6px 12px}.d-canvas .preview-bar label,.pv-bar label{white-space:nowrap}.d-canvas .preview-bar select{padding:2px 4px;font-size:.8rem}.d-canvas .preview-bar input[type=range]{width:90px}.shell:has(.designer.v2){grid-template-columns:1fr}.shell:has(.designer.v2)>.sidebar{display:none}.split-handle{cursor:col-resize;background:var(--line);position:relative}.split-handle:hover,.split-handle:active{background:var(--primary)}.split-handle:after{content:"⋮";color:#fff;font-size:12px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.mini-toggle{justify-content:center;width:100%;margin-bottom:8px}.designer.v2 .designer-grid.tools-mini{grid-template-columns:58px 1fr 310px}.tools-mini .tools-panel{padding:8px 6px}.tools-mini .tool-label,.tools-mini .tool-group h4,.tools-mini .sec-list .small{display:none}.tools-mini .tool{justify-content:center;padding:6px 2px}.tools-mini .tool-ic{width:auto}.tools-mini .sec-list li span{text-overflow:ellipsis;white-space:nowrap;font-size:.7rem;overflow:hidden}.tools-mini .tool-group>.btn{white-space:normal;padding:2px;font-size:.65rem}.t-table.b-none th,.t-table.b-none td,.t-table.b-header th,.t-table.b-header td{border:0}.t-table.b-header thead th{border-bottom:.3mm solid #222}.t-table.b-horizontal th,.t-table.b-horizontal td{border-left:0;border-right:0}.t-table.b-outer,.t-table.b-outer_header{border:.3mm solid #222}.t-table.b-outer th,.t-table.b-outer td,.t-table.b-outer_header th,.t-table.b-outer_header td{border:0}.t-table.b-outer_header thead th{border-bottom:.3mm solid #222}.t-table.th-normal th{font-weight:400}.t-subhead{margin-top:1mm;font-weight:700}.t-col.has-vline{flex-direction:column;display:flex}.t-vline-wrap{flex:auto;display:flex}.t-free{position:relative}.t-free-item{position:absolute}.para-tools{flex-wrap:wrap;align-items:center;gap:4px;margin-bottom:4px;display:flex}.para-ta{tab-size:6;line-height:1.6}.choice{flex-direction:column;gap:4px;display:flex}.choice-item{border-radius:6px;padding:3px 6px}.choice-item:hover{background:var(--bg)}.cell-wrap{position:relative}.cell-tools{gap:1px;display:none;position:absolute;top:2px;right:2px}.cell-wrap:hover .cell-tools,.cell-wrap:focus-within .cell-tools{display:flex}.cell-tools .btn{background:var(--surface);padding:0 4px}.row-tools-h{width:1%}.fill-pick{width:46px;min-width:0!important;padding:1px 2px!important}.tool-ic{text-align:center;flex:none;width:auto;min-width:24px;font-size:.78rem}.tool-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.tool-grid{flex:none;gap:2px;width:34px;height:14px;display:flex}.tool-grid i{background:#b9a6ec;border-radius:2px}.tool-grid i.rest{background:0 0;border:1px dashed #d5cbf3}.tools-mini .tool-grid{width:30px}.g-std .tool{border-left:3px solid #e0a800}.e-handle{color:#6b7a99;cursor:grab;opacity:0;-webkit-user-select:none;user-select:none;background:#eef2fb;border-radius:4px;place-items:center;width:18px;height:18px;font-size:13px;display:grid;position:absolute;top:0;left:-20px}.e-node:hover>.e-handle,.e-node.on>.e-handle{opacity:1}.e-tab{color:#fff;cursor:grab;opacity:0;-webkit-user-select:none;user-select:none;z-index:5;white-space:nowrap;background:#8e6bd8;border-radius:5px 5px 0 0;height:15px;padding:0 8px;font:600 10px/15px system-ui,sans-serif;position:absolute;top:-15px;left:0}.e-tab.free{background:#e0457b}.e-row-wrap:hover>.e-tab,.e-row-wrap.on>.e-tab,.e-free-wrap:hover>.e-tab,.e-free-wrap.on>.e-tab{opacity:1}.e-row-wrap,.e-free-wrap{margin-top:15px}.e-row-wrap.on{border-color:#8e6bd8;box-shadow:0 0 0 2px #8e6bd8}.e-obj-body{position:relative}.e-corner{cursor:nwse-resize;z-index:6;background:#2a5bd7;border:2px solid #fff;border-radius:2px;width:12px;height:12px;position:absolute;bottom:-4px;box-shadow:0 0 0 1px #2a5bd7}.e-free{background:repeating-linear-gradient(45deg,#e0457b08,#e0457b08 6px,#0000 6px 12px);border:1.5px dashed #e0457b;position:relative}.e-free.over{background:#e0457b14}.e-free-hint{color:#e0457b;pointer-events:none;place-items:center;font:600 11px system-ui,sans-serif;display:grid;position:absolute;inset:0}.e-free-item{cursor:move;touch-action:none;outline:1px dashed #0000;position:absolute}.e-free-item:hover{outline-color:#e0457b80}.e-free-item.on{outline:1.5px solid #e0457b}.e-wgrip{cursor:ew-resize;background:#e0457b;border:2px solid #fff;border-radius:3px;width:8px;height:18px;margin-top:-9px;position:absolute;top:50%;right:-5px}.e-hgrip{cursor:ns-resize;background:#e0457b;border:2px solid #fff;border-radius:3px;width:30px;height:8px;margin-left:-15px;position:absolute;bottom:-5px;left:50%}.d-canvas .preview-bar{z-index:10;border-bottom:1px solid var(--line);background:#e9ebef;margin:-24px -24px 12px;padding:8px 12px;position:sticky;top:-24px}@media (prefers-color-scheme:dark){.d-canvas .preview-bar{background:#0b0e14}}.fill-pick{width:38px!important}.all-doc{background:var(--primary-soft);border-top:0;border-radius:8px;padding:8px 10px}.t-doc,.t-text,.t-p,.t-li,.t-li-inline,.t-table td,.e-sheet .t-text{tab-size:12.7mm}.t-li,.t-li-inline,.t-table td,.t-free-item{white-space:pre-wrap}.row-line input.grow{tab-size:4}.tab{tab-size:0;white-space:pre;vertical-align:top;width:6mm;display:inline-block;overflow:hidden}.d-panel{box-sizing:border-box;overflow-x:hidden}.d-panel.props{padding:12px 18px 28px 14px}.d-panel .grid2,.d-panel .grid3{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 10px}.d-panel .grid3{grid-template-columns:repeat(3,minmax(0,1fr))}.d-panel label{min-width:0}.d-panel input:not([type=checkbox]):not([type=radio]),.d-panel select,.d-panel textarea{box-sizing:border-box;width:100%;min-width:0;max-width:100%}.d-panel .row-line>input,.d-panel .row-line>select{width:auto}.d-panel .col-edit{grid-template-columns:minmax(0,1fr) 56px 62px auto}.d-panel .kv-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}.d-panel .toggle-row{flex-wrap:wrap}.d-panel .toggle-row .lh-input{flex:none;width:64px!important}.cell-toolbar{border:1px dashed var(--line);border-radius:8px;flex-wrap:wrap;align-items:center;gap:6px;min-height:36px;padding:5px 8px;display:flex}.cell-toolbar.on{border-style:solid;border-color:var(--primary);background:var(--primary-soft)}.seg.mini button{padding:2px 8px;font-size:.8rem}.swatch-sm{cursor:pointer;border:1px solid #0003;border-radius:4px;width:20px;height:20px;padding:0;font-size:11px;line-height:1}.swatch-sm.on{outline:2px solid var(--primary);outline-offset:1px}.plan-edit textarea.active-cell{outline:2px solid var(--primary)}.foot-preview td{background:var(--bg);padding:4px 6px;font-weight:700}.col-card{border:1px solid var(--line);border-radius:7px;flex-direction:column;gap:4px;margin-bottom:5px;padding:5px 6px;display:flex}.col-card-top{align-items:center;gap:3px;display:flex}.col-card-top input:not(.w-num){flex:1;min-width:0}.d-panel .col-card-top .w-num{flex:none;width:50px!important}.col-no{color:var(--muted);text-align:center;flex:none;width:14px;font-size:.7rem}.col-card-align,.align-pick{flex-wrap:wrap;align-items:center;gap:3px;display:flex}.align-pick .btn{padding:1px 6px}.drag-ghost{z-index:1000;pointer-events:none;color:#fff;opacity:.95;background:#8e6bd8;border-radius:6px;padding:6px 10px;font:600 12px/1 system-ui,sans-serif;position:fixed;box-shadow:0 6px 18px #00000040}.e-node.dragging{opacity:.35}.drop-slot.over{box-shadow:0 0 0 3px #2a5bd740;background:#2a5bd7!important;outline:none!important;height:6px!important}.e-tab,.e-handle{touch-action:none}.modal-backdrop{z-index:2000;background:#0f142373;place-items:center;padding:16px;animation:.12s ease-out fadein;display:grid;position:fixed;inset:0}.modal{background:var(--surface);width:100%;max-width:440px;max-height:88vh;color:var(--text);border-radius:12px;padding:18px 20px 16px;animation:.14s ease-out pop;overflow:auto;box-shadow:0 20px 60px #0000004d}.modal.wide{max-width:760px}.modal-title{margin-bottom:10px;font-size:1.05rem;font-weight:700}.modal-body{flex-direction:column;gap:8px;margin-bottom:14px;font-size:.95rem;line-height:1.55;display:flex}.modal-input{box-sizing:border-box;width:100%;margin-bottom:4px}.modal-actions{justify-content:flex-end;gap:8px;margin-top:6px;display:flex}.btn.danger-solid{background:var(--danger);color:#fff;border-color:var(--danger)}@keyframes fadein{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:translateY(6px)scale(.98)}}.grid-preview{border:1px solid var(--line);background:var(--bg);border-radius:6px;align-items:stretch;gap:3px;height:34px;padding:4px;display:flex}.grid-preview i{color:#fff;background:#b9a6ec;border-radius:4px;place-items:center;font:700 12px system-ui,sans-serif;display:grid}.grid-preview i.rest{background:0 0;border:1px dashed #c9bdf0}.pick-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px 14px;display:grid}.pick-group h4{color:var(--muted);text-transform:uppercase;margin:4px 0 6px;font-size:.78rem}.pick-group{flex-direction:column;gap:3px;display:flex}.tool.pick{font:inherit;text-align:left;color:var(--text);cursor:pointer}.tool{position:relative}.tool-x{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:0 4px;font-size:14px;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.tool-x:hover{color:var(--danger)}.drop-slot.empty{background:repeating-linear-gradient(135deg,#7887aa21 0 1px,#0000 1px 7px);border:0;border-radius:3px;min-height:22px;display:block;position:relative}.slot-add{cursor:pointer;color:#0000;background:0 0;border:0;place-items:center;width:100%;padding:0;font:600 10px/1 system-ui,sans-serif;display:grid;position:absolute;inset:0;overflow:hidden}.slot-add span{opacity:0;white-space:nowrap;color:#2a5bd7;background:#ffffffeb;border-radius:4px;padding:2px 6px;transition:opacity .12s}.drop-slot.empty:hover{background:repeating-linear-gradient(135deg,#2a5bd729 0 1px,#0000 1px 7px);outline:1px dashed #2a5bd780}.drop-slot.empty:hover .slot-add span{opacity:1}.e-col .slot-add span{font-size:9px}.toasts{z-index:2100;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:74px;right:18px}.toast{color:#fff;background:#1d2330;border-left:4px solid #4cc79a;border-radius:9px;max-width:380px;padding:9px 14px;font-size:.9rem;animation:.18s ease-out toastin;box-shadow:0 8px 24px #00000040}.toast.info{border-left-color:#6d93ff}.toast.error{border-left-color:#ff7b70}@keyframes toastin{0%{opacity:0;transform:translateY(8px)}}.pv-scroll .flash{border-radius:2px;animation:1.2s ease-out flash}@keyframes flash{0%,35%{background:#ffd60073;box-shadow:0 0 0 2px #ffc40099}to{box-shadow:none;background:0 0}}.example-box{border:1px dashed var(--line);background:var(--bg);border-radius:7px;margin-top:6px;padding:4px 8px;font-size:.85rem}.example-box summary{cursor:pointer;color:var(--muted);justify-content:space-between;align-items:center;list-style:none;display:flex}.example-box summary:before{content:"▸ "}.example-box[open] summary:before{content:"▾ "}.example-box summary span{flex:1}.example-text{color:var(--muted);white-space:pre-wrap;max-height:220px;padding:6px 2px 2px;overflow:auto}.tbl-list-wrap{border:1px solid var(--line);border-radius:8px;overflow-x:auto}.tbl-list{border-collapse:collapse;table-layout:fixed;width:100%;font-size:.88rem}.tbl-list th{color:var(--muted);text-align:left;background:var(--bg);border-bottom:1px solid var(--line);white-space:nowrap;text-overflow:ellipsis;padding:5px 6px;font-size:.76rem;overflow:hidden}.tbl-list td{border-bottom:1px solid var(--line);vertical-align:top;padding:5px 6px}.tbl-row{cursor:pointer}.tbl-row:hover td{box-shadow:inset 0 0 0 9999px #2a5bd70f}.tbl-no{color:var(--muted);text-align:center;font-size:.75rem}.tbl-cell{white-space:pre-wrap;overflow-wrap:anywhere;-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.tbl-act{white-space:nowrap;text-align:right;padding:2px!important}.tbl-act .btn{padding:0 4px}.tbl-empty{text-align:center;padding:14px!important}.modal.full{width:96vw;max-width:min(1400px,96vw)}.row-modal{max-width:640px}.row-title{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.row-nav{gap:4px;display:flex}.row-modal .modal-body label{flex-direction:column;gap:3px;font-size:.88rem;font-weight:600;display:flex}.row-modal textarea{box-sizing:border-box;resize:vertical;width:100%;font-weight:400}.row-modal textarea.one-line{min-height:34px}.row-fmt{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding-top:8px;display:flex}.row-fmt-tools{flex-wrap:wrap;align-items:center;gap:3px;display:flex}.row-actions{align-items:center}.spacer-flex{text-align:center;flex:1}.tbl-list thead tr[style*=background] th,.plan-edit thead tr[style*=background] th{color:#1d2330;background:0 0}.plan-edit thead th{padding:4px 6px}.fill-pick-row{flex-wrap:wrap;gap:4px;margin-top:3px;display:flex}.fill-pick-row .swatch-sm{width:26px;height:26px}.pv-scroll,.d-canvas,.doc-preview,.doc-form,.d-panel{scrollbar-gutter:stable}.term-head{margin:22px 0 8px;font-size:1.05rem}.course-cards{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;display:grid}.course-card{flex-direction:column;gap:6px;margin:0;display:flex}.course-link{color:inherit;text-decoration:none}.course-code{color:var(--accent,#2f5597);font-weight:700}.course-name{font-size:1.02rem;font-weight:600}.course-grid{flex:1;grid-template-columns:210px minmax(520px,1fr);min-height:0;display:grid}.course-grid.view-split{grid-template-columns:210px minmax(520px,1.25fr) minmax(360px,1fr)}.course-tabs{border-right:1px solid var(--line);background:var(--surface);flex-direction:column;gap:2px;padding:10px 8px;display:flex;overflow-y:auto}.course-tabs button{text-align:left;cursor:pointer;color:inherit;font:inherit;background:0 0;border:0;border-radius:6px;justify-content:space-between;gap:6px;padding:7px 10px;font-size:.9rem;display:flex}.course-tabs button:hover{background:var(--hover,#7f7f7f1a)}.course-tabs button.on{background:var(--accent-soft,#dbe7fb);font-weight:600}.course-tabs .dot{color:#fff;background:#e8a33d;border-radius:9px;height:18px;padding:0 6px;font-size:.72rem;line-height:18px}.course-form h2{margin-top:0}.course-form .tab-nav{justify-content:flex-end;margin-top:18px}.c-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px 14px;margin-bottom:10px;display:grid}.c-field{flex-direction:column;gap:4px;min-width:0;margin-bottom:12px;display:flex}.c-grid .c-field{margin-bottom:0}.c-field.wide{grid-column:span 2}@media (width<=700px){.c-field.wide{grid-column:auto}.course-grid,.course-grid.view-split{grid-template-columns:1fr}.course-tabs{border-right:0;border-bottom:1px solid var(--line);flex-direction:row;overflow-x:auto}}.c-label{font-size:.88rem;font-weight:600}.auto-area{resize:vertical;box-sizing:border-box;width:100%;min-height:34px;overflow:hidden}.people{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.people-row{grid-template-columns:minmax(0,2fr) minmax(0,1.4fr) auto;gap:6px;width:100%;display:grid}.picks{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.chip{color:#1f3d73;white-space:nowrap;background:#e8eef9;border-radius:10px;align-items:center;gap:2px;padding:1px 4px 1px 8px;font-size:.78rem;display:inline-flex}.chip.free{color:#6b4a00;background:#fdf0d8}.chip button{cursor:pointer;color:inherit;opacity:.6;background:0 0;border:0;padding:0 3px;font-size:.9rem}.chip button:hover{opacity:1}@media (prefers-color-scheme:dark){.chip{color:#c8d8f5;background:#23324d}.chip.free{color:#f3dca8;background:#4a3a18}}.pick-dialog{flex-direction:column;gap:8px;min-width:min(640px,86vw);display:flex}.pick-list{border:1px solid var(--line);border-radius:6px;max-height:50vh;padding:4px;overflow-y:auto}.pick-list label{cursor:pointer;border-radius:5px;align-items:flex-start;gap:8px;padding:5px 8px;font-size:.9rem;display:flex}.pick-list label.on{background:var(--accent-soft,#dbe7fb)}.pick-list label:hover{background:var(--hover,#7f7f7f1a)}.pick-other{gap:6px;display:flex}.pick-other input{flex:1}.pick-tpl{flex-direction:column;align-items:stretch;gap:6px;display:flex}.clo-pick{flex-wrap:wrap;gap:2px;display:flex}.clo-pick button{border:1px solid var(--line);background:var(--surface);min-width:24px;height:24px;color:inherit;cursor:pointer;border-radius:4px;padding:0 4px;font-size:.78rem}.clo-pick button.on{color:#fff;background:#2f5597;border-color:#2f5597}.clo-editor{flex-direction:column;align-items:stretch;gap:8px;display:flex}.clo-editor>.btn{align-self:flex-start}.clo-row{border:1px solid var(--line);border-radius:8px;grid-template-columns:52px 1fr auto;align-items:start;gap:8px;padding:8px;display:grid}.clo-code{padding-top:6px;font-weight:700}.clo-text{margin-bottom:6px}.clo-map{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;display:grid}.clo-map>div{flex-direction:column;gap:4px;display:flex}.plo-pick{flex-wrap:wrap;gap:4px;display:flex}.plo-pick label{border:1px solid var(--line);cursor:pointer;border-radius:5px;align-items:center;gap:3px;padding:1px 6px;font-size:.8rem;display:inline-flex}.plo-pick label.on{background:var(--accent-soft,#dbe7fb);border-color:#2f5597}.plo-ref{margin-bottom:10px}.row-tools{flex-wrap:nowrap;gap:1px;display:flex}.row-tools .btn{padding:0 5px}.c-scroll{margin-bottom:6px;overflow-x:auto}.c-table{border-collapse:collapse;width:100%;font-size:.88rem}.c-table th{background:var(--surface-2,#7f7f7f14);text-align:left;border:1px solid var(--line);vertical-align:bottom;padding:5px 6px;font-weight:600}.c-table td{border:1px solid var(--line);vertical-align:top;padding:3px 4px}.c-table td.c{text-align:center;vertical-align:middle}.c-table input,.c-table select,.c-table textarea{box-sizing:border-box;width:100%;padding:3px 5px;font-size:.86rem}.c-table.plan{min-width:1060px}.c-table.plan tr.exam td{background:#fffbe6}@media (prefers-color-scheme:dark){.c-table.plan tr.exam td{background:#3a3518}}.c-table.grades{max-width:420px}.c-table tfoot td{font-weight:700}.exam-toggle{opacity:.75;align-items:center;gap:4px;margin-top:2px;display:flex}.name-add{opacity:.8;margin-top:2px}.plan-sec{padding:10px}.plan-sec-head{align-items:center;gap:8px;margin-bottom:6px;display:flex}.plan-sec-title{flex:1;font-weight:600}.tool-select{flex-direction:column;gap:3px;display:flex}.rubric{padding:10px}.rubric th input{font-weight:600}.grow{flex:1}.ok-text{color:#2e7d32}.issues{margin:0;padding-left:18px}.issues li.error{color:#c62828}.issues li.warn{color:#9a6700}.btn.warn{color:#9a6700;border-color:#e8a33d}button.link{color:var(--accent,#2f5597);cursor:pointer;font:inherit;background:0 0;border:0;padding:0;text-decoration:underline}.linked-note{border-left:4px solid #2f5597}.cat-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin:10px 0;display:grid}.cat-box{flex-direction:column;gap:4px;display:flex}.cat-box textarea{font-family:inherit;font-size:.82rem}.tool-group h4.clickable{cursor:pointer;-webkit-user-select:none;user-select:none}.lines-input{flex-direction:column;gap:2px;display:flex}.c-table input[type=checkbox],.plo-pick input,.exam-toggle input,.pick-list input,.inline input[type=checkbox]{width:auto}.exam-toggle{white-space:nowrap;font-size:.75rem}.pick-source{flex-direction:column;gap:6px;max-height:65vh;display:flex;overflow-y:auto}.pick-source h4{margin:8px 0 0}.btn.block-left{text-align:left;justify-content:flex-start}.pull-btn{margin:6px 0 2px}.click-jump [data-nid]{cursor:pointer}.click-jump [data-nid]:hover{outline-offset:1px;outline:1px dashed #2a5bd780}@keyframes jumpFlash{0%{background-color:#2a5bd71a;box-shadow:0 0 0 3px #2a5bd7a6}to{background-color:#0000;box-shadow:0 0 0 3px #2a5bd700}}.jump-flash{border-radius:6px;animation:1.6s ease-out jumpFlash}.pv-scroll [data-nid]{cursor:pointer}.pv-scroll [data-nid]:hover{outline-offset:1px;outline:1px dashed #2a5bd780}.help-fab{z-index:900;color:#fff;cursor:pointer;background:#2f5597;border:0;border-radius:50%;width:44px;height:44px;font-size:1.25rem;font-weight:700;position:fixed;bottom:18px;right:18px;box-shadow:0 4px 14px #00000040}.help-fab:hover,.help-fab.on{background:#23427a}@media print{.help-fab,.help-panel{display:none!important}}.help-panel{z-index:900;background:var(--surface,#fff);width:min(420px,100vw - 32px);height:min(600px,100vh - 100px);color:inherit;border:1px solid var(--line);border-radius:12px;flex-direction:column;display:flex;position:fixed;bottom:72px;right:18px;overflow:hidden;box-shadow:0 10px 34px #00000040}.help-tabs{border-bottom:1px solid var(--line);align-items:center;gap:2px;padding:6px 8px;display:flex}.help-tabs button{cursor:pointer;color:inherit;font:inherit;background:0 0;border:0;border-radius:6px;padding:6px 10px;font-size:.9rem}.help-tabs button.on{background:var(--accent-soft,#dbe7fb);font-weight:600}.help-all{margin-left:auto;font-size:.82rem}.help-body{padding:10px 14px 14px;font-size:.9rem;overflow-y:auto}.help-body h3{margin:4px 0 6px}.guide ol{margin:6px 0;padding-left:20px}.guide li{margin-bottom:5px}.guide-tips{color:var(--muted,#5b6474);padding-left:0;font-size:.88em;list-style:none}.help-chat{flex-direction:column;flex:1;min-height:0;display:flex}.help-msgs{flex-direction:column;flex:1;gap:8px;padding:10px 12px;display:flex;overflow-y:auto}.help-msg{overflow-wrap:anywhere;border-radius:10px;max-width:92%;padding:8px 11px;font-size:.9rem;line-height:1.55}.help-msg.user{color:#fff;white-space:pre-wrap;background:#2f5597;align-self:flex-end}.help-msg.assistant{background:var(--surface-2,#eef2f8);align-self:flex-start}.help-msg.typing{opacity:.7;font-style:italic}.help-msg.error{color:#b42318;background:#fdecea;align-self:stretch}@media (prefers-color-scheme:dark){.help-msg.assistant{background:#232a36}.help-msg.error{color:#f3b4ad;background:#3a1d1b}}.help-empty{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.help-input{border-top:1px solid var(--line);flex-direction:column;gap:6px;padding:8px 10px;display:flex}.help-input textarea{box-sizing:border-box;resize:none;width:100%;font:inherit}.help-toc{flex-wrap:wrap;gap:6px 14px;margin-bottom:14px;display:flex}
