:root{color-scheme:light;--brand-50: #f6f4fb;--brand-100: #ede9f6;--brand-200: #c0b2e2;--brand-300: #967cd2;--brand-400: #866ac6;--brand-500: #7d61c0;--brand-600: #775abc;--brand-700: #6f53b0;--brand-800: #6951a1;--brand-900: #564480;--neutral-0: #ffffff;--neutral-25: #f9f9fb;--neutral-50: #f6f5f9;--neutral-100: #eae7f2;--neutral-200: #dbd5e8;--neutral-500: #7a6f92;--neutral-700: #574d6e;--neutral-900: #2d2442;--green: #0e7038;--green-soft: rgba(34, 197, 94, .1);--line-green: rgba(34, 197, 94, .3);--red: #ff0300;--red-soft: rgba(255, 3, 0, .1);--line-red: rgba(255, 3, 0, .3);--code-bg: #f9f7fc;--code-line: #e7e2f2;--code-text: #39304d;--overlay: rgba(54, 44, 78, .84);--accent: var(--brand-600);--accent-strong: var(--brand-900);--accent-soft: var(--brand-100);--accent-tint: var(--brand-50);--line-brand: rgba(134, 106, 198, .38);--brand-grad: linear-gradient( 180deg, var(--brand-400) 0, var(--brand-600) 52%, var(--brand-800) 100% );--topbar-grad: linear-gradient( 100deg, var(--brand-700) 0, var(--brand-500) 40%, var(--brand-400) 68%, var(--brand-300) 100% );--mark-grad: linear-gradient(150deg, #ffffff 0, #f1edfb 60%, #e1d9f4 100%);--bg: var(--neutral-50);--surface: var(--neutral-0);--surface-soft: var(--neutral-25);--surface-raised: var(--neutral-0);--line: var(--neutral-100);--line-strong: var(--neutral-200);--text: var(--neutral-900);--text-soft: var(--neutral-700);--muted: var(--neutral-500);--text-on-brand: var(--neutral-0);--text-on-brand-soft: rgba(255, 255, 255, .86);--radius-sm: 8px;--radius-md: 14px;--radius-lg: 20px;--radius-pill: 999px;--shadow-xs: 0 1px 2px rgba(69, 52, 110, .04);--shadow-soft: 0 1px 2px rgba(69, 52, 110, .05), 0 2px 6px rgba(69, 52, 110, .05);--shadow: 0 1px 3px rgba(69, 52, 110, .05), 0 8px 20px rgba(69, 52, 110, .06);--shadow-brand: 0 1px 2px rgba(69, 52, 110, .16), 0 5px 12px rgba(69, 52, 110, .2);--shadow-brand-lg: 0 2px 4px rgba(69, 52, 110, .18), 0 9px 18px rgba(69, 52, 110, .24);--shadow-accent: 0 6px 16px rgba(69, 52, 110, .12);--shadow-overlay: 0 16px 44px rgba(45, 37, 64, .35);--topbar-shadow: inset 0 1px 0 rgba(255, 255, 255, .18), 0 1px 2px rgba(69, 52, 110, .1), 0 6px 18px rgba(111, 83, 176, .2);--mark-shadow: inset 0 1px 0 #ffffff, 0 2px 6px rgba(47, 29, 90, .3);--ring-focus: 0 0 0 3px rgba(134, 106, 198, .24);--gloss-inset: inset 0 1px 0 rgba(255, 255, 255, .18);--fs-title: 18px;--fs-heading: 15px;--fs-desc: 13px;--fs-body: 14px;--fs-meta: 12px;--upload-size: 160px;--topbar-h: 72px;--shell-pad-x: clamp(8px, calc(1.6vw - 10px) , 18px)}*{box-sizing:border-box}body{margin:0;min-width:320px;background:var(--bg);color:var(--text);font:14px/1.5 PingFang SC,Microsoft YaHei,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}.topbar{position:sticky;top:0;z-index:30;height:var(--topbar-h);display:flex;align-items:center;padding:0 var(--shell-pad-x);color:var(--text-on-brand);background:var(--topbar-grad);box-shadow:var(--topbar-shadow)}.brand{display:flex;align-items:center;gap:14px;min-width:0}.mark{width:44px;height:44px;flex-shrink:0;display:grid;place-items:center;border-radius:12px;background:var(--mark-grad);color:var(--accent-strong);font-size:20px;font-weight:700;line-height:1;letter-spacing:.5px;box-shadow:var(--mark-shadow)}.brand h1{margin:0;font-size:20px;font-weight:700;line-height:1.25;letter-spacing:.6px;white-space:nowrap}.brand p{margin:4px 0 0;color:var(--text-on-brand-soft);font-size:12.5px;line-height:1.3;letter-spacing:.3px;white-space:nowrap}.shell{width:100%;margin:0 auto;padding:16px var(--shell-pad-x)}.panel{overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.panel-head{min-height:76px;padding:20px 24px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:16px;background:linear-gradient(180deg,var(--surface-soft) 0,var(--surface) 100%)}.panel-head>div{min-width:0}.panel-head h2{margin:0;font-size:var(--fs-title);font-weight:700;line-height:1.3}.panel-head p{margin:5px 0 0;color:var(--muted);font-size:var(--fs-desc);line-height:1.5}.panel-count{display:inline-flex;align-items:center;height:26px;padding:0 12px;border-radius:var(--radius-pill);background:var(--accent-soft);color:var(--accent-strong);font-size:var(--fs-meta);font-weight:700;white-space:nowrap}.body{padding:24px}.section-title,.field label,.figure-title{color:var(--text);font-size:var(--fs-heading);font-weight:700;line-height:1.4}.section-hint,.body>p,.form-control::placeholder,.file-upload-hint,.message{color:var(--muted);font-size:var(--fs-desc)}.form-control,.record-search{width:100%;padding:10px 12px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);outline:0;background:var(--surface-raised);color:var(--text);font-size:var(--fs-body);transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}.form-control:focus,.record-search:focus{border-color:var(--accent);box-shadow:var(--ring-focus)}.select-wrap{position:relative}.select-wrap select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:34px;cursor:pointer}.select-wrap:after{content:"";position:absolute;top:50%;right:14px;width:7px;height:7px;border-right:1.8px solid var(--muted);border-bottom:1.8px solid var(--muted);transform:translateY(-50%) rotate(45deg);pointer-events:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:0;height:40px;padding:0 18px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface-raised);color:var(--text);font-weight:600;font-size:var(--fs-desc);cursor:pointer;text-decoration:none;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease}.btn:hover:not(:disabled){border-color:var(--line-brand);box-shadow:var(--shadow-soft);transform:translateY(-1px)}.btn.primary{background:var(--brand-grad);border-color:transparent;color:var(--text-on-brand);box-shadow:var(--shadow-brand),var(--gloss-inset)}.btn.primary:hover:not(:disabled){box-shadow:var(--shadow-brand-lg),var(--gloss-inset)}.btn:disabled{opacity:.56;cursor:not-allowed}.footer{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:18px 24px;border-top:1px solid var(--line);background:var(--surface-soft)}.hidden{display:none!important}.review-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;min-height:690px}.editor-wrap{padding:20px;border-right:1px solid var(--line)}.json-editor{width:100%;height:650px;padding:16px;border:1px solid var(--code-line);border-radius:var(--radius-md);background:var(--code-bg);color:var(--code-text);font:13px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace;resize:vertical;-moz-tab-size:2;tab-size:2}.summary{padding:22px;background:linear-gradient(180deg,var(--surface-soft) 0,var(--surface) 100%)}.metric{padding:15px 0;border-bottom:1px solid var(--line)}.metric span{display:block;color:var(--muted);font-size:12px}.metric strong{font-size:24px;font-weight:700}.notice{margin-top:18px;padding:13px 14px;border-radius:var(--radius-sm);background:var(--accent-tint);color:var(--text-soft);border-left:3px solid var(--accent);font-size:13px;line-height:1.6}.message{min-height:22px;margin-right:auto}.message.success,.file-upload-hint.success{color:var(--green)}.message.error,.file-upload-hint.error{color:var(--red)}.notice-toast{position:fixed;top:calc(var(--topbar-h) + 16px);left:50%;z-index:900;max-width:min(560px,calc(100vw - 32px));padding:11px 18px;border:1px solid transparent;border-radius:var(--radius-pill);background:var(--surface);color:var(--text);box-shadow:var(--shadow);font-size:var(--fs-desc);font-weight:600;text-align:center;transform:translate(-50%)}.notice-toast.success{border-color:var(--line-green);background:var(--green-soft);color:var(--green)}.notice-toast.error{border-color:var(--line-red);background:var(--red-soft);color:var(--red)}.notice-fade-enter-active,.notice-fade-leave-active{transition:opacity .22s ease,transform .22s ease}.notice-fade-enter-from,.notice-fade-leave-to{opacity:0;transform:translate(-50%,-8px)}@media (max-width: 900px){.shell{padding:18px 8px 48px}.review-grid{grid-template-columns:1fr}.editor-wrap{border-right:0;border-bottom:1px solid var(--line)}.footer{flex-wrap:wrap}}@media (max-width: 560px){.brand p{display:none}.panel-head{align-items:flex-start;flex-direction:column}}.form-section+.form-section{margin-top:26px;padding-top:26px;border-top:1px dashed var(--line-strong)}.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.section-heading{min-width:0}.section-title{display:flex;align-items:center;gap:8px;margin:0}.section-title:before{content:"";flex-shrink:0;width:3px;height:15px;border-radius:2px;background:var(--brand-grad)}.section-hint{margin:5px 0 0;padding-left:11px;line-height:1.5}.form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px 18px}.field{display:grid;gap:7px}.field.full{grid-column:1 / -1}.field.span2{grid-column:span 2}.field textarea{min-height:84px;resize:vertical}@media (max-width: 1100px){.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 900px){.form-grid{grid-template-columns:1fr}.field.span2{grid-column:auto}.section-head{flex-direction:column;gap:10px}}.upload-remove{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:2px solid var(--surface);border-radius:var(--radius-pill);background:var(--red);color:var(--text-on-brand);font-size:14px;font-weight:700;line-height:1;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease}.upload-remove:hover{transform:scale(1.1);box-shadow:var(--shadow-soft)}.upload-remove:focus-visible{outline:0;box-shadow:var(--ring-focus)}.upload-input{display:none}.file-upload{display:grid;gap:8px}.file-upload-empty{display:flex;align-items:center;justify-content:center;gap:10px;min-height:84px;padding:16px;border:1px dashed var(--line-brand);border-radius:var(--radius-md);background:linear-gradient(135deg,var(--accent-tint) 0,var(--accent-soft) 100%);color:var(--accent-strong);cursor:pointer;transition:border-color .18s ease,background .18s ease}.file-upload-empty:hover,.file-upload.is-dragging .file-upload-empty{border-color:var(--accent);background:var(--accent-soft)}.file-upload-icon{width:22px;height:22px;flex-shrink:0}.file-upload-text{font-size:var(--fs-body);font-weight:600}.file-upload-item{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-soft)}.file-upload-item .file-upload-icon{color:var(--accent)}.file-upload-name{min-width:0;overflow:hidden;color:var(--text);font-size:var(--fs-body);font-weight:600;text-overflow:ellipsis;white-space:nowrap}.file-upload-size{color:var(--muted);font-size:var(--fs-desc);white-space:nowrap}.file-upload-item .upload-remove{margin-left:auto;flex-shrink:0}.file-upload-hint{margin:0}.image-upload{position:relative;width:var(--upload-size);height:var(--upload-size);flex-shrink:0}.image-upload-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;width:100%;height:100%;border:1px dashed var(--line-strong);border-radius:var(--radius-md);background:var(--surface-raised);color:var(--muted);cursor:pointer;transition:border-color .18s ease,background .18s ease,color .18s ease}.image-upload-empty:hover,.image-upload.is-dragging .image-upload-empty{border-color:var(--accent);background:var(--accent-tint);color:var(--accent-strong)}.image-upload-plus{position:relative;width:26px;height:26px}.image-upload-plus:before,.image-upload-plus:after{content:"";position:absolute;top:50%;left:50%;border-radius:1px;background:currentColor;transform:translate(-50%,-50%)}.image-upload-plus:before{width:26px;height:2px}.image-upload-plus:after{width:2px;height:26px}.image-upload-text{font-size:var(--fs-desc)}.image-upload-preview{display:block;width:100%;height:100%;object-fit:contain;border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--surface-raised);cursor:zoom-in}.image-upload .upload-remove{position:absolute;top:-8px;right:-8px;z-index:2}.image-upload.is-dragging{outline:2px dashed var(--accent);outline-offset:4px;border-radius:var(--radius-md)}.image-upload.is-dragging .image-upload-preview{opacity:.5}.figure-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.figure-card{display:grid;grid-template-columns:var(--upload-size) minmax(0,1fr);gap:12px;align-items:start;padding:14px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-soft)}.figure-title{grid-column:1 / -1;overflow-wrap:anywhere}.figure-card textarea{height:var(--upload-size);min-height:var(--upload-size);min-width:0;resize:vertical;line-height:1.65;overflow:auto}.image-viewer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:grid;place-items:center;padding:36px;background:var(--overlay);cursor:zoom-out}.image-viewer img{max-width:min(94vw,1500px);max-height:90vh;object-fit:contain;box-shadow:var(--shadow-overlay);cursor:zoom-out}.image-viewer-hint{position:absolute;top:16px;right:22px;color:var(--text-on-brand);font-size:var(--fs-desc)}.image-metric{color:var(--accent)}@media (max-width: 900px){.figure-grid{grid-template-columns:1fr}}@media (max-width: 560px){.figure-card{grid-template-columns:1fr}.figure-title{grid-column:auto}}.workflow-head{justify-content:flex-start;align-items:center;gap:12px}.back-button{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:1px solid var(--line-brand);border-radius:var(--radius-pill);background:var(--accent-soft);color:var(--accent-strong);cursor:pointer;transition:background .18s ease,color .18s ease,border-color .18s ease,box-shadow .18s ease}.back-button:hover{border-color:transparent;background:var(--brand-grad);color:var(--text-on-brand);box-shadow:var(--shadow-brand)}.back-button:focus-visible{outline:0;box-shadow:var(--ring-focus)}.icon-back{width:22px;height:22px;flex-shrink:0}.workflow-heading{min-width:0}.workflow-head .workflow-heading h2{margin:0;font-size:22px;font-weight:700;letter-spacing:.2px;line-height:1.3}.workflow-head .workflow-hint{margin:5px 0 0;color:var(--muted);font-size:var(--fs-desc);line-height:1.5}.main-flow{min-width:0}@media (max-width: 560px){.workflow-head{flex-direction:row;align-items:center}}.records-layout{display:grid;grid-template-columns:360px minmax(0,1fr);gap:16px;min-height:calc(100vh - var(--topbar-h) - 32px)}.template-panel{display:flex;flex-direction:column;overflow:visible}.template-panel .panel-head{flex:none;min-height:72px;padding:16px 20px;border-radius:calc(var(--radius-lg) - 1px) calc(var(--radius-lg) - 1px) 0 0}.template-panel .panel-head h2{font-size:var(--fs-title)}.template-panel .panel-head p{font-size:var(--fs-desc);line-height:1.5}.template-body{padding:14px;display:grid;gap:12px}.template-footer{margin-top:auto;padding:0 14px 14px}.template-list{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface)}.template-card{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 14px;transition:background .16s ease}.template-card:first-child{border-radius:calc(var(--radius-md) - 1px) calc(var(--radius-md) - 1px) 0 0}.template-card:last-child{border-radius:0 0 calc(var(--radius-md) - 1px) calc(var(--radius-md) - 1px)}.template-card+.template-card{border-top:1px solid var(--line)}.template-card:hover{background:var(--accent-tint)}.template-card.is-open{z-index:5}.template-card.is-active{background:linear-gradient(90deg,var(--accent-soft) 0,var(--accent-tint) 70%)}.template-card.is-active:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--brand-grad)}.template-card:first-child.is-active:before{border-top-left-radius:calc(var(--radius-md) - 1px)}.template-card:last-child.is-active:before{border-bottom-left-radius:calc(var(--radius-md) - 1px)}.template-card-main{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:start;min-width:0}.template-index{color:var(--muted);font-size:var(--fs-meta);font-weight:700;line-height:20px;letter-spacing:.5px;font-variant-numeric:tabular-nums}.template-card.is-active .template-index{color:var(--accent-strong)}.template-card-text{min-width:0}.template-card b{display:block;color:var(--text);font-size:var(--fs-body);font-weight:600;line-height:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.template-actions{position:relative}.template-download-toggle{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;border:1px solid var(--line-brand);border-radius:var(--radius-pill);background:var(--surface-raised);color:var(--accent-strong);font-size:var(--fs-desc);font-weight:600;line-height:1;white-space:nowrap;cursor:pointer;transition:background .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease}.template-download-toggle:hover,.template-card.is-open .template-download-toggle{border-color:transparent;background:var(--brand-grad);color:var(--text-on-brand);box-shadow:var(--shadow-brand)}.template-download-toggle:after{content:"";width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid currentColor;transition:transform .18s ease}.template-card.is-open .template-download-toggle:after{transform:rotate(180deg)}.template-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:20;display:grid;gap:2px;min-width:156px;padding:5px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-raised);box-shadow:var(--shadow-soft)}.template-menu-item{display:block;padding:7px 10px;border-radius:6px;color:var(--text);font-size:var(--fs-desc);line-height:1.4;text-decoration:none;white-space:nowrap;transition:background .14s ease,color .14s ease}.template-menu-item:hover{background:var(--accent-soft);color:var(--accent-strong)}.manage-template{width:100%;height:auto;padding:10px 12px;flex-direction:column;gap:3px;border-style:dashed;background:var(--surface-soft);color:var(--muted);font-weight:500;line-height:1.5;white-space:normal;text-align:center}.manage-template-title{font-size:var(--fs-desc);font-weight:600;color:var(--text-soft)}.manage-template-desc{font-size:var(--fs-meta);color:var(--muted);line-height:1.5}.manage-template:disabled{opacity:.8}.records-workspace{min-width:0;display:flex;flex-direction:column}.records-toolbar{min-height:72px;padding:16px 20px;display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,var(--surface-soft) 0,var(--surface) 100%)}.records-toolbar h2{margin:0;font-size:var(--fs-title);font-weight:700;line-height:1.3}.records-toolbar p{margin:5px 0 0;color:var(--muted);font-size:var(--fs-desc);line-height:1.5}.records-tools{padding:12px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);background:var(--surface-soft)}.record-search{width:min(380px,100%);height:40px}#recordCount{color:var(--muted);font-size:var(--fs-meta);white-space:nowrap}.record-table-wrap{flex:1;min-height:0;overflow:auto}.records{width:100%;border-collapse:collapse}.records th,.records td{height:56px;padding:0 18px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap;font-size:var(--fs-body)}.records th{position:sticky;top:0;z-index:1;height:46px;background:var(--surface-soft);color:var(--muted);font-weight:600;letter-spacing:.3px}.records tbody tr{transition:background .16s ease}.records tbody tr:hover{background:var(--accent-tint)}.record-name{color:var(--text);font-weight:600}.record-link{color:var(--accent);text-decoration:none;font-weight:600;transition:color .16s ease}.record-link:hover{color:var(--accent-strong)}.record-link[type=button]{padding:0;border:0;background:transparent;cursor:pointer}.record-link[type=button]:disabled{color:var(--muted);cursor:not-allowed}.badge{display:inline-flex;align-items:center;min-height:24px;padding:3px 10px;border:1px solid var(--line-strong);border-radius:var(--radius-pill);background:var(--surface-soft);color:var(--text-soft);font-size:var(--fs-meta);font-weight:600}.badge--success{border-color:var(--line-green);background:var(--green-soft);color:var(--green)}.empty-records{padding:96px 20px;text-align:center;color:var(--muted)}@media (max-width: 1050px){.records-layout{grid-template-columns:1fr}.template-panel{position:static}.records-tools{align-items:stretch;flex-direction:column}.record-search{width:100%}}@media (max-width: 620px){.records-toolbar{align-items:stretch;flex-direction:column}.records-toolbar .btn{width:100%}.template-card{grid-template-columns:1fr;gap:8px}.template-menu{left:0;right:auto}}
