:root{--ink:#22312b;--muted:#66736d;--line:#dce4df;--paper:#f4f6f3;--card:#fff;--green:#176847;--green-2:#e6f2eb;--amber:#8e5e12;--amber-bg:#fff4d9;--red:#a23a32;--red-bg:#fff0ed;--shadow:0 8px 24px rgba(24,57,41,.06);font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);line-height:1.48}button,input,select,textarea{font:inherit}
.topbar{height:68px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 clamp(18px,4vw,54px);position:sticky;top:0;z-index:5}.brand{display:flex;gap:11px;align-items:center;color:inherit;text-decoration:none}.brand-mark{width:36px;height:36px;display:grid;place-items:center;background:var(--green);color:white;border-radius:11px;font-weight:800}.brand strong,.brand small{display:block}.brand small{color:var(--muted);font-size:11px;letter-spacing:.06em}.topbar-meta{display:flex;align-items:center;gap:16px;color:var(--muted);font-size:13px}.badge{padding:5px 10px;background:var(--green-2);color:var(--green);border-radius:99px;font-weight:700}
.workspace{display:grid;grid-template-columns:220px minmax(0,1fr);max-width:1500px;margin:auto;min-height:calc(100vh - 128px)}.navigation{padding:24px 12px 30px 24px;display:flex;flex-direction:column;gap:5px}.nav-button{border:0;background:transparent;color:#526159;text-align:left;padding:11px 13px;border-radius:10px;cursor:pointer;font-weight:600;white-space:nowrap}.nav-button:hover{background:#e9eee9}.nav-button.active{background:var(--green-2);color:var(--green)}.page{padding:30px clamp(18px,3vw,44px) 54px;min-width:0}
.page-heading{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin:0 0 22px}.page-heading h1{margin:0 0 5px;font-size:27px;letter-spacing:-.02em}.page-heading p{margin:0;color:var(--muted);max-width:850px}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px;box-shadow:var(--shadow);min-width:0}.card h2{margin:0 0 7px;font-size:17px}.card-intro{color:var(--muted);font-size:13px;margin:0 0 17px}.span-all{grid-column:1/-1}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px 15px}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field.full{grid-column:1/-1}.field label{font-size:12px;font-weight:700;color:#4b5b52}input,select,textarea{width:100%;padding:10px 11px;border:1px solid #ccd7d0;border-radius:8px;background:#fff;color:var(--ink);outline:none}input:focus,select:focus,textarea:focus{border-color:#24845a;box-shadow:0 0 0 3px rgba(36,132,90,.13)}textarea{min-height:78px;resize:vertical}input::placeholder,textarea::placeholder{color:#9aa6a0}
.actions{display:flex;gap:9px;align-items:center;margin-top:16px;flex-wrap:wrap}button.primary{border:0;background:var(--green);color:#fff;padding:10px 15px;border-radius:8px;cursor:pointer;font-weight:700}button.primary:hover{background:#10573a}button.secondary{border:1px solid var(--line);background:#fff;color:var(--ink);padding:9px 13px;border-radius:8px;cursor:pointer}button:disabled{opacity:.6;cursor:wait}.note{font-size:12px;color:var(--muted);margin:11px 0 0}.callout{border-left:3px solid #d19b38;background:var(--amber-bg);padding:11px 13px;border-radius:0 8px 8px 0;color:#705019;font-size:13px;margin:13px 0}.callout.danger{border-color:var(--red);background:var(--red-bg);color:#852d26}
.notice{position:fixed;z-index:10;right:20px;top:82px;max-width:min(470px,calc(100vw - 40px));padding:12px 16px;background:#22312b;color:white;border-radius:10px;box-shadow:var(--shadow)}.notice.error{background:#8d302a}.notice.success{background:#176847}
.table-wrap{overflow:auto;margin-top:15px}table{border-collapse:collapse;width:100%;font-size:13px;min-width:600px}th,td{text-align:left;padding:10px 11px;border-bottom:1px solid #edf0ed;vertical-align:top}th{color:#607168;font-size:11px;text-transform:uppercase;letter-spacing:.04em;background:#f8faf8}td{overflow-wrap:anywhere}.empty{padding:17px;background:#f8faf8;border-radius:8px;color:var(--muted);font-size:13px}.stat{font-size:28px;font-weight:750;letter-spacing:-.04em}.task-list{display:grid;gap:8px}.task{display:flex;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--line);border-radius:9px;background:#fff;align-items:center}.status{font-size:11px;font-weight:700;color:#715018;background:var(--amber-bg);padding:4px 8px;border-radius:99px;white-space:nowrap}.status.ready{color:var(--green);background:var(--green-2)}
.line-editor{border:1px solid #e3e9e4;border-radius:9px;padding:12px;margin:10px 0}.line-editor .form-grid{grid-template-columns:1.4fr 1fr 1fr 1.4fr auto;align-items:end}.small-button{border:0;background:#f3e9e6;color:#8d302a;border-radius:7px;padding:9px 10px;cursor:pointer}.checkbox-row{display:flex;gap:9px;align-items:center;color:var(--ink);font-size:13px;margin:12px 0}.checkbox-row input{width:auto}
.gate{max-width:900px;padding:38px 18px 80px;margin:auto}.gate-card{background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:16px;padding:clamp(22px,5vw,42px)}.gate-card h1{margin:0 0 8px;font-size:26px}.gate-card>p{margin:0 0 23px;color:var(--muted)}.gate-layout{display:grid;grid-template-columns:1.15fr .85fr;gap:25px;align-items:start}.gate-side{background:#f5f8f5;border-radius:11px;padding:18px;color:#58675f;font-size:13px}.gate-side h2{font-size:15px;margin:0 0 8px;color:var(--ink)}.footer{text-align:center;color:#87938c;font-size:11px;padding:18px;border-top:1px solid var(--line);background:#fff}
@media(max-width:900px){.workspace{grid-template-columns:1fr}.navigation{padding:12px 14px 0;flex-direction:row;overflow:auto}.page{padding-top:18px}}@media(max-width:650px){.topbar{height:60px;padding:0 14px}.topbar-meta{gap:7px;font-size:11px}.grid,.grid.three,.gate-layout,.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.line-editor .form-grid{grid-template-columns:1fr 1fr}.page-heading h1{font-size:23px}.gate{padding-top:22px}}
.nav-group{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}
.nav-group-label{padding:8px 13px 3px;color:#7b8881;font-size:11px;font-weight:800;letter-spacing:.04em}
.purchase-line .form-grid{grid-template-columns:1.3fr .65fr .7fr .9fr .7fr 1fr auto}
.purchase-line-summary{margin:8px 2px 0;font-weight:650}
.period-create{margin-top:16px;padding:13px;border:1px solid var(--line);border-radius:9px;background:#fafcf9}
.period-create summary,.count-history-card summary{cursor:pointer;color:var(--green);font-weight:700}
.count-entry-list,.count-history-list{display:grid;gap:11px;margin-top:14px}
.count-line,.count-history-card{min-width:0;padding:14px;border:1px solid var(--line);border-radius:10px;background:#fff}
.count-line{display:grid;grid-template-columns:1.2fr 1fr 1.1fr 1fr;gap:12px;align-items:end}
.count-item-name{font-weight:750;overflow-wrap:anywhere}
.count-unit{display:block;color:var(--muted);font-size:12px;font-weight:400}
.count-field{display:flex;flex-direction:column;gap:5px;min-width:0;color:#4b5b52;font-size:12px;font-weight:700}
.count-field input,.count-field select{min-width:0}
.count-history-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap}
.count-history-lines{margin:9px 0 0;padding-left:20px;color:var(--muted);font-size:13px}
.count-history-lines li{padding:3px 0;overflow-wrap:anywhere}
@media(max-width:900px){
 .nav-group{min-width:max-content;margin:0 4px 0 0}
 .navigation{align-items:flex-start}
 .nav-group-label{padding:3px 9px;font-size:10px}
 .nav-button{padding:8px 9px}
 .purchase-line .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:650px){
 .count-line{grid-template-columns:1fr}
 .count-history-head{display:block}
 .count-history-head .status{display:inline-block;margin-top:8px}
 .period-create{padding:10px}
}
.dish-toolbar{display:grid;grid-template-columns:minmax(180px,1.4fr) repeat(4,minmax(130px,.8fr)) auto auto;gap:9px;align-items:center;margin:0 0 10px}
.dish-toolbar input,.dish-toolbar select{min-width:0}
.dish-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:18px}
.dish-card{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:var(--shadow);min-width:0}
.dish-card-image{display:block;width:100%;height:176px;object-fit:cover;background:#eef2ee}
.dish-image-placeholder{display:grid;place-items:center;color:#718078;background:linear-gradient(135deg,#eef3ef,#e1e9e3);font-size:13px}
.dish-card-body{padding:16px}
.dish-card-title,.dish-section-title,.dish-tools{display:flex;align-items:center;justify-content:space-between;gap:12px}
.dish-card-title h2{font-size:17px;margin:0;overflow-wrap:anywhere}
.dish-card-category{font-size:12px;color:var(--muted);margin:8px 0 14px}
.dish-card-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.dish-card-metrics>div,.dish-stat-grid>div,.dish-info-grid>div{padding:10px;border:1px solid #edf0ed;border-radius:9px;min-width:0}
.dish-card-metrics small,.dish-stat-grid small,.dish-info-grid small{display:block;color:var(--muted);font-size:11px;margin-bottom:3px}
.dish-card-metrics strong,.dish-stat-grid strong,.dish-info-grid strong{display:block;font-size:14px;overflow-wrap:anywhere}
.dish-card-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:13px}
.dish-empty{text-align:center;padding:34px;margin-top:18px}
.dish-empty p{color:var(--muted)}
.dish-tools{margin-top:20px}
.dish-tools h2{margin:0}
.dish-tools .card-intro{margin:4px 0 0}
.dish-breadcrumb{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:12px;margin-bottom:18px}
.dish-detail-hero{display:grid;grid-template-columns:170px minmax(0,1fr) auto;gap:20px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;box-shadow:var(--shadow)}
.dish-detail-hero>img,.dish-detail-hero>.dish-image-placeholder{width:170px;height:140px;object-fit:cover;border-radius:10px}
.dish-detail-title h1{font-size:26px;margin:7px 0}
.dish-detail-title p{margin:3px 0;color:var(--muted)}
.dish-detail-actions{display:flex;gap:8px;flex-wrap:wrap}
.dish-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:16px 0}
.dish-stat-grid>div{background:#fff}
.dish-stat-date{font-size:12px!important}
.dish-tabs{display:flex;gap:4px;overflow:auto;border-bottom:1px solid var(--line);margin:18px 0}
.dish-tabs button{border:0;border-bottom:3px solid transparent;background:transparent;padding:11px 14px;white-space:nowrap;cursor:pointer;color:var(--muted);font-weight:700}
.dish-tabs button[aria-selected=true]{border-color:var(--green);color:var(--green)}
.dish-detail-section{margin-bottom:16px}
.dish-info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.dish-cost-total{padding:14px;background:var(--green-2);border-radius:9px;margin-top:12px}
.dish-chart-empty{min-height:220px;border:1px dashed #cbd6ce;border-radius:12px;background:#fafcf9;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px;color:var(--muted)}
.dish-chart-empty strong{font-size:16px;color:var(--ink)}
.dish-chart-axis{width:100%;display:flex;justify-content:space-between;border-bottom:1px solid #dce4df;padding-bottom:8px;margin-bottom:32px;font-size:11px}
.dish-wizard{display:block}
.dish-stepper{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0 0 16px}
.dish-stepper>div{display:flex;align-items:center;gap:8px;border-bottom:3px solid var(--line);padding:10px 6px;color:var(--muted);font-size:13px}
.dish-stepper>div.active{border-color:var(--green);color:var(--green);font-weight:700}
.dish-stepper span{display:grid;place-items:center;border-radius:50%;width:25px;height:25px;background:#eef2ee}
.dish-stepper .active span{background:var(--green);color:#fff}
.dish-wizard-columns{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,.8fr);gap:16px}
.dish-preview-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;box-shadow:var(--shadow)}
.dish-preview-card h2{font-size:17px;margin:0 0 12px}
.dish-preview{display:grid;grid-template-columns:88px minmax(0,1fr);gap:12px;align-items:center}
.dish-preview>img,.dish-preview>.dish-image-placeholder{width:88px;height:82px;border-radius:9px;object-fit:cover}
.dish-preview strong,.dish-preview span,.dish-preview small{display:block}
.dish-preview span,.dish-preview small{font-size:12px;color:var(--muted);margin-top:4px}
.dish-preview p{font-size:12px;color:var(--muted);margin:7px 0 0}
.dish-store-choices{display:flex;flex-wrap:wrap;gap:5px 14px}
.dish-store-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;align-items:end;padding:14px 0;border-bottom:1px solid var(--line)}
.dish-store-row>div{font-size:13px}
.dish-store-row>label{font-size:12px;color:var(--muted);font-weight:700}
.dish-store-row .checkbox-row{margin:6px 0 0}
.dish-wizard-step[hidden]{display:none}
.dish-form-actions{grid-column:1/-1}
.dish-status-panel p{margin:10px 0;color:var(--muted);font-size:13px}
@media(max-width:1150px){.dish-toolbar{grid-template-columns:repeat(3,minmax(0,1fr))}.dish-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){.dish-detail-hero{grid-template-columns:110px minmax(0,1fr)}.dish-detail-hero>img,.dish-detail-hero>.dish-image-placeholder{width:110px;height:110px}.dish-detail-actions{grid-column:1/-1}.dish-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dish-wizard-columns{grid-template-columns:1fr}.dish-info-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.dish-toolbar,.dish-card-grid{grid-template-columns:1fr}.dish-stepper>div{display:block;font-size:11px}.dish-stepper span{margin-bottom:5px}.dish-store-row{grid-template-columns:1fr 1fr}.dish-store-row>div{grid-column:1/-1}.dish-breadcrumb{align-items:flex-start;flex-direction:column}.dish-detail-hero{grid-template-columns:1fr}.dish-detail-hero>img,.dish-detail-hero>.dish-image-placeholder{width:100%;height:190px}.dish-detail-actions{grid-column:auto}}

.dish-cost-chart{margin:16px 0;min-width:0}.dish-cost-chart svg{display:block;width:100%;max-height:300px}.dish-cost-chart text{font-size:12px;fill:var(--muted)}.dish-cost-chart figcaption{font-weight:700;font-size:13px}.dish-recipe-line [data-dish-cost],.dish-recipe-line [data-dish-contribution]{font-weight:700}
