body{margin:0}:root{--bg:#f0f2f5;--surface:#fff;--border:#e2e8f0;--text:#1e293b;--muted:#64748b;--accent:#2563eb;--accent-hover:#1d4ed8;--radius:8px;--font-size-min:12px;color:var(--text);background:var(--bg);font-family:IBM Plex Sans,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{min-height:100vh}small{font-size:var(--font-size-min)}#root{min-height:100vh}.lucide-icon{flex-shrink:0;display:inline-block}.app-shell{background:var(--bg);grid-template-columns:208px minmax(0,1fr);min-height:100vh;display:grid}.app-sidebar{background:var(--surface);border-right:1px solid var(--border);z-index:60;flex-direction:column;align-self:start;gap:18px;height:100vh;padding:20px 14px;display:flex;position:sticky;top:0}.app-sidebar-brand{border-bottom:1px solid #f1f5f9;padding:2px 10px 14px}.app-sidebar-brand strong{color:var(--text);margin-top:5px;font-size:1rem;line-height:1.2;display:block}.app-nav{flex-direction:column;gap:6px;display:flex}.app-nav-item{color:#475569;cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:10px;width:100%;min-height:44px;padding:0 12px;font-family:inherit;font-size:.875rem;font-weight:600;display:flex}.app-nav-item:hover{border-color:var(--border);color:var(--text);background:#f8fafc}.app-nav-item-active,.app-nav-item-active:hover{color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe;box-shadow:inset 3px 0 #2563eb}.app-sidebar-user{border-top:1px solid #f1f5f9;grid-template-columns:minmax(0,1fr) 34px;align-items:center;gap:8px;margin-top:auto;padding:12px 10px 0;display:grid}.app-sidebar-user strong,.app-sidebar-user span{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.app-sidebar-user strong{color:var(--text);font-size:.8125rem;line-height:1.35}.app-sidebar-user span{color:var(--muted);font-size:var(--font-size-min);margin-top:2px}.sidebar-logout{border:1px solid var(--border);color:#475569;cursor:pointer;background:#fff;border-radius:8px;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex}.sidebar-logout:hover{color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe}.app-main{min-width:0}.app-view-loading{min-height:40vh;color:var(--text-muted,#64748b);justify-content:center;align-items:center;font-size:.95rem;display:flex}.login-page{background-color:#eef2f7;background-image:linear-gradient(90deg,#2563eb14 0 1px,#0000 1px),linear-gradient(0deg,#0f172a0f 0 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:44px 44px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;place-items:center;min-height:100vh;padding:24px;display:grid}.login-panel{background:#fff;border:1px solid #dbe4ee;border-radius:10px;gap:20px;width:min(420px,100%);padding:24px;display:grid;box-shadow:0 18px 40px #0f172a24}.login-brand{align-items:center;gap:12px;display:flex}.login-brand-mark{color:#2563eb;background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;justify-content:center;align-items:center;width:44px;height:44px;display:inline-flex}.login-brand h1{color:#0f172a;margin-top:4px;font-size:1.25rem;line-height:1.2}.login-form{gap:14px;display:grid}.password-field{position:relative}.password-field .text-input{width:100%;padding-right:42px}.password-toggle{color:#64748b;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.password-toggle:hover{border-color:var(--border);color:#1d4ed8;background:#f8fafc}.login-error{justify-content:flex-start;min-height:32px}.login-submit{width:100%;min-height:42px}.management-page{background:var(--bg);flex-direction:column;min-height:100vh;display:flex}.management-hero{background:var(--surface);border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:24px;padding:22px 28px;display:flex}.management-hero-copy{min-width:0}.management-hero h1{align-items:center;gap:8px;margin-top:3px;font-size:1.25rem;line-height:1.2;display:flex}.management-hero p{max-width:660px;color:var(--muted);margin-top:6px;font-size:.8125rem;line-height:1.6}.management-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.management-toolbar{border-bottom:1px solid var(--border);background:#f8fafc;align-items:center;gap:10px;padding:14px 28px;display:flex}.management-toolbar .text-input{width:min(360px,100%)}.search-control{align-items:center;width:min(360px,100%);display:flex;position:relative}.search-control .lucide-icon{color:var(--muted);pointer-events:none;position:absolute;left:10px}.search-control .text-input{width:100%;padding-left:32px}.field-filter-control{color:var(--muted);flex:none;align-items:center;gap:7px;font-size:.75rem;font-weight:500;display:inline-flex}.field-filter-control .select-input{min-width:138px;padding-top:6px;padding-bottom:6px}.manager-card-section{margin:18px 28px 28px}.manager-card-section>.empty-state{border:1px solid var(--border);background:var(--surface);border-radius:8px}.manager-card-grid{grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:12px;display:grid}.manager-card{border:1px solid var(--border);background:var(--surface);border-radius:8px;flex-direction:column;gap:10px;min-width:0;min-height:142px;padding:14px;display:flex}.manager-card-active{border-color:#93c5fd;box-shadow:inset 3px 0 #2563eb}.manager-card-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.manager-card-header .status-badge{flex:none}.manager-card-title{flex:1;min-width:0}.manager-card-title .text-input{width:100%}.manager-card-rename{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;min-width:0;display:grid}.manager-card-rename .lucide-icon{color:#64748b}.manager-card-title strong{min-width:0;color:var(--text);align-items:flex-start;gap:7px;font-size:.875rem;line-height:1.35;display:flex}.manager-card-title strong .lucide-icon{color:#64748b;margin-top:2px}.manager-card-title strong span{-webkit-line-clamp:2;-webkit-box-orient:vertical;min-width:0;display:-webkit-box;overflow:hidden}.manager-card-meta{color:var(--muted);font-size:var(--font-size-min);flex-wrap:wrap;align-items:center;gap:8px 12px;line-height:1.4;display:flex}.manager-card-meta span{align-items:center;gap:5px;min-width:0;display:inline-flex}.manager-card-actions{border-top:1px solid #f1f5f9;flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:12px;display:flex}.manager-card-actions .btn{white-space:nowrap;flex:none}.manager-pagination{color:var(--muted);justify-content:space-between;align-items:center;gap:12px;padding-top:14px;font-size:.75rem;display:flex}.manager-pagination-controls{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.manager-page-button{justify-content:center;min-width:30px;padding-left:8px;padding-right:8px}.manager-row-actions{white-space:nowrap;flex-wrap:nowrap;justify-content:flex-end;gap:6px;display:flex}.user-manager-layout{grid-template-columns:320px minmax(0,1fr);gap:18px;padding:18px 28px 28px;display:grid}.user-create-panel,.user-list-panel{border:1px solid var(--border);background:var(--surface);border-radius:8px}.user-create-panel{align-self:start;gap:12px;padding:16px;display:grid}.user-panel-head{border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;gap:10px;padding-bottom:10px;display:flex}.user-panel-head h2{align-items:center;gap:7px;font-size:.875rem;font-weight:700;display:inline-flex}.user-check-row{color:#334155;cursor:pointer;align-items:center;gap:8px;min-height:34px;font-size:.8125rem;display:inline-flex}.user-check-row input{width:16px;height:16px}.user-list-panel{min-width:0;overflow:hidden}.user-list{gap:10px;padding:12px;display:grid}.user-row{background:#fff;border:1px solid #e2e8f0;border-radius:8px;grid-template-columns:minmax(220px,.8fr) minmax(420px,1.4fr) minmax(170px,auto);align-items:center;gap:14px;min-width:0;padding:12px;display:grid}.user-row-main{align-items:center;gap:10px;min-width:0;display:flex}.user-avatar{color:#3730a3;background:#eef2ff;border:1px solid #c7d2fe;border-radius:8px;flex:none;justify-content:center;align-items:center;width:40px;height:40px;font-size:.875rem;font-weight:700;display:inline-flex}.user-row-title{gap:3px;min-width:0;display:grid}.user-row-title strong,.user-row-title>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.user-row-title strong{color:var(--text);font-size:.875rem;line-height:1.35}.user-row-title>span{color:var(--muted);font-family:IBM Plex Mono,monospace;font-size:var(--font-size-min)}.user-row-meta{flex-wrap:wrap;gap:5px;display:flex}.user-row-form{grid-template-columns:minmax(120px,1fr) 116px minmax(160px,1fr) 70px;align-items:end;gap:10px;min-width:0;display:grid}.user-row-form .form-field{gap:5px}.user-row-enabled{min-height:34px;padding-bottom:1px}.user-row-actions{justify-items:end;gap:8px;min-width:0;display:grid}.user-row-actions>div:last-child{justify-content:flex-end;gap:6px;display:inline-flex}.user-row-time{max-width:100%;color:var(--muted);font-size:var(--font-size-min);text-overflow:ellipsis;white-space:nowrap;line-height:1.4;overflow:hidden}.empty-state{text-align:center;min-height:150px;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex}.empty-state-icon{color:#2563eb;background:#eff6ff;border-radius:8px;justify-content:center;align-items:center;width:40px;height:40px;display:inline-flex}.empty-state-title{color:var(--text);font-size:.9375rem;font-weight:600}.empty-state-desc{max-width:420px;font-size:.8125rem;line-height:1.6}.empty-state-action{margin-top:4px}.field-manager-grid{grid-template-columns:320px minmax(0,1fr);gap:18px;min-height:0;padding:18px 28px 28px;display:grid}.field-manager-grid-full{grid-template-columns:minmax(0,1fr)}.field-manager-form,.field-manager-list,.field-admin-group{border:1px solid var(--border);background:var(--surface);border-radius:8px}.field-manager-form{flex-direction:column;align-self:start;gap:12px;padding:16px;display:flex}.field-manager-form h2,.field-group-creator h3,.field-admin-group h2{align-items:center;gap:6px;font-size:.875rem;font-weight:600;display:inline-flex}.field-form-actions{flex-wrap:wrap;gap:8px;display:flex}.field-group-creator{border-top:1px solid var(--border);flex-direction:column;gap:10px;padding-top:14px;display:flex}.field-manager-list{min-width:0;overflow:hidden}.field-manager-list .management-toolbar{flex-wrap:wrap;padding:12px 14px}.field-manager-toolbar-actions{white-space:nowrap;align-items:center;gap:8px;margin-left:auto;display:inline-flex}.field-admin-group{margin:12px;overflow:hidden}.field-admin-group-head{border-bottom:1px solid var(--border);background:#f8fafc;justify-content:space-between;align-items:center;gap:12px;padding:9px 12px;display:flex}.field-admin-group-head>div:first-child{min-width:0}.field-admin-group-head>div>span{color:var(--muted);font-size:var(--font-size-min);margin-top:3px;display:block}.field-card-group .field-admin-group-head h2{flex-wrap:nowrap;min-width:0;max-width:100%}.field-card-group .field-admin-group-head h2>span:first-of-type{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.field-admin-group-summary{color:var(--muted);font-size:var(--font-size-min);white-space:nowrap;flex:none;margin-left:6px;font-weight:500}.field-admin-group-head-actions{flex-wrap:nowrap;justify-content:flex-end;align-items:center;gap:8px;display:inline-flex}.field-group-color-dot{background:currentColor;border-radius:999px;flex:none;width:8px;height:8px}.field-admin-rows{flex-direction:column;display:flex}.field-admin-row{border-bottom:1px solid #f1f5f9;grid-template-columns:minmax(360px,1fr) max-content max-content;align-items:center;gap:14px;min-height:42px;padding:6px 12px;display:grid}.field-admin-row:last-child{border-bottom:none}.field-admin-row>div:first-child{grid-template-columns:minmax(120px,220px) minmax(0,1fr);align-items:center;gap:12px;min-width:0;display:grid}.field-admin-row strong{white-space:nowrap;align-items:center;gap:6px;min-width:0;font-size:.8125rem;display:inline-flex}.field-admin-row strong span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.field-admin-row-status{white-space:nowrap;flex-wrap:nowrap;gap:6px;display:flex}.field-admin-row code{color:#475569;min-width:0;font-family:IBM Plex Mono,monospace;font-size:var(--font-size-min);text-overflow:ellipsis;white-space:nowrap;word-break:normal;margin-top:0;display:block;overflow:hidden}.field-admin-row .status-badge{font-size:var(--font-size-min);padding:3px 8px}.field-edit-modal{width:min(640px,92vw)}.field-group-modal{width:min(420px,92vw)}.field-edit-modal-body,.field-group-modal-body{gap:13px}.field-source-panel{background:#eff6ff;border:1px solid #dbeafe;border-radius:8px;gap:10px;padding:12px;display:grid}.field-source-panel-head{gap:3px;display:grid}.field-source-panel-head strong{color:#0f172a;font-size:.8125rem}.field-source-panel-head span{color:#475569;font-size:var(--font-size-min);line-height:1.5}.field-source-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.field-source-grid-single{grid-template-columns:minmax(0,1fr)}.field-source-empty{color:#64748b;font-size:var(--font-size-min);line-height:1.5}@media (width<=680px){.field-source-grid{grid-template-columns:minmax(0,1fr)}}.field-admin-row .btn-sm{padding:3px 8px}.field-admin-pagination{border-top:1px solid var(--border);background:#fff;padding:10px 12px}.field-manager-list>.field-admin-pagination{border:1px solid var(--border);border-radius:8px;margin:12px}.field-card-grid{grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:12px;margin:12px;display:grid}.field-card-group .field-card-grid{margin-top:12px}.field-card{border:1px solid var(--border);background:var(--surface);border-radius:8px;flex-direction:column;gap:10px;min-width:0;min-height:154px;padding:14px;display:flex}.field-card-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.field-card-header .status-badge{flex:none}.field-card-title{gap:3px;min-width:0;display:grid}.field-card-title strong{min-width:0;color:var(--text);align-items:flex-start;gap:7px;font-size:.875rem;line-height:1.35;display:flex}.field-card-title strong .lucide-icon{color:#64748b;margin-top:2px}.field-card-title strong span,.field-card-title>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.field-card-title>span{color:var(--muted);font-size:var(--font-size-min)}.field-card-expression{color:#475569;min-width:0;font-family:IBM Plex Mono,monospace;font-size:var(--font-size-min);text-overflow:ellipsis;white-space:nowrap;line-height:1.5;display:block;overflow:hidden}.field-card-meta,.field-card-actions{flex-wrap:wrap;gap:6px;display:flex}.field-card-group-color{min-height:22px;color:var(--muted);font-size:var(--font-size-min);border:1px solid #e2e8f0;border-radius:999px;align-items:center;padding:3px 8px;font-weight:600;display:inline-flex}.field-card-actions{border-top:1px solid #f1f5f9;margin-top:auto;padding-top:12px}.field-card-actions .btn{white-space:nowrap;flex:none}.chart-edit-modal{width:clamp(920px,76vw,1280px)}.chart-edit-workbench{grid-template-columns:minmax(320px,.76fr) minmax(420px,1fr)}.chart-edit-form-panel{min-height:100%}.chart-edit-fields{grid-template-columns:minmax(0,1fr);gap:12px;display:grid}.chart-preview-panel{flex-direction:column;gap:10px;min-height:374px;display:flex}.chart-output-fields{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;gap:8px;padding:10px;display:grid}.chart-output-fields-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.chart-output-fields-head strong{color:#334155;font-size:.75rem;font-weight:700}.chart-output-fields-head span{color:#64748b;font-size:var(--font-size-min)}.chart-preview-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.chart-preview-head>div{gap:3px;min-width:0;display:grid}.chart-preview-head span{color:var(--muted);font-size:var(--font-size-min);font-weight:600}.chart-preview-head strong{min-width:0;color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:.9375rem;line-height:1.35;overflow:hidden}.chart-preview-meta{flex-wrap:wrap;gap:6px;display:flex}.chart-preview-canvas{background:#fff;border:1px solid #e2e8f0;border-radius:8px;width:100%;height:clamp(286px,34vh,420px);min-height:286px}.chart-preview-empty{min-height:286px;color:var(--muted);background:#fff;border:1px solid #e2e8f0;border-radius:8px;justify-content:center;align-items:center;font-size:.75rem;display:flex}.chart-preview-table-wrap{background:#fff;border:1px solid #e2e8f0;border-radius:8px;overflow:auto}.chart-preview-table{border-collapse:collapse;width:100%;font-size:.75rem}.chart-preview-table th,.chart-preview-table td{text-align:left;border-bottom:1px solid #f1f5f9;padding:10px 12px}.chart-preview-table th{color:#475569;background:#f8fafc;font-weight:600}.chart-preview-table td{color:#334155}.chart-preview-table tr:last-child td{border-bottom:none}.chart-template-card-section{margin:12px}.chart-template-card-grid{grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:12px;padding:12px;display:grid}.chart-template-card{background:#fff;border:1px solid #dbeafe;border-radius:8px;flex-direction:column;min-width:0;min-height:438px;display:flex;overflow:hidden}.chart-template-card-preview{background:#f8fafc;padding:10px 10px 0}.chart-template-card-preview .chart-preview-canvas,.chart-template-card-preview .chart-preview-empty,.chart-template-card-preview .chart-preview-table-wrap{border-color:#dbe7f4;height:184px;min-height:184px}.chart-template-card-content{flex-direction:column;flex:1;gap:10px;min-width:0;padding:12px;display:flex}.chart-template-card-header{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.chart-template-card-header .status-badge{flex:none}.chart-template-card-title{gap:5px;min-width:0;display:grid}.chart-template-card-title strong{color:#0f172a;align-items:center;gap:6px;min-width:0;font-size:.9375rem;line-height:1.35;display:inline-flex}.chart-template-card-title strong span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.chart-template-card-title p{color:#64748b;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.75rem;line-height:1.5;display:-webkit-box;overflow:hidden}.chart-template-card-meta,.chart-template-output-list{flex-wrap:wrap;gap:6px;display:flex}.chart-template-card-meta .status-badge{min-width:0;max-width:100%}.chart-template-output-list{min-height:24px}.chart-template-output-list .chart-output-field small{color:#7c2d12;font-size:var(--font-size-min);white-space:nowrap;font-weight:600}.chart-template-card-actions{border-top:1px solid #f1f5f9;flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:12px;display:flex}.chart-template-card-actions .btn{white-space:nowrap;flex:none}.chart-template-picker-modal{border-radius:12px 0 0 12px;flex-direction:column;width:min(720px,92vw);height:100vh;max-height:100vh;display:flex}.chart-template-picker-body{background:#f8fafc;flex:1;min-height:0;padding:14px;overflow:auto}.chart-template-picker-grid{gap:10px;display:grid}.chart-template-picker-card{background:#fff;border:1px solid #dbeafe;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px;display:grid}.chart-template-picker-card>div{gap:4px;min-width:0;display:grid}.chart-template-picker-card strong,.chart-template-picker-card span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.chart-template-picker-card strong{color:#0f172a;font-size:.875rem;font-weight:700}.chart-template-picker-card>div>span{color:#64748b;font-size:.75rem}.confirm-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:240;background:#0f172a57;justify-content:center;align-items:center;padding:18px;display:flex;position:fixed;inset:0}.confirm-dialog{background:var(--surface);border:1px solid var(--border);border-radius:8px;width:min(390px,100%);overflow:hidden;box-shadow:0 24px 56px #0f172a38}.confirm-header{padding:16px 18px 8px}.confirm-header h3{color:#0f172a;font-size:.95rem;font-weight:600;line-height:1.35}.confirm-body{color:#475569;padding:0 18px 16px;font-size:.8125rem;line-height:1.6}.prompt-body{gap:12px;display:grid}.prompt-body p{margin:0}.prompt-dialog .form-field{gap:6px}.confirm-footer{border-top:1px solid var(--border);background:#fafbfc;justify-content:flex-end;gap:8px;padding:12px 18px;display:flex}.code-mode .code-editor{flex:1;font-size:12px;font-family:IBM Plex Mono,monospace!important}.code-mode-error{color:#b91c1c;background:#fef2f2;border-bottom:1px solid #fecaca;padding:8px 16px;font-size:.75rem;line-height:1.5}.code-mode-loading{color:var(--muted);justify-content:center;align-items:center;font-size:.875rem;display:flex}.btn{cursor:pointer;border:none;border-radius:6px;justify-content:center;align-items:center;gap:6px;padding:7px 14px;font-family:inherit;font-size:.8125rem;font-weight:500;text-decoration:none;display:inline-flex}.btn:disabled,.btn[aria-disabled=true]{opacity:.45;cursor:not-allowed}.btn-icon-text{white-space:nowrap}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-primary:disabled:hover{background:var(--accent)}.btn-danger{color:#fff;background:#dc2626}.btn-danger:hover{background:#b91c1c}.btn-secondary{background:var(--surface);color:var(--text);border:1px solid var(--border)}.btn-mode{color:var(--text);border:1px solid var(--border);background:#f1f5f9}.btn-mode.active{color:#1d4ed8;background:#eff6ff;border-color:#93c5fd}.btn-ghost{border:1px solid var(--border);color:var(--muted);background:0 0}.btn-sm{font-size:var(--font-size-min);padding:4px 10px}.btn-ghost:disabled{opacity:.4;cursor:not-allowed}.insight-editor{flex-direction:column;height:100vh;min-height:0;display:flex;overflow:hidden}.editor-topbar{background:var(--surface);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 20px;display:flex}.topbar-eyebrow{font-size:var(--font-size-min);color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.editor-topbar h1{margin-top:1px;font-size:1rem;font-weight:600}.editor-title-stack{flex-direction:column;gap:6px;min-width:220px;display:flex}.editor-section-tabs{background:#f8fafc;border:1px solid #dbe7f4;border-radius:8px;align-items:center;gap:4px;width:fit-content;padding:3px;display:inline-flex}.editor-section-tab{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:6px;min-height:28px;padding:4px 10px;font-family:inherit;font-size:.75rem;font-weight:700}.editor-section-tab-active{color:#1d4ed8;background:#fff;box-shadow:0 1px 2px #0f172a14}.topbar-actions{align-items:center;gap:8px;display:flex}.editor-three-col{flex:1;grid-template-columns:220px 1fr 300px;gap:0;min-height:0;display:grid;overflow:hidden}.editor-three-col.preview-collapsed,.editor-three-col-assets{grid-template-columns:220px minmax(0,1fr)}.assets-nav-side{background:#f8fafc}.assets-nav-list{gap:6px;padding:12px;display:grid}.assets-nav-item{text-align:left;color:#475569;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:7px;align-items:center;min-height:34px;padding:7px 10px;font-family:inherit;font-size:.8125rem;font-weight:700;display:flex}.assets-nav-item-active{color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe}.assets-nav-item[aria-current=page]{cursor:default}.side-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.side-header h3{font-size:.8125rem;font-weight:600}.panel-badge{font-size:var(--font-size-min);color:#166534;background:#dcfce7;border-radius:999px;padding:2px 7px;font-weight:500}.status-badge{border:1px solid var(--border);color:var(--muted);white-space:nowrap;background:#f8fafc;border-radius:999px;align-items:center;gap:4px;padding:4px 10px;font-size:.75rem;display:inline-flex}.status-badge-success{color:#166534;background:#f0fdf4;border-color:#bbf7d0}.status-badge-warning{color:#92400e;background:#fffbeb;border-color:#fde68a}.status-badge-danger{color:#b91c1c;background:#fef2f2;border-color:#fecaca}.status-badge-info{color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe}.palette-side{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;min-height:0;display:flex;overflow:hidden}.demo-gallery{flex-direction:column;flex:1;gap:10px;padding:12px;display:flex;overflow-y:auto}.demo-gallery-intro{font-size:var(--font-size-min);color:var(--muted);line-height:1.5}.demo-list{flex-direction:column;gap:8px;list-style:none;display:flex}.demo-card{text-align:left;border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:8px;flex-direction:column;gap:6px;width:100%;padding:10px 12px;transition:border-color .12s,box-shadow .12s;display:flex}.demo-card:hover{border-color:#93c5fd;box-shadow:0 2px 8px #2563eb14}.demo-card-active{background:#eff6ff;border-color:#2563eb}.demo-card-title{color:var(--text);font-size:.8125rem;font-weight:600}.demo-card-desc{font-size:var(--font-size-min);color:var(--muted);line-height:1.45}.demo-card-tags{flex-wrap:wrap;gap:4px;display:flex}.demo-tag{font-size:var(--font-size-min);color:#64748b;background:#f1f5f9;border-radius:999px;padding:2px 6px}.demo-card-active .demo-tag{color:#1d4ed8;background:#dbeafe}.palette-hint{font-size:var(--font-size-min);color:var(--muted)}.palette-search{border-bottom:1px solid var(--border);background:#fff;flex-shrink:0;padding:8px 10px 10px}.palette-search-control{width:100%}.palette-search-control .text-input{min-height:30px;font-size:var(--font-size-min);padding-top:6px;padding-bottom:6px}.palette-search-count{color:var(--muted);font-size:var(--font-size-min);margin-top:5px;line-height:1;display:block}.palette-scroll{overscroll-behavior:contain;flex:1;min-height:0;padding:10px 12px 16px;overflow-y:auto}.field-group{margin-bottom:14px}.group-title{font-size:var(--font-size-min);color:var(--muted);margin-bottom:6px;font-weight:600}.group-blue{color:#2563eb}.group-orange{color:#ea580c}.group-green{color:#16a34a}.group-slate{color:#64748b}.group-teal{color:#0f766e}.group-violet{color:#7c3aed}.field-list{flex-direction:column;gap:4px;display:flex}.field-item{text-align:left;border:1px solid var(--border);cursor:pointer;background:#f8fafc;border-radius:6px;align-items:center;gap:6px;padding:6px 10px;font-size:.75rem;transition:all .12s;display:flex}.field-item span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.field-drag-icon{opacity:.5}.field-blue:hover{color:#1d4ed8;background:#eff6ff;border-color:#93c5fd}.field-orange:hover{color:#c2410c;background:#fff7ed;border-color:#fdba74}.field-green:hover{color:#15803d;background:#f0fdf4;border-color:#86efac}.field-slate:hover{background:#f1f5f9;border-color:#cbd5e1}.field-teal:hover{color:#0f766e;background:#f0fdfa;border-color:#5eead4}.field-violet:hover{color:#6d28d9;background:#f5f3ff;border-color:#c4b5fd}.palette-empty{min-height:120px;color:var(--muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:5px;font-size:.75rem;display:flex}.palette-empty .lucide-icon{color:#94a3b8}.palette-empty span{color:var(--text);font-weight:600}.palette-empty small{max-width:150px;line-height:1.4}.editor-canvas{background:#fafbfc;flex-direction:column;min-height:0;display:flex;overflow:hidden}.asset-config-canvas{overflow-y:auto}.asset-config-canvas .insight-assets-panel{margin:16px}.canvas-toolbar-mini{border-bottom:1px solid var(--border);background:var(--surface);align-items:center;gap:6px;padding:8px 16px;display:flex}.mini-btn{border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:4px;justify-content:center;align-items:center;width:28px;height:28px;font-size:.75rem;display:inline-flex}.canvas-hint{font-size:var(--font-size-min);color:var(--muted);margin-left:8px}.insight-assets-panel{background:#fff;border:1px solid #dbe7f4;border-radius:8px;margin:12px 16px 0;padding:12px}.insight-assets-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px;display:flex}.insight-assets-heading{flex-direction:column;gap:8px;min-width:0;display:flex}.insight-assets-title{color:#334155;align-items:center;gap:6px;font-size:.75rem;font-weight:700;display:inline-flex}.insight-assets-title .lucide-icon{color:#2563eb}.insight-assets-summary{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.insight-assets-tabs{background:#f8fafc;border:1px solid #dbe7f4;border-radius:8px;align-items:center;gap:4px;padding:3px;display:inline-flex}.insight-assets-tab{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:6px;min-height:32px;padding:6px 10px;font-family:inherit;font-size:.75rem;font-weight:700;display:inline-flex}.insight-assets-tab-active{color:#1d4ed8;background:#fff;box-shadow:0 1px 2px #0f172a14}.insight-assets-tab .status-badge{min-height:18px;padding:1px 5px}.insight-recommend-control{color:var(--muted);font-size:var(--font-size-min);align-items:center;gap:8px;font-weight:600;display:flex}.insight-recommend-control .select-input{min-width:112px}.insight-assets-body{gap:10px;display:grid}.insight-assets-body-display{grid-template-columns:minmax(240px,.8fr) minmax(320px,1.2fr)}.insight-assets-body-list{flex-direction:column;gap:12px;display:flex}.insight-assets-body-text{grid-template-columns:minmax(220px,.9fr) minmax(280px,1.1fr)}.insight-assets-body-charts{grid-template-columns:260px minmax(0,1fr);align-items:start}.insight-assets-grid{grid-template-columns:minmax(180px,.95fr) minmax(220px,1fr) minmax(260px,1.2fr);gap:10px;display:grid}.insight-asset-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;flex-direction:column;gap:8px;min-width:0;padding:10px;display:flex}.insight-asset-card-title{color:#334155;align-items:center;gap:6px;font-size:.75rem;font-weight:700;display:flex}.insight-asset-card-title .status-badge{margin-left:auto}.insight-asset-form-card{justify-content:flex-start}.insight-asset-field{color:#475569;gap:6px;font-size:.75rem;font-weight:700;display:grid}.insight-asset-text-card p,.insight-asset-text-card small{color:#334155;-webkit-box-orient:vertical;min-width:0;margin:0;line-height:1.45;display:-webkit-box;overflow:hidden}.insight-asset-text-card p{-webkit-line-clamp:2;font-size:.8125rem;font-weight:700}.insight-asset-text-card small{-webkit-line-clamp:2;color:#64748b;font-size:var(--font-size-min)}.insight-asset-picker{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;display:grid}.insight-asset-picker-compact{min-width:min(500px,100%)}.insight-asset-create-actions{justify-content:flex-end;align-items:center;gap:8px;min-width:min(720px,100%);display:flex}.insight-asset-create-actions .btn{white-space:nowrap;flex:none;min-width:112px}.insight-asset-list-toolbar{background:#fff;border:1px solid #e2e8f0;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:12px;display:flex}.insight-asset-list-toolbar>div:first-child{gap:3px;min-width:0;display:grid}.insight-asset-list-toolbar strong{color:#0f172a;font-size:.875rem}.insight-asset-list-toolbar>div:first-child span{color:#64748b;font-size:.75rem}.insight-asset-chip-list,.chart-output-field-list{flex-wrap:wrap;gap:6px;display:flex}.insight-asset-chip,.chart-output-field{color:#334155;max-width:100%;min-height:24px;font-size:var(--font-size-min);background:#fff;border:1px solid #cbd5e1;border-radius:999px;align-items:center;gap:5px;padding:3px 7px;font-weight:600;display:inline-flex}.chart-output-field small{color:#64748b;min-width:0;font-size:.68rem;font-weight:600}.insight-asset-chip>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.insight-asset-chip button,.insight-chart-ref button{color:#64748b;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.insight-asset-empty{color:#64748b;font-size:var(--font-size-min)}.insight-chart-ref-list{gap:6px;display:grid}.insight-chart-asset-list{grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:12px;display:grid}.insight-chart-asset-list .insight-asset-empty-panel{grid-column:1/-1}.insight-chart-asset-card{min-height:414px}.insight-chart-asset-card-preview .chart-preview-canvas,.insight-chart-asset-card-preview .chart-preview-empty,.insight-chart-asset-card-preview .chart-preview-table-wrap{height:184px;min-height:184px}.insight-chart-asset-card .chart-template-card-title p{-webkit-line-clamp:2}.insight-chart-asset-card .chart-template-output-list{min-height:24px}.insight-chart-asset-row{background:#fff;border:1px solid #dbeafe;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;min-width:0;padding:12px;display:grid}.insight-chart-asset-main{gap:5px;min-width:0;display:grid}.insight-chart-asset-main strong{color:#0f172a;align-items:center;gap:6px;min-width:0;font-size:.875rem;display:inline-flex}.insight-chart-asset-main strong span,.insight-chart-asset-main>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.insight-chart-asset-main>span{color:#64748b;font-size:.75rem}.insight-chart-asset-actions{justify-content:flex-end;align-items:center;gap:6px;display:flex}.insight-chart-asset-actions .select-input{width:260px}.insight-chart-asset-edit{grid-template-columns:minmax(160px,220px) minmax(180px,260px) auto auto;align-items:center;gap:6px;display:grid}.insight-chart-asset-edit .text-input,.insight-chart-asset-edit .select-input{width:100%;min-width:0}.insight-chart-asset-drawer{background:#f8fafc;width:clamp(1180px,86vw,1680px)}.insight-chart-asset-drawer .insight-chart-editor{border:none;border-radius:12px 0 0 12px;height:100vh;min-height:0}.insight-chart-asset-drawer .insight-chart-editor-topbar{padding:14px 16px}.insight-chart-asset-drawer .insight-chart-editor-grid{grid-template-columns:clamp(260px,18vw,340px) minmax(520px,1fr) clamp(320px,22vw,420px)}.insight-chart-asset-drawer .chart-preview-workspace .chart-preview-canvas,.insight-chart-asset-drawer .chart-preview-workspace .chart-preview-table-wrap,.insight-chart-asset-drawer .chart-preview-workspace .chart-preview-empty{height:clamp(440px,54vh,680px);min-height:440px}.insight-metric-asset-list{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px;display:grid}.insight-metric-asset-search{flex:0 240px;width:min(240px,100%)}.insight-metric-asset-list .insight-asset-empty-panel{grid-column:1/-1}.insight-metric-asset-card{cursor:pointer;min-height:0}.chart-template-card.insight-metric-asset-card{min-height:0}.insight-metric-asset-card-preview-wrap{position:relative}.insight-metric-asset-card-quick-actions{background:#fffffff5;border:1px solid #e2e8f0;border-radius:8px;gap:4px;padding:4px;display:flex;position:absolute;top:8px;right:8px;box-shadow:0 4px 12px #0f172a14}.insight-metric-asset-card-quick-actions .btn{min-width:28px;padding-inline:8px}.insight-metric-asset-actions{justify-content:flex-end}.insight-metric-asset-card-preview{background:linear-gradient(#f8fafc 0%,#fff 100%);border-bottom:1px solid #e2e8f0;align-content:center;min-height:120px;display:grid}.insight-metric-asset-card-preview span,.insight-metric-asset-preview-card span{color:#64748b}.insight-metric-asset-card-preview strong,.insight-metric-asset-preview-card strong{color:#0f172a}.insight-metric-preview-empty{color:#94a3b8!important;font-size:.875rem!important;font-weight:600!important}.insight-metric-preview-error{align-items:center;gap:5px;display:inline-flex;color:#dc2626!important;font-size:.875rem!important;font-weight:700!important}.insight-metric-asset-drawer{width:min(920px,100vw - 32px);max-height:calc(100vh - 32px)}.insight-metric-asset-editor{flex-direction:column;height:100%;min-height:0;display:flex}.insight-metric-asset-editor-topbar{border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:flex-start;gap:12px;padding:14px 16px;display:flex}.insight-metric-asset-editor-topbar strong{color:#0f172a;font-size:.9375rem;display:block}.insight-metric-asset-editor-topbar span{color:#64748b;margin-top:2px;font-size:.75rem;display:block}.insight-metric-asset-editor-actions{align-items:center;gap:8px;display:flex}.insight-metric-asset-editor-grid{grid-template-columns:minmax(0,1.2fr) minmax(240px,.8fr);gap:16px;padding:16px;display:grid;overflow:auto}.insight-metric-asset-editor-form{gap:12px;display:grid}.insight-metric-asset-editor-note{color:#64748b;margin:0;font-size:.75rem;line-height:1.5}.insight-metric-asset-editor-preview{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;align-content:start;gap:10px;padding:14px;display:grid}.insight-metric-asset-editor-preview-head{color:#334155;align-items:center;gap:6px;font-size:.8125rem;display:inline-flex}.insight-metric-asset-preview-card{gap:var(--book-metric-gap,6px);background:#fff;border:1px solid #dbe7f4;border-radius:8px;padding:16px;display:grid}.insight-metric-asset-preview-card span{color:#64748b;font-weight:600}.insight-metric-asset-preview-card strong{color:#0f172a}.insight-metric-asset-editor-expression{color:#64748b;word-break:break-all;margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.6875rem;line-height:1.5}.form-field-error{color:#dc2626;margin:4px 0 0;font-size:.75rem}.insight-chart-ref-list-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.insight-chart-ref{background:#fff;border:1px solid #dbeafe;border-radius:7px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0;padding:7px 8px;display:grid}.insight-chart-ref-card{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:10px;padding:10px}.insight-chart-ref div{gap:2px;min-width:0;display:grid}.insight-chart-ref strong,.insight-chart-ref span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.insight-chart-ref strong{color:#1e293b;font-size:.75rem}.insight-chart-ref span{color:#64748b;font-size:var(--font-size-min)}.insight-chart-output-list{flex-wrap:wrap;grid-column:1/-1;gap:6px;display:flex}.insight-asset-empty-panel{color:#64748b;border:1px dashed #cbd5e1;border-radius:8px;justify-content:center;align-items:center;min-height:88px;font-size:.75rem;display:flex}.insight-chart-editor{background:#f8fafc;border:1px solid #dbe7f4;border-radius:8px;grid-template-rows:auto minmax(0,1fr);min-height:calc(100vh - 190px);display:grid;overflow:hidden}.insight-chart-editor-topbar{background:#fff;border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.insight-chart-editor-title{align-items:center;gap:10px;min-width:0;display:flex}.insight-chart-editor-title>div{gap:4px;min-width:240px;display:grid}.insight-chart-editor-title span{color:#64748b;font-size:var(--font-size-min);font-weight:700}.insight-chart-editor-title .text-input{height:32px;font-size:.875rem;font-weight:700}.insight-chart-editor-actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.insight-chart-editor-grid{grid-template-columns:260px minmax(420px,1fr) 320px;min-height:0;display:grid;overflow:hidden}.chart-field-pool,.chart-inspector{background:#fff;min-width:0;min-height:0;overflow-y:auto}.chart-field-pool{border-right:1px solid #e2e8f0;overflow-x:hidden}.chart-field-pool-head{border-bottom:1px solid #f1f5f9;gap:2px;padding:12px;display:grid}.chart-field-pool-head strong{color:#0f172a;font-size:.8125rem}.chart-field-pool-head span{color:#64748b;font-size:var(--font-size-min)}.chart-field-search{width:auto;min-width:0;margin:10px 12px 8px}.chart-field-groups{gap:12px;min-width:0;padding:0 12px 14px;display:grid}.chart-field-group{gap:6px;min-width:0;display:grid}.chart-field-group h4{color:#475569;font-size:var(--font-size-min);margin:0;font-weight:800}.chart-field-list{gap:6px;display:grid}.chart-field-pill{color:#334155;text-align:left;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-left-width:3px;border-radius:7px;gap:2px;min-width:0;padding:7px 8px;font-family:inherit;display:grid}.chart-field-pill:hover{background:#f8fbff;border-color:#bfdbfe}.chart-field-pill span,.chart-field-pill small{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.chart-field-pill span{font-size:.75rem;font-weight:800}.chart-field-pill small{color:#64748b;font-size:var(--font-size-min)}.chart-field-pill-dimension{border-left-color:#2563eb}.chart-field-pill-metric{border-left-color:#0f766e}.chart-field-pill-calculation{border-left-color:#7c3aed}.chart-field-pill-output{border-left-color:#f59e0b}.chart-preview-workspace{background:#f8fafc;flex-direction:column;gap:10px;min-width:0;min-height:0;padding:14px;display:flex;overflow-y:auto}.chart-preview-workspace .chart-preview-canvas,.chart-preview-workspace .chart-preview-table-wrap,.chart-preview-workspace .chart-preview-empty{height:clamp(340px,42vh,520px);min-height:340px}.chart-validation-list{flex-wrap:wrap;gap:6px;display:flex}.chart-validation-list span{color:#92400e;min-height:24px;font-size:var(--font-size-min);background:#fffbeb;border:1px solid #fde68a;border-radius:999px;align-items:center;gap:5px;padding:3px 8px;font-weight:700;display:inline-flex}.chart-inspector{border-left:1px solid #e2e8f0}.chart-context-panel{background:#fff;border:1px solid #dbe7f4;border-radius:8px;gap:10px;padding:12px;display:grid}.chart-preview-context-panel{align-content:start}.chart-context-title{color:#0f172a;align-items:center;gap:6px;font-size:.8125rem;font-weight:800;display:inline-flex}.chart-context-title .lucide-icon{color:#2563eb}.chart-context-note{color:#64748b;font-size:var(--font-size-min);margin:0;line-height:1.5}.chart-inspector-tabs{z-index:1;background:#fff;border-bottom:1px solid #e2e8f0;gap:2px;padding:8px 10px 0;display:flex;position:sticky;top:0}.chart-inspector-tab{color:#64748b;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1 1 0;min-height:32px;font-family:inherit;font-size:.75rem;font-weight:800}.chart-inspector-tab-active{color:#1d4ed8;border-bottom-color:#2563eb}.chart-inspector-body{gap:12px;padding:12px;display:grid}.chart-slot-list{gap:8px;display:grid}.chart-slot-settings,.chart-filter-builder{background:#f8fbff;border:1px solid #dbeafe;border-radius:8px;gap:10px;padding:10px;display:grid}.chart-slot-settings-head,.chart-filter-builder-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.chart-slot-settings-head strong,.chart-filter-builder-head strong{color:#0f172a;font-size:.75rem;font-weight:800}.chart-slot-settings-head span,.chart-slot-settings-empty,.chart-filter-empty{color:#64748b;font-size:var(--font-size-min);line-height:1.45}.chart-filter-list{gap:8px;display:grid}.chart-filter-row{grid-template-columns:minmax(0,1fr) 94px minmax(0,1fr) 30px;align-items:center;gap:6px;display:grid}.chart-filter-row .select-input,.chart-filter-row .text-input{min-width:0}.chart-filter-remove{color:#dc2626;cursor:pointer;background:#fff;border:1px solid #fecaca;border-radius:6px;justify-content:center;align-items:center;width:30px;height:30px;display:inline-flex}.chart-slot-card{background:#f8fbff;border:1px solid #dbeafe;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;min-width:0;display:grid}.dataset-manager-grid{grid-template-columns:300px minmax(0,1fr);gap:14px;min-height:0;padding:14px;display:grid}.dataset-list-panel,.dataset-detail-panel,.dataset-section{min-width:0}.dataset-list-panel{align-content:start;gap:10px;display:grid}.dataset-toolbar{padding:10px}.dataset-list{gap:8px;display:grid}.dataset-list-item{color:#334155;cursor:pointer;text-align:left;background:#fff;border:1px solid #dbe7f4;border-radius:8px;gap:4px;min-width:0;padding:11px 12px;font-family:inherit;display:grid}.dataset-list-item-active{background:#eff6ff;border-color:#60a5fa;box-shadow:0 0 0 1px #60a5fa33}.dataset-list-item strong,.dataset-list-item span,.dataset-list-item small{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.dataset-list-item strong{color:#0f172a;font-size:.8125rem}.dataset-list-item span,.dataset-list-item small{color:#64748b;font-size:var(--font-size-min)}.dataset-detail-panel{gap:14px;display:grid}.dataset-section{background:#fff;border:1px solid #dbe7f4;border-radius:8px;gap:12px;padding:14px;display:grid}.dataset-section-head,.dataset-section-actions,.dataset-field-editor-actions{justify-content:space-between;align-items:center;gap:10px;display:flex}.dataset-section-head>div{gap:3px;min-width:0;display:grid}.dataset-section-head strong{color:#0f172a;font-size:.875rem}.dataset-section-head span{color:#64748b;font-size:var(--font-size-min)}.dataset-form-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.dataset-field-table-wrap,.dataset-preview-table-wrap{border:1px solid #e2e8f0;border-radius:8px;overflow:auto}.dataset-field-table,.dataset-preview-table{border-collapse:collapse;background:#fff;width:100%;min-width:760px;font-size:.75rem}.dataset-field-table th,.dataset-field-table td,.dataset-preview-table th,.dataset-preview-table td{color:#334155;text-align:left;vertical-align:top;border-bottom:1px solid #eef2f7;padding:9px 10px}.dataset-field-table th,.dataset-preview-table th{color:#64748b;background:#f8fafc;font-weight:700}.dataset-field-table td:first-child{gap:2px;display:grid}.dataset-field-table td:first-child strong{color:#0f172a}.dataset-field-table td:first-child span{color:#64748b;font-size:var(--font-size-min)}.dataset-field-table td:last-child{gap:6px;display:flex}.dataset-field-status-cell{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.dataset-field-modal-backdrop{z-index:230;justify-content:flex-end;align-items:stretch;padding:0}.dataset-field-modal{border:1px solid var(--border);border-right:none;border-radius:10px 0 0 10px;flex-direction:column;width:clamp(440px,30vw,560px);height:100vh;max-height:100vh;animation:.16s ease-out drawer-slide-in;display:flex;box-shadow:-20px 0 48px #0f172a33}.dataset-field-modal-body{flex:auto;min-height:0;overflow:auto}.dataset-field-modal-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.dataset-field-modal-grid .form-field:nth-last-child(2){grid-column:1/-1}.dataset-field-modal-footer{flex:none;justify-content:flex-end}.dataset-rebind-panel{gap:10px}.dataset-rebind-list{gap:8px;max-height:280px;display:grid;overflow:auto}.dataset-rebind-item{background:#f8fbff;border:1px solid #dbeafe;border-radius:8px;gap:4px;padding:10px;display:grid}.dataset-rebind-item strong{color:#0f172a;font-size:.78rem}.dataset-rebind-item span,.dataset-rebind-preview span{color:#64748b;overflow-wrap:anywhere;font-size:.72rem;line-height:1.6}.dataset-rebind-preview{background:#f8fbff;border:1px solid #dbeafe;border-radius:8px;gap:6px;padding:12px;display:grid}.dataset-rebind-preview strong{color:#0f172a;font-size:.78rem}@media (width<=720px){.dataset-field-modal-backdrop{align-items:stretch;padding:0}.dataset-field-modal{border-left:none;border-radius:0;width:100%;height:100vh;max-height:100vh}.dataset-field-modal-grid{grid-template-columns:minmax(0,1fr)}.dataset-field-modal-grid .form-field:nth-last-child(2){grid-column:auto}}.dataset-preview-empty{color:#64748b;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:8px;justify-content:center;align-items:center;min-height:96px;font-size:.75rem;display:flex}.chart-slot-card-active{border-color:#60a5fa;box-shadow:0 0 0 1px #60a5fa33}.chart-slot-card-main{color:#334155;text-align:left;cursor:pointer;background:0 0;border:none;gap:3px;min-width:0;padding:9px 10px;font-family:inherit;display:grid}.chart-slot-card-main span,.chart-slot-card-main strong,.chart-slot-card-main small{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.chart-slot-card-main span{color:#64748b;font-size:var(--font-size-min);font-weight:800}.chart-slot-card-main strong{color:#0f172a;font-size:.8125rem}.chart-slot-card-main small{color:#64748b;font-size:var(--font-size-min)}.chart-slot-clear{color:#64748b;cursor:pointer;background:#fff;border:none;border-left:1px solid #dbeafe;width:32px}.chart-json-preview{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;gap:8px;min-width:0;padding:10px;display:grid}.chart-json-preview strong{color:#334155;font-size:.75rem}.chart-json-preview code{color:#475569;max-height:240px;font-size:var(--font-size-min);white-space:pre;line-height:1.45;overflow:auto}.canvas-doc{flex-direction:column;flex:1;gap:8px;padding:14px 22px 24px;display:flex;overflow-y:auto}.canvas-empty{min-height:240px;color:var(--muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;font-size:.875rem;display:flex}.paragraph-line{background:var(--surface);cursor:text;border:1px solid #d8e2ee;border-radius:8px;margin-bottom:0;padding:9px 14px 10px;font-size:.9375rem;line-height:1.65;box-shadow:inset 3px 0 #cbd5e1}.block-content-grid{grid-template-columns:minmax(0,1fr) minmax(220px,280px);align-items:start;gap:14px;width:100%;display:grid}.block-text-cell{min-width:0}.block-view-cell{justify-content:flex-end;align-items:flex-start;gap:8px;min-width:0;display:flex}.scenario-card{background:var(--surface);border:1px solid var(--border);cursor:text;border-left:3px solid #94a3b8;border-radius:8px;margin-bottom:0;padding:10px 14px 11px}.scenario-card.block-active,.paragraph-line.block-active{background:#f0f7ff;border-color:#60a5fa;box-shadow:inset 3px 0 #60a5fa,0 0 0 1px #60a5fa33}.scenario-title{color:var(--muted);margin-bottom:8px;font-size:.8125rem;font-weight:600}.segment-line{font-size:.9375rem;line-height:1.65}.segment-row{cursor:text;flex-wrap:wrap;flex:auto;align-items:center;gap:4px 2px;min-width:0;min-height:1.45em;line-height:1.65;display:inline-flex}.text-segment{white-space:pre-wrap;cursor:text;outline:none;min-width:1ch;min-height:1.35em;display:inline-block}.text-segment[data-empty=true]{min-width:12ch}.text-segment[data-empty=true]:before{content:attr(data-placeholder);color:#94a3b8;pointer-events:none}.text-segment[data-empty=true]:focus:before{content:""}.text-segment:focus{background:#2563eb0f;border-radius:2px}.pill{cursor:pointer;vertical-align:middle;border:1.5px solid #0000;border-radius:999px;align-items:center;gap:4px;margin:0 2px;padding:2px 8px 2px 10px;font-size:.8125rem;font-weight:500;line-height:1.6;transition:box-shadow .12s,border-color .12s;display:inline-flex}.pill-blue{color:#1d4ed8;background:#dbeafe}.pill-green{color:#15803d;background:#dcfce7}.pill-orange{color:#c2410c;background:#ffedd5}.pill-purple{color:#6d28d9;background:#ede9fe}.pill-slate{color:#475569;background:#f1f5f9}.pill-selected{border-color:currentColor;box-shadow:0 0 0 2px #2563eb26}.pill-remove{color:inherit;opacity:.5;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0 2px;font-size:.875rem;line-height:1;display:inline-flex}.pill-remove:hover{opacity:1}.pill-grip{opacity:.45;cursor:grab;align-items:center;display:inline-flex}.pill-invalid{outline:2px solid #fca5a5}.pill-warn{color:#dc2626;background:#fef2f2;border-radius:50%;justify-content:center;align-items:center;width:14px;height:14px;display:inline-flex}.pill-compare-icon{opacity:.7}.pill-drop-target{box-shadow:0 0 0 2px #2563eb}.block-drag-over{outline-offset:2px;outline:2px dashed #93c5fd}.paragraph-line,.scenario-card{position:relative}.block-controls{border:1px solid var(--border);z-index:2;background:#fffffff0;border-radius:6px;gap:4px;padding:2px;display:none;position:absolute;top:6px;right:8px}.block-view-cell .block-controls{flex:none;position:static}.paragraph-line:hover .block-controls,.scenario-card:hover .block-controls,.paragraph-line.block-active .block-controls,.scenario-card.block-active .block-controls{display:flex}.block-tool{width:24px;height:24px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;font-size:.75rem;display:inline-flex}.block-tool:hover{color:var(--text);background:#f1f5f9}.block-tool:disabled{opacity:.35;cursor:not-allowed}.block-tool-danger:hover{color:#dc2626;background:#fef2f2}.chart-box{flex-direction:column;gap:4px;min-height:198px;display:flex}.chart-svg-frame{flex:1;min-width:0;min-height:150px}.trend-svg{width:100%;height:100%;display:block}.chart-box-empty{color:var(--muted);justify-content:center;align-items:center;font-size:.75rem;display:flex}.chart-data-status{color:var(--muted);font-size:var(--font-size-min);margin-top:4px}.trend-svg .bar{fill:#60a5fa;transition:fill .15s}.trend-svg .bar-selected{fill:#2563eb;filter:drop-shadow(0 2px 4px #2563eb4d)}.trend-svg .chart-grid-line{stroke:#e2e8f0;stroke-width:1px}.trend-svg .trend-line{stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round}.trend-svg .trend-line-primary{stroke:#2563eb}.trend-svg .trend-line-secondary{stroke:#10b981}.trend-svg .trend-area{fill:#2563eb24;stroke:none}.trend-svg .trend-dot{stroke:#fff;stroke-width:1.5px;cursor:pointer}.trend-svg .trend-dot-primary{fill:#2563eb}.trend-svg .trend-dot-secondary{fill:#10b981}.trend-svg .dot-selected{filter:drop-shadow(0 2px 4px #0f172a3d)}.trend-svg .axis-label{fill:#64748b;font-size:var(--font-size-min);font-weight:600}.trend-svg .bar-label{fill:#475569;font-size:var(--font-size-min);font-weight:600}.trend-svg .chart-axis-hit{cursor:pointer}.chart-legend{font-size:var(--font-size-min);color:var(--muted);flex-direction:column;gap:4px;padding:4px 0;display:flex}.chart-legend span{align-items:center;gap:6px;display:inline-flex}.chart-legend i{border-radius:999px;width:12px;height:3px;display:inline-block}.legend-bar{background:#60a5fa}.legend-line,.legend-line-secondary{background:#10b981}.legend-line-primary{background:#2563eb}.legend-selected{background:#94a3b8}.legend-waterfall-base{background:#64748b}.legend-waterfall-up{background:#2563eb}.legend-waterfall-down{background:#dc2626}.chart-box-ratio{grid-template-columns:minmax(0,1fr) 118px;align-items:center;gap:8px;min-height:198px;display:grid}.ratio-svg{min-width:0}.chart-box-ratio .chart-svg-frame{height:100%}.pie-slice-group{cursor:pointer;outline:none}.pie-slice{stroke:#fff;stroke-width:2px;transition:opacity .15s,filter .15s}.pie-slice-group:hover .pie-slice,.pie-slice-selected{filter:drop-shadow(0 3px 6px #0f172a2e);opacity:.92}.pie-label{fill:#475569;font-size:var(--font-size-min);pointer-events:none;font-weight:700}.donut-center text:first-child{fill:#64748b;font-size:var(--font-size-min);font-weight:600}.donut-center text:last-child{fill:#1e293b;font-size:.8125rem;font-weight:700}.chart-legend-ratio{max-height:176px;overflow:hidden}.waterfall-zero-line{stroke:#94a3b8;stroke-width:1px;stroke-dasharray:3 3}.waterfall-connector{stroke:#cbd5e1;stroke-width:1.2px;stroke-dasharray:3 3}.waterfall-bar{transition:opacity .15s,filter .15s}.waterfall-bar-selected{filter:drop-shadow(0 2px 4px #0f172a38);opacity:.92}.waterfall-label{fill:#475569;font-size:var(--font-size-min);font-weight:700}.chart-box-table{flex-direction:column;gap:8px;min-height:198px;display:flex}.trend-table{border-collapse:collapse;border:1px solid var(--border);width:100%;font-size:var(--font-size-min);background:#fff;border-radius:6px;overflow:hidden}.trend-table th,.trend-table td{text-align:right;white-space:nowrap;border-bottom:1px solid #eef2f7;padding:8px 9px}.trend-table th:first-child,.trend-table td:first-child{text-align:left}.trend-table th{color:#64748b;background:#f8fafc;font-weight:700}.trend-table tbody tr{cursor:pointer}.trend-table tbody tr:hover{background:#f8fafc}.trend-table tbody tr:focus{outline-offset:-2px;outline:2px solid #93c5fd}.trend-table-row-selected{color:#1d4ed8;background:#eff6ff;font-weight:700}.validation-bar{font-size:var(--font-size-min);border-bottom:1px solid var(--border);background:#fffbeb;gap:8px;padding:6px 12px;display:flex}.val-error{color:#dc2626}.val-warn{color:#d97706}.config-live-preview{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;padding:10px 12px;font-size:.75rem}.config-live-preview>span{color:#166534;margin-bottom:8px;font-weight:600;display:block}.config-preview-box{color:#14532d;font-size:1rem;line-height:1.7}.save-toast{color:#166534;background:#dcfce7;border-radius:999px;padding:4px 10px;font-size:.75rem}.save-status{border:1px solid var(--border);color:var(--muted);white-space:nowrap;background:#f8fafc;border-radius:999px;padding:4px 10px;font-size:.75rem}.save-status-dirty,.save-status-idle{color:#92400e;background:#fffbeb;border-color:#fde68a}.save-status-saving{color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe}.save-status-saved{color:#166534;background:#f0fdf4;border-color:#bbf7d0}.save-status-error,.save-status-offline{color:#b91c1c;background:#fef2f2;border-color:#fecaca}.preview-side{background:var(--surface);border-left:1px solid var(--border);flex-direction:column;min-height:0;display:flex;overflow:hidden}.preview-side-body{flex:1;padding:16px;font-size:.875rem;line-height:1.85;overflow-y:auto}.preview-side-body p{margin-bottom:.75em}.preview-side-body p:last-child{margin-bottom:0}.book-tone-positive{color:var(--book-color-positive,#16a34a)}.book-tone-negative{color:var(--book-color-negative,#dc2626)}.book-tone-neutral{color:var(--book-color-text-secondary,#64748b)}.book-tone-emphasis{font-weight:600}.validation-list{border-bottom:1px solid var(--border);background:#fff7ed;list-style:none}.validation-list button{color:#7c2d12;text-align:left;width:100%;font-size:var(--font-size-min);cursor:pointer;background:0 0;border:none;border-bottom:1px solid #ffedd5;align-items:flex-start;gap:6px;padding:7px 12px;line-height:1.4;display:flex}.validation-list button:hover{background:#ffedd5}.validation-dot{border-radius:50%;flex:none;width:7px;height:7px;margin-top:4px}.validation-dot-error{background:#dc2626}.validation-dot-warning{background:#d97706}.config-backdrop{z-index:200;background:#0f172a59;justify-content:flex-end;align-items:stretch;display:flex;position:fixed;inset:0}.config-modal{background:var(--surface);border-radius:12px;width:min(400px,92vw);overflow:hidden;box-shadow:-20px 0 48px #0f172a2e}.config-modal-workbench{border-radius:12px 0 0 12px;flex-direction:column;width:clamp(960px,70vw,1480px);max-width:100vw;height:100vh;max-height:100vh;animation:.16s ease-out drawer-slide-in;display:flex}@keyframes drawer-slide-in{0%{opacity:.96;transform:translate(24px)}to{opacity:1;transform:translate(0)}}@media (prefers-reduced-motion:reduce){.config-modal-workbench{animation:none}}.config-header{border-bottom:1px solid var(--border);flex:none;justify-content:space-between;align-items:center;gap:16px;padding:15px 18px;display:flex}.config-title{min-width:0}.config-header h3{font-size:.9375rem;font-weight:600}.config-title span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-top:3px;font-size:.75rem;display:block;overflow:hidden}.icon-btn{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.config-body{flex-direction:column;gap:12px;padding:16px 18px;display:flex}.config-workbench{background:#f8fafc;flex:auto;grid-template-columns:minmax(0,1fr) clamp(260px,18vw,300px);align-items:start;gap:16px;min-height:0;padding:16px 18px 18px;display:grid;overflow:hidden auto}.config-modal-workbench.chart-edit-modal{background:#f8fafc;width:clamp(1180px,86vw,1680px)}.chart-edit-modal .insight-chart-editor{border:none;border-radius:12px 0 0 12px;height:100vh;min-height:0}.chart-edit-modal .insight-chart-editor-topbar{padding:14px 16px}.chart-edit-modal .insight-chart-editor-grid{grid-template-columns:clamp(260px,18vw,340px) minmax(520px,1fr) clamp(320px,22vw,420px)}.chart-edit-modal .chart-preview-workspace .chart-preview-canvas,.chart-edit-modal .chart-preview-workspace .chart-preview-table-wrap,.chart-edit-modal .chart-preview-workspace .chart-preview-empty{height:clamp(440px,54vh,680px);min-height:440px}.config-workbench.chart-edit-workbench{grid-template-columns:minmax(360px,.68fr) minmax(620px,1.22fr);align-items:stretch}.chart-edit-modal .config-side{align-self:stretch}.chart-edit-modal .chart-preview-panel{min-height:min(70vh,680px)}.chart-edit-modal .chart-preview-canvas{height:min(58vh,610px);min-height:440px}.chart-edit-modal .chart-preview-table-wrap{min-height:440px}.config-main{flex-direction:column;gap:10px;min-width:0;max-height:none;padding:0;display:flex;overflow:visible}.config-side{background:0 0;border-left:none;flex-direction:column;align-self:start;gap:10px;min-width:0;max-height:none;padding:0;display:flex;position:sticky;top:0;overflow:visible}.config-section{border:1px solid var(--border);background:#fff;border-radius:8px;padding:12px}.config-section-compact{padding:10px 12px}.config-section-primary{border-color:#cbd5e1}.config-section-title,.config-panel-title{color:#334155;align-items:center;gap:6px;margin-bottom:10px;font-size:.75rem;font-weight:700;display:flex}.config-two-col{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;display:grid}.source-summary{border:1px solid var(--border);background:#f8fafc;border-radius:6px;flex-direction:column;justify-content:center;gap:3px;min-width:0;min-height:60px;padding:8px 10px;display:flex}.source-summary-head{color:var(--muted);font-size:var(--font-size-min);justify-content:space-between;align-items:center;gap:8px;font-weight:600;display:flex}.source-summary-head span:last-child{color:#1d4ed8;background:#eff6ff;border:1px solid #dbeafe;border-radius:999px;flex:none;padding:1px 6px;font-weight:500}.source-summary strong,.source-summary code{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.source-summary strong{color:#334155;font-size:.8125rem}.source-summary code{color:#64748b;font-family:IBM Plex Mono,monospace;font-size:var(--font-size-min)}.purpose-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid}.purpose-card{border:1px solid var(--border);min-height:50px;color:var(--text);text-align:left;cursor:pointer;background:#f8fafc;border-radius:8px;flex-direction:column;justify-content:center;gap:2px;padding:7px 9px;font-family:inherit;display:flex}.purpose-card strong{font-size:.8125rem;font-weight:700}.purpose-card span{color:var(--muted);font-size:var(--font-size-min);text-overflow:ellipsis;white-space:nowrap;line-height:1.35;overflow:hidden}.purpose-card:hover{background:#eff6ff;border-color:#93c5fd}.purpose-card-active{background:#eff6ff;border-color:#2563eb;box-shadow:0 0 0 1px #2563eb1f}.form-field{flex-direction:column;gap:4px;min-width:0;font-size:.75rem;display:flex}.form-field-label{color:var(--muted);font-weight:500}.form-field-hint,.form-field-error{font-size:var(--font-size-min);line-height:1.4}.form-field-hint{color:var(--muted)}.form-field-error{color:#dc2626}fieldset.form-field{border:none;margin:0;padding:0}.text-input,.select-input,.textarea-input{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:6px;min-width:0;padding:7px 10px;font-family:inherit;font-size:.8125rem}.text-input[aria-invalid=true],.textarea-input[aria-invalid=true]{border-color:#fca5a5;box-shadow:0 0 0 2px #dc262614}.text-input[readonly],.textarea-input[readonly]{color:#475569;background:#f8fafc}.textarea-input{resize:vertical;min-height:112px;line-height:1.55}.expression-layout{flex-direction:column;gap:12px;display:flex}.expression-editor{min-width:0}.formula-textarea{resize:none;width:100%;min-height:82px;overflow:hidden}.formula-assist{border:1px solid var(--border);background:#f8fafc;border-radius:8px;flex-direction:column;gap:10px;min-width:0;padding:10px;display:flex}.formula-assist-row{background:#fff;border:1px solid #e2e8f0;border-radius:8px;flex-direction:column;align-items:stretch;gap:6px;min-width:0;padding:7px;display:flex}.formula-assist-row>span{color:var(--muted);font-size:var(--font-size-min);font-weight:600}.formula-assist-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.formula-assist-head>span{color:var(--muted);font-size:var(--font-size-min);font-weight:600}.formula-field-search{width:180px;height:30px;font-size:var(--font-size-min);padding:4px 8px}.formula-group-tabs{flex-wrap:wrap;gap:4px;padding-bottom:1px;display:flex;overflow-x:visible}.formula-group-tab{border:1px solid var(--border);color:#64748b;min-height:26px;font-family:inherit;font-size:var(--font-size-min);cursor:pointer;white-space:nowrap;background:#fff;border-radius:999px;flex:0 auto;padding:3px 8px}.formula-group-tab:hover,.formula-group-tab-active{color:#1d4ed8;background:#eff6ff;border-color:#93c5fd}.formula-field-list{grid-template-columns:repeat(auto-fit,minmax(136px,1fr));gap:4px;max-height:none;display:grid;overflow:visible}.formula-field-option{border:1px solid var(--border);color:#334155;text-align:left;cursor:pointer;background:#fff;border-radius:7px;grid-template-columns:minmax(0,1fr);gap:1px;width:100%;min-height:42px;padding:6px 7px;font-family:inherit;display:grid}.formula-field-option:hover{background:#eff6ff;border-color:#93c5fd}.formula-field-option>span{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.formula-field-option strong,.formula-field-option small,.formula-field-option code{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.formula-field-option strong{font-size:.75rem;font-weight:600}.formula-field-option small{color:#64748b;max-width:74px;font-size:var(--font-size-min);flex:none}.formula-field-option code{color:#64748b;font-family:IBM Plex Mono,monospace;font-size:var(--font-size-min)}.formula-assist-row .token-list{grid-template-columns:repeat(auto-fit,minmax(72px,max-content));gap:6px;display:grid}.formula-assist-row .token-chip{min-width:64px;min-height:30px;padding:5px 7px}.token-list{flex-wrap:wrap;gap:6px;display:flex}.token-chip{border:1px solid var(--border);color:#334155;font-family:inherit;font-size:var(--font-size-min);cursor:pointer;background:#fff;border-radius:999px;padding:3px 7px}.token-chip:hover{color:#1d4ed8;background:#eff6ff;border-color:#93c5fd}.token-chip-code{font-family:IBM Plex Mono,monospace}.token-empty{color:var(--muted);font-size:var(--font-size-min)}.field-expression-check{color:#166534;width:fit-content;font-size:var(--font-size-min);background:#f0fdf4;border:1px solid #bbf7d0;border-radius:999px;align-items:center;gap:6px;padding:4px 8px;font-weight:600;display:inline-flex}.field-expression-check-error{color:#dc2626;background:#fef2f2;border-color:#fecaca}.radio-group{flex-flow:wrap;gap:6px;display:flex}.radio-row{border:1px solid var(--border);cursor:pointer;background:#f8fafc;border-radius:999px;align-items:center;gap:6px;min-height:30px;padding:4px 8px;font-size:.8125rem;display:flex}.radio-row:has(input:checked){color:#1d4ed8;background:#eff6ff;border-color:#93c5fd}.config-check-row{color:#334155;cursor:pointer;align-items:center;gap:7px;margin-top:8px;font-size:.8125rem;display:inline-flex}.config-check-row-disabled{opacity:.45;cursor:not-allowed}.config-formula{background:#f8fafc;border-radius:6px;padding:10px 12px;font-size:.75rem}.config-formula span{color:var(--muted);margin-bottom:4px;display:block}.config-formula code{font-family:IBM Plex Mono,monospace;font-size:var(--font-size-min);word-break:break-all;color:#334155}.config-panel{border:1px solid var(--border);background:#fff;border-radius:8px;padding:10px 12px}.config-panel .btn{margin-top:10px}.config-display-panel{flex-direction:column;gap:8px;display:flex}.config-display-panel .config-panel-title{margin-bottom:0}.config-side-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.config-display-panel .radio-group{gap:5px}.config-display-panel .radio-row{min-height:28px;padding:3px 7px;font-size:.75rem}.config-display-panel .config-check-row{margin-top:0}.config-panel code{color:#334155;max-height:none;font-family:IBM Plex Mono,monospace;font-size:var(--font-size-min);word-break:break-word;background:#f8fafc;border-radius:6px;padding:8px;line-height:1.55;display:block;overflow:visible}.validation-mini-list{flex-direction:column;gap:6px;list-style:none;display:flex}.validation-mini-list li{color:#475569;padding-left:13px;font-size:.75rem;line-height:1.45;position:relative}.validation-mini-list li:before{content:"";background:#94a3b8;border-radius:50%;width:6px;height:6px;position:absolute;top:.5em;left:0}.validation-mini-success{color:#166534!important}.validation-mini-warning{color:#92400e!important}.validation-mini-error{color:#b91c1c!important}.validation-mini-success:before{background:#22c55e!important}.validation-mini-warning:before{background:#f59e0b!important}.validation-mini-error:before{background:#ef4444!important}.reference-list{flex-wrap:wrap;gap:6px;display:flex}.config-inline-refs{border-top:1px solid #f1f5f9;grid-template-columns:max-content minmax(0,1fr);align-items:start;gap:6px;margin-top:8px;padding-top:8px;display:grid}.config-inline-refs>span{color:var(--muted);font-size:var(--font-size-min);font-weight:600;line-height:1.8}.reference-list span{overflow-wrap:anywhere;color:#475569;max-width:100%;font-family:IBM Plex Mono,monospace;font-size:var(--font-size-min);background:#f8fafc;border:1px solid #e2e8f0;border-radius:999px;padding:3px 7px}.config-footer{border-top:1px solid var(--border);background:#fafbfc;flex:none;justify-content:space-between;align-items:center;gap:8px;padding:12px 18px;display:flex}.config-footer-actions{gap:8px;margin-left:auto;display:flex}.config-footer-actions-left{flex-wrap:wrap;align-items:center;gap:8px;display:flex}@media (width<=1040px){.config-modal-workbench{border-radius:0;width:100vw;height:100vh;max-height:100vh}.config-workbench{grid-template-columns:minmax(0,1fr)}.config-side{position:static}.config-two-col{grid-template-columns:minmax(0,1fr)}.purpose-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=560px){.purpose-grid{grid-template-columns:minmax(0,1fr)}.config-workbench{padding:12px}.config-side-fields,.formula-field-list{grid-template-columns:minmax(0,1fr)}.formula-assist-head{flex-direction:column;align-items:stretch}.formula-field-search{width:100%}.config-footer{flex-direction:column-reverse;align-items:stretch}.config-footer-actions,.config-footer-actions-left{justify-content:flex-end;width:100%}}.drop-zone{vertical-align:middle;border-radius:2px;width:3px;height:1.4em;margin:0 1px;transition:width .12s,background .12s;display:inline-block}.drop-zone-active{background:#2563eb;width:6px;box-shadow:0 0 6px #2563eb80}.segment-line{flex-wrap:wrap;align-items:center;display:flex}.paragraph-line{flex-direction:column;align-items:flex-start;display:flex}.paragraph-line>.segment-row{flex:none;width:100%}.pill-compare{border-style:dashed}.pill-action{color:inherit;opacity:.45;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0 2px;font-size:.75rem;line-height:1;display:inline-flex}.pill-action:hover{opacity:1}.chart-ref,.chart-ref-icon{vertical-align:-.08em;display:inline-flex}.history-timeline{position:relative}.history-timeline:hover .history-dropdown,.history-timeline:focus-within .history-dropdown{display:block}.history-dropdown{background:var(--surface);border:1px solid var(--border);z-index:50;border-radius:8px;width:280px;max-height:320px;margin-top:6px;display:none;position:absolute;top:100%;right:0;overflow-y:auto;box-shadow:0 12px 32px #0000001f}.history-dropdown-head{font-size:var(--font-size-min);color:var(--muted);border-bottom:1px solid var(--border);background:var(--surface);padding:8px 12px;position:sticky;top:0}.history-list{border:none;border-radius:0}.export-wrap{position:relative}.export-backdrop,.popover-backdrop{z-index:40;position:fixed;inset:0}.action-list{border:1px solid var(--border);border-radius:6px;list-style:none;overflow:hidden}.action-list-row{border-bottom:1px solid #f1f5f9;align-items:stretch;display:flex}.action-list-row:last-child{border-bottom:none}.action-list-row-active{background:#eff6ff}.action-list-btn{cursor:pointer;text-align:left;color:var(--text);background:0 0;border:none;flex-direction:column;flex:1;align-items:flex-start;padding:8px 10px;font-size:.75rem;display:flex}.action-list-btn:hover{background:#f8fafc}.action-list-title{color:var(--text);font-size:.75rem;font-weight:500}.action-list-meta,.action-list-preview{font-size:var(--font-size-min);color:var(--muted);margin-top:2px;line-height:1.4}.action-list-preview{font-size:var(--font-size-min)}.export-panel{background:var(--surface);border:1px solid var(--border);z-index:50;border-radius:10px;width:360px;margin-top:6px;padding:16px;position:absolute;top:100%;right:0;box-shadow:0 12px 32px #0000001f}.export-panel h4{margin-bottom:6px;font-size:.875rem}.export-desc{color:var(--muted);margin-bottom:12px;font-size:.75rem}.export-actions{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.export-error{color:#dc2626;margin-bottom:8px;font-size:.75rem}.export-preview{font-family:IBM Plex Mono,monospace;font-size:var(--font-size-min);color:#475569;background:#f8fafc;border-radius:6px;max-height:120px;padding:10px;overflow:auto}.topbar-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.db-panel-wrap{position:relative}.db-status.db-online{color:#166534;background:#f0fdf4;border-color:#bbf7d0}.db-status.db-offline{color:#dc2626;background:#fef2f2;border-color:#fecaca}.db-status.db-pending{color:var(--muted)}.db-panel{background:var(--surface);border:1px solid var(--border);z-index:50;border-radius:10px;width:320px;max-height:480px;margin-top:6px;padding:14px;position:absolute;top:100%;right:0;overflow-y:auto;box-shadow:0 12px 32px #0000001f}.db-panel h4{margin-bottom:4px;font-size:.875rem}.db-status-row{flex-wrap:wrap;gap:6px;margin:8px 0;display:flex}.db-path{font-size:var(--font-size-min);color:var(--muted);word-break:break-all;margin-bottom:10px;font-family:IBM Plex Mono,monospace}.db-actions{gap:6px;margin-bottom:12px;display:flex}.db-section{margin-bottom:12px}.db-section-title{font-size:var(--font-size-min);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:6px;display:block}.db-list-del{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0 10px}.db-list-del:hover{color:#dc2626}.db-empty{color:var(--muted);justify-content:center;padding:10px;font-size:.75rem}.db-history-list .action-list-btn{font-size:var(--font-size-min)}
