:root{color-scheme:dark;font-family:IBM Plex Sans,system-ui,sans-serif;background:#0d1117;color:#e6edf3}body{margin:0}.wrap{max-width:1100px;margin:0 auto;padding:1.5rem 1.25rem 3rem}h1{margin:0 0 .35rem;font-size:1.6rem}.muted{color:#8b949e;margin:.25rem 0 .75rem}.small{font-size:.85rem}.formula{display:block;font-size:.75rem;color:#7ee787;background:#161b22;padding:.4rem .6rem;border-radius:6px;margin-top:.5rem}.head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:1.25rem}.controls{display:flex;flex-wrap:wrap;gap:.85rem 1.25rem;align-items:flex-end;margin:0 0 1rem;padding:.85rem 1rem;background:#161b22;border:1px solid #30363d;border-radius:10px}.control{display:flex;flex-direction:column;gap:.3rem;font-size:.85rem;min-width:140px}.control-label{color:#8b949e;font-weight:600}.control select{font:inherit;padding:.45rem .6rem;border-radius:8px;border:1px solid #30363d;background:#0d1117;color:inherit}.control-hint{flex:1 1 220px;margin:0;align-self:center}.expand-btn{display:inline-flex;align-items:center;gap:.35rem;padding:0;border:none;background:transparent;color:inherit;font:inherit;font-weight:600;cursor:pointer;text-align:left}.expand-btn:hover{color:#58a6ff}.expand-caret{display:inline-block;width:.9em;color:#8b949e;font-size:.85em}tr.row-open{background:#58a6ff0f}.detail-row td{text-align:left;background:#0d1117;border-bottom:1px solid #30363d}.detail-panel{padding:.35rem .25rem .55rem}.growers-table{width:auto;min-width:280px;margin-top:.5rem;font-size:.82rem;border:1px solid #21262d;border-radius:8px;overflow:hidden}.growers-table th,.growers-table td{text-align:left;padding:.35rem .55rem}.growers-table th:nth-child(2),.growers-table td:nth-child(2),.growers-table th:nth-child(3),.growers-table td:nth-child(3){text-align:right}.growers-empty{margin:.45rem 0 0}.card{display:flex;flex-direction:column;gap:.75rem;max-width:360px;background:#161b22;border:1px solid #30363d;border-radius:10px;padding:1.25rem}label{display:flex;flex-direction:column;gap:.35rem;font-size:.9rem}input,button{font:inherit;padding:.55rem .75rem;border-radius:8px;border:1px solid #30363d;background:#0d1117;color:inherit}button{cursor:pointer;background:#238636;border-color:#2ea043;font-weight:600}button:disabled{opacity:.5;cursor:wait}.err{color:#ff7b72}.table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid #30363d;border-radius:10px}table{width:100%;border-collapse:collapse;font-size:.88rem}th,td{padding:.55rem .65rem;text-align:right;border-bottom:1px solid #21262d}th:first-child,td:first-child,th:nth-child(2),td:nth-child(2){text-align:left}th{background:#161b22;color:#8b949e;font-weight:600}.th-label{display:inline-flex;align-items:center;gap:.28rem;white-space:nowrap}.dir{font-size:.85em;font-weight:700;line-height:1}.dir-high{color:#3fb950}.dir-low{color:#58a6ff}.dir-none{color:#8b949e}.legend{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;margin:0 0 .75rem}.legend .sep{opacity:.5;margin:0 .15rem}tr.dim{opacity:.55}.score{font-weight:700;color:#58a6ff}th.sortable{padding:0}th.sortable.sort-left .sort-btn{text-align:left}th.sortable.sort-right .sort-btn{text-align:right}th.sortable.sort-active-col{background:#58a6ff14}.sort-btn{width:100%;padding:.55rem .65rem;border:none;background:transparent;color:inherit;font:inherit;font-weight:600;cursor:pointer;text-align:right}.sort-btn:hover{background:#ffffff0a}.sort-active{margin-left:.2rem;color:#58a6ff;font-size:.75em}.method{margin-top:2rem;padding-top:1.25rem;border-top:1px solid #30363d}.method h2{margin:0 0 .35rem;font-size:1.15rem;font-weight:600}.method-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.85rem;margin-top:1rem}.method-card{background:#161b22;border:1px solid #30363d;border-radius:10px;padding:.9rem 1rem}.method-card h3{margin:0 0 .45rem;font-size:.95rem;font-weight:600;color:#e6edf3}.method-card p{margin:.55rem 0 0;font-size:.82rem;line-height:1.45;color:#8b949e}.method-card .formula{margin-top:0;font-size:.72rem;line-height:1.4}.method-card code:not(.formula){font-size:.78em;color:#79c0ff}.progress-snackbar{position:fixed;left:50%;bottom:1.25rem;transform:translate(-50%);width:min(520px,calc(100vw - 2rem));padding:.85rem 1rem .95rem;background:#161b22;border:1px solid #30363d;border-radius:12px;box-shadow:0 12px 40px #00000073;z-index:100}.progress-snackbar-head{display:flex;justify-content:space-between;align-items:baseline;gap:.75rem;margin-bottom:.55rem}.progress-label{font-size:.9rem;font-weight:600}.progress-pct{font-variant-numeric:tabular-nums;font-weight:700;color:#58a6ff}.progress-track{height:6px;border-radius:999px;background:#21262d;overflow:hidden}.progress-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,#238636,#58a6ff);transition:width .35s ease}.progress-detail{margin:.45rem 0 0}.diag-strip{display:flex;flex-wrap:wrap;gap:.65rem 1.25rem;align-items:baseline;margin:0 0 1rem;padding:.7rem 1rem;background:#161b22;border:1px solid #30363d;border-radius:10px}.diag-item{display:flex;flex-direction:column;gap:.15rem;min-width:7rem}.diag-label{font-size:.72rem;font-weight:600;color:#8b949e;text-transform:uppercase;letter-spacing:.03em}.diag-value{font-variant-numeric:tabular-nums;font-weight:600;font-size:.95rem}.diag-warn{color:#d29922}.diag-note{flex:1 1 100%;margin:.15rem 0 0}.cov-pct{font-size:.78em;margin-left:.15rem}.pe-warn-badge,.pe-def-badge{display:inline-block;margin-left:.35rem;padding:.05rem .35rem;border-radius:4px;font-size:.68rem;font-weight:700;vertical-align:middle;cursor:help}.pe-warn-badge{color:#0d1117;background:#d29922}.pe-def-badge{color:#8b949e;background:#21262d;border:1px solid #30363d}.pe-eff{margin-left:.3rem;font-size:.72rem;color:#8b949e;cursor:help}.pe-eff-capped{color:#d29922;font-weight:600}.table-wrap table th:first-child,.table-wrap table td:first-child{position:sticky;left:0;z-index:2;background:#0d1117;box-shadow:1px 0 #30363d}.table-wrap table thead th:first-child{z-index:3;background:#161b22}@media(max-width:767px){.head{flex-direction:column}.controls{flex-direction:column;align-items:stretch}.control{min-width:0;width:100%}.control select,.controls button{min-height:44px;width:100%;box-sizing:border-box}.wrap{padding:1rem .75rem 2rem}table{font-size:.8rem}th,td{padding:.35rem .4rem}}
