:root{--primary-blue-dark:#001e62;--primary-blue:#2e3e80;--comp-yellow:#ffc95b;--comp-orange-light:#f8972c;--comp-orange:#f5822a;--comp-blue-light:#7ccee9;--comp-green-light:#63be6e;--comp-green:#0fa14a;--white:#fff;--light-gray-brand:#f8f9fa;--gray:#e9ecef;--dark-gray:#6c757d;--black:#212529;--light-gray:#f7fafc;--dark-header:#1a202c;--blue-active:#4299e1;--text-dark:#2d3748;--text-light:#4a5568;--border-color:#e2e8f0;--danger-color:#f56565;--surface-card:#fff;--surface-sunken:#f1f5f9;--surface-hover:#f6faff;--text-muted:#64748b;--text-secondary:#4a5568;--accent:#4299e1;--accent-hover:#3182ce;--text-on-accent:#fff;--accent-subtle:#eaf2ff;--accent-muted:#4299e11a;--text-primary:#232936;--text-heading:var(--primary-blue-dark);--status-success-bg:#e8f7ed;--status-success-text:#0b6a33;--status-success-border:var(--comp-green);--status-error-bg:#fdecea;--status-error-text:#8a1420;--status-error-border:#dc3545;--status-warning-bg:#fff6e2;--status-warning-text:#8a4a00;--status-warning-border:var(--comp-orange);--status-info-bg:#eaf2ff;--status-info-text:var(--primary-blue-dark);--status-info-border:var(--primary-blue);--shadow-sm:0 1px 2px #2c3e5014;--shadow:0 4px 14px #2c3e5017;--shadow-lg:0 16px 36px #2c3e5024;--border-radius-sm:.25rem;--border-radius:.5rem;--border-radius-lg:1rem;--gradient-blue-green-yellow:linear-gradient(135deg, #2e3e80, #63be6e, #ffc95b);--gradient-blue-orange-yellow:linear-gradient(135deg, #2e3e80, #f5822a, #ffc95b);--workspace-pad-x:12px;--workspace-pad-top:10px;--workspace-pad-bottom:20px;--text-page-title:var(--primary-blue-dark);color:var(--text-dark);background:var(--light-gray);font-family:Montserrat,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:var(--light-gray);color:var(--text-dark);margin:0}button{font:inherit}button:not(.mode-tab):not(.ing-ico-btn):not(.ing-seg-btn):not(.ing-pair-remove-x):not(.login-auth-tab):not(.login-password-toggle):not(.hdr-action-btn):not(.hdr-user-avatar):not(.hdr-user-modern):not(.hdr-menu-item):not(.hdr-menu-theme__btn):not(.permissions-name-btn):not(.ing-btn):not(.profile-pwd-toggle):not(.profile-photo-btn):not(.page-header-action-btn):not(.ing-page-btn):not(.latest-additions-view3d):not(.ing-drawer-close):not(.ing-seq-slot__btn):not(.ing-pair-swap-btn){background:var(--blue-active);color:#fff;cursor:pointer;border:0;border-radius:10px;padding:.75rem 1rem;font-weight:700;transition:background .2s}button:not(.mode-tab):not(.ing-ico-btn):not(.ing-seg-btn):not(.ing-pair-remove-x):not(.login-auth-tab):not(.login-password-toggle):not(.hdr-action-btn):not(.hdr-user-avatar):not(.hdr-user-modern):not(.hdr-menu-item):not(.hdr-menu-theme__btn):not(.permissions-name-btn):not(.ing-btn):not(.profile-pwd-toggle):not(.profile-photo-btn):not(.page-header-action-btn):not(.ing-page-btn):not(.latest-additions-view3d):not(.ing-drawer-close):not(.ing-seq-slot__btn):not(.ing-pair-swap-btn):hover:not(:disabled){background:#3182ce}button.mode-tab{font:inherit;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.6}.shell{box-sizing:border-box;flex-direction:column;width:100%;min-height:100vh;margin:0;padding:0;display:flex}.shell:not(.login-shell){background:var(--light-gray);gap:5px;padding:5px}.shell:not(.login-shell) .app-header{background:var(--white);border:0;border-radius:16px;flex-shrink:0;width:100%;padding:12px 20px;box-shadow:0 2px 12px #2c3e5014}.app-header{border-bottom:1px solid var(--border-color);background:var(--white);width:100%;box-shadow:var(--shadow-sm);flex-shrink:0;padding:14px 20px}.app-header-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px 16px;width:100%;display:grid}.app-header-left{justify-self:start;min-width:0}.app-header-brand{color:inherit;align-items:center;line-height:0;text-decoration:none;display:inline-flex}.app-header-brand:focus-visible{outline:2px solid var(--blue-active);outline-offset:4px;border-radius:4px}.app-header-logo{width:auto;max-width:min(220px,42vw);height:32px;display:block}.app-header-user{color:var(--text-light);white-space:nowrap;text-overflow:ellipsis;max-width:min(200px,35vw);font-size:.8125rem;font-weight:600;overflow:hidden}.app-header-right{justify-self:end;align-items:center;gap:12px;min-width:0;display:flex}@media (width<=640px){.app-header-row{grid-template-columns:1fr auto;row-gap:10px}.app-header-right.hdr-user-cluster{flex-wrap:wrap;justify-content:flex-end;max-width:min(100%,420px)}.mode-tabs{flex:100%;order:3;justify-content:flex-end;width:100%;max-width:100%}.hdr-user-info{display:none}}.app-header-right:not(.hdr-user-cluster) button{border-radius:999px!important;padding:6px 14px!important;font-size:.75rem!important}.app-body{background:0 0;flex-direction:column;flex:1;min-height:0;display:flex;overflow:auto}.mode-tabs{scrollbar-width:none;-ms-overflow-style:none;justify-content:flex-end;justify-self:end;min-width:0;max-width:min(100%,52vw);display:flex;overflow-x:auto}.hdr-user-cluster .mode-tabs{margin-right:4px}.mode-tabs::-webkit-scrollbar{display:none}.mode-tabs-rail{box-sizing:border-box;background:0 0;border:0;border-radius:0;align-items:center;gap:6px;min-height:38px;padding:0;display:inline-flex}.mode-tab{box-sizing:border-box;color:#4a5568;letter-spacing:-.01em;white-space:nowrap;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:10px;flex-shrink:0;align-items:center;gap:8px;min-height:36px;padding:0 14px;font-size:.8125rem;font-weight:600;line-height:1.2;transition:color .15s,background .15s,border-color .15s;display:inline-flex}.mode-tab:hover:not(.mode-tab--active):not(:disabled):not(.mode-tab--ai){color:#2d3748;background:#f1f5f9}.mode-tab--active:not(.mode-tab--ai){color:var(--primary-blue);cursor:default;background:#e8efff;border-color:#c9d8f5}.mode-tab--ai{--measure-ai-border-width:2px;--measure-ai-border-gradient:linear-gradient(90deg, #22d3ee, #7dd3fc, #818cf8, #8b5cf6, #c026d3, #ec4899, #fb923c, #fbbf24, #22d3ee);--measure-ai-fill:var(--white);border:var(--measure-ai-border-width) solid transparent;color:var(--text-light);background:linear-gradient(var(--measure-ai-fill), var(--measure-ai-fill)) padding-box, var(--measure-ai-border-gradient) border-box;background-position:0 0,0%;background-size:100% 100%,300% 100%;background-origin:padding-box,border-box;background-clip:padding-box,border-box;animation:4.5s linear infinite measure-ai-border-flow}.mode-tab--ai .mode-tab__icon-wrap{opacity:.82}.mode-tab--ai:hover:not(.mode-tab--active):not(:disabled){color:var(--text-dark);--measure-ai-fill:#f3f6fa}.mode-tab--ai.mode-tab--active{color:var(--text-on-accent);--measure-ai-fill:#2563eb;cursor:default}.mode-tab--ai.mode-tab--active:hover{color:var(--text-on-accent);--measure-ai-fill:#2563eb}.mode-tab--ai.mode-tab--active .mode-tab__icon-wrap{opacity:1;color:var(--text-on-accent)}@keyframes measure-ai-border-flow{0%{background-position:0 0,0%}to{background-position:0 0,300%}}@media (prefers-reduced-motion:reduce){.mode-tab--ai{background-position:0 0,50%;animation:none}}.mode-tab:disabled{opacity:.5;cursor:not-allowed}.mode-tab:disabled:hover{color:#4a5568;background:0 0}.mode-tab__icon-wrap{width:16px;height:16px;color:inherit;opacity:.82;flex-shrink:0;justify-content:center;align-items:center;display:flex}.mode-tab--active .mode-tab__icon-wrap{opacity:1}.mode-tab__icon{width:16px;height:16px;display:block}.mode-tab__label{line-height:1}@media (width<=1100px){.mode-tab{gap:7px;padding:0 11px;font-size:.75rem}}@media (width<=820px){.mode-tab__label{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.mode-tab{justify-content:center;width:36px;min-width:36px;padding:0}}.train-workspace{background:0 0;flex-direction:column;flex:1;min-height:0;display:flex;overflow:auto}.train-meta{border-bottom:1px solid var(--border-color);background:#fff;flex-wrap:wrap;align-items:center;gap:12px;padding:12px 16px;display:flex}.train-meta-cluster{flex-wrap:wrap;flex:auto;align-items:center;gap:12px 16px;min-width:0;display:flex}.train-meta-reset{cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;margin-left:auto;transition:background .15s,color .15s,border-color .15s;display:inline-flex;color:#475569!important;background:#f8fafc!important;border:1px solid #e2e8f0!important;border-radius:10px!important;padding:0!important}.train-meta-reset:hover:not(:disabled){color:#1d4ed8!important;background:#eff6ff!important;border-color:#93c5fd!important}.train-meta-reset:disabled{opacity:.45!important;cursor:not-allowed!important}.train-meta-reset-icon{width:20px;height:20px;display:block}.train-meta-row{align-items:center;gap:10px;display:inline-flex}.train-meta-label{color:#334155;font-size:.8125rem;font-weight:600}.train-case-select{border:1px solid var(--border-color);color:#1e293b;background:#fff;border-radius:10px;min-width:140px;padding:8px 10px;font-size:.875rem}.train-tags{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.train-tag{color:#475569!important;background:#fff!important;border:1px solid #cbd5e1!important;border-radius:999px!important;padding:7px 12px!important;font-size:.75rem!important;font-weight:600!important}.train-tag--active{color:#1d4ed8!important;background:#eff6ff!important;border-color:#2563eb!important}.train-split{flex:1;min-height:0;display:flex}.train-column{flex-direction:column;flex:1;gap:12px;min-width:0;min-height:0;padding:12px 16px;display:flex}.train-column:first-child{border-right:1px solid var(--border-color)}.train-file-input{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.train-drop{text-align:center;cursor:pointer;background:#fff;border:2px dashed #cbd5e1;border-radius:14px;outline:none;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;padding:14px 16px;transition:border-color .15s,background .15s;display:flex}.train-drop:focus-visible{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb33}.train-drop--active{background:#eff6ff;border-color:#2563eb}.train-drop--filled{border-style:solid;border-color:#94a3b8}.train-drop-title{color:#334155;margin:0 0 6px;font-size:1rem;font-weight:600}.train-drop-hint{color:#94a3b8;max-width:260px;margin:0;font-size:.8125rem;line-height:1.45}.train-drop-file{color:#64748b;text-overflow:ellipsis;white-space:nowrap;max-width:min(90%,420px);margin:10px 0 0;padding:0 12px;font-size:.8125rem;overflow:hidden}.train-preview-wrap{background:#e2e8f0;border-radius:12px;flex:1;min-height:0;position:relative;overflow:hidden}.point-cloud-preview-wrap{width:100%;height:100%;min-height:inherit;position:relative}.point-cloud-mount{width:100%;height:100%;min-height:200px}.point-cloud-compare-bar{z-index:4;pointer-events:none;flex-direction:column;align-items:center;gap:6px;display:flex;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}.point-cloud-compare-btn{pointer-events:auto;color:#f8fafc;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0f172ae0;border:1px solid #94a3b873;border-radius:999px;align-items:center;gap:8px;padding:10px 16px;font-size:.8125rem;font-weight:600;transition:background .15s,border-color .15s,opacity .15s;display:inline-flex;box-shadow:0 8px 24px #00000059}.point-cloud-compare-btn:hover:not(:disabled){background:#1e293bf2;border-color:#e2e8f080}.point-cloud-compare-btn:disabled{opacity:.72;cursor:wait}.point-cloud-compare-hint{pointer-events:none;color:#cbd5e1;text-shadow:0 1px 2px #0009;font-size:.6875rem;font-weight:500}.point-cloud-compare-hint strong{color:#f8fafc;font-weight:700}.point-cloud-mount canvas{width:100%;height:100%;display:block}.train-preview-placeholder{color:#94a3b8;pointer-events:none;justify-content:center;align-items:center;font-size:.875rem;display:flex;position:absolute;inset:0}.train-preview-overlay{z-index:2;color:#475569;background:#f8fafce0;flex-direction:column;justify-content:center;align-items:center;gap:12px;font-size:.875rem;font-weight:600;display:flex;position:absolute;inset:0}.train-preview-overlay--error{color:#b91c1c;text-align:center;padding:16px;font-weight:600}.train-preview-spinner{border:3px solid #e2e8f0;border-top-color:#2563eb;border-radius:50%;width:28px;height:28px;animation:.75s linear infinite train-spin}@keyframes train-spin{to{transform:rotate(360deg)}}.train-actions{background:var(--light-gray);border-top:1px solid var(--border-color);flex-shrink:0;justify-content:center;padding:16px 20px 20px;display:flex}.train-start-btn{min-width:min(320px,92vw);border-radius:999px!important;padding:14px 32px!important;font-size:1rem!important;font-weight:700!important}.train-status-bar{text-align:center;color:#64748b;border-top:1px solid var(--border-color);background:#f1f5f9;flex-shrink:0;padding:12px 16px;font-size:.8125rem}.train-status-bar--error{color:#b91c1c}.train-review{flex-direction:column;gap:12px;padding:14px 16px;display:flex}.train-review-head{border:1px solid var(--border-color);background:#fff;border-radius:12px;padding:10px 12px}.train-review-info{color:#475569;font-size:.8125rem}.train-review-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.review-card{border:1px solid var(--border-color);background:#fff;border-radius:12px;flex-direction:column;gap:10px;padding:10px;display:flex}.review-card h3{color:#334155;margin:0;font-size:.875rem}.review-preview{background:#e2e8f0;border-radius:10px;min-height:260px;position:relative;overflow:hidden}.diagnostic-toggle{border:1px solid #dbeafe;border-radius:10px;display:inline-flex;overflow:hidden}.diagnostic-both{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;height:100%;display:grid}.diagnostic-mini{border-radius:8px;min-height:220px;position:relative;overflow:hidden}.diagnostic-mini-label{z-index:3;letter-spacing:.03em;text-transform:uppercase;color:#92400e;background:#ffffffe6;border:1px solid #f59e0b;border-radius:999px;padding:3px 8px;font-size:.6875rem;font-weight:700;position:absolute;top:8px;left:8px}.diagnostic-mini-label--critical{color:#991b1b;background:#fff1f2f2;border-color:#ef4444}.diag-btn{color:#475569!important;background:#fff!important;border:0!important;border-radius:0!important;padding:8px 10px!important;font-size:.75rem!important;font-weight:600!important}.diag-btn--active{color:#fff!important;background:#1d4ed8!important}.train-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.train-metrics-primary{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;display:grid}.metric-card{border:1px solid var(--border-color);background:#fff;border-radius:12px;flex-direction:column;gap:6px;padding:10px;display:flex}.metric-card span{color:#64748b;font-size:.75rem}.metric-card strong{color:#0f172a;font-size:1rem}.metric-card--critical{background:#fee2e2;border-color:#fca5a5}.metric-card--critical strong{color:#991b1b}.metric-card--alert{box-shadow:0 0 0 2px #ef444426}.review-actions{flex-direction:column;gap:10px;padding-top:4px;display:flex}.review-feedback{border:1px solid var(--border-color);background:#fff;border-radius:12px;flex-direction:column;gap:10px;padding:12px;display:flex}.review-help{background:#f8fbff;border:1px solid #dbeafe;border-radius:12px;padding:10px 12px}.review-help p{color:#334155;margin:0 0 6px;font-size:.79rem;line-height:1.45}.review-help p:last-child{margin-bottom:0}.review-help-rule{background:#fffbeb;border:1px solid #fde68a;border-radius:8px;padding:8px;color:#92400e!important;margin-top:8px!important}.review-help-footnote{color:#475569!important}.review-feedback-title{color:#334155;font-size:.8125rem;font-weight:700}.review-issues-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;display:grid}.review-issue{color:#334155;align-items:center;gap:8px;font-size:.8125rem;display:inline-flex}.review-note-label{color:#475569;font-size:.75rem;font-weight:600}.review-note{width:100%;min-height:78px;font:inherit;color:#1e293b;resize:vertical;border:1px solid #cbd5e1;border-radius:10px;padding:8px 10px;font-size:.8125rem}.review-action-btn{min-width:200px;border-radius:999px!important;font-size:.875rem!important;font-weight:700!important}.review-action-btn--approve{background:#15803d!important}.review-action-btn--review{background:#d97706!important}.review-action-btn--reject{background:#b91c1c!important}.train-queue{border-top:1px solid var(--border-color);background:#fff;margin-top:auto;padding:12px 16px}.train-queue h3{color:#334155;margin:0 0 8px;font-size:.875rem}.train-queue-empty{color:#64748b;margin:0;font-size:.8125rem}.train-queue-table{border:1px solid var(--border-color);border-radius:10px;flex-direction:column;display:flex;overflow:hidden}.train-queue-row{color:#334155;border-top:1px solid #f1f5f9;grid-template-columns:1.2fr .7fr 1.2fr .9fr .7fr .8fr .7fr;gap:10px;padding:8px 10px;font-size:.75rem;display:grid}.train-queue-row--head{background:#f8fafc;border-top:0;font-weight:700}.clean-placeholder{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;padding:48px 24px;display:flex}.clean-placeholder h2{color:#0f172a;margin:0 0 10px;font-size:1.125rem;font-weight:700}.clean-placeholder p{color:#64748b;max-width:400px;margin:0;font-size:.9375rem;line-height:1.55}.login-shell{background:#f8fafc;justify-content:center;align-items:center;padding:24px 20px 32px}.login-page{text-align:center;flex-direction:column;align-items:stretch;width:min(420px,100%);display:flex}.login-brand{justify-content:center;margin-bottom:28px;display:flex}.login-brand-logo{width:auto;max-width:min(260px,88vw);height:40px;display:block}.login-welcome{letter-spacing:-.03em;color:#1e293b;margin:0 0 6px;font-size:1.625rem;font-weight:700}.login-subtitle{color:#64748b;margin:0 0 22px;font-size:.9375rem}.login-auth-tabs{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:12px;grid-template-columns:1fr 1fr;gap:4px;margin-bottom:22px;padding:4px;display:grid}.login-auth-tab{color:#64748b;cursor:pointer;background:0 0;border:0;border-radius:9px;justify-content:center;align-items:center;gap:6px;padding:10px 8px;font-size:.8125rem;font-weight:600;transition:background .15s,color .15s,box-shadow .15s;display:inline-flex}.login-auth-tab__icon{flex-shrink:0;width:16px;height:16px}.login-auth-tab--active{color:#0f172a;background:#fff;box-shadow:0 1px 3px #0f172a14}.login-auth-tab:disabled{cursor:not-allowed;opacity:.72}.login-form{text-align:left;flex-direction:column;gap:16px;display:flex}.login-field{flex-direction:column;gap:8px;display:flex}.login-field label{color:#334155;font-size:.875rem;font-weight:700}.login-field input{width:100%;font:inherit;color:#1e293b;background:#e8f4fc;border:1px solid #0000;border-radius:10px;padding:12px 14px;font-size:.9375rem;transition:border-color .15s,box-shadow .15s}.login-field input::placeholder{color:#94a3b8}.login-field input:focus{border-color:#93c5fd;outline:none;box-shadow:0 0 0 3px #4a99e22e}.login-password-wrap{position:relative}.login-password-wrap input{padding-right:44px}.login-password-toggle{color:#94a3b8;cursor:pointer;background:0 0;border:0;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;padding:0;display:inline-flex;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.login-password-toggle:hover{color:#64748b;background:#94a3b81f}.login-password-toggle__icon{width:18px;height:18px}.login-error{color:#b91c1c;text-align:center;margin:-4px 0 0;font-size:.8125rem}.login-submit{color:#fff;cursor:pointer;border:0;width:100%;margin-top:4px;font-size:1rem;font-weight:700;transition:background .2s;background:#4a99e2!important;border-radius:10px!important;padding:13px 16px!important}.login-submit:hover:not(:disabled){background:#3d8bd4!important}.login-forgot{color:#4a99e2;margin:18px auto 0;font-size:.875rem;font-weight:600;text-decoration:none;display:inline-block}.login-forgot:hover{text-decoration:underline}.login-footer{color:#94a3b8;border-top:1px solid #e2e8f0;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;margin-top:28px;padding-top:22px;font-size:.75rem;display:flex}.login-footer a{color:#94a3b8;text-decoration:none}.login-footer a:hover{color:#64748b;text-decoration:underline}.login-footer__sep{color:#cbd5e1}.admin-dataset{flex-direction:column;gap:10px;padding:14px 16px;display:flex}.admin-dataset h2{margin:0;font-size:1rem}.admin-dataset p{color:#64748b;margin:0;font-size:.8125rem}.admin-controls{gap:8px;display:flex}.admin-controls input{font:inherit;border:1px solid #cbd5e1;border-radius:10px;flex:1;padding:8px 10px}.admin-success{color:#166534;margin:0;font-size:.8125rem}.admin-pairs-table{background:#fff;border:1px solid #e2e8f0;border-radius:10px;flex-direction:column;display:flex;overflow:hidden}.admin-pairs-row{color:#334155;border-top:1px solid #f1f5f9;grid-template-columns:.6fr 1.6fr .8fr 1.2fr .9fr;gap:8px;padding:8px 10px;font-size:.75rem;display:grid}.admin-pairs-row--head{background:#f8fafc;border-top:0;font-weight:700}.train-shell-layout{flex-direction:row;flex:1;min-height:0;display:flex;overflow:hidden}.train-shell-layout>.train-workspace{flex:1;min-width:0;min-height:0}.train-queue-sidebar{border-left:1px solid var(--border-color);background:#fff;flex-direction:column;flex-shrink:0;width:min(340px,44vw);min-height:0;display:flex}.train-queue-sidebar--collapsed{align-items:center;width:56px}.train-queue-toggle{flex-shrink:0;width:100%;color:#0f172a!important;background:#e2e8f0!important;border-radius:0!important;padding:10px 8px!important;font-size:.75rem!important;font-weight:700!important}.train-queue-sidebar--collapsed .train-queue-toggle{writing-mode:vertical-rl;width:100%;min-height:140px;transform:rotate(180deg)}.train-queue--sidebar{background:0 0;border:0;flex-direction:column;flex:1;min-height:0;margin:0;padding:0;display:flex}.train-queue--sidebar h3{margin:0;padding:0 10px 6px}.train-queue-scroll{flex:1;min-height:0;padding:0 10px 10px;overflow:auto}.train-queue--sidebar .train-queue-table{border-radius:8px;font-size:.7rem}.train-queue--sidebar .train-queue-row{grid-template-columns:minmax(0,1.2fr) .6fr minmax(0,1fr) .5fr;gap:6px}.train-queue-par{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.review-overlay-caption{color:#64748b;margin:0;font-size:.72rem;line-height:1.35}.metric-card-heading{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.metric-hint{color:#475569;cursor:help;-webkit-user-select:none;user-select:none;background:#f8fafc;border:1px solid #94a3b8;border-radius:999px;justify-content:center;align-items:center;width:17px;height:17px;font-size:.6875rem;font-weight:800;display:inline-flex}.metric-card small{color:#64748b;font-size:.6875rem;display:block}.baseline-previous-banner{color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:10px;padding:8px 10px;font-size:.8125rem}.baseline-previous-banner--error{color:#991b1b;background:#fee2e2;border-color:#fecaca}.delta-vs-previous-card{background:#f0f9ff;border:1px solid #bfdbfe;border-radius:12px;padding:12px}.delta-vs-previous-title{color:#1e40af;margin-bottom:8px;font-size:.8125rem;font-weight:700}.delta-vs-previous-grid{color:#475569;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;font-size:.75rem;display:grid}.delta-vs-previous-grid strong{color:#0f172a;margin-top:4px;font-size:1rem;display:block}.delta-vs-previous-grid small{color:#64748b;margin-top:4px;font-size:.6875rem;display:block}.delta-vs-previous-foot{color:#475569;margin-top:8px;font-size:.6875rem}.review-coverage-card{border:1px solid var(--border-color);background:#fff;border-radius:12px;padding:12px}.review-coverage-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.review-coverage-sub{text-transform:uppercase;letter-spacing:.04em;color:#94a3b8;margin-bottom:4px;font-size:.6875rem;font-weight:700}.review-coverage-list{color:#334155;flex-direction:column;gap:4px;margin:0;padding:0;font-size:.8125rem;list-style:none;display:flex}.review-coverage-list li{border-bottom:1px dashed #f1f5f9;justify-content:space-between;gap:8px;padding-bottom:4px;display:flex}.review-benchmark-lock{color:#334155;cursor:pointer;align-items:flex-start;gap:8px;margin-top:8px;font-size:.8125rem;display:flex}.review-benchmark-lock input{margin-top:3px}.review-faltando-threshold-label{color:#334155;margin-top:10px;font-size:.8125rem;font-weight:600}.review-faltando-threshold-row{color:#64748b;align-items:center;gap:8px;margin-top:6px;font-size:.75rem;display:inline-flex}.review-faltando-threshold-input{width:92px;font:inherit;border:1px solid #cbd5e1;border-radius:8px;padding:6px 8px}.review-banner-approve{color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:10px;padding:10px 12px;font-size:.8125rem;line-height:1.4}.review-action-strip{flex-wrap:wrap;gap:10px;display:flex}.review-shortcuts-hint{color:#64748b;margin:0;font-size:.6875rem}.review-shortcuts-hint kbd{background:#f8fafc;border:1px solid #cbd5e1;border-radius:4px;padding:1px 5px;font-family:ui-monospace,monospace;font-size:.6875rem;display:inline-block}.train-modal-backdrop{z-index:2000;background:#0f172a73;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.train-modal{width:min(420px,100%);box-shadow:var(--shadow-lg);background:#fff;border-radius:14px;padding:18px 20px}.train-modal p{color:#334155;margin:0 0 12px;font-size:.875rem;line-height:1.5}.train-modal-title{color:#0f172a;margin:0 0 10px;font-size:1rem}.train-shortcut-list{color:#334155;margin:0 0 14px;padding-left:18px;font-size:.8125rem;line-height:1.65}.train-shortcut-list kbd{background:#f8fafc;border:1px solid #e2e8f0;border-radius:4px;padding:1px 5px;font-family:ui-monospace,monospace;display:inline-block}.train-modal-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.train-modal-close,.train-modal-cancel{color:#0f172a!important;background:#e2e8f0!important;border-radius:999px!important;padding:8px 16px!important}.train-modal-close{width:100%;margin-top:12px}.train-modal-danger-ok{background:#b91c1c!important;border-radius:999px!important;padding:8px 16px!important}.train-metrics{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}@media (width<=720px){.train-shell-layout{flex-direction:column;overflow:auto}.train-queue-sidebar{border-left:none;border-top:1px solid var(--border-color);width:100%;max-height:min(360px,48vh)}.train-queue-sidebar--collapsed{flex-direction:row;width:100%;max-height:none}.delta-vs-previous-grid{grid-template-columns:1fr}.train-split{flex-direction:column}.train-column:first-child{border-bottom:1px solid #e2e8f0;border-right:none}.train-preview-wrap{min-height:240px}.train-review-grid{grid-template-columns:1fr}.train-metrics,.train-metrics-primary{grid-template-columns:repeat(2,minmax(0,1fr))}.train-queue-row,.review-issues-grid{grid-template-columns:1fr}.admin-controls{flex-direction:column}.admin-pairs-row{grid-template-columns:1fr}}.app-fade-out{opacity:0;transition:opacity .2s}.app-session-boot{flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:min(60vh,420px);padding:24px;display:flex}.app-session-boot__text{color:var(--text-light);margin:0;font-size:14px}.hdr-user-cluster{flex-direction:row;justify-self:end;align-items:center;gap:10px;min-width:0;display:flex;position:relative}.hdr-user-modern{cursor:pointer;min-width:0;font:inherit;color:inherit;text-align:left;background:0 0;border:0;align-items:center;gap:12px;padding:0;display:flex}.hdr-user-modern:hover .hdr-user-name{color:var(--blue-active)}.hdr-user-modern:focus-visible{outline:2px solid var(--blue-active);outline-offset:4px;border-radius:8px}.hdr-user-avatar{border:1.5px solid var(--border-color);background:linear-gradient(135deg,#e0e7ff 0%,#c7d2fe 100%);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:inline-flex}.hdr-user-modern:hover .hdr-user-avatar{border-color:var(--blue-active);transform:scale(1.02)}.hdr-user-avatar{transition:border-color .2s,transform .2s}.hdr-user-avatar__initials{color:#4338ca;font-size:13px;font-weight:700;line-height:1}.hdr-user-info{flex-direction:column;gap:2px;min-width:0;display:flex}.hdr-user-name{color:var(--text-dark);white-space:nowrap;text-overflow:ellipsis;max-width:180px;font-size:14px;font-weight:600;line-height:1.2;overflow:hidden}.hdr-user-org{color:var(--text-light);white-space:nowrap;text-overflow:ellipsis;max-width:180px;font-size:11px;line-height:1.2;overflow:hidden}.hdr-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.hdr-action-btn{border:1.5px solid var(--border-color);background:var(--white);width:32px;height:32px;color:var(--text-dark);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;transition:border-color .2s,background-color .2s,color .2s;display:inline-flex;padding:0!important}.hdr-action-btn:hover{border-color:var(--blue-active);background:var(--light-gray-brand);color:var(--blue-active)}.hdr-action-btn:focus-visible{outline:2px solid var(--blue-active);outline-offset:2px}.hdr-action-btn__icon{flex-shrink:0;display:block}.hdr-action-btn--logout{color:#dc2626;background:#fef2f2;border-color:#fee2e2}.hdr-action-btn--logout:hover{color:#b91c1c;background:#fee2e2;border-color:#fecaca}[data-theme=dark] .hdr-action-btn{background:var(--light-gray-brand)}[data-theme=dark] .hdr-action-btn--logout{color:#fca5a5;background:#450a0a;border-color:#7f1d1d}[data-theme=dark] .hdr-action-btn--logout:hover{color:#fecaca;background:#7f1d1d;border-color:#991b1b}.hdr-user-email{color:var(--text-light);font-size:11px}.hdr-user-role{color:var(--text-light);margin-top:2px;font-size:11px}.hdr-user-menu{background:var(--white);border:1px solid var(--border-color);width:220px;box-shadow:var(--shadow-lg);z-index:50;border-radius:12px;animation:.18s ease-out hdrMenuIn;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden}.hdr-user-menu-anchor{flex-shrink:0;position:relative}.hdr-user-menu-meta{min-width:0}.hdr-user-menu-meta .hdr-user-name{max-width:none}@keyframes hdrMenuIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.hdr-user-menu-top{border-bottom:1px solid var(--border-color);gap:12px;padding:16px;display:flex}.hdr-menu-item{width:100%;height:40px;color:var(--text-dark);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:0;align-items:center;gap:8px;padding:10px 16px;font-size:13px;display:flex}.hdr-menu-item:hover{background:var(--light-gray-brand)}.hdr-menu-item--danger{color:var(--danger-color)}.hdr-menu-divider{background:var(--border-color);height:1px;margin:6px 0}.hdr-menu-theme{flex-direction:column;gap:8px;padding:8px 16px 12px;display:flex}.hdr-menu-theme__label{letter-spacing:.04em;text-transform:uppercase;color:var(--text-light);font-size:11px;font-weight:600}.hdr-menu-theme__options{grid-template-columns:1fr 1fr;gap:6px;display:grid}.hdr-menu-theme__btn{border:1px solid var(--border-color);background:var(--light-gray-brand);height:34px;color:var(--text-dark);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:0 10px;font-size:12px;font-weight:600;display:inline-flex}.hdr-menu-theme__btn:hover{border-color:var(--blue-active);color:var(--blue-active)}.hdr-menu-theme__btn--active{border-color:var(--blue-active);background:var(--accent-subtle);color:var(--blue-active)}.hdr-menu-item--danger:hover{background:#fef2f2}.hdr-menu-hr{border:0;border-top:1px solid var(--border-color);margin:0}.ing-page{background:0 0;width:100%;min-height:100%}.ing-page-inner{width:100%;max-width:none;padding:var(--workspace-pad-top) var(--workspace-pad-x) var(--workspace-pad-bottom);box-sizing:border-box;margin:0}.page-header{box-sizing:border-box;width:100%;margin:0 0 12px;padding-left:10px}.page-header-top{justify-content:space-between;align-items:center;gap:12px;width:100%;min-height:36px;display:flex}.page-header-title{flex-wrap:wrap;flex:1;justify-content:flex-start;align-items:center;gap:12px;min-width:0;display:flex}.page-header__h1,.ing-h1{color:var(--text-page-title);letter-spacing:.01em;text-align:left;margin:0;font-size:1.5rem;font-weight:700;line-height:1.13}.page-header-subtitle{color:var(--text-secondary);background:var(--accent-subtle);border:1px solid var(--border-color);border-radius:999px;margin:0;padding:4px 10px;font-size:12px;font-weight:400;line-height:1.4}.page-header-actions{flex-shrink:0;align-items:center;gap:8px;margin-left:auto;display:flex}button.page-header-action-btn{border:1px solid var(--border-color);background:var(--surface-card);min-height:36px;color:var(--text-dark);cursor:pointer;box-shadow:var(--shadow-sm);white-space:nowrap;border-radius:10px;justify-content:center;align-items:center;gap:6px;padding:8px 12px;font-size:12px;font-weight:600;line-height:1;transition:background .15s,color .15s,border-color .15s;display:inline-flex}button.page-header-action-btn:hover:not(:disabled){background:var(--surface-hover);color:var(--text-dark);border-color:#cbd5e1}button.page-header-action-btn--icon{gap:0;width:36px;min-width:36px;padding:8px}button.page-header-action-btn--primary{background:var(--accent);color:#fff;border-color:var(--accent)}button.page-header-action-btn--primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}button.page-header-action-btn--success{color:#fff;background:#16a34a;border-color:#16a34a}button.page-header-action-btn--success:hover:not(:disabled){color:#fff;background:#15803d;border-color:#15803d}button.page-header-action-btn:disabled{opacity:.6;cursor:not-allowed}@media (width<=768px){.page-header-top{flex-wrap:wrap;align-items:flex-start}.page-header-title{gap:8px;min-width:100%}.page-header-actions{justify-content:flex-start;width:100%;margin-left:0}.page-header-subtitle{white-space:normal}}.ing-sub{color:var(--text-light);margin:4px 0 0;font-size:13px;line-height:1.5}.ing-header-lead .ing-sub,.adm-head .ing-sub{display:none}.ing-header-lead{flex-wrap:wrap;align-items:baseline;gap:4px 12px;min-width:0;display:flex}.ing-header{justify-content:space-between;align-items:center;min-height:48px;margin:0 0 12px;padding-left:0;display:flex}.ing-header-actions{align-items:center;gap:12px;display:flex}button.ing-btn{border-radius:8px;align-items:center;gap:8px;padding:8px 14px;font-size:13px;font-weight:600;transition:background .15s ease-out,border-color .15s ease-out,transform .12s;display:inline-flex}button.ing-btn--outline{background:var(--white);color:var(--text-dark);border:1px solid var(--border-color)}button.ing-btn--outline:hover:not(:disabled){background:var(--white);border-color:var(--blue-active);color:var(--text-dark)}button.ing-btn--primary{background:var(--blue-active);color:#fff;box-shadow:var(--shadow-sm);border:0;padding:10px 16px}button.ing-btn--primary:hover:not(:disabled){background:#3182ce}button.ing-btn--orange{background:var(--comp-orange-light);color:#fff;border:0}button.ing-btn--confirm{background:var(--comp-green);color:#fff;border:0;border-radius:10px;flex:1.4;padding:12px;font-weight:700;position:relative;overflow:hidden}button.ing-btn--confirm:hover:not(:disabled){filter:brightness(.92)}button.ing-btn--confirm:disabled,button.ing-btn--confirm.ing-btn--confirm--disabled{background:var(--surface-sunken);color:var(--text-muted);border:1px solid var(--border-color);cursor:not-allowed;filter:none;flex:1.4}.ing-bench-err-banner{color:#991b1b;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;align-items:flex-start;gap:12px;margin-bottom:16px;padding:12px 14px;display:flex}.ing-bench-err-banner__title{margin:0 0 6px;font-size:13px;font-weight:700}.ing-bench-err-banner__text{word-break:break-word;margin:0 0 10px;font-size:12px;line-height:1.45}.ing-bench-err-banner__cta{font-size:12px}.ing-bench-err-banner--info{color:var(--text-primary,#0f172a);background:#3b82f614;border-color:#3b82f659}.ing-bench-err-banner--info .ing-bench-err-banner__title{color:var(--blue-active,#2563eb)}.ing-dot-leg{vertical-align:0;border-radius:50%;width:10px;height:10px;margin-right:2px;display:inline-block}.ing-dot-leg--ok{background:#22c55e}.ing-dot-leg--bad{background:#ef4444}.ing-drawer-foot-hint{color:var(--text-muted);text-align:center;flex:100%;margin:0 0 8px;font-size:12px}.ing-suspect-banner{color:#92400e;background:#fffbeb;border:1px solid #fcd34d;border-radius:10px;align-items:flex-start;gap:12px;margin-bottom:16px;padding:12px 14px;display:flex}.ing-suspect-banner__text{margin:0 0 8px;font-size:13px;line-height:1.45}.ing-suspect-banner__action{color:#b45309;cursor:pointer;background:0 0;border:0;padding:0;font-size:12px;font-weight:600;text-decoration:underline}.ing-par-suspect-ico{vertical-align:-2px;color:#d97706;margin-right:6px;display:inline-block}.ing-par-main{align-items:center;gap:0;min-width:0;display:flex}.ing-pair-warn{color:#b45309;margin:6px 0 0;font-size:11px;line-height:1.35}.ing-pair-swap-btn{border:1px solid var(--border-color);background:var(--white);color:var(--text-secondary);cursor:pointer;border-radius:8px;flex-shrink:0;align-items:center;gap:4px;padding:6px 10px;font-size:11px;font-weight:600;display:inline-flex}.ing-pair-swap-btn:hover:not(:disabled){background:var(--surface-sunken);border-color:var(--blue-active);color:var(--blue-active)}.ing-upload-sec--scope{margin-top:8px}button.ing-btn--danger-outline{background:var(--white);color:var(--danger-color);border:1px solid #feb2b2}button.ing-btn--danger-outline:hover:not(:disabled){background:#fff5f5}button.ing-btn--danger{background:var(--danger-color);color:#fff;border:0}button.ing-btn--danger:hover:not(:disabled){filter:brightness(.95)}.kpi-cards{box-sizing:border-box;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;width:100%;max-width:100%;margin-bottom:14px;display:grid}.kpi-cards--3{grid-template-columns:repeat(3,minmax(0,1fr))}.kpi-card{background:var(--surface-card);border:1.5px solid var(--border-color);box-sizing:border-box;border-radius:14px;flex-direction:column;min-width:0;max-width:100%;min-height:96px;padding:14px 14px 16px;transition:border-color .2s,background-color .2s;display:flex;overflow:hidden}.kpi-card:hover{border-color:var(--accent);background-color:var(--surface-hover)}.kpi-card--clickable{cursor:pointer}.kpi-card--clickable:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.kpi-header{align-items:center;gap:8px;margin-bottom:0;display:flex}.kpi-icon{background:var(--accent-muted);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.kpi-icon-svg{width:16px;height:16px;color:var(--text-heading)}.kpi-titles{flex-direction:column;min-width:0;display:flex}.kpi-title{color:var(--text-primary);font-size:.85rem;font-weight:700;line-height:1.1}.kpi-desc{color:var(--text-muted);margin-top:2px;font-size:.75rem;line-height:1.35}.kpi-value{color:var(--text-primary);letter-spacing:-.02em;margin-top:12px;margin-bottom:0;font-size:1.3rem;font-weight:700;line-height:1.15}.kpi-value--warn{color:var(--comp-orange-light)}.kpi-value--danger{color:var(--danger-color)}@media (width<=1200px){.kpi-cards,.kpi-cards--3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=640px){.kpi-cards,.kpi-cards--3{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.kpi-card{min-height:92px;padding:12px 10px 14px}}.ing-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px;display:grid}@media (width<=1200px){.ing-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}.ing-table-wrap{background:var(--surface-card);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);box-sizing:border-box;border-radius:8px;width:100%;min-width:0;max-width:100%;overflow:hidden}.ing-table-scroll{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:#cbd5e1 transparent;width:100%;min-width:0;max-width:100%;overflow-x:hidden}@media (width<=1024px){.ing-table-scroll{overflow-x:auto}}.ing-table-scroll::-webkit-scrollbar{height:8px}.ing-table-scroll::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.ing-table{table-layout:fixed;border-collapse:collapse;box-sizing:border-box;width:100%;max-width:100%}.ing-table th,.ing-table td{box-sizing:border-box;overflow:hidden}.ing-col-date{width:9%}.ing-col-par{width:30%}.ing-col-tipo{width:8%}.ing-col-tags{width:10%}.ing-col-status{width:15%}.ing-col-metric{width:8%}.ing-col-actions{width:12%}.ing-table thead th{text-align:left;text-transform:uppercase;letter-spacing:.04em;height:auto;color:var(--text-muted);background:var(--surface-sunken);border-bottom:1px solid var(--border-color);white-space:nowrap;padding:12px;font-size:12px;font-weight:600}.ing-th-num,.ing-table thead th.ing-th-num{text-align:right}.ing-table thead th.ing-th-left,.ing-table td.ing-td-left{text-align:left}.ing-tr{border-bottom:1px solid var(--border-color);cursor:pointer;background:var(--surface-card);transition:background .15s}.ing-tr:hover{background:var(--surface-sunken)}.ing-tr--last{border-bottom:none}.ing-tr--on{background:var(--status-info-bg)}.ing-tr--on:hover{background:#dbeafe}.ing-tr--static{cursor:default}.ing-table td{color:var(--text-secondary);vertical-align:middle;padding:12px;font-size:13px}.ing-par-main{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-weight:500;overflow:hidden}.ing-par-sub{color:var(--dark-gray);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:10px;overflow:hidden}.ing-td-par{max-width:0;overflow:hidden}.ing-tags{flex-wrap:wrap;gap:6px;display:flex}.ing-tag{background:var(--gray);height:20px;color:var(--text-light);border-radius:999px;align-items:center;padding:0 10px;font-size:11px;font-weight:500;display:inline-flex}.ing-tag--btn{cursor:pointer;font:inherit;border:0}.ing-tag--on{color:#1e40af;background:#dbeafe}.ing-td-num{text-align:right;font-weight:600}.ing-table td.ing-td-num{text-align:right}.ing-td-num--bad{color:var(--danger-color)}.ing-status{white-space:nowrap;border:1px solid #0000;border-radius:6px;align-items:center;gap:4px;min-height:24px;padding:4px 8px;font-size:12px;font-weight:500;line-height:1.2;display:inline-flex}.ing-status--proc{background:var(--status-info-bg);color:var(--status-info-text);border-color:var(--status-info-border)}.ing-status--ready{background:var(--status-warning-bg);color:var(--status-warning-text);border-color:var(--status-warning-border)}.ing-status--ok{background:var(--status-success-bg);color:var(--status-success-text);border-color:var(--status-success-border)}.ing-status--muted{background:var(--surface-sunken);color:var(--text-muted);border-color:var(--border-color)}.ing-status--demo{color:#fff;background:#3b97d3;border-color:#2b6cb0}.ing-status--disc{background:var(--surface-sunken);color:var(--text-muted);border-color:var(--border-color)}.ing-status--err{background:var(--status-error-bg);color:var(--status-error-text);border-color:var(--status-error-border)}.ing-status--warn{background:var(--status-warning-bg);color:var(--status-warning-text);border-color:var(--status-warning-border)}.ing-spinner{border:1.5px solid #93c5fd;border-top-color:#1e40af;border-radius:50%;width:10px;height:10px;animation:1.2s linear infinite ingSpin}@keyframes ingSpin{to{transform:rotate(360deg)}}.ing-actions{white-space:nowrap;flex-flow:row;align-items:center;gap:4px;display:inline-flex}.ing-ico-btn{box-sizing:border-box;cursor:pointer;width:auto;min-width:1.25rem;height:auto;min-height:1.25rem;color:var(--text-muted);background:0 0;border:0;border-radius:0;justify-content:center;align-items:center;margin:0;padding:2px;font-weight:400;line-height:0;transition:color .15s;display:inline-flex}.ing-ico-btn svg{flex-shrink:0;width:1.25rem;height:1.25rem}.ing-ico-btn--view{color:var(--accent)}.ing-ico-btn--view:hover:not(:disabled){color:var(--accent-hover);background:0 0}.ing-ico-btn:hover:not(:disabled):not(.ing-ico-btn--view):not(.ing-ico-btn--green):not(.ing-ico-btn--danger):not(.ing-ico-btn--purge){color:var(--text-secondary);background:0 0}.ing-ico-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.ing-ico-btn:disabled{opacity:.5;cursor:not-allowed}.ing-ico-btn--green{color:#16a34a}.ing-ico-btn--green:hover:not(:disabled){color:#15803d;background:0 0}.ing-ico-btn--orange{color:#eab308}.ing-ico-btn--orange:hover:not(:disabled){color:#a16207;background:0 0}.ing-ico-btn--danger,.ing-ico-btn--purge{color:#ef4444}.ing-ico-btn--danger:hover:not(:disabled),.ing-ico-btn--purge:hover:not(:disabled){color:#b91c1c;background:0 0}td.ing-td-actions{white-space:nowrap;vertical-align:middle;overflow:visible}th.ing-th-actions{white-space:nowrap}.ing-pager{border-top:1px solid var(--border-color);background:var(--surface-card);justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.ing-pager-info{color:var(--text-secondary);padding-left:2px;font-size:12px}.ing-pager-btns{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.ing-page-btn{border:1px solid var(--border-color);background:var(--surface-sunken);cursor:pointer;min-width:32px;height:32px;color:var(--text-secondary);border-radius:10px;padding:0 10px;font-size:12px;font-weight:600;line-height:1;transition:background .15s,color .15s,border-color .15s}.ing-page-btn--nav{width:32px;padding:0}.ing-page-btn:hover:not(:disabled):not(.ing-page-btn--on){background:var(--surface-hover);color:var(--text-dark)}.ing-page-btn:disabled{opacity:.5;cursor:not-allowed}.ing-page-btn--on{background:var(--accent);color:#fff;border-color:var(--accent)}.ing-page-btn--on:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.ing-page-ellipsis{text-align:center;min-width:24px;color:var(--text-muted);-webkit-user-select:none;user-select:none;padding:0 4px;font-size:14px;font-weight:600;line-height:32px}.ing-empty{text-align:center;background:var(--white);max-width:480px;box-shadow:var(--shadow-sm);border-radius:12px;margin:48px auto;padding:48px 32px}.ing-empty-ico{color:var(--dark-gray);margin-bottom:12px}.ing-empty-title{margin:0 0 8px;font-size:16px;font-weight:600}.ing-empty-text{color:var(--text-light);margin:0 0 20px;font-size:13px}.ing-modal-back{z-index:80;background:#00000073;justify-content:center;align-items:center;padding:24px;animation:.2s ease-out ingFade;display:flex;position:fixed;inset:0}@keyframes ingFade{0%{opacity:0}to{opacity:1}}.ing-modal{background:var(--white);width:720px;max-width:100%;max-height:85vh;box-shadow:var(--shadow-lg);border-radius:12px;flex-direction:column;animation:.22s cubic-bezier(.22,1,.36,1) ingModalIn;display:flex}.ing-modal--sm{width:480px}.ing-modal--fb{width:520px}.ing-modal--upload{width:min(880px,100%)}.ing-modal--rel{position:relative}.ing-modal-body--upload{max-height:min(72vh,720px)}@keyframes ingModalIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.ing-modal-head{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.ing-modal-title{margin:0;font-size:18px;font-weight:700}.ing-modal-x{cursor:pointer;color:var(--text-light);background:0 0;border:0;font-size:20px;line-height:1;transition:color .12s}.ing-modal-x:hover{color:var(--danger-color)}.ing-modal-body{padding:24px;overflow:auto}.ing-modal-foot{border-top:1px solid var(--border-color);justify-content:flex-end;gap:12px;padding:16px 24px;display:flex}.ing-modal-foot--split{justify-content:space-between;align-items:center}.ing-modal-foot--stack{flex-direction:column;justify-content:flex-start;align-items:stretch;gap:10px}.ing-modal-foot--stack>.ing-btn{justify-content:center;width:100%}.ing-modal-foot--stack .ing-modal-foot__dismiss{width:auto;min-height:32px;color:var(--text-muted,#64748b);align-self:center;margin-top:2px;padding-inline:12px;font-weight:500}.ing-drop{border:2px dashed var(--border-color);background:var(--light-gray);text-align:center;cursor:pointer;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;min-height:160px;padding:32px;transition:border-color .16s ease-out,transform .16s ease-out,background .16s ease-out;display:flex}.ing-upload-file-input{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.ing-drop--on{border-style:solid;border-color:var(--blue-active);background:#ebf8ff;transform:scale(1.01)}.ing-drop--await-clean{background:#f0f9ff;border-color:#90cdf4}.ing-drop--replace{background:#fffaf0;border-color:#f6ad55}.ing-drop-cancel-replace{min-height:32px;margin-top:4px;padding:4px 12px;font-size:12px}.ing-seq-slots{flex-direction:column;flex:1;gap:10px;min-width:0;display:flex}.ing-seq-slot{border:1px solid var(--border-color);background:#f7fafc;border-radius:8px;padding:8px 10px}.ing-seq-slot__head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px;display:flex}.ing-seq-slot__label{text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);font-size:11px;font-weight:700}.ing-seq-slot__actions{align-items:center;gap:3px;display:inline-flex}.ing-seq-slot__btn{border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;border-radius:4px;height:20px;min-height:0;padding:1px 6px;font-size:10px;font-weight:600;line-height:1}.ing-seq-slot__btn:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);text-decoration:none}.ing-seq-slot__btn:disabled{opacity:.45;cursor:not-allowed}.ing-seq-slot__btn--danger{color:#fff;background:#e53e3e;border-color:#e53e3e}.ing-seq-slot__btn--danger:hover:not(:disabled){background:#c53030;border-color:#c53030}.ing-seq-slot__file{color:var(--text-dark);flex-wrap:wrap;align-items:baseline;gap:8px;min-width:0;margin:0;font-size:13px;display:flex}.ing-seq-slot__file strong{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-weight:600;overflow:hidden}.ing-seq-slot__meta{color:var(--text-muted);flex-shrink:0;font-size:12px}.ing-pair-card__toolbar{border-top:1px solid var(--border-color);flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;padding-top:10px;display:flex}.ing-upload-add-another{justify-content:center;margin:8px 0 4px;display:flex}.ing-upload-seed-banner{color:#2b6cb0;background:#ebf8ff;border:1px solid #90cdf4;border-radius:8px;margin:0 0 12px;padding:10px 12px;font-size:13px;line-height:1.45}.ing-pair-file--await{color:#c05621;font-style:italic}.ing-drop-svg{color:var(--blue-active)}.ing-drop-title{margin:8px 0 4px;font-size:14px;font-weight:600}.ing-drop-hint{color:var(--text-light);margin:0;font-size:12px}.ing-drop-count{color:var(--text-dark);margin:14px 0 0;font-size:13px}.ing-drop-count-warn{color:#c05621;font-weight:600}.ing-code{color:#2d3748;background:#edf2f7;border-radius:4px;padding:2px 6px;font-family:ui-monospace,Menlo,monospace;font-size:11px}.ing-upload-sec{margin-top:12px}.ing-upload-sec-h{text-transform:uppercase;letter-spacing:.04em;color:var(--text-light);margin:0 0 10px;font-size:12px;font-weight:700}.ing-upload-empty-pairs{color:#742a2a;background:#fff5f5;border:1px solid #feb2b2;border-radius:8px;margin:12px 0 0;padding:12px 14px;font-size:13px;line-height:1.45}.ing-pair-badge-ico{background:var(--gray);width:28px;height:28px;color:var(--text-dark);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:800;display:inline-flex}.ing-pair-badge-ico--man{color:#553c9a;background:#e9d8fd}.ing-pair-badge-ico--sug{color:#2c5282;background:#bee3f8}.ing-pair-card--manual{background:#faf5ff;border-color:#d6bcfa;flex-direction:column;align-items:stretch}.ing-pair-file{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.ing-pair-file--dirty{color:#c05621}.ing-pair-file--clean{color:#2b6cb0}.ing-pair-sep{color:var(--border-color);-webkit-user-select:none;user-select:none}.ing-pair-type-select{font:inherit;border:1px solid var(--border-color);border-radius:8px;flex-shrink:0;padding:6px 8px;font-size:12px}.ing-unmatched-box{background:#fffaf0;border:1px solid #fbd38d;border-radius:12px;margin-top:20px;padding:16px}.ing-unmatched-h{color:#c05621;margin:0 0 8px;font-size:14px;font-weight:700}.ing-unmatched-note{color:var(--text-light);margin:0 0 12px;font-size:13px;line-height:1.45}.ing-unmatched-files{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.ing-unmatched-li{background:var(--white);border:1px solid var(--border-color);border-radius:8px;align-items:center;gap:10px;min-width:0;padding:10px 12px;display:flex}.ing-unmatched-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:13px;font-weight:500;overflow:hidden}.ing-unmatched-meta{color:var(--text-light);flex-shrink:0;font-size:12px}.ing-unmatched-rm{border:1px solid var(--border-color);background:var(--white);color:var(--text-dark);cursor:pointer;border-radius:8px;flex-shrink:0;padding:6px 10px;font-size:12px;font-weight:600}.ing-unmatched-rm:hover{background:var(--gray)}.ing-manual-pair{grid-template-columns:1fr 1fr auto;align-items:end;gap:12px;margin-top:16px;display:grid}@media (width<=640px){.ing-manual-pair{grid-template-columns:1fr}}.ing-manual-field{color:var(--text-light);flex-direction:column;gap:6px;min-width:0;font-size:12px;display:flex}.ing-manual-select{font:inherit;border:1px solid var(--border-color);background:var(--white);border-radius:8px;max-width:100%;padding:8px 10px;font-size:13px}.ing-manual-pair-btn{margin-top:0}.ing-upload-sending-overlay{z-index:20;text-align:center;background:#ffffffeb;border-radius:12px;justify-content:center;align-items:center;padding:24px;display:flex;position:absolute;inset:0}.ing-upload-sending-box{max-width:320px}.ing-upload-sending-title{color:var(--text-dark);margin:16px 0 8px;font-size:15px;font-weight:700}.ing-upload-sending-sub{color:var(--text-light);margin:0 0 10px;font-size:13px}.ing-upload-sending-hint{color:var(--text-light);margin:14px 0 0;font-size:12px;line-height:1.4}.ing-upload-progress{background:var(--gray);border-radius:999px;height:6px;overflow:hidden}.ing-upload-progress-fill{border-radius:inherit;background:var(--blue-active);height:100%;transition:width .24s ease-out}.ing-spinner--lg{border-width:3px;width:36px;height:36px;margin:0 auto;display:block}.ing-drawer-back{z-index:90;background:#00000052;justify-content:flex-end;animation:.2s ease-out ingFade;display:flex;position:fixed;inset:0}.ing-drawer{background:var(--surface-card,var(--white));border-left:1px solid var(--border-color);flex-direction:column;width:clamp(520px,31vw,680px);min-width:0;max-width:100%;height:100vh;animation:.24s cubic-bezier(.22,1,.36,1) drawerIn;display:flex;box-shadow:-12px 0 24px #2c3e501f}.ing-drawer--panel{background:var(--white);overflow-y:auto}.ing-drawer--panel .ing-drawer-body{flex:none;padding:0;overflow-y:visible}.geo-panel-body{background:var(--white);flex-direction:column;gap:20px;padding:20px 24px 28px;display:flex}.geo-panel-block{box-shadow:none;background:0 0;border:0;flex-direction:column;gap:0;margin:0;padding:0;display:flex}.geo-panel-section{background:var(--surface-card);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);border-radius:12px;padding:20px 24px}.geo-panel-section-h{color:var(--text-dark);margin:0 0 6px;font-size:18px;font-weight:600}.geo-panel-section-h--caps{letter-spacing:.06em;text-transform:uppercase;color:#3d4f63;margin:0 0 10px;font-size:13px;font-weight:700}.geo-panel-section-sub{color:var(--text-light);margin:0 0 20px;font-size:13px;line-height:1.45}.geo-panel-info{background:#eef2f7;border-radius:10px;flex-direction:column;gap:10px;margin:0;padding:14px 16px;list-style:none;display:flex}.geo-panel-info-row{grid-template-columns:minmax(92px,112px) minmax(0,1fr);align-items:baseline;gap:8px 12px;font-size:14px;line-height:1.45;display:grid}.geo-panel-info-label{color:var(--text-secondary);font-weight:600}.geo-panel-info-value{color:var(--text-dark);word-break:break-word;min-width:0;font-weight:500}.geo-panel-info-value--ellipsis{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.geo-panel-info-value--ok{color:#276749}.geo-panel-info-value--warn{color:#b45309}.geo-panel-info-value--err{color:#b91c1c}.geo-panel-info-value--muted{color:var(--text-muted)}.geo-panel-notes{flex-direction:column;gap:8px;margin-top:12px;display:flex}.geo-panel-note{margin:0}.geo-panel-review{background:#fef2f2;border:1px solid #fecaca;border-radius:10px;overflow:hidden}.geo-panel-review .geo-panel-info{background:0 0;border-radius:0;padding-bottom:4px}.geo-panel-review-explain{color:#7f1d1d;margin:0;padding:4px 16px 14px;font-size:13px;line-height:1.5}.geo-panel-review-explain strong{font-weight:600}.geo-panel-block .geo-panel-alert{margin:12px 0 0}.geo-panel-block .geo-panel-actions{margin-top:4px}.geo-panel-block .geo-panel-timeline,.geo-panel-block .geo-panel-empty,.geo-panel-block .geo-panel-activity{margin-top:2px}.geo-panel-empty{color:var(--text-muted);text-align:center;background:#eef2f7;border-radius:10px;padding:14px 16px;font-size:13px}.geo-panel-activity{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.geo-panel-activity-card{border:1px solid var(--border-color);background:var(--white);border-radius:10px;padding:12px 14px}.geo-panel-activity-card--ok{background:#f7fff9;border-color:#9ae6b4}.geo-panel-activity-card--err{background:snow;border-color:#fecaca}.geo-panel-activity-card__head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:6px;display:flex}.geo-panel-activity-card__time{color:var(--text-muted);font-size:12px}.geo-panel-activity-card__actor{color:var(--text-secondary);text-align:right;font-size:12px;font-weight:500}.geo-panel-activity-card__title{color:var(--text-dark);margin:0;font-size:14px;font-weight:700;line-height:1.35}.geo-panel-activity-card__detail{color:var(--text-light);margin:4px 0 0;font-size:12px;line-height:1.45}.geo-panel-grid{grid-template-columns:1fr;gap:16px 20px;display:grid}@media (width>=540px){.geo-panel-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.geo-panel-grid--3{grid-template-columns:1fr;margin-bottom:4px}@media (width>=540px){.geo-panel-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}}.geo-panel-grid+.geo-panel-grid{margin-top:16px}.geo-panel-field label{color:var(--text-dark);margin-bottom:6px;font-size:13px;font-weight:600;display:block}.geo-panel-field-value{box-sizing:border-box;border:1px solid var(--border-color);background:var(--light-gray-brand);width:100%;color:var(--text-dark);border-radius:8px;align-items:center;min-height:42px;padding:10px 12px;font-size:14px;font-weight:500;line-height:1.35;display:flex}.geo-panel-field-value--ellipsis{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.geo-panel-field--full{grid-column:1/-1}.geo-panel-alert{margin:16px 0 0}.geo-panel-actions{margin-top:0}.geo-panel-timeline{margin:0;padding:0;list-style:none;position:relative}.geo-panel-timeline:before{content:"";background:var(--border-color);width:2px;position:absolute;top:6px;bottom:6px;left:7px}.geo-panel-timeline-item{padding:0 0 16px 28px;position:relative}.geo-panel-timeline-item:last-child{padding-bottom:0}.geo-panel-timeline-dot{background:var(--surface-card,var(--white));border:3px solid var(--blue-active);box-sizing:border-box;border-radius:50%;width:16px;height:16px;position:absolute;top:4px;left:0}.geo-panel-timeline-item--ok .geo-panel-timeline-dot{border-color:var(--comp-green);background:var(--comp-green)}.geo-panel-timeline-item--err .geo-panel-timeline-dot{border-color:var(--danger-color);background:var(--surface-card,var(--white))}.geo-panel-timeline-head{justify-content:space-between;align-items:baseline;gap:12px;font-size:13px;display:flex}.geo-panel-timeline-action{color:var(--text-dark);font-weight:600}.geo-panel-timeline-meta{color:var(--text-muted);text-align:right;flex-shrink:0;font-size:12px}.geo-panel-empty{border:1px dashed var(--border-color);text-align:center;color:var(--text-light);background:var(--light-gray-brand);border-radius:8px;padding:14px 12px;font-size:13px}@keyframes drawerIn{0%{transform:translate(100%)}to{transform:translate(0)}}.ing-drawer-head{border-bottom:1px solid var(--border-color);justify-content:space-between;gap:12px;min-width:0;padding:20px 24px;display:flex}.ing-drawer-head--sticky{z-index:10;background:var(--surface-card,var(--white));flex-shrink:0;align-items:center;padding:16px 24px;position:sticky;top:0;box-shadow:0 1px 3px #2c3e500f}.ing-drawer-title{margin:0 0 8px;font-size:18px;font-weight:700}.ing-drawer-title--solo{color:var(--text-page-title);letter-spacing:.01em;min-width:0;margin:0;font-size:1.5rem;font-weight:700}.ing-drawer-close{width:36px;height:36px;color:var(--text-light);cursor:pointer;background:0 0;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;margin:-4px -8px -4px 0;padding:0;transition:color .15s,background-color .15s;display:inline-flex}.ing-drawer-close:hover{color:var(--text-secondary);background:var(--surface-hover)}.ing-drawer-close:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.ing-drawer-intro{padding-top:16px;padding-bottom:4px}.ing-drawer-head>div:first-of-type{min-width:0}.ing-drawer-pills{flex-wrap:wrap;gap:6px;display:flex}.ing-drawer-body{flex:1;min-width:0;padding:0 24px 24px;overflow:hidden auto}.ing-drawer-tabs{border-bottom:1px solid var(--border-color);z-index:2;background:var(--surface-card,#fff);flex-wrap:wrap;gap:6px;margin:16px 0 20px;padding-bottom:12px;display:flex;position:sticky;top:0}.ing-drawer-tabs__btn{border:1px solid var(--border-color);color:var(--text-light);cursor:pointer;background:#f8fafc;border-radius:999px;padding:6px 14px;font-size:12px;font-weight:500;transition:background .15s,color .15s,border-color .15s}.ing-drawer-tabs__btn:hover{color:var(--text);background:#f1f5f9}.ing-drawer-tabs__btn--on{color:#1d4ed8;background:#e8f0fe;border-color:#93c5fd;font-weight:600}.ing-cloud-select{flex-direction:column;gap:6px;max-width:420px;margin-top:12px;display:flex}.ing-cloud-select__label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-light);font-size:11px;font-weight:600}.ing-cloud-select__input{border:1px solid var(--border-color);color:var(--text);background:#fff;border-radius:8px;padding:8px 12px;font-size:13px}.ing-reg-wrap{overflow-x:auto}.ing-reg-table{border-collapse:collapse;width:100%;font-size:13px}.ing-reg-table th,.ing-reg-table td{text-align:left;border-bottom:1px solid var(--border-color);padding:8px 10px}.ing-reg-table th{text-transform:uppercase;letter-spacing:.04em;color:var(--text-light);font-size:11px;font-weight:600}.ing-reg-cell--ok{color:#047857;font-weight:600}.ing-reg-cell--bad{color:#b91c1c;font-weight:600}.ing-reg-cell--neutral{color:var(--text-light)}.ing-drawer-foot{border-top:1px solid var(--border-color);flex-wrap:wrap;gap:12px;padding:16px 24px;display:flex;box-shadow:0 -4px 12px #2c3e500f}.ing-drawer-foot--stepper{flex-flow:column;align-items:stretch}.ing-drawer-foot--stepper .ing-drawer-foot-hint{overflow-wrap:anywhere;flex:none;width:100%;min-width:0;max-width:100%}.ing-flow-stepper{flex-wrap:wrap;gap:8px;margin-bottom:4px;display:flex}.ing-flow-step{color:var(--text-light);background:#f1f3f5;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:11px;display:flex}.ing-flow-step--active{color:#1d4ed8;background:#e8f0fe;font-weight:600}.ing-flow-step--done{color:#047857;background:#ecfdf5}.ing-flow-step__n{background:#0000000f;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;font-size:10px;font-weight:700;display:inline-flex}.ing-drawer-foot-hint--ok{color:#047857;font-weight:600}.ing-drawer-foot-hint--err{color:#b91c1c}.ing-status-stack{flex-direction:column;align-items:flex-start;gap:4px;display:flex}.ing-train-banner{box-sizing:border-box;background:#f1f5f9;border-radius:8px;flex-direction:column;gap:4px;width:100%;min-width:0;max-width:100%;margin-bottom:4px;padding:12px 14px;font-size:13px;display:flex}.ing-train-banner--active{color:#1e40af;background:#eff6ff;border:1px solid #93c5fd}.ing-train-banner--ok{color:#047857;background:#ecfdf5;border:1px solid #6ee7b7}.ing-train-banner--err{color:#b91c1c;background:#fef2f2;border:1px solid #fca5a5}.ing-train-banner__sub{opacity:.9;font-size:12px;line-height:1.4}.ing-train-banner .ing-spinner{vertical-align:middle;margin-right:6px;display:inline-block}.cand-train-progress{background:#f8fafc;border:1px solid #93c5fd;border-radius:10px;padding:14px;font-size:13px}.cand-train-progress__head{align-items:flex-start;gap:10px;margin-bottom:14px;display:flex}.cand-train-progress__title{color:#1e40af;margin-bottom:4px;font-size:13px;font-weight:700;display:block}.cand-train-progress__detail{color:#334155;margin:0;font-size:12px;line-height:1.45}.cand-train-progress__phases{gap:8px;margin-bottom:12px;display:flex}.cand-train-progress__phase{opacity:.45;flex-direction:column;flex:1;align-items:center;gap:6px;display:flex}.cand-train-progress__phase--done,.cand-train-progress__phase--active{opacity:1}.cand-train-progress__phase-dot{background:#cbd5e1;border-radius:50%;width:10px;height:10px}.cand-train-progress__phase--done .cand-train-progress__phase-dot{background:#22c55e}.cand-train-progress__phase--active .cand-train-progress__phase-dot{background:#2563eb;box-shadow:0 0 0 3px #2563eb40}.cand-train-progress__phase-label{text-align:center;color:#475569;font-size:10px;font-weight:600}.cand-train-progress__bar{background:#e2e8f0;border-radius:999px;height:8px;margin-bottom:12px;overflow:hidden}.cand-train-progress__bar-fill{background:linear-gradient(90deg,#3b82f6,#2563eb);border-radius:999px;height:100%;transition:width .8s}.cand-train-progress__bar-fill--pulse{animation:1.4s ease-in-out infinite candTrainPulse}@keyframes candTrainPulse{0%,to{opacity:.55}50%{opacity:1}}.cand-train-progress__stats{grid-template-columns:1fr 1fr;gap:8px 12px;margin:0 0 10px;padding:0;list-style:none;display:grid}.cand-train-progress__stat-k{text-transform:uppercase;letter-spacing:.04em;color:#64748b;margin-bottom:2px;font-size:10px;display:block}.cand-train-progress__stat-v{color:#0f172a;font-size:12px;font-weight:600}.cand-train-progress__hint{color:#64748b;margin:0;font-size:11px;line-height:1.4}.evo-quality,.evo-clean-volume{margin-top:32px}.evo-clean-volume__head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.evo-clean-volume__head .units-group__title{margin-bottom:6px}.evo-clean-volume__layout{grid-template-columns:minmax(180px,240px) minmax(0,1fr);align-items:stretch;gap:16px;display:grid}.evo-clean-volume__hero{border:1.5px solid var(--border-color);background:linear-gradient(160deg, var(--surface-card) 0%, var(--accent-muted) 140%);border-radius:16px;flex-direction:column;justify-content:center;gap:4px;padding:20px 22px;display:flex}.evo-clean-volume__hero-value{letter-spacing:-.03em;color:var(--text-heading);font-size:clamp(2.4rem,4vw,3.4rem);font-weight:800;line-height:1}.evo-clean-volume__hero-label{color:var(--text-secondary,#334155);font-size:14px;font-weight:600}.evo-clean-volume__hero-meta{color:var(--status-ok-text,#276749);margin-top:4px;font-size:12px;font-weight:600}.evo-clean-volume__breakdown{border:1.5px solid var(--border-color);background:var(--surface-card);border-radius:16px;padding:16px 18px}.evo-clean-volume__breakdown-title{letter-spacing:.06em;text-transform:uppercase;color:var(--text-light);margin:0 0 12px;font-size:11px;font-weight:700}.evo-clean-volume__version-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.evo-clean-volume__version-item{border:1px solid var(--border-subtle,#0f172a14);background:var(--surface-muted,#0f172a05);border-radius:12px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 14px;display:grid}.evo-clean-volume__version-icon{background:var(--accent-muted);width:34px;height:34px;color:var(--text-heading);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.evo-clean-volume__version-copy{flex-direction:column;gap:2px;min-width:0;display:flex}.evo-clean-volume__version-key{color:var(--text-heading);font-size:15px;line-height:1.2}.evo-clean-volume__version-channel{color:var(--text-muted);font-size:12px}.evo-clean-volume__version-stats{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:2px;display:flex}.evo-clean-volume__version-count{color:var(--text-heading);font-size:1.35rem;font-weight:800;line-height:1}.evo-clean-volume__version-pct{color:var(--text-muted);font-size:11px;font-weight:600}@media (width<=860px){.evo-clean-volume__layout{grid-template-columns:1fr}}.evo-trend-dash{margin-top:20px}.evo-trend-dash__header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.evo-trend-dash__header .units-group__title{margin-bottom:4px;font-size:14px}.evo-trend-dash__header .evo-journey__lead{margin-bottom:0;font-size:12px}.evo-trend-dash__ranges{background:0 0;border:none;gap:4px;display:inline-flex;overflow:visible}.evo-trend-dash__range{border:1px solid var(--border-color);background:var(--surface-card);color:var(--text-muted);cursor:pointer;white-space:nowrap;border-radius:6px;padding:5px 9px;font-size:.6875rem;font-weight:600}.evo-trend-dash__range:hover{color:var(--text-dark);background:#3182ce0f}.evo-trend-dash__range--active{color:#fff;background:#3182ce;border-color:#3182ce}.evo-trend-dash__body{grid-template-columns:minmax(0,1fr) minmax(210px,270px);align-items:start;gap:16px;display:grid}.evo-trend-dash__chips{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.evo-trend-dash__chip{background:var(--white);color:#2c5282;cursor:pointer;border:1px solid #bee3f8;border-radius:999px;align-items:center;gap:6px;padding:4px 11px 4px 8px;font-size:.75rem;font-weight:600;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.evo-trend-dash__chip-mark{background:var(--white);border:1.5px solid #90cdf4;border-radius:4px;flex-shrink:0;width:12px;height:12px}.evo-trend-dash__chip--active{color:#fff;background:#3182ce;border-color:#3182ce}.evo-trend-dash__chip--active .evo-trend-dash__chip-mark{background:#fff;border-color:#fff;box-shadow:inset 0 0 0 3px #3182ce}.evo-trend-dash__chart-card{background:var(--white);border:1px solid #e2e8f0;border-radius:12px;margin-bottom:14px;padding:8px 10px 2px;position:relative;overflow:visible}.evo-trend-dash__chart{width:100%;height:auto;min-height:220px;display:block}.evo-trend-dash__point-hit{cursor:pointer}.evo-trend-dash__point{transition:r .12s,stroke-width .12s}.evo-trend-dash__tooltip{z-index:2;pointer-events:none;color:#fff;white-space:nowrap;background:#1a202ceb;border-radius:6px;flex-direction:column;align-items:center;gap:1px;padding:4px 8px;display:flex;position:absolute;transform:translate(-50%,calc(-100% - 8px));box-shadow:0 4px 12px #0f172a2e}.evo-trend-dash__tooltip strong{font-size:.75rem;font-weight:700;line-height:1.2}.evo-trend-dash__tooltip span{color:#ffffffc7;font-size:.625rem;font-weight:500;line-height:1.2}.evo-trend-dash__tooltip-version{color:#ffffffeb;text-overflow:ellipsis;white-space:nowrap;max-width:220px;font-size:.625rem;font-weight:600;line-height:1.2;overflow:hidden}.evo-trend-dash__grid{stroke:#e2e8f0f2;stroke-width:1px}.evo-trend-dash__axis-title{fill:#718096;font-size:9px;font-weight:600}.evo-trend-dash__axis-y{fill:#718096;text-anchor:end;font-size:9px}.evo-trend-dash__axis-x{fill:#718096;font-size:8px}.evo-trend-dash__empty{text-align:center;color:var(--text-muted);background:var(--surface-sunken);border-radius:10px;margin:0 0 16px;padding:32px 16px}.evo-trend-dash__metric-table-card{min-height:220px;padding:10px 14px 14px}.evo-trend-dash__table--metric{margin:0}.evo-trend-dash__table-block{background:var(--white);border:1px solid #e2e8f0;border-radius:12px;padding:12px 14px}.evo-trend-dash__table-title{color:var(--text-heading);margin:0 0 8px;font-size:.875rem;font-weight:700}.evo-trend-dash__table-scroll{overflow-x:auto}.evo-trend-dash__table{border-collapse:collapse;width:100%;font-size:.75rem}.evo-trend-dash__table th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);white-space:nowrap;border-bottom:1px solid #e2e8f0;padding:6px 8px;font-size:.625rem;font-weight:700}.evo-trend-dash__table td{color:var(--text-dark);white-space:nowrap;border-bottom:1px solid #f1f5f9;padding:8px}.evo-trend-dash__table tbody tr:last-child td{border-bottom:none}.evo-trend-dash__delta{color:#276749;font-weight:600}.evo-trend-dash__side-title{color:var(--text-heading);margin:0 0 10px;font-size:.875rem;font-weight:700}.evo-trend-dash__highlights{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.evo-trend-dash__highlight-card{background:var(--white);border:1px solid #e2e8f0;border-radius:12px;flex-direction:column;gap:8px;padding:11px 12px;display:flex}.evo-trend-dash__highlight-name{color:var(--text-dark);font-size:.75rem;font-weight:600}.evo-trend-dash__highlight-value{margin-top:2px;font-size:1rem;line-height:1.2;display:block}.evo-trend-dash__highlight-sub{color:var(--text-muted);margin-top:2px;font-size:.625rem;display:block}.evo-trend-dash__spark{width:100%;height:30px;display:block}@media (width<=1024px){.evo-trend-dash__body{grid-template-columns:1fr}.evo-trend-dash__highlights{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));display:grid}}@media (width<=640px){.evo-trend-dash__ranges{justify-content:stretch;width:100%}.evo-trend-dash__range{text-align:center;flex:1}}.ing-sec{border-bottom:1px solid #f1f3f5;padding:20px 0}.ing-sec:last-child{border-bottom:none}.ing-sec-h{text-transform:uppercase;letter-spacing:.06em;color:var(--text-light);margin:0 0 12px;font-size:11px;font-weight:700}.ing-kv-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px 16px;display:grid}.ing-kv{min-width:0}.ing-kv-l{color:var(--text-light);font-size:12px;font-weight:500}.ing-kv-v{color:var(--text-dark);min-width:0;font-size:13px;font-weight:600}.ing-ellipsis{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:100%;overflow:hidden}.ing-pair-badge{border-radius:10px;justify-content:space-between;align-items:center;min-height:64px;padding:12px 16px;display:flex}.ing-pair-badge--ok{color:#065f46;background:#d1fae5}.ing-pair-badge--mid{color:#92400e;background:#fef3c7}.ing-pair-badge--bad{color:#991b1b;background:#fee2e2}.ing-pair-badge-num{font-size:22px;font-weight:700}.ing-mini-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.ing-mini{background:var(--light-gray-brand);border:1px solid var(--border-color);border-radius:8px;padding:12px 14px}.ing-mini--warn{border-left:3px solid var(--danger-color)}.ing-mini-l{color:var(--text-light);font-size:11px}.ing-mini-v{font-size:16px;font-weight:700}.ing-seg{background:var(--light-gray-brand);border-radius:10px;align-items:center;gap:4px;min-height:32px;padding:4px;display:flex}.ing-seg-btn{font:inherit;color:var(--text-light);cursor:pointer;background:0 0;border:0;border-radius:8px;flex:1;padding:6px 8px;font-size:12px;font-weight:600;transition:background .18s,box-shadow .18s,color .18s}.ing-seg-btn:hover{color:var(--text-dark)}.ing-seg-btn--on{background:var(--white);box-shadow:var(--shadow-sm);color:var(--text-dark)}.ing-viewer{border-radius:10px;height:280px;margin-top:12px;position:relative;overflow:hidden}.ing-viewer .point-cloud-mount{height:100%}.ing-viewer-ph,.ing-viewer-load{color:#e2e8f0;justify-content:center;align-items:center;font-size:13px;display:flex;position:absolute;inset:0}.ing-ta{border:1px solid var(--border-color);background:var(--light-gray-brand);resize:vertical;border-radius:8px;width:100%;min-height:88px;padding:12px;font-size:13px}.ing-ta-count{text-align:right;color:var(--text-light);margin-top:4px;font-size:11px}.ing-tl{margin:0;padding:0;list-style:none}.ing-tl li{gap:12px;margin-bottom:12px;display:flex}.ing-tl-item--pending .ing-tl-dot{background:var(--border-strong,#334155);opacity:.45}.ing-tl-item--pending .ing-tl-title,.ing-tl-item--pending .ing-tl-sub{opacity:.55}.ing-tl-item--active .ing-tl-dot{background:var(--blue-active);box-shadow:0 0 0 3px #3b82f640}.ing-tl-item--done .ing-tl-dot{background:#22c55e}.ing-tl-item--err .ing-tl-dot{background:#ef4444}.ing-tl-dot{background:var(--blue-active);border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:6px}.ing-tl-title{font-size:13px;font-weight:600}.ing-tl-sub{color:var(--text-light);font-size:11px}.ing-confirm-bar{background:#ffffff59;height:3px;animation:3s linear forwards confirmBar;display:block;position:absolute;bottom:0;left:0;right:0}@keyframes confirmBar{0%{transform-origin:0;transform:scaleX(1)}to{transform-origin:0;transform:scaleX(0)}}.ing-toast-host{z-index:120;flex-direction:column;gap:8px;display:flex;position:fixed;top:16px;right:16px}.ing-toast{width:320px;box-shadow:var(--shadow-lg);border-radius:10px;padding:12px 16px;font-size:13px;animation:.22s ease-out toastIn}@keyframes toastIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.ing-toast--ok{color:#065f46;background:#ecfdf5;border:1px solid #a7f3d0}.app-toast-host{z-index:200;pointer-events:none;flex-direction:column;gap:10px;display:flex;position:fixed;top:72px;right:16px}.app-toast{width:min(360px,100vw - 32px);box-shadow:var(--shadow-lg);pointer-events:auto;border:1px solid #0000;border-radius:12px;justify-content:space-between;align-items:flex-start;gap:12px;padding:12px 14px;font-size:13px;animation:.22s ease-out toastIn;display:flex}.app-toast__title{margin:0 0 4px;font-size:13px;font-weight:700;display:block}.app-toast__body{opacity:.9;margin:0;font-size:12px;line-height:1.45}.app-toast__action{cursor:pointer;white-space:nowrap;border:none;border-radius:8px;flex-shrink:0;padding:6px 10px;font-size:11px;font-weight:600}.app-toast--ok{color:#065f46;background:#ecfdf5;border-color:#a7f3d0}.app-toast--ok .app-toast__action{color:#fff;background:#059669}.app-toast--err{color:#991b1b;background:#fef2f2;border-color:#fecaca}.app-toast--err .app-toast__action{color:#fff;background:#dc2626}.app-toast--info{color:#1e40af;background:#eff6ff;border-color:#bfdbfe}.app-toast--info .app-toast__action{color:#fff;background:#2563eb}.ing-tip-wrap{display:inline-flex;position:relative}.ing-tip{background:var(--dark-header);color:#fff;white-space:nowrap;opacity:0;pointer-events:none;border-radius:6px;padding:4px 8px;font-size:11px;transition:opacity .2s;position:absolute;bottom:100%;left:50%;transform:translate(-50%)translateY(-4px)}.ing-tip-wrap:hover .ing-tip{opacity:1}.ing-muted{color:var(--text-light);font-size:12px}.ing-muted--warn{color:#b45309}.ing-animate-in{animation:.2s ease-out ingFade}.clean-page{background:0 0;min-height:100%}.clean-inner{width:100%;max-width:none;padding:var(--workspace-pad-top) var(--workspace-pad-x) var(--workspace-pad-bottom);box-sizing:border-box;margin:0}.clean-dashboard{grid-template-columns:minmax(0,1.55fr) minmax(280px,.85fr);align-items:start;gap:14px;margin-bottom:6px;display:grid}.clean-dashboard__main{min-width:0}.clean-dashboard__aside{min-width:0;position:sticky;top:12px}.clean-latest-card{max-height:min(850px,100vh - 200px)}.clean-latest-item--clickable{cursor:pointer}.clean-latest-item--active{border-color:var(--accent)!important;background:var(--accent-subtle)!important}.clean-latest-status{color:var(--text-muted);flex-shrink:0;margin-right:8px;font-size:10px;font-weight:600}.latest-additions-weight--muted{color:var(--text-muted)!important;background:var(--surface-sunken)!important;font-size:12px!important;font-weight:600!important}.latest-additions-location{align-items:center;gap:4px;display:inline-flex}.latest-additions-card{background:var(--surface-card);border:1.5px solid var(--border-color);box-sizing:border-box;border-radius:12px;flex-direction:column;flex:none;min-width:0;max-width:100%;min-height:250px;padding:15px;transition:border-color .2s,background-color .2s;display:flex;overflow:hidden}.latest-additions-card:hover{border-color:var(--accent);background-color:var(--surface-hover)}.latest-additions-header{flex-shrink:0;justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.latest-additions-header h3{color:var(--text-primary);margin:0;font-size:18px;font-weight:700}.latest-additions-see-all{background:var(--accent);color:var(--text-on-accent);cursor:pointer;border:none;border-radius:6px;padding:4px 10px;font-size:10px;font-weight:600;transition:all .2s}.latest-additions-see-all:hover{background:var(--accent-hover);transform:translateY(-1px)}.latest-additions-content-wrapper{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.latest-additions-content{scrollbar-width:thin;scrollbar-color:#cbd5e1 transparent;flex:auto;min-height:0;max-height:100%;overflow-y:auto}.latest-additions-content::-webkit-scrollbar{width:6px}.latest-additions-content::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}.latest-additions-fade{pointer-events:none;opacity:0;z-index:2;height:70px;transition:opacity .35s;position:absolute;left:0;right:0}.latest-additions-fade.fade-top{background:linear-gradient(to bottom, var(--surface-card), transparent);top:0}.latest-additions-fade.fade-bottom{background:linear-gradient(to top, var(--surface-card), transparent);bottom:0}.latest-additions-card:hover .latest-additions-fade.fade-top{background:linear-gradient(to bottom, var(--surface-hover), transparent)}.latest-additions-card:hover .latest-additions-fade.fade-bottom{background:linear-gradient(to top, var(--surface-hover), transparent)}.latest-additions-fade.visible{opacity:1}.latest-additions-empty{text-align:center;color:var(--text-muted);padding:40px 20px;font-style:italic}.latest-additions-list{flex-direction:column;gap:6px;display:flex}.latest-additions-item{background:var(--surface-sunken);border:1px solid var(--border-color);border-radius:8px;padding:8px 12px;transition:all .2s}.latest-additions-item:hover{background:var(--surface-hover);border-color:#cbd5e1;transform:translateY(-1px)}.latest-additions-item-main{justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px;display:flex}.latest-additions-product{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:14px;font-weight:600;overflow:hidden}.latest-additions-view3d{color:#fff;width:24px;min-width:24px;max-width:24px;height:24px;box-shadow:none;cursor:pointer;background:#cbd5e1;border:none;border-radius:9999px;flex-shrink:0;justify-content:flex-start;align-items:center;gap:0;margin:0;padding:0;font-weight:600;line-height:1;transition:background .15s,color .15s,max-width .35s cubic-bezier(.22,1,.36,1);display:inline-flex;overflow:hidden}.latest-additions-view3d:hover{color:#fff;background:#94a3b8;max-width:64px}.clean-log-view3d.clean-log-view3d--viewing{background:var(--accent);color:#fff;box-shadow:var(--shadow-sm)}.clean-log-view3d.clean-log-view3d--viewing:hover{background:var(--accent-hover);color:#fff}.latest-additions-view3d-slot{flex:0 0 24px;justify-content:center;align-items:center;width:24px;height:24px;display:flex}.latest-additions-view3d-slot svg{stroke:#fff;color:#fff;width:14px;height:14px;display:block}.latest-additions-view3d-icon{flex-shrink:0}.latest-additions-view3d-text{white-space:nowrap;opacity:0;flex:none;max-width:0;font-size:10px;font-weight:600;transition:opacity .18s 60ms,max-width .35s cubic-bezier(.22,1,.36,1);overflow:hidden}.latest-additions-view3d:hover .latest-additions-view3d-text{opacity:1;max-width:32px;padding-right:8px}.latest-additions-weight{color:var(--comp-green);white-space:nowrap;background:color-mix(in srgb, var(--comp-green) 13%, var(--surface-card));border-radius:6px;flex-shrink:0;align-items:center;padding:3px 8px;font-size:13px;font-weight:700;line-height:1.25;display:inline-flex}.latest-additions-item-details{color:var(--text-muted);justify-content:space-between;align-items:center;gap:8px;font-size:11px;display:flex}.latest-additions-date{flex-shrink:0}.latest-additions-location{text-align:right;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.clean-log-card.clean-latest-card{min-height:0;max-height:none}.clean-log-card .latest-additions-header{margin-bottom:12px}.clean-log-card{flex-direction:column;min-height:0;padding-bottom:12px;display:flex}.clean-log-body{flex:none;overflow:hidden}.ing-pager-btns--busy{opacity:.72}.clean-log-body--paging{opacity:.62;pointer-events:none;transition:opacity .14s}.clean-log-body--paging .clean-log-list{filter:saturate(.85)}.clean-log-list{padding:0}.clean-log-list .clean-log-item{background:var(--surface-card);border:1px solid var(--border-color);padding:10px 12px}.clean-log-list .clean-log-item:hover{background:var(--surface-hover);border-color:#cbd5e1}.clean-log-item--active{border-color:var(--accent)!important;background:var(--accent-subtle)!important}.clean-log-item-main{align-items:center;gap:10px;margin-bottom:6px}.clean-log-product{font-size:13px;line-height:1.25}.clean-log-item-actions{flex-shrink:0;align-items:center;gap:6px;display:flex}.clean-log-active-actions{align-items:center;gap:2px;display:inline-flex}.clean-log-act{width:1.75rem;height:1.75rem;border-radius:6px!important;padding:2px!important}.clean-log-act--on{background:var(--status-info-bg)!important;color:var(--status-info-text)!important}.clean-log-item--processing{border-left:3px solid var(--status-warning-border)}.clean-log-weight-tag--active{color:var(--status-warning-text);font-weight:600}.clean-log-weight-tag--ready{color:#276749;font-weight:600}.latest-additions-weight.clean-log-weight-tag{min-height:24px;color:var(--text-muted);background:0 0;border-radius:0;padding:0;font-weight:600}.clean-pending-banner{background:#f0fff4;border:1px solid #9ae6b4;border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;padding:14px 16px;display:flex}.clean-pending-banner p{color:#22543d;margin:0;font-size:.875rem;line-height:1.4}.clean-result-expiry{color:var(--text-muted);flex:220px;margin:0;font-size:.8125rem}.clean-log-item-details{margin-top:0;padding-top:0}.clean-log-item-version{color:var(--text-light);font-weight:600}.clean-log-item-details .latest-additions-location{max-width:55%;color:var(--text-muted);font-size:11px}.clean-log-view3d:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.clean-log-pager{border-top:1px solid var(--border-subtle);flex-direction:column;align-items:stretch;gap:8px;padding:10px 12px 12px;display:flex}.clean-log-pager-info{color:var(--text-muted);text-align:center;font-size:11px}.clean-log-pager .ing-pager-btns{justify-content:center}.clean-log-pager .ing-page-btn{min-width:28px;height:28px;font-size:12px}.clean-log-drawer-foot{flex-wrap:wrap;gap:8px}.clean-log-drawer-foot .ing-btn{align-items:center;gap:6px;display:inline-flex}.ing-sec-note--err{color:var(--comp-red,#f56565);word-break:break-word}.ing-tag--warn{background:color-mix(in srgb, var(--comp-orange,#f8972c) 18%, transparent);color:var(--comp-orange,#f8972c)}.clean-history-head{margin:0 0 12px}.clean-history-head__title{color:var(--text-primary);margin:0;font-size:16px;font-weight:700}.clean-history-head__sub{color:var(--text-muted);margin:4px 0 0;font-size:12px}@media (width<=1100px){.clean-dashboard{grid-template-columns:1fr}.clean-dashboard__aside{order:2;position:static}.clean-latest-card{max-height:420px}}.clean-head{margin:0 0 12px;padding-left:0}.clean-head-lead{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.clean-head__title{letter-spacing:.01em;color:var(--text-page-title);margin:0;font-size:1.5rem;font-weight:700;line-height:1.13}.clean-head__hint{border:1px solid var(--border-color);background:var(--light-gray-brand);color:var(--text-light);border-radius:999px;margin:0;padding:4px 10px;font-size:12px;font-weight:400;line-height:1.4}.clean-card{background:var(--white);box-shadow:var(--shadow-sm);border-radius:12px;padding:24px}.clean-card--upload{border:1px solid var(--border-color);background:linear-gradient(#fff 0%,#f8fbff 100%);margin-bottom:16px;padding:20px;box-shadow:0 2px 16px #2c3e500f}.clean-card--upload-ready{padding-top:0}.clean-card--upload-ready .clean-preview-toolbar{padding-top:12px}.clean-drop-zone{text-align:center;cursor:pointer;background:#fafbfd;border:2px dashed #cbd5e1;border-radius:14px;justify-content:center;align-items:center;min-height:220px;padding:clamp(28px,4vw,40px) 24px;transition:border-color .2s,background .2s,box-shadow .2s,transform .2s cubic-bezier(.22,1,.36,1);display:flex;position:relative}.clean-drop-zone:hover:not(.clean-drop-zone--disabled):not(.clean-drop-zone--ready){background:#f0f9ff;border-color:#93c5fd}.clean-drop-zone--drag{border-color:var(--blue-active);background:#ebf8ff;transform:scale(1.005);box-shadow:0 0 0 4px #4299e126}.clean-drop-zone--ready{cursor:default;background:linear-gradient(#f0fdf4 0%,#fafbfd 100%);border-style:solid;border-color:#86efac}.clean-drop-zone--ready:hover{border-color:#4ade80}.clean-drop-zone--disabled{opacity:.6;pointer-events:none;cursor:not-allowed}.clean-drop-zone__inner{pointer-events:none;flex-direction:column;align-items:center;max-width:420px;margin:0 auto;display:flex}.clean-drop-zone__icon{width:64px;height:64px;color:var(--blue-active);background:linear-gradient(145deg,#ebf8ff 0%,#e0f2fe 100%);border-radius:50%;justify-content:center;align-items:center;margin-bottom:16px;display:flex;box-shadow:0 4px 14px #4299e11f}.clean-drop-zone__icon--ready{color:var(--comp-green);background:linear-gradient(145deg,#d1fae5 0%,#ecfdf5 100%);box-shadow:0 4px 14px #0fa14a1f}.clean-drop-zone__title{letter-spacing:-.02em;color:var(--primary-blue-dark);margin:0;font-size:1.125rem;font-weight:700;line-height:1.3}.clean-drop-zone__sub{color:var(--text-light);margin:8px 0 0;font-size:.875rem;line-height:1.45}.clean-format-tags{flex-wrap:wrap;justify-content:center;gap:8px;margin:16px 0 0;padding:0;list-style:none;display:flex}.clean-format-tag{background:var(--white);color:#475569;letter-spacing:.02em;border:1px solid #e2e8f0;border-radius:999px;align-items:center;height:26px;padding:0 12px;font-size:.75rem;font-weight:600;display:inline-flex}.clean-file-chip{background:var(--white);max-width:100%;box-shadow:var(--shadow-sm);border:1px solid #bbf7d0;border-radius:10px;flex-direction:column;align-items:center;gap:4px;margin-top:14px;padding:10px 16px;display:flex}.clean-file-chip__name{color:var(--text-dark);word-break:break-all;font-size:.875rem;font-weight:600;line-height:1.35}.clean-file-chip__meta{color:var(--text-light);font-size:.75rem}button.clean-drop-zone__change{pointer-events:auto;margin-top:12px;color:var(--blue-active)!important;box-shadow:none!important;background:0 0!important;border-radius:8px!important;padding:6px 12px!important;font-size:.8125rem!important;font-weight:600!important}button.clean-drop-zone__change:hover:not(:disabled){background:#4299e114!important}.clean-file{opacity:0;cursor:pointer;z-index:1;position:absolute;inset:0}.clean-drop-zone .clean-file:not(.clean-file--hidden),.clean-drop-zone--ready .clean-file{pointer-events:none}.clean-upload-actions{flex-direction:column;align-items:center;gap:10px;margin-top:20px;display:flex}.clean-upload-actions--full{align-items:stretch;width:100%}.clean-upload-flow{flex-direction:column;gap:0;display:flex}.clean-upload-flow .wh-form{margin-top:16px;margin-bottom:0}.clean-file--hidden{opacity:0;pointer-events:none;width:0;height:0;position:absolute}.clean-preview-block--primary{margin-top:0}.clean-preview-heading{flex-wrap:wrap;flex:1;align-items:center;gap:8px 10px;min-width:0;display:flex}.clean-preview-file-name{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;max-width:min(100%,360px);font-size:.875rem;font-weight:700;overflow:hidden}.clean-preview-file-size{color:var(--text-muted);background:var(--surface-sunken);border-radius:999px;flex-shrink:0;padding:2px 8px;font-size:.75rem;font-weight:600}.clean-preview-change{flex-shrink:0;margin-top:0!important}.clean-preview-toolbar__actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.clean-preview-cancel{color:var(--danger-color)!important;background:#fff5f5!important;border-color:#fecaca!important;padding:6px 12px!important;font-size:.75rem!important}.clean-preview-cancel:hover:not(:disabled){background:#fee2e2!important;border-color:#fca5a5!important}.clean-upload-flow .clean-preview--tall{height:min(440px,52vh)}button.clean-start-btn{justify-content:center;align-items:center;gap:8px;min-width:min(100%,280px);display:inline-flex;box-shadow:0 4px 14px #4299e140;border-radius:10px!important;padding:14px 28px!important;font-size:.9375rem!important;font-weight:700!important}button.clean-start-btn:hover:not(:disabled){box-shadow:0 6px 18px #4299e152}.clean-upload-actions--full button.clean-start-btn{width:100%;min-width:0}.clean-voxel-panel{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;flex-direction:column;gap:10px;margin-top:16px;padding:14px 16px;display:flex}.clean-voxel-panel__toggle{color:#2d3748;cursor:pointer;align-items:flex-start;gap:10px;font-size:.9rem;display:flex}.clean-voxel-panel__distance{color:#4a5568;align-items:center;gap:10px;font-size:.875rem;display:flex}.clean-voxel-panel__distance input,.clean-voxel-panel__distance-input{width:88px;min-width:88px}.clean-voxel-panel__meta{color:#718096;margin:0;font-size:.8125rem;line-height:1.45}.clean-voxel-panel__warn{margin:0}.clean-point-funnel{background:#edf2f7;border:1px solid #e2e8f0;border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:16px 0;padding:14px 16px;display:flex}.clean-point-funnel__step{flex-direction:column;gap:2px;min-width:120px;display:flex}.clean-point-funnel__step--accent strong{color:#2b6cb0}.clean-point-funnel__label{color:#718096;text-transform:uppercase;letter-spacing:.03em;font-size:.75rem}.clean-point-funnel__value{color:#1a202c;font-size:1.125rem;font-weight:700}.clean-point-funnel__arrow{color:#a0aec0;font-size:1.25rem;font-weight:600}.clean-pipeline-facts--timing{border-bottom:1px solid #e2e8f0;margin-bottom:12px;padding-bottom:12px}.clean-card--upload .clean-file-err{margin-top:16px}.clean-file-err{color:#c53030;background:#fff5f5;border:1px solid #feb2b2;border-radius:10px;margin-top:12px;padding:12px 14px;font-size:14px;line-height:1.4}.clean-preview-block{margin-top:20px}.clean-preview-label{text-transform:uppercase;letter-spacing:.05em;color:#64748b;margin:0;font-size:.75rem;font-weight:600}.clean-preview{border:1px solid var(--border-color);border-radius:12px;height:300px;margin-top:0;position:relative;overflow:hidden;box-shadow:inset 0 1px 2px #0f172a0f}.clean-preview--tall{height:420px}.clean-preview .point-cloud-mount{height:100%}.clean-preview--processing{box-shadow:inset 0 1px 2px #0f172a0f,0 0 0 2px #4299e140}.clean-preview-processing-badge{z-index:2;letter-spacing:.04em;text-transform:uppercase;color:#bfdbfe;pointer-events:none;background:#0f172ab8;border:1px solid #60a5fa59;border-radius:999px;padding:4px 10px;font-size:.6875rem;font-weight:700;position:absolute;top:10px;right:10px}.clean-preview-mask{background:#ffffffb3;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.clean-preview-mask--err{color:#9b2c2c;background:#c530301f;font-weight:600}.clean-progress{background:var(--surface-card);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);border-radius:10px;margin-top:16px;padding:14px 16px}.clean-progress--err{background:#fff5f5;border-color:#feb2b2}.clean-progress-err{background:#fff5f5;border:1px solid #fecaca;border-radius:10px;margin-top:14px;padding:12px 14px}.clean-progress-err__msg{color:#9b2c2c;margin:0;font-size:13px;line-height:1.45}.clean-progress-rail{border-top:1px solid var(--border-color);flex-wrap:wrap;align-items:center;gap:6px;margin-top:12px;padding-top:12px;display:flex}.clean-progress-rail__arrow{color:#cbd5e1;font-size:11px;font-weight:600;line-height:1}.clean-progress-rail__step{letter-spacing:.01em;background:var(--surface-sunken);color:var(--text-muted);border-radius:999px;padding:3px 9px;font-size:10px;font-weight:600}.clean-progress-rail__step--done{background:var(--status-success-bg);color:var(--status-success-text)}.clean-progress-rail__step--error{background:var(--status-error-bg);color:var(--status-error-text);box-shadow:0 0 0 1px #fca5a5}.clean-progress-rail__step--active{background:var(--status-info-bg);color:var(--status-info-text);box-shadow:0 0 0 1px #93c5fd}.clean-progress-head{align-items:flex-start;gap:12px;width:100%;display:flex}.clean-progress-head__badge{background:var(--accent-subtle);border:1px solid #bfdbfe;border-radius:50%;flex:0 0 40px;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.clean-progress-head__badge--err{background:#fff5f5;border-color:#fecaca}.clean-progress-head__err-mark{color:#c53030;font-size:1.125rem;font-weight:800;line-height:1}.ing-spinner--progress{border-width:2.5px;width:22px;height:22px;margin:0;display:block}.clean-progress-head__pct{color:var(--blue-active);font-variant-numeric:tabular-nums;font-size:.8125rem;font-weight:700;line-height:1}.clean-progress-head__body{flex:1;min-width:0}.clean-progress-head__top{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.clean-progress-head__copy{min-width:0}.clean-progress-head__aside{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:8px;display:flex}.clean-progress-cancel{color:var(--danger-color)!important;background:#fff5f5!important;border-color:#fecaca!important;padding:6px 12px!important;font-size:.75rem!important}.clean-progress-cancel:hover:not(:disabled){background:#fee2e2!important;border-color:#fca5a5!important}.clean-progress-bar{background:var(--surface-sunken);border:1px solid var(--border-color);border-radius:999px;height:6px;margin-top:8px;overflow:hidden}.clean-progress-bar__fill{border-radius:inherit;background:linear-gradient(90deg,#4299e1 0%,#3182ce 100%);height:100%;transition:width .4s}.clean-progress-bar__fill--indeterminate{animation:1.6s ease-in-out infinite clean-progress-indeterminate;width:40%!important}@keyframes clean-progress-indeterminate{0%{opacity:.45;transform:translate(-120%)}50%{opacity:.85}to{opacity:.45;transform:translate(280%)}}.clean-progress--queued .clean-progress-head__badge{color:#4a5568;background:#edf2f7}.clean-progress-estimate{color:var(--text-muted);white-space:nowrap;flex-shrink:0;margin:0;font-size:.75rem;font-weight:600;line-height:1.35}.clean-progress-notify-hint{color:#a0aec0;margin:6px 0 0;font-size:.6875rem;line-height:1.3}.clean-queue-panel{background:#f7fafcd9;border:1px dashed #cbd5e0;border-radius:10px;gap:10px;margin-top:16px;padding:14px 16px;display:grid}.clean-queue-panel__copy{min-width:0}.clean-queue-panel__title{color:var(--text-dark);margin:0;font-size:.875rem;font-weight:600}.clean-queue-panel__sub{color:var(--text-muted);margin:4px 0 0;font-size:.8125rem;line-height:1.35}.clean-queue-panel__actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.clean-queue-panel__btn{white-space:nowrap}.clean-queue-panel__notice{color:#2f855a;margin:0;font-size:.8125rem;line-height:1.35}.clean-queue-panel__err{color:#c53030;margin:0;font-size:.8125rem;line-height:1.35}.clean-pending-queue-hint{color:#2b6cb0;background:#4299e114;border:1px solid #4299e140;border-radius:8px;margin:12px 0 0;padding:10px 12px;font-size:.8125rem;line-height:1.35}.clean-progress-title{color:var(--text-dark);margin:0;font-size:.9375rem;font-weight:600;line-height:1.3}.clean-progress-sub{color:var(--text-muted);margin:2px 0 0;font-size:.8125rem;line-height:1.35}.clean-progress-steps{border-top:1px solid #e2e8f0e6;flex-direction:column;gap:10px;margin:16px 0 0;padding:16px 0 0;list-style:none;display:flex}.clean-progress--err .clean-progress-steps{border-top-color:#feb2b299}.clean-progress-step{background:var(--white);border:1px solid #e2e8f0;border-radius:10px;align-items:flex-start;gap:14px;padding:12px 14px;transition:border-color .12s,box-shadow .12s;display:flex}.clean-progress-step--pending{opacity:.75}.clean-progress-step--active{border-color:var(--blue-active);box-shadow:0 0 0 3px #4299e126}.clean-progress-step--done{background:#f0fff4;border-color:#9ae6b4}.clean-progress-step--error{background:#fff5f5;border-color:#fc8181}.clean-progress-dot{width:28px;height:28px;color:var(--text-light);background:#edf2f7;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:flex}.clean-progress-step--active .clean-progress-dot{background:var(--blue-active);color:#fff}.clean-progress-step--done .clean-progress-dot{color:#fff;background:#38a169}.clean-progress-step--error .clean-progress-dot{color:#fff;background:#e53e3e}.clean-progress-step-label{font-size:14px;font-weight:600}.clean-progress-step-detail{color:var(--text-light);margin-top:4px;font-size:12px;line-height:1.35}.clean-steps{color:var(--text-light);gap:12px;margin-top:12px;font-size:12px;display:flex}.clean-steps .on{color:var(--blue-active);font-weight:700}.clean-split{grid-template-columns:1fr 1fr;gap:20px;display:grid}.clean-col{min-width:0}.clean-card--result{border:1px solid var(--border-color);background:linear-gradient(#fff 0%,#f8fbff 100%);margin-top:0;margin-bottom:24px;padding:clamp(18px,2.5vw,28px);box-shadow:0 2px 16px #2c3e500f}.clean-result-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;min-height:40px;margin-bottom:12px;display:flex}.clean-result-toolbar__actions{flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto;display:flex}.clean-result-toolbar__actions .ing-btn{border-radius:8px;min-height:36px;padding:8px 14px;font-size:13px}.clean-result-toolbar__actions .ing-btn--primary{box-shadow:none;padding:8px 14px}.clean-result-toolbar__sep{background:var(--border-color);flex-shrink:0;width:1px;height:24px;margin:0 2px}.clean-result-new-btn{font-weight:600}.clean-result-next{border-top:1px solid var(--border-color);flex-direction:column;align-items:stretch;gap:8px;margin-top:16px;padding-top:16px;display:flex}.clean-result-next__row{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:12px;display:grid}.clean-result-next__btn,.clean-result-next__compare,.clean-result-delete-btn{text-align:center;justify-content:center;align-items:center;gap:8px;width:100%;min-width:0;min-height:42px;padding:8px 12px;font-size:13px;font-weight:600;display:inline-flex}.clean-result-next__compare:disabled{opacity:.45;cursor:not-allowed}.clean-result-next__btn span,.clean-result-next__compare span,.clean-result-delete-btn span{text-align:center;line-height:1.2}.clean-result-next__hint{max-width:none;color:var(--text-muted);text-align:left;margin:0;font-size:.8125rem;line-height:1.35}.clean-result-next__row .clean-result-delete-btn{margin-left:0}.clean-result-notices{flex-direction:column;gap:8px;margin-bottom:14px;display:flex}.clean-result-notice{border:1px solid;border-radius:8px;align-items:flex-start;gap:10px;margin:0;padding:10px 12px;font-size:13px;line-height:1.45;display:flex}.clean-result-notice p{flex:1;min-width:0;margin:0}.clean-result-notice__icon{flex-shrink:0;margin-top:2px}.clean-result-notice--tip{color:#64748b;background:#f1f5f9;border-color:#94a3b8}.clean-result-notice--ok{color:#276749;background:#f0fff4;border-color:#9ae6b4}.clean-result-notice--warn{color:#9b2c2c;background:#fef2f2;border-color:#fecaca}.clean-result-notice--warn strong{font-weight:600}.clean-result-viewport{background:#0f172a;border:1px solid #1e293b;border-radius:14px;min-height:min(52vh,480px);position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff0f}.clean-result-viewport .point-cloud-preview-wrap,.clean-result-viewport .point-cloud-mount{width:100%;height:100%;position:absolute;inset:0}.clean-result-viewport__overlay{z-index:2;text-align:center;color:#e2e8f0;pointer-events:none;background:#0f172ab8;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex;position:absolute;inset:0}.clean-result-viewport__overlay--err{background:#1e0f0fd1}.clean-result-viewport__overlay-title{color:#f8fafc;margin:0;font-size:.9375rem;font-weight:600}.clean-result-viewport__overlay-sub{color:#94a3b8;max-width:28rem;margin:0;font-size:.8125rem;line-height:1.45}.clean-result-viewport__overlay-sub strong{color:#e2e8f0;font-weight:600}.clean-result-kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:16px;display:grid}@media (width<=800px){.clean-result-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}.clean-kpi{border:1px solid var(--border-color);background:var(--white);text-align:center;border-radius:10px;padding:12px 14px}.clean-kpi--hero{background:linear-gradient(145deg,#ebf8ff 0%,#e6fffa 100%);border-color:#90cdf4}.clean-kpi__value{letter-spacing:-.02em;color:var(--primary-blue-dark);font-size:1.25rem;font-weight:700;line-height:1.2;display:block}.clean-kpi--hero .clean-kpi__value{font-size:1.5rem}.clean-kpi__label{text-transform:uppercase;letter-spacing:.04em;color:#64748b;margin-top:4px;font-size:.6875rem;font-weight:600;display:block}.clean-result-details{border:1px solid var(--border-color);background:var(--white);border-radius:12px;margin-top:16px;overflow:hidden}.clean-result-details__summary{color:#475569;cursor:pointer;-webkit-user-select:none;user-select:none;padding:12px 16px;font-size:.8125rem;font-weight:600;list-style:none}.clean-result-details__summary::-webkit-details-marker{display:none}.clean-result-details__summary:before{content:"▸ ";color:var(--blue-active)}.clean-result-details[open] .clean-result-details__summary:before{content:"▾ "}.clean-result-details__body{border-top:1px solid var(--border-color);padding:0 16px 16px}.clean-metric-grid--compact{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:14px}@media (width<=560px){.clean-metric-grid--compact{grid-template-columns:1fr}}.clean-pipeline-facts{flex-direction:column;gap:8px;margin:14px 0 0;padding:0;list-style:none;display:flex}.clean-pipeline-facts li{background:#f8fafc;border:1px solid #edf2f7;border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 12px;padding:10px 12px;display:flex}.clean-pipeline-facts span{color:#64748b;font-size:.75rem;font-weight:600}.clean-pipeline-facts strong{color:var(--text-dark);text-align:right;font-size:.8125rem}.clean-result-head{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px;padding-bottom:18px;display:flex}.clean-status{border-radius:999px;align-items:center;padding:4px 10px;font-size:12px;font-weight:700;display:inline-flex}.clean-status--ok{color:#276749;background:#c6f6d5}.clean-result-title{color:var(--text-dark);margin:0;font-size:22px}.clean-result-sub{color:var(--text-light);max-width:720px;margin:6px 0 0;font-size:14px;line-height:1.45}.clean-result-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.clean-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.clean-metric{border:1px solid var(--border-color);background:#f8fafc;border-radius:10px;min-width:0;padding:12px}.clean-metric span,.clean-model-detail span{color:var(--text-light);margin-bottom:4px;font-size:12px;display:block}.clean-metric strong,.clean-model-detail strong{color:var(--text-dark);text-overflow:ellipsis;white-space:nowrap;font-size:14px;display:block;overflow:hidden}.clean-model-detail{border:1px solid var(--border-color);background:#f7fafc;border-radius:10px;flex-direction:column;gap:10px;margin-top:14px;padding:14px;display:flex}.clean-gate-hint--ok{color:#2f855a}.clean-history{border-top:1px solid var(--border-color);margin-top:24px;padding-top:8px}.clean-history-state{color:var(--text-light);text-align:center;margin:0;padding:20px 16px;font-size:13px}@media (width<=900px){.clean-split{grid-template-columns:1fr}.clean-result-head{flex-direction:column}.clean-result-actions{justify-content:flex-start}}.clean-col-title{margin:0 0 8px;font-size:14px}.clean-meta{flex-direction:column;gap:12px;margin-bottom:16px;display:flex}.clean-gate-hint{color:var(--text-light);margin-top:8px;font-size:12px}.fb-note-label{color:var(--text-dark);margin:14px 0 6px;font-size:13px;font-weight:600;display:block}.fb-note-ta{resize:vertical;width:100%;min-height:120px}.fb-rate-row{gap:8px;margin:16px 0;display:flex}.fb-rate{border:2px solid var(--border-color);background:var(--white);cursor:pointer;border-radius:12px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:6px;min-height:96px;font-size:13px;font-weight:600;transition:border-color .16s,transform .16s,background .16s;display:flex}.fb-rate:hover{border-color:var(--fb,var(--blue-active))}.fb-rate--on{border-color:var(--fb,var(--blue-active));background:color-mix(in srgb, var(--fb,#4299e1) 10%, white);transform:scale(1.02)}.fb-ico{font-size:28px}.fb-chk-grid{grid-template-columns:1fr 1fr;gap:8px;margin:8px 0;display:grid}.fb-chk{color:var(--text-dark);font-size:12px}.fb-donate{align-items:center;gap:8px;margin-top:12px;font-size:12px;display:flex}.fb-warn{color:var(--text-muted);margin:12px 0 0;font-size:12px}.fb-instruct{background:#eff6ff;border:1px solid #bfdbfe;border-radius:10px;margin-top:14px;padding:12px 14px}.fb-instruct__title{color:#1e40af;margin:0 0 6px;font-size:13px;font-weight:700}.fb-instruct__text{color:#1e3a8a;margin:0 0 10px;font-size:12px;line-height:1.45}.fb-instruct__hint{color:#1e40af;margin:0;font-size:12px;line-height:1.4}.fb-instruct__actions{flex-flow:row;justify-content:flex-start;align-items:stretch;gap:10px;display:flex}.fb-instruct__actions--end{justify-content:flex-end}.fb-instruct__cta{text-align:center;white-space:normal;flex:1 1 0;justify-content:center;align-items:center;min-width:0;font-size:12px;line-height:1.25;display:inline-flex}.fb-instruct__actions--end .fb-instruct__cta{min-width:unset;flex:0 auto}.adm-page{width:100%;max-width:none;padding:var(--workspace-pad-top) var(--workspace-pad-x) var(--workspace-pad-bottom);box-sizing:border-box;margin:0}.adm-seg{max-width:560px;margin-bottom:20px}.adm-panel{background:var(--white);box-shadow:var(--shadow-sm);border-radius:12px;padding:20px}.adm-banner{background:var(--light-gray-brand);border-radius:8px;margin-bottom:16px;padding:12px 16px;font-size:13px}.adm-fab{background:var(--comp-green);color:#fff;cursor:pointer;box-shadow:var(--shadow-lg);border:0;border-radius:999px;padding:12px 20px;font-weight:700;animation:.2s ease-out ingFade;position:fixed;bottom:32px;right:32px}.adm-ver-card{border:1px solid var(--border-color);border-radius:12px;margin-bottom:12px;padding:16px}.adm-ver-h{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.adm-subh{margin:20px 0 8px;font-size:14px}.ing-filter-bar{background:var(--white);border:1px solid var(--border-color);border-radius:8px;margin-bottom:16px;padding:12px 16px}.ing-filter-field{color:var(--text-light);flex-direction:column;gap:6px;font-size:12px;display:flex}.ing-bulk-meta{flex-wrap:wrap;align-items:flex-end;gap:16px;margin:16px 0;display:flex}.ing-list-hint{color:var(--text-light);font-size:12px}.ing-pair-list{flex-direction:column;gap:12px;display:flex}.ing-pair-card{border:1px solid var(--border-color);border-radius:8px;align-items:center;gap:12px;min-width:0;min-height:64px;padding:12px 16px;display:flex}.ing-pair-ico{flex-shrink:0}.ing-pair-mid{flex:1;min-width:0}.ing-pair-name{font-size:13px;font-weight:600}.ing-pair-sub{color:var(--text-light);flex-wrap:wrap;align-items:center;gap:4px 8px;font-size:11px;display:flex}.ing-pair-remove-x{width:32px;height:32px;color:var(--danger-color);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;margin:0 0 0 auto;padding:0;font-size:22px;font-weight:400;line-height:1;transition:background .12s,color .12s;display:inline-flex}.ing-pair-remove-x:hover{color:#c53030;background:#fef2f2}.ing-pair-remove-x:focus-visible{outline:2px solid var(--blue-active);outline-offset:2px}.ing-radio-list{flex-direction:column;gap:8px;margin:12px 0;display:flex}.ing-radio{align-items:flex-start;gap:8px;font-size:13px;display:flex}.ing-delta-row{align-items:center;gap:12px;display:flex}.ing-delta-ico{font-size:20px;font-weight:700}.ing-delta-ico.ok{color:var(--comp-green)}.ing-delta-ico.bad{color:var(--danger-color)}.ing-delta-main{font-size:14px;font-weight:600}.ing-delta-sub{color:var(--text-light);font-size:11px}.ing-sec-note{color:var(--text-light);margin-top:8px;font-size:12px}.ing-sec-note--tight{margin-top:0;margin-bottom:10px;line-height:1.45}.ing-drawer-src-grid{flex-direction:column;gap:12px;margin-top:4px;display:flex}.ing-drawer-src-tile{border:1px solid var(--border-color);background:#0f172a;border-radius:10px;min-width:0;overflow:hidden}.ing-drawer-src-tile-title{text-transform:uppercase;letter-spacing:.05em;color:#cbd5e1;background:#1e293b;padding:8px 10px;font-size:10px;font-weight:700}.ing-drawer-src-viewer{height:180px;position:relative}.ing-drawer-src-viewer .point-cloud-mount{width:100%;height:100%}.ing-drawer-src-load,.ing-drawer-src-ph{z-index:2;text-align:center;color:#e2e8f0;pointer-events:none;background:#0f172ab8;justify-content:center;align-items:center;padding:8px;font-size:12px;display:flex;position:absolute;inset:0}.ing-drawer-src-load--err{color:#fca5a5}.ing-drawer-src-ph{color:#94a3b8;background:#0f172a}.ing-diag-toggle{color:var(--text-light);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;margin:10px 0 4px;font-size:12px;display:flex}.ing-diag-toggle input{accent-color:var(--blue-active)}.ing-diag-hint{color:var(--text-light);margin:0 0 12px;font-size:12px;line-height:1.45}button.ing-btn--ghost{color:var(--text-light);box-shadow:none;background:0 0;border:1px solid #0000}button.ing-btn--ghost:hover:not(:disabled){background:var(--gray);color:var(--text-dark)}.wh-form{border:1px solid var(--border-color);border-radius:var(--border-radius);background:var(--white);box-shadow:var(--shadow-sm);margin:18px 0 4px;padding:16px 18px}.wh-form__head{margin-bottom:12px}.wh-form__title{color:var(--primary-blue-dark);margin:0;font-size:14px;font-weight:700}.wh-form__hint{color:var(--text-light);margin:4px 0 0;font-size:12px;line-height:1.45}.wh-form__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.wh-field{flex-direction:column;gap:5px;display:flex}.wh-field__label{color:var(--text-light);font-size:12px;font-weight:600}.wh-field__input{font:inherit;border:1px solid var(--border-color);background:var(--white);color:var(--text-dark);border-radius:8px;padding:9px 11px;font-size:13px;transition:border-color .15s}.wh-field__input:focus{border-color:var(--blue-active);outline:none;box-shadow:0 0 0 3px #4299e12e}.clean-preview-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.clean-region-tools{align-items:center;gap:10px;display:flex}button.clean-region-toggle{background:var(--white)}button.clean-region-toggle--on{background:var(--blue-active);color:#fff;border-color:var(--blue-active)}.clean-region-count{color:var(--text-light);font-size:12px;font-weight:600}.clean-region-hint{color:var(--text-light);background:#4299e114;border-radius:8px;margin:8px 0 0;padding:8px 10px;font-size:12px}.point-cloud-region-overlay{cursor:crosshair;z-index:4;touch-action:none;position:absolute;inset:0}.point-cloud-region-rect{border:2px dashed var(--blue-active);pointer-events:none;background:#4299e129;position:absolute}.ing-modal--touchup{width:min(820px,94vw)}.touchup-mode-row{gap:10px;margin:8px 0 12px;display:flex}button.touchup-mode{background:var(--white);color:var(--text-light);border:1px solid var(--border-color);border-radius:8px;flex:1;padding:10px 12px;font-size:13px;font-weight:600}button.touchup-mode--on{background:var(--danger-color);color:#fff;border-color:var(--danger-color)}button.touchup-mode--restore{background:var(--comp-green);border-color:var(--comp-green)}.touchup-viewport{background:#232c58;border-radius:10px;height:340px;position:relative;overflow:hidden}.touchup-summary{align-items:center;gap:10px;margin:12px 0;display:flex}.units-toolbar{align-items:center;gap:12px;margin-bottom:14px;display:flex}.units-toolbar .wh-field__input{flex:1}.units-group{margin-bottom:22px}.units-group .ing-table-wrap{width:100%}.units-table{table-layout:fixed;width:100%}.units-table thead th,.units-table tbody td{text-align:left;vertical-align:middle;padding:8px 14px}.units-table thead th{letter-spacing:.02em;white-space:nowrap;font-size:11px}.units-table tbody td{font-size:13px}.units-table .units-th-num,.units-table .units-td-num{text-align:right;white-space:nowrap;width:11%}.units-table th.units-th-num{white-space:normal;min-width:72px;line-height:1.25}.units-table td:last-child,.units-table th:last-child{padding-right:16px}.units-table td:first-child,.units-table th:first-child{width:22%;min-width:120px;padding-left:16px}.units-table .units-th-location,.units-table .units-td-location{width:11%;min-width:72px}.units-table .units-th-actions,.units-table .units-td-actions{white-space:nowrap;text-align:center;width:88px;padding-left:8px;padding-right:12px}.units-row-actions{justify-content:center;align-items:center;gap:4px;display:inline-flex}.units-edit-btn{color:#3182ce}.units-edit-btn:hover:not(:disabled){color:#2c5282;background:#3182ce14}.units-location-input{text-align:right;width:100%;min-width:0;max-width:none;padding:5px 8px;font-size:13px}.units-delete-btn{margin:0}.units-delete-error{color:#c53030;background:#fff5f5;border:1px solid #feb2b2;border-radius:8px;margin:0 0 12px;padding:10px 12px;font-size:13px}[data-theme=dark] .units-delete-error{color:#fc8181;background:#c530301f;border-color:#fc818159}.units-group__title{color:var(--primary-blue-dark);margin:0 0 10px;font-size:15px;font-weight:700}.units-body{grid-template-columns:minmax(720px,1.05fr) minmax(360px,1fr);align-items:stretch;gap:20px;display:grid}.units-body__main{width:100%;min-width:0}.units-chart-panel{border-radius:10px;flex-direction:column;min-width:0;min-height:100%;padding:16px 20px;display:flex;position:sticky;top:12px}.units-chart-panel__head{margin-bottom:12px}.units-chart-panel__head .units-group__title{margin-bottom:4px}.units-chart-panel__lead{color:#64748b;margin:0;font-size:12px;line-height:1.45}.units-chart-panel__filters{flex-flow:wrap;align-items:flex-end;gap:10px 14px;margin-bottom:12px;display:flex}.units-chart-panel__field{flex-direction:column;flex:180px;gap:4px;min-width:0;display:flex}.units-chart-panel__label{color:#64748b;text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:600}.units-chart-panel__metric{gap:4px;display:inline-flex}.units-chart-panel__metric-btn{border:1px solid var(--border-color);background:var(--surface-card);color:var(--text-muted);cursor:pointer;border-radius:6px;padding:5px 10px;font-size:.6875rem;font-weight:600}.units-chart-panel__metric-btn:hover{color:var(--text-dark);background:#3182ce0f}.units-chart-panel__metric-btn--active{color:#fff;background:#3182ce;border-color:#3182ce}.units-chart-panel__chart-wrap{flex-direction:column;flex:1;min-height:420px;display:flex;position:relative}.units-chart-panel__chart{flex:1;width:100%;min-height:420px;display:block}.units-chart-panel__grid{stroke:#e2e8f0;stroke-width:1px}.units-chart-panel__axis-y,.units-chart-panel__axis-x{fill:#718096;font-size:10px}.units-chart-panel__bar-label{fill:#4a5568;font-size:9px;font-weight:600}.units-chart-panel__bar-value{fill:#2d3748;font-size:9px;font-weight:700}.units-chart-panel__bar{cursor:pointer;transition:opacity .12s}.units-chart-panel__tooltip{color:#fff;background:#1a365d;border-radius:8px;margin-top:8px;padding:8px 10px;font-size:12px;line-height:1.4}.units-chart-panel__tooltip strong{margin-bottom:2px;font-size:13px;display:block}.units-chart-panel__tooltip span{opacity:.9;display:block}.units-chart-panel__empty,.units-chart-panel__summary{color:#64748b;margin:0;font-size:12px}.units-chart-panel__summary{margin-top:10px}@media (width<=1100px){.units-body{grid-template-columns:1fr}.units-chart-panel{position:static}}[data-theme=dark] .units-chart-panel__lead,[data-theme=dark] .units-chart-panel__empty,[data-theme=dark] .units-chart-panel__summary,[data-theme=dark] .units-chart-panel__label{color:#a0aec0}[data-theme=dark] .units-chart-panel__bar-label{fill:#cbd5e0}[data-theme=dark] .units-chart-panel__bar-value{fill:#e2e8f0}[data-theme=dark] .units-chart-panel__grid{stroke:#4a5568}.clean-page .page-header-subtitle{color:#64748b}.clean-page .kpi-desc{color:#718096}.clean-page .ing-table thead th,.clean-page .clean-history-state,.clean-page .ing-status--disc{color:#64748b}.evo-journey{background:var(--white);border:1px solid var(--border-color);border-radius:var(--border-radius);box-shadow:var(--shadow-sm);margin-top:32px;padding:22px 24px}.evo-journey__lead{color:var(--text-light);margin:0 0 10px;font-size:13px;line-height:1.5}.evo-journey__meta{border:1px solid var(--border-color);color:var(--text-secondary);background:#f8fafc;border-radius:8px;margin:0 0 18px;padding:10px 12px;font-size:13px;line-height:1.45}.evo-journey__meta strong{color:var(--text-dark)}.evo-timeline{margin:0;padding:0;list-style:none;position:relative}.evo-timeline:before{content:"";background:var(--border-color);width:2px;position:absolute;top:4px;bottom:4px;left:7px}.evo-timeline__item{padding:0 0 18px 28px;position:relative}.evo-timeline__dot{background:var(--white);border:3px solid var(--blue-active);border-radius:50%;width:16px;height:16px;position:absolute;top:3px;left:0}.evo-timeline__item--promoted .evo-timeline__dot{background:var(--text-muted);border-color:var(--text-muted)}.evo-timeline__item--demo .evo-timeline__dot{background:#3b97d3;border-color:#2b6cb0;box-shadow:0 0 0 3px #3b97d340}.evo-timeline__item--active .evo-timeline__dot{background:var(--comp-green);border-color:var(--comp-green);box-shadow:0 0 0 3px #0fa14a33}.evo-timeline__head{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.evo-timeline__count{color:var(--text-muted);font-size:12px}.evo-timeline__approval{color:#2b6cb0;background:#3182ce1a;border-radius:999px;padding:2px 8px;font-size:12px;font-weight:700}.evo-reviews-modal{flex-direction:column;width:min(640px,100%);max-height:min(80vh,720px);display:flex}.evo-reviews-modal__body{max-height:min(56vh,480px);overflow:auto}.evo-reviews-list{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.evo-reviews-item{border:1px solid var(--border-color);background:var(--surface-sunken,#f8fafc);border-radius:10px;padding:12px 14px}.evo-reviews-item__meta{flex-wrap:wrap;align-items:center;gap:8px 12px;margin-bottom:6px;display:flex}.evo-reviews-item__file{color:var(--text-dark,#0f172a);font-size:13px;font-weight:600}.evo-reviews-item__when{color:var(--text-muted);margin-left:auto;font-size:12px}.evo-quality__head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:8px;display:flex}.evo-quality__head .units-group__title{margin-bottom:6px}.evo-reviews-item__by{color:var(--text-muted);margin:0 0 4px;font-size:12px}.evo-reviews-item__manual{margin:0 0 8px;font-size:12px;font-weight:600}.evo-reviews-item__manual--uploaded{color:var(--status-success-text,#0b6a33)}.evo-reviews-item__manual--pending{color:var(--status-warning-text,#8a4a00)}.evo-reviews-item__manual--not_needed,.evo-reviews-item__manual--unknown{color:var(--text-muted)}.evo-reviews-item__note{color:var(--text-secondary,#334155);white-space:pre-wrap;margin:0;font-size:14px;line-height:1.45}.evo-reviews-item__comment{background:var(--surface-muted,#0f172a0a);border:1px solid var(--border-subtle,#0f172a14);border-radius:8px;margin-top:8px;padding:10px 12px}.evo-reviews-item__comment-label{letter-spacing:.02em;text-transform:uppercase;color:var(--text-muted);margin-bottom:4px;font-size:11px;font-weight:600;display:block}.evo-reviews-item__comment-text{color:var(--text-secondary,#334155);white-space:pre-wrap;margin:0;font-size:14px;line-height:1.45}html[data-theme=dark] .evo-reviews-item__comment{background:#ffffff0a;border-color:#ffffff14}.evo-reviews-item__issues{color:var(--text-muted);margin:8px 0 0;font-size:12px}.evo-timeline__note{color:var(--text-light);margin:4px 0 0;font-size:12.5px;line-height:1.45}[data-theme=dark]{--white:#1a202c;--light-gray:#0f1419;--light-gray-brand:#1f2738;--gray:#2d3748;--border-color:#2d3748;--text-dark:#edf2f7;--text-light:#a0aec0;--black:#f7fafc;--surface-card:#1a202c;--surface-sunken:#151a24;--surface-hover:#243044;--text-muted:#94a3b8;--text-secondary:#cbd5e1;--text-primary:#e2e8f0;--text-heading:#e2e8f0;--text-page-title:#e2e8f0;--text-on-accent:#fff;--accent-subtle:#1e3a5f;--shadow-sm:0 1px 2px #00000059;--shadow:0 4px 14px #0006;--shadow-lg:0 16px 36px #00000080}[data-theme=dark] body,[data-theme=dark] .shell:not(.login-shell){background:var(--light-gray);color:var(--text-dark)}[data-theme=dark] .app-header{background:var(--white);border-bottom-color:var(--border-color)}[data-theme=dark] .hdr-user-avatar{background:linear-gradient(135deg,#312e81 0%,#4338ca 100%);border-color:#4a5568}[data-theme=dark] .hdr-user-avatar__initials{color:#e0e7ff}[data-theme=dark] .hdr-user-menu{background:var(--white);border-color:var(--border-color)}[data-theme=dark] .hdr-menu-item:hover{background:var(--light-gray-brand)}[data-theme=dark] .mode-tab{color:#f8fafc}[data-theme=dark] .mode-tab:hover:not(.mode-tab--active):not(:disabled):not(.mode-tab--ai){color:#fff;background:#ffffff14}[data-theme=dark] .mode-tab--active:not(.mode-tab--ai){color:#fff;background:#4299e147;border-color:#4299e173}[data-theme=dark] .mode-tab--ai{color:#f8fafc}[data-theme=dark] .mode-tab--ai:hover:not(.mode-tab--active):not(:disabled){color:#fff;--measure-ai-fill:#243044}[data-theme=dark] .mode-tab--ai.mode-tab--active,[data-theme=dark] .mode-tab--ai.mode-tab--active:hover,[data-theme=dark] .mode-tab--ai.mode-tab--active .mode-tab__icon-wrap{color:#fff}[data-theme=dark] .mode-tab:disabled:hover{color:#f8fafc;background:0 0}[data-theme=dark] .clean-card--upload{border-color:var(--border-color);background:linear-gradient(#1a202c 0%,#151a24 100%);box-shadow:0 2px 16px #00000059}[data-theme=dark] .clean-drop-zone{background:#151a24;border-color:#4a5568}[data-theme=dark] .clean-drop-zone:hover:not(.clean-drop-zone--disabled):not(.clean-drop-zone--ready){background:#1a2740;border-color:#63b3ed}[data-theme=dark] .clean-drop-zone--drag{border-color:var(--blue-active);background:#1e3a5f;box-shadow:0 0 0 4px #4299e138}[data-theme=dark] .clean-drop-zone--ready{background:linear-gradient(#14532d 0%,#151a24 100%);border-color:#2f855a}[data-theme=dark] .clean-drop-zone--ready:hover{border-color:#48bb78}[data-theme=dark] .clean-drop-zone__icon{color:#63b3ed;background:linear-gradient(145deg,#1e3a5f 0%,#243b55 100%);box-shadow:0 4px 14px #4299e133}[data-theme=dark] .clean-drop-zone__icon--ready{color:#68d391;background:linear-gradient(145deg,#14532d 0%,#166534 100%);box-shadow:0 4px 14px #0fa14a40}[data-theme=dark] .clean-drop-zone__title{color:#f7fafc}[data-theme=dark] .clean-drop-zone__sub{color:#a0aec0}[data-theme=dark] .clean-format-tag{color:#e2e8f0;background:#1f2738;border-color:#4a5568}[data-theme=dark] .clean-file-chip{background:#1f2738;border-color:#2f855a}[data-theme=dark] button.clean-drop-zone__change:hover:not(:disabled){background:#4299e129!important}[data-theme=dark] .wh-field__input{color:#fff;caret-color:#fff;background:#1f2738;border-color:#4a5568}[data-theme=dark] .wh-field__input::placeholder{color:#cbd5e1;opacity:1}[data-theme=dark] .wh-field__input:focus{border-color:var(--blue-active);box-shadow:0 0 0 3px #4299e147}[data-theme=dark] .clean-voxel-panel{background:#1f2738;border-color:#4a5568}[data-theme=dark] .clean-voxel-panel__toggle{color:#e2e8f0}[data-theme=dark] .clean-voxel-panel__distance{color:#cbd5e1}[data-theme=dark] .clean-voxel-panel__meta{color:#a0aec0}[data-theme=dark] .app-header-logo,[data-theme=dark] .login-brand-logo{filter:brightness(0)invert()}[data-theme=dark] .units-group__title{color:#7dd3fc}[data-theme=dark] .clean-page .page-header-subtitle{color:#e2e8f0;background:#243044;border-color:#4a5568}[data-theme=dark] .clean-page .kpi-desc,[data-theme=dark] .clean-page .ing-table thead th{color:#cbd5e1}[data-theme=dark] .clean-page .ing-table td{color:#e2e8f0}[data-theme=dark] .clean-page .clean-history-state{color:#cbd5e1}[data-theme=dark] .clean-page .ing-status--disc,[data-theme=dark] .clean-page .ing-status--muted{color:#e2e8f0;background:#243044;border-color:#4a5568}[data-theme=dark] .clean-page .wh-field__input::placeholder{color:#e2e8f0;opacity:.85}[data-theme=dark] .profile-pwd-toggle{color:#fff}[data-theme=dark] .profile-pwd-toggle:hover{color:#fff;background:#ffffff1a}[data-theme=dark] .profile-password-section{box-shadow:none;background:#2a1518;border-color:#7f1d1d}[data-theme=dark] .profile-password-section__icon,[data-theme=dark] .profile-password-section__title{color:#fca5a5}[data-theme=dark] .profile-password-section__hint{color:#f0b4b4}[data-theme=dark] .profile-field input,[data-theme=dark] .profile-pwd-wrap input{color:#fff;background:#1f2738;border-color:#4a5568}[data-theme=dark] .evo-journey__meta{color:#e2e8f0;background:#1f2738;border-color:#4a5568}[data-theme=dark] .evo-journey__meta strong{color:#7dd3fc}.workspace-card{box-sizing:border-box;background:var(--white);border:1px solid var(--border-color);width:100%;box-shadow:var(--shadow-sm);border-radius:12px;padding:clamp(20px,2.5vw,28px)}.profile-page{background:0 0;width:100%;min-height:100%}.profile-inner{width:100%;max-width:none;padding:var(--workspace-pad-top) var(--workspace-pad-x) var(--workspace-pad-bottom);box-sizing:border-box;margin:0}.profile-page .page-header{margin-bottom:16px}.profile-card{margin-top:4px}.profile-page-head{margin-bottom:12px}.profile-page-badge{background:var(--light-gray-brand);border:1px solid var(--border-color);color:var(--text-light);border-radius:999px;margin-top:8px;padding:4px 12px;font-size:12px;display:inline-block}.profile-form{width:100%;max-width:none}.profile-section-heading{color:var(--text-dark);margin:0 0 20px;font-size:18px;font-weight:600}.profile-photo-block{margin-bottom:24px}.profile-label{color:var(--text-dark);margin-bottom:8px;font-size:13px;font-weight:600;display:block}.profile-photo-btn{border:1px solid var(--border-color);background:var(--white);color:var(--text-dark);cursor:not-allowed;opacity:.7;border-radius:8px;align-items:center;gap:8px;padding:8px 14px;font-size:13px;font-weight:600;display:inline-flex}.profile-photo-hint{color:var(--text-light);margin:8px 0 0;font-size:12px}.profile-grid{grid-template-columns:1fr;gap:16px 20px;display:grid}@media (width>=768px){.profile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.profile-field label{color:var(--text-dark);margin-bottom:6px;font-size:13px;font-weight:600;display:block}.profile-field input,.profile-field select{box-sizing:border-box;border:1px solid var(--border-color);background:var(--white);width:100%;color:var(--text-dark);font:inherit;border-radius:8px;padding:10px 12px;font-size:14px}.profile-field input:focus,.profile-field select:focus{outline:2px solid var(--blue-active);outline-offset:1px;border-color:var(--blue-active)}.profile-password-section{box-shadow:var(--shadow-sm);background:#fee2e2;border:1px solid #f87171;border-radius:12px;margin-top:32px;padding:16px}.profile-password-section__header{gap:12px;display:flex}.profile-password-section__icon{color:#b91c1c;flex-shrink:0}.profile-password-section__title{color:#b91c1c;margin:0;font-size:14px;font-weight:600}.profile-password-section__hint{color:#991b1b;margin:4px 0 0;font-size:13px;line-height:1.5}.profile-password-grid{grid-template-columns:1fr;gap:16px;margin-top:16px;display:grid}@media (width>=900px){.profile-password-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.profile-pwd-wrap{position:relative}.profile-pwd-wrap input{box-sizing:border-box;border:1px solid var(--border-color);background:var(--white);width:100%;font:inherit;border-radius:8px;padding:10px 40px 10px 12px;font-size:14px}.profile-pwd-toggle{width:28px;height:28px;color:var(--text-light);cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.profile-pwd-toggle:hover{color:var(--text-dark);background:var(--light-gray-brand)}.profile-alert{border-radius:8px;align-items:center;gap:8px;margin:20px 0 0;padding:10px 12px;font-size:13px;display:flex}.profile-alert--error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca}.profile-alert--ok{color:#276749;background:#f0fff4;border:1px solid #9ae6b4}.profile-form-actions{justify-content:flex-end;margin-top:28px;display:flex}.permissions-page{box-sizing:border-box;width:100%;padding:var(--workspace-pad-top) var(--workspace-pad-x) 64px;background:0 0}.permissions-page .workspace-card{margin-top:20px}.permissions-list-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.permissions-list-head .profile-section-heading{margin:0}.permissions-role-tag{vertical-align:middle;margin-left:8px}.permissions-modal--compact .ing-modal-foot{margin-top:8px}.permissions-role-select{width:100%;min-width:140px;max-width:180px}.permissions-table{table-layout:fixed;width:100%}.permissions-table .permissions-col-name{width:14%}.permissions-table .permissions-col-email{width:32%}.permissions-table .permissions-col-password,.permissions-table .permissions-col-role{width:16%}.permissions-table .permissions-col-status{width:10%}.permissions-table .permissions-col-actions{width:12%}.permissions-email-cell{white-space:nowrap;text-overflow:ellipsis;word-break:keep-all;overflow:hidden}.permissions-password-cell{align-items:center;gap:6px;min-width:0;max-width:100%;display:inline-flex}.permissions-password-value{letter-spacing:.04em;color:var(--text-dark);text-overflow:ellipsis;white-space:nowrap;max-width:140px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;overflow:hidden}.permissions-password-toggle{justify-content:center;align-items:center;width:28px;min-width:28px;height:28px;display:inline-flex;padding:0!important}.users-deactivate-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;display:inline-flex;position:relative}.users-deactivate-toggle__input{opacity:0;width:0;height:0;margin:0;position:absolute}.users-deactivate-toggle__track{background:#cbd5e0;border-radius:999px;width:38px;height:22px;transition:background .14s;position:relative}.users-deactivate-toggle__track:after{content:"";background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .14s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0f172a2e}.users-deactivate-toggle__input:checked+.users-deactivate-toggle__track{background:#e53e3e}.users-deactivate-toggle__input:checked+.users-deactivate-toggle__track:after{transform:translate(16px)}.users-deactivate-toggle__input:focus-visible+.users-deactivate-toggle__track{outline-offset:2px;outline:2px solid #3182ce73}.users-deactivate-toggle__input:disabled+.users-deactivate-toggle__track{opacity:.45;cursor:not-allowed}.users-deactivate-toggle:has(.users-deactivate-toggle__input:disabled){cursor:not-allowed}.permissions-name-btn{font:inherit;color:var(--blue-active);cursor:pointer;text-align:left;background:0 0;border:0;margin:0;padding:0;font-weight:600}.permissions-name-btn:hover{text-decoration:underline}.permissions-modal{flex-direction:column;width:min(640px,100vw - 32px);max-height:min(86vh,820px);display:flex}.permissions-modal-body{max-height:min(60vh,560px);overflow:auto}.permissions-modal-lead{margin:0 0 16px;font-size:13px}.permissions-page-block{border:1px solid var(--border-color);background:var(--white);border-radius:10px;margin-bottom:12px;padding:12px 14px}.permissions-page-block__head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.permissions-page-block__title{color:var(--text-dark);margin:0;font-size:14px;font-weight:700}.permissions-feature-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.permissions-feature-list.is-disabled{opacity:.45}.permissions-toggle{color:var(--text-dark);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:13px;display:inline-flex}.permissions-toggle--feature{width:100%;font-weight:400}.permissions-toggle input{width:16px;height:16px;accent-color:var(--blue-active)}button.ing-btn--sm{padding:6px 10px;font-size:12px}.auto-train-panel{background:var(--surface-card,var(--white));border:1px solid var(--border-color);border-radius:12px;margin-bottom:16px;overflow:hidden}.auto-train-panel__head{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.auto-train-panel__title{color:var(--text-dark);align-items:center;gap:10px;display:flex}.auto-train-panel__title strong{font-size:14px;display:block}.auto-train-panel__subtitle{color:var(--text-light);margin-top:2px;font-size:12px;display:block}.auto-train-panel__head-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.auto-train-panel__body{border-top:1px solid var(--border-color);flex-direction:column;gap:12px;padding:14px 16px 16px;display:flex}.auto-train-panel__progress{flex-direction:column;gap:6px;display:flex}.auto-train-panel__progress-bar{background:var(--surface-sunken);border-radius:999px;height:8px;overflow:hidden}.auto-train-panel__progress-fill{background:var(--blue-active);border-radius:999px;height:100%;transition:width .3s ease-out}.auto-train-panel__progress-label{color:var(--text-light);font-size:12px}.auto-train-report{border:1px solid var(--border-color);background:var(--surface-sunken);border-radius:10px;padding:12px 14px}.auto-train-report--err{background:var(--status-danger-bg,var(--surface-sunken))}.auto-train-report__head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.auto-train-report__head strong{color:var(--text-dark);font-size:13px}.auto-train-report__grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-bottom:8px;display:grid}.auto-train-report__cell{flex-direction:column;gap:2px;display:flex}.auto-train-report__k{color:var(--text-light);font-size:11px}.auto-train-report__v{color:var(--text-dark);font-size:14px;font-weight:700}.auto-train-report__base-notes{margin-top:0}.auto-train-report__foot{gap:8px;margin-top:12px;display:flex}
