html{min-height:100%}body,#root{min-height:100vh}:root{color:#e5e7eb;font-synthesis:none;background:#0b1118;font-family:Inter,Segoe UI,Arial,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0}button{font:inherit}.app-shell{background:#0b1118;min-height:100vh}.app-header{background:#111a24;border-bottom:1px solid #253344;justify-content:space-between;align-items:center;gap:20px;min-height:82px;padding:18px max(32px,50vw - 620px);display:flex}.brand{align-items:center;gap:15px;display:flex}.brand-icon{color:#55dcac;background:#123f37;border-radius:11px;place-items:center;width:44px;height:44px;font-size:31px;font-weight:700;display:grid}.brand h1{color:#f3f6fa;margin:0;font-size:19px}.brand p{color:#94a3b8;margin:5px 0 0;font-size:12px}.connection-status{color:#a5b4c4;border:1px solid #314051;border-radius:8px;align-items:center;gap:9px;padding:9px 13px;font-size:12px;display:flex}.status-dot{background:#f59e0b;border-radius:50%;width:8px;height:8px}.connected .status-dot{background:#3fd69e}.disconnected .status-dot{background:#f87171}.app-main{max-width:1240px;margin:0 auto;padding:40px 28px 25px}.eyebrow{color:#58d6a7;letter-spacing:1.7px;font-size:10px;font-weight:700}.welcome-section h2{color:#f3f6fa;margin:11px 0;font-size:clamp(25px,3vw,34px)}.welcome-section p{color:#9aa9bb;margin:0;font-size:14px;line-height:1.6}.workspace-actions{justify-content:flex-end;margin-top:24px;display:flex}.history-navigation-button{color:#e5edf5;cursor:pointer;background:#182d39;border:1px solid #314b5a;border-radius:8px;padding:11px 18px;font-size:13px;font-weight:600}.history-navigation-button:hover{background:#213c49}.history-navigation-button.active{color:#58d6a7;background:#14332f;border-color:#329d7c}.step-navigation{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0 25px;display:grid}.step-card{text-align:left;color:#d2dce7;cursor:pointer;background:#121d28;border:1px solid #273747;border-radius:10px;align-items:center;gap:14px;padding:19px 16px;transition:background .15s,border-color .15s;display:flex}.step-card:hover{background:#1a2935}.step-card.active{background:#14332f;border-color:#329d7c}.step-number{color:#58d6a7;font-size:19px;font-weight:700}.step-info{flex-direction:column;gap:5px;display:flex}.step-info strong{font-size:14px}.step-info small{color:#8e9fb1;font-size:11px}.workspace-panel{background:#111a24;border:1px solid #273747;border-radius:12px;overflow:hidden}.panel-heading{border-bottom:1px solid #273747;justify-content:space-between;align-items:center;gap:20px;padding:25px 28px;display:flex}.panel-heading h3{color:#f3f6fa;margin:8px 0 0;font-size:23px}.development-label{color:#a0b4c4;border:1px solid #364b5d;border-radius:6px;padding:7px 10px;font-size:11px}.panel-content{min-height:330px;padding:28px}.placeholder-section h4{color:#e8edf3;margin:0 0 9px;font-size:18px}.placeholder-section p{color:#9aa9bb;max-width:750px;font-size:14px;line-height:1.7}.placeholder-grid{grid-template-columns:1fr 1fr;gap:18px;margin-top:26px;display:grid}.upload-placeholder{background:#13202b;border:1px dashed #3b5366;border-radius:9px;flex-direction:column;justify-content:center;align-items:center;gap:11px;min-height:155px;display:flex}.upload-placeholder strong{font-size:14px}.upload-placeholder small{color:#91a2b5}.upload-symbol{color:#58d6a7;font-size:28px}.app-footer{color:#71849a;justify-content:space-between;gap:12px;padding:25px 0 10px;font-size:11px;display:flex}@media (width<=760px){.app-header{flex-wrap:wrap;padding:16px}.app-main{padding:25px 16px}.step-navigation{grid-template-columns:repeat(2,1fr)}.placeholder-grid{grid-template-columns:1fr}.panel-heading,.panel-content{padding:20px}.app-footer{flex-direction:column}}@media (width<=430px){.step-card{gap:7px;padding:12px}.step-info small{display:none}}.dataset-upload-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.dataset-upload-panel{background:#14212c;border:1px solid #354759;border-radius:10px;min-width:0;padding:20px}.dataset-upload-panel h4{color:#f3f6fa;margin:0 0 15px}.dataset-file-label{color:#b7c6d5;margin-bottom:8px;font-size:13px;display:block}.dataset-upload-panel input[type=file]{color:#cbd5e1;max-width:100%}.dataset-muted{color:#9eafbe;overflow-wrap:anywhere;font-size:12px;line-height:1.6}.dataset-mapping{padding-top:15px}.dataset-field{color:#e2e8f0;justify-content:space-between;align-items:center;gap:10px;margin:10px 0;font-size:13px;display:flex}.dataset-field select{color:#e2e8f0;background:#0e1822;border:1px solid #42586a;border-radius:6px;width:52%;padding:8px}.dataset-submit{color:#06271c;cursor:pointer;background:#56dba8;border:0;border-radius:7px;margin-top:14px;padding:10px 14px;font-weight:700}.dataset-submit:disabled{opacity:.45;cursor:not-allowed}.dataset-error{color:#fda4af;overflow-wrap:anywhere;font-size:12px}.dataset-success{color:#9df0c9;margin-top:15px;font-size:12px}.dataset-success p{overflow-wrap:anywhere}@media (width<=850px){.dataset-upload-grid{grid-template-columns:1fr}}.profile-form{flex-direction:column;align-items:flex-start;gap:12px;display:flex}.profile-hint{color:#9eafbe;font-size:13px;line-height:1.6}.profile-label{color:#e2e8f0;font-size:13px}.profile-name-input{color:#e2e8f0;background:#0e1822;border:1px solid #42586a;border-radius:6px;width:min(100%,460px);padding:11px}.profile-file-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;width:100%;margin:12px 0;display:grid}.profile-file{background:#14212c;border:1px solid #354759;border-radius:10px;flex-direction:column;gap:15px;min-width:0;padding:18px;display:flex}.profile-file strong{color:#f3f6fa;font-size:13px}.profile-file input{color:#cbd5e1;max-width:100%}.profile-file small{color:#9eafbe;overflow-wrap:anywhere}.profile-success{color:#9df0c9;background:#12342b;border:1px solid #27765c;border-radius:9px;width:100%;padding:14px 18px;font-size:13px}.profile-success p{overflow-wrap:anywhere}@media (width<=850px){.profile-file-grid{grid-template-columns:1fr}}.compare-run h4{color:#e8edf3;margin:0 0 8px;font-size:18px}.compare-run p{color:#9aa9bb;font-size:14px;line-height:1.6}.compare-details{background:#13202b;border:1px solid #2c4052;border-radius:9px;grid-template-columns:160px minmax(0,1fr);gap:14px;padding:20px;display:grid}.compare-details dt{color:#91a6b8;font-size:13px}.compare-details dd{color:#e4f0f8;overflow-wrap:anywhere;margin:0;font-size:13px}.compare-actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:24px;display:flex}.compare-secondary{color:#d3e9e1;cursor:pointer;background:#223748;border:1px solid #486277;border-radius:7px;padding:10px 14px}.compare-status{color:#e3f8ef;background:#12312b;border:1px solid #2d6c5a;border-radius:9px;gap:12px;margin-top:24px;padding:18px;font-size:13px;display:grid}.compare-status code{overflow-wrap:anywhere}.compare-status .dataset-submit{justify-self:start}.compare-notice{color:#e9c47c!important}@media (width<=650px){.compare-details{grid-template-columns:1fr;gap:5px}.compare-details dd{margin-bottom:10px}}.results-view{color:#e5edf5}.results-view h4{margin:0 0 8px;font-size:19px}.results-muted{color:#9aafc0;overflow-wrap:anywhere;font-size:13px}.results-stats{grid-template-columns:repeat(4,1fr);gap:12px;margin:20px 0;display:grid}.results-stats>div{background:#142632;border:1px solid #314457;border-radius:8px;flex-direction:column;gap:9px;padding:15px;display:flex}.results-stats span{color:#a8bfd0;font-size:12px}.results-stats strong{font-size:22px}.results-filters{flex-wrap:wrap;gap:12px;margin:22px 0;display:flex}.results-filters label{color:#bacbd9;flex-direction:column;flex:145px;gap:6px;font-size:12px;display:flex}.results-filters input,.results-filters select{color:#f1f5f9;background:#101e2a;border:1px solid #395064;border-radius:6px;width:100%;min-height:38px;padding:8px}.results-table-scroll{width:100%;overflow-x:auto}.results-table{border-collapse:collapse;white-space:nowrap;width:100%;font-size:12px}.results-table th,.results-table td{text-align:left;border-bottom:1px solid #2b3b49;padding:10px}.results-table th{color:#c7d8e6;background:#182a38}.result-pass{color:#60ddb0;font-weight:700}.result-fail{color:#ff9d9d;font-weight:700}.results-pages{justify-content:flex-end;align-items:center;gap:15px;margin:18px 0 4px;display:flex}.results-pages button{color:#fff;cursor:pointer;background:#203b4b;border:1px solid #496072;border-radius:6px;padding:8px 13px}.results-pages button:disabled{opacity:.4;cursor:not-allowed}@media (width<=700px){.results-stats{grid-template-columns:repeat(2,1fr)}}.results-exports{flex-wrap:wrap;gap:10px;margin:14px 0;display:flex}.results-exports button{color:#ecfff7;cursor:pointer;background:#19543e;border:1px solid #39896b;border-radius:6px;padding:9px 13px}.results-exports button:disabled{opacity:.5;cursor:wait}.results-explain-button{color:#e5edf5;cursor:pointer;background:#203b4b;border:1px solid #496072;border-radius:6px;padding:7px 11px}.results-explain-button:hover{background:#2a4b5e}.results-explain-button:focus-visible{outline-offset:2px;outline:2px solid #60ddb0}.results-detail-row td{white-space:normal;background:#10232d;padding:0 10px 14px}.results-explanation{border-left:3px solid #58d6a7;min-width:360px;padding:16px}.results-explanation h5{margin:0 0 12px;font-size:14px}.results-explanation-values{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin:0 0 14px;display:grid}.results-explanation-values div{min-width:0}.results-explanation-values dt{color:#9aafc0;font-size:11px}.results-explanation-values dd{overflow-wrap:anywhere;margin:4px 0 0;font-size:13px}.results-explanation p{margin:8px 0;line-height:1.6}.results-explanation-note{color:#9aafc0;font-size:12px}.results-run-context{background:#142632;border:1px solid #314457;border-radius:8px;margin:16px 0 20px;padding:16px}.results-run-context-heading{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.results-run-context-heading strong{font-size:14px}.results-run-context-heading p{margin:7px 0 0}.results-run-context-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:17px 0 12px;display:grid}.results-run-context-grid>div{min-width:0}.results-run-context-grid dt{color:#9aafc0;margin-bottom:6px;font-size:12px}.results-run-context-grid dd{overflow-wrap:anywhere;margin:0;font-size:12px}.results-run-context-grid code{font:inherit;overflow-wrap:anywhere}.results-run-context-footer{border-top:1px solid #314457;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding-top:12px;display:flex}.results-run-context-footer p{color:#a8bfd0;flex:350px;margin:0;font-size:12px;line-height:1.6}.results-run-context-footer button{color:#fff;cursor:pointer;background:#203b4b;border:1px solid #496072;border-radius:6px;padding:9px 13px}.results-run-context-footer button:hover{background:#285166}@media (width<=700px){.results-run-context-grid{grid-template-columns:1fr}}.run-history{color:#d9e9f4;gap:1rem;display:grid}.run-history-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.run-history-heading h4{color:#f3f8ff;margin:0 0 .5rem;font-size:1.15rem}.run-history-heading p{color:#a9c1d1;margin:0}.run-history button{color:#edf8ff;cursor:pointer;background:#193849;border:1px solid #3d6271;border-radius:6px;padding:.6rem .85rem}.run-history button:disabled{opacity:.45;cursor:not-allowed}.run-history-scroll{overflow-x:auto}.run-history table{border-collapse:collapse;text-align:left;width:100%}.run-history th,.run-history td{white-space:nowrap;border-bottom:1px solid #2c4858;padding:.75rem .6rem}.run-history th{background:#1a3343}.run-history-pagination{justify-content:flex-end;align-items:center;gap:1rem;display:flex}.auth-page{color:#e8f0f6;background:#0b1520;place-items:center;min-height:100vh;padding:24px;display:grid}.auth-card{background:#14212c;border:1px solid #31485a;border-radius:14px;width:min(100%,430px);padding:36px;box-shadow:0 18px 55px #0004}.auth-brand{color:#56dba8;align-items:center;gap:12px;font-size:28px;font-weight:800;display:flex}.auth-brand span{color:#f1f6fa;font-size:18px}.auth-eyebrow{color:#56dba8;letter-spacing:.15em;margin:30px 0 9px;font-size:11px;font-weight:700}.auth-card h1{margin:0 0 10px;font-size:25px}.auth-subtitle,.auth-note{color:#b0c0cd;font-size:13px;line-height:1.6}.auth-card form{gap:10px;margin-top:22px;display:grid}.auth-card label{color:#d8e5ec;font-size:13px;font-weight:600}.auth-card input{box-sizing:border-box;color:#f0f6fa;width:100%;font:inherit;background:#0c1720;border:1px solid #435a6a;border-radius:7px;margin-bottom:8px;padding:12px}.auth-card input:focus-visible{outline-offset:2px;outline:2px solid #56dba8}.auth-card button,.auth-userbar button{color:#09261c;cursor:pointer;background:#56dba8;border:0;border-radius:7px;padding:11px 16px;font-weight:700}.auth-card button:disabled,.auth-userbar button:disabled{opacity:.55;cursor:wait}.auth-error{color:#fca5a5;font-size:13px}.auth-note{margin-top:24px}.auth-status{color:#d8e5ec;text-align:center;background:#0b1520;min-height:100vh;padding:48px}.auth-userbar{color:#c4d5df;background:#0c1720;border-bottom:1px solid #31485a;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:15px;padding:8px 24px;font-size:12px;display:flex}.auth-userbar button{padding:7px 12px}.tenant-message{color:#e4f2f5;background:#0a131e;min-height:30vh;padding:2rem}.tenant-selection{color:#e4f2f5;background:#0a131e;place-items:center;min-height:70vh;padding:2rem;display:grid}.tenant-card{background:#14222e;border:1px solid #334b5b;border-radius:16px;width:min(100%,540px);padding:2rem}.tenant-card h1{margin:0 0 1rem;font-size:1.7rem}.tenant-card p{color:#c4d5dc}.tenant-card ul{gap:.7rem;margin:1.5rem 0 0;padding:0;list-style:none;display:grid}.tenant-card li button{text-align:left;color:#e4f2f5;cursor:pointer;background:#0e1a25;border:1px solid #3a5564;border-radius:8px;justify-content:space-between;align-items:center;gap:1rem;width:100%;padding:1rem;display:flex}.tenant-card li button:hover{border-color:#50d8aa}.tenant-card li button:disabled{opacity:.5;cursor:wait}.tenant-card small{color:#65d9b1}.tenant-alert{color:#ff9b9b!important}.tenant-bar{color:#d2e4e9;background:#14222e;border-bottom:1px solid #304858;justify-content:flex-end;align-items:center;gap:1rem;padding:.55rem 1.5rem;font-size:.82rem;display:flex}.tenant-bar button,.tenant-message button{color:#e4f2f5;cursor:pointer;background:#1b3641;border:1px solid #4a6776;border-radius:6px;padding:.35rem .7rem}
