:root{--wine:#6a211c;--red:#9e352b;--paper:#fbf8f2;--ivory:#f3ece1;--ink:#29231f;--muted:#786f66;--line:#ddd2c4;--gold:#c89b4b;--green:#2d6c42;--green-bg:#dfeee3;--amber:#8a5b0b;--amber-bg:#fff0c9;--danger:#8e261f;--danger-bg:#f5d2cf;--blue:#e7eff5;--shadow:0 12px 36px rgba(62,39,24,.08)}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.sidebar{position:fixed;inset:0 auto 0 0;width:232px;background:#2f2824;color:#f8f2e8;overflow:auto;z-index:10}.brand{display:flex;gap:12px;align-items:center;padding:22px 20px;color:#fff}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:var(--red);font:700 20px/1 serif}.brand b,.brand small{display:block}.brand small{font-size:11px;color:#cbbeb0;margin-top:2px;letter-spacing:.08em}.brand.large{padding:0;color:var(--ink)}.brand.large .brand-mark{width:48px;height:48px}.brand.large small{color:var(--muted)}nav{padding:0 12px 28px}nav p{margin:20px 10px 7px;color:#8f8276;font-size:10px;letter-spacing:.16em}nav a{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;color:#d9cec3;font-size:13px;margin:2px 0}nav a:hover,nav a.active{background:#443a34;color:#fff}nav a.active{box-shadow:inset 3px 0 var(--gold)}nav i{display:grid;place-items:center;width:24px;height:24px;border-radius:7px;background:#50443d;color:#d9c4a6;font-size:11px;font-style:normal}main{margin-left:232px;min-height:100vh}.topbar{height:58px;padding:0 28px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:rgba(251,248,242,.94);position:sticky;top:0;z-index:5;backdrop-filter:blur(12px);color:var(--muted);font-size:12px}.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#48a267;margin-right:6px}.user a{color:var(--red)}.menu-btn{display:none}.content{padding:30px;max-width:1800px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:24px}.page-head h1{font-size:29px;margin:2px 0 4px;line-height:1.2}.page-head p{margin:0;color:var(--muted)}.eyebrow{font-size:10px;letter-spacing:.17em;color:var(--red);font-weight:700}.head-actions{display:flex;gap:10px;align-items:center}.button,.primary,.link{border:0;cursor:pointer}.button,.primary{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 16px;border-radius:8px}.button{background:#fff;border:1px solid var(--line)}.primary{background:var(--wine);color:#fff;font-weight:650}.link{background:none;color:var(--red);font-weight:600}.hero-grid{display:grid;grid-template-columns:1.25fr 1fr 1fr 1fr;gap:14px}.kpi{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px 20px;box-shadow:var(--shadow);min-height:145px}.kpi span,.kpi small{display:block;color:var(--muted)}.kpi strong{display:block;font-size:31px;color:var(--wine);margin:12px 0}.kpi.hero{background:var(--wine);color:#fff}.kpi.hero span,.kpi.hero small{color:#e7d6ce}.kpi.hero strong{color:#fff;font-size:36px}.kpi.signal.ok{background:var(--green-bg)}.kpi.signal.warn{background:var(--amber-bg)}.progress{height:5px;background:#eadfd4;border-radius:5px;overflow:hidden}.progress b{display:block;height:100%;background:var(--gold)}.signal-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:14px 0}.signal-grid a{display:flex;align-items:center;justify-content:space-between;background:var(--ivory);border-radius:10px;padding:14px 16px}.signal-grid span{color:var(--muted)}.signal-grid b{font-size:21px;color:var(--wine)}.dashboard-grid{display:grid;grid-template-columns:2fr 1fr;gap:14px}.panel{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:20px}.panel.narrow{max-width:760px}.panel-head{display:flex;justify-content:space-between;align-items:flex-start}.panel h2{margin:0;font-size:17px}.panel p{margin:3px 0;color:var(--muted);font-size:12px}.panel-head a{color:var(--red);font-size:12px}.bars{height:240px;display:flex;align-items:flex-end;gap:5px;margin-top:22px;border-bottom:1px solid var(--line)}.bar-day{height:100%;flex:1;min-width:8px;text-align:center}.bar-stack{height:calc(100% - 23px);display:flex;gap:2px;align-items:flex-end;justify-content:center}.bar-stack i{width:42%;min-height:1px;border-radius:3px 3px 0 0}.bar-day small{font-size:9px;color:var(--muted)}i.plan,.legend i.plan{background:#aabfce}i.actual,.legend i.actual{background:var(--red)}.legend{margin-top:10px;color:var(--muted);font-size:11px}.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin:0 5px 0 12px}.losses{min-height:330px}.loss-row{display:grid;grid-template-columns:74px 1fr 70px;gap:10px;align-items:center;margin:24px 0}.loss-row span{color:var(--muted)}.loss-row div{height:8px;background:var(--ivory);border-radius:8px;overflow:hidden}.loss-row i{display:block;height:100%;background:var(--red)}.loss-row b{text-align:right}.table-wrap{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:auto;box-shadow:var(--shadow)}.data-table{width:100%;border-collapse:collapse;white-space:nowrap}.data-table th{position:sticky;top:0;background:#3c332e;color:#fff;text-align:left;padding:12px 11px;font-size:12px;z-index:2}.data-table td{padding:10px 11px;border-bottom:1px solid #eee6dc;font-size:12px}.data-table tr:hover td{background:#fffaf2}.data-table .note{white-space:normal;min-width:180px;color:var(--muted)}.daily-table td:nth-child(2){min-width:110px}.pill{display:inline-block;padding:3px 8px;border-radius:999px;font-size:11px;font-weight:650}.pill.ok{background:var(--green-bg);color:var(--green)}.pill.warn{background:var(--amber-bg);color:var(--amber)}.pill.bad{background:var(--danger-bg);color:var(--danger)}.status-select,.shift{border:1px solid var(--line);border-radius:6px;padding:5px;background:#fff}.shift-legend{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.shift-legend span{background:#fff;border:1px solid var(--line);padding:7px 10px;border-radius:7px;color:var(--muted);font-size:11px}.shift-legend b{color:var(--wine);margin-right:6px}.warning-box{display:flex;gap:12px;background:var(--amber-bg);color:var(--amber);padding:12px 16px;border-radius:9px;margin:12px 0}.schedule-table th,.schedule-table td{text-align:center;padding:7px 5px}.schedule-table th small,.schedule-table td small{display:block;font-size:9px;color:#bcb0a6}.schedule-table .sticky{position:sticky;left:0;z-index:3;text-align:left;min-width:130px}.schedule-table td.sticky{background:#fff}.schedule-table th.weekend{background:var(--wine)}.shift{width:58px;font-size:11px;padding:4px 2px}.shift.休{background:var(--danger-bg);color:var(--danger)}.shift.A班,.shift.B班{background:var(--blue)}.shift.C班,.shift.D班{background:var(--amber-bg)}dialog{border:0;border-radius:16px;padding:0;width:min(850px,calc(100% - 30px));box-shadow:0 30px 90px rgba(0,0,0,.25)}dialog::backdrop{background:rgba(32,26,22,.55);backdrop-filter:blur(3px)}.record-form{padding:24px}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:18px}.modal-head h2{margin:3px 0}.modal-head button{border:0;background:none;font-size:24px;cursor:pointer}.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.form-grid label,.stack label{display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:12px}.form-grid input,.form-grid select,.form-grid textarea,.stack input,.settings-form input,input[type=month]{border:1px solid var(--line);border-radius:7px;background:#fff;padding:9px 10px;color:var(--ink)}.form-grid .wide{grid-column:1/-1}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.settings-form label{display:grid;grid-template-columns:1fr 160px 80px;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid var(--line)}.settings-form span b,.settings-form span small{display:block}.settings-form span small{color:var(--muted)}.settings-form em{font-style:normal;color:var(--muted)}.settings-form .primary{margin-top:18px}.flash{padding:11px 14px;border-radius:8px;margin-bottom:14px}.flash.success{background:var(--green-bg);color:var(--green)}.flash.error{background:var(--danger-bg);color:var(--danger)}.empty{display:grid;place-items:center;min-height:120px;color:var(--muted)}.login-page{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 20% 20%,#fff 0,#f8f1e7 45%,#eadbca 100%)}.login-card{width:min(420px,calc(100% - 32px));background:rgba(255,255,255,.9);padding:34px;border:1px solid rgba(255,255,255,.8);border-radius:20px;box-shadow:0 30px 80px rgba(65,38,22,.15)}.login-card h1{margin:30px 0 5px}.login-card>p{color:var(--muted);margin:0 0 22px}.stack{display:grid;gap:15px}.stack input{height:43px}.stack .primary{height:44px;margin-top:5px}
.account-panel{margin-top:16px}.password-form{display:grid;grid-template-columns:repeat(3,1fr) auto;gap:12px;align-items:end;margin-top:18px}.password-form label{display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:12px}.password-form input{border:1px solid var(--line);border-radius:7px;padding:9px 10px}
@media(max-width:1100px){.hero-grid{grid-template-columns:1fr 1fr}.dashboard-grid{grid-template-columns:1fr}.content{padding:22px}.form-grid{grid-template-columns:1fr 1fr}}
@media(max-width:720px){.password-form{grid-template-columns:1fr}.sidebar{transform:translateX(-100%);transition:.2s}.nav-open .sidebar{transform:none}.nav-open:after{content:"";position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:9}.sidebar{z-index:11}main{margin-left:0}.menu-btn{display:block;border:0;background:none;font-size:20px}.topbar{padding:0 15px}.topbar>div:first-of-type{display:none}.content{padding:18px 12px}.page-head{align-items:flex-start;flex-direction:column}.hero-grid{grid-template-columns:1fr}.signal-grid{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}.head-actions{width:100%;flex-wrap:wrap}.settings-form label{grid-template-columns:1fr 100px 50px}.bars{height:180px}}

/* 后厨采购：与前厅经营总表共用同一视觉与账号体系 */
.signal-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.procurement-toolbar{display:grid;grid-template-columns:180px minmax(260px,1fr) 220px 100px;gap:14px;align-items:end;margin-bottom:14px}
.procurement-toolbar label,.new-user-form label{display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:12px}
.procurement-toolbar input,.procurement-toolbar select,.procurement-item-table input,.purchase-lines input,.new-user-form input,.new-user-form select,.user-row select{width:100%;border:1px solid var(--line);border-radius:7px;background:#fff;padding:9px 10px;color:var(--ink)}
.selected-count{display:grid;grid-template-columns:auto auto;align-items:end;justify-content:end;column-gap:5px}
.selected-count span,.selected-count small{color:var(--muted);font-size:11px}
.selected-count strong{font-size:29px;color:var(--wine);grid-row:1/3;grid-column:2}
.procurement-item-table{max-height:58vh}
.procurement-item-table th{top:0}
.procurement-item-table td:first-child small,.purchase-lines td:first-child small{display:block;margin-top:3px;color:var(--muted)}
.category-chip{display:inline-block;padding:3px 7px;border-radius:5px;background:var(--ivory);color:var(--wine);margin-right:6px}
.subtle{color:var(--muted)}
.procurement-item-table input{min-width:120px}
.procurement-item-table .qty-input{width:100px;min-width:100px;font-weight:700}
.procurement-submit{position:sticky;bottom:0;display:flex;justify-content:flex-end;align-items:center;gap:18px;padding:14px 18px;margin-top:10px;background:rgba(251,248,242,.95);border:1px solid var(--line);border-radius:12px;box-shadow:0 -8px 24px rgba(62,39,24,.07);backdrop-filter:blur(12px);z-index:4}
.procurement-submit span,.purchase-actions>span{color:var(--muted);font-size:12px}
.procurement-recent{margin-top:18px}
.request-list{display:grid;gap:8px;margin-top:15px}
.request-summary{display:grid;grid-template-columns:1fr auto 100px;align-items:center;gap:12px;padding:11px 12px;background:var(--paper);border-radius:9px}
.request-summary div b,.request-summary div small{display:block}
.request-summary div small{color:var(--muted);margin-top:2px}
.request-summary>strong{text-align:right;color:var(--wine)}
.procurement-submitted{background:var(--amber-bg);color:var(--amber)}
.procurement-purchasing{background:var(--blue);color:#315d77}
.procurement-purchased{background:#ede4f4;color:#65477a}
.procurement-received{background:var(--green-bg);color:var(--green)}
.status-tabs{display:flex;gap:7px;flex-wrap:wrap;margin:-5px 0 18px}
.status-tabs a{padding:8px 13px;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--muted);font-size:12px}
.status-tabs a.active{background:var(--wine);border-color:var(--wine);color:#fff}
.purchase-cards{display:grid;gap:16px}
.purchase-card{background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:var(--shadow);overflow:hidden}
.purchase-card>header{display:flex;justify-content:space-between;gap:20px;padding:18px 20px;background:linear-gradient(110deg,#fff 0,#fbf4eb 100%)}
.purchase-card h2{margin:3px 0;font-size:18px}
.purchase-card header p{margin:0;color:var(--muted);font-size:12px}
.request-state{text-align:right}
.request-state strong{display:block;margin-top:8px;font-size:20px;color:var(--wine)}
.purchase-card .table-wrap{border-radius:0;border-left:0;border-right:0;box-shadow:none}
.purchase-lines input{min-width:100px}
.purchase-lines td:nth-child(5) input{min-width:140px}
.line-processing{min-width:145px}.line-action-button{display:block;width:100%;margin:6px 0 0;border:0;border-radius:7px;background:var(--wine);color:#fff;padding:7px 9px;cursor:pointer;font-weight:650}.line-action-button.undo{background:#fff;color:var(--muted);border:1px solid var(--line)}.line-processing .pill{display:block;width:max-content}.line-status-pending{background:var(--amber-bg);color:var(--amber)}.line-status-ordered{background:var(--green-bg);color:var(--green)}
.purchase-card.request-unordered{border-color:#e4b36c}.purchase-card.request-unordered>header{background:linear-gradient(110deg,#fff8ed 0,#ffe6c5 100%);box-shadow:inset 5px 0 #d97917}.purchase-card.request-ordered{border-color:#9fc9aa}.purchase-card.request-ordered>header{background:linear-gradient(110deg,#f7fff8 0,#dfeee3 100%);box-shadow:inset 5px 0 var(--green)}.request-status-large{font-size:13px;padding:6px 12px}.purchase-lines tr.item-unordered td,.purchase-lines tr.item-unordered:hover td{background:#fff8ed}.purchase-lines tr.item-ordered td,.purchase-lines tr.item-ordered:hover td{background:#f1f8f3;color:#526158}.purchase-lines tr.item-unordered td:first-child{box-shadow:inset 4px 0 #d97917}.purchase-lines tr.item-ordered td:first-child{box-shadow:inset 4px 0 var(--green)}.order-state-badge{font-size:12px;padding:5px 10px;font-weight:750}.status-tabs a.order-tab-open.active{background:#b85d10;border-color:#b85d10}.status-tabs a.order-tab-purchased.active{background:var(--green);border-color:var(--green)}
.money-input{display:flex;align-items:center;border:1px solid var(--line);border-radius:7px;background:#fff;padding-left:8px}
.money-input span{color:var(--muted)}
.money-input input{border:0;padding-left:4px;min-width:80px}
.purchase-actions{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:14px 20px}
.purchase-actions>div{display:flex;gap:8px;flex-wrap:wrap}
.receive-button{background:var(--green)}
.empty-state{text-align:center;padding:45px}
.empty-state b{font-size:18px}
.empty-state p{color:var(--muted)}
.empty-state .primary{margin-top:8px}
.procurement-report-grid{margin-top:14px}
.flat-table{margin-top:15px;box-shadow:none}
.price-history{display:grid;margin-top:10px}
.price-history>div{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid #eee6dc}
.price-history b,.price-history small{display:block}
.price-history small{color:var(--muted);margin-top:2px}
.price-history strong{color:var(--wine);white-space:nowrap}
.top-items{margin-top:14px}
.user-admin-panel{max-width:1050px}
.user-admin-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:24px;margin-top:18px}
.existing-users{display:grid;align-content:start}
.user-row{display:grid;grid-template-columns:1fr 120px 80px 70px;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid #eee6dc}
.user-row span b,.user-row span small{display:block}
.user-row span small{color:var(--muted)}
.active-check{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:12px}
.new-user-form{background:var(--ivory);border-radius:12px;padding:18px;display:grid;gap:12px}
.new-user-form h3{margin:0 0 4px}
.new-user-form .primary{margin-top:4px}
@media(max-width:1100px){.procurement-toolbar{grid-template-columns:1fr 1fr}.user-admin-grid{grid-template-columns:1fr}}
@media(max-width:720px){.procurement-toolbar{grid-template-columns:1fr;padding:15px}.selected-count{justify-content:start}.procurement-item-table{max-height:55vh}.procurement-submit{justify-content:space-between}.procurement-submit span{max-width:130px}.purchase-card>header,.purchase-actions{align-items:flex-start;flex-direction:column}.request-state{text-align:left}.purchase-actions>div{width:100%}.purchase-actions button{flex:1}.request-summary{grid-template-columns:1fr auto}.request-summary>strong{grid-column:1/-1;text-align:left}.user-row{grid-template-columns:1fr 100px}.user-row .active-check,.user-row button{grid-row:2}.procurement-kpis{grid-template-columns:1fr 1fr}}

/* 后厨申报密集模式：仅保留品名和数量 */
.procurement-toolbar-dense{grid-template-columns:minmax(240px,1fr) 220px 90px;padding:12px 15px;margin-bottom:10px}
.custom-item-panel{display:grid;grid-template-columns:150px minmax(280px,1fr) auto;gap:12px;align-items:start;padding:12px 15px;margin-bottom:10px}
.custom-item-head b,.custom-item-head small{display:block}.custom-item-head small{color:var(--muted);font-size:11px;margin-top:2px}
.custom-item-rows{display:grid;gap:7px}.custom-item-row{display:grid;grid-template-columns:130px minmax(180px,1fr) 110px;gap:8px}
.custom-item-row input,.custom-item-row select{width:100%;border:1px solid var(--line);border-radius:7px;background:#fff;padding:7px 9px;color:var(--ink)}
.add-custom-item{min-height:34px;white-space:nowrap}
.dense-apply-table{table-layout:fixed}.dense-apply-table th,.dense-apply-table td{padding:6px 10px}.dense-apply-table th:last-child,.dense-apply-table td:last-child{width:130px}
.procurement-groups{display:grid;gap:12px}.procurement-group{padding:0;overflow:hidden}.procurement-group-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 14px;background:linear-gradient(110deg,#fff 0,#fbf4eb 100%);border-bottom:1px solid var(--line)}.procurement-group-head>div{display:flex;align-items:center;gap:9px}.procurement-group-head span{display:grid;place-items:center;width:24px;height:24px;border-radius:7px;background:var(--wine);color:#fff;font-size:11px;font-weight:700}.procurement-group-head h2{font-size:15px}.procurement-group-head small{color:var(--muted);font-size:11px}.procurement-group .table-wrap{border:0;border-radius:0;box-shadow:none}.category-empty{padding:18px 15px;color:var(--muted);font-size:12px}
.apply-item-name{display:flex;align-items:baseline;gap:8px}.apply-item-name small{color:var(--muted);font-size:10px}.apply-item-name em{font-style:normal;font-size:10px;color:var(--wine);background:var(--ivory);border-radius:999px;padding:1px 6px}
.procurement-item-table .dense-apply-table input{min-width:0;padding:6px 8px}.procurement-item-table .dense-apply-table .qty-input{width:100%;min-width:0;font-weight:700}
.dense-apply-table tr:focus-within td{background:#fff6e8}
@media(max-width:720px){.procurement-toolbar-dense{grid-template-columns:1fr 1fr;padding:10px}.procurement-toolbar-dense .selected-count{grid-column:1/-1}.custom-item-panel{grid-template-columns:1fr;padding:10px}.custom-item-head{display:flex;align-items:baseline;gap:8px}.custom-item-head small{margin:0}.custom-item-row{grid-template-columns:112px minmax(0,1fr) 82px}.custom-item-row input,.custom-item-row select{padding:7px 6px}.add-custom-item{justify-self:start}.procurement-item-table{max-height:64vh}.procurement-group-head{align-items:flex-start;flex-direction:column;gap:3px;padding:9px 10px}.procurement-group-head small{padding-left:33px}.dense-apply-table th,.dense-apply-table td{padding:5px 8px}.dense-apply-table th:last-child,.dense-apply-table td:last-child{width:105px}.procurement-submit{padding:10px 12px}}

/* 排班人员可维护 */
.schedule-table .staff-cell{min-width:205px}.staff-name-form{display:grid;grid-template-columns:minmax(105px,1fr) auto;gap:5px}.staff-name-form input{min-width:0;width:100%;border:1px solid var(--line);border-radius:6px;padding:5px 7px;font-weight:700}.staff-name-form button{border:1px solid var(--line);border-radius:6px;background:var(--ivory);color:var(--wine);padding:4px 7px;cursor:pointer}.add-staff-panel{display:flex;align-items:end;justify-content:space-between;gap:22px;margin-top:15px}.add-staff-panel h2{margin:0}.add-staff-form{display:grid;grid-template-columns:minmax(150px,1fr) 120px 120px auto;gap:10px;align-items:end}.add-staff-form label{display:flex;flex-direction:column;gap:4px;color:var(--muted);font-size:11px}.add-staff-form input,.add-staff-form select{border:1px solid var(--line);border-radius:7px;background:#fff;padding:8px 9px;color:var(--ink)}
@media(max-width:900px){.add-staff-panel{align-items:stretch;flex-direction:column}.add-staff-form{grid-template-columns:1fr 1fr}.add-staff-form .primary{width:100%}}
