:root{color-scheme:light;--paper:#f3f5f3;--surface:#ffffff;--surface-2:#ecefec;--chrome:#171c19;--chrome-2:#232a26;--chrome-3:#313a35;--line:#d3d9d4;--line-soft:#e5e9e6;--ink:#10140f;--ink-2:#525c56;--ink-3:#858e88;--ink-chrome:#e7ece8;--ink-chrome-dim:#94a19a;--grow:#0f7a42;--grow-lit:#16a75a;--grow-wash:#e2f1e8;--warn:#9c6100;--warn-wash:#fbf0dc;--alert:#9c3225;--alert-wash:#f8e6e3;--radius:3px;--tap:44px;--font-sans:ui-sans-serif,system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--font-mono:ui-monospace,"Cascadia Mono",SFMono-Regular,Menlo,Consolas,monospace;--rail-w:216px}*{box-sizing:border-box}body,html{height:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-sans);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0;font-weight:650;letter-spacing:-.01em}h1{font-size:19px}h2{font-size:15px}h3{font-size:13px}p{margin:0}a{color:inherit;text-decoration:none}.num,.stat-value,.week-cell,table,td.num,th.num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.shell{display:grid;grid-template-columns:var(--rail-w) 1fr;min-height:100vh}.rail{background:var(--chrome);color:var(--ink-chrome);display:flex;flex-direction:column;position:-webkit-sticky;position:sticky;top:0;height:100vh}.rail-brand{display:flex;align-items:center;gap:9px;padding:16px 16px 14px;border-bottom:1px solid var(--chrome-3)}.rail-brand>div{min-width:0}.rail-brand strong{font-size:14px;font-weight:650;letter-spacing:-.01em}.rail-brand span{display:block;font-size:11px;color:var(--ink-chrome-dim)}.rail-nav{padding:8px;flex:1 1;overflow-y:auto}.rail-nav a{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:38px;padding:0 10px;border-radius:var(--radius);color:var(--ink-chrome-dim);font-size:13.5px;font-weight:500}.rail-nav a:hover{background:var(--chrome-2);color:var(--ink-chrome)}.rail-nav a[aria-current=page]{background:var(--chrome-2);color:#fff;box-shadow:inset 2px 0 0 var(--grow-lit)}.rail-nav .soon{font-size:10px;font-weight:600;letter-spacing:.04em;color:var(--ink-chrome-dim);border:1px solid var(--chrome-3);border-radius:2px;padding:0 4px;opacity:.75}.rail-group{padding:14px 10px 5px;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#6d7a73}.rail-foot{border-top:1px solid var(--chrome-3);padding:10px;display:flex;align-items:center;justify-content:space-between;gap:8px}.rail-foot .who{min-width:0;font-size:11.5px;color:var(--ink-chrome-dim)}.rail-foot .who b{display:block;color:var(--ink-chrome);font-weight:550;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.main{min-width:0;display:flex;flex-direction:column}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:10px 20px;background:var(--surface);border-bottom:1px solid var(--line)}.topbar .spacer{flex:1 1}.content{padding:20px;flex:1 1}.content>*+*{margin-top:18px}.page-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.page-head p{color:var(--ink-2);font-size:13px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border-bottom:1px solid var(--line-soft)}.panel-head h2{font-size:13px}.hint,.panel-head .hint{color:var(--ink-3);font-size:12px}.panel-body{padding:14px}.panel-body>*+*{margin-top:10px}.grid{display:grid;grid-gap:14px;gap:14px}.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.stat{display:block;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px}a.stat:hover{border-color:var(--grow)}.stat-label{font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3)}.stat-value{font-size:25px;font-weight:600;letter-spacing:-.02em;margin-top:3px}.stat-note{font-size:12px;color:var(--ink-2)}.table-wrap{overflow-x:auto}table.data{width:100%;border-collapse:collapse;font-size:13px}table.data th{text-align:left;font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);background:var(--surface-2);padding:6px 10px;border-bottom:1px solid var(--line);white-space:nowrap;position:-webkit-sticky;position:sticky;top:0}table.data td{padding:6px 10px;border-bottom:1px solid var(--line-soft);vertical-align:top}table.data tbody tr:hover td{background:#f7faf8}table.data .num{text-align:right}.mono,table.data td.mono{font-family:var(--font-mono);font-size:12px}.empty{padding:22px 14px;text-align:center;color:var(--ink-3);font-size:13px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:var(--tap);padding:0 16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--ink);font:inherit;font-weight:550;font-size:13.5px;cursor:pointer}.btn:hover{background:var(--surface-2)}.btn:disabled{opacity:.55;cursor:default}.btn.primary{background:var(--grow);border-color:var(--grow);color:#fff}.btn.primary:hover{background:#0c6837}.btn.wide{width:100%}.btn.small{min-height:30px;padding:0 10px;font-size:12.5px}.btn.ghost-chrome{min-height:32px;padding:0 10px;background:transparent;border-color:var(--chrome-3);color:var(--ink-chrome-dim);font-size:12px}.btn.ghost-chrome:hover{background:var(--chrome-2);color:var(--ink-chrome)}.field,.field>span{display:block}.field>span{font-size:11px;font-weight:650;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-2);margin-bottom:5px}input[type=email],input[type=password],input[type=text],select{width:100%;min-height:var(--tap);padding:0 11px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--ink);font:inherit;font-size:14px}.btn:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--grow-lit);outline-offset:1px}.switch{display:flex;align-items:center;gap:8px}.switch label{font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3)}.switch select{width:auto;min-height:34px;padding:0 26px 0 9px;font-size:13px;font-weight:550;border-color:var(--line)}.switch select,.tag{background:var(--surface-2)}.tag{display:inline-flex;align-items:center;gap:5px;height:20px;padding:0 7px;border-radius:2px;color:var(--ink-2);font-size:11px;font-weight:600;letter-spacing:.02em;white-space:nowrap}.tag.grow{background:var(--grow-wash);color:var(--grow)}.tag.warn{background:var(--warn-wash);color:var(--warn)}.tag.alert{background:var(--alert-wash);color:var(--alert)}.notice{padding:10px 12px;border:1px solid var(--line);border-left:3px solid var(--ink-3);border-radius:var(--radius);background:var(--surface);font-size:13px;color:var(--ink-2)}.notice.alert{border-left-color:var(--alert);background:var(--alert-wash);color:var(--alert)}.notice.grow{border-left-color:var(--grow);background:var(--grow-wash);color:var(--grow)}.week-rail{display:flex;flex-wrap:wrap;gap:2px;padding:2px;background:var(--line-soft);border:1px solid var(--line);border-radius:var(--radius)}.week-cell{flex:1 0 34px;min-height:40px;padding:4px 2px 3px;background:var(--surface);text-align:center;color:var(--ink-3);font-size:11px;line-height:1.25}.week-cell b{display:block;font-size:12.5px;font-weight:600;color:var(--ink-2)}.week-cell.filled{background:var(--grow-wash)}.week-cell.filled,.week-cell.filled b{color:var(--grow)}.week-cell.now{background:var(--grow);box-shadow:inset 0 0 0 1px var(--grow)}.week-cell.now,.week-cell.now b{color:#fff}a.week-cell{display:block;text-decoration:none}a.week-cell:hover{box-shadow:inset 0 0 0 1px var(--grow-lit)}.week-cell.picked{box-shadow:inset 0 0 0 2px var(--grow)}.week-cell.picked.now{box-shadow:inset 0 0 0 2px var(--chrome)}.week-rail-legend{display:flex;gap:14px;font-size:11.5px;color:var(--ink-3)}.week-rail-legend i{display:inline-block;width:9px;height:9px;margin-right:5px;vertical-align:-1px}.auth{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(var(--line-soft) 1px,transparent 1px) 0 0 /100% 34px,linear-gradient(90deg,var(--line-soft) 1px,transparent 1px) 0 0 /34px 100%,var(--paper)}.auth-card{width:100%;max-width:372px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 1px 2px rgba(16,20,15,.05),0 8px 24px rgba(16,20,15,.06)}.auth-card header{padding:20px 20px 0}.auth-card header h1{display:flex;align-items:center;gap:8px}.auth-card header p{color:var(--ink-2);font-size:13px;margin-top:4px}.auth-card form{padding:18px 20px 20px;display:grid;grid-gap:13px;gap:13px}.auth-tabs{display:flex;gap:2px;padding:14px 20px 0}.auth-tabs button{flex:1 1;min-height:36px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2);color:var(--ink-2);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer}.auth-tabs button[aria-pressed=true]{background:var(--chrome);border-color:var(--chrome);color:#fff}.auth-foot{padding:11px 20px;border-top:1px solid var(--line-soft);font-size:11.5px;color:var(--ink-3)}.filters{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}.filters .field{min-width:170px}.filters .field.wide{flex:1 1 240px}.filters select{width:100%}.table-wrap.tall{max-height:max(340px,calc(100vh - 300px));overflow:auto}table.data tr.group td{border-bottom:1px solid var(--line);border-top:1px solid var(--line);padding-top:9px;padding-bottom:9px}table.data tbody tr.group:hover td,table.data tr.group td{background:var(--surface-2)}table.data tfoot td,table.data tfoot th{background:var(--surface-2);border-top:1px solid var(--line);border-bottom:none;font-weight:650;position:-webkit-sticky;position:sticky;bottom:0}table.data a.row-open{display:inline-block;min-height:26px;padding:3px 0;font-weight:600;color:var(--grow)}table.data a.row-open:hover{text-decoration:underline}.page-head .spacer-grow{flex:1 1}table.matrix{font-size:12.5px}table.matrix th.week{text-align:right;vertical-align:bottom}table.matrix th.week b{display:block;font-size:13px;color:var(--ink)}table.matrix th.week span{display:block;font-size:9.5px;font-weight:600;letter-spacing:.02em;text-transform:none;color:var(--ink-3)}table.matrix .plant{position:-webkit-sticky;position:sticky;left:0;z-index:1;background:var(--surface);border-right:1px solid var(--line)}table.matrix thead th{z-index:2}table.matrix thead th.plant{z-index:3;background:var(--surface-2)}table.matrix tbody th.plant{text-align:left;text-transform:none;letter-spacing:0;font-size:12.5px;font-weight:550;color:var(--ink);border-bottom:1px solid var(--line-soft);white-space:nowrap}table.matrix tbody tr:hover th.plant{background:#f7faf8}table.matrix tfoot th.plant{left:0;bottom:0;z-index:3;background:var(--surface-2);text-align:left}table.matrix .total{position:-webkit-sticky;position:sticky;right:0;background:var(--surface);border-left:1px solid var(--line);font-weight:600}table.matrix tfoot td.total,table.matrix thead th.total{background:var(--surface-2)}table.matrix tbody tr:hover td.total{background:#f7faf8}.zero,table.matrix td.zero{color:var(--ink-3)}.tabs{display:flex;gap:2px}.tabs a{display:inline-flex;align-items:center;min-height:34px;padding:0 12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--ink-2);font-size:13px;font-weight:600}.tabs a:hover{background:var(--surface-2);color:var(--ink)}.tabs a[aria-current=page]{background:var(--chrome);border-color:var(--chrome);color:#fff}.print-only{display:none}.btn.tap{min-height:var(--tap)}details.sow-week>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:var(--tap);cursor:pointer;list-style:none}details.sow-week>summary::-webkit-details-marker{display:none}details.sow-week>summary>span:first-child{display:flex;align-items:center;gap:9px;min-width:0}details.sow-week>summary:after{content:"+";font-size:17px;font-weight:600;line-height:1;color:var(--ink-3)}details.sow-week[open]>summary:after{content:"-"}details.sow-week>summary:hover{background:var(--surface-2)}details.sow-week[open]>summary{border-bottom:1px solid var(--line-soft)}table.data.sow th{padding:8px 10px}table.data.sow td{padding:10px;vertical-align:middle}table.data.sow .tag+.tag{margin-left:4px}table.data.sow tbody tr.done td{background:var(--grow-wash)}table.data.sow tbody tr.done:hover td{background:#d7ebdf}td.sow-action{white-space:nowrap;width:1%}.filters .check,.sown-state{display:flex;align-items:center;gap:8px}.filters .check{min-height:var(--tap);padding:0 4px;font-size:13.5px;font-weight:550;cursor:pointer}.filters .check input{width:22px;height:22px;accent-color:var(--grow)}td.record{white-space:nowrap}td.record form{display:inline-block}td.record>*+*{margin-left:4px}details.correct{display:inline-block}details.correct>summary{list-style:none}details.correct>summary::-webkit-details-marker{display:none}.status-menu{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px;max-width:260px}details.history>summary{cursor:pointer;font-size:12px}details.history ol{margin:6px 0 0;padding-left:1.1rem;display:grid;grid-gap:4px;gap:4px;font-size:12px}.check-col{display:none}.sow-print-head{font-weight:650}.supplier-group+.supplier-group{border-top:1px solid var(--line)}table.data input[type=checkbox]{width:22px;height:22px;accent-color:var(--grow)}.tag-sheet{display:grid;grid-template-columns:repeat(auto-fill,minmax(71ch,1fr));grid-gap:8px;gap:8px;font-family:var(--font-mono);font-size:11px}.tag-label{margin:0;padding:8px 10px;border:1px dashed var(--line);border-radius:var(--radius);background:var(--surface);font:inherit;line-height:1.5;white-space:pre;overflow-x:auto}.rollup{display:grid;grid-gap:8px;gap:8px}.rollup-chips{flex-wrap:wrap;gap:6px}.rollup-chips,.rollup-compact{display:flex;align-items:center}.rollup-compact{gap:8px;min-width:190px}.rollup-bar{display:block;flex:1 1 90px;height:8px;min-width:60px;background:var(--surface-2);border:1px solid var(--line);border-radius:2px;overflow:hidden}.rollup-bar.wide{width:100%;height:10px}.rollup-bar i{display:block;height:100%;background:var(--grow)}.qty-input{width:5.5em;text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.note-input,.qty-input{min-height:34px;padding:0 8px}.note-input{min-width:12em}table.data input.note-input,table.data input.qty-input{font-size:13px}.btn.alert-btn{border-color:var(--alert);color:var(--alert)}.btn.alert-btn:hover{background:var(--alert-wash)}.skeleton-grid{display:grid;grid-gap:6px;gap:6px}.skeleton-row{display:block;height:18px;border-radius:2px;background:linear-gradient(90deg,var(--surface-2) 0,var(--line-soft) 50%,var(--surface-2) 100%);background-size:200% 100%;animation:skeleton 1.4s ease-in-out infinite}.skeleton-row:nth-child(odd){width:92%}.skeleton-row:nth-child(3n){width:78%}@keyframes skeleton{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.skeleton-row{animation:none}}@media (max-width:900px){.shell{grid-template-columns:1fr}.rail{position:static;height:auto}.rail-nav{display:flex;overflow-x:auto;padding:6px}.rail-nav a{min-height:var(--tap);white-space:nowrap}.rail-group,.rail-nav .soon{display:none}.grid.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cols-2,.grid.cols-3{grid-template-columns:minmax(0,1fr)}.content{padding:14px}}@media print{:root{--paper:#fff}.btn,.filters,.no-print,.rail,.switch,.tabs,.topbar{display:none!important}.print-only{display:revert!important}div.print-only{font-size:11px;margin-bottom:6px}.table-wrap.tall{max-height:none;overflow:visible}.table-wrap{overflow:visible}table.data tfoot td,table.data tfoot th,table.data thead th{position:static}thead{display:table-header-group}tfoot{display:table-footer-group}tr{page-break-inside:avoid;break-inside:avoid}table.matrix{font-size:10px}table.matrix td,table.matrix th{padding:1.5px 4px}table.matrix .plant,table.matrix .total{position:static;background:none}table.matrix .hint,table.matrix tbody th.plant,table.matrix th.week b{font-size:inherit}table.matrix th.week span{font-size:8px}details.sow-week:not(.printable),details.sow-week>summary{display:none}details.sow-week{border:none}.sow-print-head{display:block!important;margin-bottom:8px;font-size:12px}table.data.sow{font-size:11px}table.data.sow .hint,table.data.sow .mono,table.data.sow .tag{font-size:inherit}table.data.sow .tag{height:auto;padding:0 4px}table.data.sow td,table.data.sow th{padding:3px 6px}table.data.sow .plant-cell{width:45%}table.data.sow .cat{display:none}table.data.sow .method-cell,table.data.sow .tray-cell{white-space:nowrap}table.data.sow tbody tr.done td{background:none}.check-col{display:table-cell;width:30px;text-align:center}.supplier-group{page-break-after:always;break-after:page}.supplier-group:last-child{page-break-after:auto;break-after:auto}.tag-sheet{gap:6px;font-size:10px}.tag-label{border:1px dashed #999;page-break-inside:avoid;break-inside:avoid;overflow:visible}.check-col span{display:inline-block;width:13px;height:13px;line-height:13px;border:1px solid #000;font-size:10px}.shell{display:block}.content{padding:0}.panel{border:none}.panel-head{border-bottom:1px solid #000;padding-left:0}.panel-body{padding:0}table.data th{background:none;border-bottom:1px solid #000}table.data td{border-bottom:1px solid #ddd}body{font-size:11px}}