:root{--bg: #fbfef9;--card: #ffffff;--accent: #0e79b2;--accent-dark: #191923;--accent-pink: #bf1363;--accent-orange: #f39237;--text: #191923;--muted: #191923;--border: #e6e9ef;--font-body: "Nunito", system-ui, -apple-system, Segoe UI, Roboto, sans-serif;--font-heading: "Bebas Neue", "Nunito", system-ui, sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);background:var(--bg);color:var(--text);min-height:100vh}h1,h2,h3{font-family:var(--font-heading)}.container{max-width:1000px;margin:0 auto;padding:1.5rem}@media (max-width: 640px){.container{padding:1rem}}header{text-align:center;margin-bottom:2rem}header h1{font-size:2rem;color:var(--text);font-weight:700;font-family:var(--font-heading)}@media (max-width: 640px){header h1{font-size:1.5rem}}.subtitle{color:var(--muted);margin-top:.5rem}nav{margin-top:1rem;display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}nav a{text-decoration:none;color:var(--accent);font-weight:600}.copy-btn{background:transparent;border:1px solid var(--border);color:var(--text);padding:.4rem .8rem;border-radius:8px;cursor:pointer;font-weight:600}.copy-btn:hover{background:var(--bg)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.5rem}.card{background:var(--card);border-radius:16px;overflow:hidden;box-shadow:0 4px 12px #0000000f;border:1px solid var(--border);transition:transform .2s,box-shadow .2s,border-color .2s;cursor:pointer}.card.selected{border-color:var(--accent);box-shadow:0 6px 20px #0e79b240;background:#eaf5fc}.card:hover{transform:translateY(-2px);background:var(--bg)}.card img{width:100%;height:160px;object-fit:cover;background:#e2e8f0}.card-body{padding:1rem}.card-body h3{margin-bottom:.25rem;font-family:var(--font-heading)}.meta{font-size:.85rem;color:var(--muted);margin-bottom:.5rem}.desc{font-size:.9rem;color:var(--muted);min-height:40px}.btn{margin-top:.75rem;width:100%;padding:.6rem;background:var(--accent);color:#fff;border:none;border-radius:10px;font-weight:600;cursor:pointer}.btn:hover{opacity:.92}.btn.secondary{background:#9aa5b1}.empty{text-align:center;color:var(--muted);margin-top:3rem}.app-footer{display:flex;justify-content:space-between;align-items:center;margin-top:3rem;padding-top:1rem;border-top:1px solid var(--border);color:var(--muted);font-size:.9rem}.app-footer .copy-btn{align-self:center}.cal-btn{background:transparent;border:1px solid var(--border);color:var(--text);padding:.4rem .6rem;border-radius:8px;cursor:pointer}.calendar-widget{margin-top:1rem;display:inline-block;background:var(--card);border:1px solid var(--border);border-radius:12px;padding:1.25rem;box-shadow:0 4px 16px #0000000f;min-width:340px}.cal-header{display:flex;justify-content:space-between;align-items:center;font-weight:600;margin-bottom:.75rem}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.4rem}.cal-weekday{text-align:center;font-size:.85rem;color:var(--muted);padding:.35rem 0}.cal-day{border:none;background:transparent;padding:.75rem 0;cursor:pointer;border-radius:8px;font-weight:600}.cal-day:hover:not(.disabled){background:#f1f5f9}.cal-day.selected{background:var(--accent);color:#fff;font-weight:700}.cal-day.disabled{color:#cbd5e1;cursor:not-allowed;opacity:.5}.chosen-block{position:relative;background:#f1f5f9;padding:1rem;border-radius:12px;margin-bottom:1.5rem;border:1px solid var(--border)}.remove-btn{position:absolute;top:.5rem;right:.5rem;background:transparent;border:none;color:var(--accent-pink);cursor:pointer;font-size:1.1rem}.greeting{background:#dbeafe;color:#1e3a8a;padding:1rem;border-radius:12px;margin-bottom:1.5rem;text-align:center;font-weight:600;border:1px solid #bfdbfe}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;padding:1rem}.modal{background:#fff;padding:2rem;border-radius:12px;width:100%;max-width:500px;box-shadow:0 10px 30px #00000026;border:1px solid var(--border)}.modal textarea{width:100%;margin-top:.5rem;padding:.5rem;border-radius:8px;background:#fff;color:var(--text);border:1px solid var(--border)}.modal-actions{margin-top:1rem;display:flex;gap:.5rem;justify-content:flex-end}.section-divider{border:none;border-top:1px solid var(--border);margin:2.5rem 0 1.5rem}.section-title{font-size:1.25rem;margin-bottom:1rem;color:var(--text)}.upcoming-list{display:flex;flex-direction:column;gap:.75rem}.upcoming-item{display:flex;gap:1rem;align-items:center;padding:.75rem 1rem;background:var(--card);border:1px solid var(--border);border-radius:12px;position:relative}.upcoming-date{font-weight:700;font-size:1.1rem;color:var(--accent);min-width:90px}.upcoming-restaurant{font-size:.95rem;color:var(--text);flex:1}.remove-upcoming{background:transparent;border:none;color:var(--accent-pink);cursor:pointer;font-size:1rem;position:absolute;right:.5rem;top:50%;transform:translateY(-50%)}
