@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/db9bfcd87f1d73a3-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/4e2312c98e240c05-s.p.woff2) format("woff2");unicode-range:u+02d7,u+0303,u+0331,u+0e01-0e5b,u+200c-200d,u+25cc}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/feed52454563c595-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/f83e5507ec3854fa-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/8934311971e59087-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/bfdf244a9384e8b2-s.p.woff2) format("woff2");unicode-range:u+02d7,u+0303,u+0331,u+0e01-0e5b,u+200c-200d,u+25cc}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/b10e9fa1144bb4fb-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/d13ab8ed065835e4-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/d8c0f620f258dcc1-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/5fcb63deed33aab6-s.p.woff2) format("woff2");unicode-range:u+02d7,u+0303,u+0331,u+0e01-0e5b,u+200c-200d,u+25cc}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/e595057e1ab84c19-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/861fabf8a4ffc042-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/2b32cc5cb75c7a84-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/0d4277ce62acaedf-s.p.woff2) format("woff2");unicode-range:u+02d7,u+0303,u+0331,u+0e01-0e5b,u+200c-200d,u+25cc}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/942c4903ae74b0f3-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/66c5464579bf95d1-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:IBM Plex Sans Thai Fallback;src:local("Arial");ascent-override:110.31%;descent-override:52.78%;line-gap-override:0.00%;size-adjust:101.17%}.__className_218bf9{font-family:IBM Plex Sans Thai,IBM Plex Sans Thai Fallback;font-style:normal}.__variable_218bf9{--font-ibm-plex:"IBM Plex Sans Thai","IBM Plex Sans Thai Fallback"}@font-face{font-family:Quicksand;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/8c41d152016ec150-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Quicksand;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/8678fbd4e10a68cb-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Quicksand;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/81f12896aa30d4c2-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Quicksand Fallback;src:local("Arial");ascent-override:95.87%;descent-override:23.97%;line-gap-override:0.00%;size-adjust:104.31%}.__className_506040{font-family:Quicksand,Quicksand Fallback;font-weight:500;font-style:normal}.__variable_506040{--font-quicksand:"Quicksand","Quicksand Fallback"}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;color-scheme:light}html.dark{color-scheme:dark}body{font-family:var(--font-body);background:var(--bg-primary);color:var(--text-primary);line-height:1.6;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-family:var(--font-display);font-weight:500;letter-spacing:-.02em;line-height:1.2;text-wrap:balance}button,input,select,textarea{font:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}:root{--bg-primary:#FAF8F4;--bg-secondary:#FDFCF9;--bg-tertiary:#F0EDE6;--border:rgba(29,27,22,0.12);--text-primary:#221F1A;--text-secondary:#6B7268;--text-tertiary:#9AA195;--accent:#2F6B4F;--accent-hover:#285943;--accent-dim:rgba(47,107,79,0.12);--on-accent:#FBFAF7;--success:#3D7A54;--warning:#FFA700;--error:#FF5100;--star:#FFA700;--radius-sm:12px;--radius-md:14px;--radius-lg:20px;--radius-pill:999px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--space-12:48px;--z-banner:90;--z-nav:100;--z-modal:200;--z-toast:300;--container:1160px;--shadow-sm:0 1px 3px rgba(34,50,40,0.08);--shadow-md:0 10px 30px rgba(34,50,40,0.10);--shadow-lg:0 24px 60px rgba(34,50,40,0.14);--font-brand:var(--font-quicksand),var(--font-ibm-plex),system-ui,sans-serif;--font-body:var(--font-ibm-plex),system-ui,sans-serif;--font-display:var(--font-ibm-plex),system-ui,sans-serif;--transition-fast:180ms cubic-bezier(0.25,0.1,0.25,1);--transition-smooth:240ms cubic-bezier(0.25,0.1,0.25,1)}html.dark{--bg-primary:#151B18;--bg-secondary:#1D2521;--bg-tertiary:#26312C;--border:rgba(242,240,234,0.14);--text-primary:#F2F0EA;--text-secondary:#A8B0A6;--text-tertiary:#7D877C;--accent:#6FA88B;--accent-hover:#5C9278;--accent-dim:rgba(111,168,139,0.16);--on-accent:#102018;--success:#63A47C;--warning:#FFA700;--error:#FF5100;--shadow-sm:0 1px 3px rgba(3,10,7,0.35);--shadow-md:0 10px 30px rgba(3,10,7,0.42);--shadow-lg:0 24px 60px rgba(3,10,7,0.50)}.container{max-width:var(--container);margin-inline:auto;padding-inline:var(--space-4)}.brand{font-family:var(--font-brand);font-weight:500;color:#FFA700}.panel{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.btn-icon,.btn-primary,.btn-secondary,.btn-tertiary{border-radius:var(--radius-pill);line-height:1;transition:transform var(--transition-fast),background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast)}.btn-icon svg,.btn-primary svg,.btn-secondary svg,.btn-tertiary svg{flex-shrink:0;display:block;position:relative;top:-1px}.btn-icon:active,.btn-primary:active,.btn-secondary:active,.btn-tertiary:active{transform:translateY(1px) scale(.98)}.btn-tertiary{display:inline-flex;align-items:center;justify-content:center;background:transparent;color:var(--text-secondary);border:1px solid transparent;cursor:pointer;padding:8px 12px}.btn-tertiary:hover{color:var(--text-primary);background:var(--bg-tertiary)}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-secondary)}.btn-icon:hover{color:var(--accent);border-color:var(--accent)}.chip{border-radius:var(--radius-md);background:var(--bg-tertiary);color:var(--text-secondary)}.chip.active{background:var(--accent-dim);color:var(--accent)}.input{width:100%;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-primary);padding:10px 12px}.input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--accent-dim)}.label{display:block;font-size:.875rem;font-weight:500;color:var(--text-primary);margin-bottom:var(--space-2)}.field-error{color:var(--error);font-size:.8125rem;margin-top:var(--space-1)}.skeleton{border-radius:var(--radius-md);background:linear-gradient(90deg,var(--bg-tertiary),var(--bg-secondary),var(--bg-tertiary));background-size:200% 100%;animation:skeletonShimmer 1.2s ease-in-out infinite}.empty-state{border:1px dashed var(--border);border-radius:var(--radius-lg);background:var(--bg-secondary);padding:var(--space-8);text-align:center;color:var(--text-secondary)}.skip-link{position:absolute;left:var(--space-4);top:-48px;z-index:var(--z-toast);background:var(--accent);color:var(--on-accent);border-radius:var(--radius-pill);padding:8px 12px;transition:top var(--transition-fast)}.skip-link:focus{top:var(--space-4)}.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}@keyframes skeletonShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.btn-primary{background:var(--accent);color:var(--on-accent);border:none;padding:.75rem 1.5rem;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;font-size:.9rem}.btn-primary:hover{background:var(--accent-hover)}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border:none;padding:.75rem 1.5rem;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;font-size:.9rem}.btn-secondary:hover{background:var(--border)}.card{background:var(--bg-secondary);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden;transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.gold-stars{color:var(--star)}.empty-star{color:var(--border)}@keyframes spin{to{transform:rotate(1turn)}}.spin{animation:spin 1s linear infinite;display:inline-block}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes ringSpin{0%{transform:rotate(0deg);stroke-dashoffset:80}50%{transform:rotate(180deg);stroke-dashoffset:40}to{transform:rotate(1turn);stroke-dashoffset:80}}@keyframes phaseProgress{0%{width:0}30%{width:25%}70%{width:75%}95%{width:95%}to{width:100%}}@keyframes phaseBlink{0%,to{opacity:1}50%{opacity:.3}}main{animation:fadeIn .3s ease-out;padding-top:4.5rem;padding-bottom:var(--space-8)}main.hero{padding-top:0}.modal-overlay{background:rgba(21,27,24,.48);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:var(--z-modal)}.modal-panel{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.hero{min-height:calc(100dvh - 72px);display:grid;grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);grid-gap:var(--space-8);gap:var(--space-8);align-items:center;padding-block:var(--space-8)}.hero-copy{max-width:62ch}.hero-title{font-size:clamp(2.25rem,5vw,4.25rem);line-height:.98;letter-spacing:-.06em}.hero-subtitle{color:var(--text-secondary);font-size:1.0625rem;max-width:58ch;margin-top:var(--space-4)}.hero-panel{padding:var(--space-6)}.review-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,420px);grid-gap:var(--space-6);gap:var(--space-6);align-items:start}.review-panel{padding:var(--space-6)}.recipe-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:var(--space-4);gap:var(--space-4)}.recipe-card-link{display:block;color:inherit;text-decoration:none;min-width:0}.recipe-card{display:flex;gap:var(--space-4);padding:var(--space-4);height:100%}.recipe-card-thumb{width:112px;height:112px;border-radius:var(--radius-sm);flex-shrink:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--accent),var(--accent-hover))}.recipe-card-thumb-icon{color:rgba(251,250,247,.72)}.recipe-card-body{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:var(--space-2)}.recipe-card-title{font-size:1rem;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recipe-card-meta{font-size:.8125rem;color:var(--text-secondary)}.recipe-card-footer{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.recipe-hero{position:relative;overflow:hidden;border-radius:var(--radius-lg);background:var(--bg-secondary);border:1px solid var(--border)}.recipe-hero-scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(21,27,24,0) 30%,rgba(21,27,24,.62))}.recipe-hero-content{position:relative;padding:var(--space-6);color:#FBFAF7}.recipe-tabs{margin-top:var(--space-6)}.form-stack{display:grid;grid-gap:var(--space-4);gap:var(--space-4)}@media (max-width:720px){.recipe-grid{grid-template-columns:1fr}.recipe-card-thumb{width:92px;height:92px}}@media (max-width:860px){.hero,.review-layout{grid-template-columns:1fr}.hero{min-height:auto;padding-block:var(--space-6);align-items:start}.hero-title{font-size:clamp(2rem,9vw,3rem);line-height:1.02;letter-spacing:-.05em}main.hero{padding-top:5rem}}.admin-layout{display:grid;grid-gap:var(--space-6);gap:var(--space-6)}.page-header{display:flex;align-items:center;gap:var(--space-4);margin-bottom:var(--space-6)}.page-header-icon{flex-shrink:0;width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-md);background:var(--accent-dim);color:var(--accent);border:1px solid var(--border)}.page-header h1{margin:0;font-size:1.6rem;line-height:1.15}.page-header-sub{color:var(--text-secondary);font-size:.85rem;margin-top:.2rem}.segmented-control{display:flex;background:var(--bg-tertiary);border-radius:9px;padding:3px;gap:2px;flex-wrap:wrap}.segmented-option{flex:1 1;border:none;background:transparent;color:var(--text-secondary);padding:7px 12px;border-radius:7px;font-size:.85rem;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.3rem;white-space:nowrap;transition:background var(--transition-fast),color var(--transition-fast)}.segmented-option.active{background:var(--bg-secondary);color:var(--text-primary);box-shadow:var(--shadow-sm)}.segmented-option svg{flex-shrink:0}@media (max-width:640px){.segmented-control{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;mask-image:linear-gradient(90deg,black 92%,transparent);-webkit-mask-image:linear-gradient(90deg,black 92%,transparent)}.segmented-control::-webkit-scrollbar{display:none}.segmented-option{flex:0 0 auto}.segmented-control.equal{overflow-x:visible;mask-image:none;-webkit-mask-image:none}.segmented-control.equal .segmented-option{flex:1 1;min-width:0}}.tab-fade{animation:fadeIn var(--transition-smooth)}.admin-layout>*,.tab-fade{min-width:0}.skeleton-row{display:flex;gap:var(--space-4);padding:var(--space-4);border-radius:var(--radius-md);background:var(--bg-secondary);border:1px solid var(--border);margin-bottom:var(--space-3)}.skeleton-row .skeleton{flex:1 1;height:14px}.admin-table{width:100%;border-collapse:collapse}.admin-table td,.admin-table th{padding:12px;border-bottom:1px solid var(--border);text-align:left;font-size:.82rem}.admin-table th{color:var(--text-secondary);font-size:.8125rem;font-weight:600}.admin-table thead th{border-bottom-width:2px}.admin-table tbody tr{transition:background var(--transition-fast)}.admin-table tbody tr:hover,.badge{background:var(--bg-tertiary)}.badge{border-radius:var(--radius-pill);padding:4px 8px;font-size:.75rem;font-weight:600;display:inline-block;white-space:nowrap;color:var(--text-secondary)}.badge-success{background:var(--accent-dim);color:var(--accent)}.badge-warning{background:rgba(255,167,0,.14);color:#c88a00}.badge-error{background:rgba(255,81,0,.14);color:var(--error)}.stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:var(--space-4);gap:var(--space-4)}@media (max-width:760px){.stat-grid{grid-template-columns:1fr}}