:root{color:#18212f;background:#edf2f0;font-family:Inter,Segoe UI,Microsoft YaHei,PingFang SC,Noto Sans SC,Arial,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #17212b;--muted: #637081;--line: #d7e1e4;--line-strong: #bdcbd1;--surface: #ffffff;--surface-soft: #f4f7f7;--mint: #0f9f8f;--mint-soft: #e5f5f1;--blue: #3578c7;--blue-soft: #e7f0fb;--amber: #c87b18;--amber-soft: #fff2dc;--red: #c94e43;--red-soft: #fae9e7;--green: #25805b;--green-soft: #e5f4ec;--shadow: 0 12px 28px rgba(26, 42, 52, .08);--shadow-tight: 0 6px 14px rgba(26, 42, 52, .08)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}.app-shell{min-height:100vh;display:grid;grid-template-columns:268px minmax(0,1fr);background:linear-gradient(180deg,#ffffffc2,#edf2f0a8),#edf2f0;min-width:0}.sidebar{position:sticky;top:0;height:100vh;padding:18px 15px;background:#111b22;color:#edf5f4;display:flex;flex-direction:column;gap:16px;border-right:1px solid rgba(255,255,255,.08)}.brand{display:flex;align-items:center;gap:12px;padding:8px 8px 14px;border-bottom:1px solid rgba(255,255,255,.12)}.brand-mark{width:42px;height:42px;border-radius:8px;background:#e9f7f3;color:#0f9f8f;display:grid;place-items:center;font-size:24px;font-weight:800}.brand strong{display:block;font-size:18px;letter-spacing:0}.brand span,.sidebar-note span{color:#b8c4ca;font-size:12px}.nav-list{display:grid;gap:6px}.nav-item{width:100%;min-height:38px;border:0;border-radius:7px;display:grid;grid-template-columns:20px minmax(0,1fr) 14px;gap:8px;align-items:center;padding:8px 10px;background:transparent;color:#d7e2e5;text-align:left}.nav-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-item:hover{background:#ffffff0f;color:#fff}.nav-item.active{background:#21313a;color:#fff;box-shadow:inset 3px 0 #2fc4ac}.nav-item.locked{color:#7f8e96}.sidebar-note{margin-top:auto;border:1px solid rgba(255,255,255,.12);border-radius:7px;padding:10px;display:flex;align-items:center;gap:8px}.main-panel{min-width:0;padding:22px 26px 34px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:12px;padding:14px 15px;border:1px solid var(--line);border-radius:8px;background:#ffffffe0;box-shadow:var(--shadow-tight);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.topbar-subline{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.topbar-subline span{min-height:23px;display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:7px;background:#f7faf9;color:#526171;padding:2px 8px;font-size:12px;white-space:nowrap}.eyebrow{margin:0 0 5px;color:var(--muted);font-size:11px;line-height:1.2;text-transform:uppercase}h1,h2{margin:0;letter-spacing:0}h1{font-size:25px;line-height:1.2}h2{font-size:17px;line-height:1.3}.toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end;min-width:0}.toolbar select{max-width:190px}select,input,textarea{min-height:36px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);padding:0 10px;outline:none;max-width:100%;min-width:0}select:focus,input:focus,textarea:focus{border-color:#72b6aa;box-shadow:0 0 0 3px #0f9f8f24}textarea{min-height:82px;padding:10px;resize:vertical;line-height:1.45}select:disabled{color:#8b95a4;background:#eef2f4}.icon-button,.ghost-button,.primary-button,.action-button{border:0;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;max-width:100%;line-height:1.2;text-align:center;white-space:nowrap}.icon-button svg,.ghost-button svg,.primary-button svg,.action-button svg{flex:0 0 auto}.icon-button{width:36px;background:#fff;border:1px solid var(--line);color:var(--ink)}.ghost-button{background:var(--surface-soft);color:var(--ink);border:1px solid var(--line);padding:0 11px}.primary-button{background:#132a38;color:#fff;padding:0 14px;min-width:112px}.toast-line{min-height:38px;display:flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid #c4dfd8;border-radius:8px;color:#116b62;background:#f3fbf8;margin-bottom:16px;box-shadow:var(--shadow-tight)}.screen-grid{display:grid;gap:16px}.ops-command{display:grid;grid-template-columns:minmax(360px,.9fr) minmax(0,1.1fr);gap:14px;align-items:stretch}.ops-command-main,.ops-queue article{border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}.ops-command-main{min-height:190px;padding:18px;display:grid;grid-template-columns:minmax(0,1fr) 132px;gap:18px;align-items:center;background:#13222a;color:#eff8f5}.ops-command-copy{min-width:0;display:grid;gap:9px}.ops-command-copy .eyebrow{color:#91aaa9}.ops-command-copy h2{font-size:24px;line-height:1.2}.ops-command-copy p:last-child{margin:0;color:#b8c8c8;line-height:1.55;font-size:13px}.ops-score{width:132px;aspect-ratio:1;border:1px solid rgba(255,255,255,.16);border-radius:8px;background:#ffffff12;display:grid;place-items:center;align-content:center;gap:5px;text-align:center}.ops-score span,.ops-score small{color:#b8c8c8;font-size:12px}.ops-score strong{color:#fff;font-size:38px;line-height:1}.ops-queue{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.ops-queue article{min-height:90px;padding:12px;background:var(--surface);display:grid;align-content:space-between;gap:6px}.ops-queue span{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:12px}.ops-queue strong{color:var(--ink);font-size:18px;line-height:1.2}.ops-queue small{color:var(--muted);font-size:12px;line-height:1.35}.kpi-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.metric,.surface{background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}.metric{padding:14px;min-height:116px;display:grid;align-content:space-between;border-top-width:4px}.metric-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.metric span,.metric small{color:var(--muted);font-size:12px}.metric-icon{width:32px;height:32px;border-radius:8px;display:grid;place-items:center;background:#f0f5f5;color:#304757}.metric strong{font-size:26px;line-height:1.05}.metric-blue{border-top-color:var(--blue)}.metric-red{border-top-color:var(--red)}.metric-amber{border-top-color:var(--amber)}.metric-green{border-top-color:var(--green)}.operating-cost-panel{min-height:0}.cost-summary-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.cost-summary-grid.manager-only{grid-template-columns:minmax(260px,360px)}.dashboard-cost-mini{margin-top:14px;padding-top:13px;border-top:1px solid var(--line)}.dashboard-cost-mini .cost-visualization{gap:10px}.dashboard-cost-mini .cost-viz-row{gap:5px}.cost-card{min-height:86px;border:1px solid var(--line);border-left-width:4px;border-radius:8px;background:#f8fbfc;padding:12px;display:grid;align-content:space-between;gap:6px}.cost-card span,.cost-card small{color:var(--muted);font-size:12px}.cost-card strong{font-size:22px;line-height:1.05}.cost-blue{border-left-color:var(--blue)}.cost-red{border-left-color:var(--red)}.cost-amber{border-left-color:var(--amber)}.cost-green{border-left-color:var(--green)}.cost-table table{min-width:860px}.cost-workspace{display:grid;grid-template-columns:minmax(380px,.72fr) minmax(0,1.28fr);gap:16px;align-items:start}.cost-form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.compact-cost-grid{margin-bottom:12px;grid-template-columns:repeat(3,minmax(0,1fr))}.cost-panel-grid{margin-bottom:16px}.settings-workspace{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}.settings-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.settings-form .wide-field{grid-column:span 3}.settings-actions{display:flex;align-items:end;justify-content:flex-end;gap:10px}.danger-text{color:var(--red);border-color:#f0c9c5}.danger-text:disabled{cursor:not-allowed;color:#9aa4ad;border-color:var(--line);background:#eef2f4}.account-workspace{display:grid;grid-template-columns:minmax(380px,.72fr) minmax(0,1.28fr);gap:16px;align-items:start}.account-form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.account-table table,.operation-table table,.campaign-table table,.store-table table{min-width:880px}td code{border:1px solid var(--line);border-radius:8px;background:#f7fafb;color:#294355;padding:3px 7px;font-size:12px}.cost-visualization{display:grid;gap:14px}.cost-legend{display:flex;flex-wrap:wrap;gap:10px;color:var(--muted);font-size:12px}.cost-legend span{display:inline-flex;align-items:center;gap:6px}.cost-legend i{width:10px;height:10px;border-radius:3px;display:inline-block}.cost-viz-row{display:grid;gap:7px}.cost-viz-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.cost-viz-head span,.cost-viz-row small{color:var(--muted);font-size:12px}.stacked-cost-bar{min-width:54px;height:18px;border-radius:8px;overflow:hidden;display:flex;background:#edf2f4}.stacked-cost-bar i{min-width:4px;height:100%;display:block}.cost-legend .material,.stacked-cost-bar .material{background:var(--blue)}.cost-legend .people,.stacked-cost-bar .people{background:var(--green)}.cost-legend .shop,.stacked-cost-bar .shop{background:var(--amber)}.cost-legend .campaign,.stacked-cost-bar .campaign{background:var(--red)}.two-column,.split-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(330px,.65fr);gap:16px;align-items:start}.two-column.bottom{grid-template-columns:minmax(330px,.72fr) minmax(0,1.28fr)}.surface{padding:15px;min-width:0}.surface:hover{border-color:var(--line-strong)}.ingredient-editor,.purchase-form,.transfer-form,.recipe-editor,.sale-form,.manual-form,.stocktake-form,.cost-editor,.store-editor,.campaign-editor,.account-editor{scroll-margin-top:16px}.surface.large,.surface.full{min-height:260px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.section-actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;min-width:0}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:8px;background:#fff}.table-wrap.compact{max-height:330px;overflow:auto}table{width:100%;border-collapse:collapse;min-width:720px}th,td{padding:11px 12px;text-align:left;border-bottom:1px solid var(--line);font-size:13px;line-height:1.35;vertical-align:middle}th{position:sticky;top:0;z-index:1;background:#f7fafb;color:#596574;font-size:12px;font-weight:700}tbody tr:hover{background:#f8fbfb}tr:last-child td{border-bottom:0}td strong{font-weight:700}.status-chip{display:inline-flex;align-items:center;min-height:24px;padding:2px 8px;border-radius:8px;font-size:12px;font-weight:700;white-space:nowrap}.status-chip.red{background:var(--red-soft);color:var(--red)}.status-chip.amber{background:var(--amber-soft);color:var(--amber)}.status-chip.green{background:var(--green-soft);color:var(--green)}.status-chip.blue{background:#e7f2f8;color:var(--blue)}.status-chip.neutral{background:#eef2f4;color:#5c6875}.table-subtext{display:block;margin-top:3px;color:var(--muted);font-size:12px}.mini-action{min-height:30px;border:1px solid #cfe0e4;border-radius:8px;background:#f8fbfc;color:#132a38;padding:0 9px;line-height:1.2;text-align:center;white-space:nowrap;box-shadow:0 1px #18212f08}.mini-action:hover{background:#edf5f6;border-color:var(--line-strong)}.replenishment-table table{min-width:680px}.store-bars,.record-list,.deduct-list,.report-bars{display:grid;gap:10px}.store-bar{display:grid;gap:7px;padding-bottom:11px;border-bottom:1px solid var(--line)}.store-bar:last-child{border-bottom:0;padding-bottom:0}.store-bar div:first-child,.record-row,.deduct-list div,.report-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.store-bar span,.store-bar small,.record-row span{color:var(--muted);font-size:12px}.bar-track{height:9px;border-radius:999px;background:#edf2f4;overflow:hidden}.bar-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#0f9f8f,#3578c7)}.action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.action-button{min-height:62px;padding:0 12px;justify-content:flex-start;border:1px solid var(--line);background:#f8fbfc;color:var(--ink);font-weight:700;box-shadow:0 1px #18212f08}.action-button:hover,.ghost-button:hover,.icon-button:hover{border-color:var(--line-strong);background:#f1f6f7}.form-grid{display:grid;gap:12px}.field{display:grid;gap:6px}.field span{color:#4e5d6d;font-size:12px;font-weight:700}.field input,.field select,.field textarea{width:100%}.search-box{min-width:260px;display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:8px;padding:0 9px;background:#fff}.search-box input{border:0;padding:0;min-height:34px;width:100%}.recipe-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.inventory-workspace{display:grid;grid-template-columns:minmax(360px,.78fr) minmax(0,1.22fr);gap:16px;align-items:start}.ingredient-form-row{display:grid;grid-template-columns:1.35fr .8fr .55fr;gap:10px}.ingredient-form-row.metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.ingredient-list{display:grid;gap:8px;max-height:360px;overflow:auto}.ingredient-row{width:100%;min-height:58px;border:1px solid var(--line);border-radius:8px;background:#fbfdfd;color:var(--ink);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:9px 11px;text-align:left}.ingredient-row.selected{border-color:#7abeb4;box-shadow:0 0 0 3px #0f9f8f1f}.ingredient-row div{min-width:0;display:grid;gap:3px}.ingredient-row div:last-child{text-align:right}.ingredient-row strong,.ingredient-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ingredient-row span{color:var(--muted);font-size:12px}.recipe-workspace{display:grid;grid-template-columns:minmax(420px,.9fr) minmax(0,1.1fr);gap:16px;align-items:start}.recipe-form-row{display:grid;grid-template-columns:1.3fr .85fr .65fr .8fr;gap:10px}.recipe-lines{border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fbfdfd}.recipe-cost-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.recipe-cost-strip div{min-height:58px;border:1px solid var(--line);border-radius:8px;background:#f8fbfc;display:grid;align-content:center;gap:4px;padding:9px 10px}.recipe-cost-strip span{color:var(--muted);font-size:12px}.recipe-cost-strip strong{color:var(--ink);font-size:16px}.compact-cost{margin-bottom:10px}.availability-panel{margin-bottom:10px;border:1px solid var(--line);border-radius:8px;background:#f8fbfc;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:10px}.availability-panel.ready{border-color:#bfddd2;background:#f4fbf7}.availability-panel.has-shortage{border-color:#f0c9c5;background:#fff7f6}.availability-panel div{display:grid;gap:3px}.availability-panel span{color:var(--muted);font-size:12px}.availability-panel strong{font-size:17px}.availability-panel p{grid-column:1 / -1;margin:0;color:var(--red);font-size:12px;line-height:1.45}.recipe-line{display:grid;grid-template-columns:minmax(170px,1fr) 120px 64px 46px;gap:8px;align-items:center;padding:9px;border-bottom:1px solid var(--line)}.recipe-line:last-child{border-bottom:0}.recipe-line.header{min-height:36px;background:#f4f8f9;color:#596574;font-size:12px;font-weight:700}.recipe-line input,.recipe-line select{min-height:34px}.unit-pill{min-height:30px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;background:var(--blue-soft);color:#245b98;font-size:12px;font-weight:800}.danger-icon{color:var(--red);border-color:#f0c9c5}.recipe-editor-actions{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}.recipe-editor-actions button{min-width:118px}.recipe-panel{border:1px solid var(--line);border-radius:8px;padding:13px;background:#fbfdfd;display:grid;gap:9px}.recipe-panel.selected{border-color:#7abeb4;box-shadow:0 0 0 3px #0f9f8f1f}.recipe-cost-row{display:flex;flex-wrap:wrap;gap:7px}.recipe-cost-row span{min-height:26px;border-radius:8px;display:inline-flex;align-items:center;gap:4px;padding:4px 8px;background:var(--amber-soft);color:#8a5313;font-size:12px}.recipe-cost-row strong{color:#643b0c}.recipe-panel div:first-child{display:grid;gap:3px}.recipe-panel span,.recipe-panel p{color:var(--muted);font-size:13px;margin:0;line-height:1.45}.ingredient-tags{display:flex;flex-wrap:wrap;gap:6px}.ingredient-tags span{border-radius:8px;padding:5px 8px;background:var(--mint-soft);color:#116b62;font-weight:700}.deduct-list div{min-height:38px;border-bottom:1px solid var(--line)}.deduct-list div:last-child{border-bottom:0}.deduct-list strong,.negative{color:var(--red)}.deduct-list .shortage-line{background:#fff7f6}.deduct-list .shortage-line span,.deduct-list .shortage-line strong{color:var(--red)}.positive{color:var(--green)}.diff-box{min-height:72px;border:1px dashed var(--line-strong);border-radius:8px;padding:11px;display:grid;gap:4px;background:#f8fbfc}.diff-box span,.diff-box small{color:var(--muted);font-size:12px}.diff-box strong{font-size:20px}.record-row{min-height:55px;padding:10px 0;border-bottom:1px solid var(--line)}.record-row:last-child{border-bottom:0}.record-row div{display:grid;gap:3px;min-width:0}.record-row strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.report-row{display:grid;grid-template-columns:110px minmax(0,1fr) 36px;min-height:38px}.report-row span{font-size:13px;color:#4e5d6d}.empty-state{min-height:120px;border:1px dashed var(--line-strong);border-radius:8px;background:#fbfdfd;display:grid;place-items:center;align-content:center;gap:8px;color:var(--muted);text-align:center;padding:18px}@media(max-width:1040px){.app-shell{grid-template-columns:1fr;max-width:100vw;overflow-x:hidden}.sidebar{position:static;height:auto;padding:12px;max-width:100vw;min-width:0;overflow:hidden}.nav-list{display:flex;overflow-x:auto;max-width:100%;padding-bottom:2px}.nav-item{flex:0 0 132px;min-width:132px}.sidebar-note{display:none}.main-panel{padding:16px;max-width:100vw;overflow-x:hidden}.kpi-row,.ops-command,.two-column,.two-column.bottom,.split-layout,.inventory-workspace,.cost-workspace,.account-workspace,.settings-workspace,.recipe-workspace,.recipe-grid{grid-template-columns:1fr}.ops-command-main{grid-template-columns:minmax(0,1fr) 112px}.ops-score{width:112px}.ingredient-form-row,.ingredient-form-row.metrics,.recipe-form-row,.settings-form{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-form .wide-field{grid-column:span 2}.settings-actions{justify-content:stretch}.settings-actions button{flex:1}.recipe-cost-strip{grid-template-columns:1fr}.cost-summary-grid,.cost-summary-grid.manager-only,.compact-cost-grid,.compact-cost-grid.manager-only{grid-template-columns:repeat(2,minmax(0,1fr))}.availability-panel{grid-template-columns:1fr}}@media(max-width:680px){.topbar,.section-title{align-items:stretch;flex-direction:column;min-width:0}.topbar>div{min-width:0}.toolbar{justify-content:stretch;width:100%}.topbar-subline span{flex:1 1 130px}.toolbar select,.toolbar .icon-button,.search-box{width:100%;max-width:none;min-width:0}.section-actions{width:100%;justify-content:stretch}.section-actions .ghost-button,.section-actions .primary-button,.section-actions .status-chip{flex:1 1 160px;min-width:0}.kpi-row,.ops-command-main{grid-template-columns:1fr}.ops-score{width:100%;aspect-ratio:auto;min-height:96px}.ops-queue,.action-grid,.ingredient-form-row,.ingredient-form-row.metrics,.ingredient-row{grid-template-columns:1fr}.ingredient-row div:last-child{text-align:left}.recipe-form-row,.cost-summary-grid,.cost-summary-grid.manager-only,.compact-cost-grid,.compact-cost-grid.manager-only,.cost-form-row,.account-form-row,.settings-form{grid-template-columns:1fr}.settings-form .wide-field{grid-column:auto}.settings-actions,.recipe-editor-actions{flex-direction:column;align-items:stretch}.recipe-editor-actions button,.form-grid>.primary-button{width:100%}.recipe-line{grid-template-columns:minmax(130px,1fr) 84px 48px 38px;gap:6px;padding:8px}.recipe-line.header{font-size:11px}.metric{min-height:92px}h1{font-size:22px}.surface{padding:12px}table{min-width:640px}}
