:root{color:#233229;font-synthesis:none;text-rendering:optimizelegibility;--ink:#243229;--muted:#6d776f;--green:#355f49;--soft:#edf1e9;--soft-strong:#e3e9df;--card:#fffefa;--border:#e9e9e3;background:#fbfaf7;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:#fbfaf7;min-width:320px;min-height:100vh;margin:0}button,input{font-family:inherit}button:focus-visible,a:focus-visible,input:focus-visible{outline-offset:3px;outline:3px solid #355f4940}::selection{color:#243229;background:#dce7d8}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (prefers-color-scheme:dark){:root{color:#edf0eb;--ink:#eef1ed;--muted:#a9b1ab;--green:#9fc4aa;--soft:#202a24;--soft-strong:#28342d;--card:#1b211d;--border:#2b332e;background:#151a17}body{background:#151a17}.hero{background:linear-gradient(145deg,#1d2821,#26251e)}.search-box{background:#1b211df0;border-color:#374139}.search-box kbd{color:#aeb5af;background:#252c27;border-color:#39413b}.hero-glow-one{background:#294535}.hero-glow-two{background:#473d29}.recipe-image-wrap{background:#242c27}.recipe-category,.heart{background:#1b211de6}}#root{min-height:100vh}.site-shell{min-height:100vh;overflow:hidden}.header{justify-content:space-between;align-items:center;max-width:1240px;height:76px;margin:0 auto;padding:0 28px;display:flex}.brand{color:var(--ink);letter-spacing:-.02em;align-items:center;gap:11px;font-size:1.15rem;font-weight:800;text-decoration:none;display:flex}.brand-mark{background:var(--green);color:#fff;border-radius:11px;place-items:center;width:34px;height:34px;font-family:Georgia,serif;font-size:1.15rem;display:grid;box-shadow:0 7px 18px #2d52402e}.nav{align-items:center;gap:28px;display:flex}.nav a{color:var(--muted);font-size:.92rem;font-weight:650;text-decoration:none;transition:all .2s}.nav a:hover{color:var(--green)}.nav-search{background:var(--soft);color:var(--ink);cursor:pointer;font:inherit;border:0;border-radius:999px;align-items:center;gap:8px;padding:10px 15px;font-size:.9rem;font-weight:650;transition:all .2s;display:flex}.nav-search:hover{background:var(--soft-strong);transform:translateY(-1px)}.nav-search svg,.search-box svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;width:18px}.hero{background:linear-gradient(145deg,#f1f3eb 0%,#f7f3e9 100%);border-radius:30px;place-items:center;min-height:430px;margin:0 18px;display:grid;position:relative;overflow:hidden}.hero-content{z-index:2;text-align:center;max-width:760px;padding:70px 24px;position:relative}.eyebrow,.section-kicker{color:var(--green);text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;font-weight:800}.hero h1{letter-spacing:-.055em;color:var(--ink);margin:13px 0;font-family:Georgia,Times New Roman,serif;font-size:clamp(3rem,6vw,5.25rem);font-weight:500;line-height:.98}.hero p{color:var(--muted);margin:0 auto 32px;font-size:1.08rem;line-height:1.7}.search-box{color:#829087;background:#ffffffeb;border:1px solid #29403314;border-radius:18px;align-items:center;gap:13px;width:min(600px,90vw);height:62px;margin:0 auto;padding:0 17px 0 20px;transition:all .25s;display:flex;box-shadow:0 16px 50px #3942341c}.search-box:focus-within{border-color:#2d524040;transform:translateY(-2px);box-shadow:0 20px 55px #39423429}.search-box input{font:inherit;color:var(--ink);background:0 0;border:0;outline:0;flex:1;min-width:0;font-size:1rem}.search-box input::placeholder{color:#929a94}.search-box kbd{color:#9a9f9b;background:#f7f7f4;border:1px solid #e3e5df;border-radius:7px;padding:5px 8px;font:600 .68rem/1 system-ui}.backend-test{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;margin-top:18px;display:flex}.backend-test button{color:var(--green);cursor:pointer;background:#ffffffd1;border:1px solid #2d52402e;border-radius:999px;padding:9px 14px;font:700 .78rem/1 system-ui}.backend-test button:disabled{opacity:.6;cursor:wait}.backend-test span{font:700 .75rem/1.3 system-ui}.backend-ok{color:#2d684b}.backend-error{color:#9b4545}.hero-glow{filter:blur(2px);opacity:.55;border-radius:50%;position:absolute}.hero-glow-one{background:#dce7d8;width:330px;height:330px;top:-120px;left:-110px}.hero-glow-two{background:#eee1c8;width:300px;height:300px;bottom:-150px;right:-90px}.section{max-width:1180px;margin:0 auto;padding:86px 28px 10px}.section-heading{justify-content:space-between;align-items:flex-end;margin-bottom:28px;display:flex}.section-heading h2{letter-spacing:-.035em;margin:6px 0 0;font-family:Georgia,serif;font-size:2.1rem;font-weight:500}.section-heading a{color:var(--green);font-size:.88rem;font-weight:750;text-decoration:none}.section-heading a span{transition:all .2s;display:inline-block}.section-heading a:hover span{transform:translate(4px)}.category-grid{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.category-card{border:1px solid var(--border);background:var(--card);text-align:left;cursor:pointer;min-height:104px;color:var(--ink);border-radius:20px;align-items:center;padding:20px;transition:transform .22s,box-shadow .22s,border-color .22s;display:flex}.category-card:hover{border-color:#d5dbd2;transform:translateY(-3px);box-shadow:0 14px 35px #2d372f14}.category-icon{background:var(--soft);border-radius:16px;place-items:center;width:54px;height:54px;margin-right:15px;font-size:1.55rem;display:grid}.category-copy{flex-direction:column;gap:5px;display:flex}.category-copy strong{font-size:1rem}.category-copy small{color:var(--muted);font-size:.8rem}.category-arrow{color:#a0aaa3;margin-left:auto;font-size:1.2rem;transition:all .2s}.category-card:hover .category-arrow{color:var(--green);transform:translate(3px)}.latest{padding-bottom:90px}.recipe-grid{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.recipe-card{background:var(--card);border:1px solid var(--border);border-radius:22px;transition:transform .25s,box-shadow .25s;overflow:hidden}.recipe-card:hover{transform:translateY(-5px);box-shadow:0 20px 45px #2d372f1c}.recipe-image-wrap{aspect-ratio:1.35;background:#e9ebe5;position:relative;overflow:hidden}.recipe-image{object-fit:cover;width:100%;height:100%;transition:transform .45s cubic-bezier(.2,.7,.2,1);display:block}.recipe-card:hover .recipe-image{transform:scale(1.035)}.recipe-category{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--green);background:#ffffffe6;border-radius:999px;padding:7px 10px;font-size:.7rem;font-weight:800;position:absolute;top:14px;left:14px}.heart{cursor:pointer;color:#56635b;background:#ffffffeb;border:0;border-radius:50%;place-items:center;width:38px;height:38px;transition:all .2s;display:grid;position:absolute;top:14px;right:14px}.heart:hover{color:#a74c4c;transform:scale(1.08)}.heart svg{fill:none;stroke:currentColor;stroke-width:1.8px;width:18px}.recipe-body{padding:20px 20px 21px}.recipe-body h3{letter-spacing:-.02em;margin:0 0 12px;font-family:Georgia,serif;font-size:1.32rem;font-weight:600}.recipe-meta{color:var(--muted);align-items:center;gap:8px;font-size:.8rem;font-weight:600;display:flex}.dot{color:#c4c8c4}footer{border-top:1px solid var(--border);max-width:1180px;color:var(--muted);align-items:center;gap:22px;margin:0 auto;padding:30px 28px 38px;font-size:.8rem;display:flex}footer p{margin-right:auto}.footer-brand{font-size:.95rem}.footer-brand .brand-mark{border-radius:9px;width:29px;height:29px;font-size:.9rem}@media (width<=800px){.nav>a{display:none}.header{height:68px;padding:0 20px}.hero{border-radius:24px;min-height:400px;margin:0 10px}.hero-content{padding:58px 18px}.search-box{height:58px}.search-box kbd{display:none}.section{padding:66px 20px 0}.category-grid{grid-template-columns:repeat(2,1fr)}.recipe-grid{grid-template-columns:1fr}.recipe-image-wrap{aspect-ratio:1.65}.latest{padding-bottom:65px}footer{flex-wrap:wrap;margin-top:20px;padding:28px 20px}footer p{order:3;width:100%;margin:0}.section-heading a{display:none}}@media (width<=520px){.nav-search span{display:none}.nav-search{padding:10px}.hero h1{font-size:3.2rem}.hero p{font-size:.98rem}.category-grid{grid-template-columns:1fr}.category-card{min-height:92px}.section-heading h2{font-size:1.8rem}}.login-button,.auth-user button{color:var(--green);cursor:pointer;background:#fff;border:1px solid #2d52402e;border-radius:999px;padding:10px 15px;font:700 .82rem/1 system-ui}.auth-user{color:var(--muted);align-items:center;gap:10px;font-size:.78rem;font-weight:650;display:flex}.login-overlay{z-index:100;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#18201b73;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.login-dialog{border:1px solid var(--border);background:#fff;border-radius:24px;width:min(420px,100%);padding:34px;position:relative;box-shadow:0 30px 80px #141e1838}.login-dialog h2{margin:8px 0;font-family:Georgia,serif;font-size:2rem;font-weight:500}.login-dialog>p{color:var(--muted);margin:0 0 24px;font-size:.9rem;line-height:1.5}.login-dialog form{gap:16px;display:grid}.login-dialog label{color:var(--ink);gap:7px;font-size:.8rem;font-weight:750;display:grid}.login-dialog input{border:1px solid var(--border);height:46px;font:inherit;border-radius:12px;outline:0;padding:0 13px}.login-dialog input:focus{border-color:#2d52408c;box-shadow:0 0 0 3px #2d524014}.login-close{color:var(--muted);cursor:pointer;background:0 0;border:0;font-size:1.7rem;position:absolute;top:16px;right:18px}.login-submit{background:var(--green);color:#fff;cursor:pointer;border:0;border-radius:12px;height:48px;font:750 .9rem system-ui}.login-submit:disabled{opacity:.6;cursor:wait}.login-error{color:#9b4545;font-size:.8rem;font-weight:650}.auth-loading{min-height:100vh;color:var(--muted);place-items:center;font-size:.9rem;display:grid}.login-page{background:linear-gradient(145deg,#f1f3eb 0%,#f7f3e9 100%);place-items:center;min-height:100vh;padding:24px;display:grid}.login-page-card{position:relative}.login-brand{margin-bottom:28px}.login-page-card h1{letter-spacing:-.03em;margin:8px 0;font-family:Georgia,serif;font-size:2.25rem;font-weight:500}.profile-link{background:0 0!important;border-color:#0000!important}.profile-page{background:#f7f6f1;min-height:calc(100vh - 150px);padding:70px 24px}.profile-card{border:1px solid var(--border);background:#fff;border-radius:24px;max-width:680px;margin:0 auto;padding:36px;box-shadow:0 18px 50px #2d372f12}.profile-card h1{letter-spacing:-.035em;margin:8px 0 28px;font-family:Georgia,serif;font-size:2.4rem;font-weight:500}.profile-back{color:var(--green);cursor:pointer;background:0 0;border:0;margin-bottom:28px;padding:0;font:700 .82rem system-ui}.profile-fields{gap:22px;display:grid}.profile-fields label{color:var(--ink);gap:8px;font-size:.82rem;font-weight:750;display:grid}.profile-fields input{border:1px solid var(--border);height:48px;font:inherit;color:var(--ink);border-radius:12px;outline:0;padding:0 14px}.profile-fields input:not([readonly]):focus{border-color:#2d52408c;box-shadow:0 0 0 3px #2d524014}.profile-fields input[readonly]{color:var(--muted);cursor:not-allowed;background:#f5f5f1}.profile-fields small{color:var(--muted);font-size:.72rem;font-weight:500}.user-menu{position:relative}.user-menu-trigger{align-items:center;display:flex;color:var(--ink)!important;background:0 0!important;border:1px solid #2d372f38!important;border-radius:10px!important;padding:7px 11px!important}.user-menu-trigger span{color:var(--muted);font-size:.9rem}.user-menu-dropdown{z-index:20;border:1px solid var(--border);background:#fff;border-radius:14px;min-width:150px;padding:6px;position:absolute;top:calc(100% + 10px);right:0;box-shadow:0 14px 38px #1e282221}.user-menu-dropdown button{text-align:left;width:100%;color:var(--ink)!important;background:0 0!important;border:0!important;border-radius:9px!important;padding:10px 12px!important;font-size:.82rem!important}.user-menu-dropdown button:hover{background:var(--soft)!important}.access-card{border:1px solid var(--border);background:#fff;border-radius:12px;max-width:1080px;margin:0 auto;padding:28px;box-shadow:0 4px 18px #2d372f0a}.access-admin h1{letter-spacing:-.02em;margin:8px 0 4px;font-family:system-ui,sans-serif;font-size:1.65rem;font-weight:750}.access-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-end;gap:24px;padding-bottom:22px;display:flex}.access-header p{color:var(--muted);margin:0;font-size:.86rem}.access-header .profile-back{margin-bottom:12px}.access-header-meta{text-align:right;gap:1px;min-width:100px;display:grid}.access-header-meta strong{font-size:1.35rem}.access-header-meta span{color:var(--muted);font-size:.72rem}.access-message{margin:16px 0 0}.access-controls{justify-content:space-between;align-items:center;gap:20px;min-height:66px;display:flex}.access-control-group{gap:2px;display:grid}.access-control-group label{color:var(--ink);font-size:.78rem;font-weight:750}.access-control-group span{color:var(--muted);font-size:.7rem}.access-legend{color:var(--muted);flex-wrap:wrap;gap:16px;font-size:.68rem;font-weight:650;display:flex}.access-legend span{align-items:center;gap:6px;display:flex}.status-dot{background:#aaa;border-radius:50%;width:7px;height:7px;display:inline-block}.status-owner{background:#2d5240}.status-access{background:#5d8b6f}.status-none{background:#a6aaa7}.access-table-wrap{border:1px solid var(--border);border-radius:8px;overflow-x:auto}.access-table{border-collapse:collapse;text-align:left;width:100%}.access-table th,.access-table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:12px 14px;font-size:.76rem}.access-table tr:last-child td{border-bottom:0}.access-table tbody tr:hover{background:#fafaf7}.access-table th{color:#667069;text-transform:uppercase;letter-spacing:.045em;white-space:nowrap;background:#f7f7f3;font-size:.65rem;font-weight:750}.access-user-cell{min-width:210px}.access-user-cell strong,.access-user-cell small{display:block}.access-user-cell strong{color:var(--ink);font-size:.78rem}.access-user-cell small{color:var(--muted);margin-top:3px;font-size:.67rem}.role-badge{border-radius:5px;align-items:center;padding:4px 7px;font-size:.65rem;font-weight:800;display:inline-flex}.role-owner{color:#244b37;background:#eaf1ec}.role-empty{color:#a0a6a2}.access-select{width:100%;min-width:125px;height:34px;color:var(--ink);background:#fff;border:1px solid #d8ddd8;border-radius:6px;outline:0;padding:0 28px 0 9px;font:650 .7rem system-ui}.access-select:focus{border-color:#6f8e7c;box-shadow:0 0 0 2px #2d524014}.access-select:disabled{color:#9ca29e;cursor:not-allowed;background:#f5f5f2}.access-fixed-value{color:#4f5953;white-space:nowrap;font-size:.7rem;font-weight:650}.access-status{white-space:nowrap;align-items:center;gap:6px;font-size:.67rem;font-weight:750;display:inline-flex}.access-status i{background:#a6aaa7;border-radius:50%;width:7px;height:7px}.access-status.has-access{color:#356047}.access-status.has-access i{background:#5d8b6f}.access-status.no-access{color:#7f8581}.access-help{border:1px solid var(--border);color:var(--muted);background:#fafaf7;border-radius:7px;flex-wrap:wrap;align-items:center;gap:18px;margin-top:16px;padding:12px 14px;font-size:.67rem;display:flex}.access-help strong{color:var(--ink);margin-right:2px;font-size:.7rem}.access-help b{color:#4b554f}@media (width<=800px){.access-card{padding:20px 14px}.access-header{align-items:flex-start}.access-controls{flex-direction:column;align-items:flex-start;padding:14px 0}.access-legend{gap:10px}.access-help{flex-direction:column;align-items:flex-start;gap:7px}}
