:root{color:#201c18;font-synthesis:none;--ink:#201c18;--muted:#777066;--line:#d8d1c6;--paper:#fbfaf6;--accent:#b8492d;--dark:#171411;background:#eeeae2;font-family:Pretendard,Pretendard Variable,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{min-width:320px;height:100%;min-height:100%;margin:0}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:1.25rem;height:1.25rem}.app-shell{grid-template-columns:20rem minmax(0,1fr);height:100dvh;display:grid;overflow:hidden}.sidebar{z-index:20;background:var(--dark);color:#f8f4ec;border-right:1px solid #35302a;flex-direction:column;min-width:0;display:flex}.brand{border-bottom:1px solid #35302a;justify-content:space-between;align-items:flex-start;padding:1.75rem 1.5rem 1.5rem;display:flex}.brand div{display:grid}.brand small,.content-header small,.modal header small{color:#a79e92;letter-spacing:.15em;font-size:.625rem;font-weight:800}.brand strong{letter-spacing:-.04em;margin-top:.15rem;font-size:1.2rem}.brand span{color:#cf5f42;letter-spacing:.12em;margin-top:.25rem;font-size:.625rem;font-weight:800}.close-drawer{color:#fff;background:0 0;border:0;display:none}.search{background:#211d19;border:1px solid #423c35;grid-template-columns:1.25rem 1fr;align-items:center;gap:.65rem;margin:1.1rem 1rem .75rem;padding:.75rem .85rem;display:grid}.search svg{color:#8d8479}.search input{color:#fff;background:0 0;border:0;outline:0;min-width:0;font-size:.85rem}.search input::placeholder{color:#8d8479}.category-tabs{scrollbar-width:none;gap:.35rem;padding:.25rem 1rem 1rem;display:flex;overflow-x:auto}.category-tabs button{color:#bdb5aa;background:0 0;border:1px solid #423c35;flex:none;padding:.45rem .65rem;font-size:.7rem;font-weight:700}.category-tabs button.active{color:#fff;background:#cf5f42;border-color:#cf5f42}.recipe-list{border-top:1px solid #35302a;flex:1;overflow-y:auto}.recipe-list>button{color:#eee9e1;text-align:left;background:0 0;border:0;border-bottom:1px solid #2f2a25;width:100%;padding:.95rem 1.25rem;display:grid}.recipe-list>button span{font-size:.9rem;font-weight:650}.recipe-list>button small{color:#7f776e;margin-top:.25rem;font-size:.65rem}.recipe-list>button:hover,.recipe-list>button.active{background:#26211d}.recipe-list>button.active{box-shadow:inset 3px 0 #cf5f42}.recipe-list>button.active small{color:#cf745d}.empty-list{color:#8d8479;padding:2rem 1.25rem;font-size:.8rem}.sidebar-footer{border-top:1px solid #35302a;justify-content:space-between;align-items:center;padding:1rem 1.25rem;display:flex}.profile{align-items:center;gap:.7rem;display:flex}.profile>span{background:#cf5f42;border-radius:50%;place-items:center;width:2.15rem;height:2.15rem;font-weight:800;display:grid}.profile div{display:grid}.profile strong{font-size:.8rem}.profile small{color:#8d8479;margin-top:.1rem;font-size:.65rem}.sidebar-footer>a{color:#8d8479;padding:.6rem;display:grid}.content{background:var(--paper);min-width:0;overflow-y:auto}.content-header{z-index:5;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fbfaf6f0;align-items:center;gap:1rem;min-height:5.5rem;padding:1rem clamp(1.25rem,4vw,3.5rem);display:flex;position:sticky;top:0}.content-header>div:nth-child(2){display:grid}.content-header small{color:var(--accent)}.content-header strong{margin-top:.2rem;font-size:1.05rem}.header-menu{display:none}.actions{gap:.5rem;margin-left:auto;flex-direction:row!important;display:flex!important}.actions button,.content-header>button{border:1px solid var(--line);min-height:2.65rem;color:var(--ink);background:0 0;align-items:center;gap:.45rem;padding:0 .8rem;font-size:.72rem;font-weight:750;display:flex}.actions button:hover{border-color:var(--accent);color:var(--accent)}.recipe-detail{width:min(100%,52rem);margin:0 auto;padding:clamp(2.25rem,7vw,6rem) clamp(1.25rem,6vw,4rem)}.recipe-meta{color:var(--muted);justify-content:space-between;align-items:center;gap:1rem;font-size:.72rem;display:flex}.recipe-meta span{color:var(--accent);background:#efe5dc;padding:.4rem .6rem;font-weight:750}.recipe-detail h1{letter-spacing:-.07em;word-break:keep-all;margin:1.25rem 0 2.25rem;font-size:clamp(2.35rem,6vw,4.8rem);font-weight:850;line-height:.98}.recipe-body{border-top:1px solid var(--line);white-space:pre-wrap;word-break:keep-all;margin:0;padding-top:2rem;font-size:clamp(1rem,2vw,1.16rem);font-weight:540;line-height:2}.recipe-detail footer{border-top:1px solid var(--line);color:var(--muted);margin-top:4rem;padding-top:1rem;font-size:.72rem}.empty-state{text-align:center;place-content:center;min-height:calc(100dvh - 5.5rem);padding:2rem;display:grid}.empty-state strong{font-size:1.35rem}.empty-state p{color:var(--muted);font-size:.85rem}.mobile-menu,.drawer-backdrop{display:none}.error-banner{color:#fff;background:#8e2f22;justify-content:space-between;padding:.75rem 1.25rem;font-size:.8rem;display:flex}.error-banner button{color:#fff;background:0 0;border:0;text-decoration:underline}.center-screen{background:var(--paper);height:100dvh;color:var(--muted);text-align:center;place-content:center;display:grid}.spinner{border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;width:2rem;height:2rem;margin:auto;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.login-page{background:var(--dark);color:#f8f4ec;place-items:center;min-height:100dvh;padding:1.5rem;display:grid}.login-page section{text-align:center;background:#1d1916;border:1px solid #3a342e;width:min(100%,27rem);padding:3rem clamp(1.5rem,7vw,3rem)}.login-mark{color:#cf5f42;border:1px solid #cf5f42;place-items:center;width:3.5rem;height:3.5rem;margin:0 auto 1.5rem;font-family:Georgia,serif;font-size:1.75rem;display:grid}.login-page small{color:#91877c;letter-spacing:.16em;font-size:.65rem;font-weight:800}.login-page h1{letter-spacing:-.06em;margin:1rem 0;font-size:2.25rem;line-height:1.08}.login-page p{color:#afa69b;font-size:.82rem;line-height:1.75}.kakao-login{color:#191600;background:#fee500;justify-content:center;align-items:center;gap:.75rem;margin-top:2rem;padding:1rem;font-size:.9rem;font-weight:800;text-decoration:none;display:flex}.kakao-login b{letter-spacing:-.25em}.login-page em{color:#71695f;margin-top:1rem;font-size:.65rem;font-style:normal;display:block}.text-link{color:#cf745d;margin-top:1.25rem;font-size:.8rem;display:inline-block}.modal-backdrop{z-index:50;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#120f0db3;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal{background:var(--paper);width:min(100%,38rem);max-height:calc(100dvh - 2rem);padding:1.5rem;overflow-y:auto;box-shadow:0 2rem 6rem #00000059}.modal header{justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem;display:flex}.modal header h2{letter-spacing:-.04em;margin:.25rem 0 0;font-size:1.5rem}.modal header button{background:0 0;border:0;padding:.5rem}.modal>label{color:var(--muted);gap:.45rem;margin-top:1rem;font-size:.72rem;font-weight:750;display:grid}.modal input,.modal select,.modal textarea{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:0;outline:0;padding:.85rem}.modal textarea{resize:vertical;min-height:15rem;line-height:1.7}.modal input:focus,.modal select:focus,.modal textarea:focus{border-color:var(--accent)}.modal>footer{justify-content:flex-end;gap:.5rem;margin-top:1.5rem;display:flex}.modal>footer button{border:1px solid var(--line);background:0 0;min-height:2.8rem;padding:0 1rem;font-size:.8rem;font-weight:750}.modal>footer .primary{border-color:var(--accent);background:var(--accent);color:#fff}.staff-manage{color:#eee9e1;background:0 0;border:1px solid #423c35;margin:.5rem 1rem;padding:.75rem;font-size:.75rem;font-weight:700}.modal>footer .danger{color:#a43224;border-color:#d6aaa1;margin-right:auto}.users-modal{width:min(100%,46rem)}.user-list{border-top:1px solid var(--line);max-height:56vh;overflow:auto}.user-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;padding:1rem .1rem;display:flex}.user-name{align-items:center;gap:.7rem;display:flex}.user-name>span{background:var(--ink);color:#fff;border-radius:50%;place-items:center;width:2.4rem;height:2.4rem;display:grid}.user-name div{display:grid}.user-name small{color:var(--muted);font-size:.7rem}.user-controls{align-items:center;gap:.5rem;display:flex}.user-controls select,.user-controls button{border:1px solid var(--line);background:#fff;padding:.55rem .65rem}.user-controls button:disabled,.user-controls select:disabled{opacity:.4}.inline-error{color:#a43224}@media (width<=899px){.app-shell{display:block}.sidebar{width:min(85vw,21rem);transition:transform .22s;position:fixed;inset:0 auto 0 0;transform:translate(-102%)}.sidebar.open{transform:translate(0)}.close-drawer{padding:.25rem;display:grid}.drawer-backdrop{z-index:15;background:#00000080;border:0;display:block;position:fixed;inset:0}.header-menu{place-items:center;width:2.65rem;padding:0!important;display:grid!important}.content-header{padding:1rem}.content-header>div:nth-child(2){min-width:0}.content-header>div:nth-child(2) strong{text-overflow:ellipsis;white-space:nowrap;max-width:30vw;overflow:hidden}.actions button span{display:none}.actions button{justify-content:center;width:2.65rem;padding:0}.recipe-detail{padding-top:3rem}.mobile-menu{display:none}}@media (width<=480px){.content-header small{display:none}.content-header>div:nth-child(2) strong{max-width:36vw}.recipe-detail h1{font-size:2.65rem}.modal{padding:1.25rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation-duration:.01ms!important}}.brand-lockup{align-items:center;gap:.75rem;display:flex!important}.brand-lockup img{width:7.75rem;height:auto;display:block}.brand-lockup span{white-space:nowrap;color:#63d4ff;margin:0}.login-logo{filter:drop-shadow(0 0 14px #ad00ff47);width:min(100%,15rem);height:auto;margin:0 auto 1.4rem;display:block}@media (width<=380px){.brand-lockup img{width:6.5rem}}.avatar,.avatar-fallback{border-radius:50%;flex:none;width:2.4rem;height:2.4rem}.avatar{object-fit:cover;background:#2b2622;display:block}.avatar-fallback{background:var(--ink);color:#fff;place-items:center;font-weight:800;display:grid}.profile .avatar,.profile .avatar-fallback{width:2.15rem;height:2.15rem}.profile .avatar-fallback{background:#cf5f42}.user-controls .delete-user{color:#a43224;border-color:#d6aaa1}
