@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{--color-primary:#0284c7;--color-primary-dark:#0369a1;--color-primary-light:#e0f2fe;--color-primary-muted:#7dd3fc;--color-success:#16a34a;--color-success-light:#f0fdf4;--color-success-muted:#bbf7d0;--color-warning:#ca8a04;--color-warning-light:#fefce8;--color-warning-muted:#fde68a;--color-danger:#dc2626;--color-danger-light:#fef2f2;--color-danger-muted:#fecaca;--color-bg:#fafafa;--color-surface:#fff;--color-border:#e5e7eb;--color-border-strong:#d1d5db;--color-text:#171717;--color-text-secondary:#525252;--color-text-muted:#737373;--color-text-disabled:#a3a3a3;--color-admin-badge:#9333ec;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--shadow-sm:0 1px 2px 0 #0000000a;--shadow-md:0 4px 6px -1px #0000000f, 0 2px 4px -1px #0000000a;--shadow-lg:0 10px 15px -3px #00000012, 0 4px 6px -2px #0000000a;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:"SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;--navbar-height:64px;--content-max:1280px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;font-size:16px}body{font-family:var(--font-sans);background-color:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;letter-spacing:-.01em;background-image:linear-gradient(#00000005 1px,#0000 1px),linear-gradient(90deg,#00000005 1px,#0000 1px);background-size:40px 40px;min-height:100vh;line-height:1.5}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;font-family:inherit}input,textarea,select{font-family:inherit}img{max-width:100%;display:block}code{font-family:var(--font-mono);background:var(--color-border);border-radius:var(--radius-sm);padding:1px 5px;font-size:.875em}.main-content{padding-top:var(--navbar-height);min-height:100vh}.page-container{max-width:var(--content-max);margin:0 auto;padding:2rem 1.5rem 4rem}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:2rem;display:flex}.page-title{color:var(--color-text);letter-spacing:-.025em;font-size:1.75rem;font-weight:700}.page-subtitle{color:var(--color-text-secondary);margin-top:.25rem;font-size:.9375rem}.page-header-actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.section-header{margin-bottom:1rem}.section-title{color:var(--color-text);font-size:1.125rem;font-weight:600}.section-subtitle{color:var(--color-text-muted);margin-top:.2rem;font-size:.875rem}.navbar{height:var(--navbar-height);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--color-border);z-index:100;background:#fffffff2;position:fixed;top:0;left:0;right:0}.navbar-inner{max-width:var(--content-max);justify-content:space-between;align-items:center;height:100%;margin:0 auto;padding:0 1.5rem;display:flex}.navbar-left{align-items:center;gap:2rem;display:flex}.navbar-brand{align-items:center;gap:.625rem;text-decoration:none;display:flex}.navbar-logo-img{width:auto;height:28px;display:block}.navbar-links{gap:.25rem;display:flex}.navbar-link{border-radius:var(--radius-md);color:var(--color-text-secondary);padding:.5rem 1rem;font-size:.875rem;font-weight:500;text-decoration:none;transition:background .15s,color .15s}.navbar-link:hover{color:var(--color-primary);background:#f5f5f5;text-decoration:none}.navbar-link.active{background:var(--color-primary-light);color:var(--color-primary);font-weight:500}.navbar-right{align-items:center;gap:1rem;display:flex}.navbar-user{align-items:center;gap:.5rem;display:flex}.navbar-avatar{background:var(--color-primary);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;font-size:.75rem;font-weight:700;display:flex}.navbar-username{color:var(--color-text);font-size:.875rem;font-weight:500}.btn{border-radius:var(--radius-lg);white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:.375rem;padding:.5rem 1rem;font-size:.875rem;font-weight:600;line-height:1.25;text-decoration:none;transition:all .15s;display:inline-flex}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.btn-primary:hover:not(:disabled){background:var(--color-primary-dark);border-color:var(--color-primary-dark)}.btn-secondary{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border-strong)}.btn-secondary:hover:not(:disabled){background:var(--color-bg);border-color:var(--color-text-muted)}.btn-ghost{color:var(--color-text-secondary);background:0 0;border-color:#0000}.btn-ghost:hover:not(:disabled){background:var(--color-bg);color:var(--color-text)}.btn-ghost.active{background:var(--color-primary-light);color:var(--color-primary)}.btn-danger{background:var(--color-surface);color:var(--color-danger);border-color:var(--color-border-strong)}.btn-danger:hover:not(:disabled){background:var(--color-danger-light);border-color:var(--color-danger-muted)}.btn-sm{padding:.3125rem .625rem;font-size:.8125rem}.btn-xs{padding:.1875rem .5rem;font-size:.75rem}.btn-icon{padding:.375rem .5rem}.btn-full{width:100%}.link-btn{color:var(--color-primary);font-size:inherit;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.link-btn:hover{color:var(--color-primary-dark)}.form-group{margin-bottom:1rem}.form-group:last-child{margin-bottom:0}.form-group-inline{flex:1;min-width:120px;margin-bottom:0}.form-label{color:var(--color-text);margin-bottom:.375rem;font-size:.875rem;font-weight:500;display:block}.form-input{width:100%;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);appearance:none;padding:.5rem .75rem;font-size:.9375rem;line-height:1.5;transition:border-color .15s,box-shadow .15s;display:block}.form-input::placeholder{color:var(--color-text-muted)}.form-input:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #0284c726}.form-input:disabled{background:var(--color-bg);color:var(--color-text-muted);cursor:not-allowed}.form-input-sm{padding:.375rem .625rem;font-size:.875rem}textarea.form-input{resize:vertical;min-height:80px}select.form-input{cursor:pointer;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.25em;padding-right:2.25rem}.form-row{flex-wrap:wrap;align-items:flex-start;gap:1rem;display:flex}.toggle-label{cursor:pointer;color:var(--color-text-secondary);-webkit-user-select:none;user-select:none;align-items:center;gap:.5rem;font-size:.875rem;display:inline-flex}.toggle-label input[type=checkbox]{cursor:pointer;width:16px;height:16px;accent-color:var(--color-primary)}.toggle-label-large{color:var(--color-text);font-size:.9375rem}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);transition:box-shadow .15s;box-shadow:0 1px 3px #0000000a,0 1px 2px #00000005}.card:hover{box-shadow:0 2px 8px -2px #00000014,0 4px 16px -4px #0000000f}.card-body{padding:1.25rem}.card-header{padding:1.25rem 1.25rem .75rem}.card-title-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.card-title{color:var(--color-text);font-size:1rem;font-weight:600}.card-description{color:var(--color-text-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:.375rem;font-size:.875rem;display:-webkit-box;overflow:hidden}.card-meta{color:var(--color-text-muted);justify-content:space-between;align-items:center;padding:0 1.25rem .75rem;font-size:.8125rem;display:flex}.card-actions{border-top:1px solid var(--color-border);flex-wrap:wrap;gap:.5rem;padding:.75rem 1.25rem;display:flex}.card-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;display:grid}.badge{white-space:nowrap;border-radius:9999px;align-items:center;padding:.1875rem .5rem;font-size:.75rem;font-weight:600;display:inline-flex}.badge-template{color:#7c3aed;background:#ede9fe}.badge-status{text-transform:capitalize}.badge-in_progress{background:var(--color-warning-light);color:var(--color-warning)}.badge-completed{background:var(--color-success-light);color:var(--color-success)}.field-type-badge{background:var(--color-bg);color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:9999px;margin-left:.375rem;padding:1px 6px;font-size:.6875rem}.tabs{border-bottom:2px solid var(--color-border);gap:0;margin-bottom:1.5rem;display:flex}.tab{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:.5rem;margin-bottom:-2px;padding:.625rem 1.125rem;font-size:.9375rem;font-weight:500;transition:color .15s,border-color .15s;display:flex}.tab:hover{color:var(--color-text)}.tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.tab-count{background:var(--color-bg);color:var(--color-text-muted);text-align:center;border-radius:9999px;min-width:20px;padding:0 .375rem;font-size:.75rem;font-weight:600}.tab.active .tab-count{background:var(--color-primary-light);color:var(--color-primary)}.tab-content{min-height:300px}.table-container{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-sm);overflow:hidden}.table-scroll-x{overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:.9375rem}.table th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary);background:var(--color-bg);border-bottom:1px solid var(--color-border);white-space:nowrap;padding:.75rem 1rem;font-size:.8125rem;font-weight:600}.table td{border-bottom:1px solid var(--color-border);color:var(--color-text);vertical-align:middle;padding:.75rem 1rem}.table tbody tr:last-child td{border-bottom:none}.table-row-clickable{cursor:pointer;transition:background .1s}.table-row-clickable:hover td{background:var(--color-bg)}.compare-table .field-col{background:var(--color-surface);z-index:1;min-width:160px;position:sticky;left:0}.compare-table th.field-col{background:var(--color-bg)}.compare-test-header{flex-direction:column;gap:.25rem;min-width:140px;display:flex}.cell-good{color:#15803d;background:#f0fdf4}.cell-warn{color:#a16207;background:#fefce8}.cell-bad{color:#b91c1c;background:#fef2f2}.progress-bar-container{background:var(--color-bg);border:1px solid var(--color-border);border-radius:9999px;align-items:center;height:20px;display:flex;position:relative;overflow:visible}.progress-bar-fill{border-radius:9999px;min-width:2px;height:100%;transition:width .3s}.progress-bar-label{color:var(--color-text-secondary);white-space:nowrap;font-size:.75rem;font-weight:600;position:absolute;right:8px}.alert{border-radius:var(--radius-md);margin-bottom:1rem;padding:.75rem 1rem;font-size:.9rem}.alert-error{background:var(--color-danger-light);color:var(--color-danger);border:1px solid var(--color-danger-muted)}.alert-success{background:var(--color-success-light);color:var(--color-success);border:1px solid var(--color-success-muted)}.alert-info{background:var(--color-primary-light);color:var(--color-primary);border:1px solid var(--color-primary-muted)}.modal-overlay{z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0006;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal{background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);width:100%;max-width:480px;max-height:90vh;animation:.15s modal-in;overflow-y:auto}@keyframes modal-in{0%{opacity:0;transform:scale(.96)translateY(-8px)}to{opacity:1;transform:scale(1)translateY(0)}}.modal-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.modal-header h3{font-size:1rem;font-weight:600}.modal-close{color:var(--color-text-muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;width:28px;height:28px;font-size:1.25rem;display:flex}.modal-close:hover{background:var(--color-bg);color:var(--color-text)}.modal-body{padding:1.25rem 1.5rem}.modal-footer{border-top:1px solid var(--color-border);justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;display:flex}.auth-page{background:var(--color-bg);justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex}.auth-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);width:100%;max-width:400px;padding:2rem}.auth-header{text-align:center;margin-bottom:1.75rem}.auth-logo{justify-content:center;margin-bottom:1rem;display:flex}.auth-logo-img{width:auto;height:40px}.auth-title{letter-spacing:-.025em;font-size:1.5rem;font-weight:700}.auth-subtitle{color:var(--color-text-muted);margin-top:.25rem;font-size:.875rem;font-weight:500}.auth-tabs{background:var(--color-bg);border-radius:var(--radius-md);margin-bottom:1.5rem;padding:3px;display:flex}.auth-tab{border-radius:calc(var(--radius-md) - 2px);color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;flex:1;padding:.4375rem .75rem;font-size:.875rem;font-weight:500;transition:all .15s}.auth-tab.active{background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-sm)}.auth-form{flex-direction:column;gap:0;display:flex}.auth-form .form-group{margin-bottom:1rem}.auth-footer{text-align:center;color:var(--color-text-secondary);margin-top:1.25rem;font-size:.875rem}.auth-hint{background:var(--color-bg);border-radius:var(--radius-md);text-align:center;color:var(--color-text-muted);margin-top:1rem;padding:.75rem;font-size:.8125rem}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1.25rem;display:flex}.test-list{flex-direction:column;gap:.5rem;display:flex}.test-row{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;justify-content:space-between;align-items:center;gap:1rem;padding:.875rem 1.25rem;transition:all .15s;display:flex}.test-row:hover{border-color:var(--color-primary-muted);box-shadow:var(--shadow-sm)}.test-row-main{flex-wrap:wrap;flex:1;justify-content:space-between;align-items:center;gap:1rem;min-width:0;display:flex}.test-row-info{flex-direction:column;gap:.2rem;display:flex}.test-row-name{color:var(--color-text);font-size:.9375rem;font-weight:600}.test-row-schema{color:var(--color-text-muted);font-size:.8125rem}.test-row-meta{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.empty-state{text-align:center;color:var(--color-text-secondary);padding:4rem 2rem}.empty-icon{opacity:.4;margin-bottom:1rem;font-size:2.5rem}.empty-state h3{color:var(--color-text);margin-bottom:.5rem;font-size:1.125rem;font-weight:600}.empty-state p{margin-bottom:1.5rem;font-size:.9375rem}.field-wrapper{align-items:flex-start;gap:.5rem;display:flex}.field-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);flex:1;transition:border-color .15s;overflow:hidden}.field-card:hover{border-color:var(--color-border-strong)}.field-card-row{align-items:center;gap:.75rem;padding:.875rem 1rem;display:flex}.field-drag-handle{color:var(--color-text-muted);cursor:grab;opacity:.5;flex-shrink:0;font-size:1rem}.field-inputs{flex-wrap:wrap;flex:1;align-items:center;gap:.75rem;display:flex}.field-inputs .form-input:first-child{flex:2;min-width:180px}.field-inputs select{flex:1;min-width:160px}.field-controls{flex-shrink:0}.field-config-expanded{border-top:1px solid var(--color-border);background:var(--color-bg);padding:0 1rem 1rem}.config-row{flex-wrap:wrap;align-items:flex-end;gap:1rem;padding-top:.875rem;display:flex}.config-section{padding-top:.875rem}.options-list{flex-direction:column;gap:.5rem;margin-top:.5rem;display:flex}.option-row{align-items:center;gap:.5rem;display:flex}.formula-fields{flex-wrap:wrap;gap:.5rem;display:flex}.field-footer{border-top:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:.5rem 1rem;display:flex}.field-order-btns{gap:.25rem;display:flex}.field-index{color:var(--color-text-muted);font-size:.75rem}.field-side-controls{flex-direction:column;flex-shrink:0;gap:.25rem;padding-top:.5rem;display:flex}.add-field-btn{border:2px dashed var(--color-border-strong);border-radius:var(--radius-lg);width:100%;color:var(--color-text-secondary);padding:.75rem;font-size:.9375rem}.add-field-btn:hover{border-color:var(--color-primary-muted);background:var(--color-primary-light);color:var(--color-primary)}.test-header-left{flex-direction:column;gap:.375rem;display:flex}.test-meta-row{align-items:center;gap:.75rem;display:flex}.test-schema-badge{color:var(--color-text-muted);background:var(--color-bg);border-radius:var(--radius-sm);border:1px solid var(--color-border);padding:2px 8px;font-size:.8125rem}.page-title-input{padding:.375rem .625rem;font-size:1.5rem;font-weight:700}.editable-title{cursor:pointer;align-items:center;gap:.5rem;display:flex}.editable-title:hover .edit-icon{opacity:1}.edit-icon{color:var(--color-text-muted);opacity:0;font-size:1rem;transition:opacity .15s}.test-form{flex-direction:column;gap:1.25rem;display:flex}.field-group-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.field-group-title{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-secondary);background:var(--color-bg);border-bottom:1px solid var(--color-border);padding:.75rem 1.25rem;font-size:.8125rem;font-weight:700}.field-entry{border-bottom:1px solid var(--color-border);grid-template-columns:minmax(160px,240px) 1fr;align-items:flex-start;gap:1rem;padding:1rem 1.25rem;display:grid}.field-entry:last-child{border-bottom:none}.field-entry-label{flex-direction:column;gap:.2rem;padding-top:.5rem;display:flex}.field-name{color:var(--color-text);font-size:.9375rem;font-weight:500}.required-mark{color:var(--color-danger);margin-left:.2rem}.field-help{color:var(--color-text-muted);font-size:.8125rem}.field-entry-input{flex:1}.number-input-wrapper{align-items:center;gap:.5rem;display:flex}.unit-label{color:var(--color-text-secondary);white-space:nowrap;flex-shrink:0;font-size:.875rem}.image-field{flex-direction:column;gap:.75rem;display:flex}.image-preview{align-items:center;gap:1rem;display:flex}.image-preview img{object-fit:cover;border-radius:var(--radius-md);border:1px solid var(--color-border);width:80px;height:60px}.formula-result{background:var(--color-primary-light);border-radius:var(--radius-md);border:1px solid var(--color-primary-muted);align-items:baseline;gap:.375rem;width:fit-content;padding:.5rem .75rem;display:flex}.formula-value{color:var(--color-primary);font-size:1.25rem;font-weight:700}.formula-label{color:var(--color-primary);font-size:.875rem}.save-indicator{border-radius:9999px;padding:.25rem .625rem;font-size:.8125rem}.save-idle{color:#0000}.save-saving{color:var(--color-warning);background:var(--color-warning-light)}.save-saved{color:var(--color-success);background:var(--color-success-light)}.save-error{color:var(--color-danger);background:var(--color-danger-light)}.report-header{margin-bottom:1.5rem}.report-title{margin-bottom:.25rem;font-size:1.25rem;font-weight:600}.report-subtitle{color:var(--color-text-muted);font-size:.9rem}.report-controls{flex-wrap:wrap;align-items:flex-end;gap:1rem;margin-bottom:1.5rem;display:flex}.report-actions{gap:.75rem;margin-top:1rem;display:flex}.custom-report-builder{grid-template-columns:1fr 1fr;gap:1.25rem;margin-bottom:1.25rem;display:grid}@media (width<=600px){.custom-report-builder{grid-template-columns:1fr}}.custom-select-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.select-panel-header{background:var(--color-bg);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:.75rem 1rem;display:flex}.select-panel-header h3{font-size:.875rem;font-weight:600}.select-list{flex-direction:column;gap:.125rem;max-height:300px;padding:.5rem;display:flex;overflow-y:auto}.select-item{border-radius:var(--radius-md);cursor:pointer;align-items:center;gap:.625rem;padding:.5rem .625rem;transition:background .1s;display:flex}.select-item:hover{background:var(--color-bg)}.select-item input[type=checkbox]{width:16px;height:16px;accent-color:var(--color-primary);flex-shrink:0}.select-item-info{flex-direction:column;gap:.1rem;min-width:0;display:flex}.select-item-name{color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;font-size:.875rem;font-weight:500;overflow:hidden}.select-item-meta{color:var(--color-text-muted);font-size:.75rem}.toast{border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:2000;max-width:380px;padding:.75rem 1.25rem;font-size:.9375rem;font-weight:500;animation:.2s toast-in;position:fixed;bottom:1.5rem;right:1.5rem}@keyframes toast-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.toast-success{color:#4ade80;background:#052e16}.toast-error{color:#f87171;background:#450a0a}.toast-info{color:#93c5fd;background:#172554}.loading-center{min-height:200px;color:var(--color-text-muted);flex-direction:column;justify-content:center;align-items:center;gap:1rem;display:flex}.spinner{border:3px solid var(--color-border-strong);border-top-color:var(--color-primary);border-radius:50%;width:28px;height:28px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.text-muted{color:var(--color-text-muted)}.text-sm{font-size:.875rem}.link-text{color:var(--color-primary);font-weight:500;text-decoration:none}.link-text:hover{text-decoration:underline}@media (width<=768px){.page-container{padding:1.25rem 1rem 3rem}.page-title{font-size:1.375rem}.field-entry{grid-template-columns:1fr;gap:.5rem}.field-entry-label{padding-top:0}.card-grid{grid-template-columns:1fr}.navbar-links{display:none}.field-inputs{flex-direction:column;align-items:stretch}.form-row{flex-direction:column}.compare-table{font-size:.8125rem}}.sb-topbar{top:var(--navbar-height);z-index:50;background:var(--color-surface);border-bottom:1px solid var(--color-border);position:sticky}.sb-topbar-inner{max-width:var(--content-max);justify-content:space-between;align-items:center;gap:1rem;margin:0 auto;padding:14px 1.5rem;display:flex}.sb-title{color:var(--color-text);font-size:1.2rem;font-weight:700}.sb-subtitle{color:var(--color-text-muted);margin-top:2px;font-size:.8rem}.sb-topbar-actions{gap:.5rem;display:flex}.sb-body{max-width:var(--content-max);flex-direction:column;gap:1.25rem;margin:0 auto;padding:1.5rem 1.5rem 4rem;display:flex}.sb-preview-strip{padding:16px 20px}.sb-preview-header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:12px;display:flex}.sb-preview-label{color:var(--color-text);font-size:.875rem;font-weight:600;display:block}.sb-preview-hint{color:var(--color-text-muted);margin-top:1px;font-size:.75rem;display:block}.field-count-badge{background:var(--color-primary-light);color:var(--color-primary);white-space:nowrap;border-radius:20px;flex-shrink:0;padding:3px 10px;font-size:.75rem;font-weight:600}.preview-empty-inline{color:var(--color-text-muted);align-items:center;gap:12px;padding:14px 4px;font-size:.875rem;display:flex}.sb-meta-strip{padding:16px 20px}.sb-meta-row{flex-wrap:wrap;align-items:flex-end;gap:16px;display:flex}.sb-meta-options{flex-direction:column;flex-shrink:0;gap:8px;min-width:180px;display:flex}.sb-advanced-row{border-top:1px solid var(--color-border);flex-wrap:wrap;align-items:flex-start;gap:24px;margin-top:14px;padding-top:14px;display:flex}.sb-fields-col{flex-direction:column;gap:0;padding:20px;display:flex}.sb-meta-col{flex-direction:column;gap:14px;padding:20px;display:flex}.sb-editor-row{flex-direction:column;gap:1.25rem;display:flex}.sb-section-title{color:var(--color-text);margin-bottom:12px;font-size:.9375rem;font-weight:600}.checkbox-label{cursor:pointer;align-items:center;gap:8px;font-size:.875rem;display:flex}.fields-section{flex-direction:column;gap:0;display:flex}.fields-section-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.fields-section-header h2{font-size:1rem;font-weight:600}.field-count-label{color:var(--color-text-muted);margin-left:6px;font-size:.75rem}.fields-list{flex-direction:column;gap:8px;margin-bottom:12px;display:flex}.schema-builder-layout{display:block}.schema-editor-panel,.schema-preview-panel{padding:24px}.panel-title{font-size:1.3rem;font-weight:700}.panel-subtitle{color:var(--color-text-muted);font-size:.8rem}.schema-meta-card{flex-direction:column;gap:14px;padding:16px;display:flex}.btn-add-field{border:2px dashed var(--color-border);width:100%;color:var(--color-text-muted);border-radius:var(--radius-md);cursor:pointer;background:0 0;padding:10px;font-size:.875rem;transition:all .15s}.btn-add-field:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-light)}.field-list-header{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);align-items:center;gap:6px;padding:4px 10px 6px;font-size:.68rem;font-weight:700;display:flex}.field-list{flex-direction:column;gap:2px;margin-bottom:10px;display:flex}.field-list-item{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);overflow:hidden}.field-list-item-open{border-color:var(--color-primary-muted);box-shadow:0 0 0 2px var(--color-primary-light)}.field-list-row{align-items:center;gap:6px;padding:7px 10px;display:flex}.field-type-icon-sm{background:var(--color-primary-light);width:20px;height:20px;color:var(--color-primary);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;font-size:.68rem;font-weight:700;display:flex}.field-name-input{font-size:.85rem;font-weight:500}.field-config-drawer{border-top:1px solid var(--color-border);background:#f8f9fc;flex-direction:column;gap:10px;padding:12px 14px;display:flex}.field-config-row{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.field-config-group{flex-direction:column;flex:1;gap:4px;min-width:80px;display:flex}.field-config-group label{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.03em;font-size:.72rem;font-weight:600}.field-type-icon{background:var(--color-primary-light);width:22px;height:22px;color:var(--color-primary);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;font-size:.7rem;font-weight:700;display:flex}.field-group{flex-direction:column;flex:1;gap:4px;display:flex}.field-group label{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.03em;font-size:.75rem;font-weight:600}.label-hint{color:var(--color-text-muted);text-transform:none;letter-spacing:0;font-size:.7rem;font-weight:400}.product-section-separator td{border-top:2px solid var(--color-border-strong)!important}.product-section-header-cell{border-bottom:1px solid var(--color-border)!important;background:#f8f9fc!important;padding:8px 16px!important}.product-section-header-inner{justify-content:space-between;align-items:center;display:flex}.product-section-nameblock{flex-direction:column;gap:1px;display:flex}.product-section-name{color:var(--color-text);font-size:.9rem;font-weight:700}.product-section-vendor{color:var(--color-text-muted);font-size:.75rem}.product-section-score{flex-shrink:0;align-items:center;gap:6px;display:flex}.col-sub-num-header{text-align:center;min-width:70px}.col-sub-num{text-align:center;vertical-align:middle;border-bottom:1px solid var(--color-border);border-right:1px solid var(--color-border);padding:4px 8px}.sub-num-cell-inner{justify-content:center;align-items:center;gap:4px;display:flex}.sub-num-badge{background:var(--color-primary-light);color:var(--color-primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:.72rem;font-weight:700;display:inline-flex}.sub-save-indicator{font-size:.65rem}.sub-test-data-row td{border-bottom:1px solid var(--color-border)}.sub-test-row-alt td{background:#f9fafc}.sub-case-enabled-badge{color:#7c3aed;background:#ede9fe;border-radius:20px;padding:3px 10px;font-size:.75rem;font-weight:600}.case-header-cell{background:var(--color-primary-light)!important;border-bottom:1px solid var(--color-primary-muted)!important;padding:6px 14px!important}.case-header-inner{align-items:center;gap:10px;display:flex}.case-number-badge{text-transform:uppercase;letter-spacing:.06em;color:var(--color-primary);border:1px solid var(--color-primary-muted);background:#fff;border-radius:10px;padding:2px 8px;font-size:.75rem;font-weight:800}.case-label{color:var(--color-text-secondary);font-size:.8rem;font-style:italic}.case-delete-btn{opacity:.7;margin-left:auto}.case-delete-btn:hover{opacity:1}.add-case-row td{border-right:none!important;padding:0!important}.btn-add-case{border:none;border-top:2px dashed var(--color-border);width:100%;color:var(--color-text-muted);cursor:pointer;text-align:center;background:0 0;padding:10px;font-size:.875rem;transition:all .15s;display:block}.btn-add-case:hover{background:var(--color-bg);color:var(--color-primary);border-color:var(--color-primary-muted)}.manage-products-list{flex-direction:column;gap:6px;display:flex}.manage-product-row{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);align-items:center;gap:8px;padding:8px 10px;display:flex}.options-input-row{gap:6px;display:flex}.options-chips{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.option-chip{background:var(--color-primary-light);color:var(--color-primary);border:1px solid var(--color-primary-muted);border-radius:20px;align-items:center;gap:4px;padding:3px 10px;font-size:.8rem;font-weight:500;display:flex}.option-chip button{cursor:pointer;color:var(--color-primary);background:0 0;border:none;margin-left:2px;padding:0;font-size:1rem;line-height:1}.hint-text{color:var(--color-text-muted);font-size:.75rem}.hint-warning{color:var(--color-warning)}.preview-panel-header{justify-content:space-between;align-items:baseline;display:flex}.preview-panel-header h2{font-size:1rem;font-weight:700}.preview-hint{color:var(--color-text-muted);font-size:.75rem}.preview-empty{text-align:center;color:var(--color-text-muted);border:2px dashed var(--color-border);border-radius:var(--radius-lg);flex-direction:column;flex:1;justify-content:center;align-items:center;padding:60px 40px;display:flex}.preview-empty p{margin-bottom:6px;font-size:.9rem}.preview-empty-sub{color:var(--color-text-disabled);font-size:.8rem}.preview-table-outer{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:auto}.preview-table{border-collapse:collapse;width:max-content;min-width:100%;font-size:.8rem}.preview-th{background:var(--color-bg);border-bottom:2px solid var(--color-border);border-right:1px solid var(--color-border);white-space:nowrap;text-align:left;z-index:1;padding:10px 14px;font-weight:600;position:sticky;top:0}.preview-product-col{min-width:180px}.preview-th-inner{align-items:center;gap:5px;margin-bottom:2px;display:flex}.preview-th-type{color:var(--color-text-muted);font-size:.68rem;font-weight:400}.req-star{color:var(--color-danger);font-size:.85rem}.preview-td{border-bottom:1px solid var(--color-border);border-right:1px solid var(--color-border);vertical-align:middle;padding:9px 14px}.preview-row-alt .preview-td{background:var(--color-bg)}.preview-cell-val{font-size:.8rem}.preview-placeholder{color:var(--color-text-muted);font-style:italic}.preview-select{background:var(--color-bg);border:1px solid var(--color-border);border-radius:4px;padding:2px 8px;font-size:.78rem}.test-entry-page{height:calc(100vh - var(--navbar-height));flex-direction:column;display:flex;overflow:hidden}.test-topbar{border-bottom:1px solid var(--color-border);background:var(--color-surface);flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;padding:12px 24px;display:flex}.test-topbar-left{flex:1;align-items:center;gap:12px;min-width:0;display:flex}.test-topbar-right{flex-shrink:0;align-items:center;gap:8px;display:flex}.test-title-block{flex-direction:column;gap:2px;min-width:0;display:flex}.test-name-display{align-items:center;gap:6px;display:flex}.test-name{cursor:pointer;white-space:nowrap;text-overflow:ellipsis;max-width:400px;font-size:1.1rem;font-weight:700;overflow:hidden}.test-name:hover{color:var(--color-primary)}.test-name-edit{align-items:center;gap:6px;display:flex}.test-schema-label{color:var(--color-text-muted);font-size:.78rem}.products-toolbar{border-bottom:1px solid var(--color-border);background:var(--color-bg);flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 24px;display:flex}.products-count{color:var(--color-text-secondary);font-size:.85rem;font-weight:500}.test-table-wrapper{flex:1;padding:0;overflow:auto}.test-table{border-collapse:collapse;width:max-content;min-width:100%;font-size:.82rem}.test-table thead th{background:var(--color-bg);border-bottom:2px solid var(--color-border-strong);border-right:1px solid var(--color-border);text-align:left;white-space:nowrap;z-index:2;padding:10px 12px;font-weight:600;position:sticky;top:0}.test-table td{border-bottom:1px solid var(--color-border);border-right:1px solid var(--color-border);vertical-align:middle;padding:6px 8px}.product-row-alt td{background:#f9fafc}.sticky-col{z-index:3;background:var(--color-surface);min-width:200px;max-width:260px;position:sticky;left:0}.test-table thead .sticky-col{z-index:4;background:var(--color-bg)}.product-row-alt .sticky-col{background:#f9fafc}.col-field{min-width:140px}.col-actions{text-align:center;width:50px}.th-field-name{font-size:.8rem;font-weight:600}.th-field-hint{color:var(--color-text-muted);white-space:normal;max-width:160px;margin-top:2px;font-size:.68rem;font-weight:400}.product-name-display{flex-direction:column;gap:1px;padding:4px 6px;display:flex}.product-name{font-size:.85rem;font-weight:600}.product-vendor{color:var(--color-text-muted);font-size:.75rem}.product-rename-btn{color:var(--color-text-muted);opacity:0;font-size:.7rem;transition:opacity .15s}.product-name-display:hover .product-rename-btn{opacity:1}.product-name-edit{flex-direction:column;gap:4px;padding:4px 0;display:flex}.saving-dot{font-size:.7rem}.saving-dot.saving{color:var(--color-warning)}.saving-dot.saved{color:var(--color-success)}.table-cell-input{width:100%;color:var(--color-text);background:0 0;border:1px solid #0000;border-radius:4px;padding:4px 6px;font-family:inherit;font-size:.82rem;transition:border-color .1s,background .1s}.table-cell-input:hover{border-color:var(--color-border);background:var(--color-surface)}.table-cell-input:focus{border-color:var(--color-primary);background:var(--color-surface);box-shadow:0 0 0 2px var(--color-primary-light);outline:none}.table-cell-select{width:100%;color:var(--color-text);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;padding:4px 6px;font-family:inherit;font-size:.82rem}.table-cell-select:hover{border-color:var(--color-border);background:var(--color-surface)}.table-cell-select:focus{border-color:var(--color-primary);outline:none}.number-cell-wrap{align-items:center;gap:4px;display:flex}.number-input{width:80px}.unit-label{color:var(--color-text-muted);white-space:nowrap;font-size:.75rem}.bool-cell{justify-content:center;display:flex}.bool-cell input[type=checkbox]{cursor:pointer;width:16px;height:16px}.image-cell{align-items:center;gap:6px;display:flex}.image-cell-preview{align-items:center;gap:8px;display:flex}.cell-thumbnail{object-fit:cover;border:1px solid var(--color-border);cursor:pointer;border-radius:4px;width:40px;height:40px}.empty-products{text-align:center;color:var(--color-text-muted);flex-direction:column;flex:1;justify-content:center;align-items:center;padding:60px 40px;display:flex}.empty-products-icon{margin-bottom:16px;font-size:3rem}.empty-products h3{color:var(--color-text);margin-bottom:8px;font-size:1.1rem;font-weight:600}.empty-products p{margin-bottom:24px;font-size:.9rem}.btn-ghost{color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:4px 8px;font-size:.85rem}.btn-ghost:hover{background:var(--color-bg)}.btn-link{cursor:pointer;color:var(--color-primary);font-size:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.input{width:100%;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);appearance:none;padding:.4375rem .625rem;font-family:inherit;font-size:.875rem;line-height:1.5;transition:border-color .15s,box-shadow .15s;display:block}.input::placeholder{color:var(--color-text-muted)}.input:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #0284c726}.input:disabled{background:var(--color-bg);color:var(--color-text-muted);cursor:not-allowed}select.input{cursor:pointer;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.25em;padding-right:2.25rem}.input-sm{padding:4px 8px;font-size:.8rem}.report-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:24px;display:flex}.report-summary-chips{flex-wrap:wrap;gap:8px;display:flex}.summary-chip{border-radius:20px;padding:4px 12px;font-size:.8rem;font-weight:600}.chip-success{background:var(--color-success-light);color:var(--color-success)}.chip-warning{background:var(--color-warning-light);color:var(--color-warning)}.chip-overdue{background:var(--color-danger-light);color:var(--color-danger)}.progress-cards{flex-direction:column;gap:12px;display:flex}.progress-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;border-left:4px solid var(--color-border);padding:16px 20px;transition:box-shadow .15s,border-color .15s}.progress-card:hover{box-shadow:var(--shadow-md);border-color:var(--color-primary)}.progress-card-done{border-left-color:var(--color-success)}.progress-card-overdue{border-left-color:var(--color-danger)}.progress-card-top{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.progress-card-info{flex:1;min-width:0}.progress-card-name{color:var(--color-text);font-size:.95rem;font-weight:700}.progress-card-schema{color:var(--color-text-muted);margin-top:2px;font-size:.78rem}.progress-card-right{flex-shrink:0;align-items:center;gap:10px;display:flex}.progress-card-products{color:var(--color-text-muted);font-size:.78rem}.progress-card-bar-row{align-items:center;gap:12px;margin-bottom:10px;display:flex}.progress-card-bar-row .dual-progress{flex:1}.progress-cells{color:var(--color-text-muted);white-space:nowrap;font-size:.78rem}.dual-progress{flex-direction:column;gap:5px;display:flex}.progress-track{background:var(--color-border);border-radius:4px;align-items:center;height:8px;display:flex;position:relative;overflow:hidden}.progress-fill{border-radius:4px;height:100%;transition:width .4s}.progress-time-fill{background:var(--color-primary-muted);border-radius:4px;height:100%;transition:width .4s}.progress-track-label{color:#0006;text-transform:uppercase;letter-spacing:.05em;pointer-events:none;z-index:1;font-size:.6rem;font-weight:700;position:absolute;left:6px}.progress-pct-label{pointer-events:none;z-index:1;font-size:.68rem;font-weight:700;position:absolute;right:6px}.progress-card-footer{border-top:1px solid var(--color-border);margin-top:4px;padding-top:8px}.date-range-cell{align-items:center;gap:10px;display:flex}.date-range-dates{color:var(--color-text-secondary);font-size:.8rem}.date-range-badge{border-radius:10px;padding:2px 8px;font-size:.72rem;font-weight:600}.date-range-badge.on-track{background:var(--color-success-light);color:var(--color-success)}.date-range-badge.due-soon{background:var(--color-warning-light);color:var(--color-warning)}.date-range-badge.overdue{background:var(--color-danger-light);color:var(--color-danger)}.date-range-badge.completed{background:var(--color-success-light);color:var(--color-success)}.compare-test-group-header{text-align:center;background:var(--color-primary-light);border-bottom:2px solid var(--color-primary-muted);padding:8px 12px;font-size:.82rem;font-weight:700}.compare-test-dates{color:var(--color-text-muted);font-size:.68rem;font-weight:400}.compare-product-header{text-align:center;background:var(--color-bg);padding:8px 12px}.compare-product-name{font-size:.78rem;font-weight:700}.compare-product-vendor{color:var(--color-text-muted);font-size:.68rem}.compare-table td.sticky-col{min-width:140px}.modal-lg{width:100%;max-width:620px}.modal-section{margin-bottom:20px}.modal-section-title{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);border-bottom:1px solid var(--color-border);margin-bottom:10px;padding-bottom:6px;font-size:.72rem;font-weight:700}.form-row-2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.product-rows{flex-direction:column;gap:8px;display:flex}.product-row-input{align-items:center;gap:8px;display:flex}.product-row-input .form-input{flex:1}.date-range-inline{cursor:pointer;border-radius:var(--radius-sm);border:1px solid #0000;align-items:center;gap:6px;padding:2px 6px;transition:border-color .15s,background .15s;display:flex}.date-range-inline:hover{border-color:var(--color-border);background:var(--color-bg)}.date-range-text{color:var(--color-text-secondary);font-size:.78rem}.date-range-empty{color:var(--color-text-muted);font-style:italic}.date-range-edit-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.date-range-edit-row label{white-space:nowrap}.badge-danger{background:var(--color-danger-light);color:var(--color-danger)}.test-row-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.pivot-toolbar{border-bottom:1px solid var(--color-border);flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;padding:12px 0;display:flex}.pivot-schema-select{min-width:260px;max-width:340px;margin:0}.pivot-axis-toggle{border:1px solid var(--color-border);border-radius:var(--radius-sm);align-items:center;gap:0;display:flex;overflow:hidden}.pivot-axis-label{color:var(--color-text-muted);background:var(--color-bg);border-right:1px solid var(--color-border);padding:5px 10px;font-size:.78rem;font-weight:600}.pivot-axis-btn{cursor:pointer;background:var(--color-surface);color:var(--color-text-secondary);border:none;padding:5px 12px;font-size:.8rem;font-weight:500;transition:background .1s,color .1s}.pivot-axis-btn:not(:last-child){border-right:1px solid var(--color-border)}.pivot-axis-btn.active{background:var(--color-primary);color:#fff;font-weight:600}.pivot-axis-btn:not(.active):hover{background:var(--color-bg)}.btn-active{background:var(--color-primary-light);border-color:var(--color-primary-muted);color:var(--color-primary)}.pivot-filter-panel{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);flex-wrap:wrap;gap:24px;margin-bottom:16px;padding:16px 20px;display:flex}.filter-section{flex:1;min-width:220px}.filter-section-label{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);margin-bottom:8px;font-size:.72rem;font-weight:700}.filter-section-hint{text-transform:none;letter-spacing:0;font-weight:400}.filter-chips{flex-wrap:wrap;gap:6px;display:flex}.filter-chip{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:20px;align-items:center;gap:5px;padding:4px 10px;font-size:.78rem;transition:background .1s,opacity .1s;display:flex}.filter-chip input[type=checkbox]{cursor:pointer;width:12px;height:12px}.filter-chip.chip-on{background:var(--color-primary-light);color:var(--color-primary);border:1px solid var(--color-primary-muted);font-weight:600}.filter-chip.chip-off{background:var(--color-border);color:var(--color-text-muted);opacity:.65;border:1px solid #0000}.compare-field-type{color:var(--color-text-muted);margin-top:2px;font-size:.68rem;font-weight:400}.export-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);margin-bottom:20px;padding:24px 28px}.export-section-info{background:var(--color-bg)}.export-section-title{margin-bottom:8px;font-size:1rem;font-weight:700}.export-section-desc{color:var(--color-text-secondary);margin-bottom:10px;font-size:.88rem;line-height:1.6}.export-section-desc:last-child{margin-bottom:0}.export-section-desc code{background:var(--color-border);border-radius:4px;padding:1px 5px;font-size:.82rem}.export-stats{border-bottom:1px solid var(--color-border);flex-wrap:wrap;gap:20px;margin-bottom:20px;padding:14px 0 20px;display:flex}.export-stat{flex-direction:column;align-items:center;gap:2px;min-width:70px;display:flex}.export-stat-value{color:var(--color-text);font-size:1.4rem;font-weight:800}.export-stat-label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.72rem}.export-cards{flex-direction:column;gap:12px;display:flex}.export-card{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);align-items:center;gap:16px;padding:16px 20px;display:flex}.export-card-icon{flex-shrink:0;font-size:1.8rem}.export-card-body{flex:1;min-width:0}.export-card-title{margin-bottom:4px;font-size:.92rem;font-weight:700}.export-card-desc{color:var(--color-text-secondary);font-size:.82rem;line-height:1.5}.export-card-desc code{background:var(--color-border);border-radius:3px;padding:1px 4px;font-size:.78rem}.export-section-header{justify-content:space-between;align-items:flex-start;margin-bottom:16px;display:flex}.add-user-form{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-direction:column;gap:12px;margin-bottom:16px;padding:16px;display:flex}.form-row-3{grid-template-columns:1fr 1fr 1fr;gap:12px;display:grid}.user-list{flex-direction:column;gap:8px;margin-top:12px;display:flex}.user-row{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex}.user-row-info{align-items:center;gap:8px;display:flex}.user-row-name{font-size:.9rem;font-weight:600}.user-row-actions{flex-shrink:0;align-items:center;gap:6px;display:flex}.user-pw-change{align-items:center;gap:6px;display:flex}.user-you-badge{background:var(--color-border);color:var(--color-text-muted);border-radius:10px;padding:1px 6px;font-size:.68rem}.badge-admin{color:#6d28d9;background:#ede9fe}.badge-user-role{background:var(--color-bg);color:var(--color-text-muted);border:1px solid var(--color-border)}:root{--color-scoring:#d97706;--color-scoring-light:#fffbeb;--color-scoring-muted:#fde68a;--color-sub-case:#0891b2;--color-sub-case-light:#ecfeff}.scoring-badge{background:var(--color-scoring-light);color:var(--color-scoring);border:1px solid var(--color-scoring-muted);border-radius:20px;align-items:center;padding:2px 8px;font-size:.7rem;font-weight:700;display:inline-flex}.scoring-badge-sm{color:var(--color-scoring);margin-left:2px;font-size:.65rem}.sub-case-enabled-badge{background:var(--color-sub-case-light);color:var(--color-sub-case);border:1px solid #a5f3fc;border-radius:20px;align-items:center;padding:2px 8px;font-size:.7rem;font-weight:700;display:inline-flex}.preview-th-scoring{background:var(--color-scoring-light)!important}.field-list-item-scoring{border-color:var(--color-scoring-muted)}.field-list-item-scoring .field-type-icon-sm{background:var(--color-scoring-light);color:var(--color-scoring)}.field-relation-badge{align-items:center;gap:8px;padding:3px 10px 6px;display:flex}.relation-op-chip{letter-spacing:.04em;border-radius:10px;align-items:center;padding:1px 7px;font-size:.65rem;font-weight:800;display:inline-flex}.op-and{color:#6d28d9;background:#ede9fe}.op-or{color:#1d4ed8;background:#dbeafe}.op-either{color:#92400e;background:#fef3c7}.scoring-divider{border-top:1px dashed var(--color-border);margin-top:4px;padding-top:10px}.scoring-toggle-row{cursor:pointer;align-items:center;gap:8px;font-size:.85rem;font-weight:500;display:flex}.scoring-config-block{background:var(--color-scoring-light);border:1px solid var(--color-scoring-muted);border-radius:var(--radius-md);flex-direction:column;gap:10px;margin-top:8px;padding:12px;display:flex}.option-score-grid{flex-direction:column;gap:6px;margin-top:4px;display:flex}.option-score-row{align-items:center;gap:8px;display:flex}.option-score-label{color:var(--color-text-secondary);flex:1;font-size:.82rem}.option-score-input{text-align:right;width:70px!important}.option-score-unit{color:var(--color-text-muted);width:24px;font-size:.75rem}.operator-hint{color:var(--color-text-secondary);border:1px solid var(--color-scoring-muted);border-radius:var(--radius-sm);background:#fff;padding:6px 10px;font-size:.75rem;line-height:1.4}.scoring-summary-card{padding:14px 16px}.scoring-summary-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.scoring-summary-title{color:var(--color-scoring);font-size:.875rem;font-weight:700}.scoring-summary-meta{color:var(--color-text-muted);font-size:.75rem}.scoring-chain{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.scoring-chain-item{align-items:center;gap:6px;display:flex}.scoring-chain-field{border:1px solid var(--color-scoring-muted);border-radius:var(--radius-md);background:#fff;align-items:center;gap:5px;padding:4px 10px;display:flex}.scoring-chain-name{font-size:.8rem;font-weight:600}.scoring-chain-type{color:var(--color-text-muted);font-size:.68rem}.scoring-chain-weight{background:var(--color-scoring-light);color:var(--color-scoring);border-radius:8px;padding:1px 5px;font-size:.68rem;font-weight:700}.scoring-chain-op{letter-spacing:.04em;border-radius:10px;padding:2px 8px;font-size:.65rem;font-weight:800}.col-score{text-align:center;background:var(--color-scoring-light);border-left:2px solid var(--color-scoring-muted);width:100px;min-width:90px;position:sticky;right:0}.scoring-col{background:#fde68a1f}.scoring-col-header{background:var(--color-scoring-light)!important}.scoring-star{color:var(--color-scoring);margin-left:3px;font-size:.7rem}.th-weight-hint{color:var(--color-scoring);margin-top:2px;font-size:.65rem;font-weight:600}.th-op-hint{letter-spacing:.05em;border-radius:6px;margin-top:2px;padding:1px 5px;font-size:.6rem;font-weight:800;display:inline-block}.score-pill{border:1px solid var(--color-scoring-muted);white-space:nowrap;background:#fff;border-radius:20px;align-items:baseline;gap:1px;padding:2px 8px;font-size:.75rem;display:inline-flex}.score-pill-val{color:var(--color-scoring);font-weight:700}.score-pill-max{color:var(--color-text-muted);font-size:.68rem}.score-pill-pct{color:var(--color-text-muted);margin-left:4px;font-size:.68rem}.sub-case-block{border-radius:var(--radius-md);background:var(--color-sub-case-light);border:1px solid #a5f3fc;margin:4px 8px 8px;overflow:hidden}.sub-case-header{background:#cffafe;border-bottom:1px solid #a5f3fc;align-items:center;gap:8px;padding:6px 12px;display:flex}.sub-case-badge{background:var(--color-sub-case);color:#fff;letter-spacing:.03em;border-radius:10px;padding:2px 8px;font-size:.7rem;font-weight:700}.sub-case-label{color:var(--color-sub-case);font-size:.8rem;font-weight:500}.sub-case-table{border-collapse:collapse;background:0 0;width:100%}.sub-case-count-badge{color:var(--color-sub-case);background:#cffafe;border:1px solid #a5f3fc;border-radius:10px;padding:1px 7px;font-size:.7rem;font-weight:600}.no-subcases-cell{text-align:center;background:var(--color-sub-case-light);padding:16px 20px}.case-score-rollup-row td{background:var(--color-scoring-light);border-top:2px solid var(--color-scoring-muted)}.case-score-rollup-label{color:var(--color-scoring);text-align:right;padding:8px 14px;font-size:.78rem;font-weight:700}.case-score-grid{flex-direction:column;gap:4px;padding:6px 4px;display:flex}.case-score-item{justify-content:center;align-items:center;gap:6px;display:flex}.case-score-product{color:var(--color-text-muted);white-space:nowrap;font-size:.7rem}.cd-page{min-height:100vh}.cd-topbar{top:var(--navbar-height);z-index:50;background:var(--color-surface);border-bottom:1px solid var(--color-border);position:sticky}.cd-topbar-inner{max-width:var(--content-max);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin:0 auto;padding:14px 1.5rem;display:flex}.cd-topbar-left{flex:1;align-items:flex-start;gap:12px;min-width:0;display:flex}.cd-topbar-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.cd-title{color:var(--color-text);font-size:1.15rem;font-weight:700}.cd-subtitle{color:var(--color-text-muted);margin-top:2px;font-size:.8rem}.cd-body{max-width:var(--content-max);flex-direction:column;gap:1.25rem;margin:0 auto;padding:1.5rem 1.5rem 4rem;display:flex}.cd-step-card{overflow:hidden}.cd-step-header{border-bottom:1px solid var(--color-border);align-items:flex-start;gap:14px;padding:16px 20px;display:flex}.cd-step-header-clickable{cursor:pointer}.cd-step-header-clickable:hover{background:var(--color-bg)}.cd-step-num{background:var(--color-primary);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:.8rem;font-weight:700;display:flex}.cd-step-title{color:var(--color-text);font-size:.9375rem;font-weight:700}.cd-step-sub{color:var(--color-text-muted);margin-top:2px;font-size:.8rem}.cd-generate-row{flex-wrap:wrap;align-items:center;gap:10px;padding:16px 20px;display:flex}.cd-range-input{text-align:center;width:80px!important}.cd-range-preview{color:var(--color-primary);background:var(--color-primary-light);white-space:nowrap;border-radius:20px;padding:3px 10px;font-size:.82rem;font-weight:600}.cd-rules-empty{text-align:center;color:var(--color-text);flex-direction:column;align-items:center;padding:40px 24px;display:flex}.cd-rules-list{flex-direction:column;gap:0;display:flex}.rule-card{border-bottom:1px solid var(--color-border)}.rule-card:last-child{border-bottom:none}.rule-card-open{background:#fafcff}.rule-card-header{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;padding:12px 20px;transition:background .1s;display:flex}.rule-card-header:hover{background:var(--color-bg)}.rule-card-header-left{flex:1;align-items:center;gap:12px;min-width:0;display:flex;overflow:hidden}.rule-card-header-right{flex-shrink:0;align-items:center;gap:8px;display:flex}.rule-drag-handle{color:var(--color-text-muted);cursor:grab;font-size:1rem}.rule-range-display{flex-shrink:0;align-items:baseline;gap:5px;display:flex}.rule-range-cases{color:var(--color-text);font-size:.875rem;font-weight:700}.rule-range-count{color:var(--color-text-muted);font-size:.72rem}.rule-range-placeholder{color:var(--color-text-muted);font-size:.82rem;font-style:italic}.rule-field-chips{flex-wrap:wrap;gap:5px;min-width:0;display:flex;overflow:hidden}.rule-field-chip{background:var(--color-primary-light);color:var(--color-primary);white-space:nowrap;border-radius:20px;align-items:center;gap:3px;max-width:160px;padding:2px 8px;font-size:.73rem;display:inline-flex;overflow:hidden}.rule-field-chip-name{font-weight:600}.rule-field-chip-val{text-overflow:ellipsis;overflow:hidden}.rule-field-chip-more{background:var(--color-bg);color:var(--color-text-muted);border:1px solid var(--color-border)}.rule-applied-badge{background:var(--color-success-light);color:var(--color-success);white-space:nowrap;border-radius:20px;padding:2px 8px;font-size:.72rem;font-weight:600}.rule-apply-btn{flex-shrink:0}.rule-chevron{color:var(--color-text-muted);font-size:.7rem}.rule-card-body{border-top:1px solid var(--color-border);background:#fff;flex-direction:column;gap:16px;padding:16px 20px;display:flex}.rule-range-row{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.rule-range-group{flex-direction:column;gap:4px;display:flex}.rule-range-group label{text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);font-size:.72rem;font-weight:700}.rule-range-sep{color:var(--color-text-muted);padding-bottom:4px;font-size:1.2rem}.rule-range-info{color:var(--color-primary);background:var(--color-primary-light);border-radius:20px;align-self:flex-end;margin-bottom:1px;padding:4px 10px;font-size:.8rem;font-weight:500}.rule-fields-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;display:grid}.rule-field-item{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);flex-direction:column;gap:5px;padding:10px 12px;transition:border-color .15s,background .15s;display:flex}.rule-field-item-set{border-color:var(--color-primary-muted);background:var(--color-primary-light)}.rule-field-label{color:var(--color-text-secondary);align-items:center;gap:6px;font-size:.78rem;font-weight:600;display:flex}.rule-field-type-dot{background:var(--color-border-strong);border-radius:50%;flex-shrink:0;width:8px;height:8px}.rule-field-type-dot[data-type=select]{background:var(--color-primary)}.rule-field-type-dot[data-type=text]{background:var(--color-text-muted)}.rule-field-type-dot[data-type=number]{background:var(--color-warning)}.rule-field-type-dot[data-type=boolean]{background:var(--color-success)}.rule-field-type-dot[data-type=date]{background:#a855f7}.rule-field-clear-btn{cursor:pointer;color:var(--color-text-muted);background:0 0;border:none;margin-left:auto;padding:0 2px;font-size:1rem;line-height:1}.rule-field-clear-btn:hover{color:var(--color-danger)}.rule-apply-row{border-top:1px solid var(--color-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding-top:12px;display:flex}.cd-table-empty{text-align:center;color:var(--color-text-muted);padding:32px 24px;font-size:.875rem}.cd-table{min-width:100%}.cd-th-case{text-align:center;width:80px}.cd-case-num-cell{text-align:center;padding:4px 8px!important}.cd-case-num-input{text-align:center;width:60px!important}.cd-save-bar{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 20px;display:flex}.cd-save-summary{color:var(--color-text);font-size:.875rem}.import-preview{border:1px solid var(--color-border);border-radius:var(--radius-md);margin-top:16px;overflow:hidden}.import-preview-title{letter-spacing:.05em;text-transform:uppercase;color:var(--color-text-muted);background:var(--color-surface-alt);border-bottom:1px solid var(--color-border);padding:8px 14px;font-size:.75rem;font-weight:700}.import-preview-row{border-bottom:1px solid var(--color-border);gap:12px;padding:8px 14px;font-size:.875rem;display:flex}.import-preview-row:last-child{border-bottom:none}.import-preview-label{color:var(--color-text-muted);flex:0 0 160px;font-weight:500}.import-preview-value{color:var(--color-text);word-break:break-word}.infra-section-heading{letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);margin:0 0 12px;font-size:.72rem;font-weight:700}.infra-grid{flex-wrap:wrap;align-items:flex-start;gap:18px;display:flex}.infra-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);flex-direction:column;gap:10px;padding:16px;display:flex}.sketch-card{flex-shrink:0;min-width:280px;min-height:200px;position:relative}.infra-card-header{align-items:center;gap:10px;display:flex}.infra-title-input{color:var(--color-text);font-size:1rem;font-weight:600;font-family:var(--font-sans);background:0 0;border:none;border-bottom:1px solid #0000;outline:none;flex:1;padding:2px 0;transition:border-color .15s}.infra-title-input:focus{border-bottom-color:var(--color-primary)}.card-header-actions{flex-shrink:0;align-items:center;gap:6px;display:flex}.card-resize-handle{cursor:nwse-resize;background:linear-gradient(135deg, transparent 40%, var(--color-border-strong) 40%, var(--color-border-strong) 55%, transparent 55%, transparent 65%, var(--color-border-strong) 65%, var(--color-border-strong) 80%, transparent 80%);opacity:.6;border-radius:0 0 var(--radius-lg) 0;width:20px;height:20px;transition:opacity .15s;position:absolute;bottom:0;right:0}.card-resize-handle:hover{opacity:1}.delete-confirm{background:var(--color-danger-light);border:1px solid var(--color-danger-muted);border-radius:var(--radius-md);align-items:center;gap:5px;padding:3px 8px;display:flex}.delete-confirm-label{color:var(--color-danger);font-size:.8rem;font-weight:600}.undo-btn{font-size:.78rem!important}.btn-xs{border-radius:var(--radius-sm)!important;padding:3px 8px!important;font-size:.78rem!important}.btn-xs.btn-danger{background:var(--color-danger);color:#fff;border:none}.btn-xs.btn-danger:hover{background:#b91c1c}.btn-xs.btn-ghost{border:1px solid var(--color-border-strong);color:var(--color-text-secondary);background:0 0}.btn-xs.btn-ghost:hover{background:var(--color-surface-alt)}.rich-toolbar{background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-wrap:wrap;flex-shrink:0;gap:2px;padding:4px 6px;display:flex}.toolbar-group{border-right:1px solid var(--color-border);align-items:center;gap:1px;padding:0 4px;display:flex;position:relative}.toolbar-group:last-child{border-right:none}.toolbar-btn{cursor:pointer;border-radius:var(--radius-sm);color:var(--color-text-secondary);font-size:.82rem;font-family:var(--font-sans);white-space:nowrap;background:0 0;border:none;padding:4px 7px;line-height:1;transition:background .1s,color .1s}.toolbar-btn:hover{background:var(--color-border);color:var(--color-text)}.tb-bold{font-weight:700}.tb-italic{font-style:italic}.tb-underline{text-decoration:underline}.tb-strike{text-decoration:line-through}.sketch-table-picker{z-index:300;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:10px;position:absolute;top:calc(100% + 4px);left:0}.stp-label{color:var(--color-text-muted);text-align:center;min-height:16px;margin-bottom:8px;font-size:.75rem}.stp-grid{grid-template-columns:repeat(8,18px);gap:2px;display:grid}.stp-cell{border:1px solid var(--color-border);cursor:pointer;background:var(--color-bg);border-radius:2px;width:18px;height:18px;transition:background 70ms,border-color 70ms}.stp-cell.stp-active{background:var(--color-primary-light);border-color:var(--color-primary)}.editor-wrap{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.rich-editor-body{border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);background:var(--color-bg);word-break:break-word;font-size:.9rem;line-height:1.65;font-family:var(--font-sans);outline:none;padding:12px 14px;transition:border-color .15s;overflow-y:auto}.rich-editor-body:focus{border-color:var(--color-primary);background:var(--color-surface)}.rich-editor-body h2{margin:10px 0 4px;font-size:1.1rem;font-weight:700}.rich-editor-body h3{margin:8px 0 4px;font-size:.95rem;font-weight:600}.rich-editor-body p{margin:4px 0}.rich-editor-body ul,.rich-editor-body ol{margin:4px 0;padding-left:20px}.rich-editor-body li{margin:2px 0}.sketch-inner-table{border-collapse:collapse;min-width:200px;margin:8px 0}.sketch-inner-table th,.sketch-inner-table td{border:1px solid var(--color-border-strong);box-sizing:border-box;outline:none;min-width:60px;padding:5px 10px}.sketch-inner-table th{background:var(--color-surface-alt);font-size:.82rem;font-weight:600}.table-float-bar{z-index:100;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);pointer-events:all;align-items:center;gap:1px;padding:3px 5px;display:flex;position:absolute}.tfb-btn{cursor:pointer;font-size:.78rem;font-family:var(--font-sans);color:var(--color-text-secondary);border-radius:var(--radius-sm);white-space:nowrap;background:0 0;border:none;padding:3px 8px;transition:background .1s,color .1s}.tfb-btn:hover{background:var(--color-primary-light);color:var(--color-primary-dark)}.tfb-btn.danger:hover{background:var(--color-danger-light);color:var(--color-danger)}.tfb-sep{background:var(--color-border);width:1px;height:16px;margin:0 3px}.infra-table-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.infra-seed-wrapper{position:relative}.infra-dropdown{z-index:200;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);min-width:200px;position:absolute;top:calc(100% + 4px);right:0;overflow:hidden}.infra-dropdown-item{text-align:left;width:100%;color:var(--color-text);cursor:pointer;font-size:.875rem;font-family:var(--font-sans);background:0 0;border:none;padding:9px 14px;display:block}.infra-dropdown-item:hover{background:var(--color-primary-light);color:var(--color-primary-dark)}.infra-table-wrapper{border-radius:var(--radius-md);border:1px solid var(--color-border);overflow-x:auto}.infra-table{border-collapse:collapse;width:100%;font-size:.875rem}.infra-th{background:var(--color-surface-alt);text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);border-bottom:1px solid var(--color-border);border-right:1px solid var(--color-border);white-space:nowrap;-webkit-user-select:none;user-select:none;padding:7px 10px;font-size:.75rem;font-weight:600;position:relative;overflow:hidden}.infra-th:last-child{border-right:none}.infra-th-label{text-overflow:ellipsis;cursor:text;max-width:calc(100% - 28px);display:inline-block;overflow:hidden}.infra-col-del{cursor:pointer;color:var(--color-text-muted);opacity:0;background:0 0;border:none;padding:0 2px;font-size:14px;line-height:1;transition:opacity .1s;position:absolute;top:50%;right:18px;transform:translateY(-50%)}.infra-th:hover .infra-col-del{opacity:1}.infra-col-del:hover{color:var(--color-danger)}.col-resize-handle{cursor:col-resize;z-index:10;background:0 0;width:5px;position:absolute;top:0;bottom:0;right:0}.col-resize-handle:hover{background:var(--color-primary);opacity:.4}.infra-th-actions{text-align:center;text-transform:none;letter-spacing:0;width:96px;font-size:.8rem}.infra-add-col-btn{border:1px dashed var(--color-border-strong);border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;font-size:.75rem;font-family:var(--font-sans);white-space:nowrap;background:0 0;padding:3px 8px}.infra-add-col-btn:hover{background:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary-dark)}.infra-col-rename-input{border:1px solid var(--color-primary);border-radius:var(--radius-sm);width:100%;font-size:.8rem;font-family:var(--font-sans);background:var(--color-surface);color:var(--color-text);letter-spacing:.04em;text-transform:uppercase;outline:none;padding:3px 6px;font-weight:600}.infra-table-cell{border-bottom:1px solid var(--color-border);border-right:1px solid var(--color-border);cursor:pointer;vertical-align:middle;min-width:60px;padding:5px 10px;overflow:hidden}.infra-table-cell:last-child{border-right:none}.infra-table-cell:hover{background:var(--color-primary-light)}.infra-table tr:last-child .infra-table-cell,.infra-table tr:last-child .infra-row-actions-cell{border-bottom:none}.infra-cell-input{border:1px solid var(--color-primary);border-radius:var(--radius-sm);width:100%;font-size:.875rem;font-family:var(--font-sans);background:var(--color-surface);box-sizing:border-box;outline:none;padding:3px 6px}.infra-cell-val{text-overflow:ellipsis;white-space:nowrap;min-height:18px;display:block;overflow:hidden}.infra-table-empty{text-align:center;color:var(--color-text-muted);padding:20px;font-size:.875rem}.infra-row-actions-cell{border-bottom:1px solid var(--color-border);white-space:nowrap;text-align:right;vertical-align:middle;width:90px;padding:3px 6px}.infra-row-actions-cell .btn-icon{margin-left:2px}.field-picker{border:1px solid var(--color-border);border-radius:var(--radius-md);margin-top:10px;overflow:hidden}.field-picker-hint{color:var(--color-text-muted);background:var(--color-surface-alt);border-bottom:1px solid var(--color-border);margin:0;padding:8px 12px 4px;font-size:.8rem}.field-picker-list{max-height:240px;overflow-y:auto}.field-picker-name{color:var(--color-text);flex:1;font-size:.875rem}.field-type-pill{text-transform:uppercase;letter-spacing:.04em;background:var(--color-surface-alt);color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:99px;padding:2px 7px;font-size:.7rem;font-weight:600}.infra-empty-note{color:var(--color-text-muted);margin:0;font-size:.85rem}.infra-empty-state{text-align:center;color:var(--color-text-secondary);background:var(--color-surface);border:2px dashed var(--color-border);border-radius:var(--radius-lg);padding:60px 24px}.infra-empty-state p{margin:0 0 8px;font-size:.95rem}.muted{color:var(--color-text-muted);font-style:normal}.page-loading{text-align:center;color:var(--color-text-muted);padding:60px}.add-table-modal{border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);background:#fff;width:720px;max-width:calc(100vw - 32px);max-height:90vh;animation:.15s modal-in;overflow-y:auto}.source-toggle{border:1px solid var(--color-border);border-radius:var(--radius-md);gap:0;width:fit-content;margin-top:6px;display:flex;overflow:hidden}.source-toggle-btn{font-size:.875rem;font-family:var(--font-sans);cursor:pointer;color:var(--color-text-secondary);background:#fff;border:none;padding:7px 18px;font-weight:500;transition:background .12s,color .12s}.source-toggle-btn+.source-toggle-btn{border-left:1px solid var(--color-border)}.source-toggle-btn.active{background:var(--color-primary);color:#fff;font-weight:600}.source-toggle-btn:not(.active):hover{background:var(--color-surface-alt,#f4f4f5)}.modal-two-col{grid-template-columns:1fr 1fr;align-items:start;gap:20px;display:grid}.modal-col-left{flex-direction:column;gap:10px;display:flex}.modal-col-right{flex-direction:column;gap:8px;display:flex}.field-picker{border-radius:var(--radius-md);background:#fff;border:1px solid #e2e8f0;margin-top:8px;overflow:hidden}.field-picker-header{color:#64748b;text-transform:uppercase;letter-spacing:.04em;background:#f8fafc;border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;padding:7px 12px;font-size:.78rem;font-weight:600;display:flex}.field-picker-list{background:#fff;max-height:280px;overflow-y:auto}.field-picker-row{cursor:pointer;border-bottom:1px solid #f1f5f9;align-items:center;gap:10px;padding:8px 12px;transition:background .1s;display:flex}.field-picker-row:last-child{border-bottom:none}.field-picker-row:hover{background:#eff6ff}.field-picker-row input[type=checkbox]{width:15px;height:15px;accent-color:var(--color-primary);flex-shrink:0}.field-picker-name{color:#1e293b;flex:1;font-size:.875rem;font-weight:500}.field-type-pill{text-transform:uppercase;letter-spacing:.06em;border:1px solid;border-radius:99px;flex-shrink:0;padding:2px 8px;font-size:.68rem;font-weight:700}.preview-empty{border-radius:var(--radius-md);text-align:center;color:#94a3b8;background:#f8fafc;border:2px dashed #e2e8f0;padding:32px 16px;font-size:.82rem}.table-preview-wrap{border-radius:var(--radius-md);background:#fff;border:1px solid #e2e8f0;overflow:hidden}.table-preview-scroll{max-width:100%;overflow-x:auto}.table-preview{border-collapse:collapse;width:max-content;min-width:100%;font-size:.78rem}.table-preview th{white-space:nowrap;color:#475569;text-transform:uppercase;letter-spacing:.04em;background:#f8fafc;border-bottom:2px solid #e2e8f0;border-right:1px solid #e2e8f0;padding:6px 10px;font-weight:700;position:relative}.table-preview th:last-child{border-right:none}.table-preview td{border-bottom:1px solid #f1f5f9;border-right:1px solid #f1f5f9;min-width:80px;height:26px;padding:6px 10px}.table-preview td:last-child{border-right:none}.table-preview tr:last-child td{border-bottom:none}.preview-th-label{text-overflow:ellipsis;vertical-align:middle;max-width:120px;display:inline-block;overflow:hidden}.preview-type-dot{vertical-align:middle;border-radius:50%;flex-shrink:0;width:6px;height:6px;margin-left:5px;display:inline-block}.preview-cell-placeholder{background:#f1f5f9;border-radius:3px;width:60%;height:8px;display:block}.preview-count{color:#94a3b8;text-align:right;background:#f8fafc;border-top:1px solid #e2e8f0;margin:0;padding:5px 10px;font-size:.75rem}.seed-dropdown{min-width:220px}.seed-group{border-bottom:1px solid var(--color-border)}.seed-group:last-child{border-bottom:none}.seed-group-label{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);background:var(--color-bg,#fafafa);padding:6px 12px 3px;font-size:.7rem;font-weight:700}.seed-item{padding-left:24px!important}.seed-icon{margin-right:4px;font-size:.8em}.seed-rows{color:var(--color-primary)}.seed-cols{color:var(--color-success);display:inline-block;transform:rotate(-90deg)}
