:root{--green:#0f513f;--green-2:#176b52;--green-soft:#e9f4ef;--ink:#18332b;--muted:#6a7b75;--line:#dce6e1;--paper:#fff;--bg:#f3f6f4;--red:#c33b35;--red-soft:#fff0ef;--amber:#9a6514;--amber-soft:#fff8e7;--shadow:0 8px 28px rgba(26,60,49,.07)}
*{box-sizing:border-box}html{font-size:15px}body{margin:0;color:var(--ink);background:var(--bg);font-family:Inter,"Microsoft YaHei",system-ui,-apple-system,sans-serif}a{color:var(--green-2);text-decoration:none}button,input,select,textarea{font:inherit}.app-shell{min-height:100vh;display:grid;grid-template-columns:244px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;padding:24px 16px;background:#0d382d;color:#dcebe5;display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:11px;padding:0 7px 23px;border-bottom:1px solid rgba(255,255,255,.1)}.brand-mark{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:#8ab59f;color:#0d382d;font:800 18px serif;flex:0 0 auto}.brand strong{display:block;color:#fff;font-size:15px}.brand small{display:block;margin-top:3px;color:#9dbbb0;font-size:11px}.nav{display:flex;flex-direction:column;gap:4px;padding-top:18px}.nav a{display:flex;align-items:center;gap:11px;padding:10px 11px;border-radius:10px;color:#bdd4cb;font-size:14px}.nav a span{width:25px;height:25px;border-radius:8px;display:grid;place-items:center;background:rgba(255,255,255,.07);font-size:12px}.nav a b{margin-left:auto;min-width:21px;padding:2px 6px;border-radius:10px;text-align:center;background:#d35149;color:#fff;font-size:11px}.nav a:hover,.nav a.active{background:rgba(255,255,255,.1);color:#fff}.nav a.active span{background:#8ab59f;color:#0d382d}.sidebar-note{margin-top:auto;padding:13px;border-radius:11px;background:rgba(255,255,255,.06);font-size:11px;line-height:1.65;color:#9dbbb0}.main-column{min-width:0}.topbar{height:82px;padding:0 30px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:15}.topbar h1{margin:0;font-size:20px}.topbar p{margin:5px 0 0;color:var(--muted);font-size:12px}.user-menu{display:flex;align-items:center;gap:8px}.user-menu form{margin:0}.user-summary{text-align:right;margin-right:7px}.user-summary strong,.user-summary small{display:block}.user-summary small{color:var(--muted);font-size:11px;margin-top:3px}.content{padding:26px 30px 70px;max-width:1600px;margin:auto}.card{background:var(--paper);border:1px solid var(--line);border-radius:15px;padding:20px;box-shadow:var(--shadow);margin-bottom:18px}.narrow-card{max-width:650px}.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:17px}.section-head h2,.card h2,.card h3{margin:0;color:var(--ink)}.section-head h2,.card h2{font-size:17px}.card h3{font-size:15px;margin-bottom:14px}.section-head p{margin:5px 0 0;color:var(--muted);font-size:12px;line-height:1.5}.muted{color:var(--muted);font-size:12px}.metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:18px}.metric-card{display:block;padding:19px 20px;border-radius:15px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);color:var(--ink)}.metric-card span,.metric-card small{display:block;color:var(--muted);font-size:12px}.metric-card strong{display:block;font-size:32px;line-height:1.2;margin:8px 0 5px}.metric-card.danger{border-left:4px solid var(--red)}.metric-card.danger strong{color:var(--red)}.metric-card.success{border-left:4px solid var(--green-2)}.metric-card.success strong{color:var(--green-2)}.content-grid{display:grid;gap:18px}.content-grid.two-one{grid-template-columns:minmax(0,2fr) minmax(290px,1fr)}.content-grid.equal{grid-template-columns:repeat(2,minmax(0,1fr))}.product-stock-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.product-stock{padding:16px;border-radius:12px;background:var(--green-soft);border:1px solid #d6e9df}.product-stock span{display:block;font-size:12px;color:var(--muted)}.product-stock strong{font-size:25px;margin:8px 4px 0 0;display:inline-block;color:var(--green)}.product-stock small{color:var(--muted)}.quick-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.quick-actions a{padding:12px 10px;border:1px solid var(--line);border-radius:10px;text-align:center;background:#fafcfb;color:var(--ink);font-size:13px}.quick-actions a:hover{border-color:#8ab59f;background:var(--green-soft)}.record-list{display:flex;flex-direction:column}.record-row{display:flex;align-items:center;gap:11px;padding:11px 3px;border-bottom:1px solid #edf2ef;color:var(--ink)}.record-row:last-child{border-bottom:0}.record-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:#eef3f0;color:var(--muted);font-weight:700;font-size:12px;flex:0 0 auto}.record-icon.pending{background:var(--red-soft);color:var(--red)}.record-icon.in{background:var(--green-soft);color:var(--green-2)}.record-icon.out{background:#fff4e7;color:#a15e08}.record-main{min-width:0;flex:1}.record-main strong,.record-main small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.record-main strong{font-size:13px}.record-main small{font-size:11px;color:var(--muted);margin-top:4px}.movement-number{font-weight:700;font-size:13px;white-space:nowrap}.positive{color:#13805e!important}.negative{color:#c04b3e!important}.badge{display:inline-block;padding:4px 8px;border-radius:99px;font-size:11px;white-space:nowrap}.badge-danger{background:var(--red-soft);color:var(--red)}.badge-success{background:var(--green-soft);color:var(--green-2)}.badge-info{background:#eaf2ff;color:#315f9b}.badge-large{padding:7px 12px;font-size:13px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:38px;padding:8px 14px;border:1px solid transparent;border-radius:9px;cursor:pointer;font-weight:600;font-size:13px;white-space:nowrap}.btn-primary{background:var(--green-2);color:#fff;border-color:var(--green-2)}.btn-primary:hover{background:var(--green)}.btn-secondary{background:#e7f1ec;color:var(--green);border-color:#cfe2d9}.btn-light{background:#fff;color:var(--ink);border-color:var(--line)}.btn-small{min-height:31px;padding:5px 10px;font-size:11px}.btn-large{min-height:44px;padding:10px 22px}.btn-wide{width:100%}.icon-button{border:0;background:transparent;font-size:22px;padding:5px}.page-actions{display:flex;justify-content:flex-end;gap:8px;margin-bottom:14px}.form-control{width:100%;min-height:40px;padding:8px 10px;border:1px solid #cfdcd6;border-radius:8px;background:#fff;color:var(--ink);outline:none}.form-control:focus{border-color:#4d9277;box-shadow:0 0 0 3px rgba(77,146,119,.12)}textarea.form-control{resize:vertical}.form-grid{display:grid;gap:14px 16px}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.field,.stack-form label,.line-card label{display:flex;flex-direction:column;gap:6px;color:#42564f;font-size:12px}.field em{color:var(--red);font-style:normal}.field-notes{grid-column:span 2}.stack-form{display:flex;flex-direction:column;gap:14px;margin-top:18px}.stack-form input,.stack-form select,.stack-form textarea{width:100%;min-height:40px;padding:8px 10px;border:1px solid #cfdcd6;border-radius:8px}.stack-form input[type=checkbox]{width:auto;min-height:auto}.field-error,.errorlist{color:var(--red);font-size:11px;margin:0;padding:0;list-style:none}.notice{padding:13px 16px;margin-bottom:16px;border-radius:10px;font-size:13px}.notice-success{background:var(--green-soft);color:var(--green)}.notice-error{background:var(--red-soft);color:var(--red)}.notice-info{background:#edf4ff;color:#315f9b}.filter-card{padding:13px}.filter-bar{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.filter-bar .grow{flex:1;min-width:220px}.filter-bar .form-control{width:auto;min-width:150px}.filter-bar .grow{width:auto}.check-inline{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--muted)}.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;font-size:12px}.data-table th{text-align:left;padding:10px 11px;background:#f4f7f5;color:#5c6d67;font-weight:600;white-space:nowrap}.data-table td{padding:12px 11px;border-bottom:1px solid #edf1ef;vertical-align:middle}.data-table td small,.data-table a small{display:block;color:var(--muted);font-size:10px;margin-top:4px}.data-table tr:hover td{background:#fbfdfc}.data-table .actions{display:flex;gap:10px;white-space:nowrap}.line-summary{display:block;margin:2px 0}.empty-state{padding:28px 16px;text-align:center;color:var(--muted);font-size:12px}.line-editor{display:flex;flex-direction:column;gap:10px}.line-card{display:grid;grid-template-columns:34px minmax(170px,1.4fr) minmax(130px,1fr) minmax(90px,.65fr) minmax(100px,.7fr) 100px 54px;align-items:end;gap:10px;padding:13px;border-radius:12px;background:#f7faf8;border:1px solid var(--line)}.line-number{width:30px;height:40px;display:grid;place-items:center;border-radius:8px;background:#e5eee9;color:var(--green);font-weight:700}.line-amount{height:40px;display:flex;flex-direction:column;justify-content:center}.line-amount span{font-size:10px;color:var(--muted)}.line-amount strong{font-size:13px}.delete-field{height:40px;display:flex!important;flex-direction:row!important;align-items:center;justify-content:center;gap:4px!important;color:var(--red)!important}.delete-field input{width:auto}.order-total{display:flex;align-items:center;justify-content:flex-end;gap:20px;padding:15px 5px 0}.order-total span{color:var(--muted)}.order-total strong{font-size:18px}.sticky-actions{position:sticky;bottom:10px;z-index:10;margin:18px 0;display:flex;justify-content:flex-end;gap:9px;padding:10px;border-radius:13px;background:rgba(255,255,255,.94);border:1px solid var(--line);box-shadow:0 8px 32px rgba(15,55,43,.13);backdrop-filter:blur(8px)}.process-banner{display:flex;justify-content:space-between;align-items:center;padding:16px 18px;border-radius:14px;margin-bottom:12px}.process-banner>div{display:flex;align-items:center;gap:12px}.process-banner>div>span{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;font-weight:800}.process-banner strong{font-size:15px}.process-banner p{margin:4px 0 0;font-size:12px}.process-banner.pending{background:var(--red-soft);border:1px solid #f1cbc8}.process-banner.pending>div>span{background:#fff;color:var(--red)}.process-banner.complete{background:var(--green-soft);border:1px solid #cde5da}.process-banner.complete>div>span{background:#fff;color:var(--green-2)}.pending-strip{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:11px 14px;background:#fff;border:1px solid #efcfcc;border-radius:11px;margin-bottom:15px;font-size:11px}.pending-strip strong{color:var(--red)}.pending-strip span{padding:3px 7px;border-radius:6px;background:var(--red-soft);color:var(--red)}.process-section{border-left:4px solid #cfe0d8}.process-section.section-pending{border-left-color:#dc5d55}.field-pending .form-control,.section-pending select:invalid{border-color:#db6e67;background:#fffafa}.pending-text{color:var(--red);font-size:11px}.copy-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:15px}.copy-check{display:flex;align-items:flex-start;gap:9px;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fbfdfc}.copy-check.pending{border-color:#edaaa5;background:#fff8f7}.copy-check input{margin-top:3px}.copy-check strong,.copy-check small{display:block}.copy-check small{color:var(--muted);font-size:10px;margin-top:3px}.role-note{font-size:11px;color:var(--muted);margin:10px 0 0}.attachment-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.attachment-grid a{display:flex;flex-direction:column;padding:13px;border:1px solid var(--line);border-radius:10px;background:#fafcfb;color:var(--ink)}.attachment-grid a span{font-size:10px;color:var(--green-2)}.attachment-grid a strong{font-size:13px;margin:4px 0}.attachment-grid a small{font-size:10px;color:var(--muted);overflow-wrap:anywhere}.detail-hero{display:flex;align-items:center;justify-content:space-between}.eyebrow{color:var(--green-2);font-size:11px;font-weight:700}.detail-hero h2{margin:6px 0 3px;font-size:23px}.detail-hero p{margin:0;color:var(--muted)}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.detail-list{margin:0}.detail-list div{display:grid;grid-template-columns:115px 1fr;padding:8px 0;border-bottom:1px solid #edf1ef}.detail-list dt{color:var(--muted);font-size:11px}.detail-list dd{margin:0;font-size:12px}.pending-list{display:flex;gap:6px;flex-wrap:wrap}.pending-list span{padding:6px 8px;border-radius:7px;background:var(--red-soft);color:var(--red);font-size:11px}.complete-box{padding:20px;border-radius:10px;background:var(--green-soft);color:var(--green);text-align:center;font-weight:700}.complete-box small{font-weight:400}.copy-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:13px}.copy-summary span{padding:7px 3px;text-align:center;border-radius:7px;background:#f0f2f1;color:#8b9793;font-size:10px}.copy-summary span.done{background:var(--green-soft);color:var(--green-2)}.daily-banner{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-radius:15px;background:linear-gradient(135deg,#0f513f,#29785e);color:#fff;margin-bottom:18px}.daily-banner>div{display:flex;align-items:center;gap:13px}.daily-banner>div>span{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:rgba(255,255,255,.16);font:800 18px serif}.daily-banner h2{margin:0;font-size:17px}.daily-banner p{margin:5px 0 0;color:#d5e8df;font-size:11px}.daily-banner>b{font-size:11px;padding:6px 9px;border-radius:99px;background:rgba(255,255,255,.15)}.settings-tabs{display:flex;gap:6px;margin-bottom:13px;overflow:auto}.settings-tabs button{border:1px solid var(--line);background:#fff;color:var(--muted);border-radius:9px;padding:9px 14px;cursor:pointer;white-space:nowrap}.settings-tabs button.active{background:var(--green);border-color:var(--green);color:#fff}.tab-panel{display:none}.tab-panel.active{display:block}.manage-list{display:flex;flex-direction:column}.manage-list>div{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 2px;border-bottom:1px solid #edf1ef}.manage-list strong,.manage-list small{display:block}.manage-list strong{font-size:13px}.manage-list small{font-size:10px;color:var(--muted);margin-top:4px}.login-page{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 20% 20%,#dcefe5,transparent 36%),linear-gradient(145deg,#f6f8f7,#e8efec)}.login-card{width:min(430px,100%);padding:30px;border-radius:20px;background:#fff;border:1px solid var(--line);box-shadow:0 22px 70px rgba(15,65,49,.16)}.login-brand{display:flex;align-items:center;gap:13px;margin-bottom:24px}.login-brand .brand-mark{width:48px;height:48px;color:#fff;background:var(--green)}.login-brand h1{margin:0;font-size:21px}.login-brand p{margin:5px 0 0;color:var(--muted);font-size:12px}.login-tip{text-align:center;color:var(--muted);font-size:10px;margin:18px 0 0}.mobile-only{display:none}.nav-backdrop{display:none}
@media(max-width:1050px){.app-shell{grid-template-columns:205px minmax(0,1fr)}.sidebar{padding-left:10px;padding-right:10px}.content{padding:20px}.line-card{grid-template-columns:30px repeat(2,minmax(130px,1fr))}.line-card .line-amount,.line-card .delete-field{align-self:end}.content-grid.two-one{grid-template-columns:1fr}.attachment-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){html{font-size:14px}.app-shell{display:block}.sidebar{position:fixed;left:-270px;width:244px;transition:left .2s}.sidebar.open{left:0}.nav-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:19}.sidebar.open~.main-column+.nav-backdrop,.nav-backdrop.open{display:block}.mobile-only{display:block}.topbar{height:66px;padding:0 14px;gap:8px}.topbar>div:nth-child(2){flex:1}.topbar h1{font-size:16px}.topbar p,.user-summary,.user-menu .btn:first-of-type{display:none}.content{padding:14px 12px 65px}.metric-grid{grid-template-columns:repeat(3,1fr);gap:8px}.metric-card{padding:13px}.metric-card strong{font-size:24px}.metric-card small{display:none}.content-grid.equal,.detail-grid{grid-template-columns:1fr}.product-stock-grid{grid-template-columns:1fr}.form-grid.three,.form-grid.two{grid-template-columns:1fr}.field-notes{grid-column:auto}.line-card{grid-template-columns:28px 1fr 1fr;padding:10px}.line-card>label:nth-of-type(1){grid-column:span 2}.line-card .line-amount{grid-column:2}.line-card .delete-field{grid-column:3}.copy-grid{grid-template-columns:repeat(2,1fr)}.filter-bar>*{flex:1}.filter-bar .form-control,.filter-bar .grow{min-width:140px;width:auto}.page-actions{overflow:auto;justify-content:flex-start}.page-actions .btn{flex:0 0 auto}.attachment-grid{grid-template-columns:1fr}.sticky-actions{bottom:5px}.daily-banner{align-items:flex-start}.daily-banner>b{display:none}.card{padding:15px;border-radius:13px}.data-table{min-width:720px}.quick-actions{grid-template-columns:repeat(3,1fr)}.record-row .badge{display:none}}
@media(max-width:460px){.metric-grid{grid-template-columns:1fr}.metric-card{display:grid;grid-template-columns:1fr auto;align-items:center}.metric-card strong{grid-column:2;grid-row:1/3}.quick-actions{grid-template-columns:repeat(2,1fr)}.copy-grid{grid-template-columns:1fr}.line-card{grid-template-columns:24px 1fr}.line-card>label:nth-of-type(1){grid-column:2}.line-card>label,.line-card .line-amount,.line-card .delete-field{grid-column:2}.detail-list div{grid-template-columns:90px 1fr}.copy-summary{grid-template-columns:repeat(2,1fr)}}

