#gpu-processing-panel{min-width:0}#gpu-months{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:18px 0}.gpu-year{display:flex;gap:4px;align-items:center;flex-wrap:wrap}.gpu-year>span{margin-right:8px}.gpu-year button{padding:5px 7px;min-width:28px;border-bottom:3px solid var(--line)}.gpu-year button.has-data{border-bottom-color:var(--accent)}.gpu-year button.active{background:var(--accent);color:var(--page)}.gpu-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:start}.gpu-lane{min-width:0}.gpu-lane>h3{font-size:16px;padding-bottom:12px;border-bottom:2px solid var(--line)}.gpu-tile{padding:14px;margin-bottom:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);overflow-wrap:anywhere}.gpu-tile-top{display:grid;grid-template-columns:minmax(0,1fr) 68px;gap:10px}.gpu-tile-top>div:first-child>span{display:block;margin-top:6px}.gpu-tile p{font-size:13px;margin:9px 0}.gpu-tile details{border-top:1px solid var(--line);padding-top:10px;font-size:13px}.gpu-tile summary{cursor:pointer}.gpu-tile details>span,.gpu-tile details>a{display:block;margin:8px 0}.gpu-tile details>button{margin:6px 6px 0 0}.gpu-ring{--progress:0;width:68px;height:68px;position:relative;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--accent) calc(var(--progress)*1%),var(--soft) 0);isolation:isolate}.gpu-ring:before{content:'';position:absolute;inset:6px;border-radius:50%;background:var(--surface);z-index:-1}.gpu-ring>span{font-size:16px;font-weight:600}.gpu-ring.indeterminate{background:conic-gradient(var(--accent) 25%,var(--soft) 0)}.gpu-ring[data-state=failed]{background:var(--line)}.gpu-warning{color:var(--danger)}#gpu-result-detail{border-top:3px solid var(--accent);margin-top:24px;padding-top:14px;overflow-wrap:anywhere}#gpu-detail-body>span{display:block}#gpu-detail-body .table-wrap{margin:12px 0}@media(max-width:1000px){.gpu-board{grid-template-columns:minmax(0,1fr)}.gpu-lane>h3{margin-top:24px}}@media(prefers-reduced-motion:no-preference){.gpu-ring.indeterminate{animation:gpu-pulse 1.5s ease-in-out infinite}@keyframes gpu-pulse{50%{opacity:.5}}}
.gpu-ring.indeterminate:after{content:none}

/* Compact stage cards and a single-year month strip. */
#gpu-months{gap:12px;align-items:center}.gpu-year-spinner{display:grid;grid-template-rows:auto auto auto;justify-items:center;flex:none}.gpu-year-spinner button{min-height:25px;padding:0 14px;line-height:1}.gpu-year-spinner>span{font-size:16px;font-variant-numeric:tabular-nums;padding:2px 0}
.gpu-month-bars{display:flex;gap:5px;flex:1;min-width:180px;max-width:440px}.gpu-month-bar{position:relative;flex:1;min-width:0;height:40px;min-height:40px;padding:8px 2px;border:0!important;background:transparent!important}.month-mark{display:block;height:7px;border-radius:2px;background:var(--line)}.gpu-month-bar.has-data .month-mark{background:var(--accent)}.gpu-month-bar.active .month-mark{height:12px;outline:2px solid var(--accent);outline-offset:3px}.month-tip{display:none;position:absolute;bottom:100%;left:50%;transform:translateX(-50%);padding:5px 8px;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:4px;white-space:nowrap;z-index:3}.gpu-month-bar:hover .month-tip,.gpu-month-bar:focus-visible .month-tip{display:block}.gpu-filter-caption{flex-basis:100%;margin:0;font-size:12px;color:var(--muted)}
.gpu-board{gap:12px}.gpu-lane>h3{font-size:14px;padding-bottom:8px}.gpu-tile{padding:10px 12px!important;margin-bottom:8px;border-radius:7px}.gpu-tile-top{display:flex;justify-content:space-between;gap:8px;align-items:baseline}.gpu-tile-top>span{font-size:12px;color:var(--muted)}.gpu-tile p{font-size:12px;margin:5px 0}.gpu-tile .gpu-stage-label{font-size:13px;font-weight:600}.gpu-card-period{font-variant-numeric:tabular-nums}.gpu-stage-progress{display:flex;align-items:center;gap:8px;font-size:12px}.gpu-stage-progress progress{width:100%;height:7px;min-width:0;accent-color:var(--accent)}.gpu-stage-progress>span{white-space:nowrap}.gpu-tile details{padding-top:6px;margin-top:6px;font-size:12px}.gpu-help{font-size:12px;color:var(--muted);margin:8px 0}#gpu-board-status{font-size:12px;color:var(--muted)}@media(max-width:600px){#gpu-months{gap:8px}.gpu-month-bars{flex-basis:100%;max-width:none}.gpu-tile-top{flex-wrap:wrap}}@media(pointer:coarse){.gpu-year-spinner button{min-height:44px}}

/* Each result lane owns its filter; months are vertical ticks. */
.gpu-lane-calendar,#gpu-months{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0 12px;min-width:0}
.gpu-lane-calendar>.gpu-month-bars{flex:1 1 100%;min-width:0;max-width:none;gap:3px}
.gpu-lane-calendar .gpu-month-bar{display:flex;justify-content:center;align-items:center;padding:4px 2px;height:38px;min-height:38px}
.gpu-lane-calendar .month-mark{width:6px;height:23px;flex:none}
.gpu-lane-calendar .gpu-month-bar.active .month-mark{width:8px;height:29px}
.gpu-lane-calendar .gpu-month-bar:first-child .month-tip{left:0;transform:none}
.gpu-lane-calendar .gpu-month-bar:last-child .month-tip{left:auto;right:0;transform:none}
.gpu-lane-calendar>.gpu-filter-caption{margin:0;min-height:18px}

.gpu-card-body{display:grid;grid-template-columns:minmax(0,1fr) 84px;gap:10px;align-items:start;margin:8px 0}.gpu-card-main{min-width:0}.gpu-stage-progress{display:flex;flex-direction:column;gap:5px;text-align:center;min-width:0}.gpu-vertical-meter{position:relative;width:52px;height:86px;border-radius:7px;background:var(--soft);overflow:hidden;display:grid;place-items:center;isolation:isolate}.gpu-vertical-fill{position:absolute;inset:auto 0 0;height:calc(var(--fill)*1%);background:var(--accent);opacity:.55;z-index:-1}.gpu-vertical-meter>span:last-child{padding:3px 5px;border-radius:5px;background:var(--surface);color:var(--ink);font-size:12px;font-weight:600;font-variant-numeric:tabular-nums}.gpu-volume{display:grid;gap:1px;width:100%;font-size:11px;font-variant-numeric:tabular-nums}.gpu-volume small{font-size:10px;color:var(--muted)}.gpu-stage-progress>small{font-size:10px;white-space:normal}

/* Equal filter rows; each 8px tick is separated by an 8px gap. */
.gpu-lane-calendar,#gpu-months{display:grid;grid-template-columns:auto 1fr;grid-template-rows:72px 38px 18px;gap:6px 10px;margin:8px 0 12px;align-items:center}
.gpu-lane-calendar>button{grid-row:1;grid-column:2;justify-self:start}.gpu-year-spinner{grid-column:1;grid-row:1}
.gpu-lane-calendar>.gpu-month-bars{grid-column:1/-1;grid-row:2;display:flex;flex:none;gap:8px;width:max-content;max-width:100%;min-width:0}
.gpu-lane-calendar .gpu-month-bar{flex:0 0 8px;width:8px;padding:0;height:38px;min-height:38px;border-radius:2px}
.gpu-lane-calendar .month-mark,.gpu-lane-calendar .gpu-month-bar.active .month-mark{width:8px;height:24px}.gpu-lane-calendar .gpu-month-bar.active .month-mark{height:30px;outline-offset:1px}
.gpu-lane-calendar>.gpu-filter-caption{grid-column:1/-1;grid-row:3}
.gpu-detail-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.gpu-detail-actions button{font-size:12px;padding:6px 8px}.gpu-viewed{color:var(--success,var(--accent));font-size:12px}.gpu-completed{line-height:1.4}.gpu-card-period{display:block;font-size:12px;font-variant-numeric:tabular-nums}.gpu-tile ol{padding-left:22px}.gpu-tile li{margin:5px 0}
.gpu-tile-top>.gpu-viewed{color:var(--success,var(--accent))}

/* Percentage and full size belong inside the meter; transferred bytes sit below. */
.gpu-vertical-meter{width:76px;height:100px;display:flex;flex-direction:column;justify-content:flex-start;align-items:center;gap:4px;padding:9px 3px}
.gpu-vertical-meter>.gpu-percentage{padding:0;border-radius:0;background:transparent;color:var(--ink);font-size:14px;font-weight:600;line-height:20px;font-variant-numeric:tabular-nums}
.gpu-vertical-meter>.gpu-total-volume{font-size:11px;line-height:16px;color:var(--ink);background:transparent;white-space:nowrap}
.gpu-received-volume{line-height:16px}.gpu-vertical-fill{pointer-events:none;opacity:.3}
