:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:#233b30;background:#f6f8f3;font-synthesis:none;--green:#246b4c;--green-dark:#185638;--muted:#89928a;--border:#e7ece4;--orange:#ed9559}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 93% 0%,#e9f0e2 0,transparent 37%),#f6f8f3}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed}button:focus-visible,a:focus-visible,[tabindex]:focus-visible,textarea:focus-visible{outline:3px solid #eaa372;outline-offset:4px}svg{display:block;width:100%;height:100%}[hidden]{display:none!important}.app-shell{max-width:1136px;margin:auto;padding:0 40px}.topbar{height:98px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #e5eae1}.brand{display:flex;gap:11px;align-items:center;color:#243e30;text-decoration:none;font-size:18px;font-weight:750;letter-spacing:1px}.brand-light{font-weight:450;font-size:15px;margin-left:10px;letter-spacing:1px;color:#7b877b}.brand-logo{display:grid;place-items:center;border-radius:13px;background:#e6ede0;color:#3d6c42;width:39px;height:39px;padding:8px}.environment{display:flex;gap:7px;align-items:center;font-size:11px;color:#7d897c;border:1px solid #dbe3d5;border-radius:20px;padding:7px 11px;letter-spacing:.6px}.environment i{width:5px;height:5px;background:#8aa477;border-radius:50%}.intro{display:flex;align-items:center;justify-content:space-between;min-height:245px;padding:26px 7px 14px}.eyebrow{display:flex;align-items:center;gap:8px;color:#7e8d79;font-size:11px;letter-spacing:2px;margin:0 0 17px}.eyebrow>span{height:6px;width:6px;background:#c4d2ad;border-radius:50%}h1{font-size:39px;line-height:1.4;font-weight:650;letter-spacing:1px;margin:0}.orange-dot{color:#e49b60}.mobile-break{display:none}.intro-copy{font-size:13px;color:#8b9589;letter-spacing:.7px;margin:15px 0 0}.hero-art{width:230px;height:195px;position:relative;margin-right:45px}.orbit{position:absolute;border:1px solid #dce7d3;border-radius:50%;inset:13px 12px;transform:rotate(-30deg)}.orbit-two{inset:37px -13px;transform:rotate(24deg)}.mini-plate{position:absolute;width:136px;height:136px;border:13px solid #fffdf4;border-radius:50%;left:50px;top:27px;background:#eeeede;box-shadow:4px 10px 22px #425c4012, inset 0 0 0 1px #e1e2d0;transform:rotate(-15deg)}.veg{position:absolute;background:#78965e;border-radius:50%;width:43px;height:43px;box-shadow:inset -9px -6px 0 #638450}.veg-a{left:6px;top:15px}.veg-b{left:17px;top:3px}.veg-c{left:30px;top:20px}.tomato{position:absolute;width:44px;height:44px;background:#e88b63;box-shadow:inset -8px -6px 0 #d97451;border-radius:50%;top:50px;left:7px}.rice{position:absolute;right:6px;top:38px;width:45px;height:54px;border-radius:48% 52% 50% 50%;background:repeating-linear-gradient(145deg,#faf7e8 0 4px,#ece8d6 4px 5px);transform:rotate(23deg)}.hero-note{position:absolute;right:-7px;top:31px;background:#fffcf3;border:1px solid #eee9d8;transform:rotate(10deg);font-size:10px;padding:8px 13px;letter-spacing:2px;z-index:1;color:#8a8667;box-shadow:0 4px 10px #35422d06}.hero-note span{color:#d99a5f}.hero-spark{position:absolute;bottom:5px;left:13px;color:#b8c5a2;font-size:40px}.steps{display:flex;list-style:none;align-items:center;padding:0;margin:4px auto 27px;width:470px;max-width:100%;gap:17px}.steps li:not(.step-line){display:flex;gap:8px;align-items:center;color:#98a094;font-size:12px;white-space:nowrap}.steps li>span{display:grid;place-items:center;border:1px solid #dfe5d9;border-radius:50%;width:23px;height:23px;font-size:11px}.steps li.active{color:#3e7051}.steps li.active>span{background:#e7eddf;border-color:#d6e1ca}.steps li.done>span{background:#2d7151;color:#fff;border-color:#2d7151}.step-line{height:1px;background:#dfe5d9;flex:1}.workspace{display:grid;grid-template-columns:1fr 1.03fr;gap:23px;align-items:start}.card{background:#fff;border:1px solid #e7ece4;border-radius:19px;box-shadow:0 5px 18px #3c4a3303;padding:23px}.section-head{display:flex;align-items:center;justify-content:space-between;min-height:30px;margin-bottom:22px}.section-heading{display:flex;align-items:center;gap:9px}.section-icon{display:block;width:25px;height:25px;padding:5px;border-radius:7px;background:#f8f0e5;color:#b98c4f}.section-icon.mint{background:#edf3e9;color:#698b60}h2{font-size:15px;font-weight:650;letter-spacing:.2px;margin:0}.muted{color:var(--muted);font-size:11px}.dropzone{height:276px;border:1.5px dashed #d8dfd0;border-radius:12px;background:linear-gradient(125deg,#fafbf7,#f7f9f3);display:grid;place-items:center;position:relative;overflow:hidden;transition:border-color .2s,background .2s}.dropzone.drag-over{border-color:#40815a;background:#edf4e7}.upload-empty{text-align:center;padding:20px}.upload-symbol{width:58px;height:58px;margin:0 auto 15px;color:#96ac82;padding:11px;border-radius:16px;background:#eef2e7}.upload-empty h3{font-size:15px;font-weight:550;margin:0 0 10px;color:#607657}.upload-empty p{font-size:11px;color:#9ca695;margin:0 0 19px}.format-hint{display:block;font-size:10px;color:#a0a799;letter-spacing:.2px}.drop-caption{display:block;margin-top:13px;font-size:10px;color:#97a389}.image-preview{width:100%;height:100%;object-fit:contain;background:#f4f5ef}.preview-tools{position:absolute;inset:12px 12px auto;display:flex;align-items:center;justify-content:space-between}.source-tag{background:#fffefaed;border-radius:20px;padding:6px 10px;color:#677762;font-size:10px}.image-remove{width:28px;height:28px;border:0;border-radius:50%;padding:6px;background:#fffef9ed;color:#6c7666}.file-info{display:flex;justify-content:space-between;gap:10px;font-size:10px;color:#8d9885;margin:9px 2px -4px}.file-info>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:75%}.source-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:15px}.button{display:flex;justify-content:center;align-items:center;gap:7px;border:0;border-radius:9px;min-height:44px;font-size:12px;font-weight:550;transition:background .15s,transform .15s}.button svg,.text-button svg{width:16px;height:16px}.button:hover:not(:disabled){transform:translateY(-1px)}.button-secondary{background:#fff;color:#687760;border:1px solid #e1e7db;font-size:11px}.button-secondary:hover:not(:disabled){background:#f5f8f0}.button-secondary:disabled{color:#a4ad9d;background:#f8faf6;border-color:#e9ede5}.context-hint{display:flex;align-items:flex-start;gap:5px;font-size:10px;line-height:1.7;color:#99a190;margin:12px 0 22px}.context-hint>span:first-child{width:12px;height:12px;min-width:12px;margin-top:2px}.button-primary{background:var(--green);color:#fff;width:100%;min-height:46px}.button-primary:hover:not(:disabled){background:var(--green-dark)}.button-primary:disabled{background:#dfe7d9;color:#a0ae96}.button-arrow{width:15px;height:15px;margin-left:auto}.upload-card>.button-primary{justify-content:flex-start;padding:0 16px;gap:9px}.privacy-note{display:flex;justify-content:center;align-items:center;gap:4px;color:#a2aa9b;font-size:10px;margin:13px 0 0}.privacy-note span{height:12px;width:12px}.result-card{min-height:545px}.result-empty{text-align:center;display:flex;flex-direction:column;align-items:center;padding:65px 5px 60px}.empty-art{width:104px;height:110px;position:relative;margin-bottom:17px}.empty-paper{width:69px;height:84px;position:absolute;left:16px;top:6px;background:#fcfdf9;border:1.5px solid #dce5d2;border-radius:9px;transform:rotate(-8deg);padding:20px 12px;box-shadow:5px 6px 0 #eff3e9}.empty-paper i{display:block;height:4px;border-radius:4px;background:#e6ecdd;margin-bottom:9px;width:40px}.empty-paper i:nth-child(2){width:26px}.empty-paper i:nth-child(3){width:33px}.empty-paper>span{position:absolute;right:-10px;bottom:-3px;color:#c9b789;font-size:37px}.empty-leaf{position:absolute;left:-8px;top:25px;font-size:42px;color:#b3c2a2;transform:rotate(-35deg)}.result-empty h3{font-size:14px;font-weight:550;letter-spacing:.3px;color:#7e8d72;margin:0 0 12px}.result-empty p{font-size:11px;color:#a1aa98;line-height:2;margin:0}.text-button{color:#8b9d7b;font-size:11px;background:none;border:0;display:flex;gap:8px;align-items:center;margin-top:25px;padding:10px}.text-button:hover{color:#315b3d}.result-badge{font-size:10px;color:#538061;background:#f0f6eb;border-radius:20px;padding:5px 9px;white-space:nowrap}.result-section{margin:0 0 22px}.small-label{display:flex;align-items:center;gap:5px;font-size:11px;color:#8b9782;margin:0 0 11px}.small-label>span{width:12px;height:12px}.food-tags{display:flex;gap:8px;flex-wrap:wrap}.food-tag{background:#f0f5e9;color:#587549;padding:7px 12px;border-radius:6px;font-size:12px}.food-tag.uncertain{background:#fff4e9;color:#a2723d}.food-tag small{display:block;font-size:10px;margin-top:5px;max-width:290px;line-height:1.6}.uncertainty-note{color:#a78a68;font-size:10px;line-height:1.7}.result-description{font-size:12px;line-height:1.9;color:#75806d;margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.suggestion-box{display:flex;gap:10px;background:#f8f9f0;border:1px solid #eef0e3;border-radius:10px;padding:14px;margin-bottom:24px}.suggestion-box>span{width:18px;height:18px;color:#92a16a;flex-shrink:0;margin-top:1px}.suggestion-box h3{font-size:11px;color:#7f8b60;margin:0 0 6px;font-weight:600}.suggestion-box p{color:#8d9479;line-height:1.9;font-size:11px;margin:0;overflow-wrap:anywhere}.editor-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.editor-head label{font-size:12px;color:#617253;font-weight:550}.editor-head span{font-size:10px;color:#a3aa99}.text-editor{position:relative;background:#fcfcfa;border:1px solid #e6eade;border-radius:9px;padding:12px 13px 26px}.text-editor:focus-within{border-color:#90ae7d}.text-editor textarea{width:100%;display:block;resize:vertical;min-height:100px;background:none;border:0;outline:none!important;font-size:12px;line-height:1.9;color:#64735a}.text-editor>span{position:absolute;right:11px;bottom:8px;font-size:9px;color:#a7af9e}.ai-note{font-size:10px;color:#a7ad9f;line-height:1.7;margin:9px 0 20px}.result-actions{display:flex;gap:10px}.button-copy{background:#eff3e9;color:#6c805a;flex:1;min-width:110px}.result-actions>.button-primary{flex:1.5}.send-hint{font-size:10px;color:#9ca693;line-height:1.8;margin:12px 0 0}.demo-notice{background:#fff5e6;color:#a28554;font-size:10px;padding:9px 11px;border-radius:6px;line-height:1.7;margin-bottom:18px}.inline-message{color:#a65e42;background:#fff3ec;font-size:11px;line-height:1.8;padding:12px;border-radius:8px;margin:0 0 14px;overflow-wrap:anywhere}.loading-state{text-align:center;padding:92px 10px}.loading-state h3{font-size:15px;font-weight:550;color:#56734b}.loading-state p{font-size:11px;line-height:1.8;color:#94a088}.scan-animation{color:#82a06c;width:54px;height:54px;margin:0 auto 26px;animation:scan-pulse 1.8s ease-in-out infinite}.loading-dots{display:flex;justify-content:center;gap:6px;margin-top:25px}.loading-dots i{height:5px;width:5px;border-radius:50%;background:#b2c3a2;animation:scan-pulse 1.1s infinite}.loading-dots i:nth-child(2){animation-delay:.2s}.loading-dots i:nth-child(3){animation-delay:.4s}.tips{display:flex;gap:13px;position:relative;padding:23px 26px;background:#eef2e7;border:1px solid #e7ecdf;border-radius:13px;margin-top:23px}.tip-icon{height:21px;width:21px;color:#9ca773;flex-shrink:0}.tips h3{font-size:12px;color:#7d8968;font-weight:550;margin:1px 0 7px}.tips p{font-size:11px;color:#9aa38a;line-height:1.8;margin:0;max-width:85%}.tips-decoration{position:absolute;right:30px;top:20px;font-size:40px;color:#d1dabd}footer{display:flex;justify-content:center;align-items:center;gap:6px;min-height:106px;font-size:10px;letter-spacing:.5px;color:#aab2a2}.footer-mark{width:13px;height:13px;color:#a4b397}.footer-dot{padding:0 4px}.toast{position:fixed;bottom:40px;left:50%;transform:translateX(-50%);background:#284b3a;color:#fff;padding:12px 22px;border-radius:10px;font-size:12px;box-shadow:0 6px 20px #1c402322;max-width:90vw;text-align:center;z-index:20}@keyframes scan-pulse{0%,100%{opacity:.4;transform:scale(.96)}50%{opacity:1;transform:scale(1.04)}}
@media(min-width:1000px){.result-card:has(#resultContent:not([hidden])){min-height:545px}.upload-card{position:sticky;top:20px}}
@media(max-width:700px){.app-shell{padding:0 19px}.topbar{height:73px}.brand{font-size:16px;gap:9px}.brand-light{font-size:12px;margin-left:7px}.brand-logo{height:33px;width:33px;border-radius:11px;padding:7px}.environment{font-size:9px;padding:6px 8px}.intro{min-height:208px;padding:29px 1px 24px;position:relative}.eyebrow{font-size:9px;letter-spacing:1px;margin-bottom:14px}h1{font-size:30px;line-height:1.45;letter-spacing:.5px}.mobile-break{display:block}.intro-copy{font-size:10px;letter-spacing:0;margin-top:12px}.hero-art{position:absolute;right:-10px;top:23px;width:138px;height:150px;margin:0;transform:scale(.8);transform-origin:right center;pointer-events:none}.mini-plate{left:9px;top:23px;width:119px;height:119px;border-width:11px}.hero-note{right:-6px;top:13px;font-size:9px;padding:7px 9px}.hero-spark{left:-9px;bottom:-9px;font-size:30px}.orbit-one{inset:15px -5px -1px -10px}.orbit-two{inset:28px -20px 8px -19px}.steps{font-size:11px;margin:7px auto 24px;gap:12px;max-width:322px}.steps li:not(.step-line){font-size:10px;gap:6px}.steps li>span{width:21px;height:21px;font-size:10px}.workspace{grid-template-columns:1fr;gap:17px}.card{padding:19px;border-radius:16px}.section-head{margin-bottom:18px}h2{font-size:14px}.dropzone{height:239px}.upload-empty p{font-size:10px}.source-actions{margin-top:13px}.button-secondary{font-size:11px}.context-hint{margin:11px 0 19px;font-size:9px}.result-card{min-height:365px}.result-empty{padding:25px 0 35px}.result-empty h3{font-size:13px}.empty-art{height:95px}.tips{margin-top:18px;padding:18px 16px;gap:10px}.tips h3{font-size:11px}.tips p{font-size:10px;max-width:92%}.tips-decoration{right:12px;top:24px;font-size:25px}footer{font-size:9px;min-height:85px}.loading-state{padding:52px 0}.toast{bottom:calc(22px + env(safe-area-inset-bottom))}.count-label{font-size:10px}}
@media(max-width:350px){.hero-art{opacity:.5;right:-18px;transform:scale(.65)}h1{font-size:27px}.brand-light{font-size:10px}.source-actions{gap:6px}.button-secondary{font-size:10px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* 橙色主题；手机上优先展示当前任务，减少不必要的纵向滚动。 */
:root{--green:#ea7b32;--green-dark:#d56623;--orange:#ea7b32;--muted:#a39182;--border:#f1e5d8;color:#513d30;background:#fffaf5}
body{background:radial-gradient(ellipse at 95% 0%,#ffecd8 0,transparent 45%),#fffaf5}
.topbar{border-color:#f1e4d7}.brand{color:#67412b}.brand-light{color:#a58b75}.brand-logo{background:#ffead7;color:#e47b35}
.environment{border-color:#f0dfcc;color:#b18d6d;background:#fffaf4}.environment i{background:#e79b5b}
.eyebrow{color:#b2957a}.eyebrow>span{background:#eab886}h1{color:#613e29}.intro-copy{color:#b29880}
.orbit{border-color:#f1d5b6}.hero-note{background:#fff8ec;border-color:#efdabd;color:#b08b62}.hero-spark{color:#e7b581}
.steps li:not(.step-line){color:#b9a58f}.steps li>span{border-color:#efdfcd}.steps li.active{color:#db762f}
.steps li.active>span{background:#fff0df;border-color:#f6cfa6}.steps li.done>span{background:#e78a43;border-color:#e78a43;color:white}.step-line{background:#efdecc}
.card{border-color:#f0e3d6;box-shadow:0 5px 18px #c88c4204}.section-icon,.section-icon.mint{background:#fff0e1;color:#e39348}
.dropzone{border-color:#edceb0;background:linear-gradient(125deg,#fffcf8,#fff7ee)}.dropzone.drag-over{border-color:#e58b3d;background:#fff0df}
.upload-symbol{color:#e7a05f;background:#fff0df}.upload-empty h3{color:#a77951}.upload-empty p,.format-hint,.drop-caption{color:#baa087}
.image-preview{background:#fff8ed}.source-tag{color:#a77d54}.image-remove{color:#ab805b}.file-info{color:#b49a83}
.button-secondary{border-color:#efddca;color:#b07c4b}.button-secondary:hover:not(:disabled){background:#fff5e8}
.button-secondary:disabled{color:#cbb8a4;background:#fdf9f4;border-color:#f2e9df}.context-hint{color:#b8a28c}
.button-primary:disabled{background:#f5dec5;color:#c5a17d}.privacy-note{color:#bea991}
.result-empty h3{color:#b08d66}.result-empty p{color:#c1aa91}.empty-paper{background:#fffdf7;border-color:#edd9bb;box-shadow:5px 6px 0 #fff2de}
.empty-paper i{background:#f4e6cf}.empty-leaf{color:#d9b480}.text-button{color:#dc944d}.text-button:hover{color:#cf762c}
.result-badge{background:#fff0db;color:#d78b3d}.small-label{color:#b1977a}.food-tag{background:#fff0db;color:#c5853e}
.food-tag.uncertain{background:#fff3d5;color:#b88c30}.result-description{color:#9f856c}
.suggestion-box{background:#fffaef;border-color:#f4e7cd}.suggestion-box>span,.suggestion-box h3{color:#c69b55}.suggestion-box p{color:#ad9169}
.editor-head label{color:#ae8156}.editor-head span{color:#bfa68b}.text-editor{background:#fffdf9;border-color:#f0e3d1}
.text-editor:focus-within{border-color:#e8a263}.text-editor textarea{color:#957859}.text-editor>span{color:#c0a68b}
.ai-note,.send-hint{color:#bea88f}.button-copy{background:#fff0df;color:#c18b52}.demo-notice{background:#fff5df;color:#bb9658}
.tips{background:#fff2df;border-color:#f3e4ce}.tip-icon,.tips h3{color:#c2965b}.tips p{color:#b8a07d}.tips-decoration{color:#edd3ac}
footer{color:#c3ac93}.footer-mark{color:#d7a26a}.toast{background:#a85e2d}
.loading-state h3{color:#b58050}.loading-state p{color:#b89d80}.scan-animation{color:#e7a05f}.loading-dots i{background:#e7b07d}
@media(max-width:700px){
  .app-shell{padding:0 14px}.topbar{height:55px}.brand{font-size:15px}.brand-logo{width:29px;height:29px;padding:6px;border-radius:9px}
  .brand-light{font-size:11px}.environment{font-size:9px;padding:5px 8px}
  .intro{min-height:105px;padding:15px 2px 12px;overflow:hidden}.eyebrow{font-size:9px;letter-spacing:1px;margin-bottom:8px}
  h1{font-size:24px;line-height:1.25;letter-spacing:0}.mobile-break{display:none}.intro-copy{font-size:10px;margin-top:8px}
  .hero-art{display:none}.steps{gap:10px;margin:5px auto 15px;max-width:300px}.steps li>span{height:19px;width:19px;font-size:9px}
  .workspace{gap:12px}.card{padding:14px;border-radius:13px}.section-head{min-height:24px;margin-bottom:12px}
  .section-icon{width:23px;height:23px}h2{font-size:13px}.dropzone{height:157px;border-radius:9px}
  .upload-empty{padding:10px}.upload-symbol{width:37px;height:37px;margin-bottom:8px;padding:8px;border-radius:10px}
  .upload-empty h3{font-size:13px;margin-bottom:6px}.upload-empty p{font-size:9px;margin-bottom:10px}
  .format-hint{font-size:9px}.drop-caption{display:none}.source-actions{margin-top:10px;gap:8px}
  .button{min-height:36px;font-size:11px;border-radius:8px}.button-primary{min-height:40px}.button-secondary{font-size:10px}
  .context-hint{margin:8px 0 12px;font-size:9px;line-height:1.6}.privacy-note{font-size:9px;margin:9px 0 0}
  .result-card{min-height:0}.result-card .section-head{margin-bottom:9px}.result-empty{padding:0;align-items:flex-start}
  .empty-art,.result-empty h3,.result-empty p{display:none}.text-button{font-size:10px;padding:4px 0;margin:0;gap:6px}
  .tips{padding:12px;margin-top:12px;gap:8px}.tips h3{font-size:10px;margin:0 0 5px}.tips p{font-size:9px;line-height:1.65;max-width:100%}
  .tips-decoration{display:none}.tip-icon{width:16px;height:16px}footer{min-height:43px;font-size:8px;gap:4px}
  .result-section{margin-bottom:14px}.small-label{font-size:10px;margin-bottom:8px}.food-tag{padding:5px 10px;font-size:11px}
  .result-description{font-size:11px;line-height:1.7}.suggestion-box{padding:10px;margin-bottom:15px;gap:7px}
  .suggestion-box p{font-size:10px;line-height:1.7}.suggestion-box h3{font-size:10px;margin-bottom:4px}
  .editor-head{margin-bottom:8px}.editor-head label{font-size:11px}.editor-head span{font-size:9px}
  .text-editor{padding:9px 10px 22px}.text-editor textarea{min-height:76px;font-size:11px;line-height:1.7;resize:vertical}
  .ai-note{font-size:9px;margin:7px 0 12px}.send-hint{font-size:9px;margin:9px 0 0}.demo-notice{font-size:9px;padding:7px 9px;margin-bottom:13px}
  .loading-state{padding:28px 0}.loading-state h3{font-size:13px}.loading-state p{font-size:10px}.scan-animation{width:37px;height:37px;margin-bottom:14px}
  .has-result .intro,.has-result .steps,.has-result .tips{display:none}.has-result .workspace{margin-top:12px}
  .has-result .upload-card .dropzone{height:85px}
  .has-result .upload-card .context-hint,.has-result .upload-card .privacy-note,.has-result .upload-card .file-info,.has-result .upload-card>#recognize{display:none!important}
  .has-result .preview-tools{inset:8px 8px auto}.has-result .source-tag{font-size:9px;padding:4px 8px}
  .has-result .source-actions{margin-top:8px}.has-result .source-actions .button{min-height:32px}
}
@media(max-width:350px){h1{font-size:21px}.brand-light{font-size:10px}.app-shell{padding:0 11px}}
