:root{font-family:Noto Sans SC,system-ui,sans-serif;color:#24352a;background:#f4f0e6;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 50% -10%,#fffdf6 0,#f4f0e6 44%,#e8e1d2)}button,input{font:inherit}button{color:inherit}a{color:#47684f}.app-shell{min-height:100vh;max-width:560px;margin:0 auto;padding:env(safe-area-inset-top) 18px calc(88px + env(safe-area-inset-bottom))}.topbar{height:70px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:10px;border:0;background:transparent;font:700 19px "Noto Serif SC",serif;padding:0;cursor:pointer}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:12px 12px 12px 3px;color:#fff8e9;background:#2f5b3a;font:700 19px "Noto Serif SC",serif;box-shadow:0 5px 15px #2f5b3a2b}.today-pill{border:1px solid #d6d0c1;border-radius:999px;background:#fffaf0aa;padding:6px 11px;font-size:13px}.session-row{display:flex;justify-content:space-between;margin:12px 4px 13px;color:#718076;font-size:13px}.offline-banner{display:grid;gap:6px;margin:0 0 8px;padding:9px 12px;border-radius:12px;background:#eef1e5;color:#526357;font-size:12px}.offline-banner i,.category-list i{overflow:hidden;height:5px;border-radius:99px;background:#d5ddd1}.offline-banner i b,.category-list i b{display:block;height:100%;background:#5f8b67;transition:width .2s ease}.offline-banner.error{display:flex;justify-content:space-between;color:#8b5548;background:#fbefeb}.offline-banner button{border:0;background:transparent;text-decoration:underline;cursor:pointer}.flashcard{overflow:hidden;border-radius:28px;border:1px solid #d9d3c5;background:#fffcf4;box-shadow:0 20px 60px #4c5c4920}.photo-button{position:relative;display:block;width:100%;height:min(52vh,460px);padding:0;border:0;background:#dcd8cc;cursor:pointer}.photo-button img{width:100%;height:100%;display:block;object-fit:cover}.photo-button:after{content:"";position:absolute;inset:auto 0 0;height:35%;background:linear-gradient(transparent,#10201699);pointer-events:none}.is-revealed .photo-button{height:min(36vh,330px)}.reveal-hint{position:absolute;z-index:1;left:50%;bottom:24px;transform:translate(-50%);width:max-content;color:#fff;background:#18261db5;border:1px solid #ffffff55;padding:9px 16px;border-radius:999px;font-size:14px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.answer-panel{padding:18px 20px 20px;animation:lift .22s ease-out}.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;padding:16px 18px 19px}.choice-grid button{min-height:52px;border:1px solid #bdc9ba;border-radius:14px;background:#f5f8ef;font-weight:600;cursor:pointer}.choice-grid button:active{transform:scale(.98)}.choice-result{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:0 0 10px}.choice-result span{padding:7px 9px;border-radius:9px;background:#eeeae0;color:#71766f;font-size:12px}.choice-result .correct{background:#dcebdc;color:#315c3c;font-weight:700}.choice-result .wrong{background:#f4ded8;color:#8b5548;text-decoration:line-through}.result-correct,.result-wrong{margin:4px 0 12px;font-size:13px;font-weight:600}.result-correct{color:#3e7149}.result-wrong{color:#995448}@keyframes lift{0%{opacity:0;transform:translateY(8px)}}.answer-heading{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.eyebrow{margin:0 0 3px;color:#768177;font-size:12px;letter-spacing:.13em;text-transform:uppercase}h1{font:700 30px/1.2 "Noto Serif SC",serif;margin:0}.flag-button{padding:7px 0;border:0;background:transparent;color:#9a6957;font-size:12px;text-decoration:underline;cursor:pointer}.aliases{color:#6d756f;margin:7px 0 10px;font-size:14px}.features{display:flex;flex-wrap:wrap;list-style:none;gap:6px;padding:0;margin:0 0 18px}.features li{background:#eef1e5;color:#48604c;border-radius:8px;padding:5px 9px;font-size:12px}.ratings{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.rating{min-height:61px;border:1px solid;border-radius:14px;cursor:pointer;display:flex;flex-direction:column;justify-content:center;gap:2px;background:#fff}.rating span{font-weight:600}.rating small{font-size:10px;opacity:.7}.rating.unknown{color:#8b5548;border-color:#d6b8ae;background:#fbefeb}.rating.fuzzy{color:#806920;border-color:#ddcc8c;background:#fff8dd}.rating.known{color:#315c3c;border-color:#9eb9a5;background:#eaf4e9}.source-line{margin:12px 8px 0;font-size:11px;color:#7d817d;text-align:center}.bottom-nav{position:fixed;z-index:5;bottom:0;left:50%;transform:translate(-50%);width:min(560px,100%);height:calc(70px + env(safe-area-inset-bottom));padding:8px 44px env(safe-area-inset-bottom);display:flex;justify-content:space-between;background:#f9f5ebee;border-top:1px solid #d9d3c5;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.bottom-nav button{border:0;background:transparent;color:#7d867e;min-width:60px;display:flex;flex-direction:column;align-items:center;gap:2px;font-size:11px;cursor:pointer}.bottom-nav button span{font-size:20px;line-height:25px}.bottom-nav button.active{color:#2e5a39;font-weight:600}.empty-state,.status-page{min-height:68vh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:12px}.empty-state p,.status-page p{color:#6d756f;margin:0}.basket{width:70px;height:70px;border-radius:50%;display:grid;place-items:center;background:#dcebdc;color:#346040;font-size:34px}.primary-button,.wide-button{padding:11px 18px;border:1px solid #426d4c;border-radius:12px;color:#fff;background:#315d3d;cursor:pointer}.primary-button.full,.wide-button{width:100%}.completion-actions{display:grid;width:min(290px,100%);gap:9px}.secondary-button{padding:11px 18px;border:1px solid #9eb9a5;border-radius:12px;color:#315c3c;background:#eaf4e9;cursor:pointer}.text-button{padding:8px;border:0;color:#617067;background:transparent;text-decoration:underline;cursor:pointer}.status-page{min-height:100vh;padding:30px}.content-page{padding:26px 2px 20px}.content-page>h1{margin-bottom:24px}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-bottom:24px}.stat-grid div{display:flex;flex-direction:column;padding:15px 8px;border:1px solid #ddd5c5;border-radius:16px;background:#fffaf0;text-align:center}.stat-grid strong{font:700 26px "Noto Serif SC",serif}.stat-grid span{color:#768077;font-size:11px}.ingredient-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.ingredient-row{position:relative;overflow:hidden;height:46px;border-radius:12px;background:#e4ded1;padding:13px;font-size:13px}.ingredient-row i{position:absolute;inset:auto 0 0;height:4px;background:#6c956e}.section-title{margin:24px 0 10px;font:700 17px "Noto Serif SC",serif}.category-list{display:grid;gap:9px}.category-list>div{display:grid;grid-template-columns:78px 1fr 38px;align-items:center;gap:8px;font-size:12px}.category-list small{color:#788078;text-align:right}.weak-list{display:flex;flex-wrap:wrap;gap:8px}.weak-list>span{display:flex;gap:7px;padding:8px 10px;border-radius:10px;background:#fbefeb;color:#7f5147;font-size:13px}.weak-list small{opacity:.7}.settings-card{background:#fffbf2;border:1px solid #ddd5c5;border-radius:18px;padding:18px;margin-bottom:12px}.settings-card h2{margin:0 0 7px;font:700 17px "Noto Serif SC",serif}.settings-card p{color:#667069;font-size:13px;line-height:1.6}.verified{color:#3e7149!important}.warning{color:#986743!important}.update-card{border-color:#a8c3ab;background:#eff7ec}.button-row{display:flex;gap:9px}.button-row button{flex:1;padding:9px;border-radius:10px;border:1px solid #bcc6ba;background:#f4f8ef}.button-row button:disabled{opacity:.45}details{font-size:13px}summary{cursor:pointer;color:#47684f}.credits{max-height:280px;overflow:auto;padding-left:18px;line-height:1.7;color:#646b65}.danger-button{width:100%;padding:12px;color:#995448;border:1px solid #dabbb3;border-radius:12px;background:#fbefeb;cursor:pointer}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.toast{position:fixed;z-index:8;left:50%;bottom:90px;transform:translate(-50%);padding:10px 16px;border-radius:10px;color:#fff;background:#233529e8;box-shadow:0 10px 30px #0003;font-size:13px}@media(min-width:600px){.app-shell{padding-left:26px;padding-right:26px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
