:root{--ink:#17342c;--muted:#6e7d77;--paper:#f3f0e8;--card:#fff;--green:#1e6b52;--lime:#c9e56a;--line:#dcded6;--orange:#e88932;--red:#be4c42}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.55 "Microsoft YaHei",system-ui,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.topbar{min-height:68px;background:#163c32;color:#fff;display:flex;align-items:center;padding:0 max(24px,calc((100% - 1180px)/2));gap:34px;position:sticky;top:0;z-index:10}.brand{font-size:20px;font-weight:800;white-space:nowrap}.brand span,.brand-mark{display:inline-grid;place-items:center;background:var(--lime);color:var(--ink);width:34px;height:34px;border-radius:10px;margin-right:9px}.topbar nav{display:flex;align-self:stretch}.topbar nav a{padding:23px 17px 0;color:#c6d6d0}.topbar nav a.active{color:#fff;border-bottom:3px solid var(--lime)}.user{margin-left:auto;font-size:13px;color:#c6d6d0}.user a{margin-left:12px}.container{max-width:1180px;margin:auto;padding:34px 24px 70px}.hero{background:var(--ink);color:#fff;border-radius:24px;padding:48px;display:flex;justify-content:space-between;align-items:end;overflow:hidden}.hero h1{font-size:45px;line-height:1.12;margin:10px 0 14px}.hero p{color:#c7d6d1}.eyebrow{font-size:12px;letter-spacing:2px;color:#699282;font-weight:800}.quick{display:grid;gap:10px}.quick a{background:var(--lime);color:var(--ink);padding:13px 24px;border-radius:12px;font-weight:800}.quick a:nth-child(n+2){background:#fff}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:18px 0}.stats article,.card{background:var(--card);border:1px solid #17342c14;border-radius:16px;padding:22px;box-shadow:0 8px 26px #282d230b}.stats small,.card small,td small{display:block;color:var(--muted)}.stats strong{font-size:26px;display:block;margin-top:7px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:18px 0}.section-head,.page-head,.customer-banner{display:flex;justify-content:space-between;align-items:center}.section-head h2,.card h2{margin:0 0 15px}.section-head a{color:var(--green)}.action-list{display:grid}.action-list a{display:flex;justify-content:space-between;padding:15px 0;border-bottom:1px solid var(--line);font-weight:700}.action-list span{font-weight:400;color:var(--muted)}table{width:100%;border-collapse:collapse}th{text-align:left;color:var(--muted);font-size:12px;padding:10px;border-bottom:1px solid var(--line)}td{padding:13px 10px;border-bottom:1px solid #eceee8}.money{font-weight:800}.page-head{margin-bottom:22px}.page-head h1{font-size:34px;margin:3px 0}.page-head p{color:var(--muted)}.search{display:flex}.search input{min-width:260px;border-radius:10px 0 0 10px}.search button{border-radius:0 10px 10px 0}.strong{font-weight:800;color:var(--green)}.category,.pill,.type{display:inline-block;padding:2px 8px;border-radius:99px;background:#e7efcf;font-weight:800;font-size:12px}.empty{text-align:center;padding:35px;color:var(--muted)}details summary{cursor:pointer;font-size:18px;font-weight:800;margin-bottom:18px}.form-card{margin-top:18px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid label{color:var(--muted);font-size:13px}.form-grid input,.form-grid select,.form-grid textarea,.mini-form input,.quick-record input,.quick-record select,.reminder input,.search input{display:block;width:100%;border:1px solid var(--line);background:#fbfcf9;padding:11px 12px;border-radius:9px;color:var(--ink);margin-top:5px}.form-grid textarea{min-height:85px}.span-2{grid-column:span 2}.check{display:inline-flex!important;align-items:center;gap:7px;color:var(--ink)!important}.check input{width:auto!important;margin:0!important}fieldset{border:0;padding:0;margin:0}legend{font-size:13px;color:var(--muted)}button,.primary{border:0;background:#e6e8e2;color:var(--ink);border-radius:9px;padding:11px 17px;font-weight:800;cursor:pointer}.primary{background:var(--green);color:#fff}.wide{width:100%;margin:8px 0}.customer-banner{background:#dfe8c5;border-radius:18px;padding:25px 30px}.customer-banner h1{margin:8px 0}.customer-banner>div:last-child{text-align:right}.customer-banner strong{display:block;font-size:28px}.pond{padding:12px 0;border-bottom:1px solid var(--line)}.pond span{display:block;color:var(--muted)}.mini-form{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.quick-record{display:grid;grid-template-columns:.7fr 1fr 1.4fr 1fr 1fr 1fr auto;gap:8px}.timeline{border-left:2px solid #d9e4be;margin:25px 8px}.timeline>div{padding:0 0 20px 22px;position:relative}.timeline>div:before{content:"";position:absolute;width:10px;height:10px;background:var(--green);border-radius:50%;left:-6px;top:7px}.timeline time{display:block;color:var(--muted);font-size:12px}.timeline p{margin:4px 0}.accent-card{background:#eef4dc;border-color:#d4e3a8}.delivery-form{grid-template-columns:repeat(4,1fr)}.status{padding:4px 9px;border-radius:99px;font-size:12px;font-weight:800}.s-应收{color:#9d5315;background:#fff0d9}.s-部分收款{color:#1d5f99;background:#ddebfa}.s-已结清{color:#176647;background:#dcefe7}.reminder-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.reminder{border-left:5px solid #aeb8b3}.reminder.pending{border-left-color:var(--orange)}.reminder>div{display:flex;justify-content:space-between}.reminder h3{margin:13px 0 6px}.reminder p{color:var(--muted);min-height:45px}.reminder form{display:grid;grid-template-columns:1fr auto auto;gap:7px}.ghost{background:transparent;border:1px solid var(--line)}.done{color:var(--green);font-weight:800}.toast{position:fixed;top:78px;right:22px;background:var(--green);color:#fff;padding:12px 18px;border-radius:10px;z-index:20}.toast.error{background:var(--red)}.login-wrap{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 70% 20%,#dce9bb,transparent 35%),var(--paper)}.login-card{width:min(420px,calc(100% - 32px));padding:40px}.login-card h1{margin-bottom:0}.login-card label{display:block;margin:15px 0;color:var(--muted)}.login-card input{width:100%;padding:12px;border:1px solid var(--line);border-radius:9px;margin-top:5px}.muted{color:var(--muted)}@media(max-width:800px){.topbar{display:grid;grid-template-columns:1fr auto;padding:12px 16px;gap:5px}.topbar nav{grid-row:2;grid-column:1/3;overflow:auto}.topbar nav a{padding:9px 12px;white-space:nowrap}.user{font-size:0}.user a{font-size:13px}.container{padding:22px 14px 90px}.hero{padding:28px;display:block}.hero h1{font-size:34px}.quick{margin-top:25px}.stats{grid-template-columns:1fr 1fr}.grid-2,.reminder-grid{grid-template-columns:1fr}.form-grid,.delivery-form{grid-template-columns:1fr}.span-2{grid-column:auto}.table-card{overflow-x:auto;padding:12px}.table-card table{min-width:720px}.quick-record{grid-template-columns:1fr}.page-head{display:block}.search input{min-width:0}.customer-banner{display:block}.customer-banner>div:last-child{text-align:left}.mini-form{grid-template-columns:1fr}.toast{left:14px;right:14px}}

/* Desktop application shell */
@media(min-width:801px){
body:has(.sidebar){padding-left:232px;background:#f5f7f8}
.sidebar{position:fixed;inset:0 auto 0 0;width:232px;background:linear-gradient(180deg,#082f4f 0%,#092944 100%);color:#d7e7f2;z-index:30;display:flex;flex-direction:column;padding:22px 14px 16px;box-shadow:8px 0 28px #08233a16}
.sidebar .brand{height:60px;display:grid;grid-template-columns:42px 1fr;grid-template-rows:30px 20px;align-items:center;padding:0 8px;color:#fff}
.sidebar .brand span{grid-row:1/3;width:38px;height:38px;margin:0;border-radius:11px;background:linear-gradient(135deg,#21c5bb,#0ba39d);color:#fff}
.sidebar .brand b{font-size:21px;line-height:1.1}.sidebar .brand small{font-size:10px;letter-spacing:2px;color:#82a7bd;font-weight:500}
.sidebar nav{display:flex;flex-direction:column;gap:3px;margin-top:18px;overflow-y:auto;padding-right:2px;scrollbar-width:thin}
.sidebar nav a{height:43px;display:flex;align-items:center;gap:13px;padding:0 14px;border-radius:9px;color:#c9dce8;font-weight:600;transition:.18s ease}
.sidebar nav a i{width:22px;text-align:center;font-style:normal;font-size:18px;color:#90b4c8}.sidebar nav a:hover{background:#ffffff0d;color:#fff}.sidebar nav a.active{background:linear-gradient(90deg,#0bb0aa,#13beb2);color:#fff;box-shadow:0 7px 18px #001b2b45}.sidebar nav a.active i{color:#fff}
.sidebar-foot{margin-top:auto;border-top:1px solid #ffffff1c;padding:15px 8px 0;display:grid;grid-template-columns:34px 1fr 24px;gap:9px;align-items:center}.sidebar-foot>span,.top-avatar{display:grid;place-items:center;border-radius:50%;background:#dff7f4;color:#078e89;font-weight:800}.sidebar-foot>span{width:34px;height:34px}.sidebar-foot strong,.sidebar-foot small{display:block}.sidebar-foot small{font-size:11px;color:#88a8ba}.sidebar-foot>a{font-size:20px;color:#86a8ba}
.topbar{height:72px;min-height:72px;background:#fff;color:var(--ink);padding:0 32px;position:sticky;top:0;border-bottom:1px solid #e8ecee;box-shadow:0 2px 10px #17342c08;justify-content:space-between;z-index:20}
.topbar>div:first-child{display:flex;flex-direction:column}.topbar-kicker{color:#91a09b;font-size:11px;letter-spacing:1px}.topbar strong{font-size:20px}.top-actions{display:flex;align-items:center;gap:14px}.top-actions>a{border:1px solid #d9e3e4;border-radius:8px;padding:8px 13px;color:#168f89;font-weight:700}.top-avatar{width:34px;height:34px}.topbar .user{margin:0;color:#53645e;font-size:13px}
.container{max-width:1440px;padding:28px 32px 60px}.hero{padding:42px 48px;border-radius:18px;background:linear-gradient(120deg,#123c33,#163f36)}.hero h1{font-size:40px}.stats article,.card{border-radius:10px;border-color:#e1e7e8;box-shadow:0 3px 12px #082f4f0b}.stats article{min-height:120px;padding:24px 26px}.page-head h1{font-size:30px}
.toast{top:86px}
}

@media(max-width:800px){
.sidebar{display:none}.topbar{display:flex;background:#163c32;color:#fff;min-height:62px}.topbar-kicker{display:none}.topbar strong{font-size:18px}.top-actions>a,.top-avatar{display:none}.topbar .user{margin-left:auto;color:#c6d6d0;font-size:12px}
.grid-2>*{min-width:0}.card:has(table){overflow-x:auto}.card:has(table) table{min-width:590px}
}
.allocation-check{display:flex;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:9px;background:#f2f5ee;border:1px solid var(--line)}.allocation-check b{margin-left:6px}.allocation-check .ok{color:var(--green)}.allocation-check .bad{color:var(--red)}.allocation-warning{border-left:5px solid var(--orange)}button:disabled{opacity:.5;cursor:not-allowed}
.expense-entry-link{display:inline-block;margin-left:.65rem;font-size:.82rem;font-weight:700;color:#087f73;text-decoration:none}.setting-example{align-self:end;padding:.85rem 1rem;border-radius:10px;background:#f0f7e4;color:#365145}
.risk-alert{display:flex;gap:1rem;align-items:center;margin:0 0 1rem;padding:1rem 1.2rem;border:1px solid #ef9a9a;border-left:5px solid #c62828;border-radius:12px;background:#fff3f2;color:#8d1d1d}.risk-alert strong{white-space:nowrap}.risk-badge{display:inline-block;margin-left:.55rem;padding:.18rem .48rem;border-radius:999px;background:#fde1df;color:#a32121;font-size:.75rem;font-weight:800}.risk-row{background:#fffafa}.risk-select-warning{display:block;margin-top:.35rem;color:#b3261e;font-weight:700}
.statement-filter{display:grid!important;grid-template-columns:minmax(210px,1.35fr) minmax(165px,1fr) minmax(165px,1fr) auto auto;align-items:end;gap:14px;padding:22px 24px!important}.statement-field{display:flex;min-width:0;flex-direction:column;gap:7px;color:#657871;font-size:.82rem;font-weight:700}.statement-field select,.statement-field input{width:100%;height:48px;margin:0;border:1px solid #d6ddd9;border-radius:10px;background:#fff;padding:0 14px;font-size:1rem;color:#17342c}.statement-filter>button,.statement-filter>a.primary{display:inline-flex;align-items:center;justify-content:center;height:48px;min-width:88px;margin:0;padding:0 20px;border-radius:10px;white-space:nowrap;text-decoration:none}.statement-filter>button{background:#e8ebe7;color:#17342c}.statement-filter>a.primary{min-width:118px;background:#1e6b52;color:#fff}@media(max-width:900px){.statement-filter{grid-template-columns:1fr 1fr!important}.statement-field:first-of-type{grid-column:1/-1}.statement-filter>button,.statement-filter>a.primary{width:100%}}@media(max-width:560px){.statement-filter{grid-template-columns:1fr!important}.statement-field:first-of-type{grid-column:auto}}
.return-link-hint{display:block;margin-top:.35rem;color:#557066;font-weight:700}.form-grid input[readonly]{background:#f1f4f1;color:#355047;cursor:not-allowed}
.return-adjustment-row{background:#fffaf3}.return-adjustment-row td:nth-child(2){color:#9a5b16;font-weight:800}.return-adjustment-money{line-height:1.65;color:#9a3e21}
.goods-movements{padding-top:0}.movement-direction{display:inline-flex;padding:.18rem .52rem;border-radius:999px;font-size:.76rem;font-weight:800}.movement-direction.is-in{background:#e2f4e8;color:#17633b}.movement-direction.is-out{background:#fde9e3;color:#9b3426}.movement-plus{color:#17633b}.movement-minus{color:#a53b2c}.movement-in{background:#fbfffc}
.miniapp-check{display:flex;flex-wrap:wrap;gap:10px 18px;padding:14px;border-radius:10px;background:#eef5e5;color:#53665e}.miniapp-upload .allocation-warning{padding:14px;border-radius:10px}.miniapp-upload .allocation-warning p{margin:6px 0 0}.miniapp-upload button:disabled{opacity:.45;cursor:not-allowed}
.needs-save{outline:3px solid rgba(230,139,42,.28);outline-offset:3px}
.miniapp-download{display:inline-flex;align-items:center;justify-content:center;min-height:48px;margin-top:10px;padding:0 18px;border:1px solid #1e6b52;border-radius:10px;color:#1e6b52;font-weight:800;text-decoration:none;background:#fff}

/* 微信小程序 web-view：复用后台业务页面，只保留网页底部移动导航。 */
@media(max-width:800px){
body.miniapp-embed{padding:0;background:#f4f6f7}
body.miniapp-embed .sidebar,body.miniapp-embed .topbar{display:none!important}
body.miniapp-embed .container{max-width:none;padding:16px 14px calc(92px + env(safe-area-inset-bottom))}
body.miniapp-embed .hero{border-radius:18px;padding:26px 22px}
body.miniapp-embed .hero h1{font-size:30px;line-height:1.15}
body.miniapp-embed .quick a{display:block;text-align:center;padding:14px 18px}
body.miniapp-embed .mobile-nav{padding-bottom:env(safe-area-inset-bottom)}
body.miniapp-embed .page-head h1{font-size:28px}
body.miniapp-embed .card{border-radius:14px}
}
