:root{--ink:#17251f;--muted:#65736c;--paper:#fbf8f0;--panel:#fffdf8;--line:#dbe1d9;--green:#1f6a4e;--orange:#e26f43;--chip:#e8f0e7;--shadow:0 16px 42px #1830241a;color:var(--ink);background:var(--paper);font-family:ui-rounded,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(circle at 85% 5%, #e3edcf 0, transparent 19rem), var(--paper);min-width:320px;margin:0}.splash-screen{z-index:20;color:var(--ink);background:radial-gradient(circle at 50% 45%, #fffdf7 0 11rem, transparent 25rem), radial-gradient(circle at 18% 16%, #e4edcf 0, transparent 17rem), var(--paper);place-content:center;justify-items:center;transition:opacity .26s,visibility .26s;display:grid;position:fixed;inset:0;overflow:hidden}.splash-screen:before{content:"";border:1px solid #1f6a4e1c;border-radius:50%;width:34rem;height:34rem;animation:1.2s ease-out infinite splash-pulse;position:absolute}.splash-screen.is-leaving{opacity:0;visibility:hidden;pointer-events:none}.splash-dish{width:118px;height:94px;margin-bottom:22px;animation:.7s cubic-bezier(.2,.85,.3,1) both dish-settle;position:relative}.dish-rim{border:5px solid var(--green);background:#fffdf8;border-radius:50%;height:50px;position:absolute;bottom:0;left:0;right:0;box-shadow:inset 0 -13px #e7efdf,0 15px 22px #17251f1f}.dish-fill{z-index:1;background:radial-gradient(circle at 30% 35%,#f8c675 0 7%,#0000 8%),radial-gradient(circle at 66% 55%,#e6784b 0 8%,#0000 9%),#e9aa5c;border-radius:50%;height:21px;position:absolute;bottom:20px;left:16px;right:16px}.steam{z-index:2;border-left:3px solid #e26f43bf;border-radius:50%;width:10px;height:33px;animation:1.1s ease-in-out infinite steam-rise;position:absolute}.steam-one{top:0;left:31px}.steam-two{animation-delay:.18s;top:-12px;left:57px}.steam-three{animation-delay:.34s;top:1px;left:82px}.splash-recipe-card{transform-origin:50%;background:#fffdf8;border:1px solid #dbe1d9;border-radius:18px;width:min(262px,100vw - 54px);margin-bottom:22px;padding:20px;display:none;position:relative;box-shadow:0 19px 38px #17251f29}.splash-cards .splash-dish{display:none}.splash-cards .splash-recipe-card{grid-template-columns:1fr auto;align-items:center;gap:12px 8px;animation:.72s cubic-bezier(.2,.85,.3,1) both card-unfold;display:grid}.splash-card-dot{background:linear-gradient(135deg,#e7efdf,#b9d2ad);border-radius:10px;width:34px;height:34px}.splash-card-status{color:var(--green);background:var(--chip);border-radius:999px;padding:5px 8px;font-size:.68rem;font-weight:800}.splash-recipe-card strong{letter-spacing:-.05em;grid-column:1/-1;font-size:1.2rem}.splash-card-stars{color:var(--orange);letter-spacing:.1em;grid-column:1/-1;font-size:.78rem;animation:.4s .38s both card-detail}.splash-card-link{color:var(--muted);grid-column:1/-1;font-size:.76rem;animation:.4s .49s both card-detail}.splash-brand{letter-spacing:-.055em;margin:0;font-size:1.6rem;font-weight:800;animation:.55s .16s both brand-in;position:relative}.splash-brand span{color:var(--orange)}.splash-copy{color:var(--muted);margin:9px 0 0;font-size:.85rem;animation:.55s .28s both brand-in;position:relative}@keyframes dish-settle{0%{opacity:0;transform:translateY(22px)scale(.88)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes steam-rise{0%,to{opacity:0;transform:translateY(8px)}45%{opacity:1}75%{opacity:.35;transform:translateY(-7px)}}@keyframes card-unfold{0%{opacity:0;transform:perspective(500px)rotateX(-18deg)scale(.78)}to{opacity:1;transform:perspective(500px)rotateX(0)scale(1)}}@keyframes card-detail{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes brand-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes splash-pulse{0%{opacity:.55;transform:scale(.55)}to{opacity:0;transform:scale(1)}}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{width:min(1120px,100% - 40px);margin:0 auto;padding:24px 0 72px}.topbar{justify-content:space-between;align-items:center;gap:12px;display:flex}.header-actions{align-items:center;gap:8px;display:flex}.header-actions .secondary-button{padding:10px 13px;font-size:.82rem}.brand{color:var(--ink);letter-spacing:-.04em;font-size:1.15rem;font-weight:800;text-decoration:none}.brand span{color:var(--orange)}.primary-button,.secondary-button,.text-button,.icon-button{border:0;border-radius:999px;font-weight:700}.primary-button{color:#fff;background:var(--green);padding:12px 18px;box-shadow:0 7px 15px #1f6a4e2e}.primary-button:hover{background:#15513a}.secondary-button{color:var(--ink);background:#edf0ea;padding:12px 18px}.intro{max-width:670px;padding:80px 0 48px}.eyebrow{color:var(--orange);letter-spacing:.14em;margin:0 0 12px;font-size:.72rem;font-weight:800}.intro h1{letter-spacing:-.075em;margin:0;font-size:clamp(2.75rem,8vw,5.25rem);line-height:.98}.intro>p:last-child{color:var(--muted);max-width:430px;margin:24px 0 0;font-size:1rem;line-height:1.7}.toolbar{border-top:1px solid var(--line);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding:16px 0;display:flex}.search-field{color:var(--muted);flex:1;align-items:center;gap:10px;display:flex}.search-field input{width:100%;color:var(--ink);background:0 0;border:0;outline:0}.filter-row{gap:12px;display:flex}.filter-row label{color:var(--muted);align-items:center;gap:5px;font-size:.74rem;display:flex}.filter-row select{color:var(--ink);background:0 0;border:0;outline:0;font-weight:700}.list-heading{justify-content:space-between;align-items:baseline;padding:30px 0 18px;display:flex}.list-heading h2{letter-spacing:-.04em;margin:0;font-size:1.5rem}.list-heading span{color:var(--muted);font-size:.88rem}.recipe-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.recipe-card{background:var(--panel);border:1px solid var(--line);border-radius:18px;flex-direction:column;min-height:242px;padding:18px;display:flex;box-shadow:0 3px #17251f05}.recipe-card:hover{box-shadow:var(--shadow);transition:all .2s;transform:translateY(-2px)}.card-top{justify-content:space-between;align-items:center;display:flex}.source-mark{width:46px;height:46px;color:var(--green);background:var(--chip);border-radius:13px;place-items:center;font-size:1.1rem;display:grid}.status{color:var(--green);background:var(--chip);border-radius:999px;padding:5px 9px;font-size:.7rem;font-weight:800}.recipe-card h3{letter-spacing:-.04em;margin:20px 0 12px;font-size:1.25rem}.dish-image{aspect-ratio:4/3;object-fit:cover;object-position:center;background:#edf0ea;border:1px solid #d4ddd0;border-radius:12px;width:100%;margin:0 0 13px;display:block}.platform{color:var(--muted);margin:0;font-size:.78rem}.tags{flex-wrap:wrap;gap:6px;margin:15px 0;display:flex}.tag{color:#476052;background:#f1f2ec;border-radius:6px;padding:5px 8px;font-size:.72rem}.note{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:.86rem;line-height:1.45;display:-webkit-box;overflow:hidden}.card-actions{align-items:center;gap:8px;margin-top:auto;padding-top:16px;display:flex}.open-link{color:var(--green);margin-right:auto;font-size:.84rem;font-weight:800;text-decoration:none}.action-button{border:0;border-radius:10px;place-items:center;width:32px;height:32px;padding:0;font-size:1.05rem;font-weight:900;transition:transform .18s,filter .18s;display:grid}.action-button:hover{filter:brightness(.94);transform:translateY(-1px)}.action-calendar{color:#176752;background:#e1f1e8}.action-edit{color:#275f9d;background:#e3effd}.action-delete{color:#b4432d;background:#fce8e3}.text-button{color:var(--muted);background:0 0;padding:3px;font-size:.78rem}.text-button:hover{color:var(--orange)}.empty-state{text-align:center;background:#ffffff59;border:1px dashed #b8c6b5;border-radius:20px;padding:68px 16px}.empty-mark{width:50px;height:50px;color:var(--green);background:#e7efdf;border-radius:50%;place-items:center;font-size:1.7rem;display:inline-grid}.empty-state h2{letter-spacing:-.04em;margin:15px 0 7px}.empty-state p{color:var(--muted);margin:0 0 15px}.review{color:var(--orange);margin:0;font-size:.79rem;line-height:1.5}.review span{color:var(--muted);margin-left:7px}.import-button{cursor:pointer;align-items:center;display:inline-flex;position:relative}.import-button input{opacity:0;width:1px;height:1px;position:absolute;overflow:hidden}dialog{background:var(--panel);width:min(620px,100% - 28px);color:var(--ink);border:0;border-radius:20px;padding:0;box-shadow:0 24px 70px #0c1c1447}dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#17251f7a}#recipe-form{padding:26px}.dialog-header{justify-content:space-between;align-items:flex-start;margin-bottom:25px;display:flex}.dialog-header h2{letter-spacing:-.04em;margin:0}.icon-button{width:34px;height:34px;color:var(--ink);background:#edf0ea;font-size:1.35rem}.form-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.form-grid label{color:var(--ink);gap:7px;font-size:.85rem;font-weight:700;display:grid}.form-grid label small{color:var(--muted);font-weight:500;line-height:1.4}.form-grid em{color:var(--orange);font-style:normal}.full-width{grid-column:1/-1}.form-grid input,.form-grid select,.form-grid textarea{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:10px;outline:0;padding:11px 12px;font-size:16px}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px #1f6a4e1f}.image-preview{color:var(--muted);border:1px dashed #bdcaba;border-radius:12px;grid-column:1/-1;align-items:center;gap:12px;padding:10px;display:flex}.image-preview img{object-fit:cover;border-radius:9px;width:68px;height:68px}.image-preview button{color:#b4432d;background:#fce8e3;border:0;border-radius:8px;padding:8px 10px;font-weight:700}.field-error{color:#b4432d;min-height:1em;font-weight:500}.privacy-note{color:#53645a;background:#edf3e7;border-radius:10px;margin:18px 0;padding:10px 12px;font-size:.78rem;line-height:1.5}.dialog-actions{justify-content:flex-end;gap:10px;display:flex}.splash-dish-enhanced{width:188px;height:135px;margin-bottom:16px;animation:.78s cubic-bezier(.2,.85,.3,1) both enhanced-dish-arrive;display:none;position:relative}.splash-variant-enhanced .splash-dish,.splash-variant-enhanced .splash-recipe-card{display:none}.splash-variant-enhanced .splash-dish-enhanced{display:block}.enhanced-shadow{filter:blur(7px);background:#17251f21;border-radius:50%;height:19px;animation:.78s cubic-bezier(.2,.85,.3,1) both enhanced-shadow;position:absolute;bottom:1px;left:20px;right:20px}.enhanced-plate{z-index:1;border:6px solid var(--green);background:radial-gradient(at 50% 30%,#fff7d6 0 21%,#0000 22%),linear-gradient(150deg,#efb65e,#f6d980 47%,#df8154);border-radius:50%;position:absolute;inset:45px 4px 10px;overflow:hidden;box-shadow:inset 0 -15px #edf1dedb,0 14px 23px #17251f29}.ingredient{z-index:2;border-radius:50%;display:block;position:absolute}.ingredient-rice{background:radial-gradient(circle at 13% 55%,#fff8d5 0 9%,#0000 10%),radial-gradient(circle at 33% 35%,#fff8d5 0 9%,#0000 10%),radial-gradient(circle at 53% 62%,#fff8d5 0 9%,#0000 10%),radial-gradient(circle at 74% 35%,#fff8d5 0 9%,#0000 10%),radial-gradient(circle at 91% 62%,#fff8d5 0 9%,#0000 10%);width:75px;height:28px;top:17px;left:47px}.ingredient-tomato{background:#e26f43;width:17px;height:17px;top:27px;left:76px;box-shadow:15px -5px #df7046,-21px -3px #e98d4a}.ingredient-herb{background:#4e946b;border-radius:70% 20%;width:9px;height:17px;top:23px;left:54px;transform:rotate(32deg)}.ingredient-herb-two{top:18px;left:112px;transform:rotate(-35deg)}.enhanced-steam{z-index:3;border-left:3px solid #e26f43d4;border-radius:50%;width:12px;height:44px;animation:1.05s ease-in-out infinite enhanced-steam-rise;position:absolute}.enhanced-steam-one{top:0;left:51px}.enhanced-steam-two{animation-delay:.2s;top:-13px;left:91px}.enhanced-steam-three{animation-delay:.42s;top:3px;left:130px}@keyframes enhanced-dish-arrive{0%{opacity:0;transform:translateY(31px)scale(.8)}68%{opacity:1;transform:translateY(-3px)scale(1.03)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes enhanced-shadow{0%{opacity:0;transform:scale(.45)}to{opacity:1;transform:scale(1)}}@keyframes enhanced-steam-rise{0%,to{opacity:0;transform:translateY(10px)rotate(-5deg)}42%{opacity:1}75%{opacity:.25;transform:translateY(-10px)rotate(8deg)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (width<=720px){.app-shell{width:min(100% - 28px,1120px);padding-top:16px}.topbar{align-items:flex-start}.header-actions{flex-wrap:wrap;justify-content:flex-end}.header-actions .secondary-button{padding:8px 10px}.intro{padding:64px 0 36px}.toolbar{flex-direction:column;align-items:stretch}.filter-row{justify-content:space-between}.recipe-grid{grid-template-columns:1fr}.recipe-card{min-height:210px}.form-grid{grid-template-columns:1fr}.full-width{grid-column:auto}}
