.workshop{--ws-gutter:var(--space-6);--ws-sec-head-pt:var(--space-4);--ws-sec-head-pb:11px;--ws-head-h:0px}.workshop.ws-comfortable{--pad:18px;--row:38px}.workshop .ws-mono,.workshop .ws-num{font-variant-numeric:tabular-nums}.workshop .ws-label{font-size:var(--fs-xs);letter-spacing:var(--tracking-label);color:hsl(var(--ink-3));text-transform:uppercase;font-weight:500}.workshop .ws-header{background:hsl(var(--panel));border-bottom:1px solid hsl(var(--border))}.workshop .ws-brew-btn{align-items:center;gap:var(--space-1-5);padding:var(--space-1-5) var(--space-3-5);border-radius:var(--radius-sm);border:1px solid hsl(var(--accent));background:hsl(var(--accent));color:hsl(var(--accent-fg));font-size:var(--fs-body);cursor:pointer;font-weight:600;transition:filter .12s;display:inline-flex;box-shadow:0 1px #0000000f}.workshop .ws-brew-btn:hover:not(:disabled){filter:brightness(1.06)}.workshop .ws-brew-btn:disabled{opacity:.55;cursor:default}.workshop .ws-header-mid{padding:var(--space-3-5) var(--space-5);align-items:center;gap:var(--space-3-5);display:flex}.workshop .ws-swatch{border-radius:var(--radius-sm);flex:none;width:30px;height:30px;box-shadow:inset 0 0 0 1px #00000014,inset 0 -6px 8px #00000026}.workshop .ws-name-block{flex:1;min-width:0}.workshop .ws-name{font-size:var(--fs-3);letter-spacing:var(--tracking-tight);color:hsl(var(--ink));border:1px solid hsl(var(--border-2));border-radius:var(--radius-xs);padding:1px var(--space-1);background:0 0;outline:none;width:100%;margin:-1px -4px;font-weight:600;line-height:1.2}.workshop .ws-name:hover{border-color:hsl(var(--accent));background:hsl(var(--panel-2))}.workshop .ws-name:focus{border-color:hsl(var(--accent));background:hsl(var(--panel));box-shadow:0 0 0 2px hsl(var(--accent-bg))}.workshop .ws-name.is-error{border-color:hsl(var(--danger))}.workshop.ws-comfortable .ws-edit-text{border-color:hsl(var(--border-2))}.workshop.ws-comfortable .ws-edit-text:hover:not(:disabled){border-color:hsl(var(--accent))}.workshop .ws-sub{font-size:var(--fs-sm);color:hsl(var(--ink-2));margin-top:var(--space-0-5);align-items:center;gap:var(--space-2);display:flex}.workshop .ws-style-tag{align-items:center;gap:var(--space-1);padding:1px 5px 1px var(--space-1-5);border-radius:var(--radius-xs);color:hsl(var(--accent));cursor:pointer;border:1px solid #0000;font-weight:500;display:inline-flex;position:relative}.workshop .ws-style-tag:hover{border-color:hsl(var(--border-2));background:hsl(var(--panel-2))}.workshop .ws-style-tag .ws-car,.workshop .ws-dot-sep{color:hsl(var(--ink-3))}.workshop .ws-mid-actions{align-items:center;gap:var(--space-2);flex:none;display:inline-flex}.workshop .ws-stat-strip{border-top:1px solid hsl(var(--border));grid-template-columns:repeat(7,1fr);display:grid}.workshop .ws-stat{padding:var(--space-3) var(--space-4);border-right:1px solid hsl(var(--border));border-bottom:1px solid hsl(var(--border));gap:var(--space-1);background:hsl(var(--panel));flex-direction:column;min-width:0;display:flex}.workshop .ws-stat:last-child{border-right:0}.workshop .ws-stat .lbl{font-size:var(--fs-xs);color:hsl(var(--ink-3));text-transform:uppercase;letter-spacing:var(--tracking-label);font-weight:500}.workshop .ws-stat .row{align-items:baseline;gap:var(--space-1-5);display:flex}.workshop .ws-stat .val{font-variant-numeric:tabular-nums;font-size:var(--text-16);color:hsl(var(--ink));letter-spacing:var(--tracking-tight);font-weight:500}.workshop .ws-stat .unit{font-size:var(--fs-xs);color:hsl(var(--ink-3))}.workshop .ws-stat .delta{font-size:var(--fs-xs);color:hsl(var(--ink-3));margin-top:var(--space-0-5);align-items:center;gap:var(--space-1);min-height:1em;line-height:1;display:inline-flex}.workshop .ws-stat .delta.up{color:hsl(var(--positive))}.workshop .ws-stat .delta.over,.workshop .ws-stat .delta.under{color:hsl(var(--accent))}.workshop .ws-stat .track{background:hsl(var(--panel-2));border-radius:var(--radius-pill);height:3px;margin-top:var(--space-1);overflow:hidden}.workshop .ws-stat .track .fill{background:hsl(var(--accent));border-radius:inherit;height:100%}.workshop .ws-stat .track.range-track{background:hsl(var(--panel-2));position:relative;overflow:visible}.workshop .ws-stat .track.range-track .band{background:hsl(var(--accent));border-radius:inherit;position:absolute;top:0;bottom:0}.workshop .ws-stat .track.range-track .v-needle{background:hsl(var(--ink));border-radius:1px;width:2px;height:7px;margin-left:-1px;position:absolute;top:-2px}.workshop .ws-stat.balance{padding:var(--space-3) var(--space-4)}.workshop .ws-stat.balance .track{height:4px;margin-top:var(--space-1-5);background:linear-gradient(90deg,#d97706 0%,#eab308 35%,#84cc16 70%,#15803d 100%);position:relative;overflow:visible}.workshop .ws-stat.balance .track .needle{background:hsl(var(--ink));border-radius:1px;width:2px;height:8px;position:absolute;top:-2px}.workshop .ws-body{background:hsl(var(--panel))}.workshop .ws-sections{background:hsl(var(--panel));grid-template-columns:1fr;align-items:stretch;display:grid}@media (min-width:1061px){.workshop .ws-sections{grid-template-columns:1fr 1fr}}.workshop .ws-sec{border-top:1px solid hsl(var(--border));min-width:0;scroll-margin-top:calc(var(--ws-head-h) + var(--space-2));flex-direction:column;display:flex;position:relative}.workshop .ws-sec--full{grid-column:1/-1}.workshop .ws-sec:first-child{border-top:0}@media (min-width:1061px){.workshop .ws-sec--right{border-left:1px solid hsl(var(--border))}}.workshop .ws-sec-head{align-items:center;gap:var(--space-2-5);padding:var(--ws-sec-head-pt) var(--ws-gutter) var(--ws-sec-head-pb);top:calc(var(--ws-head-h) - 1px);z-index:5;background:hsl(var(--panel-2));border-bottom:1px solid hsl(var(--border));display:flex;position:sticky}.workshop .ws-sec-ix{font:500 var(--fs-xs)/1 var(--mono);font-variant-numeric:tabular-nums;letter-spacing:.02em;color:hsl(var(--ink-3));min-width:16px}.workshop .ws-sec-title{font-size:var(--fs-4);letter-spacing:var(--tracking-tight);color:hsl(var(--ink));margin:0;font-weight:600}.workshop .ws-sec-meta{font-size:var(--fs-sm);color:hsl(var(--ink-3));align-items:center;gap:var(--space-2);margin-left:auto;display:inline-flex}.workshop .ws-sec-body:not(.pad){flex-direction:column;flex:auto;min-height:0;display:flex}.workshop .ws-ilist:has(.ws-ilist-foot){flex-direction:column;flex:auto;display:flex}.workshop .ws-sec-body.pad{padding:var(--space-0-5) var(--ws-gutter) var(--space-5)}.workshop .ws-sec .ws-ilist-head,.workshop .ws-sec .ws-ilist-row,.workshop .ws-sec .ws-ilist-foot,.workshop .ws-sec .ws-profile-row{padding-left:var(--ws-gutter);padding-right:var(--ws-gutter)}.workshop .ws-sec .ws-step{padding-left:calc(var(--ws-gutter) - var(--space-1));padding-right:var(--ws-gutter)}.workshop .ws-sec .ws-ilist-head{border-top:0}.workshop .ws-sec .ws-water-left{padding-left:var(--ws-gutter)}.workshop .ws-fields{border-top:1px solid hsl(var(--border));grid-template-columns:repeat(5,1fr);display:grid}.workshop .ws-field{padding:var(--space-2-5) var(--space-4) 11px;border-right:1px solid hsl(var(--border));border-bottom:1px solid hsl(var(--border))}.workshop .ws-fields .ws-field:first-child{padding-left:var(--ws-gutter)}.workshop .ws-fields .ws-field:last-child{padding-right:var(--ws-gutter)}.workshop .ws-field:last-child{border-right:0}.workshop .ws-field .lbl{font-size:var(--fs-xs);color:hsl(var(--ink-3));text-transform:uppercase;letter-spacing:var(--tracking-label);align-items:center;gap:5px;font-weight:500;display:flex}.workshop .ws-field .val{font-size:var(--text-16);color:hsl(var(--ink));margin-top:var(--space-1);font-variant-numeric:tabular-nums;letter-spacing:var(--tracking-tight);font-weight:600}.workshop .ws-field .val .unit{font-size:var(--fs-xs);color:hsl(var(--ink-3));margin-left:2px;font-weight:400}.workshop .ws-use{align-items:center;gap:var(--space-1);padding:var(--space-0-5) 7px;border-radius:var(--radius-xs);font-size:var(--fs-xs);font-weight:500;display:inline-flex}.workshop .ws-use.mash,.workshop .ws-use.steep{background:hsl(var(--mash-bg));color:hsl(var(--mash))}.workshop .ws-use.boil{background:hsl(var(--boil-bg));color:hsl(var(--boil))}.workshop .ws-use.whirlpool,.workshop .ws-use.firstwort{background:hsl(var(--whirl-bg));color:hsl(var(--whirl))}.workshop .ws-use.dryhop,.workshop .ws-use.dry_hop,.workshop .ws-use.primary,.workshop .ws-use.secondary,.workshop .ws-use.bottle,.workshop .ws-use.bottling{background:hsl(var(--dh-bg));color:hsl(var(--dh))}.workshop .ws-use.lateaddition{background:hsl(var(--boil-bg));color:hsl(var(--boil))}.workshop .ws-use-sel{align-items:center;gap:var(--space-1);padding:var(--space-0-5) var(--space-1-5);border-radius:var(--radius-xs);font-size:var(--fs-xs);cursor:pointer;border:1px solid #0000;font-weight:500;display:inline-flex;position:relative}.workshop .ws-use-sel:hover{filter:brightness(.96)}.workshop .ws-use-sel.mash,.workshop .ws-use-sel.steep{background:hsl(var(--mash-bg));color:hsl(var(--mash))}.workshop .ws-use-sel.boil{background:hsl(var(--boil-bg));color:hsl(var(--boil))}.workshop .ws-use-sel.whirlpool,.workshop .ws-use-sel.firstwort{background:hsl(var(--whirl-bg));color:hsl(var(--whirl))}.workshop .ws-use-sel.dryhop,.workshop .ws-use-sel.dry_hop,.workshop .ws-use-sel.primary,.workshop .ws-use-sel.secondary,.workshop .ws-use-sel.bottle,.workshop .ws-use-sel.bottling{background:hsl(var(--dh-bg));color:hsl(var(--dh))}.workshop .ws-use-sel.lateaddition{background:hsl(var(--boil-bg));color:hsl(var(--boil))}.workshop .ws-use-sel select{opacity:0;cursor:pointer;font:inherit;appearance:none;background:0 0;border:0;padding:0;position:absolute;inset:0}.workshop .ws-itable{border-collapse:separate;border-spacing:0;width:100%;font-size:var(--fs-body)}.workshop .ws-itable thead th{font-size:var(--fs-xs);color:hsl(var(--ink-3));text-transform:uppercase;letter-spacing:var(--tracking-label);text-align:left;padding:var(--space-2) var(--space-3);border-bottom:1px solid hsl(var(--border));background:hsl(var(--panel));-webkit-user-select:none;user-select:none;white-space:nowrap;font-weight:500}.workshop .ws-itable thead th.r{text-align:right}.workshop .ws-itable thead th.handle-col{width:18px;padding-left:var(--space-3);padding-right:0}.workshop .ws-itable tbody td{padding:0 var(--space-3);height:var(--row);border-bottom:1px solid hsl(var(--border));vertical-align:middle;background:hsl(var(--panel));white-space:nowrap}.workshop .ws-itable tbody tr:last-child td{border-bottom:0}.workshop .ws-itable tbody tr:hover td{background:hsl(var(--panel-2))}.workshop .ws-itable tbody tr.dragging td{opacity:.4}.workshop .ws-itable td.r{text-align:right;font-variant-numeric:tabular-nums}.workshop .ws-itable td.name{color:hsl(var(--ink));white-space:normal;font-weight:500}.workshop .ws-itable td.name .vendor{color:hsl(var(--ink-3));font-weight:400;font-size:var(--fs-sm);margin-left:6px}.workshop .ws-itable td.handle-col{padding-left:var(--space-1);width:18px;padding-right:0}.workshop .ws-itable td.bar-col{padding-right:var(--space-3);width:1%;padding-left:0}.workshop .ws-itable th.compact,.workshop .ws-itable td.compact{white-space:nowrap;width:1%;padding-left:var(--space-1-5);padding-right:var(--space-1-5)}.workshop .ws-itable tfoot td{padding:9px var(--space-3);font-size:var(--fs-sm);color:hsl(var(--ink-2));background:hsl(var(--panel-2));border-top:1px solid hsl(var(--border));font-weight:500}.workshop .ws-itable tfoot td.r{text-align:right;font-variant-numeric:tabular-nums}.workshop .ws-itable td input[type=number],.workshop .ws-itable td input[type=text]{font:inherit;font-variant-numeric:tabular-nums;padding:var(--space-0-5) var(--space-1-5);border:1px solid hsl(var(--border-2));border-radius:var(--radius-xs);color:hsl(var(--ink));height:auto;min-height:0;box-shadow:none;text-align:inherit;background:0 0;outline:none;width:5ch;min-width:5ch;max-width:100%}.workshop .ws-itable td.r input[type=number],.workshop .ws-itable td.r input[type=text]{text-align:right}.workshop .ws-itable td input:hover{background:hsl(var(--panel));border-color:hsl(var(--accent))}.workshop .ws-itable td input:focus,.workshop .ws-itable td input:focus-visible{background:hsl(var(--panel));border-color:hsl(var(--accent));box-shadow:0 0 0 2px hsl(var(--accent-bg))}.workshop .ws-itable td .ws-cell-wrap>div{margin:0;display:inline-block}.workshop .ws-itable td .ws-cell-wrap input{width:6ch}.workshop .ws-grip{cursor:grab;width:14px;height:22px;color:hsl(var(--ink-3));opacity:.25;border-radius:var(--radius-xs);justify-content:center;align-items:center;transition:opacity .12s,color .12s;display:inline-flex}.workshop .ws-tbl-row:hover .ws-grip{opacity:.7;color:hsl(var(--ink-2))}.workshop .ws-grip:hover{opacity:1!important;color:hsl(var(--ink))!important}.workshop .ws-grip:active{cursor:grabbing}.workshop .ws-cell{font-variant-numeric:tabular-nums;align-items:baseline;gap:3px;display:inline-flex}.workshop .ws-cell.r{justify-content:flex-end;width:100%}.workshop .ws-cell input{font:inherit;font-variant-numeric:tabular-nums;min-width:1ch;padding:var(--space-0-5) var(--space-1-5);border-radius:var(--radius-xs);border:1px solid hsl(var(--border-2));color:hsl(var(--ink));height:auto;box-shadow:none;text-align:inherit;background:0 0;outline:none;width:100%}.workshop .ws-cell input:hover{background:hsl(var(--panel));border-color:hsl(var(--accent))}.workshop .ws-cell input:focus{background:hsl(var(--panel));border-color:hsl(var(--accent));box-shadow:0 0 0 2px hsl(var(--accent-bg))}.workshop .ws-cell .u{color:hsl(var(--ink-3));font-size:var(--fs-xs);margin-left:2px}.workshop .ws-tbl-row .ws-cell-wrap>div{margin:0}.workshop .ws-tbl-row .ws-cell-wrap input{font-variant-numeric:tabular-nums;padding:var(--space-0-5) var(--space-1-5);border-radius:var(--radius-xs);border:1px solid hsl(var(--border-2));color:hsl(var(--ink));height:auto;min-height:0;box-shadow:none;font-size:var(--fs-body);text-align:right;background:0 0;outline:none}.workshop .ws-tbl-row .ws-cell-wrap input:hover{background:hsl(var(--panel));border-color:hsl(var(--accent))}.workshop .ws-tbl-row .ws-cell-wrap input:focus,.workshop .ws-tbl-row .ws-cell-wrap input:focus-visible{background:hsl(var(--panel));border-color:hsl(var(--accent));box-shadow:0 0 0 2px hsl(var(--accent-bg))}.workshop .ws-bar{background:hsl(var(--panel-2));border-radius:var(--radius-pill);flex:1;height:4px;position:relative}.workshop .ws-bar .fill{background:hsl(var(--accent));border-radius:inherit;position:absolute;top:0;bottom:0;left:0}.workshop .ws-bar.h .fill{background:hsl(var(--dh))}.workshop .ws-sort{align-items:center;gap:var(--space-1);font:inherit;text-transform:inherit;letter-spacing:inherit;color:inherit;cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:0;padding:0;display:inline-flex}.workshop .ws-sort:hover{color:hsl(var(--ink))}.workshop .ws-sort .chev{opacity:0;color:hsl(var(--ink-3));transition:opacity .12s;display:inline-flex}.workshop .ws-sort:hover .chev{opacity:.7}.workshop .ws-sort.active .chev{opacity:1;color:hsl(var(--accent))}.workshop .ws-add{justify-content:flex-end;align-items:center;gap:var(--space-2);box-sizing:border-box;width:100%;min-height:var(--row);padding:var(--space-2) var(--ws-gutter);color:hsl(var(--ink-2));border:0;border-top:1px solid hsl(var(--border));font-size:var(--fs-sm);text-align:right;cursor:pointer;background:0 0;border-radius:0;margin:0;font-weight:500;transition:background .12s,color .12s;display:flex}.workshop .ws-ilist>.ws-add,.workshop .ws-sec-body>.ws-add:first-child{border-top:0}.workshop .ws-add .ws-add-label{letter-spacing:-.005em;transition:color .12s}.workshop .ws-add .ws-add-plus{border:1px solid hsl(var(--accent));border-radius:var(--radius-sm);width:20px;height:20px;font-size:var(--fs-body);color:hsl(var(--accent));background:0 0;flex-shrink:0;justify-content:center;align-items:center;line-height:1;transition:border-color .12s,color .12s,background .12s;display:inline-flex}.workshop .ws-add:hover,.workshop .ws-add:hover .ws-add-label{color:hsl(var(--accent))}.workshop .ws-add:hover .ws-add-plus{border-color:hsl(var(--accent));color:hsl(var(--accent));background:hsl(var(--accent-bg))}.workshop .ws-profile-row{align-items:center;gap:var(--space-2-5);padding:var(--space-2-5) var(--space-4);border-bottom:1px solid hsl(var(--border));background:hsl(var(--panel-2));font-size:var(--fs-sm);display:flex}.workshop .ws-profile-row .lbl{color:hsl(var(--ink-3));font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:var(--tracking-label);font-weight:500}.workshop .ws-profile-row .sel-wrap{padding:5px var(--space-2-5);border:1px solid hsl(var(--border));border-radius:var(--radius-sm);background:hsl(var(--panel));color:hsl(var(--ink));cursor:pointer;font-size:var(--fs-body);flex:1;justify-content:space-between;align-items:center;min-width:0;font-weight:500;display:flex;position:relative}.workshop .ws-profile-row .sel-wrap:hover{background:hsl(var(--panel-2))}.workshop .ws-profile-row button.sel-wrap{font:inherit;font-size:var(--fs-body);text-align:left;font-weight:500}.workshop .ws-profile-row .save-btn{border:1px solid hsl(var(--border));color:hsl(var(--ink-2));padding:5px var(--space-2-5);border-radius:var(--radius-sm);font-size:var(--fs-sm);cursor:pointer;align-items:center;gap:var(--space-1-5);white-space:nowrap;background:0 0;display:inline-flex}.workshop .ws-profile-row .save-btn:hover{background:hsl(var(--panel-2));color:hsl(var(--ink))}.workshop .ws-profile-row .save-btn:disabled{opacity:.6;cursor:not-allowed}.workshop .ws-profile-row .ws-grain-temp{align-items:baseline;gap:var(--space-1-5);white-space:nowrap;padding-left:var(--space-2-5);border-left:1px solid hsl(var(--border));flex-shrink:0;display:inline-flex}.workshop .ws-profile-row .ws-grain-temp .gt-lbl{font-size:var(--fs-xs);color:hsl(var(--ink-3));text-transform:uppercase;letter-spacing:var(--tracking-label);font-weight:500}.workshop .ws-profile-row .ws-grain-temp input{text-align:right;border:1px solid hsl(var(--border-2));border-radius:var(--radius-xs);width:3.2em;padding:var(--space-0-5) var(--space-1);font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:var(--fs-body);color:hsl(var(--ink));background:0 0;outline:none;font-weight:500}.workshop .ws-profile-row .ws-grain-temp input:hover{background:hsl(var(--panel));border-color:hsl(var(--accent))}.workshop .ws-profile-row .ws-grain-temp input:focus,.workshop .ws-profile-row .ws-grain-temp input:focus-visible{background:hsl(var(--panel));border-color:hsl(var(--accent));box-shadow:0 0 0 2px hsl(var(--accent-bg))}.workshop .ws-profile-row .ws-grain-temp .u{font-family:var(--mono);font-size:var(--fs-xs);color:hsl(var(--ink-3))}.workshop .ws-step{align-items:center;gap:var(--space-2-5);padding:11px var(--space-3) 11px var(--space-1-5);border-bottom:1px solid hsl(var(--border));grid-template-columns:18px 28px 1fr auto auto;display:grid}.workshop .ws-step:last-child{border-bottom:0}.workshop .ws-step .ix{border-radius:var(--radius-sm);background:hsl(var(--panel-2));width:22px;height:22px;color:hsl(var(--ink-2));font-variant-numeric:tabular-nums;font-size:var(--fs-xs);justify-content:center;align-items:center;font-weight:500;display:inline-flex}.workshop .ws-step .name{font-weight:500}.workshop .ws-step .name .sub{color:hsl(var(--ink-3));font-weight:400;font-size:var(--fs-sm);margin-left:6px}.workshop .ws-step .temp,.workshop .ws-step .time{font-variant-numeric:tabular-nums;text-align:right;color:hsl(var(--ink));font-size:var(--fs-body)}.workshop .ws-step .time{color:hsl(var(--ink-2))}.workshop .ws-info-rail{padding:var(--space-3) var(--pad);background:hsl(var(--panel-2));border-top:1px solid hsl(var(--border));font-size:var(--fs-sm);color:hsl(var(--ink-2));flex-wrap:wrap;align-items:center;gap:22px;display:flex}.workshop .ws-info-rail .kv{align-items:center;gap:var(--space-1-5);display:inline-flex}.workshop .ws-info-rail .kv .k{color:hsl(var(--ink-3))}.workshop .ws-info-rail .kv .v{font-variant-numeric:tabular-nums;color:hsl(var(--ink));font-weight:500}.workshop .ws-info-rail .ratio{color:hsl(var(--accent));font-weight:500}.workshop .ws-ions{grid-template-columns:repeat(6,1fr);display:grid}.workshop .ws-ion{padding:var(--space-3) var(--space-3-5);border-right:1px solid hsl(var(--border));border-bottom:1px solid hsl(var(--border))}.workshop .ws-ion:last-child{border-right:0}.workshop .ws-ion .sym{font-size:var(--fs-xs);color:hsl(var(--ink-3));font-weight:500}.workshop .ws-ion .val{font-variant-numeric:tabular-nums;font-size:var(--text-16);margin-top:var(--space-1);color:hsl(var(--ink));font-weight:500}.workshop .ws-ion .val .u{font-size:var(--fs-xs);color:hsl(var(--ink-3));margin-left:2px;font-weight:400}.workshop .ws-ilist{font-size:var(--fs-body)}.workshop .ws-ilist-head{-moz-column-gap:var(--space-3-5);column-gap:var(--space-3-5);padding:9px var(--space-3-5);font-size:var(--fs-xs);color:hsl(var(--ink-3));text-transform:uppercase;letter-spacing:var(--tracking-label);background:hsl(var(--panel-2));border-bottom:1px solid hsl(var(--border));grid-template-columns:18px 124px minmax(0,1fr) minmax(60px,auto);align-items:center;font-weight:500;display:grid}.workshop .ws-ilist-head .ws-fh.r{text-align:right;justify-self:end}.workshop .ws-ilist-head .ws-fh{white-space:nowrap}.workshop .ws-ilist-head .ws-fh-group{align-items:center;gap:var(--space-1-5);white-space:nowrap;display:inline-flex}.workshop .ws-ilist-head .ws-fh-group .grpsep{color:hsl(var(--ink-3));opacity:.5}.workshop .ws-ilist-row{-moz-column-gap:var(--space-3-5);column-gap:var(--space-3-5);padding:var(--space-3) var(--space-3-5);border-bottom:1px solid hsl(var(--border));grid-template-rows:auto auto;grid-template-columns:18px 124px minmax(0,1fr) minmax(60px,auto);align-items:center;row-gap:5px;display:grid;position:relative}.workshop .ws-ilist-row:last-of-type{border-bottom:0}.workshop .ws-ilist-row:hover{background:hsl(var(--panel-2))}.workshop .ws-ilist-row:hover .ws-grip{opacity:.7;color:hsl(var(--ink-2))}.workshop .ws-ilist-row.dragging{opacity:.4}.workshop .ws-ilist-row .handle-col{grid-row:1/3;align-self:center}.workshop .ws-ilist-row .lhs-metric{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.015em;grid-area:1/2/3;align-self:center}.workshop .ws-ilist-row .lhs-metric .ws-cell-wrap{align-items:baseline;gap:1px;display:inline-flex}.workshop .ws-ilist-row .lhs-metric .ws-cell{font-size:var(--fs-4);color:hsl(var(--ink));padding:1px var(--space-1);border:1px solid hsl(var(--border-2));border-radius:var(--radius-xs);font-weight:500;font-family:var(--mono);font-variant-numeric:tabular-nums;background:0 0;outline:none}.workshop .ws-ilist-row .lhs-metric .ws-cell:hover{background:hsl(var(--panel));border-color:hsl(var(--accent))}.workshop .ws-ilist-row .lhs-metric .ws-cell:focus,.workshop .ws-ilist-row .lhs-metric .ws-cell:focus-visible{background:hsl(var(--panel));border-color:hsl(var(--accent));box-shadow:0 0 0 2px hsl(var(--accent-bg))}.workshop .ws-ilist-row .lhs-metric .u{font-size:var(--fs-xs);color:hsl(var(--ink-3));margin-left:1px}.workshop .ws-ilist-row .lhs-metric .space-y-1{width:124px}.workshop .ws-ilist-row .lhs-metric input[type=text]{height:auto;min-height:0;padding:1px var(--space-1);font-size:var(--fs-4);font-weight:500;font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.015em;color:hsl(var(--ink));border:1px solid hsl(var(--border-2));border-radius:var(--radius-xs);box-shadow:none;text-align:right;background:0 0}.workshop .ws-ilist-row .lhs-metric input[type=text]:hover{background:hsl(var(--panel));border-color:hsl(var(--accent))}.workshop .ws-ilist-row .lhs-metric input[type=text]:focus,.workshop .ws-ilist-row .lhs-metric input[type=text]:focus-visible{background:hsl(var(--panel));border-color:hsl(var(--accent));box-shadow:0 0 0 2px hsl(var(--accent-bg));outline:none}.workshop .ws-cell{border:1px solid hsl(var(--border-2));border-radius:var(--radius-xs);font-family:var(--mono);font-variant-numeric:tabular-nums;padding:1px var(--space-1);background:0 0;outline:none}.workshop .ws-cell:hover{background:hsl(var(--panel));border-color:hsl(var(--accent))}.workshop .ws-cell:focus,.workshop .ws-cell:focus-visible{background:hsl(var(--panel));border-color:hsl(var(--accent));box-shadow:0 0 0 2px hsl(var(--accent-bg))}.workshop .ws-ilist-row .info{flex-direction:column;grid-area:1/3/3;align-self:center;gap:5px;min-width:0;display:flex}.workshop .ws-ilist-row .name-line{align-items:baseline;gap:var(--space-2);min-width:0;display:flex}.workshop .ws-ilist-row .name{color:hsl(var(--ink));font-weight:500;font-size:var(--fs-body);letter-spacing:-.005em;white-space:nowrap;text-overflow:ellipsis;flex-shrink:0;max-width:100%;overflow:hidden}.workshop .ws-ilist-row .vendor{color:hsl(var(--ink-3));font-size:var(--fs-sm);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-weight:400;overflow:hidden}.workshop .ws-ilist-row .vendor:before{content:"";opacity:.4;vertical-align:2px;background:currentColor;border-radius:50%;width:3px;height:3px;margin-right:7px;display:inline-block}.workshop .ws-ilist-row .meta-line{align-items:center;gap:var(--space-2);color:hsl(var(--ink-2));row-gap:var(--space-1);flex-wrap:wrap;min-width:0;display:flex}.workshop .ws-ilist-row .meta-line .stat{font-family:var(--mono);font-size:var(--fs-sm);font-variant-numeric:tabular-nums;align-items:baseline;display:inline-flex}.workshop .ws-ilist-row .meta-line .stat-text{font-size:var(--fs-sm);color:hsl(var(--ink-2))}.workshop .ws-ilist-row .meta-line .sep{background:hsl(var(--ink-3));opacity:.35;border-radius:50%;flex-shrink:0;width:3px;height:3px}.workshop .ws-ilist-row .meta-line .whirl-temp .at{color:hsl(var(--whirl));margin-right:1px;font-weight:600}.workshop .ws-ilist-row .right-rail{align-items:flex-end;gap:var(--space-1);flex-direction:column;grid-area:1/4/3;min-width:56px;display:flex}.workshop .ws-ilist-row .actions{align-items:center;gap:var(--space-0-5);height:22px;display:flex}.workshop .ws-ilist-row .icon-btn{border-radius:var(--radius-sm);width:22px;height:22px;color:hsl(var(--ink-3));cursor:pointer;opacity:.55;background:0 0;border:0;justify-content:center;align-items:center;padding:0;transition:opacity .12s,background .12s,color .12s;display:inline-flex}.workshop .ws-ilist-row:hover .icon-btn{opacity:1}.workshop .ws-ilist-row .icon-btn:hover{background:hsl(var(--panel));color:hsl(var(--ink));opacity:1}.workshop .ws-ilist-row .icon-btn.danger:hover{color:hsl(var(--danger))}.workshop .ws-ilist-row .rhs-metric{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:var(--fs-body);color:hsl(var(--ink-2));letter-spacing:-.005em;align-items:baseline;font-weight:500;display:inline-flex}.workshop .ws-ilist-row .rhs-metric .ws-cell{padding:1px var(--space-1);font-size:var(--fs-body)}.workshop .ws-ilist-row .rhs-metric .u{font-size:var(--fs-xs)}.workshop .ws-ilist-row .rhs-metric.muted{color:hsl(var(--ink-3))}.workshop .ws-ilist-foot{-moz-column-gap:var(--space-3-5);column-gap:var(--space-3-5);padding:var(--space-3) var(--space-3-5);font-size:var(--fs-sm);color:hsl(var(--ink-2));background:hsl(var(--panel));border-top:1px solid hsl(var(--border-2));grid-template-columns:18px minmax(124px,auto) minmax(0,1fr) minmax(60px,auto);align-items:baseline;margin-top:auto;font-weight:500;display:grid}.workshop .ws-ilist-foot .lhs-total{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:var(--fs-body);color:hsl(var(--ink));white-space:nowrap;font-weight:500}.workshop .ws-ilist-foot .label{grid-column:3}.workshop .ws-ilist-foot .count{color:hsl(var(--ink-3));margin-left:6px;font-weight:400}.workshop .ws-ilist-foot .rhs-total{font-family:var(--mono);font-variant-numeric:tabular-nums;color:hsl(var(--ink));font-weight:500;font-size:var(--fs-body);justify-self:end}.workshop .ws-use-pop{z-index:100;background:hsl(var(--panel));border:1px solid hsl(var(--border));border-radius:var(--radius-md);min-width:200px;box-shadow:var(--shadow-pop);padding:var(--space-1);font-size:var(--fs-sm);color:hsl(var(--ink));cursor:default;font-weight:400;animation:.12s ease-out ws-use-pop-in;position:fixed}@keyframes ws-use-pop-in{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}.workshop .ws-use-pop-head{font-size:var(--fs-xs);color:hsl(var(--ink-3));text-transform:uppercase;letter-spacing:.07em;padding:var(--space-1-5) var(--space-2) var(--space-1);font-weight:500}.workshop .ws-use-pop-opt{align-items:center;gap:var(--space-2);padding:5px var(--space-2) 5px var(--space-1-5);border-radius:var(--radius-sm);cursor:pointer;color:hsl(var(--ink));font-size:var(--fs-body);-webkit-user-select:none;user-select:none;display:flex}.workshop .ws-use-pop-opt:hover,.workshop .ws-use-pop-opt.active{background:hsl(var(--panel-2))}.workshop .ws-use-pop-opt .swatch{border-radius:var(--radius-xs);flex-shrink:0;justify-content:center;align-items:center;width:16px;height:16px;display:inline-flex}.workshop .ws-use-pop-opt .swatch:after{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.workshop .ws-use-pop-opt .label{flex:1}.workshop .ws-use-pop-opt .check{width:14px;height:14px;color:hsl(var(--accent));opacity:0;justify-content:center;align-items:center;display:inline-flex}.workshop .ws-use-pop-opt.active .check{opacity:1}.workshop .ws-use-pop-opt.mash .swatch,.workshop .ws-use-pop-opt.steep .swatch{background:hsl(var(--mash-bg));color:hsl(var(--mash))}.workshop .ws-use-pop-opt.boil .swatch{background:hsl(var(--boil-bg));color:hsl(var(--boil))}.workshop .ws-use-pop-opt.whirlpool .swatch,.workshop .ws-use-pop-opt.firstwort .swatch,.workshop .ws-use-pop-opt.first_wort .swatch{background:hsl(var(--whirl-bg));color:hsl(var(--whirl))}.workshop .ws-use-pop-opt.dryhop .swatch,.workshop .ws-use-pop-opt.dry_hop .swatch,.workshop .ws-use-pop-opt.primary .swatch,.workshop .ws-use-pop-opt.secondary .swatch,.workshop .ws-use-pop-opt.bottle .swatch,.workshop .ws-use-pop-opt.bottling .swatch{background:hsl(var(--dh-bg));color:hsl(var(--dh))}.workshop .ws-use-pop-opt.lateaddition .swatch,.workshop .ws-use-pop-opt.late_addition .swatch{background:hsl(var(--boil-bg));color:hsl(var(--boil))}.workshop .ws-use-pop-sep{background:hsl(var(--border));height:1px;margin:4px}.workshop .ws-use-sel.open{box-shadow:0 0 0 2px hsl(var(--accent-bg));filter:brightness(.96)}.workshop .ws-use-sel .car{opacity:.5;transition:transform .15s,opacity .12s}.workshop .ws-use-sel.open .car{opacity:.9;transform:rotate(180deg)}.workshop .ws-step-row{-moz-column-gap:var(--space-2);column-gap:var(--space-2);padding:11px var(--space-3) 11px var(--space-1-5);border-bottom:1px solid hsl(var(--border));grid-template-rows:auto;grid-template-columns:18px 24px 108px minmax(0,1fr) 78px 60px 24px;align-items:center;row-gap:0;display:grid;position:relative}.workshop .ws-step-row .type-cell{align-items:center;min-width:0;display:flex}.workshop .ws-step-row .type-cell .ws-use-sel{justify-content:space-between;width:100%}.workshop .ws-step-row:last-of-type{border-bottom:0}.workshop .ws-step-row.has-detail{padding-bottom:var(--space-2);border-bottom:0}.workshop .ws-step-row.sparge-step{border-top:1px solid hsl(var(--border))}.workshop .ws-step-row:hover{background:hsl(var(--panel-2))}.workshop .ws-step-row:hover .ws-grip{opacity:.7;color:hsl(var(--ink-2))}.workshop .ws-step-row.dragging{opacity:.4}.workshop .ws-step-row .handle-col{grid-row:1;align-self:center}.workshop .ws-step-row .ix{background:hsl(var(--panel-2));width:24px;height:22px;color:hsl(var(--ink-3));border-radius:var(--radius-xs);font-family:var(--mono);font-size:var(--fs-xs);justify-content:center;align-items:center;font-weight:500;display:inline-flex}.workshop .ws-step-row .name{align-items:center;gap:var(--space-2-5);flex-wrap:wrap;min-width:0;font-weight:500;display:inline-flex}.workshop .ws-step-row .name input[type=text]{border:1px solid hsl(var(--border-2));border-radius:var(--radius-xs);padding:1px var(--space-1);font-size:var(--fs-body);color:hsl(var(--ink));background:0 0;outline:none;min-width:0;font-weight:500}.workshop .ws-step-row .name input[type=text]:hover{background:hsl(var(--panel));border-color:hsl(var(--accent))}.workshop .ws-step-row .name input[type=text]:focus,.workshop .ws-step-row .name input[type=text]:focus-visible{background:hsl(var(--panel));border-color:hsl(var(--accent));box-shadow:0 0 0 2px hsl(var(--accent-bg))}.workshop .ws-step-row .num-cell{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:var(--fs-body);color:hsl(var(--ink));justify-content:flex-end;align-items:baseline;display:inline-flex}.workshop .ws-step-row .num-cell.muted{color:hsl(var(--ink-2))}.workshop .ws-step-row .num-cell input[type=number]{text-align:right;border:1px solid hsl(var(--border-2));border-radius:var(--radius-xs);width:100%;padding:1px var(--space-1);font-size:var(--fs-body);font-family:var(--mono);font-variant-numeric:tabular-nums;color:inherit;background:0 0;outline:none}.workshop .ws-step-row .num-cell input[type=number]:hover{background:hsl(var(--panel));border-color:hsl(var(--accent))}.workshop .ws-step-row .num-cell input[type=number]:focus,.workshop .ws-step-row .num-cell input[type=number]:focus-visible{background:hsl(var(--panel));border-color:hsl(var(--accent));box-shadow:0 0 0 2px hsl(var(--accent-bg))}.workshop .ws-step-row .num-cell .u{font-size:var(--fs-xs);color:hsl(var(--ink-3));font-family:var(--mono);margin-left:1px}.workshop .ws-step-row .num-cell .ghost-dash:empty:before{content:"—";color:hsl(var(--ink-3))}.workshop .ws-step-row .step-actions{justify-content:flex-end;align-items:center;display:flex}.workshop .ws-step-row .step-actions .icon-btn{border-radius:var(--radius-sm);width:22px;height:22px;color:hsl(var(--ink-3));cursor:pointer;opacity:.55;background:0 0;border:0;justify-content:center;align-items:center;padding:0;transition:opacity .12s,background .12s,color .12s;display:inline-flex}.workshop .ws-step-row:hover .step-actions .icon-btn{opacity:1}.workshop .ws-step-row .step-actions .icon-btn:hover{background:hsl(var(--panel-2));color:hsl(var(--ink));opacity:1}.workshop .ws-step-row .step-actions .icon-btn.danger:hover{color:hsl(var(--danger))}.workshop .ws-step-detail{-moz-column-gap:var(--space-2);column-gap:var(--space-2);padding:0 var(--space-3) var(--space-3) var(--space-1-5);border-bottom:1px solid hsl(var(--border));background:hsl(var(--panel));grid-template-columns:18px 24px 108px minmax(0,1fr) 24px;display:grid}.workshop .ws-step-detail:last-of-type{border-bottom:0}.workshop .ws-step-detail .detail-rail{border:1px solid hsl(var(--border));border-radius:var(--radius-sm);background:hsl(var(--panel-2));grid-column:3/5;align-items:stretch;gap:0;display:flex;overflow:hidden}.workshop .ws-step-detail .detail-cell{min-width:0;padding:var(--space-2) var(--space-3);border-right:1px solid hsl(var(--border));flex-direction:column;flex:1;gap:3px;display:flex}.workshop .ws-step-detail .detail-cell:last-child{border-right:0}.workshop .ws-step-detail .detail-cell .lbl{font-size:var(--fs-xs);color:hsl(var(--ink-3));text-transform:uppercase;letter-spacing:var(--tracking-label);font-weight:500}.workshop .ws-step-detail .detail-cell .val{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:var(--fs-body);color:hsl(var(--ink));align-items:baseline;gap:1px;font-weight:500;display:inline-flex}.workshop .ws-step-detail .detail-cell .val input[type=number]{text-align:right;border:1px solid hsl(var(--border-2));border-radius:var(--radius-xs);width:64px;padding:1px var(--space-1);font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:var(--fs-body);color:hsl(var(--ink));background:0 0;outline:none;font-weight:500}.workshop .ws-step-detail .detail-cell .val input[type=number]:hover{background:hsl(var(--panel));border-color:hsl(var(--accent))}.workshop .ws-step-detail .detail-cell .val input[type=number]:focus,.workshop .ws-step-detail .detail-cell .val input[type=number]:focus-visible{background:hsl(var(--panel));border-color:hsl(var(--accent));box-shadow:0 0 0 2px hsl(var(--accent-bg))}.workshop .ws-step-detail .detail-cell .val .u{font-size:var(--fs-xs);color:hsl(var(--ink-3));font-family:var(--mono);margin-left:2px}.workshop .ws-use-sel.temperature{background:hsl(var(--boil-bg));color:hsl(var(--boil))}.workshop .ws-use-sel.infusion{background:hsl(var(--mash-bg));color:hsl(var(--mash))}.workshop .ws-use-sel.decoction{background:hsl(var(--whirl-bg));color:hsl(var(--whirl))}.workshop .ws-step-row.ferm{grid-template-columns:18px 24px minmax(0,1fr) 64px 76px 76px 24px}.workshop .ws-step-row.ferm.has-psi{grid-template-columns:18px 24px minmax(0,1fr) 64px 64px 76px 76px 24px}.workshop .ws-step-head{-moz-column-gap:var(--space-2);column-gap:var(--space-2);padding:9px var(--space-3) 9px var(--space-1-5);border-bottom:1px solid hsl(var(--border));font-size:var(--fs-xs);color:hsl(var(--ink-3));text-transform:uppercase;letter-spacing:var(--tracking-label);grid-template-columns:18px 24px 108px minmax(0,1fr) 78px 60px 24px;align-items:center;font-weight:500;display:grid}.workshop .ws-step-head.ferm{grid-template-columns:18px 24px minmax(0,1fr) 64px 76px 76px 24px}.workshop .ws-step-head.ferm.has-psi{grid-template-columns:18px 24px minmax(0,1fr) 64px 64px 76px 76px 24px}.workshop .ws-step-head .fh{white-space:nowrap}.workshop .ws-step-head .fh.r{text-align:right;justify-self:end}.workshop .ws-field .val.editable{align-items:baseline;gap:3px;display:flex}.workshop .ws-field .val.editable>div{flex:0 auto;align-items:baseline;gap:3px;display:flex}.workshop .ws-field .val.editable input[type=number]{border:1px solid hsl(var(--border-2));border-radius:var(--radius-xs);width:6ch;min-width:2ch;height:auto;padding:var(--space-0-5) var(--space-1-5);box-shadow:none;font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:var(--text-16);color:hsl(var(--ink));background:0 0;outline:none;flex:none;margin-left:-6px;font-weight:600;line-height:1.2}.workshop .ws-field .val.editable input[type=number]:hover{background:hsl(var(--panel));border-color:hsl(var(--accent))}.workshop .ws-field .val.editable input[type=number]:focus,.workshop .ws-field .val.editable input[type=number]:focus-visible{background:hsl(var(--panel));border-color:hsl(var(--accent));box-shadow:0 0 0 2px hsl(var(--accent-bg))}.workshop .ws-field .val.editable .unit,.workshop .ws-field .val.editable>div>span{font-size:var(--fs-xs);font-weight:400;font-family:var(--mono);color:hsl(var(--ink-3));margin:0;padding:0}.workshop .ws-water{grid-template-columns:300px 1fr;gap:0;display:grid}.workshop .ws-water-left{border-right:1px solid hsl(var(--border));padding:var(--space-3-5) var(--pad);gap:var(--space-3);flex-direction:column;display:flex}.workshop .ws-water-right{grid-template-columns:1fr 1fr;padding:0;display:grid}.workshop .ws-water-right>.ws-water-ions{border-right:1px solid hsl(var(--border))}.workshop .ws-pf{gap:var(--space-1);flex-direction:column;display:flex}.workshop .ws-pf .lbl{font-size:var(--fs-xs);color:hsl(var(--ink-3));text-transform:uppercase;letter-spacing:var(--tracking-label);font-weight:500}.workshop .ws-pf .pf-input{align-items:center;gap:var(--space-1-5);box-sizing:border-box;min-height:34px;padding:var(--space-1-5) var(--space-2-5);border:1px solid hsl(var(--border));border-radius:var(--radius-sm);background:hsl(var(--panel));font-size:var(--fs-body);transition:border-color .12s,box-shadow .12s,background .12s;display:flex}.workshop .ws-pf .pf-input:hover{border-color:hsl(var(--border-2))}.workshop .ws-pf .pf-input:focus-within{border-color:hsl(var(--accent));box-shadow:0 0 0 2px hsl(var(--accent-bg))}.workshop .ws-pf .pf-input input{width:100%;color:hsl(var(--ink));font:inherit;font-family:var(--mono);font-variant-numeric:tabular-nums;text-align:right;-moz-appearance:textfield;background:0 0;border:0;outline:none}.workshop .ws-pf .pf-input input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.workshop .ws-pf .pf-input input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.workshop .ws-pf .pf-input .u{color:hsl(var(--ink-3));font-family:var(--mono);font-size:var(--fs-xs)}.workshop .ws-wsel{position:relative}.workshop .ws-wsel .ws-dd-trigger,.workshop .ws-ph-row .ws-dd-trigger{font-size:var(--fs-body);min-height:34px;padding:var(--space-1-5) 9px var(--space-1-5) var(--space-2-5);margin-top:0}.workshop .ws-section-mini{font-size:var(--fs-xs);color:hsl(var(--ink-3));text-transform:uppercase;letter-spacing:.08em;padding:var(--space-1-5) 0 var(--space-0-5);border-top:1px dashed hsl(var(--border));margin-top:var(--space-1);font-weight:600}.workshop .ws-ph-row{gap:var(--space-1-5);grid-template-columns:minmax(0,1fr) 58px 74px;align-items:stretch;display:grid}.workshop .ws-ph-row .pf-input{padding:var(--space-1-5) 7px;gap:3px}.workshop .ws-ph-row .pf-input input{font-size:var(--fs-sm)}.workshop .ws-ph-row .pf-input .u{font-size:var(--fs-xs)}.workshop .ws-ph-static{box-sizing:border-box;padding:var(--space-1-5) 11px;border:1px solid hsl(var(--border));border-radius:var(--radius-sm);background:hsl(var(--panel-2));min-height:34px;color:hsl(var(--ink-2));font-size:var(--fs-body);align-items:center;display:flex}.workshop .ws-ph-static.num{padding:var(--space-1-5) 7px;justify-content:flex-end;gap:3px}.workshop .ws-ph-static .v{font-family:var(--mono);font-variant-numeric:tabular-nums;color:hsl(var(--ink-2));font-size:var(--fs-sm)}.workshop .ws-ph-static .u{color:hsl(var(--ink-3));font-size:var(--fs-xs)}.workshop .ws-toggle{align-items:center;gap:var(--space-2-5);padding:var(--space-2) var(--space-2-5);border:1px solid hsl(var(--border));border-radius:var(--radius-sm);background:hsl(var(--panel));font-size:var(--fs-sm);color:hsl(var(--ink));cursor:pointer;display:flex}.workshop .ws-toggle:hover{background:hsl(var(--panel-2))}.workshop .ws-toggle .sw{border-radius:var(--radius-pill);background:hsl(var(--border-2));flex:none;width:28px;height:16px;transition:background .15s;position:relative}.workshop .ws-toggle .sw:after{content:"";background:hsl(var(--panel));border-radius:50%;width:12px;height:12px;transition:left .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #00000026}.workshop .ws-toggle.on .sw{background:hsl(var(--accent))}.workshop .ws-toggle.on .sw:after{left:14px}.workshop .ws-match-btn{margin-top:var(--space-1);justify-content:center;align-items:center;gap:var(--space-2);padding:9px var(--space-3);border-radius:var(--radius-sm);border:1px solid hsl(var(--accent));background:hsl(var(--accent));color:hsl(var(--accent-fg));font-size:var(--fs-body);cursor:pointer;font-weight:500;display:inline-flex}.workshop .ws-match-btn:hover{filter:brightness(.94)}.workshop .ws-match-btn:disabled{opacity:.5;cursor:not-allowed;filter:none}.workshop .ws-water-note{font-size:var(--fs-xs);color:hsl(var(--ink-3));line-height:1.4}.workshop .ws-ion-warn{padding:var(--space-2) var(--space-3) var(--space-2-5);font-size:var(--fs-xs);color:hsl(var(--warning));line-height:1.4}.workshop .ws-ion-warn a{color:inherit;text-underline-offset:2px;text-decoration:underline}.workshop .ws-ion-warn a:hover{text-decoration-thickness:2px}.workshop .ws-ion-table{border-collapse:separate;border-spacing:0;width:100%;font-size:var(--fs-body)}.workshop .ws-ion-table thead th{font-size:var(--fs-xs);color:hsl(var(--ink-3));text-transform:uppercase;letter-spacing:var(--tracking-label);padding:9px var(--space-3);border-bottom:1px solid hsl(var(--border));text-align:right;font-weight:500}.workshop .ws-ion-table thead th:first-child{text-align:left;padding-left:var(--space-4)}.workshop .ws-ion-table thead th.after{color:hsl(var(--accent))}.workshop .ws-ion-table tbody td{padding:0 var(--space-3);border-bottom:1px solid hsl(var(--border));vertical-align:middle;height:44px;font-family:var(--mono);font-variant-numeric:tabular-nums;text-align:right}.workshop .ws-ion-table tbody tr:last-child td{border-bottom:0}.workshop .ws-ion-table tbody td.ion-name{text-align:left;padding-left:var(--space-4);font-family:var(--sans);color:hsl(var(--ink));font-weight:500;line-height:1.25}.workshop .ws-ion-table tbody td.ion-name .full{color:hsl(var(--ink-3));font-weight:400;font-size:var(--fs-xs);margin-top:1px;line-height:1.3;display:block}.workshop .ws-ion-table tbody td.source,.workshop .ws-ion-table tbody td.target{color:hsl(var(--ink-2))}.workshop .ws-ion-table tbody td.after{color:hsl(var(--ink));font-weight:500;position:relative}.workshop .ws-ion-table tbody td.after .delta{font-size:var(--fs-xs);border-radius:var(--radius-xs);background:hsl(var(--positive-bg));color:hsl(var(--positive));font-weight:500;font-family:var(--mono);margin-left:6px;padding:1px 5px;display:inline-block}.workshop .ws-ion-table tbody td.after .delta.miss{background:hsl(var(--accent-bg));color:hsl(var(--accent))}.workshop .ws-salts-head{align-items:center;gap:var(--space-2-5);padding:9px var(--space-3-5);border-bottom:1px solid hsl(var(--border));background:hsl(var(--panel-2));display:flex}.workshop .ws-salts-head .t{font-size:var(--fs-xs);color:hsl(var(--ink-3));text-transform:uppercase;letter-spacing:var(--tracking-label);font-weight:500}.workshop .ws-salts-head .meta{font-size:var(--fs-xs);color:hsl(var(--ink-3));margin-left:auto}.workshop .ws-salts-table{border-collapse:separate;border-spacing:0;width:100%;font-size:var(--fs-body)}.workshop .ws-salts-table thead th{font-size:var(--fs-xs);color:hsl(var(--ink-3));text-transform:uppercase;letter-spacing:var(--tracking-label);padding:9px var(--space-2-5);border-bottom:1px solid hsl(var(--border));text-align:right;font-weight:500}.workshop .ws-salts-table thead th:first-child{text-align:left;padding-left:var(--space-3-5)}.workshop .ws-salts-table tbody td{padding:0 var(--space-2-5);border-bottom:1px solid hsl(var(--border));vertical-align:middle;text-align:right;height:44px;font-family:var(--mono);font-variant-numeric:tabular-nums;color:hsl(var(--ink))}.workshop .ws-salts-table tbody td:first-child{text-align:left;padding-left:var(--space-3-5);font-family:var(--sans);white-space:nowrap;font-weight:500;line-height:1.25}.workshop .ws-salts-table tbody td.zero{color:hsl(var(--ink-3))}.workshop .ws-salts-table tbody tr:last-child td{border-bottom:0}.workshop .ws-salts-table tbody td .formula{color:hsl(var(--ink-3));font-size:var(--fs-xs);font-family:var(--mono);margin-top:1px;font-weight:400;line-height:1.3;display:block}.workshop .ws-salts-table tbody td.cell.r .u{color:hsl(var(--ink-3));font-size:var(--fs-xs);margin-left:2px}.workshop .ws-salts-table td.total-cell{padding:0 var(--space-2) 0 var(--space-2-5)}.workshop .ws-salts-table .salt-total-input{text-align:right;border:1px solid hsl(var(--border-2));border-radius:var(--radius-sm);width:44px;color:hsl(var(--ink));font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:var(--fs-body);-moz-appearance:textfield;background:0 0;outline:none;padding:3px 5px;transition:border-color .12s,background .12s,box-shadow .12s}.workshop .ws-salts-table .salt-total-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.workshop .ws-salts-table .salt-total-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.workshop .ws-salts-table .salt-total-input:hover{border-color:hsl(var(--accent));background:hsl(var(--panel))}.workshop .ws-salts-table .salt-total-input:focus{border-color:hsl(var(--accent));background:hsl(var(--panel));box-shadow:0 0 0 2px hsl(var(--accent-bg))}.workshop .ws-water-meta{flex-wrap:wrap;align-items:center;gap:0;display:inline-flex}.workshop .ws-water-meta .kv{white-space:nowrap;border-right:1px solid hsl(var(--border));align-items:baseline;gap:5px;padding:0 9px;display:inline-flex}.workshop .ws-water-meta .kv:first-child{padding-left:0}.workshop .ws-water-meta .kv:last-child{border-right:0;padding-right:0}.workshop .ws-water-meta .kv .k{font-size:var(--fs-xs);color:hsl(var(--ink-3));text-transform:uppercase;letter-spacing:var(--tracking-label);font-weight:500}.workshop .ws-water-meta .kv .v{font-family:var(--mono);font-variant-numeric:tabular-nums;color:hsl(var(--ink));font-weight:500;font-size:var(--fs-body)}.workshop .ws-pf .lbl-row{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.workshop .ws-auto-switch{align-items:center;gap:var(--space-1-5);color:hsl(var(--ink-3));font:inherit;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:var(--tracking-label);cursor:pointer;background:0 0;border:0;margin:0;padding:0;font-weight:500;display:inline-flex}.workshop .ws-auto-switch:hover{color:hsl(var(--ink-2))}.workshop .ws-auto-switch .sw{border-radius:var(--radius-pill);background:hsl(var(--border-2));flex:none;width:22px;height:12px;transition:background .15s;position:relative}.workshop .ws-auto-switch .sw:after{content:"";background:hsl(var(--panel));border-radius:50%;width:8px;height:8px;transition:left .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #00000026}.workshop .ws-auto-switch.on{color:hsl(var(--accent))}.workshop .ws-auto-switch.on .sw{background:hsl(var(--accent))}.workshop .ws-auto-switch.on .sw:after{left:12px}.workshop .ws-pf .pf-input.is-auto{background:hsl(var(--panel-2));border-style:dashed}.workshop .ws-pf .pf-input.is-auto input{color:hsl(var(--ink-2));cursor:default}.workshop .ws-pf .pf-input.is-auto:focus-within{border-color:hsl(var(--border-2));box-shadow:none}.workshop .ws-pf .pf-input .calc-tag{font-size:var(--fs-xs);color:hsl(var(--accent));text-transform:uppercase;letter-spacing:var(--tracking-label);margin-right:2px;font-weight:500}.workshop .ws-water-meta .kv .v .u{color:hsl(var(--ink-3));font-size:var(--fs-xs);margin-left:4px;font-weight:400}@media (min-width:561px){.workshop .ws-ilist-row{box-sizing:border-box;min-height:74px}.workshop .ws-ilist-row .meta-line{flex-wrap:nowrap}.workshop .ws-ilist-row .meta-line .stat,.workshop .ws-ilist-row .meta-line .stat-text{white-space:nowrap}}.workshop .ws-sec,.workshop .ws-sec-body,.workshop .ws-ilist,.workshop .ws-ilist-row,.workshop .ws-ilist-head,.workshop .ws-ilist-foot,.workshop .ws-step,.workshop .ws-fields,.workshop .ws-field,.workshop .ws-water,.workshop .ws-water-left,.workshop .ws-water-right,.workshop .ws-water-ions,.workshop .ws-salts{min-width:0}.workshop .ws-salts{overflow-x:auto}.workshop .ws-sec-meta,.workshop .ws-water-meta{flex-wrap:wrap;min-width:0}@media (max-width:820px){.workshop{--ws-gutter:var(--space-4)}.workshop .ws-header-mid{row-gap:var(--space-3);padding:var(--space-3) var(--space-4);flex-wrap:wrap}.workshop .ws-header-mid .ws-name-block{flex:auto;min-width:150px}.workshop .ws-stat-strip{grid-template-columns:repeat(3,1fr);overflow:visible}.workshop .ws-stat{min-width:0;padding:var(--space-2) var(--space-3);border-bottom:1px solid hsl(var(--border))}.workshop .ws-stat .track,.workshop .ws-stat .delta{display:none}.workshop .ws-stat.balance{padding:var(--space-2) var(--space-3)}.workshop .ws-stat:nth-child(7){display:none}.workshop .ws-stat:nth-child(3n){border-right:0}.workshop #setup .ws-fields{grid-template-columns:repeat(6,1fr)}.workshop #setup .ws-field{border-right:1px solid hsl(var(--border));padding-left:var(--space-4);padding-right:var(--space-4);border-bottom:0}.workshop #setup .ws-field:first-child{border-bottom:1px solid hsl(var(--border));grid-column:span 3}.workshop #setup .ws-field:nth-child(2){border-right:0;border-bottom:1px solid hsl(var(--border));grid-column:span 3}.workshop #setup .ws-field:nth-child(3),.workshop #setup .ws-field:nth-child(4){grid-column:span 2}.workshop #setup .ws-field:nth-child(5){border-right:0;grid-column:span 2}.workshop .ws-water{grid-template-columns:1fr}.workshop .ws-water-left{border-right:0;border-bottom:1px solid hsl(var(--border))}.workshop .ws-water-right{grid-template-columns:1fr}.workshop .ws-water-right>.ws-water-ions{border-right:0;border-bottom:1px solid hsl(var(--border))}}@media (max-width:560px){.workshop .ws-header-mid .ws-name{font-size:var(--text-16)}.workshop .ws-header-mid .ws-sub{font-size:var(--fs-sm)}.workshop .ws-mid-actions .ws-ghost-btn,.workshop #water .ws-sec-meta{display:none}.workshop .ws-ilist-head,.workshop .ws-ilist-row,.workshop .ws-ilist-foot{-moz-column-gap:var(--space-3);column-gap:var(--space-3)}}.workshop [data-anim]{transition:opacity .5s cubic-bezier(.22,.61,.36,1),transform .5s cubic-bezier(.22,.61,.36,1)}.workshop.is-intro [data-anim]{opacity:0;transform:translateY(14px)}.workshop.is-intro .ws-header-mid{transform:translateY(-12px)}@media (prefers-reduced-motion:reduce){.workshop [data-anim]{opacity:1!important;transition:none!important;transform:none!important}}.workshop .ws-ilist-row,.workshop .ws-step-row{position:relative;overflow:hidden}.workshop .ws-del-slide{box-sizing:border-box;z-index:4;align-items:center;gap:var(--space-2);padding:0 var(--ws-gutter) 0 var(--space-3-5);background:linear-gradient(hsl(var(--danger-bg)), hsl(var(--danger-bg))), hsl(var(--panel));box-shadow:-10px 0 18px -10px #0003, inset 1px 0 0 hsl(var(--border));display:flex;position:absolute;top:0;bottom:0;right:0}.dark .workshop .ws-del-slide{box-shadow:-12px 0 20px -10px #00000073, inset 1px 0 0 hsl(var(--border))}.workshop .ws-del-slide .ds-ico{color:hsl(var(--danger));flex-shrink:0;display:inline-flex}.workshop .ws-del-slide .ds-lbl{white-space:nowrap;font:500 var(--fs-body) / 1.2 var(--sans);color:hsl(var(--danger))}.workshop .ws-del-slide .ds-btn{cursor:pointer;white-space:nowrap;font:500 var(--fs-sm) / 1 var(--sans);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);border:1px solid #0000;flex-shrink:0;align-items:center;transition:background .12s,color .12s,border-color .12s,filter .12s;display:inline-flex}.workshop .ws-del-slide .ds-no{background:hsl(var(--panel));color:hsl(var(--ink-2));border-color:hsl(var(--border))}.workshop .ws-del-slide .ds-no:hover{background:hsl(var(--panel-2));color:hsl(var(--ink));border-color:hsl(var(--border-2))}.workshop .ws-del-slide .ds-yes{margin-left:var(--space-4);padding:var(--space-1-5) 13px;background:hsl(var(--danger));color:hsl(var(--bg));border-color:hsl(var(--danger))}.workshop .ws-del-slide .ds-yes:hover{filter:brightness(.94)}.workshop .ws-ilist-row.is-deleting,.workshop .ws-step-row.is-deleting{background:linear-gradient(hsl(var(--danger-bg)), hsl(var(--danger-bg))), hsl(var(--panel))}
