:root { --ink:#273121; --muted:#66705e; --line:#e4e8dc; --blue:#668b36; --green:#668b36; --lime:#a8c957; --gold:#f2b632; --coral:#ee704b; --bg:#fffaf0; }
* { box-sizing:border-box; }
html,body { max-width:100%; overflow-x:hidden; }
body { margin:0; color:var(--ink); background:var(--bg); font-family:"Microsoft YaHei","PingFang SC",Arial,sans-serif; }
a { color:var(--blue); overflow-wrap:anywhere; }
button,input,textarea { font:inherit; }
.container { width:min(100% - 28px,980px); margin:0 auto; padding:28px 0 60px; }
.site-header { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:18px max(18px,calc((100% - 980px)/2)); color:white; background:linear-gradient(120deg,#557b2b 0%,#8cab43 52%,#efa92f 100%); box-shadow:0 5px 18px rgba(87,120,44,.18); }
.site-header div { display:grid; gap:3px; }.site-header .brand { color:white; font-size:20px; font-weight:700; text-decoration:none; }.site-header span { font-size:12px; opacity:.85; }
.intro h1 { margin:8px 0; font-size:30px; }.intro p,.muted { color:var(--muted); }
.hub { min-height:calc(100vh - 144px); background:radial-gradient(circle at 8% 5%,rgba(242,182,50,.14),transparent 26%),radial-gradient(circle at 90% 38%,rgba(168,201,87,.16),transparent 28%); }.hub-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:26px; }.hub-card { min-height:230px; padding:28px; display:flex; flex-direction:column; color:inherit; text-decoration:none; border:1px solid var(--line); border-top:7px solid var(--gold); border-radius:16px; background:linear-gradient(180deg,#fffef8,#fff); box-shadow:0 10px 28px rgba(86,108,57,.09); transition:transform .18s ease,box-shadow .18s ease; }.hub-card:hover { transform:translateY(-3px); box-shadow:0 14px 32px rgba(86,108,57,.13); }.hub-card.procurement { border-top-color:var(--coral); background:linear-gradient(180deg,#fffaf6,#fff); }.hub-card small { color:var(--muted); }.hub-card h2 { margin:16px 0 8px; font-size:27px; }.hub-card p { margin:0; color:var(--muted); line-height:1.7; }.hub-card span { margin-top:auto; padding-top:24px; color:var(--green); font-weight:700; }.hub-card.procurement span { color:#bd4930; }
.login-shell { min-height:calc(100vh - 61px); padding:24px; display:grid; place-items:center; background:linear-gradient(150deg,#f3f8e8,#fff9df 55%,#fff0e9); }.login-card { width:min(100%,420px); padding:30px; display:grid; gap:17px; border:1px solid var(--line); border-top:7px solid var(--gold); border-radius:16px; background:white; box-shadow:0 18px 50px rgba(75,99,43,.14); }.login-mark { color:var(--green); font-size:18px; font-weight:700; }.login-card h1 { margin:0; font-size:28px; }.login-card>p { margin:0 0 4px; color:var(--muted); }.login-card label { display:grid; gap:7px; font-weight:700; }.login-card input { width:100%; padding:12px; border:1px solid #bbc6ad; border-radius:7px; font-weight:400; outline:none; }.login-card input:focus { border-color:var(--green); box-shadow:0 0 0 3px rgba(102,139,54,.14); }.login-button { width:100%; padding:12px 16px; }.login-error { padding:10px 12px; color:#9f2e21; border-radius:7px; background:#fff0ed; }
.search { display:flex; align-items:center; gap:12px; margin:24px 0 12px; padding:12px 16px; border:1px solid var(--line); border-radius:8px; background:white; }
.search span { font-weight:700; }.search input { width:100%; border:0; outline:0; }
.search-form button { flex:none; padding:9px 16px; color:white; border:0; border-radius:6px; background:var(--blue); cursor:pointer; }
.procurement-search button { background:var(--coral); }
.filters { display:flex; gap:8px; padding:4px 0 14px; overflow:auto; }.filters button { flex:none; padding:7px 12px; border:1px solid #cbd5e1; border-radius:999px; background:white; cursor:pointer; }.filters button.active { color:white; border-color:var(--blue); background:var(--blue); }
.dish-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }.dish-card { min-height:170px; padding:20px; display:flex; flex-direction:column; color:inherit; text-decoration:none; border:1px solid var(--line); border-radius:10px; background:white; }.dish-card:hover { border-color:#9aa9bf; }.dish-card small { color:var(--blue); }.dish-card h2 { margin:10px 0 8px; font-size:19px; }.dish-card p { margin:0; color:var(--muted); line-height:1.6; font-size:13px; }.dish-card span { margin-top:auto; padding-top:18px; color:var(--blue); font-size:13px; }.empty { padding:40px; text-align:center; }
.action-intro { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; }.action-intro p { margin-bottom:0; }.procurement-button,.procurement-primary { background:var(--coral); }.procurement-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }.procurement-card { min-width:0; min-height:260px; padding:20px; display:flex; flex-direction:column; border:1px solid var(--line); border-top:5px solid var(--coral); border-radius:10px; background:white; }.procurement-card small { color:#b94635; }.procurement-card h2 { margin:10px 0 14px; font-size:20px; overflow-wrap:anywhere; word-break:break-word; }.procurement-card dl { margin:0; }.procurement-card dl div { display:grid; grid-template-columns:52px minmax(0,1fr); gap:8px; padding:7px 0; border-bottom:1px dashed var(--line); }.procurement-card dt { color:var(--muted); }.procurement-card dd { margin:0; overflow-wrap:anywhere; word-break:break-word; }.purchase-link { margin-top:auto; padding-top:20px; color:#b94635; font-weight:700; text-decoration:none; overflow-wrap:anywhere; word-break:break-word; }.empty-state { margin-top:24px; padding:50px 24px; text-align:center; border:1px dashed #cbd5e1; border-radius:10px; background:white; }.empty-state h2 { margin-top:0; }
.product-node-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }.product-node-card { min-width:0; min-height:170px; padding:20px; display:flex; flex-direction:column; color:inherit; text-decoration:none; border:1px solid var(--line); border-left:6px solid var(--coral); border-radius:10px; background:white; overflow:hidden; }.product-node-card:hover { border-color:#dc8d80; border-left-color:var(--coral); }.product-node-card small { color:#b94635; }.product-node-card h2 { margin:12px 0 8px; font-size:21px; overflow-wrap:anywhere; word-break:break-word; }.product-node-card p { margin:0; color:var(--muted); }.product-node-card span { margin-top:auto; padding-top:20px; color:#b94635; font-weight:700; }
.back { display:inline-block; margin-bottom:20px; }.tutorial-title,.tutorial-section,.edit-form,.table-wrap { margin-bottom:14px; padding:24px; border:1px solid var(--line); border-radius:12px; background:white; }.tutorial-title { border-top:6px solid var(--gold); }.tutorial-title h1 { margin:7px 0 12px; font-size:32px; }.tutorial-title p { color:var(--muted); line-height:1.7; }.tutorial-section h2 { margin-top:0; }.tutorial-section li { margin:10px 0; line-height:1.75; }.tools { border-color:#d9e6c7; background:#f7fbea; }.note { background:#fff7dc; }.recipe-image { display:block; width:100%; max-height:460px; margin:14px 0 18px; border-radius:12px; object-fit:cover; background:#f3f3ef; }.recipe-video { display:block; width:100%; max-height:560px; border-radius:12px; background:#111; }.form-image-preview { display:block; width:min(100%,420px); max-height:280px; border:1px solid var(--line); border-radius:10px; object-fit:cover; }.form-video-preview { display:block; width:min(100%,560px); max-height:360px; border-radius:10px; background:#111; }.share-button,.primary { display:inline-block; padding:10px 16px; border:0; border-radius:7px; color:white; background:var(--blue); text-decoration:none; cursor:pointer; }
.admin-head { display:flex; align-items:center; justify-content:space-between; gap:20px; }.admin-head h1 { margin-bottom:4px; }.admin-head p { color:var(--muted); }.admin-hub { margin-top:18px; }.table-wrap { padding:0; overflow:auto; }table { width:100%; border-collapse:collapse; background:white; }th,td { padding:13px 15px; text-align:left; border-bottom:1px solid var(--line); white-space:nowrap; }th { background:#f1f4f8; }.inline { display:inline; }.inline button { border:0; color:#b42318; background:transparent; cursor:pointer; }.edit-form { display:grid; gap:16px; }.edit-form h1 { margin:0; }.edit-form label { display:grid; gap:7px; font-weight:700; }.edit-form input,.edit-form textarea { width:100%; padding:10px; border:1px solid #bdc5d1; border-radius:5px; font-weight:400; resize:vertical; }
.primary.procurement-primary { background:var(--coral); }.purchase-action { color:#b94635; font-weight:700; }
.admin-product-list { display:grid; gap:12px; margin-top:18px; }.admin-product-card { min-width:0; padding:20px; display:flex; align-items:center; justify-content:space-between; gap:20px; border:1px solid var(--line); border-left:6px solid var(--coral); border-radius:10px; background:white; overflow:hidden; }.admin-product-card>div { min-width:0; }.admin-product-card h2 { margin:0 0 6px; overflow-wrap:anywhere; word-break:break-word; }.admin-product-card p { margin:0; color:var(--muted); overflow-wrap:anywhere; }.admin-product-actions { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }.admin-product-actions .primary { padding:8px 12px; }.delete-button { padding:8px 12px; color:#a52b1f; border:1px solid #e8b3ad; border-radius:6px; background:#fff5f3; cursor:pointer; }.row-actions { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
footer { padding:22px; color:#88909c; text-align:center; font-size:12px; border-top:1px solid var(--line); }
@media(max-width:720px){.dish-grid,.procurement-grid,.product-node-grid{grid-template-columns:1fr 1fr}.container{padding-top:20px}.tutorial-title,.tutorial-section{padding:19px}.tutorial-title h1{font-size:27px}}
@media(max-width:560px){.hub-grid{grid-template-columns:1fr}.hub-card{min-height:190px}.action-intro{align-items:flex-start;flex-direction:column}.procurement-button{width:100%}}
@media(max-width:640px){.table-wrap{padding:0;border:0;background:transparent;overflow:visible}.table-wrap table,.table-wrap tbody{display:block;width:100%;background:transparent}.table-wrap thead{display:none}.table-wrap tr{display:block;width:100%;margin-bottom:12px;border:1px solid var(--line);border-left:5px solid var(--blue);border-radius:9px;background:white;overflow:hidden}.table-wrap td{display:grid;width:100%;grid-template-columns:72px minmax(0,1fr);gap:12px;padding:11px 13px;white-space:normal;overflow-wrap:anywhere;word-break:break-word}.table-wrap td::before{content:attr(data-label);color:var(--muted);font-weight:700}.table-wrap td[colspan]{display:block}.table-wrap td[colspan]::before{display:none}.row-actions{min-width:0}.row-actions a,.row-actions button{white-space:normal}.inline{display:inline-block}}
@media(max-width:560px){.admin-head{align-items:flex-start;flex-direction:column}.admin-head .primary{width:100%;text-align:center}.admin-product-card{align-items:flex-start;flex-direction:column;padding:16px}.admin-product-actions{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:10px}.admin-product-actions>*{min-width:0;width:100%;text-align:center}.admin-product-actions .primary{grid-column:1/-1;width:100%}.admin-product-actions .inline{display:block}.admin-product-actions .delete-button{width:100%}.search{padding:9px}.search span{display:none}.search-form button{padding:9px 13px}}
@media(max-width:430px){.dish-grid,.procurement-grid,.product-node-grid{grid-template-columns:1fr}.site-header .brand{font-size:17px}.dish-card,.product-node-card{min-height:145px}.site-header>span{display:none}}
