:root{color-scheme:light;--canvas:#f5f7f8;--surface:#fff;--ink:#202b38;--muted:#697680;--line:#e0e6e9;--accent:#006b78;--primary:#c2f2f4;--soft:#edf5f5;--input:#f8fafb;--shadow:0 8px 32px #20364706}
:root[data-theme=dark]{color-scheme:dark;--canvas:#141718;--surface:#202528;--ink:#e1e7e9;--muted:#9aa9ae;--line:#343e42;--accent:#55f9fc;--primary:#55f9fc;--soft:#28383c;--input:#191f22;--shadow:none}
*{box-sizing:border-box}body{margin:0;background:var(--canvas);color:var(--ink);font:14px/1.5 "HarmonyOS Sans SC","Microsoft YaHei","PingFang SC",system-ui,sans-serif}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{border:1px solid var(--line);background:var(--surface);color:var(--ink);padding:10px 16px;border-radius:9px;cursor:pointer;transition:background .15s,transform .15s}button:hover{background:var(--soft)}button:active{transform:translateY(1px)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--primary);border-color:transparent;color:#154b51;font-weight:600}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:3px}a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}input{width:100%;min-width:0;border:1px solid var(--line);background:var(--input);color:var(--ink);border-radius:8px;padding:10px 12px}input[type=number]{font-variant-numeric:tabular-nums}label{display:block;color:var(--muted);font-size:12px}label>input{margin-top:8px;color:var(--ink);font-size:14px}h1,h2,h3,p{margin:0}h1{font-size:29px;letter-spacing:-1px;font-weight:650}h2{font-size:16px;font-weight:600}h3{font-size:14px}p.sub,.muted{color:var(--muted)}.sitebar{height:76px;background:var(--surface);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:48px;padding:0 max(28px,calc((100vw - 1400px)/2))}.brand{font-size:23px;letter-spacing:-1px;font-weight:750;white-space:nowrap}.brand span{font-size:14px;font-weight:500;letter-spacing:1px;margin-left:9px}.sitebar nav{display:flex;align-items:center;gap:30px;flex:1;color:var(--muted)}.sitebar nav a[aria-current]{color:var(--accent);font-weight:600}.sitebar>button{font-size:12px}main{max-width:1456px;margin:auto;padding:38px 28px}.heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:27px;gap:20px}.eyebrow{font-size:11px;letter-spacing:2px;color:var(--accent);margin-bottom:7px}.sub{margin-top:6px;font-size:13px}.actions{display:flex;gap:9px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:15px;box-shadow:var(--shadow)}.goal{display:grid;grid-template-columns:minmax(240px,2fr) repeat(3,minmax(110px,1fr));gap:24px;padding:24px;margin-bottom:30px;align-items:center}.goal-title{display:flex;gap:16px;align-items:center;padding-right:25px;border-right:1px solid var(--line)}.goal-title label{flex:1}.goal-mark{display:grid;place-items:center;background:var(--soft);color:var(--accent);border-radius:12px;width:54px;height:54px;font-size:22px;flex:none}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:24px;align-items:start}.sectionbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 18px}#count{display:inline-block;font-size:11px;color:var(--muted);background:var(--surface);padding:2px 8px;border:1px solid var(--line);border-radius:5px;margin-left:7px}.filters{display:flex;align-items:center;gap:15px}.filters>input{width:165px;font-size:12px;padding:8px 10px}.check{display:flex;align-items:center;gap:7px;white-space:nowrap}.check input{width:14px;margin:0;accent-color:var(--accent)}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.material-card{padding:18px;transition:border-color .15s}.material-card:hover{border-color:var(--accent)}.material-head{display:flex;align-items:center;gap:11px;min-height:63px}.item-icon{width:56px;height:56px;border-radius:11px;background:var(--soft);display:grid;place-items:center;flex:none;overflow:hidden;color:var(--muted);font-size:23px}.item-icon img{width:100%;height:100%;object-fit:contain}.material-name{flex:1;min-width:0;font-size:13px;font-weight:600;overflow-wrap:anywhere}.material-name input{font-size:12px}.remove{padding:0;border:0;background:transparent;align-self:flex-start;color:var(--muted);width:22px;height:24px;font-size:19px}.need{color:var(--accent);font-size:12px;min-height:37px;margin-top:15px}.amount{margin-bottom:12px}.stock-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.subtotal{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:13px;margin-top:17px;font-size:11px;color:var(--muted)}.subtotal strong{font-size:13px;color:var(--ink);font-weight:500}.summary{padding:24px;position:sticky;top:24px;margin-top:54px}.summary>.muted{font-size:12px;margin-top:23px}.total{font-size:34px;font-weight:600;color:var(--accent);margin:5px 0 20px;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.summary dl{padding:19px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:0 0 21px;display:grid;gap:14px}.summary dl>div{display:flex;justify-content:space-between;gap:8px}.summary dt{font-size:12px;color:var(--muted)}.summary dd{margin:0}.summary>button{width:100%}#message{font-size:12px;color:var(--accent);margin:14px 0;overflow-wrap:anywhere}.note{font-size:11px;color:var(--muted);line-height:1.9}.empty{padding:26px 0;color:var(--muted);text-align:center}.suggestions{padding:22px;margin-top:10px}.suggestions p{color:var(--muted);font-size:12px;margin-top:5px}.popular{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:20px 0}.popular button{display:flex;align-items:center;gap:10px;text-align:left;padding:12px;font-size:12px}.popular .item-icon{width:42px;height:42px}.suggestions>button{margin-right:8px}footer{margin-top:32px;padding-top:20px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:15px;font-size:11px;color:var(--muted)}dialog{padding:26px;border:1px solid var(--line);border-radius:16px;background:var(--surface);color:var(--ink);width:min(680px,calc(100vw - 28px));max-height:85vh}dialog::backdrop{background:#14212688;backdrop-filter:blur(4px)}.dialoghead{display:flex;justify-content:space-between;align-items:start;margin-bottom:20px}.dialoghead p{color:var(--muted);font-size:12px;margin-top:5px}.dialoghead button{font-size:22px;padding:0 10px}.dialoghead+input{margin-bottom:12px}#catalogResults{display:grid;gap:8px;margin-top:14px;max-height:48vh;overflow:auto}#catalogResults button{display:flex;align-items:center;gap:12px;text-align:left}#catalogResults button small{display:block;color:var(--muted);font-size:11px}#toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);background:var(--ink);color:var(--surface);padding:12px 24px;border-radius:10px;z-index:10;max-width:90vw}.material-card[hidden],.empty[hidden],[hidden]{display:none!important}
@media(min-width:1100px){.cards{align-items:stretch}}@media(max-width:1200px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.workspace{grid-template-columns:minmax(0,1fr) 260px}.popular{grid-template-columns:repeat(2,minmax(0,1fr))}.goal{gap:16px}.goal-title{padding-right:12px}}@media(max-width:880px){.sitebar{gap:25px;padding:0 22px}.sitebar nav{gap:18px}.workspace{grid-template-columns:1fr}.summary{position:static;margin-top:0}.goal{grid-template-columns:repeat(3,1fr)}.goal-title{grid-column:1/-1;border:0;padding:0}.heading{align-items:flex-start}.actions{flex-wrap:wrap;justify-content:flex-end}.summary .total{font-size:32px}}@media(max-width:580px){.sitebar{height:auto;min-height:65px;flex-wrap:wrap;padding:16px 18px;gap:16px}.sitebar>button{margin-left:auto}.sitebar nav{order:3;flex-basis:100%;justify-content:space-between;font-size:12px;gap:8px}main{padding:25px 16px}.heading{display:block}.actions{margin-top:18px;justify-content:flex-start}.goal{padding:18px;gap:12px}.cards{grid-template-columns:1fr}.sectionbar{display:block}.filters{margin-top:15px;justify-content:space-between}.filters>input{width:65%}.popular{grid-template-columns:1fr 1fr}.popular button{display:block}.popular .item-icon{margin-bottom:7px}.goal input{padding:9px}.summary{padding:22px}footer{flex-direction:column}.material-head{min-height:56px}.need{min-height:28px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
.sectionbar>div:first-child{display:flex;align-items:center;gap:12px}.sectionbar #manual{padding:6px 10px;font-size:11px}
.recipe-filters{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin:14px 0}.recipe-filters select{display:block;width:100%;border:1px solid var(--line);background:var(--input);color:var(--ink);border-radius:8px;padding:9px;margin-top:6px;font:inherit}#recipeResults{display:grid;gap:10px;margin-top:15px;max-height:45vh;overflow:auto}#recipeResults button{display:flex;align-items:center;text-align:left;gap:14px;width:100%;padding:14px}.recipe-copy{flex:1}.recipe-copy strong{font-size:13px;font-weight:600}.recipe-copy small{display:block;color:var(--muted);font-size:11px;margin-top:5px}.recipe-copy em{display:block;color:var(--accent);font-size:11px;font-style:normal;margin-top:5px}.recipe-disclaimer{color:var(--muted);font-size:11px;line-height:1.8;margin-top:18px}.recipe-use{color:var(--accent);white-space:nowrap;font-size:12px}
.goal-field{flex:1;min-width:0}.goal-label{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:12px;min-height:22px}.goal-label button{font-size:11px;padding:0 4px;border:0;background:transparent;color:var(--accent)}.product-selector{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;margin-top:8px;padding:10px 12px;background:var(--input);text-align:left;min-height:43px}.product-selector:hover{border-color:var(--accent)}#productName{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select-arrow{color:var(--muted);font-size:18px;line-height:1}.custom-actions{display:flex;justify-content:flex-end;margin-top:20px}
@font-face{font-family:"HarmonyOS Sans SC";src:url('/assets/material-fonts/HarmonyOS_Sans_SC_Regular-v1.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:"HarmonyOS Sans SC";src:url('/assets/material-fonts/HarmonyOS_Sans_SC_Bold-v1.ttf') format('truetype');font-style:normal;font-weight:700;font-display:swap}
