@font-face{font-family:PingFang SC;src:url(/PingFangSC-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}:root{--bg-body: #f8fafc;--bg-surface: #ffffff;--bg-surface-hover: #f1f5f9;--primary: #4f46e5;--primary-hover: #4338ca;--primary-text: #ffffff;--text-main: #0f172a;--text-secondary: #64748b;--text-muted: #94a3b8;--border: #e2e8f0;--border-hover: #cbd5e1;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--radius: .75rem;--success-bg: #dcfce7;--success-text: #166534;--warning-bg: #fef9c3;--warning-text: #854d0e;--error-bg: #fee2e2;--error-text: #991b1b;--info-bg: #e0e7ff;--info-text: #3730a3;font-family:PingFang SC,Inter,system-ui,-apple-system,sans-serif;line-height:1.5;font-weight:400;color-scheme:light}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;margin:0;padding:0}body{background-color:var(--bg-body);color:var(--text-main);display:flex;flex-direction:column}#app{width:100%;height:100%;display:flex;flex-direction:column}button{font-family:inherit}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}.app-container[data-v-f8dda795]{display:flex;flex-direction:column;height:100%;min-height:100vh;background-color:var(--bg-body);overflow:hidden}.header-row[data-v-f8dda795]{display:flex;align-items:center;justify-content:center;gap:24px;padding:12px 20px;flex-shrink:0}.app-title[data-v-f8dda795]{font-size:1.25rem;font-weight:600;color:var(--text-main);margin:0;white-space:nowrap}.control-line[data-v-f8dda795]{display:flex;align-items:center;justify-content:center;gap:12px;background:transparent;padding:0;border-radius:0;box-shadow:none;border:none;flex-wrap:wrap}.action-group[data-v-f8dda795]{display:inline-flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap}.input-group[data-v-f8dda795]{display:flex;align-items:center;gap:8px}.input-group label[data-v-f8dda795]{font-size:.9rem;font-weight:500;color:var(--text-main)}.hidden-input[data-v-f8dda795]{display:none}.file-btn[data-v-f8dda795]{display:inline-flex;align-items:center;justify-content:center;height:36px;padding:0 16px;background:linear-gradient(#f1f5f9,#f1f5f9) padding-box,linear-gradient(120deg,#4285f4,#ea4335,#fbbc05,#34a853,#4285f4) border-box;background-size:100% 100%,220% 220%;background-position:0 0,0% 55%;border:1px solid transparent;border-radius:9999px;cursor:pointer;font-size:.85rem;font-weight:600;color:#6b7280;min-width:120px;max-width:240px;text-align:center;box-shadow:0 0 0 1px #cbd5e1;transition:color .2s ease,box-shadow .2s ease,transform .2s ease,background-position .3s ease}.file-btn[data-v-f8dda795]:hover{color:#4b5563;background-position:0 0,30% 55%;box-shadow:0 6px 16px #4285f426,0 0 0 1px #cbd5e1}.file-btn.selected[data-v-f8dda795]{background:linear-gradient(#f1f5f9,#f1f5f9) padding-box,linear-gradient(120deg,#4285f4,#ea4335,#fbbc05,#34a853,#4285f4) border-box;background-size:100% 100%,260% 260%;animation:file-btn-rainbow-f8dda795 1.8s linear infinite;color:#4b5563}.btn-text[data-v-f8dda795]{display:inline-flex;align-items:center;justify-content:center;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:inherit}@keyframes file-btn-rainbow-f8dda795{0%{background-position:0 0,0% 50%}to{background-position:0 0,200% 50%}}@keyframes btn-shake-f8dda795{0%,to{transform:translate(0)}20%{transform:translate(-2px)}40%{transform:translate(2px)}60%{transform:translate(-1px)}80%{transform:translate(1px)}}.btn-grade[data-v-f8dda795]{display:inline-flex;align-items:center;justify-content:center;height:36px;padding:0 16px;background:linear-gradient(#f8fafc,#f8fafc) padding-box,linear-gradient(120deg,#4285f4,#ea4335,#fbbc05,#34a853,#4285f4) border-box;background-size:100% 100%,220% 220%;background-position:0 0,0% 55%;color:#334155;border:1px solid transparent;border-radius:9999px;font-size:.85rem;font-weight:400;min-width:120px;cursor:pointer;box-shadow:0 0 0 1px #cbd5e1;transition:box-shadow .2s ease,transform .2s ease,background-position .3s ease;position:relative}.btn-grade.is-animated[data-v-f8dda795]{background-size:100% 100%,240% 240%;animation:file-btn-rainbow-f8dda795 2.2s linear infinite}.btn-grade[data-v-f8dda795]:hover:not(:disabled){background-position:0 0,30% 55%;box-shadow:0 6px 16px #4285f42e,0 0 0 1px #cbd5e1}.btn-grade[data-v-f8dda795]:disabled{opacity:.6;cursor:not-allowed}.btn-grade.is-loading[data-v-f8dda795]{opacity:1;cursor:wait;background-size:100% 100%,260% 260%;background-position:0 0,200% 55%;animation:file-btn-rainbow-f8dda795 1.2s linear infinite;box-shadow:0 6px 16px #4285f42e,0 0 0 1px #4285f44d}.btn-grade.is-disabled-shake[data-v-f8dda795]:hover{animation:btn-shake-f8dda795 .35s ease}.status-msg[data-v-f8dda795]{font-size:.85rem;color:var(--text-secondary);margin-left:6px;white-space:nowrap}.main-content[data-v-f8dda795]{flex:1;display:flex;padding:8px 12px 0;min-height:0}.layout[data-v-f8dda795]{display:grid;grid-template-columns:1fr 2fr;gap:12px;flex:1;min-height:0;width:100%;height:100%}.left-panel[data-v-f8dda795]{display:grid;grid-template-rows:1fr 1fr;gap:12px;min-height:0;height:100%}.right-panel[data-v-f8dda795]{display:grid;grid-template-columns:1.4fr .6fr;gap:12px;min-height:0;height:100%}.result-left[data-v-f8dda795],.result-right[data-v-f8dda795]{display:flex;flex-direction:column;min-height:0;height:100%}.card[data-v-f8dda795]{background:var(--bg-surface);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden;height:100%}.card-header[data-v-f8dda795]{padding:8px 12px;border-bottom:1px solid var(--border);background:#f8fafc;display:flex;justify-content:space-between;align-items:center;flex-shrink:0;min-height:40px}.card-header h3[data-v-f8dda795]{font-size:.9rem;font-weight:600;color:#475569;margin:0}.icon-btn[data-v-f8dda795]{background:transparent;border:none;cursor:pointer;font-size:1.1rem;color:#94a3b8;padding:0 4px}.icon-btn[data-v-f8dda795]:hover{color:var(--primary)}.card-body[data-v-f8dda795]{flex:1;position:relative;background:#f8fbff;overflow:hidden;min-height:0}.card-body.scrollable[data-v-f8dda795]{overflow-y:auto;background:#f8fbff}.canvas-container[data-v-f8dda795]{width:100%;height:100%;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;cursor:grab}.canvas-container.dragging[data-v-f8dda795]{cursor:grabbing}.preview-img[data-v-f8dda795]{max-width:100%;max-height:100%;object-fit:contain;-webkit-user-select:none;user-select:none;pointer-events:none;position:absolute}.empty-state[data-v-f8dda795]{color:#cbd5e1;font-size:.9rem}.empty-state.small[data-v-f8dda795]{height:100%;display:flex;align-items:center;justify-content:center;text-align:center;width:100%}.error-list[data-v-f8dda795]{padding:8px;display:flex;flex-direction:column;gap:8px}.error-item[data-v-f8dda795]{display:flex;gap:8px;padding:8px;background:#f8fafc;border-radius:6px;border:1px solid #e2e8f0}.error-marker[data-v-f8dda795]{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;flex-shrink:0;color:#fff}.error-marker.missing[data-v-f8dda795]{background:#22c55e}.error-marker.extra[data-v-f8dda795]{background:#eab308;color:#000}.error-marker.style[data-v-f8dda795]{background:#a855f7}.error-content[data-v-f8dda795]{flex:1}.error-title[data-v-f8dda795]{font-size:.8rem;font-weight:600;color:var(--text-main)}.error-desc[data-v-f8dda795]{font-size:.75rem;color:var(--text-secondary);line-height:1.3}.badge-count[data-v-f8dda795]{background:var(--error-bg);color:var(--error-text);padding:1px 6px;border-radius:10px;font-size:.7rem;font-weight:600}.site-footer[data-v-f8dda795]{padding:8px;background:transparent;display:flex;align-items:center;justify-content:center;font-size:.75rem;color:#94a3b8;flex-shrink:0}.footer-content[data-v-f8dda795]{display:flex;gap:12px;align-items:center}.site-footer a[data-v-f8dda795]{color:#94a3b8;text-decoration:none;transition:color .2s}.site-footer a[data-v-f8dda795]:hover{color:var(--primary)}.separator[data-v-f8dda795]{color:#e2e8f0}@media(max-width:960px){.layout[data-v-f8dda795]{grid-template-columns:1fr}.left-panel[data-v-f8dda795]{grid-template-rows:1fr 1fr;height:500px}.right-panel[data-v-f8dda795]{grid-template-columns:1fr}.header-row[data-v-f8dda795]{flex-direction:column;gap:12px}.control-line[data-v-f8dda795]{flex-direction:column;align-items:center}}
