.app-shell{justify-content:center;min-height:100svh;padding:20px 12px;display:flex}.phone-frame{background:#fff;border:1px solid #d9e0d8;border-radius:28px;flex-direction:column;width:100%;max-width:480px;min-height:calc(100svh - 24px);display:flex;overflow:hidden;box-shadow:0 18px 40px #1f292114}.app-header{justify-content:space-between;align-items:flex-start;gap:12px;padding:20px 20px 12px;display:flex}.app-header h1,.section-intro h2,.section-header h3{margin:0}.eyebrow{letter-spacing:.04em;text-transform:uppercase;color:#6e7c70;margin:0 0 6px;font-size:12px;font-weight:700}.meta-row{justify-content:space-between;align-items:center;gap:8px;padding:0 16px 12px;display:flex}.filter-toggle{color:#4e5e50;min-height:38px;font:inherit;background:#fff;border:1px solid #ccd7cc;border-radius:999px;padding:0 14px;font-size:14px;font-weight:600}.filter-toggle.is-active{color:#fff;background:#244e2e;border-color:#244e2e}.pill{color:#334336;background:#eef5ee;border-radius:999px;align-items:center;min-height:32px;padding:0 12px;font-size:13px;font-weight:600;display:inline-flex}.sync-text{color:#738174;font-size:13px}.meta-actions{align-items:center;gap:10px;margin-left:auto;display:flex}.text-button{color:#4e5e50;min-height:0;font:inherit;background:0 0;border:none;align-items:center;padding:0;font-size:13px;font-weight:600;display:inline-flex}.app-header .text-button{align-self:center}.screen{flex:1;padding:8px 16px 112px;overflow-y:auto}.shopping-screen,.unified-screen{padding-bottom:84px}.section-intro{padding:8px 4px 16px}.section-intro p,.helper-text,.empty-card span,.setup-screen p{color:#68756a;margin:6px 0 0;line-height:1.5}.shopping-sections,.status-board,.manage-section{gap:12px;display:grid}.section-toggle{color:inherit;text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;gap:12px;padding:0;display:flex}.manage-section+.manage-section{border-top:1px solid #e7ece7;margin-top:24px;padding-top:24px}.inline-add-row{align-items:center;gap:8px;padding-top:2px;display:flex}.shopping-add-row{margin-top:2px}.input-prefix{color:#5a685b;flex:none;font-size:20px;font-weight:600;line-height:1}.inline-add-input{flex:1}.inline-add-row .inline-add-button{white-space:nowrap;flex:none;width:auto;min-width:0;padding:0 10px}.compact-board{gap:10px;display:grid}.flat-list{gap:8px;display:grid}.swipe-shell{border-bottom:1px solid #e7ece7;position:relative;overflow:hidden}.swipe-shell:last-child{border-bottom:none}.swipe-delete-bg{inset:0;color:#fff;cursor:pointer;background:#c94949;border:none;justify-content:flex-end;align-items:center;width:88px;padding:0 16px 0 12px;font-size:13px;font-weight:700;display:flex;position:absolute;inset-inline-start:auto}.swipe-delete-bg.is-open{filter:brightness(.98)}.swipe-content{touch-action:pan-y;background:#fff;transition:transform .15s;position:relative}.flat-row{justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.row-check,.row-check-placeholder{flex:0 0 28px;justify-content:center;align-items:center;width:28px;display:inline-flex}.row-check input[type=checkbox]{width:22px;height:22px;margin:0}.list-item-name{flex:1;min-width:0;font-size:16px;font-weight:600;line-height:1.35}.name-edit-button{min-width:0;color:inherit;font:inherit;text-align:left;background:0 0;border:none;padding:0}.inline-edit-input{width:100%;min-width:0;color:inherit;font:inherit;padding:0;font-size:16px;font-weight:600;line-height:1.35}.flat-actions{flex-shrink:0;align-items:center;gap:6px;display:flex}.staple-actions{gap:4px}.flat-status{border-radius:999px;min-height:34px;padding:0 10px;font-size:13px}.flat-delete{min-height:34px;padding:0 6px;font-size:13px}.list-section,.action-card,.staple-card,.empty-card{background:#fff;border:1px solid #e2e8e2;border-radius:20px}.list-section,.staple-card{padding:14px}.action-card,.empty-card{margin-top:12px;padding:16px}.section-header,.staple-card-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.section-header span{color:#748274;font-size:14px;font-weight:600}.section-chevron{color:#748274;flex:none;font-size:18px;line-height:1;transition:transform .18s}.section-chevron.is-collapsed{transform:rotate(-90deg)}.item-list{margin-top:14px;display:grid}.shopping-item{border-bottom:1px solid #e7ece7;grid-template-columns:28px 1fr auto;align-items:center;gap:10px;min-height:0;padding:10px 12px;display:grid}.shopping-toggle{justify-content:center;align-items:center;display:inline-flex}.shopping-item:last-child{border-bottom:none}.shopping-item input[type=checkbox]{width:22px;height:22px;margin:0}.shopping-item.is-checked .list-item-name{color:#8a968a;text-decoration:line-through}.item-kind{color:#395039;background:#e9f2ea;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:700}.item-kind.is-one-time{color:#8c5c17;background:#fff4e6}.primary-button,.secondary-button,.ghost-button,.status-button,.tab-button{min-height:48px;font:inherit;border:none}.primary-button,.secondary-button,.status-button,.tab-button{font-weight:700}.primary-button{color:#fff;background:#244e2e;width:100%}.secondary-button{color:#27412d;background:#edf4ed;width:100%}.ghost-button{color:#415142;background:0 0;padding:0 14px}.danger-text{color:#a14848}.add-form{gap:10px;display:grid}.text-input,.select-input{box-sizing:border-box;width:100%;min-height:48px;font:inherit;background:#fff;border:1px solid #ccd7cc;border-radius:14px;padding:0 14px}.text-input-line{background:0 0;border:none;border-bottom:1px solid #ccd7cc;border-radius:0;min-height:44px;padding:0 2px}.text-input-line:focus{border-bottom-color:#244e2e;outline:none}.text-input-line::placeholder{color:#8a968b}.status-grid{grid-template-columns:repeat(4,1fr);gap:8px;margin-top:12px;display:grid}.candidate-grid{grid-template-columns:repeat(2,1fr)}.status-button{color:#516152;background:#f3f6f3}.status-button.is-active{color:#fff}.tone-neutral.is-active{background:#607066}.tone-soon.is-active{background:#c08b2c}.tone-needed.is-active{background:#d4703a}.tone-urgent.is-active{background:#c94949}.footer-actions{justify-content:center;padding:14px 0 8px;display:flex}.floating-actions{left:50%;bottom:calc(76px + env(safe-area-inset-bottom));pointer-events:none;z-index:25;justify-items:end;gap:10px;width:100%;max-width:480px;padding:0 20px 0 16px;display:grid;position:fixed;transform:translate(-50%)}.sheet-backdrop{z-index:40;background:#121a1447;justify-content:center;align-items:flex-end;padding:16px;display:flex;position:fixed;inset:0}.move-sheet{background:#fff;border-radius:24px;width:100%;max-width:448px;padding:12px 12px 18px;box-shadow:0 18px 40px #131c162e}.move-sheet-handle{background:#d5ddd5;border-radius:999px;width:42px;height:4px;margin:0 auto 14px}.move-sheet-caption{color:#506051;text-align:center;margin:0 0 14px;font-size:14px}.move-sheet-actions{gap:8px;display:grid}.move-sheet-button{border-radius:16px}.move-sheet-cancel{justify-content:center;min-height:44px}.floating-add-panel{pointer-events:auto;background:#fffffff5;border:1px solid #dfe6df;border-radius:18px;align-items:center;gap:8px;width:min(100%,320px);padding:10px;display:flex;box-shadow:0 10px 24px #1f29211f}.floating-add-panel .text-input{min-height:44px}.floating-add-submit{white-space:nowrap;flex:none;width:auto;min-width:0;padding:0 12px}.floating-fab-stack{pointer-events:none;justify-items:end;gap:10px;display:grid}.cleanup-fab,.add-fab{color:#fff;width:52px;height:52px;font:inherit;pointer-events:auto;background:#244e2e;border:none;border-radius:999px;justify-content:center;align-items:center;font-size:20px;display:inline-flex;box-shadow:0 10px 24px #244e2e33}.move-fab{color:#244e2e;width:52px;height:52px;font:inherit;pointer-events:auto;background:#e4efe5;border:none;border-radius:999px;justify-content:center;align-items:center;display:inline-flex;box-shadow:0 10px 24px #244e2e24}.move-fab.is-disabled,.move-fab:disabled{opacity:.45}.add-fab.is-active{background:#3b5f43}.bottom-tabs-wrap{z-index:20;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(#ffffffe0,#fffffffa);width:100%;max-width:480px;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.bottom-tabs{background:#ffffffeb;border-top:1px solid #e2e8e2;grid-template-columns:repeat(2,1fr);align-items:stretch;min-height:60px;display:grid}.tab-button{color:#4e5e50;background:0 0;border-radius:0;min-height:60px;padding:8px 12px 10px;font-size:14px;font-weight:600;position:relative}.tab-button.has-cue{animation:1.8s shopping-tab-pulse}.tab-button.is-active{color:#244e2e}.tab-button.is-active:before{content:"";background:#244e2e;border-radius:999px;height:3px;position:absolute;top:0;left:20%;right:20%}.tab-label{justify-content:center;align-items:center;width:100%;display:inline-flex}.tab-cue-dot{background:#d4703a;border-radius:999px;width:9px;height:9px;animation:1.8s ease-out shopping-tab-dot;position:absolute;top:10px;right:22%;box-shadow:0 0 #d4703a66}.error-banner{color:#943d3d;background:#fff0f0;border-radius:16px;margin:0 16px 8px;padding:12px 14px;font-size:14px}.loading-screen,.setup-screen{align-items:center;display:flex}.env-block{color:#324133;background:#f4f6f4;border-radius:14px;margin-top:16px;padding:12px 14px;overflow-x:auto}.primary-button:disabled,.secondary-button:disabled{opacity:.5}button,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}@keyframes shopping-tab-pulse{0%{color:#4e5e50;background:#d4703a00}20%{color:#7d451f;background:#d4703a29}to{color:inherit;background:#d4703a00}}@keyframes shopping-tab-dot{0%{transform:scale(.7);box-shadow:0 0 #d4703a73}35%{transform:scale(1);box-shadow:0 0 0 8px #d4703a00}to{transform:scale(1);box-shadow:0 0 #d4703a00}}@media (width<=480px){.app-shell{padding:0}.phone-frame{min-height:100svh;box-shadow:none;border:none;border-radius:0}.bottom-tabs-wrap{max-width:none}.screen{padding-bottom:112px}.shopping-screen{padding-bottom:84px}.floating-actions{max-width:none}.flat-actions{gap:6px}.flat-status{min-height:34px;padding:0 10px;font-size:13px}.inline-add-button{padding:0 9px}}:root{color:#182119;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:radial-gradient(circle at top,#f4f8f2 0,#edf4ea 28%,#e8f0e6 100%);font-family:Pretendard,Noto Sans KR,system-ui,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0}body,button,input,select{font-family:inherit}button:focus-visible,input:focus-visible,select:focus-visible{outline-offset:2px;outline:2px solid #2d6b3a}a{color:inherit}
