*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #f2f5f9;--surface: #ffffff;--surface2: #edf0f6;--surface3: #e4e9f2;--border: #dce2ec;--border-light: #edf0f6;--primary: #f09626;--primary-dark: #d07f18;--primary-light: #fef4e0;--primary-glow: rgba(240, 150, 38, .22);--secondary: #1faa6a;--secondary-light: #d3f5e6;--danger: #e03e3a;--danger-light: #fce9e8;--info: #2d83d0;--info-light: #e0effc;--nav-bg: #162236;--nav-bg2: #1e2f47;--nav-fg: #dce8f5;--nav-fg-muted: #7a95b4;--nav-border: rgba(255,255,255,.07);--text: #18283a;--text-muted: #637488;--text-light: #96aabc;--shadow-xs: 0 1px 2px rgba(10,30,60,.06);--shadow-sm: 0 1px 4px rgba(10,30,60,.08), 0 1px 2px rgba(10,30,60,.04);--shadow: 0 2px 10px rgba(10,30,60,.09), 0 1px 3px rgba(10,30,60,.05);--shadow-md: 0 4px 16px rgba(10,30,60,.11), 0 2px 6px rgba(10,30,60,.06);--shadow-lg: 0 8px 28px rgba(10,30,60,.13), 0 2px 8px rgba(10,30,60,.06);--shadow-xl: 0 20px 60px rgba(10,30,60,.18);--radius: 12px;--radius-sm: 8px;--radius-xs: 6px;--radius-lg: 16px;--radius-xl: 20px;--radius-pill: 100px;--ease: cubic-bezier(.25, .46, .45, .94);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--dur: .18s;--dur-md: .25s}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #141920;--surface: #1e2535;--surface2: #252d3f;--surface3: #2d3650;--border: #364057;--border-light: #2a3248;--primary-light: rgba(240,150,38,.15);--primary-glow: rgba(240,150,38,.18);--secondary-light: rgba(31,170,106,.15);--danger-light: rgba(224,62,58,.15);--info-light: rgba(45,131,208,.15);--nav-bg: #0e1521;--nav-bg2: #162236;--text: #dce8f5;--text-muted: #7a95b4;--text-light: #4a6480;--shadow-xs: 0 1px 2px rgba(0,0,0,.25);--shadow-sm: 0 1px 4px rgba(0,0,0,.3), 0 1px 2px rgba(0,0,0,.2);--shadow: 0 2px 10px rgba(0,0,0,.35), 0 1px 3px rgba(0,0,0,.2);--shadow-md: 0 4px 16px rgba(0,0,0,.4), 0 2px 6px rgba(0,0,0,.25);--shadow-lg: 0 8px 28px rgba(0,0,0,.45), 0 2px 8px rgba(0,0,0,.25);--shadow-xl: 0 20px 60px rgba(0,0,0,.55);color-scheme:dark}}:root[data-theme=dark]{--bg: #141920;--surface: #1e2535;--surface2: #252d3f;--surface3: #2d3650;--border: #364057;--border-light: #2a3248;--primary-light: rgba(240,150,38,.15);--primary-glow: rgba(240,150,38,.18);--secondary-light: rgba(31,170,106,.15);--danger-light: rgba(224,62,58,.15);--info-light: rgba(45,131,208,.15);--nav-bg: #0e1521;--nav-bg2: #162236;--text: #dce8f5;--text-muted: #7a95b4;--text-light: #4a6480;--shadow-xs: 0 1px 2px rgba(0,0,0,.25);--shadow-sm: 0 1px 4px rgba(0,0,0,.3), 0 1px 2px rgba(0,0,0,.2);--shadow: 0 2px 10px rgba(0,0,0,.35), 0 1px 3px rgba(0,0,0,.2);--shadow-md: 0 4px 16px rgba(0,0,0,.4), 0 2px 6px rgba(0,0,0,.25);--shadow-lg: 0 8px 28px rgba(0,0,0,.45), 0 2px 8px rgba(0,0,0,.25);--shadow-xl: 0 20px 60px rgba(0,0,0,.55);color-scheme:dark}:root[data-theme=light]{color-scheme:light}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI Variable,Segoe UI,system-ui,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}button{font-family:inherit;cursor:pointer;border:none;outline:none}input,textarea,select{font-family:inherit;font-size:inherit}a{text-decoration:none;color:inherit}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 18px;border-radius:var(--radius-sm);font-size:14px;font-weight:600;letter-spacing:.01em;transition:background var(--dur) var(--ease),box-shadow var(--dur) var(--ease),transform var(--dur) var(--ease),border-color var(--dur) var(--ease);white-space:nowrap;-webkit-user-select:none;user-select:none}.btn:active{transform:scale(.97)}.btn-primary{background:var(--primary);color:#fff;box-shadow:0 2px 8px var(--primary-glow)}.btn-primary:hover{background:var(--primary-dark);box-shadow:0 4px 14px var(--primary-glow);transform:translateY(-1px)}.btn-primary:active{transform:translateY(0) scale(.97)}.btn-secondary{background:var(--secondary);color:#fff;box-shadow:0 2px 8px #1faa6a40}.btn-secondary:hover{background:#18905a;box-shadow:0 4px 14px #1faa6a59;transform:translateY(-1px)}.btn-ghost{background:transparent;color:var(--text-muted);border:1.5px solid var(--border)}.btn-ghost:hover{background:var(--surface2);border-color:var(--surface3);color:var(--text)}.btn-danger{background:var(--danger);color:#fff;box-shadow:0 2px 8px #e03e3a40}.btn-danger:hover{background:#c23330;box-shadow:0 4px 14px #e03e3a59;transform:translateY(-1px)}.btn-sm{padding:6px 12px;font-size:13px}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--border-light);padding:16px;transition:box-shadow var(--dur-md) var(--ease)}.badge{display:inline-flex;align-items:center;gap:3px;padding:3px 9px;border-radius:var(--radius-pill);font-size:12px;font-weight:600;letter-spacing:.01em}.input{width:100%;padding:10px 12px;border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-size:15px;transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.input::placeholder{color:var(--text-light)}.input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow);outline:none}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a14288c;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);display:flex;align-items:flex-end;justify-content:center;z-index:1000;padding:0;animation:overlayIn var(--dur-md) var(--ease) both}@keyframes overlayIn{0%{opacity:0}to{opacity:1}}@media (min-width: 600px){.modal-overlay{align-items:center;padding:20px}}.modal{background:var(--surface);border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;max-width:560px;max-height:92vh;overflow-y:auto;padding:22px;box-shadow:var(--shadow-xl);animation:sheetUp var(--dur-md) var(--ease) both}@keyframes sheetUp{0%{transform:translateY(24px);opacity:0}to{transform:translateY(0);opacity:1}}@media (min-width: 600px){.modal{border-radius:var(--radius-xl);animation:modalPop var(--dur-md) var(--ease-spring) both}@keyframes modalPop{0%{transform:scale(.95) translateY(6px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}}.nav-bar{background:var(--nav-bg);border-bottom:1px solid var(--nav-border);position:sticky;top:0;z-index:200;padding:0 16px;display:flex;align-items:center;justify-content:space-between;height:58px;box-shadow:0 2px 12px #0003}.hamburger-btn{display:flex;flex-direction:column;justify-content:center;gap:5px;width:36px;height:36px;padding:7px;border-radius:var(--radius-sm);border:1px solid rgba(255,255,255,.14);background:#ffffff0f;cursor:pointer;flex-shrink:0;transition:background var(--dur)}.hamburger-btn:hover{background:#ffffff1f}.hamburger-btn span{display:block;height:2px;background:var(--nav-fg);border-radius:2px}.bottom-nav{position:fixed;bottom:0;left:0;right:0;background:var(--surface);border-top:1px solid var(--border-light);box-shadow:0 -2px 16px #0a1e3c12;display:flex;z-index:100}.bottom-nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:9px 4px 8px;gap:3px;font-size:11px;font-weight:500;color:var(--text-light);background:none;border:none;cursor:pointer;transition:color var(--dur);position:relative}.bottom-nav-item:after{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:0;height:3px;background:var(--primary);border-radius:0 0 3px 3px;transition:width var(--dur-md) var(--ease-spring)}.bottom-nav-item.active{color:var(--primary)}.bottom-nav-item.active:after{width:28px}.bottom-nav-item .nav-icon{font-size:22px;line-height:1}.drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a142880;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);z-index:300;animation:overlayIn var(--dur-md) var(--ease) both}.drawer{position:fixed;top:0;left:0;bottom:0;width:268px;background:var(--surface);box-shadow:var(--shadow-xl);z-index:400;display:flex;flex-direction:column;overflow-y:auto;animation:drawerSlide var(--dur-md) var(--ease) both}@keyframes drawerSlide{0%{transform:translate(-100%)}to{transform:translate(0)}}.drawer-header{background:var(--nav-bg);padding:16px;display:flex;align-items:center;justify-content:space-between;font-weight:700;font-size:16px;color:var(--nav-fg);flex-shrink:0}.drawer-nav-item{display:flex;align-items:center;gap:12px;padding:13px 16px;border:none;background:transparent;cursor:pointer;font-size:15px;font-weight:500;color:var(--text);width:100%;text-align:left;transition:background var(--dur);border-radius:0;border-left:3px solid transparent}.drawer-nav-item:hover{background:var(--surface2)}.drawer-nav-item.active{color:var(--primary);background:var(--primary-light);border-left-color:var(--primary);font-weight:600}.drawer-nav-icon{font-size:20px;width:28px;text-align:center}.drawer-section-label{padding:10px 16px 4px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-light)}.drawer-divider{height:1px;background:var(--border-light);margin:6px 0}.app-layout{display:flex;min-height:calc(100vh - 58px)}.side-nav{display:none}.page-content{padding:16px 16px 84px;max-width:720px;margin:0 auto;flex:1;min-width:0}@media (min-width: 768px){.hamburger-btn,.bottom-nav{display:none}.drawer-overlay,.drawer{display:none!important}.side-nav{display:flex;flex-direction:column;width:224px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--border-light);position:sticky;top:58px;height:calc(100vh - 58px);overflow-y:auto;padding:12px 10px;gap:2px;box-shadow:inset -1px 0 0 var(--border-light)}.side-nav-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius-sm);border:none;background:transparent;cursor:pointer;font-size:14px;font-weight:500;color:var(--text-muted);width:100%;text-align:left;transition:background var(--dur),color var(--dur)}.side-nav-item:hover{background:var(--surface2);color:var(--text)}.side-nav-item.active{color:var(--primary);background:var(--primary-light);font-weight:600}.side-nav-icon{font-size:18px;width:24px;text-align:center}.side-nav-divider{height:1px;background:var(--border-light);margin:8px 4px}.side-nav-section-label{padding:8px 12px 2px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-light)}.page-content{padding:28px;max-width:840px;margin:0}}.day-card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--border-light);overflow:hidden;margin-bottom:10px;transition:box-shadow var(--dur-md)}.day-card:hover{box-shadow:var(--shadow-md)}.day-card-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--surface2);border-bottom:1px solid var(--border-light);font-weight:700;font-size:14px;letter-spacing:.01em}.day-card-body{padding:12px 14px}.dish-name{font-size:16px;font-weight:600}.dish-meta{font-size:13px;color:var(--text-muted);margin-top:3px}.spinner{width:36px;height:36px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .65s linear infinite;margin:48px auto}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;padding:56px 16px;color:var(--text-muted)}.empty-icon{font-size:52px;margin-bottom:14px;opacity:.7}.tag{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:var(--radius-pill);font-size:12px;font-weight:500;background:var(--surface2);color:var(--text-muted);border:1px solid var(--border-light)}.stars{display:flex;gap:3px}.star{cursor:pointer;font-size:20px;line-height:1;transition:transform var(--dur) var(--ease-spring)}.star:hover{transform:scale(1.2)}.chip-group{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.chip{padding:5px 13px;border-radius:var(--radius-pill);font-size:13px;font-weight:500;border:1.5px solid var(--border);background:var(--surface);cursor:pointer;transition:all var(--dur) var(--ease);color:var(--text-muted)}.chip:hover{border-color:var(--primary);color:var(--primary-dark);background:var(--primary-light)}.chip.selected{background:var(--primary-light);border-color:var(--primary);color:var(--primary-dark);font-weight:600}.section-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-light);margin-bottom:10px;margin-top:22px}.row{display:flex;align-items:center;justify-content:space-between;gap:8px}.divider{height:1px;background:var(--border-light);margin:14px 0}.notify-dot{width:7px;height:7px;background:var(--danger);border-radius:50%;display:inline-block;margin-left:4px;vertical-align:middle}
