.tabs button,#pairTabs button{cursor:pointer;box-shadow:0 2px 0 rgba(23,37,31,.15);transition:transform .12s,box-shadow .12s,background .12s}
.primary{cursor:pointer;position:relative;box-shadow:0 3px 0 #0d3d2e,0 7px 16px rgba(20,91,69,.16);transition:transform .12s,box-shadow .12s,background-color .12s,filter .12s}
.primary:hover:not(:disabled){background:#1a6b51;filter:saturate(1.06);transform:translateY(-1px);box-shadow:0 4px 0 #0d3d2e,0 9px 18px rgba(20,91,69,.2)}
.primary:active:not(:disabled){transform:translateY(3px);box-shadow:inset 0 3px 7px rgba(0,0,0,.32),0 1px 0 #0d3d2e}
.primary:focus-visible{outline:3px solid rgba(233,170,69,.65);outline-offset:3px}
.primary:disabled{cursor:wait;opacity:.58;box-shadow:inset 0 2px 5px rgba(0,0,0,.18);transform:none}
.tabs button:hover,#pairTabs button:hover{border-color:var(--green)}
.tabs button.active,#pairTabs button.active{background:var(--green);color:#fff;font-weight:800;transform:translateY(2px);box-shadow:inset 0 3px 7px rgba(0,0,0,.3)}
.chart-card{margin-top:18px}.legend{display:flex;flex-wrap:wrap;gap:8px 18px;margin:12px 0;color:var(--muted);font-size:.78rem}
.legend span{display:inline-flex;align-items:center;gap:6px}.legend i{width:12px;height:12px;border-radius:3px;display:inline-block}
.empty-state{border:1px dashed var(--line);background:#faf7f0;border-radius:12px;padding:24px;margin:12px 0}
.empty-state b{font:700 1.2rem Georgia}.empty-state p{color:var(--muted);margin-bottom:0}
.table-scroll{overflow:auto;max-width:100%}.table-scroll table{white-space:nowrap}.table-scroll th{position:sticky;top:0;background:var(--card);z-index:1}
.table-note{margin:0 0 10px;color:var(--muted);font-size:.78rem}.sort-header{border:0;background:transparent;color:var(--green);font:inherit;font-weight:850;padding:4px 0;cursor:pointer;white-space:nowrap}.sort-header:hover{text-decoration:underline;text-underline-offset:3px}.sort-header:focus-visible{outline:2px solid var(--gold);outline-offset:2px;border-radius:3px}
td button{border:1px solid var(--green);background:#fff;color:var(--green);border-radius:8px;padding:5px 9px;cursor:pointer}
.lab{grid-template-columns:330px minmax(0,1fr)!important}
.lab main{min-width:0}
.controls{top:12px;max-height:none;overflow:visible;padding-right:18px}
#algorithms{max-height:none;overflow:visible;display:grid;gap:10px}
.algorithm-key{margin:0;padding:9px 10px;border-radius:10px;background:#eaf3ee;color:var(--muted);font-size:11px;line-height:1.5}.algorithm-key b{color:var(--green)}
.algorithm-group{min-width:0;margin:0;padding:9px;border:1px solid var(--line);border-radius:11px;background:#f7f3eb;transition:opacity .15s,border-color .15s,background .15s}
.algorithm-group legend{padding:0 6px;color:var(--muted);font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.algorithm-group .group-list{display:grid;gap:4px}.algorithm-group:not(:has(input:not(:disabled))){opacity:.48}
.algorithm-group:has(input:not(:disabled)){border-color:#8fb4a5;background:#f5faf7}.algorithm-group:has(input:checked){box-shadow:inset 0 0 0 1px #b4d0c4}
#algorithms label,#objectives label{position:relative;display:flex;align-items:center;gap:8px;margin:0;padding:7px 8px;border:1px solid transparent;border-radius:8px;line-height:1.25;cursor:pointer;transition:background .12s,border-color .12s,box-shadow .12s,transform .12s}
#algorithms label:hover,#objectives label:hover{background:#eaf3ee;border-color:#b5cdc2}
#algorithms label:active,#objectives label:active{transform:translateY(1px);box-shadow:inset 0 2px 5px rgba(23,37,31,.2)}
#algorithms label:has(input:checked),#objectives label:has(input:checked){background:var(--green);border-color:var(--green);color:#fff;box-shadow:inset 0 3px 7px rgba(0,0,0,.28)}
#algorithms label:has(input:disabled){cursor:not-allowed;opacity:.48;background:transparent;border-color:transparent;box-shadow:none;transform:none}
#algorithms input,#objectives input{flex:0 0 auto;margin:0;accent-color:var(--gold)}
#objectives{display:grid;gap:3px;border:1px solid var(--line);border-radius:10px;background:#faf7f0;padding:7px}
.controls .two>div{min-width:0}.controls .two label{white-space:normal;line-height:1.2;min-height:1.8em}
.controls details .two{margin-top:8px}.controls details input{min-width:0}
@media(max-width:850px){.lab{grid-template-columns:1fr!important}.controls{position:static;max-height:none;overflow:visible;padding-right:18px}#algorithms{max-height:none}.tabs button{padding:8px 12px}canvas{min-height:300px;object-fit:fill}}
