:root{--bg-top:#fff9ef;--bg-bottom:#efe3d1;--panel-bg:#fffcf5e6;--panel-border:#7d6c4a2e;--panel-shadow:0 18px 45px #44371e17;--card-shadow:0 14px 34px #392e1a14;--text-main:#213328;--text-soft:#6f6555;--line-soft:#7b6b4c29;--accent-deep:#1d4a31;--accent-mid:#8c7b48;--accent-soft:#f1e5be;--surface-soft:#f7f0e2;--surface-muted:#f4ead7;--danger-soft:#ffe5df;--danger-text:#a22e20;--radius-lg:24px;--radius-md:16px;--radius-sm:12px}*{box-sizing:border-box}body{background:radial-gradient(circle at top left, #fff8e0f2 0%, transparent 32%), radial-gradient(circle at top right, #e3d2a773 0%, transparent 26%), linear-gradient(180deg, var(--bg-top) 0%, var(--bg-bottom) 100%);min-width:320px;color:var(--text-main);margin:0;font-family:Pretendard Variable,Apple SD Gothic Neo,Noto Sans KR,Segoe UI,sans-serif;line-height:1.5}button,input,textarea{font:inherit}button{cursor:pointer;transition:transform .16s,box-shadow .16s,background-color .16s,border-color .16s,color .16s,opacity .16s}button:hover:not(:disabled){transform:translateY(-1px)}button:active:not(:disabled){transform:translateY(0)}button:disabled{cursor:not-allowed;opacity:.58;transform:none}.app{width:min(1180px,100%);margin:0 auto;padding:36px 16px 64px}.panel{border:1px solid var(--panel-border);border-radius:var(--radius-lg);background:var(--panel-bg);box-shadow:var(--panel-shadow);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);margin-bottom:20px;padding:24px;position:relative;overflow:hidden}.panel:before{content:"";pointer-events:none;background:linear-gradient(135deg,#fffc 0%,#f3e9d26b 100%);height:78px;position:absolute;inset:0 0 auto}.panel>*{z-index:1;position:relative}.panel h2{letter-spacing:-.03em;margin-top:0;margin-bottom:16px;font-size:1.35rem}.panel-title-row{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.panel-title-row h2{margin-bottom:0}.panel-toggle-row{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.panel-toggle-row h2{margin-bottom:0}.panel-toggle-button{background:#fffcf5f5;border:1px solid #8170502e;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:44px;padding:10px;transition:background-color .16s,border-color .16s,box-shadow .16s,transform .16s;display:inline-flex;box-shadow:0 10px 22px #3f351d14}.panel-toggle-button:hover{background:#fffdf8;border-color:#8170504d;box-shadow:0 12px 26px #3f351d1f}.panel-toggle-button-icon{width:16px;color:var(--text-soft);justify-content:center;align-items:center;font-size:1rem;line-height:1;transition:transform .16s;display:inline-flex;transform:rotate(180deg)}.panel-toggle-button-icon-open{transform:rotate(0)}label{letter-spacing:-.02em;margin-bottom:8px;font-weight:700;display:block}input,textarea{background:#fffffff0;border:1px solid #84745542;border-radius:14px;width:100%;padding:13px 14px;transition:border-color .16s,box-shadow .16s,background-color .16s;box-shadow:inset 0 1px 2px #352b180a}input::placeholder,textarea::placeholder{color:#9a8f7c}input:focus-visible,textarea:focus-visible{border-color:#31604385;outline:none;box-shadow:0 0 0 4px #22543a1a,inset 0 1px 2px #352b180a}textarea{resize:vertical}.field{margin-bottom:18px}.primary-button,.save-button,.card-save-button,.ghost-button,.scale-button,.edit-button,.tag-toggle-button{border:1px solid #0000;border-radius:12px;min-height:42px;padding:10px 14px;font-weight:700}.primary-button,.save-button,.card-save-button{color:#fff;background:linear-gradient(135deg,#214f35 0%,#183e29 100%);box-shadow:0 12px 24px #183e292e}.primary-button,.save-button{width:100%;margin-top:14px}.save-button-inline{flex-shrink:0;width:auto;min-width:104px;margin-top:0;padding-inline:18px}.ghost-button,.scale-button,.tag-toggle-button{color:#2f3e32;background:linear-gradient(#f8f1e4 0%,#efe5d4 100%);border-color:#84745524;box-shadow:0 6px 14px #46381f0f}.edit-button{color:var(--accent-deep);background:#fffffff0;border-color:#45675233;box-shadow:inset 0 0 0 1px #183e2908,0 8px 16px #183e290d}.save-button:disabled,.card-save-button:disabled{box-shadow:none}.result-section{margin-top:28px}.section-heading,.recipe-section-header,.recipes-panel-header,.modal-title-row,.modal-title-actions,.modal-actions{justify-content:space-between;align-items:center;gap:12px;display:flex}.section-heading,.recipe-section-header{margin-bottom:14px}.section-heading h3,.recipe-section-header h4{letter-spacing:-.02em;margin:0;font-size:1.02rem}.editable-row{grid-template-columns:1fr auto;align-items:center;gap:8px;margin-bottom:10px;display:grid}.ingredient-edit-row{grid-template-columns:auto 1fr auto;align-items:center;gap:8px;margin-bottom:10px;display:grid}.editable-block{margin-bottom:0}.instruction-row{grid-template-columns:30px 1fr auto;align-items:start;gap:8px;margin-bottom:12px;display:grid}.instruction-row strong{padding-top:10px}.error-message{background:var(--danger-soft);color:var(--danger-text);border:1px solid #b7533f2e;border-radius:14px;margin-bottom:16px;padding:14px 16px;box-shadow:0 8px 18px #a22e200f}.success-message{color:#1e6a40;background:#e6f7ece6;border:1px solid #2b7a4a2e;border-radius:14px;margin-bottom:16px;padding:14px 16px;box-shadow:0 8px 18px #1e6a400f}.input-invalid{border-color:#b53f34bf;box-shadow:0 0 0 4px #b53f341f,inset 0 1px 2px #352b180a}.input-invalid:focus-visible{border-color:#b53f34bf;box-shadow:0 0 0 4px #b53f3424,inset 0 1px 2px #352b180a}.field-error-text{color:var(--danger-text);margin:8px 0 0;font-size:.92rem;font-weight:700}.search-panel{background:linear-gradient(#fffef9f5 0%,#fcf6ece6 100%);padding-top:18px;padding-bottom:18px}.recipes-panel-header{align-items:center}.recipes-count{color:var(--text-soft);white-space:nowrap;background:#fffbf4e0;border:1px solid #81705024;border-radius:999px;margin:0;padding:9px 12px;font-size:.92rem;font-weight:700}.search-field{width:min(360px,100%)}.search-field-wide{width:100%}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.recipe-list{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;display:grid}.recipe-card{box-shadow:var(--card-shadow);background:linear-gradient(#fffffffa 0%,#fcf8f1f0 100%);border:1px solid #7e6e4c26;border-radius:22px;flex-direction:column;gap:0;padding:14px;transition:transform .18s,box-shadow .18s,border-color .18s;display:flex}.recipe-card:hover{border-color:#7e6e4c40;transform:translateY(-2px);box-shadow:0 22px 40px #392e1a1c}.recipe-card-open{padding-bottom:18px}.recipe-card-toggle{width:100%;color:inherit;text-align:left;box-shadow:none;background:0 0;border:0;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:2px;display:grid}.recipe-card-index{color:#6b5322;letter-spacing:.04em;background:linear-gradient(#f4ead1 0%,#ebdfbf 100%);border-radius:14px;justify-content:center;align-items:center;min-width:44px;height:44px;padding:0 10px;font-size:.84rem;font-weight:800;display:inline-flex}.recipe-card-title-block{min-width:0}.recipe-card-title{letter-spacing:-.03em;font-size:1.04rem;font-weight:800;line-height:1.35;display:block}.recipe-card-toggle-trailing{align-items:center;gap:8px;display:inline-flex}.recipe-card-view-count{color:#715d34;background:#f1e8d4f2;border-radius:999px;justify-content:center;align-items:center;min-width:34px;height:30px;padding:0 10px;font-size:.78rem;font-weight:800;display:inline-flex}.recipe-card-toggle-icon{width:30px;height:30px;color:var(--text-soft);background:#f3ebdbe6;border-radius:999px;justify-content:center;align-items:center;font-size:1rem;line-height:1;transition:transform .18s;display:inline-flex;transform:rotate(0)}.recipe-card-toggle-icon-open{transform:rotate(45deg)}.recipe-card-meta{justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.recipe-meta-texts{flex-direction:column;gap:2px;display:flex}.recipe-scale-text{color:#75633a;background:#f0e5c99e;border-radius:999px;width:fit-content;margin:0;padding:5px 10px;font-size:.78rem;font-weight:700;display:inline-flex}.recipe-card-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.scale-controls{align-items:center;gap:6px;display:inline-flex}.scale-button{min-width:42px;font-size:1.1rem;font-weight:700}.recipe-card-body{border-top:1px solid var(--line-soft);flex-direction:column;gap:14px;margin-top:16px;padding-top:16px;display:flex}.recipe-card h4{letter-spacing:-.02em;margin:0;font-size:.96rem}.ingredient-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.ingredient-item{background:#f9f4eab8;border:1px solid #7f6d491f;border-radius:14px;align-items:flex-start;gap:8px;margin-bottom:0;padding:10px 12px;line-height:1.45;display:flex}.ingredient-group{background:var(--accent-soft);color:#5f4714;border-radius:999px;flex-shrink:0;padding:3px 8px;font-size:.82rem;font-weight:700}.tag-toggle-button{min-width:64px;font-weight:700}.tag-toggle-button-active{color:#4c3910;background:#d7c68d}.row-action-group{flex-shrink:0;align-items:center;gap:6px;display:inline-flex}.row-move-button,.ingredient-delete-button{white-space:nowrap;min-width:42px;padding-inline:12px}.row-move-button:disabled,.ingredient-delete-button:disabled{opacity:.45}.recipe-card li{margin-bottom:8px;line-height:1.5}.recipe-details{border-top:1px solid var(--line-soft);margin-top:2px;padding-top:14px}.recipe-details summary{cursor:pointer;background:#f7f0e2c2;border:1px solid #81705024;border-radius:14px;justify-content:space-between;align-items:center;padding:12px 14px;font-weight:700;display:flex}.recipe-details summary::-webkit-details-marker{display:none}.recipe-details summary:after{content:"+";color:var(--text-soft);font-size:1rem}.recipe-details[open] summary:after{content:"-"}.recipe-details ol,.recipe-details p,.recipe-details h4{margin-top:14px}.recipe-details ol{margin-bottom:0;padding-left:20px}.modal-backdrop{z-index:50;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#1a19148f;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.edit-modal{background:linear-gradient(#fffdf7fa 0%,#fff8eef5 100%);border:1px solid #ffffff8c;border-radius:26px;width:min(860px,100%);max-height:min(90vh,960px);padding:24px;overflow:auto;box-shadow:0 26px 70px #151d1840}.modal-title-row{border-bottom:1px solid var(--line-soft);align-items:end;margin-bottom:20px;padding-bottom:18px}.modal-title-field{flex:1;margin-bottom:0}.modal-title-actions{justify-content:flex-end}.modal-section{border-top:1px solid var(--line-soft);margin-top:20px;padding-top:18px}.modal-actions{justify-content:flex-end;margin-top:20px}@media (width<=700px){.app{padding:20px 12px 44px}.panel{border-radius:18px;padding:16px}.recipes-panel-header,.panel-title-row,.section-heading,.recipe-section-header,.modal-title-row,.modal-title-actions,.modal-actions{flex-direction:column;align-items:stretch}.search-field,.panel-title-row button,.section-heading button,.modal-actions button,.modal-title-actions button{width:100%}.panel-toggle-row{align-items:center}.panel-toggle-button{width:42px;padding:9px}.modal-title-actions{flex-direction:row;align-items:stretch;width:100%}.modal-title-actions button,.modal-actions button{flex:1 1 0;width:auto}.modal-actions{flex-direction:row;align-items:stretch;width:100%}.recipe-card-meta{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:10px;display:grid}.recipe-card-toggle{gap:10px}.recipe-card-toggle-trailing{gap:6px}.recipe-card-index{border-radius:12px;min-width:40px;height:40px}.recipe-card-actions{grid-template-columns:auto auto;justify-content:end;align-items:stretch;gap:8px;display:grid}.recipe-card-actions .edit-button{min-width:88px}.scale-controls{grid-template-columns:1fr 1fr;gap:6px;width:110px;display:grid}.instruction-row{grid-template-columns:1fr}.editable-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px}.ingredient-edit-row{grid-template-columns:auto minmax(0,1fr) auto;gap:10px}.row-action-group{gap:4px}.row-move-button,.ingredient-delete-button{min-width:0;padding-inline:10px}.tag-toggle-button{min-width:56px;padding-inline:12px}.ingredient-delete-button{min-width:0}.instruction-row strong{padding-top:0}.recipes-count{white-space:normal}.modal-backdrop{align-items:end;padding:0}.edit-modal{border-radius:22px 22px 0 0;width:100%;max-height:92vh;padding:18px 14px 20px}}
