:root{--bg:#f4f6fb;--surface:#fff;--surface-border:#e3e8f3;--text-primary:#1f2937;--text-secondary:#66758f;--accent:#3b82f6;--accent-strong:#2563eb;--focus:#3b82f6;--shadow-soft:0 10px 24px #1c305914;--font-size-h2:20px;--font-size-h3:18px;--font-size-h4:14px;--font-size-body:14px;--font-size-caption:12px;--line-height-tight:1.3;--line-height-base:1.5;--font-weight-semibold:600;--font-weight-medium:500}*,:before,:after{box-sizing:border-box}body{min-height:100dvh;color:var(--text-primary);background-color:var(--bg);font-family:-apple-system,BlinkMacSystemFont,Helvetica Neue,Tahoma,PingFang SC,Microsoft Yahei,Arial,Hiragino Sans GB,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:var(--font-size-body);line-height:var(--line-height-base);margin:0}#app{min-height:100dvh}.dashboard-root{max-width:1440px;min-height:100dvh;margin:0 auto;padding:20px 24px}.dashboard-layout{grid-template-columns:minmax(0,1fr) 340px;gap:14px;margin-top:0;display:grid}.left-column{min-width:0;display:flex}.chart-section{width:100%;height:100%;min-height:clamp(320px,68vh,860px);margin-top:0}.right-column{flex-direction:column;gap:12px;padding-bottom:70px;display:flex}.plugin-config-panel{position:relative}.config-panel button:focus-visible,.config-panel input:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.phase2-status{font-size:var(--font-size-caption);line-height:var(--line-height-base);color:var(--text-secondary)}.config-panel{border:1px solid var(--surface-border);background:var(--surface);border-radius:10px;width:100%;padding:12px;box-shadow:0 6px 18px #1c30590f}.config-panel h2{font-size:var(--font-size-h3);line-height:var(--line-height-tight);font-weight:var(--font-weight-semibold);margin:0}.config-panel .panel-tip{color:var(--text-secondary);font-size:var(--font-size-caption);line-height:var(--line-height-base);margin:6px 0 10px}.config-panel label{font-size:var(--font-size-body);line-height:var(--line-height-tight);font-weight:var(--font-weight-medium);color:var(--text-secondary);margin-bottom:6px;display:block}.config-panel input{width:100%;height:44px;color:var(--text-primary);font-size:var(--font-size-body);line-height:var(--line-height-base);background:#f8faff;border:1px solid #d2daea;border-radius:8px;padding:0 12px}.panel-actions{gap:8px;margin-top:8px;display:flex}.config-panel button{background:linear-gradient(135deg, var(--accent), var(--accent-strong));color:#fff;min-width:72px;min-height:44px;font-size:var(--font-size-body);line-height:var(--line-height-tight);font-weight:var(--font-weight-semibold);cursor:pointer;border:1px solid #0000;border-radius:10px;padding:0 14px}.config-panel button.secondary{color:#334155;background:#fff;border:1px solid #cdd7eb}.config-panel button:active{transform:translateY(1px)}.saved-message{min-height:20px;font-size:var(--font-size-caption);line-height:var(--line-height-base);color:var(--text-secondary);margin:8px 0 0}.mapping-panel{border:1px solid var(--surface-border);background:var(--surface);border-radius:12px;padding:14px;box-shadow:0 6px 18px #1c30590f}.panel-title-row{justify-content:space-between;align-items:center;display:flex}.mapping-panel h3{font-size:var(--font-size-h3);line-height:var(--line-height-tight);font-weight:var(--font-weight-semibold);margin:0}.panel-title-hint{color:#6b7b95;background:#f3f7ff;border:1px solid #e3ebfb;border-radius:999px;padding:2px 8px;font-size:12px}.mapping-panel p{font-size:var(--font-size-caption);line-height:var(--line-height-base);color:var(--text-secondary);margin:6px 0 0}.config-section{margin-top:12px}.table-multi-list{background:#fafcff;border:1px solid #e5ebf6;border-radius:8px;max-height:96px;margin-top:6px;padding:4px 8px;overflow:auto}.table-multi-item{font-size:var(--font-size-body);line-height:var(--line-height-base);color:#334155;align-items:center;gap:8px;padding:4px 0;display:flex}.table-multi-dropdown{margin-top:6px;position:relative}.table-dropdown-trigger{color:#334155;width:100%;min-height:40px;font-size:var(--font-size-body);line-height:var(--line-height-base);cursor:pointer;background:#f8faff;border:1px solid #d2daea;border-radius:8px;justify-content:space-between;align-items:center;padding:0 12px;display:flex}.table-dropdown-trigger .arrow{color:#64748b;font-size:11px}.table-dropdown-menu{z-index:10;background:#fff;border:1px solid #d2daea;border-radius:8px;max-height:180px;padding:6px 8px;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow:auto;box-shadow:0 8px 20px #1c30591a}.table-dropdown-item{font-size:var(--font-size-body);color:#334155;align-items:center;gap:8px;padding:6px 4px;display:flex}.table-tags{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.table-tags span{font-size:var(--font-size-caption);line-height:var(--line-height-tight);font-weight:var(--font-weight-medium);color:#2f4f86;background:#eaf1ff;border-radius:999px;align-items:center;padding:2px 8px;display:inline-flex}.config-section h4{font-size:var(--font-size-h4);line-height:var(--line-height-tight);font-weight:var(--font-weight-semibold);color:#5a6f91;margin:0 0 6px}.mapping-table{background:#fbfcff;border:1px solid #e6ecf5;border-radius:8px;margin-top:12px;overflow:hidden}.mapping-panel input,.mapping-panel select{color:#334155;width:100%;height:36px;font-size:var(--font-size-body);line-height:var(--line-height-base);background:#f8faff;border:1px solid #d2daea;border-radius:8px;margin-top:6px;padding:0 10px}.mapping-head,.mapping-row{font-size:var(--font-size-caption);line-height:var(--line-height-base);grid-template-columns:1fr 1fr;padding:9px 10px;display:grid}.mapping-head{color:#53627a;font-weight:var(--font-weight-semibold);background:#f3f6fb}.mapping-row{color:#334155;border-top:1px solid #eef2f8}.type-badge{color:#355892;min-width:18px;height:18px;font-size:11px;font-style:normal;font-weight:var(--font-weight-medium);background:#e8f0ff;border-radius:999px;justify-content:center;align-items:center;margin-right:6px;display:inline-flex}.mapping-empty{padding:10px}.config-save-zone{background:var(--surface);margin-top:10px;padding-top:8px;position:sticky;bottom:0}.config-save-zone button{background:linear-gradient(135deg, var(--accent), var(--accent-strong));color:#fff;cursor:pointer;border:1px solid #0000;border-radius:8px;width:100%;min-height:44px;font-weight:600}.save-status{font-size:var(--font-size-caption);line-height:var(--line-height-base);margin-top:6px!important}.chat-panel-lite{background:#fbfcff;border:1px solid #e6ecf5;border-radius:8px;margin-top:12px;padding:12px}.chat-panel-lite h4{font-size:var(--font-size-h4);line-height:var(--line-height-tight);font-weight:var(--font-weight-semibold);color:#4b6286;margin:0}.chat-history{gap:6px;max-height:180px;margin-top:8px;display:grid;overflow:auto}.chat-history>div{font-size:var(--font-size-caption);line-height:var(--line-height-base);border-radius:6px;padding:6px 8px}.msg-user{color:#1f3d70;background:#eef4ff}.msg-assistant{color:#475569;background:#f3f6fb}.chat-panel-lite textarea{color:#1f2937;resize:vertical;width:100%;min-height:132px;font-size:var(--font-size-body);line-height:var(--line-height-base);background:#f8faff;border:1px solid #d2daea;border-radius:8px;margin-top:8px;padding:8px 10px}.chat-actions-lite{grid-template-columns:1fr 1fr;gap:8px;margin-top:8px;display:grid}.chat-actions-lite button{background:linear-gradient(135deg, var(--accent), var(--accent-strong));color:#fff;min-height:36px;font-size:var(--font-size-body);line-height:var(--line-height-tight);font-weight:var(--font-weight-semibold);cursor:pointer;border:1px solid #0000;border-radius:8px}.chat-actions-lite button.secondary{color:#334155;background:#fff;border-color:#cdd7eb}.core-field-list{margin-top:10px}.core-field-list .mapping-head span:first-child{font-weight:700}.is-full-screen{color:#e2e8f0;background:#0f172a}.is-full-screen .dashboard-header .subtitle,.is-full-screen .chart-toolbar p{color:#b6c3d9}.is-full-screen .chart-toolbar,.is-full-screen .mapping-panel,.is-full-screen .chat-panel,.is-full-screen .config-panel{background:#111c33;border-color:#293a5b}.is-full-screen .state-badge{background:#1c2f52;border-color:#37507e;color:#dbeafe!important}@media (width<=768px){.dashboard-root{padding:16px}.dashboard-layout{grid-template-columns:1fr}}.chart-canvas[data-v-24e61054]{background:#fff;border:1px solid #e3e8f3;border-radius:16px;width:100%;height:100%;min-height:320px}
