:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:var(--grovika-bg);--surface:var(--grovika-surface);--surface-soft:var(--grovika-snow);--surface-strong:var(--grovika-grid);--text:var(--grovika-text);--muted:var(--grovika-text-secondary);--border:var(--grovika-border-current);--accent:var(--grovika-ink);--accent-strong:var(--grovika-cyan-text);--accent-soft:color-mix(in srgb, var(--grovika-cyan) 12%, var(--grovika-white));--ok:var(--grovika-success);--ok-soft:color-mix(in srgb, var(--grovika-success) 12%, var(--grovika-white));--warn:var(--grovika-warning);--warn-soft:color-mix(in srgb, var(--grovika-warning) 13%, var(--grovika-white));--danger:var(--grovika-error);--danger-soft:color-mix(in srgb, var(--grovika-error) 11%, var(--grovika-white));--purple:var(--grovika-edited);--purple-soft:color-mix(in srgb, var(--grovika-edited) 11%, var(--grovika-white));--coral-soft:color-mix(in srgb, var(--grovika-coral) 13%, var(--grovika-white));--shadow:var(--grovika-shadow-card);--shadow-overlay:var(--grovika-shadow-overlay);--gradient-data:linear-gradient(135deg, var(--grovika-cyan) 0%, var(--grovika-cyan-text) 44%, var(--grovika-ink) 100%)}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%}html{background:var(--bg)}body{background:var(--bg);color:var(--text);font:400 14px/20px var(--grovika-font-body);text-rendering:optimizelegibility;margin:0}::selection{background:var(--grovika-cyan);color:var(--grovika-ink)}a{color:var(--grovika-cyan-text);text-underline-offset:3px;text-decoration-thickness:1px}button,input,select,textarea{font:inherit}button{cursor:pointer;min-height:40px}button:disabled{cursor:not-allowed;opacity:.46}:focus-visible{outline:3px solid var(--grovika-cyan-text);outline-offset:2px}h1,h2,h3,p{margin-top:0}h1,h2,h3{color:var(--text);font-family:var(--grovika-font-display);letter-spacing:-.025em}code,pre{font-family:var(--grovika-font-mono);font-variant-numeric:tabular-nums}.technical-value{font-family:var(--grovika-font-mono);font-variant-numeric:tabular-nums;letter-spacing:0}input::placeholder,textarea::placeholder{color:var(--grovika-muted)}.app-shell{flex-direction:column;min-height:100vh;display:flex}.topbar{z-index:10;justify-content:space-between;align-items:center;gap:var(--grovika-space-5);background:color-mix(in srgb, var(--grovika-white) 96%, transparent);border-bottom:1px solid var(--border);min-height:72px;box-shadow:0 1px 0 color-mix(in srgb, var(--grovika-ink) 4%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:8px 32px;display:flex;position:sticky;top:0}.brand{color:var(--text);white-space:nowrap;flex:none;align-items:center;text-decoration:none;display:inline-flex}.brand-logo{width:176px;height:auto;display:block}.nav{justify-content:flex-end;align-items:center;gap:var(--grovika-space-1);flex-wrap:wrap;display:flex}.nav a,.nav button{border-radius:var(--grovika-radius-control);min-height:40px;color:var(--text);transition:background var(--grovika-motion-fast) var(--grovika-easing), border-color var(--grovika-motion-fast) var(--grovika-easing), color var(--grovika-motion-fast) var(--grovika-easing);background:0 0;border:1px solid #0000;align-items:center;gap:7px;padding:0 12px;font-weight:600;text-decoration:none;display:inline-flex}.nav a:hover,.nav button:hover{background:var(--surface-strong);border-color:var(--border)}.nav .active{background:var(--grovika-ink);border-color:var(--grovika-ink);color:var(--grovika-white)}.nav-dropdown{position:relative}.nav-dropdown-chevron{transition:transform var(--grovika-motion-fast) var(--grovika-easing)}.nav-dropdown.open .nav-dropdown-chevron{transform:rotate(180deg)}.nav-dropdown-menu{z-index:20;min-width:228px;padding:var(--grovika-space-2);border:1px solid var(--border);border-radius:var(--grovika-radius-card);background:var(--surface);box-shadow:var(--shadow-overlay);display:none;position:absolute;top:calc(100% + 8px);right:0}.nav-dropdown.open .nav-dropdown-menu{gap:var(--grovika-space-1);display:grid}.nav-dropdown-menu a{white-space:nowrap;width:100%}.page{width:min(1360px,100%);margin:0 auto;padding:32px 28px 48px}.page-header{justify-content:space-between;align-items:flex-end;gap:var(--grovika-space-5);margin-bottom:var(--grovika-space-5);display:flex}.page-title h1{margin:0 0 var(--grovika-space-2);font-size:40px;font-weight:700;line-height:48px}.page-title p{color:var(--muted);margin:0;font-size:16px;line-height:24px}.content-grid{gap:var(--grovika-space-4);grid-template-columns:repeat(auto-fit,minmax(260px,1fr));display:grid}.two-column{gap:var(--grovika-space-4);grid-template-columns:minmax(280px,380px) minmax(0,1fr);align-items:start;display:grid}.three-column{gap:var(--grovika-space-4);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}@media (width<=900px){.topbar{flex-direction:column;align-items:flex-start;padding:12px 18px}.brand-logo{width:160px}.nav{justify-content:flex-start;width:100%}.nav-dropdown-menu{left:0;right:auto}.page{padding:24px 18px 40px}.page-header{flex-direction:column;align-items:flex-start}.page-title h1{font-size:32px;line-height:40px}.two-column,.three-column{grid-template-columns:1fr}}.panel,.login-panel,.modal-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--grovika-radius-panel);box-shadow:var(--shadow)}.panel{margin-bottom:var(--grovika-space-4);padding:var(--grovika-space-5)}.panel-header{justify-content:space-between;align-items:flex-start;gap:var(--grovika-space-4);margin-bottom:var(--grovika-space-4);display:flex}.panel-header h2{margin:0 0 var(--grovika-space-1);font-size:24px;font-weight:600;line-height:32px}.panel-header p{color:var(--muted);margin:0}.tool-card,.class-card{min-height:132px;padding:var(--grovika-space-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--grovika-radius-card);color:var(--text);box-shadow:var(--shadow);transition:border-color var(--grovika-motion-fast) var(--grovika-easing), box-shadow var(--grovika-motion-fast) var(--grovika-easing), transform var(--grovika-motion-fast) var(--grovika-easing);text-decoration:none}.tool-card{justify-content:space-between;gap:var(--grovika-space-4);flex-direction:column;display:flex}.tool-card:hover,.class-card:hover{border-color:var(--grovika-cyan-text);box-shadow:var(--shadow-overlay);transform:translateY(-1px)}.card-title{align-items:center;gap:var(--grovika-space-3);margin-bottom:var(--grovika-space-2);font-weight:700;display:flex}.card-title svg{color:var(--grovika-cyan-text)}.muted{color:var(--muted)}.form-stack{gap:var(--grovika-space-4);flex-direction:column;display:flex}.form-grid{gap:var(--grovika-space-4);grid-template-columns:repeat(auto-fit,minmax(230px,1fr));display:grid}.field{gap:var(--grovika-space-2);flex-direction:column;display:flex}.field span,.field-label{color:var(--text);font-weight:600}.field small{color:var(--muted);line-height:1.4}input,select,textarea{border:1px solid var(--border);border-radius:var(--grovika-radius-control);background:var(--surface);width:100%;min-height:40px;color:var(--text);transition:border-color var(--grovika-motion-fast) var(--grovika-easing), box-shadow var(--grovika-motion-fast) var(--grovika-easing);padding:8px 12px}input:hover,select:hover,textarea:hover{border-color:var(--grovika-slate)}input:focus,select:focus,textarea:focus{border-color:var(--grovika-cyan-text)}textarea{resize:vertical;min-height:96px}input[type=checkbox]{width:20px;min-height:20px;accent-color:var(--grovika-cyan-text);padding:0}.checkbox-field{flex-direction:row;justify-content:flex-start;align-items:center;min-height:40px}.button-row,.inline-row{align-items:center;gap:var(--grovika-space-3);flex-wrap:wrap;display:flex}.inline-form{align-items:end;gap:var(--grovika-space-3);flex-wrap:wrap;display:flex}.inline-form input{flex:220px}.notice{border:1px solid var(--border);border-radius:var(--grovika-radius-control);background:var(--surface-soft);padding:12px 14px}.notice.warning{border-color:color-mix(in srgb, var(--warn) 35%, var(--border));background:var(--warn-soft);color:var(--warn)}.primary,.secondary,.danger,.ghost,.icon-button{justify-content:center;align-items:center;gap:var(--grovika-space-2);border-radius:var(--grovika-radius-control);min-height:40px;transition:background var(--grovika-motion-fast) var(--grovika-easing), border-color var(--grovika-motion-fast) var(--grovika-easing), color var(--grovika-motion-fast) var(--grovika-easing), transform var(--grovika-motion-fast) var(--grovika-easing);border:1px solid #0000;padding:0 16px;font-weight:600;line-height:20px;text-decoration:none;display:inline-flex}.primary{background:var(--grovika-ink);border-color:var(--grovika-ink);color:var(--grovika-white)}.primary:hover{border-color:var(--grovika-cyan);transform:translateY(-1px)}.secondary{background:var(--surface);border-color:var(--border);color:var(--text)}.secondary:hover,.ghost:hover{border-color:var(--grovika-ink);transform:translateY(-1px)}.ghost{border-color:var(--border);color:var(--text);background:0 0}.danger{background:var(--danger-soft);border-color:color-mix(in srgb, var(--danger) 35%, var(--border));color:var(--danger)}.danger:hover{border-color:var(--danger);transform:translateY(-1px)}.icon-button{width:40px;padding:0}.compact-action{min-height:40px;padding:0 12px;font-size:13px}.badge{white-space:nowrap;border-radius:999px;align-items:center;gap:6px;min-height:28px;padding:4px 10px;font-size:12px;font-weight:600;line-height:16px;display:inline-flex}.badge:before{content:"";background:currentColor;border-radius:50%;flex:none;width:7px;height:7px}.badge.neutral{background:var(--surface-strong);color:var(--grovika-slate)}.badge.ok{background:var(--ok-soft);color:var(--ok)}.badge.warning{background:var(--warn-soft);color:var(--warn)}.badge.error,.badge.failed{background:var(--danger-soft);color:var(--danger)}.badge.running,.badge.queued{background:var(--purple-soft);color:var(--purple)}.badge.source-badge.manual,.badge.action-badge.kind-training{background:var(--accent-soft);color:var(--accent-strong)}.badge.source-badge.auto{background:var(--warn-soft);color:var(--warn)}.badge.action-badge.kind-pseudo{background:var(--coral-soft);color:var(--danger)}.badge-button{cursor:pointer;border:0;min-height:40px}.status-spinner{animation:1s linear infinite status-spin}@keyframes status-spin{to{transform:rotate(360deg)}}.table-wrap{border:1px solid var(--border);border-radius:var(--grovika-radius-card);background:var(--surface);width:100%;overflow-x:auto}table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}th,td{border-bottom:1px solid var(--border);text-align:left;vertical-align:middle;padding:12px 14px}th{background:var(--surface-soft);color:var(--grovika-slate);text-transform:uppercase;letter-spacing:.06em;font-size:12px;font-weight:600}tr:last-child td{border-bottom:0}.clickable-row{cursor:pointer}.clickable-row:hover td{background:var(--accent-soft)}.status-stack{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.action-cell{text-align:right;white-space:nowrap;min-width:170px}.action-cell>*{vertical-align:middle;margin:2px 0 2px 6px}.file-download-link{max-width:100%}.file-link-name{min-width:0;font-family:var(--grovika-font-mono);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.file-link-size{font-family:var(--grovika-font-mono);font-variant-numeric:tabular-nums;flex:none}.result-change-row.kind-training td,.training-result-row td{background:color-mix(in srgb, var(--grovika-cyan) 8%, var(--grovika-white))}.result-change-row.kind-pseudo td,.pseudo-result-row td{background:color-mix(in srgb, var(--grovika-coral) 8%, var(--grovika-white))}.result-change-row.kind-training:hover td,.training-result-row:hover td{background:color-mix(in srgb, var(--grovika-cyan) 14%, var(--grovika-white))}.result-change-row.kind-pseudo:hover td,.pseudo-result-row:hover td{background:color-mix(in srgb, var(--grovika-coral) 14%, var(--grovika-white))}.visually-hidden-header{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.empty-state{color:var(--muted);text-align:center;padding:32px}.modal-backdrop{z-index:30;background:color-mix(in srgb, var(--grovika-ink) 42%, transparent);place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal-card{flex-direction:column;width:min(560px,100%);max-height:calc(100dvh - 40px);display:flex;overflow:hidden}.modal-card.wide{width:min(900px,100%)}.modal-header,.modal-footer{justify-content:space-between;align-items:center;gap:var(--grovika-space-3);padding:var(--grovika-space-4) var(--grovika-space-5);border-bottom:1px solid var(--border);display:flex}.modal-footer{border-top:1px solid var(--border);border-bottom:0;justify-content:flex-end}.modal-header h2{margin:0;font-size:24px;font-weight:600;line-height:32px}.modal-body{min-height:0;padding:var(--grovika-space-5);overflow:hidden auto}.log-view{min-height:320px;max-height:62vh;padding:var(--grovika-space-4);border:1px solid var(--grovika-ink);border-radius:var(--grovika-radius-control);background:var(--grovika-ink);color:var(--grovika-white);white-space:pre-wrap;margin:0;font-size:13px;line-height:20px;overflow:auto}.error-box,.info-box{border-radius:var(--grovika-radius-control);border:1px solid var(--border);padding:12px 14px}.error-box{background:var(--danger-soft);color:var(--danger);border-color:color-mix(in srgb, var(--danger) 35%, var(--border))}.info-box{background:var(--accent-soft);color:var(--accent-strong);border-color:color-mix(in srgb, var(--grovika-cyan-text) 35%, var(--border))}.hidden{display:none!important}.login-page{min-height:100vh;padding:var(--grovika-space-5);background:var(--gradient-data);place-items:center;display:grid}.login-panel{width:min(420px,100%);box-shadow:var(--shadow-overlay);padding:32px}.login-mark{margin-bottom:var(--grovika-space-5);align-items:center;display:inline-flex}.login-mark .brand-logo{width:220px}.login-panel .primary{width:100%}.loading-panel{justify-items:start;gap:var(--grovika-space-4);display:grid}.loading-panel .login-mark{margin-bottom:0}.loading-status{color:var(--muted);font-weight:600}.metric-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;display:grid}.metric{padding:var(--grovika-space-4);border:1px solid var(--border);border-radius:var(--grovika-radius-card);background:var(--surface-soft)}.metric strong{margin-bottom:var(--grovika-space-1);font:600 20px/28px var(--grovika-font-mono);font-variant-numeric:tabular-nums;display:block}.template-tree{flex-direction:column;gap:8px;display:flex}.tree-button{border:1px solid var(--border);border-radius:var(--grovika-radius-control);background:var(--surface-soft);width:100%;min-height:40px;color:var(--text);text-align:left;transition:background var(--grovika-motion-fast) var(--grovika-easing), border-color var(--grovika-motion-fast) var(--grovika-easing);justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;font-weight:600;display:flex}.tree-button.child{width:calc(100% - 16px);margin-left:16px}.tree-button.active{background:var(--accent-soft);border-color:var(--grovika-cyan-text)}.config-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;display:grid}.automation-table th:first-child,.automation-table td:first-child{background:var(--surface);z-index:1;position:sticky;left:0}.automation-cell{grid-template-columns:1fr 1fr;gap:6px;min-width:180px;display:grid}.automation-toggle{border:1px solid var(--border);border-radius:var(--grovika-radius-control);background:var(--surface-soft);min-height:40px;font-weight:600}.automation-toggle.enabled{background:var(--ok-soft);border-color:var(--ok);color:var(--ok)}.result-group{margin-bottom:16px}.training-summary-table,.pseudo-table{table-layout:fixed;min-width:760px}.model-export-table{table-layout:fixed;min-width:1040px}.model-export-col-check{width:6%}.model-export-col-dataset{width:22%}.model-export-col-model{width:20%}.model-export-col-date{width:16%}.model-export-col-name{width:24%}.model-export-col-sample{width:12%}.model-export-table input{min-width:0}.model-export-table .disabled-row td{color:var(--muted);background:var(--surface-soft)}.training-summary-table .result-col-model{width:18%}.training-summary-table .result-col-status{width:13%}.training-summary-table .result-col-score{width:8%}.training-summary-table .result-col-epoch{width:7%}.training-summary-table .result-col-created{width:18%}.training-summary-table .result-col-actions{width:28%}.pseudo-table .result-col-source{width:22%}.pseudo-table .result-col-status{width:17%}.pseudo-table .result-col-geojson{width:28%}.pseudo-table .result-col-created{width:18%}.pseudo-table .result-col-actions{width:15%}.training-summary-table td:first-child{min-width:0}.training-summary-table th,.training-summary-table td{padding-left:8px;padding-right:8px}.training-summary-table .action-cell{white-space:normal;min-width:0}.pseudo-subtable-wrap{border-left:3px solid var(--danger-soft);width:calc(100% - 28px);margin:8px 0 0 28px}.pseudo-table th:first-child,.pseudo-table td:first-child{min-width:180px}.result-group h3{justify-content:space-between;align-items:center;gap:12px;margin:0 0 10px;font-size:18px;font-weight:600;line-height:28px;display:flex}.dataset-list{flex-direction:column;gap:8px;margin-top:12px;display:flex}.dataset-link{border:1px solid var(--border);border-radius:var(--grovika-radius-control);background:var(--surface-soft);min-height:40px;transition:background var(--grovika-motion-fast) var(--grovika-easing), border-color var(--grovika-motion-fast) var(--grovika-easing);justify-content:space-between;align-items:center;gap:10px;padding:8px 12px;text-decoration:none;display:flex}.dataset-link:hover{border-color:var(--grovika-cyan-text);background:var(--accent-soft)}.dataset-link span{color:var(--text);font-weight:600}.dataset-link small{color:var(--muted);white-space:nowrap}.result-card-f1{font:600 13px/20px var(--grovika-font-mono);font-variant-numeric:tabular-nums;white-space:nowrap;margin-left:auto}.result-card-f1.current{color:var(--ok)}.result-card-f1.stale{color:var(--warn)}.status-banner{border:1px solid var(--border);border-radius:var(--grovika-radius-card);justify-content:space-between;align-items:center;gap:18px;margin-bottom:16px;padding:14px 16px;display:flex}.status-banner>div{flex-direction:column;gap:4px;display:flex}.status-banner.ok{border-color:var(--ok);background:var(--ok-soft);color:var(--ok)}.status-banner.error{border-color:var(--danger);background:var(--danger-soft);color:var(--danger)}.status-banner.neutral{background:var(--surface-strong);color:var(--muted)}.job-config{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px;display:grid}.job-config .metric code{word-break:break-word;display:inline}.config-metric .muted{margin-right:6px;display:inline}.field [title],.config-metric[title]{cursor:help}.source-lines{flex-direction:column;gap:2px;display:flex}.source-lines small{font-family:var(--grovika-font-mono);font-variant-numeric:tabular-nums}.test-sample-catalog{margin-top:22px}.test-sample-batch-settings{grid-template-columns:repeat(3,minmax(0,220px));margin-bottom:6px}.test-sample-batch-pool-hint{margin-bottom:12px}.test-sample-batch-select-actions{margin-bottom:10px}.download-selection-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.test-sample-download-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;max-height:min(50vh,480px);padding-right:4px;display:grid;overflow:hidden auto}.bulk-test-sample-download-form{min-height:0}.test-sample-download-choice{border:1px solid var(--border);border-radius:var(--grovika-radius-control);background:var(--surface-soft);cursor:pointer;align-items:center;gap:7px;min-width:0;min-height:40px;padding:6px 10px;display:flex}.test-sample-download-choice.disabled-row{cursor:not-allowed;opacity:.55}.test-sample-download-choice input{flex:none;margin:0}.test-sample-download-choice .source-lines{min-width:0}.test-sample-download-choice strong{align-items:center;gap:5px;min-width:0;font-size:13px;line-height:1.25;display:flex}.test-sample-download-choice strong,.test-sample-download-choice span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.test-sample-download-created-at{color:var(--muted);font:400 11px/16px var(--grovika-font-mono);font-variant-numeric:tabular-nums}.download-mode-fieldset{border:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;padding:0;display:grid}.download-mode-fieldset legend{color:var(--text);grid-column:1/-1;margin-bottom:7px;font-weight:600}.download-mode-choice{border:1px solid var(--border);border-radius:var(--grovika-radius-control);background:var(--surface-soft);cursor:pointer;align-items:flex-start;gap:9px;min-height:40px;padding:10px 12px;display:flex}.download-mode-choice input[type=radio]{width:18px;min-height:18px;accent-color:var(--grovika-cyan-text);flex:none;margin:2px 0 0}.download-mode-choice span{flex-direction:column;gap:2px;min-width:0;display:flex}.download-mode-choice small{color:var(--muted)}.download-dialog-actions{justify-content:flex-end}.test-sample-batch-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.test-sample-batch-row{border:1px solid var(--border);border-radius:var(--grovika-radius-card);background:var(--surface-soft);grid-template-columns:minmax(150px,1fr) 100px 118px;align-items:end;gap:8px;min-width:0;padding:9px 10px;display:grid}.test-sample-batch-row.disabled-row{opacity:.62}.test-sample-batch-choice{cursor:pointer;align-items:center;gap:8px;min-width:0;display:flex}.test-sample-batch-choice input{width:17px;min-height:17px;margin:0}.test-sample-batch-choice .source-lines{gap:1px;min-width:0}.test-sample-batch-choice .source-lines strong,.test-sample-batch-choice .source-lines span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.test-markup-creation-status{color:var(--muted);align-items:center;gap:5px 10px;font-size:11px;font-weight:600;display:flex}.test-markup-creation-status span{overflow:visible}.primary-star{color:var(--warn);flex:none}.primary-result-star{width:28px;min-height:28px;color:var(--muted);background:0 0;border-color:#0000}.primary-result-star:hover{color:var(--warn)}.test-sample-batch-field{min-width:0;color:var(--muted);gap:3px;font-size:11px;font-weight:600;display:grid}.test-sample-batch-field input,.test-sample-batch-field select{width:100%;min-width:0;min-height:40px;padding:8px 10px}.test-sample-batch-progress{margin-top:22px}.batch-progress-track{background:var(--surface-strong);border-radius:999px;height:9px;margin-bottom:14px;overflow:hidden}.batch-progress-track span{border-radius:inherit;background:var(--grovika-cyan);height:100%;transition:width var(--grovika-motion-normal) var(--grovika-easing);display:block}.error-text{color:var(--danger);font-weight:600}.test-sample-name-field{grid-column:1/-1}.test-markup-card-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.test-markup-card{border:1px solid var(--border);border-radius:var(--grovika-radius-card);background:var(--surface-soft);min-width:0;transition:border-color var(--grovika-motion-fast) var(--grovika-easing), transform var(--grovika-motion-fast) var(--grovika-easing);gap:12px;padding:14px;display:grid}.test-markup-card:hover{border-color:var(--grovika-cyan-text);transform:translateY(-1px)}.test-markup-card-header,.test-markup-card-footer{justify-content:space-between;align-items:flex-start;gap:10px;min-width:0;display:flex}.test-markup-card-header>a{min-width:0;color:var(--text);flex-direction:column;gap:3px;text-decoration:none;display:flex}.test-markup-card-header>a strong,.test-markup-card-header>a span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.test-markup-card-header>a span,.test-markup-card-footer{color:var(--muted);font-size:12px}.test-markup-card-body{color:var(--text);grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;text-decoration:none;display:grid}.test-markup-card-body>span{border-radius:var(--grovika-radius-control);background:var(--surface-strong);gap:3px;padding:8px;display:grid}.test-markup-card-body small{color:var(--muted)}.test-markup-card-body strong,.test-markup-card-footer .muted{font-family:var(--grovika-font-mono);font-variant-numeric:tabular-nums}.test-markup-card-footer{align-items:center}.test-markup-summary{margin-bottom:14px}.test-markup-warnings{gap:8px;margin-bottom:14px;display:grid}.markup-preview-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px;display:grid}.markup-preview-card{border:1px solid var(--border);border-radius:var(--grovika-radius-card);background:var(--surface-soft);min-width:0;transition:opacity var(--grovika-motion-normal) var(--grovika-easing), filter var(--grovika-motion-normal) var(--grovika-easing);overflow:hidden}.markup-preview-card.disabled{opacity:.48;filter:grayscale(.7)}.markup-preview-card img{aspect-ratio:1;object-fit:contain;background:var(--grovika-ink);width:100%;display:block}.markup-preview-meta{flex-direction:column;align-items:flex-start;gap:5px;min-width:0;padding:11px;display:flex}.markup-preview-meta span:not(.badge),.markup-preview-meta small{max-width:100%;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.test-sample-tile-heading{justify-content:space-between;align-items:center;gap:10px;width:100%;display:flex}.test-sample-toggle{color:var(--muted);align-items:center;gap:6px;font-size:12px;font-weight:600;display:inline-flex}.test-sample-toggle input{width:17px;min-height:17px;margin:0}.test-sample-warnings{margin-top:14px;margin-bottom:0}.test-sample-metric-grid{grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:14px;display:grid}.test-sample-metric-card{border:1px solid var(--border);border-radius:var(--grovika-radius-card);background:var(--surface-soft);padding:15px}.test-sample-metric-card h3{margin:0 0 9px;font-size:15px}.test-sample-f1{color:var(--accent-strong);font:600 24px/32px var(--grovika-font-mono);font-variant-numeric:tabular-nums;margin-bottom:12px;display:block}.test-sample-metric-card dl{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:0;display:grid}.test-sample-metric-card dl div{min-width:0}.test-sample-metric-card dt{color:var(--muted);font-size:11px}.test-sample-metric-card dd{font:600 14px/20px var(--grovika-font-mono);font-variant-numeric:tabular-nums;margin:2px 0 0}.test-sample-evaluation-source{color:var(--muted);flex-wrap:wrap;gap:8px 18px;margin:14px 0;display:flex}.class-editor-card{gap:16px;display:grid}.class-editor-header{grid-template-columns:minmax(280px,1fr) minmax(150px,190px) minmax(180px,220px) minmax(180px,220px);align-items:end;gap:14px;display:grid}.class-editor-header>label{color:var(--text);gap:6px;font-weight:600;display:grid}.class-editor-datasets{gap:10px;display:grid}.dataset-card{border:1px solid var(--border);border-radius:var(--grovika-radius-card);background:var(--surface-soft);gap:10px;padding:13px;display:grid}.dataset-card-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.dataset-card-header .source-lines{flex:420px}.add-dataset-actions{padding-top:4px}@media (width<=700px){.tool-card,.class-card,.panel{padding:14px}.automation-cell{grid-template-columns:1fr}.test-sample-metric-card dl{grid-template-columns:repeat(3,minmax(0,1fr))}.test-sample-batch-settings,.test-sample-batch-grid,.test-markup-card-grid,.test-sample-download-grid,.download-mode-fieldset{grid-template-columns:1fr}.test-sample-batch-row{grid-template-columns:minmax(130px,1fr) 92px 110px}.class-editor-header{grid-template-columns:1fr}.dataset-card-header{flex-direction:column;align-items:stretch}}@media (width>=701px) and (width<=900px){.test-sample-batch-grid{grid-template-columns:1fr}}@media (width>=701px) and (width<=1100px){.test-markup-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=500px){.test-sample-batch-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.test-sample-batch-choice{grid-column:1/-1}}
