:root{--spec-bg:#f9faf7;--spec-card:#fcfdfa;--spec-border:#e8efe2;--spec-green:#4caf50;--spec-text:#1a1a1a}body,input,select,textarea,button{font-family:'Microsoft YaHei',sans-serif}.main{background:var(--spec-bg)}.spec-page{max-width:1372px;margin:0 auto;color:var(--spec-text)}.spec-page h1{font-size:26px;color:#14301a;margin:0 0 28px}.spec-page h2{font-size:16px;color:#2e5227;margin:24px 0 14px}.spec-home>h2:before,.spec-base>h2:before{content:'';display:inline-block;background:#4caf50;width:4px;height:16px;border-radius:3px;margin-right:10px;vertical-align:middle}.spec-stock-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.spec-stock{height:222px;background:var(--spec-card);border:1px solid var(--spec-border);border-radius:16px;padding:20px;box-shadow:0 5px 20px #89b97708;overflow:auto}.spec-stock-head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #eef2ea;padding-bottom:14px;color:#2e5227}.spec-stock-head>span{display:flex;align-items:center;gap:12px;font-weight:600}.spec-stock-head i{font-style:normal;font-size:22px;padding:7px;background:#edf5e4;border-radius:12px}.spec-stock strong{font-size:29px;color:#14301a}.spec-stock-details>div{display:flex;justify-content:space-between;gap:8px;padding-top:12px;font-size:13px;color:#5a6b55}.spec-chip{display:inline-block;background:#edf5e4;color:#3d6b34;border-radius:8px;padding:3px 8px;font-size:12px;font-style:normal}.spec-chips{display:flex;gap:7px;flex-wrap:wrap}.spec-stock.local{height:156px;border-radius:12px;padding:16px;position:relative}.spec-stock.local .spec-stock-head{border:0;padding:0 0 6px;color:#8a9a85}.spec-stock.local .spec-stock-head span{font-weight:400}.spec-stock.local>a{position:absolute;bottom:14px;right:18px;color:#2e6b2e;font-weight:600;font-size:13px}.spec-base{background:var(--spec-card);border:1px solid var(--spec-border);border-radius:16px;margin-top:26px;padding:22px}.spec-base>header{display:flex;gap:16px;align-items:center}.spec-base>header i{font-style:normal;font-size:25px;background:#edf5e4;border-radius:12px;padding:10px}.spec-base>header h2{margin:0;font-size:19px}.spec-base>header small{font-size:12px;color:#8a9a85}.spec-base-counts{margin-left:auto;font-size:12px;color:#5a6b55}.spec-base-counts b{color:#2e6b2e}.spec-horizontal{display:flex;gap:16px;overflow-x:auto;padding-bottom:5px}.spec-workshops>.qh-wc-card{flex:0 0 300px;width:300px;height:240px;background:#fcfdfa}.spec-camera{position:relative;flex:0 0 320px;height:180px;background:#eef2e9;border-radius:14px;padding:14px}.spec-camera button{float:right;border:0;background:#70796cce;color:white;border-radius:6px;padding:4px 8px;font-size:12px}.spec-camera>div{height:115px;display:grid;place-items:center;color:#a9b2a5;font-size:13px}.spec-camera:fullscreen{height:100vh;width:100vw;display:flex;flex-direction:column}.spec-camera:fullscreen>div{flex:1}.spec-batch-list{display:grid;gap:12px}.spec-batch{min-height:49px;border:1px solid #e8efe2;background:#f9fcf6;border-radius:12px;padding:10px 18px;display:flex;gap:24px;align-items:center;color:#21421b}.spec-batch>small{min-width:100px;color:#8a9a85;font-size:12px}.spec-batch>b{min-width:84px}.spec-progress{flex:1;min-width:60px;height:9px;background:#eaf0e7;border-radius:10px}.spec-progress>i{display:block;height:100%;background:#4caf50;border-radius:10px}.spec-empty{color:#8a9a85;font-size:13px;text-align:center;padding:12px}.spec-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.spec-heading h1{margin:0}.spec-panel{background:#fcfdfa;border:1px solid #e8efe2;border-radius:16px;padding:22px}.spec-table{width:100%;border-collapse:collapse;font-size:14px}.spec-table th{background:#edf5e4;color:#2e5227;font-weight:500}.spec-table td,.spec-table th{padding:16px;border-bottom:1px solid #e8efe2;text-align:left}.spec-link{border:0;background:transparent;color:#2e6b2e;cursor:pointer}.spec-dialog{width:560px;max-width:calc(100vw - 24px);padding:0;border:1px solid #e8efe2;border-radius:16px;background:#fff}.spec-dialog::backdrop{background:#18351555;backdrop-filter:blur(3px)}.spec-dialog header,.spec-dialog footer{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid #e8efe2}.spec-dialog header h2{font-size:20px;margin:0}.spec-dialog header button{border:0;background:none;font-size:24px}.spec-dialog footer{justify-content:flex-end;gap:12px;border-bottom:0;border-top:1px solid #e8efe2}.spec-form{padding:24px;display:grid;gap:18px}.spec-form label{display:block;font-size:14px;color:#5a6b55}.spec-form input,.spec-form select,.spec-form textarea{display:block;width:100%;height:38px;border:1px solid #e2e7e1;border-radius:7px;background:#fafdf9;margin-top:8px;padding:6px 10px}.spec-form .required{color:#c0392b;margin-left:4px}.spec-form textarea{height:90px}.spec-page .btn.primary{background:#2e6b2e;border-color:#2e6b2e}.spec-page .table-scroll{overflow:auto}.spec-inventory-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.spec-inventory-cards.materials{grid-template-columns:repeat(3,minmax(0,1fr))}.spec-item-card{height:132px;padding:20px;border:1px solid #e8efe2;border-left:5px solid #4caf50;border-radius:12px;background:#fcfdfa}.spec-item-card h3{font-size:16px;margin:0 0 10px;color:#2e5227}.spec-item-card strong{font-size:27px}.spec-item-card small{display:block;color:#8a9a85;margin-top:9px}.spec-stock-forms{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:26px}.spec-stock-forms form{background:#fcfdfa;border:1px solid #e8efe2;border-radius:16px;padding:24px}.spec-stock-forms h2{margin-top:0}.spec-stock-forms .spec-form{padding:0;grid-template-columns:1fr 1fr}.spec-stock-forms .spec-form button,.spec-stock-forms .error{grid-column:1/-1}.spec-stock-forms [type=submit]{height:44px;margin-top:10px}.spec-filter{display:flex;gap:12px;align-items:center;margin:12px 0 20px}.spec-filter input,.spec-filter select{height:38px;border:1px solid #e2e7e1;border-radius:8px;padding:6px 12px;background:#fafdf9}.spec-in{background:#e9f6ea;color:#2e7d32}.spec-out{background:#fdf0e2;color:#c97a1a}
@media(min-width:1500px){.spec-page{width:1372px}}@media(max-width:700px){.spec-page{width:100%;max-width:100%}.spec-page h1{font-size:22px}.spec-stock-grid{grid-template-columns:1fr}.spec-stock{height:auto;min-height:168px}.spec-base{padding:14px}.spec-base>header{gap:8px;flex-wrap:wrap}.spec-base-counts{width:100%;margin:0;text-align:right}.spec-stock.local{height:141px}.spec-workshops>.qh-wc-card{flex-basis:265px;width:265px}.spec-camera{flex-basis:280px;height:158px}.spec-batch{gap:10px;padding:10px;flex-wrap:wrap}.spec-batch>small{min-width:auto}.spec-batch>b{min-width:60px}.spec-progress{min-width:70px}.spec-panel{padding:12px}.spec-heading{gap:10px}.spec-heading .btn{font-size:12px}.spec-inventory-cards,.spec-inventory-cards.materials{grid-template-columns:1fr 1fr;gap:12px}.spec-item-card{padding:14px;height:120px}.spec-item-card strong{font-size:23px}.spec-stock-forms{grid-template-columns:1fr}.spec-stock-forms form{padding:18px}.spec-stock-forms .spec-form{grid-template-columns:1fr}.spec-filter{flex-wrap:wrap}.spec-dialog{max-height:90vh}.spec-dialog .table-scroll{overflow:auto}}
.spec-device-subtitle{margin-top:-20px;font-size:12px;color:#8a9a85}.spec-control-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.spec-control-card{min-height:225px;background:#fff;border:1px solid #e8efe2;border-radius:16px;padding:16px}.spec-control-card h3{text-align:center;margin:0 0 12px;padding-bottom:12px;border-bottom:1px solid #eef2ea;font-size:15px}.spec-metric-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.spec-metric-grid>div{background:#f8faf5;border-radius:10px;padding:12px}.spec-metric-grid small{display:block;font-size:11px;color:#8a9a85}.spec-metric-grid b{font-size:23px;display:block;margin-top:6px}.spec-metric-grid em{font-size:12px;font-weight:400;font-style:normal}.spec-control-row{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;min-height:29px}.spec-control-row input,.spec-underlined{flex:1;min-width:0;max-width:75%;height:24px;border:0;border-bottom:1px solid #e8efe2;background:transparent;padding:0;color:#5a6b55}.spec-growing,.spec-history{margin-top:26px}.spec-growing h2,.spec-history h2{margin-top:0}.spec-growing-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.spec-growing-grid>div{background:#f1f7e9;border-radius:8px;padding:14px}.spec-growing-grid small{display:block;color:#8a9a85;font-size:11px}.spec-growing-grid b{display:block;margin-top:8px;font-size:14px}.spec-growing p{font-size:11px;color:#8a9a85;margin-bottom:0}.spec-history .spec-table td{text-align:center}.spec-workshop>h2:before{content:'';width:4px;height:15px;background:#4caf50;margin-right:8px;display:inline-block}@media(max-width:700px){.spec-control-grid{grid-template-columns:1fr 1fr;gap:11px}.spec-control-card{padding:11px}.spec-metric-grid>div{padding:8px}.spec-metric-grid b{font-size:18px}.spec-control-card h3{font-size:13px}.spec-growing-grid{grid-template-columns:1fr 1fr}.spec-control-row{font-size:11px}.spec-history .spec-table{min-width:650px}}
.spec-device-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;background:#fcfdfa;border:1px solid #e8efe2;border-radius:16px;padding:24px}.spec-device-summary article{border-right:1px solid #e8efe2;padding:0 20px}.spec-device-summary article:last-child{border:0}.spec-device-summary small,.spec-device-summary strong{display:block}.spec-device-summary small{color:#5a6b55}.spec-device-summary strong{font-size:28px;color:#2e5227;margin-top:10px}.spec-device-bases{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.spec-device-bases article{height:180px}.spec-device-bases h2{margin-top:0}.spec-device-bases p{color:#8a9a85;font-size:13px}.spec-device-bases button{float:right;margin-top:15px}.spec-tree-scroll{overflow-x:auto;padding:28px}.spec-tree-root{margin:0 auto 30px;background:#2e6b2e;border-radius:9px;color:white;text-align:center;padding:15px;max-width:250px}.spec-tree-groups{display:flex;justify-content:center;gap:35px;min-width:max-content}.spec-tree-upper,.spec-tree-houses{display:flex;gap:18px;justify-content:center}.spec-tree-houses{padding-top:30px}.spec-tree-houses h3{background:#edf5e4;color:#2e5227;text-align:center;padding:13px;border-radius:8px}.spec-tree-node{display:flex;align-items:center;gap:8px;background:#f7faf5;border:1px solid #eef2ea;border-radius:9px;padding:13px;margin:8px 0;min-width:155px}.spec-tree-node button{border:0;background:none;color:#5a6b55;margin-left:auto;cursor:pointer}.spec-led{display:inline-block;width:9px;height:9px;border-radius:50%;background:#a6aea3}.spec-led.online{background:#4caf50}.spec-led.pending{background:#e2b93a}.spec-device-facts{display:grid;grid-template-columns:1fr 1fr;gap:15px;background:#f5f8f2;padding:18px;border-radius:10px}.spec-device-facts small,.spec-device-facts b{display:block}.spec-device-facts small{font-size:12px;color:#8a9a85;margin-bottom:8px}.spec-house-checks{display:flex;gap:15px;flex-wrap:wrap}.spec-house-checks input{display:inline-block;width:auto;height:auto}.spec-capability-row{display:flex;gap:8px;align-items:end;margin:10px 0}.spec-capability-row label{flex:1;min-width:0}.spec-capability-row button{border:0;background:none;padding:8px}.spec-capability-row input{width:100%}.spec-dialog details>summary{color:#2e5227;cursor:pointer}@media(max-width:700px){.spec-device-summary{grid-template-columns:1fr 1fr}.spec-device-bases{grid-template-columns:1fr}.spec-capability-row{flex-wrap:wrap}.spec-capability-row label{flex-basis:40%}}
.spec-workshops .qh-wc-card{padding:18px;overflow:hidden}.spec-workshops .qh-wc-card h3{font-size:16px;margin:0 0 10px}.spec-workshops .qh-wc-row{min-height:34px;font-size:14px;border:0}.spec-workshops .qh-wc-more{font-size:14px;margin:13px auto 0}.spec-page .qh-wc-switch{width:40px;height:22px;padding:2px;background:#cdd6c9}.spec-page .qh-wc-switch i{height:18px;width:18px}.spec-page .qh-wc-switch.is-on{background:#4caf50}.spec-page .qh-wc-switch.is-on i{transform:translateX(18px)}.spec-page .qh-wc-switch.is-unknown{background:repeating-linear-gradient(135deg,#e0e6dd,#e0e6dd 4px,#cdd6c9 4px,#cdd6c9 6px)}.spec-page .qh-wc-switch:disabled{opacity:1}.qh-cycle-editor [data-period]{display:flex;gap:3px;align-items:center;min-width:220px;font-size:11px;margin:4px 0}.qh-cycle-editor [data-period] input{min-width:0;margin:0;padding:3px;font-size:11px}.qh-cycle-editor [data-period-key=day]{width:38px}.qh-cycle-editor [data-period-key=start],.qh-cycle-editor [data-period-key=end]{width:77px}.qh-cycle-editor [data-period] button{border:0;background:none}.mobile-tabbar{grid-template-columns:repeat(5,minmax(0,1fr))}
.spec-rule-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:20px}.spec-status-tabs{display:flex;gap:12px;margin:25px 0;overflow:auto}.spec-status-tabs button{white-space:nowrap;border:1px solid #eaf0e4;background:#fff;padding:10px 18px;border-radius:9px;color:#5a6b55}.spec-status-tabs button.active{background:#2f6b3a;color:#fff}.spec-status-tabs b{margin-left:9px}.spec-approval{border:0;background:transparent;padding:5px;cursor:pointer}.spec-approval.approve{color:#2f6b3a}.spec-approval.reject{color:#a8322e}.spec-approval.escalate{color:#36479b}
.spec-finance-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.spec-finance-summary article{height:132px;border:1px solid #e8efe2;border-radius:16px;background:#fcfdfa;padding:20px}.spec-finance-summary strong{display:block;font-size:28px;color:#2e5227;margin:10px 0}.spec-finance-summary small{color:#8a9a85}.spec-finance-overview{display:grid;grid-template-columns:1.5fr 1fr;gap:24px;margin-top:26px}.spec-finance-overview h2{margin:0}.spec-finance-overview h3{font-size:14px;color:#5a6b55}.spec-bars{display:flex;justify-content:space-around;align-items:end;height:235px;gap:12px}.spec-bars>div{flex:1;text-align:center;color:#8a9a85;font-size:12px}.spec-bars>div>div{height:200px;display:flex;justify-content:center;align-items:end;gap:7px;padding-bottom:10px}.spec-bars i{display:inline-block;width:26px;border-radius:5px 5px 0 0}.spec-bars .income,.spec-chart-legend .income{background:#69b75b}.spec-bars .expense,.spec-chart-legend .expense{background:#a8ca86}.spec-chart-legend{text-align:center;margin-top:20px;font-size:12px;color:#5a6b55}.spec-chart-legend i{display:inline-block;width:10px;height:10px;border-radius:3px}.spec-composition{display:grid;grid-template-columns:1fr auto;font-size:13px;color:#5a6b55;margin:15px 0}.spec-composition>div{grid-column:1/-1;background:#edf5e4;height:6px;border-radius:5px;margin-top:8px}.spec-composition i{display:block;height:100%;background:#4caf50;border-radius:5px}.spec-exceeded{background:#fdf3f3;border-left:3px solid #c0392b}.spec-finance-detail{background:#fdf3f3;color:#c0392b;border-radius:8px;padding:15px}.spec-finance-detail b{float:right}@media(max-width:700px){.spec-finance-summary{gap:10px}.spec-finance-summary article{padding:13px;height:115px}.spec-finance-summary strong{font-size:19px}.spec-finance-summary small{font-size:11px}.spec-finance-overview{grid-template-columns:1fr}.spec-bars{gap:5px}.spec-bars i{width:18px}}
/* Batch P1-P5 */
.batch-status{display:inline-block;padding:4px 12px;border-radius:999px;font-size:13px;font-weight:700}.batch-status.growing{background:#edf5e4;color:#39843b}.batch-status.harvested{background:#eef0ee;color:#687068}.batch-harvest-time{margin-left:12px;color:#71806f;font-size:14px}.batch-detail-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.batch-detail-head{display:flex;justify-content:space-between;gap:32px;align-items:flex-start;padding:24px;background:#fcfdfa;border:1px solid #e8efe2;border-radius:16px}.batch-detail-head h1{margin:0 0 12px}.batch-detail-head dl{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:18px;margin:0}.batch-detail-head dt{font-size:12px;color:#71806f}.batch-detail-head dd{margin:5px 0 0;font-weight:700}.batch-detail-grid{display:grid;grid-template-columns:360px minmax(0,1fr);gap:24px;margin-top:24px}.batch-card{background:#fcfdfa;border:1px solid #e8efe2;border-radius:16px;padding:22px}.batch-card h2,.batch-harvest-summary h2{margin:0 0 18px;font-size:18px}.batch-stage{display:flex;gap:12px;align-items:center;min-height:58px;border-left:2px solid #dce8d5;padding-left:16px;color:#9aa39a}.batch-stage i{margin-left:-26px;background:#fff;color:#9aa39a}.batch-stage.done,.batch-stage.current{color:#315d36}.batch-stage.done i,.batch-stage.current i{color:#4caf50}.batch-current-banner{background:#edf5e4;color:#39843b;padding:20px;border-radius:12px;font-size:20px;font-weight:700}.batch-current-banner small{font-size:13px;font-weight:400}.batch-mini-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px}.batch-mini-grid div{background:#f5f8f3;border-radius:10px;padding:14px;font-size:13px}.batch-mini-grid strong{display:block;margin-top:8px;font-size:17px}.batch-harvest-summary,.batch-harvest-summary .table-scroll{margin-top:24px}.batch-green-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.batch-green-cards article{background:linear-gradient(135deg,#edf8e8,#dff0d8);border-radius:14px;padding:22px;color:#3d7040}.batch-green-cards strong{display:block;margin-top:10px;font-size:22px}.batch-history-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-top:24px}.batch-day-card{background:#fcfdfa;border:1px solid #e8efe2;border-radius:14px;padding:18px}.batch-day-card h2{margin:0 0 12px;font-size:16px}.batch-day-card div{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid #edf1eb}.batch-new-dialog{width:520px}.batch-harvest-dialog{width:440px;max-width:calc(100vw - 24px);text-align:center}.batch-checking{padding:30px}.batch-checking .spinner{margin:0 auto 16px}.batch-checking button{margin:8px}.batch-checking .error{min-height:22px;color:#b62e2e}.batch-list-table th,.batch-list-table td{white-space:nowrap}
@media(max-width:900px){.batch-detail-head{display:block}.batch-detail-head dl{grid-template-columns:repeat(2,1fr);margin-top:20px}.batch-detail-grid{grid-template-columns:1fr}.batch-mini-grid{grid-template-columns:repeat(2,1fr)}.batch-history-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.batch-detail-head,.batch-card{padding:16px}.batch-detail-top{align-items:flex-start}.batch-green-cards,.batch-history-grid{grid-template-columns:1fr}.batch-new-dialog{width:calc(100vw - 24px)}.batch-list-table th,.batch-list-table td{white-space:normal}.batch-detail-head dl{grid-template-columns:1fr 1fr}}
.qh-cycle-page{max-width:1372px;margin:0 auto}.qh-cycle-crumb{display:flex;gap:16px;align-items:center;color:#738172;font-size:14px;margin-bottom:18px}.qh-cycle-page .spec-filter{margin:16px 0}.qh-cycle-page .spec-filter label{display:flex;gap:10px;align-items:center;max-width:560px}.qh-cycle-page .spec-filter input{flex:1}.qh-cycle-list td:last-child{white-space:nowrap}.qh-cycle-list td:last-child .spec-link{margin-right:12px}.qh-cycle-view-dialog,.qh-cycle-edit-dialog{width:min(1100px,calc(100vw - 28px));max-height:90vh;overflow:auto;border:1px solid #dce5d7;border-radius:16px;padding:24px;background:#fff;color:#263c29}.qh-cycle-view-dialog header,.qh-cycle-edit-dialog header{display:flex;justify-content:space-between;align-items:start;gap:18px;margin-bottom:16px}.qh-cycle-view-dialog header h2,.qh-cycle-edit-dialog header h2{margin:0}.qh-cycle-view-dialog header button,.qh-cycle-edit-dialog header button{border:0;background:none;font-size:28px;cursor:pointer}.qh-cycle-view-body{overflow:auto}.qh-cycle-edit-dialog form{margin:0}.qh-cycle-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.qh-cycle-form label{display:flex;flex-direction:column;gap:6px;color:#536351;font-size:13px}.qh-cycle-form label.wide,.qh-cycle-form .wide{grid-column:1/-1}.qh-cycle-form input,.qh-cycle-form textarea,.qh-cycle-form select{border:1px solid #d2ddcd;border-radius:7px;padding:10px;background:#fff;color:#263c29}.qh-cycle-form textarea{min-height:80px}.qh-cycle-edit-dialog footer,.qh-cycle-view-dialog footer{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.qh-cycle-edit-dialog .qh-cycle-editor{margin-top:4px}.qh-cycle-edit-dialog .qh-cycle-editor h3{margin-top:0}@media(max-width:700px){.qh-cycle-crumb{flex-wrap:wrap}.qh-cycle-form{grid-template-columns:1fr}.qh-cycle-form label.wide,.qh-cycle-form .wide{grid-column:auto}.qh-cycle-page .spec-filter label{display:block}.qh-cycle-page .spec-filter input{width:100%;margin-top:6px}.qh-cycle-list{min-width:860px}}

/* Production cycle reference screens 26–29. */
.qh-cycle-page .spec-heading{align-items:center}.qh-cycle-page .spec-heading h1{margin:0}.qh-cycle-page .spec-filter label{width:100%;max-width:700px}.qh-cycle-page .spec-filter input{min-width:0}.qh-cycle-page .qh-cycle-chip{display:inline-flex;margin:2px 4px 2px 0;padding:4px 9px;border-radius:6px;background:#edf6e8;color:#466c3f;font-size:12px;white-space:nowrap}.qh-cycle-page .qh-cycle-muted{color:#98a196}.qh-cycle-page.is-editing{max-width:1372px}.qh-cycle-page .qh-cycle-hint{margin:0 0 12px;color:#8b9688;text-align:right;font-size:12px}.qh-cycle-page .qh-cycle-form-page{margin:0}.qh-cycle-page .qh-cycle-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:16px 18px;margin-bottom:14px;border-radius:12px;background:#fff}.qh-cycle-page .qh-cycle-fields label{display:flex;flex-direction:column;gap:7px;color:#536351;font-size:13px}.qh-cycle-page .qh-cycle-fields .wide{grid-column:1/-1}.qh-cycle-page .qh-cycle-fields input,.qh-cycle-page .qh-cycle-fields select,.qh-cycle-page .qh-cycle-fields textarea{width:100%;min-width:0;border:1px solid #d2ddcd;border-radius:8px;padding:10px;background:#fff;color:#263c29}.qh-cycle-page .qh-cycle-fields textarea{min-height:64px}.qh-cycle-page .qh-cycle-editor{padding:18px;border-radius:12px;background:#fff}.qh-cycle-page .qh-cycle-form-page footer{position:sticky;bottom:0;display:flex;justify-content:flex-end;gap:12px;padding:14px 0;background:#f7faf5}.qh-cycle-page.qh-cycle-view-dialog{width:min(1304px,calc(100vw - 32px));padding:26px 30px 20px;border:0;border-radius:18px;box-shadow:0 22px 70px #1b332b35}.qh-cycle-page.qh-cycle-view-dialog::backdrop{background:#243a2e52;backdrop-filter:blur(3px)}.qh-cycle-page.qh-cycle-view-dialog header{padding-bottom:12px;border-bottom:1px solid #e7eee3}.qh-cycle-page.qh-cycle-view-dialog header p{margin:8px 0 0;color:#879283;font-size:13px}.qh-cycle-page.qh-cycle-view-dialog .qh-cycle-view-body{max-height:70vh;padding:10px 4px}.qh-cycle-page.qh-cycle-view-dialog footer{position:sticky;bottom:-20px;padding:12px 0 0;background:#fff}
@media(max-width:700px){
 .qh-cycle-page{padding:12px}.qh-cycle-page .qh-cycle-crumb{gap:8px;margin-bottom:10px;font-size:12px}.qh-cycle-page .spec-heading{display:block}.qh-cycle-page .spec-heading .btn{width:100%;margin-top:12px}.qh-cycle-page .spec-filter{margin:12px 0}.qh-cycle-page .spec-filter label{display:block}.qh-cycle-page .spec-filter input{width:100%;margin-top:6px}.qh-cycle-page .qh-cycle-list{min-width:0;width:100%;border-collapse:separate;border-spacing:0 10px}.qh-cycle-page .qh-cycle-list thead{display:none}.qh-cycle-page .qh-cycle-list tbody{display:grid;gap:10px}.qh-cycle-page .qh-cycle-list tbody tr{display:grid;grid-template-columns:1fr 1fr;gap:7px 12px;padding:12px;border:1px solid #e5ecdf;border-radius:12px;background:#fff;box-shadow:0 2px 9px #21351a0a}.qh-cycle-page .qh-cycle-list tbody tr td{display:block;min-width:0;padding:4px 0;border:0;white-space:normal;overflow-wrap:anywhere;font-size:13px}.qh-cycle-page .qh-cycle-list tbody tr td::before{display:block;margin-bottom:3px;color:#8a9585;font-size:11px;font-weight:500;content:attr(data-label)}.qh-cycle-page .qh-cycle-list tbody tr td:nth-child(5),.qh-cycle-page .qh-cycle-list tbody tr td:nth-child(6),.qh-cycle-page .qh-cycle-list tbody tr td:nth-child(7){grid-column:1/-1}.qh-cycle-page .qh-cycle-list tbody tr td:last-child{padding-top:4px}.qh-cycle-page .qh-cycle-fields{grid-template-columns:1fr;padding:14px}.qh-cycle-page .qh-cycle-fields .wide{grid-column:auto}.qh-cycle-page .qh-cycle-hint{text-align:left;line-height:1.6}.qh-cycle-page .qh-cycle-editor{padding:12px}.qh-cycle-page .qh-cycle-editor .table-scroll{overflow:visible}.qh-cycle-page .qh-cycle-editor table{min-width:0;width:100%;border:0}.qh-cycle-page .qh-cycle-editor thead{display:none}.qh-cycle-page .qh-cycle-editor tbody{display:grid;gap:12px}.qh-cycle-page .qh-cycle-editor tbody tr{display:grid;gap:8px;padding:12px;border:1px solid #e4ecdf;border-radius:12px;background:#fff}.qh-cycle-page .qh-cycle-editor tbody td{display:grid;grid-template-columns:82px minmax(0,1fr);gap:8px;align-items:start;padding:3px 0;border:0;font-size:12px}.qh-cycle-page .qh-cycle-editor tbody td::before{color:#788475;font-size:12px;content:attr(data-label)}.qh-cycle-page.qh-cycle-view-dialog{width:calc(100vw - 24px);max-width:none;max-height:88vh;padding:16px;border-radius:16px}.qh-cycle-page.qh-cycle-view-dialog header{gap:8px}.qh-cycle-page.qh-cycle-view-dialog header p{line-height:1.6}.qh-cycle-page.qh-cycle-view-dialog .qh-cycle-view-body{max-height:calc(88vh - 140px);padding:8px 0}.qh-cycle-page .qh-cycle-view-body .table-scroll{overflow:visible}.qh-cycle-page .qh-cycle-view-body table{min-width:0;width:100%}.qh-cycle-page .qh-cycle-view-body thead{display:none}.qh-cycle-page .qh-cycle-view-body tbody{display:grid;gap:10px}.qh-cycle-page .qh-cycle-view-body tbody tr{display:grid;grid-template-columns:1fr 1fr;gap:7px 10px;padding:12px;border:1px solid #e5ecdf;border-radius:12px;background:#fff}.qh-cycle-page .qh-cycle-view-body tbody td,.qh-cycle-page .qh-cycle-view-body tbody th{display:block;min-width:0;padding:3px;border:0;font-size:12px;overflow-wrap:anywhere}.qh-cycle-page .qh-cycle-view-body tbody th:first-child{grid-column:1/-1}.qh-cycle-page .qh-cycle-view-body tbody td:nth-child(n+5){grid-column:1/-1}.qh-cycle-page .qh-cycle-form-page footer{padding:10px 0;gap:8px}.qh-cycle-page .qh-cycle-form-page footer button{flex:1}
}

@media(max-width:700px){.qh-cycle-page .qh-cycle-view-body td[data-label]::before{display:block;content:attr(data-label);color:#879283;font-size:11px;margin-bottom:4px}.qh-cycle-page .qh-cycle-editor [data-period]{min-width:0;flex-wrap:wrap}.qh-cycle-page .qh-cycle-editor [data-period-key=start],.qh-cycle-page .qh-cycle-editor [data-period-key=end]{width:80px}}

/* Workshop reference 7/8: switches show gateway facts, all controls read-only. */
.spec-control-card h3{text-align:center;border-bottom:1px solid #eef2ea;padding-bottom:12px;margin:0 0 12px;font-size:15px;color:#1a1a1a}.spec-control-card{min-height:240px}.spec-control-row{min-height:28px;font-size:13px}.spec-switch-value{display:flex;gap:8px;align-items:center}.spec-switch-value small{color:#5a6b55}.spec-switch-value .qh-wc-switch:disabled{opacity:1;cursor:default}.spec-intervention>span:last-child{flex:1;border-bottom:1px solid #edf0e9;min-height:20px;overflow-wrap:anywhere}.spec-workshop-actions{display:flex;justify-content:flex-end;margin:12px 0}.spec-control-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.spec-metric-grid>div{background:#f7faf5;border-radius:8px;padding:12px}.spec-growing-grid{gap:12px}.spec-growing-grid>div{background:#f1f7eb;border-radius:8px;padding:12px}.spec-workshop .spec-history th{background:#f1f7eb}.spec-workshop .spec-history td{background:#fcfdfa}.batch-list-page .spec-filter input{width:min(520px,100%);min-width:0}
@media(max-width:700px){.spec-control-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.spec-control-card{padding:12px;min-height:230px}.spec-control-row{font-size:11px;gap:4px}.spec-control-card h3{font-size:14px}.spec-control-row .qh-wc-switch{width:36px;height:21px;min-width:36px}.spec-switch-value small{font-size:10px}.spec-switch-value{gap:3px}.spec-growing-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.spec-metric-grid>div{padding:7px}}

.qh-cycle-page .qh-cycle-fields{grid-template-columns:1fr 2fr}.qh-cycle-page .qh-cycle-fields .wide{grid-column:auto}.qh-cycle-page .qh-cycle-fields label{display:block}.qh-cycle-page .qh-cycle-fields input,.qh-cycle-page .qh-cycle-fields textarea{display:block;margin-top:8px}.qh-cycle-page .qh-cycle-fields textarea{min-height:42px;height:42px}.qh-cycle-page.is-editing .qh-cycle-editor>h3,.qh-cycle-page.is-editing .qh-cycle-editor>p{display:none}.qh-cycle-page .qh-cycle-form-page footer{position:static}.qh-cycle-page .qh-cycle-editor td>input{width:100%;min-width:0}.qh-cycle-page .qh-cycle-editor [data-stage-remove]{color:#b15e50}
@media(max-width:700px){.qh-cycle-page .qh-cycle-fields{grid-template-columns:1fr}.qh-cycle-page .qh-cycle-editor tbody tr{grid-template-columns:repeat(3,minmax(0,1fr));position:relative}.qh-cycle-page .qh-cycle-editor tbody td{display:block;min-width:0}.qh-cycle-page .qh-cycle-editor tbody td:first-child{grid-column:1/-1;padding-right:50px}.qh-cycle-page .qh-cycle-editor tbody td:first-child::before{display:none}.qh-cycle-page .qh-cycle-editor tbody td:nth-child(n+5){grid-column:1/-1}.qh-cycle-page .qh-cycle-editor tbody td:last-child{position:absolute;right:12px;top:12px}.qh-cycle-page .qh-cycle-editor tbody td:last-child::before{display:none}.qh-cycle-page .qh-cycle-editor tbody td:nth-child(2),.qh-cycle-page .qh-cycle-editor tbody td:nth-child(3),.qh-cycle-page .qh-cycle-editor tbody td:nth-child(4){background:#f6f9f2;padding:6px;border-radius:7px}.qh-cycle-page .qh-cycle-editor tbody td::before{display:block;margin-bottom:5px}.qh-cycle-page .qh-cycle-editor [data-period]{display:flex;flex-wrap:nowrap;width:100%;gap:3px}.qh-cycle-page .qh-cycle-editor [data-period-key=day]{width:36px}.qh-cycle-page .qh-cycle-editor [data-period-key=start],.qh-cycle-page .qh-cycle-editor [data-period-key=end]{width:84px}.qh-cycle-page .qh-cycle-view-body tbody tr{grid-template-columns:repeat(3,minmax(0,1fr))}.qh-cycle-page .qh-cycle-view-body tbody tr th{background:none;color:#385a32}.qh-cycle-page .qh-cycle-view-body tbody td:nth-child(2),.qh-cycle-page .qh-cycle-view-body tbody td:nth-child(3),.qh-cycle-page .qh-cycle-view-body tbody td:nth-child(4){background:#f6f9f2;border-radius:7px;padding:6px}.qh-cycle-page.qh-cycle-view-dialog footer button{width:100%}}
@media(max-width:700px){.qh-cycle-page .qh-cycle-list tbody tr{position:relative;grid-template-columns:1fr}.qh-cycle-page .qh-cycle-list tbody tr td:first-child{display:none}.qh-cycle-page .qh-cycle-list tbody tr td:nth-child(2){font-weight:700;color:#3e6135;padding-right:70px}.qh-cycle-page .qh-cycle-list tbody tr td:nth-child(2)::before,.qh-cycle-page .qh-cycle-list tbody tr td:last-child::before{display:none}.qh-cycle-page .qh-cycle-list tbody tr td:nth-child(3),.qh-cycle-page .qh-cycle-list tbody tr td:nth-child(4),.qh-cycle-page .qh-cycle-list tbody tr td:nth-child(6){display:flex;justify-content:space-between}.qh-cycle-page .qh-cycle-list tbody tr td:last-child{position:absolute;right:12px;top:12px}.qh-cycle-page .qh-cycle-list tbody tr td:nth-child(5){order:1}}

.batch-complete-cycle{margin-top:24px}.batch-cycle-horizontal{display:flex;justify-content:space-between}.batch-cycle-horizontal .batch-stage{border-left:0;border-top:2px solid #4caf50;flex:1;padding:16px}.batch-green-cards small{display:block;margin-top:10px}@media(max-width:700px){.batch-cycle-horizontal{flex-wrap:wrap}.batch-cycle-horizontal .batch-stage{flex-basis:50%}.batch-list-table thead{display:none}.batch-list-table tbody{display:grid;gap:12px}.batch-list-table tr{display:grid;grid-template-columns:1fr 1fr;border:1px solid #e8efe2;border-radius:12px;padding:12px}.batch-list-table td{border:0;padding:6px}.batch-list-table td:before{content:attr(data-label);display:block;color:#8a9a85;font-size:11px}.batch-list-table td:last-child{grid-column:1/-1}.batch-list-page .table-scroll{overflow:visible}}

.batch-day-card>div{flex-wrap:wrap;gap:6px}.batch-day-card small{width:100%;color:#71806f;font-size:12px}.batch-history-event{display:block}.batch-history-asof{color:#71806f;font-size:13px}.batch-cycle-horizontal{display:flex;justify-content:space-between;gap:20px}.batch-cycle-horizontal .batch-stage{flex:1;border-left:0;border-top:2px solid #72ad60;padding:12px 0}.batch-cycle-horizontal .batch-stage i{margin:0}.batch-current+.batch-card{margin-top:24px}@media(max-width:600px){.batch-cycle-horizontal{flex-wrap:wrap}.batch-cycle-horizontal .batch-stage{min-width:40%}}
