:root{--bg-page:#fdfcfb;--bg-card:#fff;--bg-input:#f1f3f5;--accent-primary:#1e293b;--accent-soft:#f1f5f9;--accent-glow:0 4px 20px #00000014;--text-main:#0f172a;--text-secondary:#475569;--text-dim:#94a3b8;--success:#059669;--error:#dc2626;--radius-sm:8px;--radius-md:12px;--radius-lg:24px;--font-sans:"Inter", -apple-system, sans-serif;--transition:all .3s cubic-bezier(.4, 0, .2, 1);--bp-mobile:320px;--bp-tablet:768px;--bp-desktop:1024px}*{box-sizing:border-box;margin:0;padding:0}a{color:inherit;text-decoration:none}body{background-color:var(--bg-page);color:var(--text-main);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;line-height:1.6}.text-h1{letter-spacing:-.05em;color:var(--text-main);font-size:clamp(2.4rem,6vw,3.8rem);font-weight:800;line-height:1.1}.text-h2{letter-spacing:-.03em;color:var(--text-main);font-size:clamp(1.4rem,4vw,1.75rem);font-weight:700}.text-h3{letter-spacing:-.02em;color:var(--text-main);font-size:clamp(1rem,3vw,1.25rem);font-weight:600}.text-body{color:var(--text-secondary);font-size:1.05rem;font-weight:450}.text-small{letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim);font-size:.8rem;font-weight:600}.container{max-width:720px;margin:0 auto;padding:clamp(1rem,4vw,4rem) clamp(1rem,5vw,1.5rem)}.wide-shell{width:100%;max-width:720px;margin:0 auto}@media (min-width:1024px){.wide-shell{max-width:1200px}}@media (max-width:1023px){.wide-shell{padding:0 .5rem 0 1.5rem!important}}.hide-scrollbar::-webkit-scrollbar{display:none}.hide-scrollbar{scrollbar-width:none}.desktop-nav-links{display:none}@media (min-width:1024px){.desktop-nav-links{flex-direction:row;justify-content:space-between;align-items:center;display:flex}}.desktop-account{display:none}@media (min-width:1024px){.desktop-account{justify-content:flex-end;align-items:center;min-width:64px;padding:0 .25rem;display:flex}}.menu-mobile-only{display:block}@media (min-width:1024px){.menu-mobile-only{display:none}}.mobile-bottom-nav{bottom:calc(.5rem + env(safe-area-inset-bottom,0px));z-index:1000;justify-content:center;width:calc(100% - 1rem);max-width:720px;display:flex;position:fixed;left:50%;transform:translate(-50%)}@media (min-width:1024px){.mobile-bottom-nav{display:none}}.flex-col{flex-direction:column;display:flex}.flex-row{flex-direction:row;display:flex}.flex-center{justify-content:center;align-items:center;display:flex}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.w-full{width:100%}.gap-xs{gap:.5rem}.gap-sm{gap:1rem}.gap-md{gap:1.5rem}.gap-lg{gap:2rem}.gap-xl{gap:3rem}.p-md{padding:1.5rem}.p-lg{padding:2rem}.card{background:var(--bg-card);border-radius:var(--radius-md);transition:var(--transition);border:1px solid #eee;padding:2rem}.card:hover{border-color:#000}.input{border-radius:var(--radius-sm);width:100%;color:var(--text-main);transition:var(--transition);background:#f8f9fa;border:1px solid #e9ecef;padding:.7rem 1rem;font-size:.95rem}.input:focus{border-color:var(--text-main);background:#fff;outline:none;box-shadow:0 0 0 4px #00000008}.btn-primary{background:var(--text-main);color:#fff;border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition);border:none;padding:.65rem 1.5rem;font-size:.9rem;font-weight:700}.btn-primary:not(:disabled):hover{filter:brightness(1.2);transform:translateY(-2px);box-shadow:0 8px 25px #00000026}.btn-primary:active{transform:translateY(0)}.btn-primary:disabled{opacity:.2;cursor:not-allowed}.btn-secondary{color:var(--text-main);border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition);background:#f1f3f5;border:1px solid #e9ecef;padding:.55rem 1.25rem;font-size:.9rem;font-weight:600}.btn-secondary:hover{background:#e9ecef}.progress-bar{background:#e9ecef;border-radius:2px;height:4px;overflow:hidden}.progress-active{background:var(--text-main);height:100%;transition:width .6s cubic-bezier(.65,0,.35,1)}.glass-panel{-webkit-backdrop-filter:blur(20px);background:#ffffffd9;border-top:1px solid #0000000d}@keyframes fadeIn{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}.animate-up{animation:.6s cubic-bezier(.16,1,.3,1) forwards fadeIn}button:focus-visible,a:focus-visible,input:focus-visible,[role=button]:focus-visible{outline-offset:2px;outline:2px solid #0f172a}.skip-to-main{z-index:999;position:absolute;left:-9999px}.skip-to-main:focus{color:#fff;background:#0f172a;border-radius:0 0 8px 8px;padding:.5rem 1rem;text-decoration:none;left:50%;transform:translate(-50%)}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--bg-page)}::-webkit-scrollbar-thumb{background:#dee2e6;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#ced4da}.admin-nav-toggle,.admin-nav-mobile-panel{display:none}@media (max-width:860px){.admin-nav-desktop{display:none!important}.admin-nav-toggle{display:inline-flex}.admin-nav-mobile-panel{display:flex!important}}@media (max-width:767px){.mobile-action-row{gap:.5rem!important}.mobile-action-row button{min-width:0;padding:1.25rem .5rem!important;font-size:1rem!important}.recipe-action-row{gap:.35rem!important}.recipe-action-row a,.recipe-action-row button{gap:.3rem!important;padding:.55rem .7rem!important;font-size:.8rem!important}.recipe-action-row svg{width:16px!important;height:16px!important}}.swal2-popup.swal-popup{border-radius:24px!important;padding:2rem!important;font-family:inherit!important}.swal2-title{color:#0f172a!important;font-size:1.1rem!important;font-weight:800!important}.swal2-html-container,.swal2-content{color:#64748b!important;font-size:.9rem!important}.swal2-confirm{border-radius:10px!important;padding:.6rem 1.5rem!important;font-size:.9rem!important;font-weight:700!important}.swal2-backdrop-show{-webkit-backdrop-filter:blur(4px)!important;backdrop-filter:blur(4px)!important}#nprogress{pointer-events:none}#nprogress .bar{background:#0f172a;height:3px;box-shadow:0 0 15px #0f172acc}#nprogress .spinner-icon{display:none}#nprogress .peg{box-shadow:0 0 15px #0f172acc,0 0 8px #0f172a99}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.filter-chip-row{padding-bottom:4px;display:flex;overflow-x:auto}@media (min-width:768px){.filter-chip-row{flex-wrap:wrap;overflow-x:visible}}
