*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root,[data-theme=light]{--bg:#f8f7f4;--bg-card:#fff;--bg-input:#fff;--text:#1a1a1a;--text-muted:#6b6b6b;--border:#e0ddd8;--primary:#4a6741;--primary-hover:#3d5636;--primary-text:#fff;--accent:#c17817;--danger:#c0392b;--danger-hover:#a93226;--chip-bg:#eae7e1;--chip-active-bg:#4a6741;--chip-active-text:#fff;--shadow:0 1px 3px #00000014;--shadow-lg:0 4px 12px #0000001a;--radius:10px;--radius-sm:6px}[data-theme=dark]{--bg:#1a1a1a;--bg-card:#2a2a2a;--bg-input:#333;--text:#e8e6e3;--text-muted:#999;--border:#3d3d3d;--primary:#6b9e5e;--primary-hover:#5a8a4f;--primary-text:#fff;--accent:#dba04a;--danger:#e74c3c;--danger-hover:#c0392b;--chip-bg:#3d3d3d;--chip-active-bg:#6b9e5e;--chip-active-text:#fff;--shadow:0 1px 3px #0000004d;--shadow-lg:0 4px 12px #0006}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.form-input:focus-visible,.form-select:focus-visible{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--primary) 25%, transparent);outline:none}.form-toggle input[type=checkbox]:focus-visible{outline-offset:1px}html{-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:16px}body{background:var(--bg);color:var(--text);min-height:100dvh}.app{flex-direction:column;max-width:600px;min-height:100dvh;margin:0 auto;display:flex}.app-header{border-bottom:1px solid var(--border);background:var(--bg);z-index:10;justify-content:space-between;align-items:center;padding:16px 20px;display:flex;position:sticky;top:0}.app-header h1{color:var(--primary);font-size:1.15rem;font-weight:700}.app-main{flex:1;padding:16px 20px 80px}.theme-toggle{cursor:pointer;background:0 0;border:none;padding:4px;font-size:1.3rem;line-height:1}.nav-bar{background:var(--bg-card);border-top:1px solid var(--border);z-index:20;padding-bottom:env(safe-area-inset-bottom,0);justify-content:center;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -1px 4px #0000000f}.nav-tab{max-width:200px;color:var(--text-muted);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:2px;padding:10px 0;font-size:.7rem;font-weight:500;transition:color .15s;display:flex}.nav-tab--active{color:var(--primary)}.nav-tab-icon{font-size:1.3rem}.nav-tab-label{text-transform:uppercase;letter-spacing:.03em}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.btn{border-radius:var(--radius-sm);cursor:pointer;-webkit-tap-highlight-color:transparent;border:none;justify-content:center;align-items:center;gap:6px;min-height:44px;padding:10px 20px;font-size:.9rem;font-weight:600;transition:background .15s,transform .1s;display:inline-flex}.btn:active{transform:scale(.97)}.btn-primary{background:var(--primary);color:var(--primary-text)}.btn-primary:hover{background:var(--primary-hover)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{background:var(--danger-hover)}.btn-outline{border:1.5px solid var(--border);color:var(--text);background:0 0}.btn-outline:hover{border-color:var(--primary);color:var(--primary)}.btn-ghost{color:var(--text-muted);background:0 0;padding:8px}.btn-ghost:hover{color:var(--text)}.btn-full{width:100%}.btn-lg{padding:14px 28px;font-size:1rem}.filter-bar{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.filter-group{flex-wrap:wrap;gap:6px;display:flex}.filter-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;width:100%;margin-bottom:2px;font-size:.75rem;font-weight:600}.chip{border:1.5px solid var(--border);background:var(--chip-bg);color:var(--text);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:20px;align-items:center;gap:4px;min-height:36px;padding:6px 14px;font-size:.82rem;font-weight:500;transition:all .15s;display:inline-flex}.chip--active{background:var(--chip-active-bg);color:var(--chip-active-text);border-color:var(--chip-active-bg)}.meal-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);align-items:center;gap:12px;padding:14px 16px;display:flex}.meal-card-info{flex:1;min-width:0}.meal-card-name{white-space:nowrap;text-overflow:ellipsis;font-size:1rem;font-weight:600;overflow:hidden}.meal-card-tags{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.tag{text-transform:uppercase;letter-spacing:.03em;border-radius:4px;padding:2px 8px;font-size:.7rem;font-weight:600;display:inline-block}.tag-beef{color:#8b3a2f;background:#f3d9d2}.tag-chicken{color:#8b6914;background:#fce8c8}.tag-pork{color:#8b4a3a;background:#f5ddd5}.tag-fish{color:#2a5f8a;background:#d0e8f5}.tag-other{color:#3d6635;background:#d4e6d1}[data-theme=dark] .tag-beef{color:#f3c9bf;background:#5a2d24}[data-theme=dark] .tag-chicken{color:#fce8c8;background:#5a4a1e}[data-theme=dark] .tag-pork{color:#f5cfc3;background:#5a3028}[data-theme=dark] .tag-fish{color:#b0d8f0;background:#1e3f5a}[data-theme=dark] .tag-other{color:#c8e6c1;background:#2a4a24}.tag-quick{color:#1a6b7a;background:#d6ecf0}.tag-ogo{color:#5a2d7a;background:#e8daf0}[data-theme=dark] .tag-quick{color:#b0dce6;background:#1a4a55}[data-theme=dark] .tag-ogo{color:#d4b8e8;background:#3d1f55}.meal-card-actions{flex-shrink:0;gap:6px;display:flex}.suggestion{text-align:center;margin-bottom:16px;padding:24px 16px}.suggestion .meal-card{text-align:center;flex-direction:column;margin-bottom:16px;padding:24px}.suggestion .meal-card-name{font-size:1.3rem}.suggestion-actions{justify-content:center;gap:12px;display:flex}.form-group{margin-bottom:14px}.form-group label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px;font-size:.8rem;font-weight:600;display:block}.form-input{border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-input);width:100%;color:var(--text);min-height:44px;padding:10px 14px;font-size:1rem;transition:border-color .15s}.form-select{border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-input);width:100%;color:var(--text);appearance:none;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b6b6b' stroke-width='2'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");background-position:right 12px center;background-repeat:no-repeat;background-size:16px;min-height:44px;padding:10px 14px;font-size:1rem}.form-toggle{cursor:pointer;align-items:center;gap:10px;min-height:44px;display:flex}.form-toggle input[type=checkbox]{width:20px;height:20px;accent-color:var(--primary);cursor:pointer}.form-toggle span{font-size:.95rem}.form-actions{gap:10px;margin-top:16px;display:flex}.modal-backdrop{z-index:30;background:#0006;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.modal{background:var(--bg-card);border-radius:var(--radius) var(--radius) 0 0;padding:24px 20px;padding-bottom:calc(24px + env(safe-area-inset-bottom,0));width:100%;max-width:600px;max-height:85dvh;animation:.2s ease-out slideUp;overflow-y:auto}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.modal-title{margin-bottom:16px;font-size:1.1rem;font-weight:700}.section-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-top:20px;margin-bottom:10px;font-size:.8rem;font-weight:600}.section-title:first-child{margin-top:0}.meal-list{flex-direction:column;gap:8px;display:flex}.session-item{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.session-header{cursor:pointer;-webkit-tap-highlight-color:transparent;justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.session-date{font-size:.95rem;font-weight:600}.session-count{color:var(--text-muted);font-size:.8rem}.session-meals{flex-direction:column;gap:6px;padding:0 16px 14px;display:flex}.session-meal-item{align-items:center;gap:8px;padding:6px 0;font-size:.9rem;display:flex}.empty-state{text-align:center;color:var(--text-muted);padding:40px 20px}.empty-state-icon{margin-bottom:12px;font-size:2.5rem}.empty-state-text{font-size:.95rem}.planner-session-info{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;margin-bottom:16px;padding:10px 14px;display:flex}.planner-session-label{color:var(--text-muted);font-size:.82rem}.planner-session-label strong{color:var(--text)}.sr-only{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.no-meals-msg{text-align:center;color:var(--text-muted);padding:20px;font-size:.9rem}.kbd{vertical-align:middle;opacity:.7;background:#00000014;border:1px solid #0000001a;border-radius:3px;margin-left:4px;padding:1px 5px;font-family:-apple-system,BlinkMacSystemFont,sans-serif;font-size:.7rem;font-weight:400;line-height:1.4;display:inline-block}.btn-primary .kbd{background:#fff3;border-color:#ffffff26}[data-theme=dark] .kbd{background:#ffffff1a;border-color:#ffffff1f}
