:root{font-family:DM Sans,system-ui,sans-serif;color:#263b2d;background:#f8f5ee;font-synthesis:none;line-height:1.6;font-weight:400}*{box-sizing:border-box}body{margin:0}button,input,textarea{font:inherit}button,a,input,textarea,summary{-webkit-tap-highlight-color:transparent}button,summary{cursor:pointer}button{border:0}button:disabled{opacity:.55;cursor:wait}a{color:inherit}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #ac6e36;outline-offset:4px}.topbar{max-width:1240px;margin:auto;padding:28px 40px;display:flex;align-items:center;gap:20px;border-bottom:1px solid #e3e1d6}.brand{font-family:Lora,Georgia,serif;font-size:25px;font-weight:600;text-decoration:none;display:flex;gap:12px;align-items:center}.logo{background:#315c43;color:#fff;border-radius:10px;padding:0 9px;font-family:system-ui;font-size:29px}.private-label{font-size:10px;letter-spacing:2px;margin-left:auto;color:#7a8073}.text-button{background:none;color:#315c43;font-size:14px;padding:8px;text-decoration:underline;text-underline-offset:4px}main{max-width:1240px;margin:auto;padding:60px 40px;min-height:calc(100svh - 205px)}h1,h2,h3{font-family:Lora,Georgia,serif;line-height:1.2;font-weight:500}h1{font-size:clamp(35px,4.6vw,58px);letter-spacing:-1.8px;margin:12px 0 18px}h2{font-size:27px;margin:12px 0 18px}h3{font-size:22px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2.2px;color:#7b826f;margin:0 0 14px}.muted{color:#737b6e}.intro{font-size:16px;color:#697262;max-width:460px}.small{font-size:12px}.primary,.secondary{border-radius:8px;padding:13px 22px;font-size:14px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:20px;min-height:48px}.primary{background:#315c43;color:#fff}.primary:hover{background:#254a35}.secondary{background:#e6ecdf;color:#315c43}.auth-panel{max-width:540px;padding:28px 0}.auth-panel .stack{max-width:370px;margin-top:30px}main:has(.auth-panel){display:flex;align-items:center;justify-content:space-between;gap:50px}.stack{display:grid;gap:18px}label{display:grid;gap:6px;font-size:13px;font-weight:600;color:#47523e}input,textarea{width:100%;min-width:0;border:1px solid #dbded3;border-radius:7px;background:#fffdf8;color:#263b2d;padding:11px 13px;outline:none;font-size:16px;font-weight:400}input:focus,textarea:focus{border-color:#315c43;box-shadow:0 0 0 2px #315c4318}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#93998c}.setup-note{border:1px solid #ddd9c9;border-radius:12px;padding:20px;background:#eeeddf;margin-top:25px}.setup-note h2{font-size:21px}.setup-note p{font-size:14px}.welcome-art{width:390px;position:relative;min-height:400px;flex-shrink:0}.art-circle{position:absolute;right:0;top:0;background:#e9e9d8;width:310px;height:310px;border-radius:50%;font-size:150px;text-align:center;padding:20px;transform:rotate(-18deg)}.paper{position:absolute;bottom:10px;left:0;width:290px;background:#fffdf7;padding:28px;border:1px solid #e7e2d5;transform:rotate(-7deg);box-shadow:10px 15px 45px #4f503119}.paper h2{font-size:25px}.paper-lines{height:65px;background:repeating-linear-gradient(transparent 0 20px,#e8e4d7 20px 21px);margin-bottom:20px}.art-leaf{position:absolute;right:0;bottom:0;font-size:110px;transform:rotate(25deg)}.collection-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:35px}.collection h1{font-size:46px}.collection-heading p.muted{font-size:14px}.title-dot{color:#a96b43}.toolbar{display:flex;align-items:center;gap:14px;margin-bottom:24px}.search{display:flex;align-items:center;gap:10px;flex:1;background:#fffdf8;border:1px solid #dbded3;border-radius:8px;padding-left:16px}.search span{font-size:28px;font-weight:400;line-height:1}.search input{border:0;background:transparent;padding:13px 10px;box-shadow:none}.search:focus-within{border-color:#315c43}.filter-button{border:1px solid #dbded3;background:transparent;border-radius:8px;padding:13px 18px;color:#63705a;white-space:nowrap}.filter-button.selected{background:#e4eadc;color:#315c43}.tags{display:flex;gap:9px;flex-wrap:wrap}.tag{display:inline-block;padding:5px 12px;background:#efeee5;border:1px solid transparent;border-radius:30px;font-size:11px;font-weight:500;color:#6c755e;line-height:1.7}.tag.selected{background:#315c43;color:#fff}.tag span{opacity:.6;margin-left:5px}.results-label{font-size:11px;color:#929888;letter-spacing:.3px;margin:30px 0 18px}.recipe-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.recipe-card{position:relative;border:1px solid #e5e2d5;border-radius:14px;background:#fffdf8;overflow:hidden;transition:transform .15s,box-shadow .15s}.recipe-card:hover{transform:translateY(-3px);box-shadow:0 8px 28px #2737290b}.card-art{height:145px;display:grid;place-items:center;font-size:70px;background:#e9ecdc}.recipe-card:nth-child(3n+2) .card-art{background:#f1e5d5}.recipe-card:nth-child(3n+3) .card-art{background:#e6e7db}.favorite{position:absolute;top:12px;right:12px;border-radius:50%;width:38px;height:38px;background:#fffdf8e8;color:#53634c;font-size:24px;display:grid;place-items:center;line-height:1}.is-favorite{color:#a85e46}.card-body{display:block;text-align:left;width:100%;padding:22px;background:none;color:inherit}.card-meta{font-size:9px;text-transform:uppercase;letter-spacing:1px;color:#89917c}.card-body h2{font-size:23px;margin:10px 0}.card-body p{font-size:13px;color:#7b8373;margin:0 0 18px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:42px}.card-tags{display:flex;gap:6px;flex-wrap:wrap}.card-tags .tag{font-size:10px;padding:3px 10px}.empty{grid-column:1/-1;text-align:center;padding:65px 20px;border:1px dashed #d8dccd;border-radius:14px;background:#f2f2e8}.empty h2{font-size:27px}.empty p{color:#7a826f;font-size:14px}.empty-icon{font-size:45px}.backup-menu{position:relative;font-size:13px;color:#65715c}.backup-menu summary{padding:10px;white-space:nowrap}.backup-menu>div{position:absolute;right:0;top:42px;background:#fffdf8;box-shadow:0 5px 25px #0002;z-index:2;min-width:160px;border-radius:8px;padding:8px}.backup-menu button{display:block;background:none;padding:10px;width:100%;text-align:left;color:#315c43;font-size:13px}footer{text-align:center;padding:24px;color:#969b8b;font-size:11px;letter-spacing:.5px}.notification{max-width:1160px;margin:18px auto 0;padding:12px 18px;background:#e4eddf;color:#315c43;border:1px solid #cbd8c2;border-radius:8px;font-size:14px;overflow-wrap:anywhere}.notification.error{background:#fbede6;border-color:#e4bca5;color:#8a432c}[hidden]{display:none!important}dialog{width:min(740px,calc(100% - 28px));max-height:90svh;overflow-y:auto;border:1px solid #dddccf;border-radius:16px;padding:35px;background:#fdfbf5;color:#263b2d;box-shadow:0 25px 100px #15261935}dialog::backdrop{background:#1d302479;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}dialog h2{font-size:32px;padding-right:25px;overflow-wrap:anywhere}.close{position:absolute;right:15px;top:12px;font-size:28px;line-height:1;background:none;color:#78826c;min-width:44px;min-height:44px}.import-panel{background:#eff0e5;padding:20px;border-radius:10px;display:grid;gap:14px;margin:25px 0}.import-panel p{margin:0}.divider{text-align:center;font-size:9px;letter-spacing:1.6px;color:#8d9481;margin:25px 0}.two-columns{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-error{padding:12px;border-radius:7px;background:#fbede6;color:#8a432c;font-size:14px}.recipe-detail{display:grid;grid-template-columns:2fr 3fr;gap:35px;margin-top:24px}.recipe-detail li{font-size:14px;margin-bottom:12px;padding-left:4px;overflow-wrap:anywhere}.recipe-detail ul,.recipe-detail ol{padding-left:20px}.source-link{font-size:13px;color:#426348;text-underline-offset:4px}.preserve{white-space:pre-wrap;font-size:14px;overflow-wrap:anywhere}.actions{display:flex;align-items:center;gap:20px;margin-top:30px}.danger{background:none;color:#a24a35;font-size:14px;padding:12px}.servings-controls{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}.servings-controls label{width:110px}.servings-controls button{min-height:48px}.quantity-note{display:block;font-size:11px;color:#737b6e;margin-top:3px}@media(min-width:1500px){main{padding-top:80px}}@media(max-width:950px){.welcome-art{width:310px;transform:scale(.85);transform-origin:right center}.recipe-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.collection-heading{align-items:flex-start}.collection h1{font-size:40px}.private-label{display:none}.topbar .text-button{margin-left:auto}}@media(max-width:650px){.topbar{padding:20px}.brand{font-size:23px}main{padding:35px 20px;min-height:calc(100svh - 160px)}main:has(.auth-panel){display:block}.welcome-art{display:none}.auth-panel{padding:10px 0;max-width:100%}.auth-panel .stack{max-width:100%}h1{font-size:39px}.collection-heading{display:block;margin-bottom:24px}.collection-heading>.primary{width:100%;margin-top:12px}.collection h1{font-size:38px}.toolbar{flex-wrap:wrap;gap:10px}.search{flex-basis:100%}.filter-button{padding:9px 15px}.backup-menu{margin-left:auto}.recipe-grid{gap:15px;grid-template-columns:1fr}.card-art{height:140px}.card-body{padding:20px}.notification{margin:12px 20px 0}.recipe-detail{grid-template-columns:1fr;gap:4px}dialog{padding:27px 20px;max-height:92svh}dialog h2{font-size:28px}.empty{padding:40px 15px}.results-label{margin-top:24px}.two-columns{gap:12px}}.card-art{position:relative}.card-art .recipe-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.detail-image{margin-top:24px}.detail-image .recipe-image{display:block;width:100%;max-height:360px;object-fit:contain;border-radius:10px;background:#e9ecdc}.detail-image p{display:none}.detail-image.image-unavailable p{display:block}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
