:root{
  --bg:#fffaf6;--surface:#fff;--surface-soft:#fff4ec;--line:#eadfd7;--text:#2d2622;--muted:#7c6d64;
  --accent:#e86f51;--accent-dark:#c95539;--accent-soft:#ffe2d7;--green:#4f8f74;--shadow:0 10px 30px rgba(92,62,45,.08);
  --radius:20px;--radius-sm:14px;--max:1180px;
}
*{box-sizing:border-box}html{background:var(--bg);color:var(--text);font-family:Inter,Pretendard,"Noto Sans KR",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}body{margin:0;min-height:100vh;background:linear-gradient(180deg,#fffaf6 0,#fffdfb 35%,#fff 100%)}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}.hidden{display:none!important}
.app-shell{min-height:100vh}.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;padding:14px max(18px,calc((100vw - var(--max))/2));background:rgba(255,250,246,.93);backdrop-filter:blur(14px);border-bottom:1px solid rgba(234,223,215,.8)}
.brand{display:flex;gap:10px;align-items:center;border:0;background:transparent;padding:0;text-align:left}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:var(--accent-soft);font-size:22px}.brand strong{display:block;font-size:17px}.brand small{display:block;color:var(--muted);margin-top:2px;font-size:12px}.top-actions{display:flex;align-items:center;gap:8px}.icon-action{width:40px;height:40px;border:1px solid var(--line);background:#fff;border-radius:12px}.sync-pill{border:1px solid var(--line);background:#fff;padding:9px 12px;border-radius:999px;font-size:12px;color:var(--muted)}.sync-pill.ok{color:var(--green);border-color:#bddbcc;background:#f5fbf8}.sync-pill.syncing{color:#9c6c2d;background:#fff9e9}.sync-pill.error{color:#b94141;background:#fff2f2;border-color:#efcaca}
.main{width:min(var(--max),calc(100% - 36px));margin:0 auto;padding:34px 0 100px}.home-head,.page-head,.detail-top{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.home-head{padding:10px 2px 24px}.home-head h1,.page-head h1{font-size:clamp(28px,4vw,44px);line-height:1.1;margin:4px 0 8px;letter-spacing:-.04em}.home-head p,.page-head p{margin:0;color:var(--muted);line-height:1.65}.eyebrow{font-size:11px!important;font-weight:800!important;letter-spacing:.14em!important;color:var(--accent)!important;margin:0!important}.btn{border:1px solid transparent;border-radius:12px;padding:11px 15px;font-weight:700;background:#fff;transition:.18s ease}.btn:hover{transform:translateY(-1px)}.btn-primary{background:var(--accent);color:#fff;box-shadow:0 8px 20px rgba(232,111,81,.22)}.btn-primary:hover{background:var(--accent-dark)}.btn-secondary{background:var(--accent-soft);color:#9e3d25}.btn-ghost{border-color:var(--line);background:#fff}.btn.small{padding:8px 11px;font-size:12px}.btn.large{padding:14px 18px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.search-panel{display:flex;align-items:center;gap:12px;justify-content:space-between;background:#fff;border:1px solid var(--line);border-radius:18px;padding:12px;margin-bottom:28px}.search-wrap{display:flex;align-items:center;gap:10px;flex:1;min-width:240px}.search-wrap>span{font-size:22px;color:var(--muted)}.search-wrap input{width:100%;border:0;outline:0;background:transparent;padding:8px 0;font-size:15px}.filter-row{display:flex;gap:7px;flex-wrap:wrap}.chip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 11px;font-size:12px;font-weight:700;color:var(--muted)}.chip.active{background:var(--text);color:#fff;border-color:var(--text)}
.section-head{display:flex;align-items:end;justify-content:space-between;gap:14px;margin-bottom:12px}.section-head h2{margin:0 0 3px;font-size:20px}.section-head p{margin:0;color:var(--muted);font-size:13px}.select-clean{border:1px solid var(--line);background:#fff;border-radius:11px;padding:8px 10px;font-size:12px}.dish-list{display:grid;gap:10px}.dish-row{display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:14px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:16px;padding:12px 14px;box-shadow:0 4px 16px rgba(92,62,45,.04);transition:.18s ease}.dish-row:hover{transform:translateY(-1px);box-shadow:var(--shadow)}.dish-icon{width:58px;height:58px;border-radius:15px;background:var(--surface-soft);display:grid;place-items:center;font-size:25px;overflow:hidden}.dish-icon img{width:100%;height:100%;object-fit:cover}.dish-main{min-width:0}.dish-main h3{margin:0 0 6px;font-size:17px}.dish-main p{margin:0;color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dish-meta-line{display:flex;gap:7px;flex-wrap:wrap;margin-top:7px}.mini-pill{font-size:11px;padding:4px 7px;border-radius:999px;background:#f7f3ef;color:#77685f}.dish-actions{display:flex;align-items:center;gap:7px}.star-btn{border:0;background:transparent;font-size:22px;color:#e4a73c;padding:8px}.row-arrow{font-size:22px;color:#b9aaa0}.empty-state{text-align:center;border:1px dashed #ddcfc5;border-radius:20px;padding:52px 22px;background:rgba(255,255,255,.75)}.empty-icon{font-size:46px}.empty-state h3{margin:12px 0 7px}.empty-state p{max-width:620px;margin:0 auto 18px;color:var(--muted);line-height:1.65}
.detail-top{align-items:center;margin:4px 0 18px}.back-btn{width:42px;height:42px;border:1px solid var(--line);background:#fff;border-radius:13px;font-size:20px;flex:none}.detail-title-wrap{flex:1;min-width:0}.title-input{width:100%;border:0;background:transparent;font-size:clamp(27px,5vw,42px);font-weight:800;letter-spacing:-.04em;outline:0;padding:0}.detail-meta{font-size:12px;color:var(--muted);margin-top:5px}.favorite-big{width:44px;height:44px;border:1px solid var(--line);border-radius:14px;background:#fff;font-size:24px;color:#e0a13a}.detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:18px}.left-stack,.right-stack{display:grid;gap:18px;align-content:start}.final-card,.references-card,.mini-stat-card,.quick-note-card,.setting-card{padding:22px}.card-head{margin-bottom:18px}.card-head h2,.setting-card h2{margin:3px 0 5px;font-size:22px}.card-head p,.setting-card p{margin:0;color:var(--muted);line-height:1.55;font-size:13px}.split{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.compact-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.form-grid{display:grid;gap:12px}.form-grid.two{grid-template-columns:1fr 1fr}.compact-grid{margin-bottom:17px}.form-grid label>span,.label{display:block;font-weight:750;font-size:13px;margin:0 0 7px}.label small{font-weight:500;color:var(--muted)}.input,.textarea{width:100%;border:1px solid var(--line);background:#fff;border-radius:12px;padding:12px 13px;outline:0;transition:.15s ease}.input:focus,.textarea:focus{border-color:#e2a18f;box-shadow:0 0 0 3px rgba(232,111,81,.08)}.textarea{resize:vertical;line-height:1.65}.textarea.warm{background:#fffaf1}.textarea.tall{min-height:180px}.field-with-mic{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:16px}.field-with-mic .label{margin:0}.mic-btn{border:1px solid #e6c8bd;background:#fff7f4;color:#ad4b32;border-radius:999px;padding:7px 10px;font-size:11px;font-weight:800}.mic-btn.listening{background:#d9573a;color:#fff;border-color:#d9573a}.save-line{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid #f0e9e4;margin-top:18px;padding-top:16px;color:var(--muted);font-size:12px}.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0}.stat-grid>div{text-align:center;background:var(--surface-soft);border-radius:14px;padding:13px 8px}.stat-grid strong{display:block;font-size:24px}.stat-grid span{font-size:11px;color:var(--muted)}.center{text-align:center}.quick-note-card p{font-size:13px;line-height:1.65;color:var(--muted);margin:0}.source-list{display:grid;gap:10px}.source-item{border:1px solid var(--line);border-radius:15px;background:#fff;overflow:hidden}.source-summary{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:14px 15px;cursor:pointer}.source-summary h3{margin:0 0 6px;font-size:15px}.source-summary p{margin:0;color:var(--muted);font-size:12px}.platform-badge{display:inline-flex;font-size:10px;font-weight:800;padding:4px 7px;border-radius:999px;background:#f4efe9;color:#78695f;margin-right:5px}.source-detail{border-top:1px solid var(--line);padding:14px 15px;background:#fffdfb}.source-columns{display:grid;grid-template-columns:1fr 1fr;gap:12px}.source-block{background:#faf7f4;border-radius:12px;padding:12px}.source-block h4{margin:0 0 8px;font-size:12px}.source-block ul,.source-block ol{margin:0;padding-left:18px;line-height:1.6;font-size:12px}.source-memo{margin-top:12px;background:#fff8eb;border-radius:12px;padding:12px;font-size:12px;line-height:1.6}.source-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}.source-link{color:var(--accent-dark);font-weight:700;text-decoration:none}.source-empty{border:1px dashed #decfc5;border-radius:14px;padding:22px;text-align:center;color:var(--muted);font-size:13px}
.page-head.compact{justify-content:flex-start;align-items:flex-start;margin-bottom:18px}.page-head.compact .back-btn{margin-top:2px}.settings-grid{display:grid;gap:14px;max-width:850px}.setting-title-row{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:16px}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 8px;font-size:10px;font-weight:800;background:#f2eee9;color:#776a62;white-space:nowrap}.badge.ok{background:#e9f6ef;color:#397559}.badge.error{background:#fff0f0;color:#b84646}.featured{border-color:#efb7a7;background:linear-gradient(180deg,#fff,#fff9f6)}.password-row,.input-action-row{display:flex;gap:8px}.password-row .input,.input-action-row .input{flex:1}.icon-btn{width:45px;border:1px solid var(--line);background:#fff;border-radius:12px}.setting-actions,.organize-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.help{font-size:11px!important;color:var(--muted)!important;line-height:1.6!important;margin-top:12px!important}.optional{font-size:10px;background:#f1eee9;border-radius:999px;padding:4px 6px;color:var(--muted)}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:#f7f3ef;padding:2px 5px;border-radius:6px}.file-label{display:inline-flex;align-items:center}
.modal-backdrop{position:fixed;inset:0;z-index:80;background:rgba(45,38,34,.45);display:grid;place-items:center;padding:16px;overflow:auto}.modal-card{width:min(760px,100%);max-height:calc(100vh - 32px);display:flex;flex-direction:column;background:#fff;border-radius:22px;box-shadow:0 25px 70px rgba(30,20,15,.23);overflow:hidden}.small-modal{width:min(480px,100%)}.modal-head,.modal-foot{padding:17px 19px;display:flex;align-items:center;justify-content:space-between;gap:12px}.modal-head{border-bottom:1px solid var(--line)}.modal-head h2{margin:3px 0 0}.modal-foot{border-top:1px solid var(--line);justify-content:flex-end}.modal-body{padding:18px 19px;overflow:auto}.modal-close{width:38px;height:38px;border:1px solid var(--line);border-radius:12px;background:#fff;font-size:24px}.large-input{font-size:18px;padding:14px}.status-box{margin-top:10px;border-radius:11px;padding:10px 12px;font-size:12px;background:#f7f3ef;color:var(--muted)}.status-box.success{background:#eef8f2;color:#397559}.status-box.error{background:#fff0f0;color:#a63e3e}.source-structured{margin-top:14px;border-top:1px solid var(--line);padding-top:2px}
.toast{position:fixed;left:50%;bottom:24px;z-index:120;transform:translate(-50%,20px);background:#2e2925;color:#fff;border-radius:12px;padding:11px 14px;opacity:0;pointer-events:none;transition:.2s ease;font-size:12px;max-width:min(90vw,520px);box-shadow:0 12px 32px rgba(0,0,0,.2)}.toast.show{opacity:1;transform:translate(-50%,0)}.mic-status{position:fixed;z-index:110;left:50%;bottom:22px;transform:translateX(-50%);display:flex;align-items:center;gap:8px;background:#29231f;color:#fff;border-radius:999px;padding:10px 11px 10px 14px;box-shadow:0 12px 30px rgba(0,0,0,.22);font-size:12px}.mic-status button{border:0;background:#fff;color:#b4432e;font-weight:800;border-radius:999px;padding:7px 10px}.mic-dot{width:9px;height:9px;border-radius:50%;background:#ff6a4d;box-shadow:0 0 0 5px rgba(255,106,77,.16);animation:pulse 1.3s infinite}@keyframes pulse{50%{box-shadow:0 0 0 9px rgba(255,106,77,.05)}}#mic-interim{max-width:42vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#ddd}
.cook-screen{position:fixed;inset:0;z-index:90;background:#fffdf9;overflow:auto}.cook-screen header{position:sticky;top:0;background:rgba(255,253,249,.95);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);padding:12px max(16px,calc((100vw - 900px)/2));display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center}.cook-screen header strong{display:block;font-size:18px}.cook-screen header small{display:block;color:var(--muted);margin-top:2px}.cook-screen main{width:min(900px,calc(100% - 32px));margin:0 auto;padding:28px 0 70px}.cook-screen section{margin-bottom:32px}.cook-screen h2{font-size:26px;margin:0 0 14px}.cook-list{display:grid;grid-template-columns:1fr 1fr;gap:9px}.cook-list label{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:14px;padding:14px;font-size:18px;background:#fff}.cook-list input{width:22px;height:22px}.cook-steps{counter-reset:step;display:grid;gap:12px}.cook-step{display:grid;grid-template-columns:40px 1fr;gap:12px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:16px;padding:15px;font-size:20px;line-height:1.55}.cook-step::before{counter-increment:step;content:counter(step);width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-dark);font-size:15px;font-weight:800}.cook-screen p{font-size:19px;line-height:1.7;white-space:pre-wrap}
.mobile-nav{display:none}
@media(max-width:880px){.detail-grid{grid-template-columns:1fr}.right-stack{grid-template-columns:1fr 1fr}.search-panel{align-items:stretch;flex-direction:column}.source-columns{grid-template-columns:1fr}.home-head{align-items:flex-end}.home-head p{max-width:620px}.compact-actions{justify-content:flex-start}.split{flex-direction:column}.form-grid.two{grid-template-columns:1fr 1fr}}
@media(max-width:640px){body{padding-bottom:74px}.topbar{padding:11px 14px}.brand small{display:none}.sync-pill{max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.main{width:min(100% - 24px,var(--max));padding-top:22px;padding-bottom:30px}.home-head{align-items:flex-start;flex-direction:column}.home-head h1,.page-head h1{font-size:31px}.home-head .btn{width:100%}.filter-row{overflow:auto;flex-wrap:nowrap;padding-bottom:2px}.chip{white-space:nowrap}.dish-row{grid-template-columns:50px minmax(0,1fr) auto;padding:10px 11px;gap:10px}.dish-icon{width:50px;height:50px}.dish-actions .row-arrow{display:none}.detail-top{gap:10px}.title-input{font-size:29px}.final-card,.references-card,.mini-stat-card,.quick-note-card,.setting-card{padding:16px;border-radius:17px}.right-stack{grid-template-columns:1fr}.form-grid.two{grid-template-columns:1fr}.field-with-mic{align-items:end}.mic-btn{padding:7px 9px}.save-line{align-items:flex-start;flex-direction:column}.save-line .btn{width:100%}.input-action-row{flex-direction:column}.input-action-row .btn{width:100%}.source-summary{padding:13px}.modal-backdrop{padding:0;place-items:end center}.modal-card{width:100%;max-height:94vh;border-radius:22px 22px 0 0}.modal-body{padding:15px}.modal-head,.modal-foot{padding:14px 15px}.cook-list{grid-template-columns:1fr}.cook-step{font-size:18px}.cook-screen header{grid-template-columns:auto 1fr}.cook-screen header #wake-btn{grid-column:1/-1}.mobile-nav{display:grid;position:fixed;left:0;right:0;bottom:0;z-index:50;grid-template-columns:1fr 1fr 1fr;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);border-top:1px solid var(--line);padding:6px max(10px,env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))}.mobile-nav-btn{border:0;background:transparent;display:grid;place-items:center;gap:2px;padding:6px;border-radius:12px;color:var(--muted)}.mobile-nav-btn span{font-size:21px}.mobile-nav-btn small{font-size:10px}.mobile-nav-btn.primary span{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--accent);color:#fff}.mobile-nav-btn.active{color:var(--text)}.toast{bottom:86px}.mic-status{bottom:86px;max-width:calc(100vw - 20px)}#mic-interim{max-width:35vw}}
