:root{--bg:#f5f6f7;--surface:#fff;--ink:#17191b;--ink-soft:#62676d;--line:#dfe2e5;--line-strong:#c7ccd1;--accent:#315e52;--danger:#9d2c2c;--ok:#315e52;color:var(--ink);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;font-family:PingFang TC,Noto Sans TC,Noto Sans CJK TC,Microsoft JhengHei,sans-serif;font-size:16px;line-height:1.4}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--bg);overflow-x:clip}::selection{color:var(--ink);background:#d5e2ef}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button,input,select{font:inherit;color:inherit}button{cursor:pointer}input,select{border:1px solid var(--line);background:var(--surface);border-radius:8px;min-height:44px;padding:0 12px;transition:border-color .14s,box-shadow .14s}input:focus,select:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #315e521f}h1,h2,p{margin:0}h1{font-size:1.25rem;font-weight:700}h2{font-size:1rem;font-weight:700}.app-shell{min-height:100dvh}.main{width:min(820px,100%);margin:0 auto;padding:18px 16px 120px}.page,.stack,.list,.recipe-lines{gap:0;margin:0;padding:0;list-style:none;display:grid}.page{gap:16px}.stack{gap:14px}.page-head,.split,.button-row,.modal-head,.row-card,.stepper{justify-content:space-between;align-items:center;gap:8px;display:flex}.page-title{font-size:1.35rem}.item-title{font-weight:700}.meta,.note,.about{color:var(--ink-soft)}.note,.about{border-left:3px solid var(--line-strong);background:#eef0f1;padding:10px 12px}.summary,.result-card dd,.stepper input{font-variant-numeric:tabular-nums}.summary{font-weight:700}.field{gap:4px;font-weight:700;display:grid}.field span{font-size:.85rem}.field input,.field select,.stepper input{width:100%}.grow{flex:1;min-width:0}.slim{width:88px}.row-card,.result-card,.empty,.loading{background:var(--surface);border:0;border-bottom:1px solid var(--line);box-shadow:none;border-radius:0;padding:14px 16px}.list{background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden}.row-card.column,.result-card{gap:8px;display:grid}.stepper button,.button,.tab{border-radius:8px;min-height:44px}.stepper button{border:1px solid var(--line-strong);background:var(--surface);width:44px;color:var(--ink);place-items:center;display:grid}.stepper input{text-align:center;width:64px;font-size:1.15rem;font-weight:700}.button{border:1px solid var(--ink);background:var(--ink);color:#fff;padding:0 14px;font-weight:700;transition:transform .1s,background-color .14s,border-color .14s}.button:active,.stepper button:active{transform:scale(.98)}.button.secondary{background:var(--surface);color:var(--ink);border-color:var(--line-strong)}.button.danger{color:var(--danger);border-color:var(--danger);background:0 0}.button-row{flex-wrap:wrap;justify-content:flex-start;scroll-margin-bottom:120px}.sticky-actions{background:color-mix(in srgb, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:10px 0;position:sticky;bottom:72px}.error{color:var(--danger);font-weight:700}.empty,.loading{border:1px dashed var(--line-strong);border-radius:12px;gap:10px;padding:20px;display:grid}.result-card dl{grid-template-columns:repeat(3,1fr);gap:8px;margin:0;display:grid}.result-card dt{color:var(--ink-soft);font-size:.8rem}.result-card dd{overflow-wrap:anywhere;margin:0;font-size:1.25rem;font-weight:700}.shortage{color:var(--accent)}.suggest{color:var(--accent);margin:0;font-weight:700}.switch{align-items:center;gap:8px;min-height:44px;font-weight:700;display:flex}.switch input{width:20px;height:20px}.tabbar{z-index:15;background:var(--surface);border-top:1px solid var(--line);width:min(820px,100%);padding-bottom:env(safe-area-inset-bottom);grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:50%;right:auto;transform:translate(-50%)}.tab{min-height:52px;color:var(--ink-soft);background:0 0;border-top:2px solid #0000;border-radius:0;align-content:center;justify-items:center;gap:2px;font-size:.68rem;font-weight:700;text-decoration:none;display:grid}.tab span{white-space:nowrap;line-height:1.1}.tab.active{color:var(--ink);border-top-color:var(--accent)}.tab svg,.stepper svg,.brand-mark svg{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.modal-backdrop{z-index:20;background:#0006;align-items:end;padding:0;display:grid;position:fixed;inset:0}.modal{background:var(--surface);width:min(640px,100%);max-height:min(90dvh,760px);padding:18px 16px calc(18px + env(safe-area-inset-bottom));border-radius:18px 18px 0 0;margin:0 auto;overflow:auto;box-shadow:0 8px 24px #0000001f}.modal-head{align-items:flex-start}.subhead{margin-top:12px}.text-button{color:var(--accent);background:0 0;border:0;border-radius:8px;min-height:44px;font-weight:700}.editor-line{border-bottom:1px solid var(--line);gap:8px;padding:10px 0;display:grid}.file-button{place-items:center;display:inline-grid;position:relative}.file-button input{opacity:0;position:absolute;inset:0}.toast-stack{left:16px;right:16px;bottom:calc(72px + env(safe-area-inset-bottom));z-index:30;pointer-events:none;gap:8px;display:grid;position:fixed}.toast{background:var(--ink);color:#fff;border-radius:10px;justify-self:center;padding:10px 14px;font-weight:700}.recipe-lines{color:var(--ink-soft)}@media (width>=720px){.modal-backdrop{align-items:center;padding:24px}.modal{border-radius:14px;padding:22px}.editor-line{grid-template-columns:1.4fr .7fr .7fr auto auto;align-items:end}}@media (width>=960px){.main{width:min(1040px,100%);padding:38px 44px 120px}.sticky-actions{bottom:0}}@media (width<=480px){.main{padding-inline:14px}.page-head,.split{align-items:stretch}.split{grid-template-columns:minmax(0,1fr) auto;display:grid}.result-card dl{gap:6px}.result-card dd{font-size:1.05rem}.button-row .button{flex:auto}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto}}
