:root{--bg0:245 245 247;--card:255 255 255;--text:29 29 31;--muted:110 110 115;--line:210 210 215;--brand:0 113 227;--brand-hover:0 102 204;--brand-soft:232 244 255;--ok:52 199 89;--warn:255 159 10;--bad:255 69 58;--radius:10px}.app-shell{background:rgb(var(--bg0));min-height:100vh}.top-nav{background:rgba(var(--card), .85);-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);border-bottom:1px solid rgb(var(--line));z-index:100;position:sticky;top:0}.top-nav-inner{align-items:center;gap:.25rem;max-width:1440px;height:3.25rem;margin:0 auto;padding:0 1.5rem;display:flex}.top-nav .logo{color:inherit;flex-shrink:0;align-items:center;gap:.5rem;margin-right:1.5rem;text-decoration:none;display:flex}.top-nav .logo-icon{background:rgb(var(--brand));color:#fff;border-radius:.4375rem;justify-content:center;align-items:center;width:1.75rem;height:1.75rem;font-size:.75rem;font-weight:700;display:flex}.top-nav .logo-text{letter-spacing:-.01em;font-size:1.125rem;font-weight:600}.top-nav .nav-links{flex:1;align-items:center;gap:2px;display:flex;overflow-x:auto}.top-nav .nav-link{color:rgb(var(--muted));white-space:nowrap;border-radius:.625rem;align-items:center;padding:.5rem 1rem;font-size:.875rem;font-weight:500;text-decoration:none;transition:all .15s;display:flex}.top-nav .nav-link:hover{color:rgb(var(--text));background:#0000000a}.top-nav .nav-link.active{color:rgb(var(--brand));background:rgb(var(--brand-soft));box-shadow:inset 0 0 0 1px rgba(var(--brand), .12);font-weight:600}.top-nav .nav-right{flex-shrink:0;align-items:center;gap:.5rem;margin-left:1rem;display:flex}.badge{border-radius:999px;align-items:center;padding:.125rem .5rem;font-size:.6875rem;font-weight:600;display:inline-flex}.badge-info{color:rgb(var(--brand));background:rgba(var(--brand), .12)}.badge-muted{color:rgb(var(--muted));background:rgba(var(--line), .5)}.badge-ok{color:rgb(var(--ok));background:rgba(var(--ok), .12)}.badge-warn{color:rgb(var(--warn));background:rgba(var(--warn), .15)}.nav-stack{z-index:90;background:rgba(var(--card), .92);-webkit-backdrop-filter:saturate(180%)blur(16px);backdrop-filter:saturate(180%)blur(16px);border-bottom:1px solid rgba(var(--line), .65);position:sticky;top:3.25rem}.module-bar{background:rgb(var(--bg0));border-bottom:1px solid rgb(var(--line) / .65)}.module-bar-inner,.sub-nav-inner{flex-wrap:wrap;align-items:center;gap:.375rem;max-width:1440px;min-height:2.75rem;margin:0 auto;padding:.625rem 1.5rem;display:flex}.module-link,.sub-link{min-height:2rem;color:rgb(var(--muted));white-space:nowrap;border:1px solid #0000;border-radius:.5rem;align-items:center;padding:.375rem .875rem;font-size:.8125rem;font-weight:500;text-decoration:none;transition:color .15s,background .15s;display:inline-flex}.module-link:hover,.sub-link:hover{color:rgb(var(--text));background:#0000000a}.module-link.active,.sub-link.active{color:rgb(var(--brand));background:rgb(var(--brand-soft));border-color:rgba(var(--brand), .15);font-weight:600}.sub-nav{border-bottom:1px solid rgb(var(--line) / .5)}.sub-nav .sub-link{border-bottom:2px solid #0000;border-radius:.375rem .375rem 0 0;margin-bottom:-1px}.module-link--planned:not(.active),.sub-link--planned:not(.active){opacity:.72}.sub-nav .sub-link.active{border-color:transparent transparent rgb(var(--brand)) transparent;background:0 0}.app-main{max-width:1440px;margin:0 auto;padding:1.25rem 1.5rem 2rem}.acq-chain{background:rgba(var(--brand), .04);border:1px solid rgba(var(--brand), .15);border-radius:8px;flex-wrap:wrap;align-items:center;gap:.35rem .5rem;margin-bottom:1rem;padding:.625rem .875rem;font-size:.75rem;display:flex}.acq-chain-label{color:rgb(var(--muted));font-weight:600}.acq-chain a{color:rgb(var(--brand));border-radius:4px;padding:.125rem .375rem;text-decoration:none}.acq-chain a:hover{background:rgba(var(--brand), .08);text-decoration:underline}.acq-chain a.is-current{color:rgb(var(--text));background:rgb(var(--card));border:1px solid rgb(var(--line));font-weight:700}.acq-chain-sep{color:rgb(var(--muted))}.acq-chain-node{align-items:center;gap:.35rem;display:inline-flex}.acq-chain-doc{color:rgb(var(--muted));margin-left:auto;font-size:.6875rem}.page-header{margin-bottom:1rem}.breadcrumb{color:rgb(var(--muted));margin-bottom:.35rem;font-size:.8125rem}.page-title{flex-wrap:wrap;align-items:center;gap:.5rem;margin:0;font-size:1.375rem;font-weight:700;display:flex}.page-desc{color:rgb(var(--muted));margin:.35rem 0 0;font-size:.8125rem}.proto-badge{color:rgb(var(--brand));background:rgba(var(--brand), .1);border-radius:4px;padding:.125rem .5rem;font-size:.6875rem;font-weight:600;display:inline-block}.portal-header{margin-bottom:1rem}.portal-header-inner{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;display:flex}.portal-title{margin:.5rem 0 .25rem;font-size:1.5rem}.portal-desc{color:rgb(var(--muted));margin:0;font-size:.875rem}.portal-actions{gap:.75rem;display:flex}.phase-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.75rem;display:grid}.phase-card{border:1px solid rgb(var(--line));border-radius:8px;flex-direction:column;gap:.25rem;padding:.75rem;font-size:.8125rem;display:flex}.phase-card.is-current{border-color:rgba(var(--brand), .35);background:rgba(var(--brand), .05)}.phase-card.is-done{border-color:rgba(var(--ok), .25);background:rgba(var(--ok), .04)}.portal-badges{flex-wrap:wrap;gap:.35rem;display:flex}.portal-highlight{background:rgb(var(--brand-soft));border-color:rgba(var(--brand), .2)}.portal-highlight-lead{margin:0 0 .75rem}.portal-flow-list{flex-direction:column;gap:.65rem;margin:0 0 1rem;padding:0;list-style:none;display:flex}.portal-flow-list li{align-items:flex-start;gap:.75rem;font-size:.875rem;display:flex}.portal-flow-list li strong{margin-bottom:.1rem;display:block}.portal-flow-list li .hint{font-size:.8125rem;display:block}.portal-flow-num{background:rgb(var(--brand));color:#fff;border-radius:50%;flex-shrink:0;place-items:center;width:1.5rem;height:1.5rem;margin-top:.1rem;font-size:.75rem;font-weight:700;display:grid}.portal-highlight-actions{flex-wrap:wrap;gap:.5rem;display:flex}.phase-num{color:rgb(var(--muted));font-size:.75rem}.phase-desc{color:rgb(var(--muted))}.module-tile-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.75rem;margin-bottom:.75rem;display:grid}.module-tile{border:1px solid rgb(var(--line));background:rgb(var(--card));color:inherit;border-radius:8px;flex-direction:column;gap:.25rem;padding:.85rem;text-decoration:none;transition:border-color .15s,box-shadow .15s;display:flex}.module-tile:hover{border-color:rgba(var(--brand), .35);box-shadow:0 2px 8px #0000000f}.module-tile-code{color:rgb(var(--brand));font-size:.75rem;font-weight:700}.module-tile-title{font-size:.875rem;font-weight:600}.module-tile-status{color:rgb(var(--muted));font-size:.75rem}.placeholder-panel h2{margin-top:0}.placeholder-list{margin:.75rem 0;padding-left:1.25rem;font-size:.875rem}.page-tabs{border-bottom:1px solid rgb(var(--line));flex-wrap:wrap;gap:.25rem;margin-bottom:1rem;display:flex}.page-tab{color:rgb(var(--muted));cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:.625rem 1rem;font-size:.875rem;font-weight:500}.page-tab:hover{color:rgb(var(--text))}.page-tab.active{color:rgb(var(--brand));border-bottom-color:rgb(var(--brand))}.kpi-row{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem;margin-bottom:1rem;display:grid}.kpi-card{background:rgb(var(--card));border:1px solid rgb(var(--line));border-radius:8px;padding:.75rem 1rem}.kpi-label{color:rgb(var(--muted));font-size:.75rem}.kpi-value{margin-top:.25rem;font-size:1.25rem;font-weight:700}.kpi-value.text-sm{font-size:.875rem;font-weight:600}.card-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.card-header h2{margin:0;font-size:1rem}.card-header .actions{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.pagination{border-top:1px solid rgb(var(--line));flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-top:.75rem;padding-top:.75rem;display:flex}.pagination-info{color:rgb(var(--muted));font-size:.8125rem}.pagination-actions{align-items:center;gap:.35rem;display:flex}.pagination-size select{margin-left:.35rem}.drawer-backdrop{z-index:1000;background:#0f172a59;position:fixed;inset:0}.detail-drawer{background:rgb(var(--card));flex-direction:column;width:min(480px,100vw);height:100vh;display:flex;position:fixed;top:0;right:0;box-shadow:-4px 0 24px #0000001f}.detail-drawer.detail-drawer-wide{width:min(560px,100vw)}.drawer-lead{margin:0 0 .25rem;line-height:1.5}.drawer-actions{border-top:1px solid rgb(var(--line));flex-wrap:wrap;gap:.5rem;margin-top:.5rem;padding-top:1rem;display:flex}.drawer-head{border-bottom:1px solid rgb(var(--line));justify-content:space-between;align-items:center;padding:1rem;display:flex}.drawer-head h2{margin:0;font-size:1rem}.drawer-body{padding:1rem;overflow-y:auto}.drawer-section+.drawer-section{margin-top:1.25rem}.drawer-section h3{margin:0 0 .5rem;font-size:.875rem}.detail-dl{grid-template-columns:7rem 1fr;gap:.35rem .75rem;margin:0;font-size:.875rem;display:grid}.detail-dl dt{color:rgb(var(--muted))}.detail-dl dd{margin:0}.data-table.compact th,.data-table.compact td{padding:.35rem .5rem;font-size:.8125rem}.static-block h3{margin:0 0 .5rem;font-size:.9375rem}.upload-label{cursor:pointer;margin:0}.table-wrap{overflow-x:auto}.col-muted{color:rgb(var(--muted))}.row-actions{white-space:nowrap;gap:.35rem;display:flex}.btn-xs{padding:.2rem .5rem;font-size:.75rem}.region-editor{background:#f8fafc;border:1px dashed #cbd5e1;border-radius:8px;flex-direction:column;gap:.75rem;padding:.75rem;display:flex}.region-editor-head{flex-wrap:wrap;align-items:baseline;gap:.5rem;display:flex}.region-row{background:#fff;border:1px solid #e2e8f0;border-radius:6px;padding:.65rem}.region-row-actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.inline-check{align-items:center;gap:.35rem;font-size:.875rem;display:inline-flex}.col-wrap{white-space:normal;max-width:14rem;line-height:1.35}.lx2-badge{border-radius:999px;padding:.1rem .45rem;font-size:.6875rem;font-weight:600;display:inline-block}.lx2-1{color:rgb(var(--ok));background:rgba(var(--ok), .12)}.lx2-0{color:rgb(var(--muted));background:rgba(var(--line), .4)}.lx2-2{color:rgb(var(--warn));background:rgba(var(--warn), .15)}.c9-panel .panel.lead{margin-bottom:.75rem}.acq-context{margin-bottom:1rem}.acq-context summary{cursor:pointer;padding:.25rem 0;font-weight:600}.acq-context-body{margin-top:.5rem}.subject-tabs{margin-bottom:.75rem}.btn.primary,.btn.btn-xs.primary{background:rgb(var(--brand));border-color:rgb(var(--brand));color:#fff}.farmer-search{position:relative}.farmer-search-input{width:100%;font:inherit;border:1px solid #cbd5e1;border-radius:6px;padding:.45rem .6rem}.farmer-search.invalid .farmer-search-input{border-color:#f87171}.farmer-search-meta{margin-top:.25rem;font-size:.75rem}.farmer-search-dropdown{z-index:20;background:#fff;border:1px solid #cbd5e1;border-radius:8px;max-height:220px;margin:0;padding:.25rem 0;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:auto;box-shadow:0 8px 24px #0f172a1f}.farmer-search-dropdown button{text-align:left;cursor:pointer;width:100%;font:inherit;background:0 0;border:0;flex-direction:column;align-items:flex-start;gap:.1rem;padding:.45rem .65rem;display:flex}.farmer-search-dropdown button:hover,.farmer-search-dropdown button.active{background:#f1f5f9}.farmer-search-name{font-weight:600}.farmer-search-sub{color:rgb(var(--muted));font-size:.75rem}.farmer-search-empty{color:rgb(var(--muted));padding:.55rem .65rem;font-size:.8125rem}.flow-steps{flex-wrap:wrap;align-items:center;gap:.35rem;font-size:.8125rem;display:flex}.flow-step-item{align-items:center;gap:.15rem;display:inline-flex}.flow-arrow{color:rgb(var(--muted));margin:0 .15rem}.flow-dot{border:1px solid rgb(var(--line));width:1.25rem;height:1.25rem;color:rgb(var(--muted));background:rgb(var(--card));border-radius:999px;justify-content:center;align-items:center;font-size:.6875rem;font-weight:600;display:inline-flex}.flow-dot.done{border-color:rgb(var(--ok));background:rgba(var(--ok), .12);color:rgb(var(--ok))}.flow-dot.active{border-color:rgb(var(--brand));background:rgba(var(--brand), .12);color:rgb(var(--brand))}.flow-label{color:rgb(var(--muted));margin-right:.35rem}.flow-dot.active+.flow-label,.flow-dot.done+.flow-label{color:inherit}tr.row-selected td{background:rgba(var(--brand), .06)}.notice.warn{border-color:rgba(var(--warn), .35);background:rgba(var(--warn), .08)}.acq-pending{border:1px dashed rgba(var(--warn), .45);background:rgba(var(--warn), .06);border-radius:8px;margin-bottom:.75rem;padding:.65rem .85rem;font-size:.8125rem;line-height:1.55}.acq-pending strong{color:rgb(var(--warn))}.grain-card-modal-backdrop{z-index:1100;background:#0f172a73;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.grain-card-modal{background:rgb(var(--card));border-radius:10px;width:min(520px,100%);max-height:calc(100vh - 2rem);overflow:auto;box-shadow:0 16px 48px #0000002e}.grain-card-modal-head{border-bottom:1px solid rgb(var(--line));justify-content:space-between;align-items:center;padding:.85rem 1rem;display:flex}.grain-card-modal-head h2{margin:0;font-size:1rem}.grain-card-close{cursor:pointer;color:rgb(var(--muted));background:0 0;border:none;padding:0 .25rem;font-size:1.35rem;line-height:1}.grain-card-print-area{flex-direction:column;gap:1rem;padding:1rem;display:flex}.grain-card-sheet{background:#fff;border:1px solid #cbd5e1;border-radius:4px;padding:1rem 1.1rem 1.1rem}.grain-card-sheet-title{text-align:center;margin-bottom:.85rem;font-size:.9375rem;font-weight:600}.grain-card-front-body{align-items:flex-start;gap:1rem;display:flex}.grain-card-fields{flex:1;min-width:0;margin:0}.grain-card-row{grid-template-columns:5.5rem 1fr;gap:.35rem .5rem;margin-bottom:.45rem;font-size:.875rem;line-height:1.45;display:grid}.grain-card-row dt{color:#334155;margin:0;font-weight:500}.grain-card-row dd{word-break:break-all;margin:0}.grain-card-row-inline{flex-wrap:wrap;grid-template-columns:none;gap:1rem 1.5rem;display:flex}.grain-card-row-inline span{gap:.35rem;font-size:.875rem;display:inline-flex}.grain-card-row-inline dt,.grain-card-row-inline dd{margin:0;display:inline}.grain-card-qr{object-fit:contain;background:#fff;border:1px solid #e2e8f0;border-radius:4px;flex-shrink:0;width:128px;height:128px}.grain-card-modal-foot{flex-direction:column;align-items:center;gap:.75rem;padding:0 1rem 1rem;display:flex}.grain-card-checklist{width:100%;color:rgb(var(--muted));font-size:.8125rem}.grain-card-checklist summary{cursor:pointer;color:rgb(var(--brand));margin-bottom:.35rem}.grain-card-checklist ul{margin:.35rem 0 0;padding-left:1.1rem;line-height:1.55}.grain-card-print-btn{min-width:8rem}@media print{.no-print{display:none!important}.grain-card-modal-backdrop{background:0 0;padding:0;position:static}.grain-card-modal{box-shadow:none;width:100%;max-height:none}.grain-card-print-area{padding:0}}.reward-sheet-preview{margin-top:.25rem}.reward-sheet-head{text-align:center;margin-bottom:.75rem}.reward-sheet-title{margin-bottom:.35rem;font-size:1rem;font-weight:700}.reward-sheet-meta{color:rgb(var(--muted));flex-wrap:wrap;justify-content:center;gap:.75rem 1.25rem;font-size:.75rem;display:flex}.reward-sheet-frozen{color:rgb(var(--ok));font-weight:600}.reward-sheet-scroll{border:1px solid rgb(var(--line));border-radius:8px;max-width:100%;overflow:auto}.reward-sheet-table{min-width:2200px;margin:0;font-size:.6875rem}.reward-sheet-table th,.reward-sheet-table td{white-space:nowrap;vertical-align:middle}.reward-sheet-mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.625rem}.reward-sheet-remark{max-width:10rem;white-space:normal!important}.modal-backdrop{z-index:1200}.modal.sheet-modal{width:min(96vw,1280px);max-height:calc(100vh - 2rem);overflow:auto}.modal-head-row{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.reward-sheet-preview.is-compact .reward-sheet-scroll{max-height:60vh}.login-page{background:linear-gradient(160deg, rgba(var(--primary-rgb,37 99 235), .08), transparent);place-items:center;min-height:calc(100vh - 56px);padding:2rem;display:grid}.login-card{flex-direction:column;gap:.85rem;width:min(420px,100%);display:flex}.login-brand{text-align:center;margin-bottom:.5rem}.login-brand h1{margin:.5rem 0 .25rem;font-size:1.25rem}.login-brand p{color:rgb(var(--muted));margin:0;font-size:.9rem}.login-hint{color:rgb(var(--muted));text-align:center;margin:0;font-size:.8rem}.auth-loading{min-height:40vh;color:rgb(var(--muted));place-items:center;display:grid}.nav-user{flex-direction:column;align-items:flex-end;margin-right:.5rem;font-size:.85rem;line-height:1.3;display:flex}.nav-user small{color:rgb(var(--muted));font-size:.75rem}.nav-link-sm{padding:.25rem .5rem;font-size:.85rem}.nav-logout{font-size:.85rem}.rbac-grid{grid-template-columns:260px 1fr;align-items:start;gap:1rem;display:grid}@media (width<=960px){.rbac-grid{grid-template-columns:1fr}}.rbac-role-items{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.rbac-role-btn{text-align:left;border:1px solid rgb(var(--line));background:rgb(var(--card));border-radius:var(--radius);cursor:pointer;flex-direction:column;gap:.15rem;width:100%;padding:.65rem .75rem;display:flex}.rbac-role-btn.active{border-color:rgb(var(--primary));background:rgba(var(--primary-rgb,37 99 235), .08)}.rbac-role-btn span,.rbac-role-btn small{color:rgb(var(--muted));font-size:.75rem}.rbac-perm-head{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.75rem;display:flex}.rbac-perm-group{border-top:1px solid rgb(var(--line));margin-top:1rem;padding-top:.75rem}.rbac-perm-group h4{margin:0 0 .5rem;font-size:.95rem}.rbac-perm-checks{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.35rem 1rem;display:grid}.rbac-check{cursor:pointer;align-items:flex-start;gap:.45rem;font-size:.875rem;display:flex}.rbac-check small{color:rgb(var(--muted));font-size:.72rem;display:block}.rbac-role-fieldset{border:1px solid rgb(var(--line));border-radius:var(--radius);grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.35rem;padding:.75rem;display:grid}.rbac-user-form{flex-direction:column;gap:.65rem;width:min(480px,92vw);display:flex}.banner{border-radius:var(--radius);margin-bottom:1rem;padding:.65rem 1rem}.banner-ok{color:#166534;background:#22c55e1f}.banner-error{color:#991b1b;background:#ef44441f}.page-header-inline{margin-bottom:1rem}.page-header-inline h1{margin:.25rem 0}.rbac-page-tabs{gap:0;margin-bottom:1.25rem}.rbac-page-tab{border-radius:.5rem .5rem 0 0;flex-direction:column;align-items:flex-start;gap:.15rem;min-width:11rem;padding:.75rem 1.25rem .65rem;transition:color .15s,background .15s,border-color .15s;display:flex}.rbac-page-tab:hover{background:rgba(var(--brand), .04)}.rbac-page-tab.active{background:rgb(var(--card));border-bottom-color:rgb(var(--brand));box-shadow:inset 1px 0 0 rgb(var(--line)), inset -1px 0 0 rgb(var(--line))}.rbac-page-tab-label{font-size:.9375rem;font-weight:600;line-height:1.3}.rbac-page-tab-desc{color:rgb(var(--muted));font-size:.75rem;font-weight:400;line-height:1.35}.rbac-page-tab.active .rbac-page-tab-desc{color:rgba(var(--brand), .85)}.rbac-op-muted{font-size:.8125rem}.stack{flex-direction:column;gap:1rem;display:flex}.panel{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:1rem 1.25rem}.panel h2{margin:0 0 .75rem;font-size:1rem}.panel.lead{background:#e8f1fc;border-color:#bfdbfe;font-size:.9rem}.toolbar{flex-wrap:wrap;align-items:end;gap:.75rem;display:flex}.toolbar label{flex-direction:column;gap:.25rem;font-size:.8125rem;display:flex}input,select{font:inherit;color:inherit;background:#fff;border:1px solid #cbd5e1;border-radius:6px;padding:.45rem .6rem}select{cursor:pointer}.btn{cursor:pointer;font:inherit;color:inherit;background:#fff;border:1px solid #cbd5e1;border-radius:6px;padding:.45rem .85rem;text-decoration:none;display:inline-block}.btn.primary{background:rgb(var(--brand));border-color:rgb(var(--brand));color:#fff}.btn:disabled{opacity:.5;cursor:not-allowed}.actions{gap:.75rem;margin-top:1rem;display:flex}.status,.hint{color:#64748b;font-size:.875rem}.notice{border-radius:6px;padding:.65rem .85rem;font-size:.875rem}.notice.ok{color:#166534;background:#dcfce7}.notice.err{color:#991b1b;background:#fee2e2}.notice.warn{color:#9a3412;background:#fff7ed;border:1px solid #fed7aa}.register-issue-badges{flex-wrap:wrap;gap:.25rem;display:inline-flex}.register-variety-filter{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.data-table tr.row-register-incomplete{background:#fffbeb}.data-table tr.row-register-incomplete.row-selected{background:#fef3c7}.data-table{border-collapse:collapse;width:100%;font-size:.875rem}.data-table th,.data-table td{text-align:left;border-bottom:1px solid #e2e8f0;padding:.5rem .4rem}.data-table th{color:#64748b;font-weight:600}.modal-backdrop{z-index:100;background:#0f172a73;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:10px;width:min(520px,100%);max-height:90vh;padding:1rem 1.15rem;font-size:.875rem;line-height:1.45;overflow:auto}.modal.wide{width:min(720px,100%)}.modal.wide-xl{width:min(1180px,96vw)}.modal-table-scroll{margin-top:.5rem;overflow-x:auto}.modal .pagination{flex-shrink:0;width:100%}.modal .pagination label,.modal .pagination .pagination-size{width:auto;color:rgb(var(--muted));white-space:nowrap;flex-direction:row;align-items:center;gap:.35rem;font-size:.8125rem;font-weight:400}.modal .pagination select{flex:none;width:auto;min-width:3.5rem}.modal .pagination-actions{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.modal-pagination-foot{border-top:1px solid rgb(var(--line));margin-top:.75rem;padding-top:.75rem}.modal-pagination-foot .pagination{border-top:none;margin-top:0;padding-top:0}.modal h2{color:#0f172a;margin:0 0 .65rem;font-size:1.0625rem;font-weight:600;line-height:1.35}.modal>.hint,.modal .hint:first-of-type{margin:-.15rem 0 .75rem;font-size:.8125rem;line-height:1.45}.note{background:#fff7ed;border:1px solid #fed7aa;border-radius:6px;margin-bottom:.75rem;padding:.75rem;font-size:.8125rem}.form-grid{align-items:start;gap:.65rem;display:grid}.form-grid.two-col{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem .85rem}.form-grid .full,.form-grid label.full{grid-column:1/-1;width:100%}.modal label.full{width:100%}.modal label,.form-grid label{color:#475569;flex-direction:column;align-items:stretch;gap:.28rem;min-width:0;margin:0;font-size:.75rem;font-weight:500;line-height:1.35;display:flex}.form-grid .inline-check{color:rgb(var(--text));flex-direction:row;align-items:center;gap:.4rem;min-height:32px;font-size:.8125rem;font-weight:400}.modal label:has(input[type=checkbox]){color:rgb(var(--text));flex-direction:row;align-items:center;gap:.4rem;min-height:32px;font-size:.8125rem;font-weight:400}.modal label:has(input[type=radio]){color:rgb(var(--text));flex-direction:row;align-items:center;gap:.4rem;min-height:32px;font-size:.8125rem;font-weight:400}.form-grid label:has(input[type=checkbox]){color:rgb(var(--text));flex-direction:row;align-items:center;gap:.4rem;min-height:32px;font-size:.8125rem;font-weight:400}.form-grid label:has(input[type=radio]){color:rgb(var(--text));flex-direction:row;align-items:center;gap:.4rem;min-height:32px;font-size:.8125rem;font-weight:400}.modal input:not([type=checkbox]):not([type=radio]):not([type=file]),.modal select,.modal textarea,.form-grid input:not([type=checkbox]):not([type=radio]):not([type=file]),.form-grid select,.form-grid textarea{width:100%;min-width:0;min-height:32px;color:rgb(var(--text));background:#fff;border:1px solid #cbd5e1;border-radius:6px;padding:.32rem .55rem;font-family:inherit;font-size:.8125rem;line-height:1.35}.modal textarea,.form-grid textarea{resize:vertical;min-height:4.5rem;padding:.45rem .55rem}.modal input[type=checkbox],.modal input[type=radio],.form-grid input[type=checkbox],.form-grid input[type=radio]{width:.9375rem;height:.9375rem;min-height:auto;accent-color:rgb(var(--brand));flex-shrink:0;margin:0}.modal input[type=file],.form-grid input[type=file]{background:0 0;border:none;width:100%;min-height:auto;padding:.2rem 0;font-size:.8125rem}@media (width<=640px){.form-grid.two-col{grid-template-columns:1fr}}.scan-result{background:#f8fafc;border-radius:6px;margin-top:.75rem;padding:.75rem;font-size:.875rem}.modal-foot{border-top:1px solid #f1f5f9;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.45rem;margin-top:.85rem;padding-top:.75rem;display:flex}.modal-foot.full{grid-column:1/-1}.modal-foot .btn{padding:.35rem .8rem;font-size:.8125rem;line-height:1.35}.filter-bar{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:.55rem .75rem}.filter-bar.toolbar{gap:.45rem .6rem}.filter-bar label{gap:.15rem;font-size:.75rem}.filter-bar input,.filter-bar select{min-height:28px;padding:.28rem .45rem;font-size:.8125rem}.filter-bar input[type=date]{width:9.25rem}.filter-bar select{min-width:6rem;max-width:12rem}.filter-bar .filter-keyword{flex:120px;min-width:120px;max-width:220px}.filter-bar .filter-keyword input{width:100%}.filter-bar>.btn,.filter-bar .filter-bar-actions .btn{white-space:nowrap;align-self:end;padding:.28rem .65rem;font-size:.8125rem}.filter-bar-actions{flex-wrap:wrap;align-self:end;gap:.35rem .45rem;margin-left:auto;display:flex}.filter-bar--nested{background:#f8fafc;margin-bottom:.75rem;padding:.5rem .65rem}@media (width<=960px){.filter-bar .filter-keyword{flex:100%;max-width:none}.filter-bar-actions{width:100%;margin-left:0}}.qc-step-panel{margin-bottom:.75rem}.qc-items-head{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.65rem;display:flex}.qc-items-title{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.qc-variety-tag{color:#047857;background:#ecfdf5;border-radius:999px;padding:.1rem .55rem;font-size:.8125rem;font-weight:600;display:inline-block}.qc-link{color:rgb(var(--brand));cursor:pointer;font-size:.8125rem;font:inherit;background:0 0;border:none;padding:0;text-decoration:none}.qc-add{white-space:nowrap}.qc-icon-btn{min-width:1.75rem;padding:.2rem .45rem}.qc-table-wrap{border:1px solid #e2e8f0;border-radius:8px;margin-bottom:.85rem;overflow:auto}.qc-items-table th{white-space:nowrap;background:#f8fafc}.qc-items-table td{vertical-align:middle}.qc-cell-input{width:100%;min-width:4.5rem;padding:.35rem .45rem;font-size:.8125rem}.qc-cell-input.required:placeholder-shown,.qc-cell-input.required:not(:focus):invalid{border-color:#f87171}.qc-del{cursor:pointer;background:0 0;border:none;padding:.15rem;font-size:1rem;line-height:1}.qc-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem 1rem;display:grid}.qc-summary-grid label{flex-direction:column;gap:.3rem;font-size:.8125rem;display:flex}.qc-summary-grid .full{grid-column:1/-1}.qc-summary-grid .req{color:#ef4444;margin-right:.15rem}.qc-radio-field .qc-radio-group{align-items:center;gap:1rem;min-height:2.1rem;display:flex}.qc-radio-group label{flex-direction:row;align-items:center;gap:.25rem;font-weight:400}.qc-warehouse-row{align-items:center;gap:.5rem;display:flex}.qc-warehouse-row select{flex:1}.qc-warehouse-link{white-space:nowrap}@media (width<=960px){.qc-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=640px){.qc-summary-grid{grid-template-columns:1fr}}.toolbar-row{flex-wrap:wrap;align-items:center;gap:.75rem 1rem;display:flex}.toolbar-row label{align-items:center;gap:.5rem;display:inline-flex}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.75rem;margin-bottom:1rem;display:grid}.stat-card{background:var(--surface-elevated,#fff);border:1px solid var(--border-subtle,#e5e7eb);border-radius:8px;padding:.75rem 1rem}.stat-card .stat-label{color:var(--text-muted,#6b7280);margin-bottom:.25rem;font-size:.85rem;display:block}.split-panels{align-items:flex-start;gap:1rem;display:flex}.split-panels>.panel:first-child{flex:0 0 380px;width:380px}.split-panels>.panel:last-child{flex:1 1 0;min-width:0}.split-panels>.panel:first-child .data-table th,.split-panels>.panel:first-child .data-table td{white-space:nowrap}@media (width<=960px){.split-panels{flex-direction:column}.split-panels>.panel:first-child,.split-panels>.panel:last-child{flex:auto;width:100%}}.data-table.data-table-plan-lines{width:max-content;min-width:100%}.data-table.data-table-plan-lines th,.data-table.data-table-plan-lines td{white-space:nowrap;vertical-align:middle}.data-table.data-table-plan-lines .col-quality{white-space:normal;word-break:break-all;min-width:11rem;max-width:16rem;line-height:1.45}.data-table.data-table-plan-lines .col-num{text-align:right}.data-table.data-table-plan-lines .col-actions{text-align:center;width:3.5rem}.data-table.data-table-plan-lines .col-edit{min-width:5.75rem}.data-table tr.row-selected td{background:#3b82f614}.input-sm{width:5.5rem;padding:.2rem .35rem}.modal-wide{width:92vw;max-width:720px}.modal-picker{width:96vw;max-width:min(1120px,96vw)}.text-warn{color:#b45309}.text-ok{color:#047857}.muted{color:var(--text-muted,#6b7280);font-size:.85rem}.alert.warn{color:#92400e;background:#fffbeb;border:1px solid #fcd34d;border-radius:8px;margin-bottom:1rem;padding:.75rem 1rem}.stat-card small.muted{margin-top:.25rem;display:block}.sub-panel{border-top:1px solid var(--border-subtle,#e5e7eb);margin-top:1rem;padding-top:1rem}.sub-panel h3{margin-bottom:.75rem;font-size:.95rem}.inline-tabs{flex-wrap:wrap;gap:.35rem;display:flex}.inline-tabs .page-tab{border:1px solid var(--border-subtle,#e5e7eb);cursor:pointer;background:0 0;border-radius:6px;padding:.35rem .75rem;font-size:.875rem}.inline-tabs .page-tab.active{background:#3b82f61f;border-color:#3b82f659}.simple-list{margin:0;padding:0;list-style:none}.simple-list li{flex-wrap:wrap;align-items:center;gap:.75rem;padding:.35rem 0;display:flex}.lx2-h5-entry{background:rgb(var(--brand-soft));border-color:rgba(var(--brand), .22);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1rem;margin-bottom:.75rem;display:flex}.lx2-h5-entry-copy{flex:240px}.lx2-h5-entry-copy strong{margin-bottom:.25rem;display:block}.lx2-h5-entry-copy .hint{margin:0}.lx2-h5-entry-actions{flex-shrink:0}:root{color:rgb(var(--text));font-family:PingFang SC,Microsoft YaHei,system-ui,sans-serif;line-height:1.6}*{box-sizing:border-box}body{margin:0}code{background:rgba(var(--line), .5);border-radius:4px;padding:.1rem .35rem;font-size:.875em}.card{background:rgb(var(--card));border:1px solid rgb(var(--line));border-radius:var(--radius);padding:1rem 1.25rem}
