:root{--green:#14634e;--green-dark:#0b4838;--ink:#23372e;--muted:#7b8781;--line:#e8ede9;--bg:#f5f7f5;--warm:#b87639}*{box-sizing:border-box}body{margin:0;font-family:"Microsoft YaHei","PingFang SC",system-ui,sans-serif;background:var(--bg);color:var(--ink);font-size:14px}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}button:focus-visible,a:focus-visible{outline:3px solid #8fc9ad;outline-offset:3px}[hidden]{display:none!important}.sidebar{position:fixed;inset:0 auto 0 0;width:234px;background:white;border-right:1px solid var(--line);padding:37px 24px;display:flex;flex-direction:column;z-index:10}.brand{display:flex;align-items:center;gap:12px;color:var(--ink);text-decoration:none;font-size:23px;font-weight:700;letter-spacing:2px}.brand-mark{display:grid;place-items:center;background:var(--green);color:white;width:44px;height:44px;border-radius:13px;font-size:26px;letter-spacing:0}.brand small{display:block;font-size:9px;font-weight:500;letter-spacing:1.4px;margin-top:4px;color:var(--muted)}.workspace-label{margin:55px 13px 16px;font-size:11px;color:#a0aaa4;letter-spacing:2px}.nav{display:flex;align-items:center;gap:13px;width:100%;border:0;background:transparent;color:#7b8781;text-align:left;padding:15px;border-radius:9px;margin-bottom:9px}.nav span{font-size:22px;line-height:1;width:22px}.nav.active{background:#eaf3ee;color:var(--green);font-weight:700}.side-foot{margin-top:auto;font-size:12px;color:#6a7b70;border-top:1px solid var(--line);padding:22px 7px 0}.side-foot small{display:block;font-size:11px;color:#a0aaa4;margin-top:10px}.live-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#519b74;margin-right:8px}.main-wrap{margin-left:234px}.topbar{height:83px;background:#fff;border-bottom:1px solid var(--line);padding:0 42px;display:flex;align-items:center;justify-content:space-between;gap:15px}.breadcrumb{color:#8b958f;font-size:12px}.breadcrumb span{margin:0 14px;color:#c9d0ca}.breadcrumb b{font-weight:500;color:#4b5d51}.top-actions{display:flex;gap:20px;align-items:center}#sync-status{font-size:11px;color:var(--muted)}main{padding:43px 42px 20px;max-width:1600px;margin:auto}.page-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:29px}.eyebrow{font-size:10px;font-weight:600;letter-spacing:2px;color:#899b8e;margin:0 0 11px}h1{font-size:28px;font-weight:650;letter-spacing:1px;margin:0 0 12px}h2{font-size:16px;margin:0;font-weight:600}.subtitle{color:var(--muted);font-size:13px;line-height:1.8;margin:0}.button{border:1px solid transparent;border-radius:7px;padding:10px 16px;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:12px;white-space:nowrap;min-height:39px;text-decoration:none;transition:background .15s}.primary{background:var(--green);color:white;box-shadow:0 3px 8px #14634e14}.primary:hover{background:var(--green-dark)}.primary>span{font-size:20px}.outline{border-color:#dce4dd;background:white;color:#4d6355}.outline:hover,.subtle:hover{background:#edf4ef}.subtle{background:transparent;color:#718276}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:28px}.stat{background:#fff;border:1px solid var(--line);border-radius:11px;padding:22px 23px;min-width:0}.stat-label{display:flex;align-items:center;justify-content:space-between;color:#728277;font-size:12px}.stat-label i{display:grid;place-items:center;background:#f1f6f2;border-radius:8px;width:30px;height:30px;font-size:19px;font-style:normal;color:#789a83}.stat strong{display:block;font-family:Arial,sans-serif;font-size:35px;font-weight:550;margin:11px 0 14px;letter-spacing:-1px}.stat-foot{color:#9aa69e;font-size:11px}.stat-foot em{font-style:normal;float:right;color:#9aa69e}.stat:nth-child(4) strong{color:var(--warm)}.panel{background:white;border:1px solid var(--line);border-radius:12px;overflow:hidden}.panel-top{padding:22px 24px;display:flex;align-items:center;justify-content:space-between;gap:12px}.panel-title,.panel-tools{display:flex;align-items:center;gap:12px}.count{border-radius:5px;background:#f1f5f1;padding:4px 8px;font-size:10px;color:#809184}.filters{display:flex;gap:12px;padding:0 24px 22px;align-items:center}.search{display:flex;align-items:center;gap:10px;border:1px solid #e1e8e2;border-radius:7px;padding:0 12px;max-width:350px;flex:1}.search span{font-size:25px;color:#91a095}.search input{border:0;background:none;min-width:0;width:100%;height:39px;outline:none;font-size:12px}.search:focus-within{border-color:#79ac90}input::placeholder,textarea::placeholder{color:#acb5ae}select{border:1px solid #e1e8e2;border-radius:7px;background:white;padding:10px;max-width:200px;font-size:12px;color:#718276}.filters>.button{margin-left:auto}.date-field{display:flex;align-items:center;gap:7px;color:#829185;font-size:12px}.date-field input{padding:8px;border:1px solid #e1e8e2;border-radius:6px;color:#5a6c60;min-width:0}.table-area{overflow-x:auto;min-height:295px}table{border-collapse:collapse;width:100%;text-align:left;white-space:nowrap}th{background:#f7f9f7;font-size:11px;color:#88988c;font-weight:500;padding:15px 24px;border-top:1px solid #eef1ee;border-bottom:1px solid #eef1ee}td{padding:20px 24px;border-bottom:1px solid #f0f3f0;font-size:13px;color:#617467}tbody tr:hover{background:#fbfdfb}.grade-name{font-weight:600;color:#304f3c}.row-index{color:#b2bdb5;font-family:Arial;font-size:11px;width:35px}.qty{font-family:Arial,sans-serif;font-size:20px;font-weight:600;color:#2c4c36}.qty.zero{color:#b4beb7}.qty small{font-size:11px;color:#9aaa9e;font-family:inherit;font-weight:400;margin-left:5px}.stock-status{font-size:10px;border-radius:4px;background:#edf6ef;color:#61866a;padding:4px 8px}.stock-status.zero{background:#f3f4f3;color:#9ba69e}.row-actions{display:flex;gap:8px}.action{border:1px solid #dfeae1;color:#40714d;background:white;padding:7px 11px;border-radius:5px;font-size:11px;min-height:34px}.action.out{color:#9c744c;border-color:#ede4d8;background:#fcfaf7}.action:disabled{cursor:not-allowed}.panel-bottom{display:flex;gap:10px;justify-content:space-between;padding:17px 24px;font-size:10px;color:#a0aca3}.page-note{font-size:11px;color:#9baa9e;margin:18px 0;line-height:1.8}.empty{text-align:center;padding:54px 20px;color:#9aaba0}.empty-icon{font-size:38px;color:#9db8a5;display:block;margin-bottom:18px}.empty h3{color:#597262;font-size:15px;font-weight:500;margin:0 0 10px}.empty p{font-size:12px;margin:0 0 22px;line-height:1.8}.positive{color:#368258}.negative{color:#b47d49}.note-cell{white-space:normal;min-width:130px;max-width:270px;line-height:1.7}.summary-row td{background:#f7faf7;font-weight:600;color:#4c7156}.connection-error{border:1px solid #eed8bf;background:#fff8ee;color:#966c3e;padding:13px 17px;border-radius:8px;font-size:12px;margin-bottom:20px}footer{text-align:center;padding:15px 20px 28px;color:#b1bdb4;font-size:10px;letter-spacing:1px}footer span{padding:0 8px}dialog{border:0;border-radius:15px;padding:30px;width:min(470px,calc(100% - 32px));color:var(--ink);box-shadow:0 20px 90px #17392430;max-height:90dvh;overflow:auto}dialog::backdrop{background:#12291d66;backdrop-filter:blur(3px)}.dialog-heading{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.dialog-heading h2,#login-dialog h2{font-size:23px}.close-button{border:0;background:#f4f6f3;border-radius:50%;width:31px;height:31px;font-size:22px;color:#87948a}.item-context{padding:14px;background:#f1f7f2;border-radius:7px;color:#4f785a;line-height:1.8;font-size:13px}dialog label{display:block;font-size:12px;margin:18px 0 0;color:#5d7263}dialog input,dialog textarea{display:block;width:100%;border:1px solid #dce6de;border-radius:7px;padding:12px;margin-top:8px;background:white;outline:none;color:#34503e}dialog input:focus,dialog textarea:focus{border-color:#79ac90}.required{color:#8caa95}.dialog-footer{display:flex;justify-content:flex-end;gap:10px;margin-top:23px}.form-error{color:#b25242;font-size:12px;line-height:1.7;min-height:16px;margin:13px 0 0}#login-dialog .subtitle{margin-top:15px}#login-dialog .primary{margin-top:16px;width:100%}.share-note{color:#8d9e91;font-size:12px;line-height:1.8;margin:17px 0}#share-url{font-size:11px}#toast{position:fixed;bottom:34px;left:50%;transform:translateX(-50%);padding:13px 23px;background:#254e37;color:white;border-radius:8px;font-size:13px;box-shadow:0 6px 25px #1c3b2c20;z-index:99;max-width:90%;text-align:center}
.signed-out>.sidebar,.signed-out>.main-wrap{visibility:hidden}.signed-out{background:#eff4f0}dialog select{display:block;width:100%;max-width:none;margin-top:8px;padding:12px}.field-help{font-size:10px;color:#91a394;line-height:1.8;margin:9px 0 0}
.query-summary{margin:0 24px 18px;padding:12px 14px;background:#f1f7f2;border-radius:7px;color:#4f785a;font-size:12px;line-height:1.8}.filters #query-stock,.filters #reset-query{margin-left:0;min-height:39px}.filters .search{max-width:430px}.filters{flex-wrap:wrap}.qty.zero{color:#6d7f72}@media(max-width:760px){.query-summary{margin:0 15px 16px;font-size:11px}.filters .search{flex-basis:100%;max-width:none}.filters #query-stock,.filters #reset-query{min-height:40px;padding:8px 15px}}
.query-help{margin:0 24px 18px;color:#7b8781;font-size:11px;line-height:1.8}@media(max-width:760px){.query-help{margin:0 15px 16px;font-size:10px}}
.action.delete{border-color:#efd8d2;background:#fff9f7;color:#ac5b4a}.danger{background:#b65142;color:white}.danger:hover{background:#994438}.inbound-date{font-size:11px;color:#899b8d}
.stock-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:0 24px 20px}.board-filter{display:flex;align-items:center;gap:3px;background:#f1f5f1;border:1px solid #e7ede7;border-radius:8px;padding:3px}.board-option{border:0;background:transparent;color:#829186;font-size:11px;padding:9px 13px;border-radius:5px;min-height:33px;white-space:nowrap}.board-option.active{background:white;color:var(--green);box-shadow:0 1px 5px #1739240c;font-weight:600}.board-hint{font-size:10px;color:#96a39a;line-height:1.7;margin:0}.stock-controls>.button{min-height:39px;font-size:11px}
@media(max-width:760px){.stock-controls{padding:0 15px 17px;gap:10px}.board-filter{width:100%}.board-option{flex:1;padding:8px 5px;min-height:37px;font-size:11px}.stock-controls>.button{min-height:39px}.board-hint{flex:1;min-width:130px;font-size:9px}}
@media(max-width:760px){.stock-table .inbound-date{grid-column:1 / -1;grid-row:3;font-size:10px;color:#91a094}.stock-table .inbound-date::before{content:'入库日期：'}.stock-table tbody tr td:last-child{grid-row:4}.stock-table .action.delete{flex:0 0 64px}}
@media(max-width:760px){.daily-table,.daily-table tbody{display:block;width:100%;white-space:normal}.daily-table thead{display:none}.daily-table tbody tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 18px;padding:18px 15px;border-bottom:1px solid var(--line)}.daily-table td{display:block;padding:0;border:0}.daily-table .grade-name,.daily-table .daily-size,.daily-table .daily-actions{grid-column:1 / -1}.daily-table .grade-name{font-size:14px;overflow-wrap:anywhere}.daily-table .daily-size{font-size:11px;color:#8b9b8f;overflow-wrap:anywhere;margin-top:-6px}.daily-table td[data-label]{font-size:20px;font-weight:600;line-height:1.5}.daily-table td[data-label]::before{content:attr(data-label);display:block;font-size:10px;font-weight:400;color:#91a094;margin-bottom:3px}.daily-table .row-actions{gap:10px}.daily-table .action{flex:1;min-height:44px;font-size:12px}.daily-table .summary-row{background:#f7faf7}.daily-table .summary-row td{background:transparent}.daily-table .summary-row td:first-child{grid-column:1 / -1;font-size:12px}.daily-table .summary-row .daily-actions{display:none}}
@media(max-width:760px){body .stock-table .size-cell,body .stock-table .grade-name{max-width:none;min-width:0}body .stock-table .qty{font-size:25px}}
@media(max-width:760px){.stock-table,.stock-table tbody{display:block;width:100%}.stock-table thead{display:none}.stock-table tbody tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px 16px;padding:17px 15px;border-bottom:1px solid var(--line)}.stock-table td{display:block;padding:0!important;border:0}.stock-table .grade-name{grid-column:1;grid-row:1;max-width:none;min-width:0;font-size:13px}.stock-table .size-cell{grid-column:1;grid-row:2;max-width:none;min-width:0;font-size:11px;color:#8b9b8f;overflow-wrap:anywhere}.stock-table .qty{grid-column:2;grid-row:1 / span 2;align-self:center;font-size:25px}.stock-table td:last-child{grid-column:1 / -1;grid-row:3;margin-top:7px}.stock-table .row-actions{width:100%;gap:10px}.stock-table .action{flex:1;min-height:40px;font-size:12px}.stock-table .row-index,.stock-table .status-cell{display:none}}
@media(min-width:1600px){main{padding-top:55px}.stats{gap:24px}.stat{padding:27px}td{padding-top:23px;padding-bottom:23px}}
@media(max-width:1100px){.sidebar{width:195px;padding:30px 17px}.main-wrap{margin-left:195px}.topbar{padding:0 25px}main{padding:32px 25px 15px}.stats{gap:12px}.stat{padding:17px}.stat-foot em{display:block;float:none;margin-top:7px}.filters{flex-wrap:wrap}th,td{padding-left:17px;padding-right:17px}}
@media(max-width:760px){.sidebar{top:auto;bottom:0;height:72px;width:100%;padding:0 8px calc(env(safe-area-inset-bottom,0px));border-right:0;border-top:1px solid var(--line)}.brand,.workspace-label,.side-foot{display:none}.sidebar nav{display:flex;justify-content:space-around;height:100%}.nav{flex-direction:column;justify-content:center;gap:3px;margin:0;padding:8px 4px;width:31%;font-size:11px;border-radius:0;background:none!important}.nav span{font-size:22px;width:auto}.nav.active{color:var(--green)}.main-wrap{margin:0;padding-bottom:75px}.topbar{height:62px;padding:0 19px}.breadcrumb{font-size:11px}.breadcrumb span{margin:0 7px}.top-actions{gap:8px}#sync-status{font-size:10px}.top-actions .button{font-size:10px;padding:6px 8px;min-height:32px}main{padding:29px 17px 10px}.eyebrow{font-size:9px;letter-spacing:1.5px}h1{font-size:24px;margin-bottom:8px}.subtitle{font-size:12px}.page-heading{margin-bottom:23px;gap:10px}.page-heading>.button{font-size:11px;padding:9px 11px}.stats{grid-template-columns:repeat(2,1fr);gap:11px;margin-bottom:21px}.stat{padding:16px;border-radius:9px}.stat-label{font-size:11px}.stat-label i{width:25px;height:25px;font-size:16px}.stat strong{font-size:29px;margin:8px 0 10px}.stat-foot{font-size:10px}.stat-foot em{display:inline;float:right;margin:0;font-size:9px}.panel{border-radius:9px}.panel-top{padding:17px 15px;gap:6px}.panel-title{gap:7px}.panel-title h2{font-size:14px}.panel-tools{gap:2px}.panel-tools .button{font-size:10px;min-height:32px;padding:6px 8px}.count{font-size:9px;padding:3px 5px}.filters{padding:0 15px 16px;gap:8px}.search{max-width:none;flex:1;min-width:150px}.search input{font-size:11px;height:37px}select{max-width:125px;font-size:11px;padding:9px 6px}.filters>.button{padding:6px;font-size:11px;min-height:32px}.date-field{order:3;width:100%;justify-content:flex-start}.date-field input{flex:1}.table-area{min-height:260px}table{font-size:12px}th{padding:12px 14px;font-size:10px}td{padding:17px 14px;font-size:12px}.qty{font-size:18px}.stock-table .row-index,.stock-table .status-cell{display:none}.stock-table th:nth-child(2),.stock-table td:nth-child(2){padding-left:15px}.row-actions{gap:5px}.action{padding:7px 9px;min-height:36px;font-size:10px}.stock-table .size-cell{white-space:normal;min-width:100px;max-width:160px;line-height:1.6}.stock-table .grade-name{white-space:normal;min-width:75px;max-width:130px;word-break:break-word}.panel-bottom{padding:14px 15px;flex-direction:column;font-size:9px;gap:5px}.page-note{font-size:10px}.empty{padding:44px 20px}.empty p{font-size:11px}footer{padding:10px 10px 18px;font-size:9px}dialog{padding:24px;max-height:88dvh}#toast{bottom:90px;min-width:170px}}
