:root{--bg: #f8fafc;--bg2: #ffffff;--text: #0f172a;--muted: #64748b;--line: #e2e8f0;--line2: #cbd5e1;--primary: #4f46e5;--primary-hover: #4338ca;--primary-light: #eef2ff;--emerald: #059669;--emerald-light: #ecfdf5;--card: #ffffff;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text);line-height:1.5;overflow:hidden;height:100vh}#app{display:flex;flex-direction:column;height:100vh}.topbar{display:flex;align-items:center;justify-content:space-between;padding:9px 18px;background:var(--bg2);border-bottom:1px solid var(--line);flex-shrink:0;gap:12px}.brand-group{display:flex;align-items:center;gap:10px}.brand-logo{display:grid;place-items:center;width:36px;height:36px;border-radius:9px;background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;font-size:19px;box-shadow:0 3px 8px #4f46e547}.brand-title{font-size:16.5px;font-weight:800;letter-spacing:.5px;color:var(--text);line-height:1.15}.brand-sub{font-size:11.5px;color:var(--muted);font-weight:500}.topbar-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:7px;border:1px solid var(--line2);background:var(--card);color:var(--text);font-size:12.5px;font-weight:600;cursor:pointer;transition:all .15s ease;user-select:none;white-space:nowrap}.btn:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-light)}.btn-sm{padding:5px 10px;font-size:12px}.btn-xs{padding:3px 8px;font-size:11px}.btn-pri{background:#4f46e5;color:#fff;border-color:#4f46e5;box-shadow:0 2px 4px #4f46e540}.btn-pri:hover{background:#4338ca;color:#fff;border-color:#4338ca}.btn-smart{background:linear-gradient(135deg,#7c3aed,#4f46e5);color:#fff;border-color:transparent;box-shadow:0 2px 6px #7c3aed40}.btn-smart:hover{background:linear-gradient(135deg,#6d28d9,#4338ca);color:#fff}.btn-docx{background:#0284c7;color:#fff;border-color:#0284c7;box-shadow:0 2px 4px #0284c740}.btn-docx:hover{background:#0369a1;color:#fff;border-color:#0369a1}.ribbon-bar{display:flex;align-items:center;gap:12px;padding:6px 18px;background:#fff;border-bottom:1px solid var(--line);flex-shrink:0;overflow-x:auto;white-space:nowrap}.ribbon-section{display:flex;align-items:center;gap:6px}.ribbon-label{font-size:12px;font-weight:600;color:var(--muted)}.ribbon-select{padding:5px 10px;border-radius:6px;border:1px solid var(--line2);background:#fff;color:var(--text);font-size:12px;font-weight:500;cursor:pointer;outline:none}.ribbon-select:focus{border-color:var(--primary)}.ribbon-divider{width:1px;height:20px;background:var(--line);flex-shrink:0}.split-workspace{display:grid;grid-template-columns:var(--split, 50%) 10px minmax(0,1fr);flex:1;min-height:0;background:#e2e8f0}.split-workspace.dragging{user-select:none;cursor:col-resize}.split-workspace.dragging .pdf-scroll{pointer-events:none}.splitter{cursor:col-resize;background:#e2e8f0;position:relative;touch-action:none;transition:background .15s}.splitter:after{content:"";position:absolute;left:50%;top:50%;width:4px;height:44px;transform:translate(-50%,-50%);border-radius:4px;background:#94a3b8;transition:background .15s,height .15s}.splitter:hover,.splitter:focus-visible,.dragging .splitter{background:#c7d2fe;outline:none}.splitter:hover:after,.splitter:focus-visible:after,.dragging .splitter:after{background:#4f46e5;height:64px}.split-workspace.lay-edit{grid-template-columns:minmax(0,1fr)}.split-workspace.lay-edit .splitter,.split-workspace.lay-edit .preview-pane{display:none}.split-workspace.lay-pdf{grid-template-columns:minmax(0,1fr)}.split-workspace.lay-pdf .splitter,.split-workspace.lay-pdf .editor-pane{display:none}.split-workspace.lay-edit .form-container{max-width:900px;margin:0 auto;width:100%}@media (max-width: 980px){.split-workspace,.split-workspace.lay-split{grid-template-columns:minmax(0,1fr);grid-template-rows:1fr 1fr}.splitter{display:none}}.editor-pane,.preview-pane{display:flex;flex-direction:column;min-height:0;background:#fff}.pane-header{display:flex;align-items:center;justify-content:space-between;padding:8px 14px;background:#f8fafc;border-bottom:1px solid var(--line);flex-shrink:0}.pane-title{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:700;color:var(--text)}.pane-shortcut-hint{font-size:11px;color:var(--muted);font-weight:400;padding:2px 6px;background:#e2e8f0;border-radius:4px}.pane-actions{display:flex;align-items:center;gap:8px}.pane-footer{display:flex;align-items:center;justify-content:space-between;padding:5px 14px;background:#f8fafc;border-top:1px solid var(--line);font-size:11px;color:var(--muted);flex-shrink:0}.form-container{flex:1;min-height:0;overflow-y:auto;padding:14px 18px;background:#f8fafc;display:flex;flex-direction:column;gap:12px}.form-card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px 16px;box-shadow:0 1px 3px #0000000a}.form-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid #f1f5f9}.form-card-title{font-size:13.5px;font-weight:700;color:#1e293b;display:flex;align-items:center;gap:6px}.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}@media (max-width: 600px){.form-grid-2,.form-grid-3{grid-template-columns:1fr}}.form-label{display:block;font-size:11.5px;font-weight:600;color:#475569;margin-bottom:3px}.form-input{width:100%;padding:6px 10px;border:1px solid var(--line2);border-radius:6px;font-size:12.5px;color:var(--text);outline:none;background:#fff;transition:border-color .15s}.form-input:focus{border-color:var(--primary);box-shadow:0 0 0 2px #4f46e51a}.form-textarea{width:100%;padding:8px 10px;border:1px solid var(--line2);border-radius:6px;font-size:12.5px;color:var(--text);outline:none;background:#fff;font-family:inherit;line-height:1.5;resize:vertical;transition:border-color .15s}.form-textarea:focus{border-color:var(--primary);box-shadow:0 0 0 2px #4f46e51a}.form-select{padding:4px 8px;border:1px solid var(--line2);border-radius:6px;font-size:11.5px;font-weight:500;color:var(--text);background:#fff;cursor:pointer}.q-list{display:flex;flex-direction:column;gap:10px}.q-card{background:#f8fafc;border:1px solid var(--line);border-radius:8px;padding:10px 12px;transition:border-color .15s}.q-card:hover{border-color:#cbd5e1}.editor-wrapper{flex:1;min-height:0;position:relative;background:#0f172a}.typst-textarea{position:absolute;top:0;left:0;width:100%;height:100%;padding:14px 18px;border:none;outline:none;resize:none;background:#0f172a;color:#f1f5f9;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:13.5px;line-height:1.65;tab-size:2;white-space:pre;overflow-y:auto;box-sizing:border-box}.typst-textarea::selection{background:#334155;color:#38bdf8}.q-level-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:700;letter-spacing:.2px}.level-nhan-biet{background:#ecfdf5;color:#059669;border:1px solid #a7f3d0}.level-thong-hieu{background:#eff6ff;color:#2563eb;border:1px solid #bfdbfe}.level-van-dung{background:#fff7ed;color:#ea580c;border:1px solid #fed7aa}.level-van-dung-cao{background:#faf5ff;color:#9333ea;border:1px solid #e9d5ff}.format-btn{padding:3px 8px;font-size:11.5px;background:#fff;border:1px solid #cbd5e1;border-radius:5px;cursor:pointer;color:#334155;font-weight:600;transition:all .12s}.format-btn:hover{background:#f1f5f9;color:#0f172a;border-color:#94a3b8}.swal-sang .swal2-title{font-size:17px!important;color:#0f172a!important;padding-bottom:4px!important}.swal-sang .swal2-html-container{margin:10px 16px!important}.preview-wrapper{flex:1;min-height:0;position:relative;background:#525659;overflow:hidden}.preview-wrapper{display:flex;flex-direction:column}.pdf-scroll{flex:1;min-height:0;overflow:auto;padding:14px 0 28px;text-align:center;overscroll-behavior:contain}.pdf-scroll canvas.pdf-page{display:block;margin:0 auto 12px;background:#fff;box-shadow:0 2px 10px #00000059;max-width:none}.btn[hidden]{display:none}.header-summary-banner{background:#f8fafc;border:1px dashed #cbd5e1;border-radius:8px;padding:8px 12px;transition:all .15s ease}.header-summary-banner:hover{background:#eef2ff;border-color:#818cf8}.formatting-toolbar{display:flex;align-items:center;gap:5px;background:#f1f5f9;padding:5px 8px;border-radius:6px 6px 0 0;border:1px solid var(--line2);border-bottom:none;flex-wrap:wrap}.formatting-label{font-size:11px;font-weight:700;color:#475569;margin-right:4px}.fmt-btn{padding:2px 7px;font-size:11.5px;background:#fff;border:1px solid #cbd5e1;border-radius:4px;cursor:pointer;color:#334155;font-weight:700;line-height:1.3;transition:all .12s}.fmt-btn:hover{background:#4f46e5;color:#fff;border-color:#4338ca}.zoom-controls{display:flex;align-items:center;gap:2px;background:#fff;border:1px solid var(--line2);border-radius:6px;padding:1px 3px}.zoom-level-label{font-size:11px;font-weight:700;color:#475569;padding:0 4px;min-width:38px;text-align:center}.compiler-error-box{background:#fee2e2;border-bottom:2px solid #ef4444;color:#991b1b;padding:10px 14px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px;line-height:1.5;white-space:pre-wrap;max-height:140px;overflow-y:auto}.status-badge{font-size:11.5px;font-weight:600;padding:2px 8px;border-radius:12px;display:inline-flex;align-items:center;gap:4px}.status-ok{background:#ecfdf5;color:#065f46;border:1px solid #a7f3d0}.status-busy{background:#eff6ff;color:#1e40af;border:1px solid #bfdbfe}.status-typing{background:#fefce8;color:#854d0e;border:1px solid #fef08a}.status-error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}.swal-sang{border-radius:14px!important;font-family:inherit!important}.ribbon-check{display:inline-flex;align-items:center;gap:4px;font-size:12.5px;font-weight:600;cursor:pointer;color:#334155;white-space:nowrap}.ribbon-check input{margin:0}.bk{text-align:left;font-size:13.5px}.bk-tabs{display:flex;gap:6px;margin-bottom:8px}.bk-tab{flex:1;padding:8px 6px;border:1px solid #e2e8f0;background:#f8fafc;border-radius:10px;cursor:pointer;font:inherit;font-weight:700;color:#475569}.bk-tab.on{background:#eef2ff;border-color:#818cf8;color:#4338ca}.bk-hint{color:#64748b;font-size:12.5px;margin-bottom:8px}.bk-bar{display:flex;gap:8px;margin-bottom:8px}.bk-search{flex:1;padding:7px 10px;border:1px solid #cbd5e1;border-radius:8px;font:inherit}.bk-list{max-height:330px;overflow:auto;border:1px solid #e2e8f0;border-radius:10px}.bk-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 12px;border-bottom:1px solid #f1f5f9}.bk-row:last-child{border-bottom:none}.bk-main{display:flex;flex-direction:column;min-width:0}.bk-main b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#0f172a}.bk-main span{color:#64748b;font-size:12px}.bk-act{display:flex;gap:4px;flex-shrink:0}.bk-btn{padding:6px 11px;border:1px solid #cbd5e1;background:#fff;border-radius:8px;cursor:pointer;font:inherit;font-weight:600;color:#334155}.bk-btn:hover{background:#f1f5f9}.bk-pri{background:#4f46e5;border-color:#4338ca;color:#fff}.bk-pri:hover{background:#4338ca}.bk-empty{padding:26px 12px;text-align:center;color:#64748b}.bk-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px;font-size:12px;color:#64748b}.bk-foot.warn{color:#b45309;font-weight:600}.ex{text-align:left;font-size:13.5px}.ex h4{margin:10px 0 6px;font-size:13px;color:#334155}.ex-chips{display:flex;flex-wrap:wrap;gap:6px}.ex-chip{padding:6px 11px;border:1px solid #c7d2fe;background:#eef2ff;color:#4338ca;border-radius:999px;cursor:pointer;font:inherit;font-weight:700;font-size:12.5px}.ex-chip:hover{background:#e0e7ff}.ex-row{display:flex;flex-wrap:wrap;gap:14px}.ex label{display:inline-flex;align-items:center;gap:6px;cursor:pointer}.ex-note{margin-top:8px;font-size:12px;color:#64748b}.ribbon-input{padding:4px 8px;border:1px solid #cbd5e1;border-radius:6px;font:inherit;font-size:12.5px;width:150px}.seg{display:inline-flex;padding:3px;gap:2px;background:#e2e8f0;border-radius:10px}.seg-btn{padding:5px 12px;border:0;background:transparent;border-radius:8px;cursor:pointer;font:inherit;font-size:12.5px;font-weight:700;color:#475569;transition:background .15s,color .15s,box-shadow .15s;white-space:nowrap}.seg-btn:hover{color:#1e293b}.seg-btn.on{background:#fff;color:#4338ca;box-shadow:0 1px 3px #0f172a2e}.chip{padding:4px 11px;border:1px solid #cbd5e1;background:#fff;border-radius:999px;cursor:pointer;font:inherit;font-size:12px;font-weight:700;color:#334155;transition:.15s}.chip:hover{background:#f1f5f9}.chip.on{background:#eef2ff;border-color:#818cf8;color:#4338ca}.pa{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;padding:10px 14px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;margin-bottom:12px}.pa-title{font-size:12.5px;font-weight:700;color:#334155}.pa-indent{display:flex;align-items:center;gap:8px;flex:1 1 100%}.pa-indent input[type=range]{flex:1;accent-color:#4f46e5;cursor:pointer}.pa-val{min-width:52px;text-align:center;font-size:12px;font-weight:700;color:#4338ca;background:#fff;border:1px solid #c7d2fe;border-radius:8px;padding:3px 8px}.pd{text-align:left;display:flex;flex-direction:column;gap:10px;font-size:13px;font-weight:600;color:#334155}.pd label{display:flex;flex-direction:column;gap:4px}.pd-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.pd-tools{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.pd-type{margin-left:auto;display:flex;gap:12px}.pd-type label{flex-direction:row;align-items:center;gap:4px}#pdContent{height:46vh;font-size:14.5px;line-height:1.6}body,button,input,select,textarea{font-family:Be Vietnam Pro,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.typst-textarea{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.form-card{border-radius:14px;box-shadow:0 1px 2px #0f172a0d,0 4px 14px #0f172a0a;transition:box-shadow .2s}.form-card:hover{box-shadow:0 1px 2px #0f172a0f,0 8px 22px #0f172a14}.btn{transition:background .15s,box-shadow .15s,transform .1s,border-color .15s}.btn:active{transform:scale(.97)}.form-input:focus,.form-textarea:focus,.ribbon-select:focus{outline:none;border-color:#818cf8;box-shadow:0 0 0 3px #6366f12e}.editor-pane{scroll-behavior:smooth}@media (prefers-reduced-motion: reduce){*{transition:none!important;scroll-behavior:auto!important}}.struct-bar{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;padding:10px 14px;background:linear-gradient(90deg,#eef2ff,#f5f3ff);border:1px solid #c7d2fe;border-radius:14px;margin-bottom:12px}.struct-label{font-weight:800;font-size:13px;color:#3730a3}.struct-flow{display:flex;align-items:center;flex-wrap:wrap;gap:6px;flex:1;min-width:0}.struct-flow i{color:#818cf8;font-style:normal;font-weight:700}.struct-pill{padding:3px 10px;border-radius:999px;background:#fff;border:1px solid #c7d2fe;font-size:12px;font-weight:700;color:#4338ca}.struct-pill.k-viet{border-color:#a7f3d0;color:#047857}.struct-pill.k-van-ban{border-color:#fde68a;color:#b45309}.st{text-align:left;font-size:13px}.st-presets{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.st-list{display:flex;flex-direction:column;gap:8px;max-height:340px;overflow:auto;padding:2px}.st-row{display:flex;gap:10px;align-items:center;padding:10px 12px;border:1px solid #e2e8f0;border-left:4px solid #6366f1;border-radius:12px;background:#fff}.st-row.k-viet{border-left-color:#10b981}.st-row.k-van-ban{border-left-color:#f59e0b}.st-move{display:flex;flex-direction:column;gap:2px}.st-move button{border:1px solid #cbd5e1;background:#f8fafc;border-radius:6px;cursor:pointer;font-size:10px;padding:2px 7px}.st-move button:disabled{opacity:.35;cursor:default}.st-body{flex:1;min-width:0}.st-kind{font-size:11.5px;color:#64748b;font-weight:700;margin-bottom:4px}.st-edit{display:flex;align-items:center;gap:12px}.st-edit .form-input{flex:1}.st-edit label{display:inline-flex;align-items:center;gap:4px;white-space:nowrap;font-weight:600;color:#334155}.st-prev{margin-top:4px;font-size:12px;color:#64748b}.st-prev b{color:#0f172a}.st-del{border:0;background:transparent;cursor:pointer;font-size:16px;opacity:.6}.st-del:hover{opacity:1}.st-add{display:flex;align-items:center;gap:8px;margin-top:10px;font-weight:700;color:#334155}.chip:disabled{opacity:.4;cursor:default}.st-opt{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;margin-top:12px;padding-top:10px;border-top:1px solid #e2e8f0;font-weight:600;color:#334155}.st-opt label{display:inline-flex;align-items:center;gap:6px}.tg{text-align:left}.tg-tabs{margin-bottom:6px}.tg h4{margin:14px 0 8px;font-size:13.5px;color:#334155}.tg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}.tg-card{display:flex;flex-direction:column;gap:5px;text-align:left;padding:12px 14px;border:1px solid #e2e8f0;border-radius:14px;background:#fff;cursor:pointer;font:inherit;transition:border-color .15s,box-shadow .15s,transform .1s}.tg-card:hover{border-color:#818cf8;box-shadow:0 6px 18px #4f46e524;transform:translateY(-1px)}.tg-card b{color:#1e1b4b;font-size:14px}.tg-card span{color:#64748b;font-size:12.5px;line-height:1.45}.tg-card em{display:flex;flex-wrap:wrap;gap:4px;margin-top:2px;font-style:normal}.tg-card i{font-style:normal;font-size:11px;font-weight:700;color:#4338ca;background:#eef2ff;padding:2px 8px;border-radius:999px}.tg-foot{margin-top:14px;text-align:center}
