:root{--green:#315f49;--green2:#487b62;--paper:#fffdf8;--line:#dfe4df;--text:#2f3f37;--muted:#7c8781;--gold:#d7a74b;--shadow:0 18px 55px rgba(35,56,46,.12)}
*{box-sizing:border-box}html{background:#eef2ee}body{margin:0;font-family:Inter,"Noto Sans KR","Malgun Gothic",system-ui,sans-serif;color:var(--text);background:linear-gradient(135deg,#eef3ef,#f6f0e6);min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}
.brandbar{position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 22px;background:rgba(255,253,248,.95);backdrop-filter:blur(14px);border-bottom:1px solid rgba(49,95,73,.12)}.brand{display:flex;align-items:center;gap:12px}.brand-icon{width:54px;height:54px;border-radius:16px;box-shadow:0 7px 20px rgba(49,95,73,.15)}.brand-title-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.brand h1{font-size:1.13rem;margin:0;letter-spacing:-.04em}.brand p{margin:3px 0 0;color:var(--muted);font-size:.78rem}.version{font-size:.68rem;font-weight:900;padding:4px 7px;border-radius:999px;background:#edf4ef;color:#49705e}.top-actions{display:flex;gap:7px}
.soft-btn,.tabs button,.date-nav button,.recommend-actions button,.shopping-range button,.editor-head button,.modal-head button,.editor-section button{border:1px solid #d7dfd9;background:#fff;border-radius:11px;padding:9px 12px;color:#44574e}.soft-btn:hover,.date-nav button:hover,.recommend-actions button:hover{background:#f4f7f4}
.tabs{display:flex;gap:6px;padding:12px 22px 0;overflow:auto}.tabs button{border:0;background:transparent;font-weight:850;white-space:nowrap}.tabs button.active{background:var(--green);color:white;box-shadow:0 5px 15px rgba(49,95,73,.18)}
main{padding:14px 22px 50px;max-width:1480px;margin:0 auto}.context-card{background:rgba(255,253,248,.96);border:1px solid var(--line);border-radius:20px;padding:16px;box-shadow:var(--shadow)}.date-nav{display:flex;gap:7px;flex-wrap:wrap;align-items:center}.date-nav input{border:1px solid #d5ddd6;border-radius:10px;padding:8px 10px;background:white}.context-grid{display:grid;grid-template-columns:1.1fr .8fr 1.4fr;gap:10px;margin-top:14px}.context-grid>div{padding:12px 14px;border-radius:15px;background:#f7f8f4;border:1px solid #e4e7e1;display:grid;gap:4px}.context-grid strong{font-size:1rem}.context-grid span:last-child{font-size:.75rem;color:var(--muted);line-height:1.45}.eyebrow{font-size:.68rem!important;color:#718078!important;font-weight:900}.recommend-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}.recommend-actions button{font-weight:800}.primary{border:1px solid var(--green)!important;background:var(--green)!important;color:#fff!important;border-radius:11px;padding:9px 13px;font-weight:850}.danger{border:1px solid #e1c4c4;background:#fff6f6;color:#a64b4b;border-radius:11px;padding:9px 13px;font-weight:800}
.view{display:none;margin-top:16px}.view.active{display:block}.view-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:10px}.view-head h2{margin:0;font-size:1.08rem}.view-head p{margin:4px 0 0;font-size:.78rem;color:var(--muted)}
.day-board{display:grid;gap:9px}.meal-row{display:grid;grid-template-columns:120px minmax(0,1fr);background:rgba(255,253,248,.96);border:1px solid var(--line);border-radius:16px;overflow:hidden}.meal-slot-label{padding:16px 14px;background:#f5f7f4;border-right:1px solid #e3e6e2;font-weight:900}.meal-slot-label small{display:block;color:#859089;font-size:.68rem;margin-top:3px;font-weight:700}.meal-content{min-height:84px;padding:9px;display:flex;gap:8px;flex-wrap:wrap;align-items:flex-start}.empty-card{width:100%;border:1px dashed #cfd9d1;background:#fbfcf9;border-radius:12px;padding:16px;text-align:center;color:#829087;cursor:pointer}.empty-card:hover{background:#f0f6f2;color:#426552}.meal-card{position:relative;min-width:240px;max-width:420px;flex:1;border:1px solid #dfe3de;border-left:5px solid var(--green2);border-radius:13px;background:#fff;padding:11px 12px;box-shadow:0 3px 9px rgba(36,52,43,.05)}.meal-card.special{border-left-color:var(--gold);background:#fffaf0}.meal-card h3{margin:0 36px 4px 0;font-size:.94rem}.meal-card .meta{font-size:.72rem;color:#7f8883;display:flex;gap:8px;flex-wrap:wrap}.meal-card .meal-actions{display:flex;gap:6px;margin-top:8px}.meal-card .meal-actions button{border:1px solid #dce2dd;background:#f8faf8;border-radius:9px;padding:5px 8px;font-size:.72rem;color:#5b6d64}.meal-card .edit-mark{position:absolute;right:10px;top:10px;font-size:.69rem;color:#9aa29d}.nutrition-strip{display:flex;gap:6px;flex-wrap:wrap}.nut-chip{padding:7px 9px;border-radius:999px;background:#eef3ef;border:1px solid #dce5de;font-size:.72rem;color:#53645b;font-weight:800}
.scroll-x{overflow:auto;border-radius:16px;border:1px solid var(--line);background:white}.week-grid{min-width:980px;display:grid;grid-template-columns:115px repeat(7,minmax(120px,1fr));background:#e2e6e2;gap:1px}.week-cell{background:#fff;min-height:82px;padding:6px}.week-head{min-height:58px;background:#f5f7f4;text-align:center;font-weight:850}.week-row-label{background:#f7f8f5;font-weight:900;padding:12px 8px}.week-meal{border-left:4px solid var(--green2);background:#fff;border-radius:8px;padding:6px 7px;margin-bottom:5px;font-size:.72rem;box-shadow:0 1px 4px rgba(30,45,38,.05);cursor:pointer}.week-meal.special{border-left-color:var(--gold);background:#fffaf0}.week-empty{border:1px dashed #d6ddd7;border-radius:8px;padding:10px 5px;text-align:center;font-size:.68rem;color:#9aa29d;cursor:pointer}.month-grid{min-width:900px;display:grid;grid-template-columns:repeat(7,minmax(120px,1fr));background:#e0e5e0;gap:1px}.month-head{background:#f4f6f3;padding:9px;text-align:center;font-weight:850}.month-day{background:white;min-height:126px;padding:7px;cursor:pointer}.month-day.outside{background:#fafafa;color:#aaa}.month-date{font-weight:900;font-size:.8rem;margin-bottom:5px}.month-dinner{border-left:4px solid var(--green2);background:#f8faf8;border-radius:7px;padding:5px 6px;font-size:.68rem;margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.month-special{background:#fff7df;border-left-color:var(--gold)}
.shopping-range{display:flex;gap:7px}.shopping-range select{border:1px solid #d8dfd9;border-radius:10px;padding:8px}.shopping-summary{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}.shopping-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.shopping-group{background:#fff;border:1px solid var(--line);border-radius:15px;padding:12px}.shopping-group h3{margin:0 0 8px;font-size:.9rem}.shopping-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:7px;align-items:center;padding:7px 0;border-top:1px solid #eef0ed;font-size:.78rem}.shopping-item:first-of-type{border-top:0}.shopping-item.have{opacity:.48;text-decoration:line-through}.shopping-item input{accent-color:var(--green)}
.fridge-form{display:grid;grid-template-columns:1.4fr .6fr .7fr 1fr auto;gap:8px;background:#fff;border:1px solid var(--line);padding:12px;border-radius:15px}.fridge-form input,.settings-grid input,.settings-grid select{border:1px solid #d8ded9;border-radius:9px;padding:9px;background:white}.fridge-list{display:grid;gap:8px;margin-top:10px}.fridge-item{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;gap:8px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:13px;padding:10px 12px}.fridge-item small{color:var(--muted)}
.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;background:#fff;border:1px solid var(--line);border-radius:15px;padding:14px}.settings-grid label{display:grid;gap:5px;font-size:.78rem;font-weight:800}.settings-grid .check{display:flex;align-items:center;gap:8px}.settings-actions{display:flex;gap:8px;margin-top:10px}.install-panel{margin-top:14px;background:#fff;border:1px solid var(--line);border-radius:15px;padding:14px}.install-panel h3{margin:0 0 6px;font-size:.9rem}.install-panel p{margin:0;color:var(--muted);font-size:.79rem;line-height:1.55}
.editor-panel{position:fixed;right:0;top:0;bottom:0;z-index:60;width:min(420px,94vw);background:#fffdf8;border-left:1px solid #dce1dc;box-shadow:-18px 0 50px rgba(25,42,33,.16);padding:16px;overflow:auto;transform:translateX(105%);transition:.22s ease}.editor-panel.show{transform:translateX(0)}.editor-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.editor-head h2{margin:2px 0 0;font-size:1.1rem}.editor-head button{border:0;background:#f0f2ef;width:36px;height:36px}.meal-form{display:grid;gap:9px;margin-top:12px}.meal-form label{display:grid;gap:4px;font-size:.73rem;color:#637069;font-weight:850}.meal-form input,.meal-form select,.meal-form textarea{border:1px solid #d8ddd8;border-radius:10px;padding:9px 10px;background:white;outline:none}.meal-form input:focus,.meal-form select:focus,.meal-form textarea:focus{border-color:#6f8e7e;box-shadow:0 0 0 3px rgba(49,95,73,.08)}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:8px}.editor-section{border-top:1px solid #e7e7e1;padding-top:10px}.section-title-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.section-title-row h3{margin:0;font-size:.85rem}.suggestions{display:flex;gap:6px;overflow:auto;padding:7px 0}.suggestion{min-width:150px;border:1px solid #dfe4df;background:#f8faf8;border-radius:11px;padding:8px;cursor:pointer}.suggestion strong{display:block;font-size:.78rem}.suggestion span{font-size:.68rem;color:#7c8781}.meal-detail{border:1px solid #e2e5e1;border-radius:13px;background:#fafbf8;padding:10px}.meal-detail:empty{display:none}.meal-detail h4{margin:0 0 6px;font-size:.82rem}.meal-detail .mini-nut{display:flex;gap:5px;flex-wrap:wrap}.meal-detail .mini-nut span{font-size:.68rem;padding:4px 6px;border-radius:999px;background:#eef3ef}.editor-actions{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;padding-top:6px}
.modal{position:fixed;inset:0;z-index:80;display:none;place-items:center;background:rgba(27,38,32,.52);padding:18px}.modal.show{display:grid}.modal-card{width:min(760px,100%);max-height:90vh;overflow:auto;background:#fffdf8;border-radius:22px;border:1px solid #dde2dd;box-shadow:0 26px 80px rgba(0,0,0,.22);padding:18px}.modal-card.small{width:min(560px,100%)}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.modal-head h2{margin:2px 0 0;font-size:1.1rem}.modal-head button{border:0;background:#f0f2ef;width:36px;height:36px}.recipe-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.recipe-box{border:1px solid #e3e6e2;border-radius:14px;padding:12px;background:#fbfcf9}.recipe-box h3{margin:0 0 8px;font-size:.87rem}.recipe-box ul,.recipe-box ol{margin:0;padding-left:19px}.recipe-box li{font-size:.78rem;line-height:1.6}.analysis-score{font-size:2.1rem;font-weight:950;color:var(--green)}.analysis-bars{display:grid;gap:8px}.analysis-bar{display:grid;grid-template-columns:92px 1fr 42px;gap:8px;align-items:center;font-size:.76rem}.bar{height:8px;background:#edf0ed;border-radius:999px;overflow:hidden}.bar i{display:block;height:100%;background:var(--green2);border-radius:inherit}.toast{position:fixed;left:50%;bottom:24px;z-index:100;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:#2f4539;color:white;border-radius:999px;padding:10px 16px;box-shadow:0 10px 28px rgba(0,0,0,.2);font-size:.8rem;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:900px){.context-grid{grid-template-columns:1fr}.shopping-list{grid-template-columns:1fr 1fr}.fridge-form{grid-template-columns:1fr 1fr}.fridge-form button{grid-column:1/-1}.settings-grid{grid-template-columns:1fr}.recipe-grid{grid-template-columns:1fr}}
@media(max-width:680px){.brandbar{padding:10px 12px;align-items:flex-start}.brand-icon{width:46px;height:46px}.brand h1{font-size:1rem}.brand p{display:none}.top-actions{flex-direction:column}.tabs{padding:9px 10px 0}.tabs button{padding:8px 10px}main{padding:10px 10px 80px}.meal-row{grid-template-columns:82px minmax(0,1fr)}.meal-slot-label{padding:13px 8px}.meal-card{min-width:100%}.shopping-list{grid-template-columns:1fr}.fridge-form{grid-template-columns:1fr}.fridge-form button{grid-column:auto}.fridge-item{grid-template-columns:1fr auto}.fridge-item small{grid-column:1/-1}.two-col{grid-template-columns:1fr}}
@media print{.brandbar,.tabs,.context-card .date-nav,.recommend-actions,.top-actions,.editor-panel,.modal,.toast,.shopping-range,.settings-actions{display:none!important}body{background:white}main{padding:0}.context-card,.meal-row,.scroll-x,.shopping-group{box-shadow:none;border-color:#ccc}.view{display:none!important}.view.active{display:block!important}}


.sync-badge{display:inline-flex;align-items:center;gap:5px;border:1px solid #d8dfda;border-radius:999px;padding:7px 10px;background:#f8faf8;font-size:.72rem;font-weight:900;color:#637169;white-space:nowrap}.sync-badge.ok{background:#eaf7ef;border-color:#c7dfd0;color:#2f674d}.sync-badge.syncing{background:#fff7e7;border-color:#ead7a7;color:#856827}.sync-badge.offline{background:#fff1f1;border-color:#e7caca;color:#9d4c4c}.sync-badge.conflict{background:#fff0e8;border-color:#edc7ad;color:#9a5b30}
.sync-help{grid-column:1/-1;border:1px dashed #cfd8d1;background:#f8faf7;border-radius:12px;padding:10px 12px;color:#65736b;font-size:.77rem;line-height:1.55}
@media(max-width:720px){.top-actions{align-items:flex-end}.sync-badge{font-size:.67rem}.brandbar{gap:8px}}
