:root{color:#111827;background:#f6f7f9;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}.login-shell{align-items:center;display:flex;justify-content:center;min-height:100vh;padding:24px}.login-panel{background:#fff;border:1px solid #d9dee8;border-radius:8px;box-shadow:0 18px 50px #0f172a14;display:grid;gap:18px;max-width:420px;padding:28px;width:100%}.brand-row,.topbar-brand,.topbar-actions,.panel-header,.job-row-top,.checkpoint-title,.artifact-folder-row,.artifact-row,.primary-button,.secondary-button,.topbar-button,.icon-button,.status-pill,.loading-inline{align-items:center;display:flex}.brand-mark{align-items:center;background:#e0f2fe;border-radius:8px;color:#0369a1;display:flex;height:48px;justify-content:center;width:48px}.brand-row{gap:14px}.brand-row h1,.hero-band h1{font-size:24px;letter-spacing:0;line-height:1.2;margin:0}.brand-row p,.hero-band p,.panel-header p,.topbar-brand span,.job-row-meta,.job-row-title span,.checkpoint-title small,.artifact-folder-row small,.artifact-row small{color:#64748b}.login-panel label{color:#334155;display:grid;font-size:13px;font-weight:600;gap:7px}.login-panel input,.input-with-icon input,.training-fieldset input,.training-fieldset select,.training-fieldset textarea{background:#fff;border:1px solid #cbd5e1;border-radius:6px;color:#111827;min-height:40px;outline:none;padding:0 12px}.login-panel input:focus,.input-with-icon input:focus,.training-fieldset input:focus,.training-fieldset select:focus,.training-fieldset textarea:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1f}.primary-button,.secondary-button,.topbar-button,.view-switch,.icon-button{border:0;justify-content:center}.primary-button{background:#2563eb;border-radius:6px;color:#fff;font-weight:700;gap:8px;min-height:42px}.primary-button:disabled{cursor:not-allowed;opacity:.65}.secondary-button,.topbar-button{background:#eef2f7;border-radius:6px;color:#334155;cursor:pointer;font-weight:700;gap:7px;min-height:36px;padding:0 12px;text-decoration:none}.view-switch{align-items:center;background:#eef2f7;border-radius:6px;display:grid;gap:3px;grid-template-columns:repeat(2,minmax(72px,1fr));padding:3px}.view-switch button{background:transparent;border:0;border-radius:5px;color:#475569;font-size:12px;font-weight:800;min-height:30px;padding:0 10px}.view-switch button.active{background:#fff;box-shadow:0 1px 3px #0f172a1f;color:#0f172a}.secondary-button{width:max-content}.topbar-button{background:#2563eb;color:#fff}.error-box,.global-error{background:#fef2f2;border:1px solid #fecaca;border-radius:6px;color:#991b1b;padding:10px 12px}.app-shell{display:grid;grid-template-rows:auto auto 1fr;height:100vh;min-height:720px}.topbar{align-items:center;background:#fff;border-bottom:1px solid #d9dee8;display:flex;justify-content:space-between;min-height:58px;padding:0 18px}.topbar-brand{gap:10px}.topbar-brand svg{color:#2563eb;height:22px;width:22px}.topbar-brand div{display:grid;gap:2px}.topbar-actions{gap:10px}.topbar-actions span{color:#475569;font-size:13px}.icon-button{background:#eef2f7;border-radius:6px;color:#334155;height:34px;width:34px}.icon-button svg,.primary-button svg,.secondary-button svg,.topbar-button svg,.status-icon,.checkpoint-title svg,.artifact-folder-row svg,.artifact-row svg,.panel-header>svg{height:16px;width:16px}.global-error{margin:10px 18px 0}.workbench{display:grid;grid-template-columns:minmax(320px,390px) minmax(0,1fr);min-height:0}.job-pane{background:#fff;border-right:1px solid #d9dee8;display:grid;grid-template-rows:auto auto 1fr;min-height:0;padding:14px}.summary-grid{display:grid;gap:8px;grid-template-columns:repeat(4,1fr)}.summary-grid div{background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;display:grid;gap:2px;min-height:64px;padding:10px}.summary-grid span{font-size:20px;font-weight:800}.summary-grid small{color:#64748b;font-size:11px}.filter-stack{display:grid;gap:10px;padding:14px 0}.input-with-icon{position:relative}.input-with-icon svg{color:#64748b;height:16px;left:12px;position:absolute;top:12px;width:16px}.input-with-icon input{padding-left:36px;width:100%}.segmented{background:#eef2f7;border-radius:7px;display:grid;gap:3px;grid-template-columns:repeat(5,minmax(0,1fr));padding:3px}.segmented button{background:transparent;border:0;border-radius:5px;color:#475569;font-size:12px;min-height:30px;padding:0 4px}.segmented button.active{background:#fff;box-shadow:0 1px 3px #0f172a1f;color:#0f172a;font-weight:700}.job-list{align-content:start;display:grid;gap:8px;grid-auto-rows:max-content;overflow:auto;padding-right:2px}.job-row{background:#fff;border:1px solid #d9dee8;border-radius:7px;color:inherit;display:grid;gap:8px;padding:12px;text-align:left}.job-row.selected{border-color:#2563eb;box-shadow:inset 3px 0 #2563eb}.job-row-top{justify-content:space-between}.job-id{color:#0f172a;font-weight:800}.status-pill{border-radius:999px;font-size:12px;font-weight:700;gap:5px;padding:5px 8px}.status-finished{background:#dcfce7;color:#166534}.status-failed{background:#fee2e2;color:#991b1b}.status-training{background:#dbeafe;color:#1d4ed8}.status-queued,.status-unknown{background:#f1f5f9;color:#475569}.job-row-title{display:grid;gap:2px;min-width:0}.job-row-title strong,.job-row-title span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.job-row-meta{display:flex;font-size:12px;gap:8px;justify-content:space-between}.job-row-meta span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.model-row .job-row-title strong{white-space:normal}.detail-pane{display:grid;gap:14px;min-height:0;overflow:auto;padding:16px}.detail-pane.centered{align-items:center;justify-content:center}.hero-band{align-items:center;background:#fff;border:1px solid #d9dee8;border-radius:8px;display:flex;justify-content:space-between;padding:18px}.eyebrow{color:#2563eb;font-size:12px;font-weight:800;letter-spacing:0;margin-bottom:5px;text-transform:uppercase}.meta-grid{display:grid;gap:10px;grid-template-columns:repeat(4,minmax(0,1fr))}.meta-grid div,.panel{background:#fff;border:1px solid #d9dee8;border-radius:8px}.meta-grid div{display:grid;gap:6px;min-width:0;padding:14px}.meta-grid small{color:#64748b;font-size:12px}.meta-grid strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.resume-panel{align-items:end;display:grid;gap:14px;grid-template-columns:minmax(0,1fr) auto}.resume-panel h2{font-size:16px;letter-spacing:0;margin:0}.resume-panel p,.resume-compute p,.resume-target,.related-job-row small{color:#64748b;font-size:12px}.resume-panel p,.resume-compute p{margin:4px 0 0}.resume-controls{align-items:end;display:flex;gap:10px}.resume-controls label{color:#334155;display:grid;font-size:12px;font-weight:700;gap:6px}.resume-controls input{background:#fff;border:1px solid #cbd5e1;border-radius:6px;color:#111827;min-height:38px;min-width:140px;padding:0 10px}.resume-controls .primary-button{min-width:112px;padding:0 12px}.resume-target{grid-column:1 / -1}.resume-compute{border-top:1px solid #e2e8f0;display:grid;gap:12px;grid-column:1 / -1;padding-top:12px}.resume-compute h3{font-size:13px;letter-spacing:0;margin:0}.related-jobs-panel{display:grid;gap:10px}.related-job-list{display:grid;gap:8px}.related-job-row{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:6px;color:#334155;display:grid;gap:10px;grid-template-columns:70px 120px minmax(120px,1fr) minmax(180px,auto);min-height:42px;padding:8px 10px;text-align:left}.related-job-row.selected{border-color:#2563eb;color:#0f172a;font-weight:800}.related-job-row:disabled{cursor:default}.model-overview-panel{display:grid;gap:12px}.model-overview-panel .panel-header{margin-bottom:0}.model-overview-panel h2{font-size:20px;letter-spacing:0;margin:0}.model-overview-grid{display:grid;gap:10px;grid-template-columns:repeat(4,minmax(0,1fr))}.model-overview-grid div{background:#f8fafc;border:1px solid #e2e8f0;border-radius:7px;display:grid;gap:6px;min-width:0;padding:12px}.model-overview-grid small,.model-job-strip small{color:#64748b;font-size:12px}.model-overview-grid strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.model-job-strip{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.model-job-strip button{background:#fff;border:1px solid #d9dee8;border-radius:7px;color:#334155;display:grid;gap:4px;min-height:72px;padding:10px;text-align:left}.model-job-strip button.selected{border-color:#2563eb;box-shadow:inset 3px 0 #2563eb;color:#0f172a}.panel{min-width:0;padding:14px}.panel-header{justify-content:space-between;margin-bottom:12px}.panel-header h2{font-size:16px;letter-spacing:0;margin:0}.panel-header p{font-size:12px;margin:3px 0 0}.start-training-panel{display:grid;gap:16px}.start-training-panel .panel-header{align-items:flex-start;gap:14px;margin-bottom:0}.start-training-panel .primary-button{flex:0 0 auto;min-width:104px;padding:0 14px}.new-training-page{min-height:0;overflow:auto;padding:18px}.new-training-page .start-training-panel{margin:0 auto;max-width:1180px}.training-page-header h1{font-size:24px;letter-spacing:0;line-height:1.2;margin:14px 0 0}.training-form-grid{display:grid;gap:14px;grid-template-columns:minmax(260px,320px) minmax(0,1fr);min-width:0}.training-editor{display:grid;gap:10px;min-width:0}.training-fieldset{border:1px solid #e2e8f0;border-radius:7px;display:grid;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr));margin:0;min-width:0;padding:12px}.training-fieldset legend{color:#334155;font-size:12px;font-weight:800;padding:0 5px}.training-fieldset label{color:#334155;display:grid;font-size:12px;font-weight:700;gap:6px;min-width:0}.compute-selector{display:grid;gap:10px;grid-column:1 / -1;grid-template-columns:1fr}.compute-selector.compact{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.compute-button{align-items:start;background:#f8fafc;border:1px solid #dbe3ee;border-radius:8px;color:#475569;cursor:pointer;display:grid;gap:10px;grid-template-columns:auto minmax(0,1fr);min-height:78px;min-width:0;padding:10px;text-align:left}.compute-button svg{flex:0 0 auto;height:17px;margin-top:2px;width:15px}.compute-button span{display:grid;gap:3px;min-width:0}.compute-button strong,.compute-button small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compute-button strong{color:#0f172a;font-size:13px}.compute-button small{color:#64748b;font-size:11px}.compute-button.active{background:#e0f2fe;border-color:#0284c7;color:#075985}.compute-button:disabled{cursor:not-allowed;opacity:.55}.training-fieldset input,.training-fieldset select{min-height:36px;min-width:0;padding:0 10px;width:100%}.training-fieldset textarea{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px;min-height:118px;outline:none;padding:10px;resize:vertical;width:100%}.training-fieldset .wide-field{grid-column:1 / -1}.training-picker{align-content:start;grid-template-columns:1fr}.checkbox-field{align-items:center;display:flex!important;flex-direction:row;gap:8px!important;min-height:36px}.checkbox-field input{height:16px;min-height:16px;width:16px}.training-preview{background:#0f172a;border-radius:7px;color:#dbeafe;display:grid;grid-template-rows:auto 1fr;min-height:260px;min-width:0;overflow:hidden}.training-preview.invalid{background:#3f1717;color:#fee2e2}.training-preview pre{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px;margin:0;overflow:auto;padding:12px;white-space:pre-wrap}.training-config-editor{background:#0f172a;border-radius:7px;color:#dbeafe;display:grid;grid-template-rows:auto minmax(420px,1fr) auto;min-height:520px;min-width:0;overflow:hidden}.training-config-editor.invalid{background:#3f1717;color:#fee2e2}.training-config-editor textarea{background:transparent;border:0;color:inherit;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:13px;line-height:1.5;min-height:0;outline:none;padding:14px;resize:none;width:100%}.training-config-editor textarea:disabled{opacity:.72}.config-status{background:#ffffff0f;border-top:1px solid rgba(255,255,255,.14);color:inherit;font-size:12px;padding:10px 12px}.metric-chart-stack{display:grid;gap:18px}.metric-chart{display:grid;gap:8px;min-height:210px}.metric-chart+.metric-chart{border-top:1px solid #e2e8f0;padding-top:14px}.metric-chart-title{color:#334155;font-size:13px;font-weight:800}.empty-chart,.empty-state,.loading-inline{color:#64748b;gap:8px}.empty-chart{align-items:center;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:7px;display:flex;justify-content:center;min-height:220px}.empty-state{align-items:center;display:flex;justify-content:center;min-height:90px;text-align:center}.large-empty{font-size:16px}.artifact-grid{display:grid;gap:12px;grid-template-columns:minmax(300px,42%) minmax(0,1fr);min-height:360px}.artifact-list{align-content:start;border:1px solid #e2e8f0;border-radius:7px;display:grid;gap:10px;grid-auto-rows:max-content;max-height:420px;overflow:auto;padding:10px}.checkpoint-group{display:grid;gap:4px}.checkpoint-title{background:#eef6ff;border:1px solid #bfdbfe;border-radius:6px;color:#1e3a8a;gap:8px;font-weight:800;min-height:38px;padding:8px;text-align:left}.checkpoint-title small{font-weight:600;margin-left:auto}.artifact-tree-node{display:grid;gap:4px}.artifact-folder-row{background:#fff;border:1px solid #e2e8f0;border-radius:6px;color:#334155;gap:8px;min-height:34px;padding:7px 8px 7px calc(8px + (var(--depth, 0) * 18px));text-align:left}.artifact-folder-row small{font-weight:600;margin-left:auto}.tree-chevron{color:#64748b;flex:0 0 auto;transition:transform .16s ease}.tree-chevron.expanded{transform:rotate(90deg)}.artifact-row{background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;color:#334155;gap:8px;min-height:34px;padding:7px 8px 7px calc(8px + (var(--depth, 0) * 18px));text-align:left}.artifact-row:disabled{cursor:not-allowed;opacity:.52}.artifact-row span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.artifact-preview,.log-panel pre{background:#0f172a;border-radius:7px;color:#dbeafe;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px}.artifact-preview{min-height:360px;overflow:hidden;padding:0}.artifact-preview pre,.log-panel pre{margin:0;overflow:auto;white-space:pre-wrap}.artifact-preview pre{max-height:390px;padding:12px}.preview-title{background:#1e293b;border-bottom:1px solid #334155;color:#fff;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px;padding:9px 12px}.log-panel pre{max-height:360px;min-height:220px;padding:12px}.spin{animation:spin .9s linear infinite}.large{height:34px;width:34px}.pulse{animation:pulse 1.2s ease-in-out infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.42}}@media (max-width: 1180px){.training-form-grid{grid-template-columns:1fr}.training-config-editor{min-height:460px}.training-fieldset,.training-picker,.compute-selector,.compute-selector.compact{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 980px){.app-shell{height:auto;min-height:100vh}.workbench,.meta-grid,.model-overview-grid,.artifact-grid,.resume-panel{grid-template-columns:1fr}.job-pane{border-bottom:1px solid #d9dee8;border-right:0}.topbar{align-items:flex-start;flex-direction:column;gap:8px;height:auto;padding:12px 16px}.topbar-actions{flex-wrap:wrap}}@media (max-width: 640px){.start-training-panel .panel-header{display:grid}.start-training-panel .primary-button{width:100%}.training-fieldset,.training-picker,.compute-selector,.compute-selector.compact{grid-template-columns:1fr}.training-config-editor{grid-template-rows:auto minmax(340px,1fr) auto;min-height:430px}.resume-controls,.resume-controls .primary-button{width:100%}.resume-controls{align-items:stretch;display:grid}.resume-controls input{min-width:0;width:100%}.related-job-row{grid-template-columns:1fr}}
