/* Main Styles */ :root { --primary-color: #4a90e2; --secondary-color: #f5f5f5; --text-color: #333; --border-color: #ddd; } body { font-family: Arial, sans-serif; line-height: 1.6; margin: 0; padding: 0; color: var(--text-color); } main { min-height: 100vh; } .app-header { background: linear-gradient(135deg, var(--person-accent, #4a90e2) 0%, #2c5282 100%); } /* Header top: title (left) ยท balance + persona (right from md up); mobile: second row = persona menu */ .app-header-top { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 0.75rem; row-gap: 0.5rem; align-items: center; } .app-header-brand { grid-column: 1; grid-row: 1; min-width: 0; } .app-header-actions { grid-column: 2; grid-row: 1; justify-self: end; max-width: 100%; } .app-header-persona-mobile { grid-column: 1 / -1; grid-row: 2; } @media (min-width: 768px) { .app-header-persona-mobile { display: none; } .app-header-top { row-gap: 0.35rem; } } .persona-chip { min-height: 2.75rem; touch-action: manipulation; } .persona-chip.active { font-weight: 600; box-shadow: 0 0 0 0.15rem rgba(255, 255, 255, 0.35); } .persona-chip-mobile.active { font-weight: 600; background-color: rgba(74, 144, 226, 0.14); } .family-hub-body .card { border-color: var(--border-color); } .chore-thumb { max-height: 180px; object-fit: cover; } .meal-hero { max-height: 320px; width: 100%; object-fit: cover; } .chore-card .card-body { display: flex; flex-direction: column; } .grocery-store-nav .nav-link { text-align: left; touch-action: manipulation; } .grocery-line-thumb { width: 56px; height: 56px; object-fit: cover; } .container { max-width: 1200px; margin: 0 auto; padding: 20px; } /* Header tab nav */ .app-header.app-header-with-tabs .tabs { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 0.35rem; margin-bottom: 0; } @media (min-width: 768px) { .app-header.app-header-with-tabs .app-header-top { margin-bottom: 0.35rem; } .app-header.app-header-with-tabs .tabs { margin-top: 1.1rem; } } .app-header .tab { display: inline-flex; align-items: center; gap: 0.45rem; min-height: 2.5rem; padding: 0.45rem 0.9rem; border-radius: 999px; border: 1px solid transparent; text-decoration: none; font-weight: 500; transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease; } body.header-tone-dark .app-header .tab { color: rgba(255, 255, 255, 0.92); background: rgba(255, 255, 255, 0.12); border-color: rgba(255, 255, 255, 0.28); } body.header-tone-dark .app-header .tab:hover, body.header-tone-dark .app-header .tab:focus-visible { color: #fff; background: rgba(255, 255, 255, 0.2); border-color: rgba(255, 255, 255, 0.45); } body.header-tone-dark .app-header .tab.active { color: #1f2a37; background: rgba(255, 255, 255, 0.92); border-color: rgba(255, 255, 255, 0.96); } body.header-tone-light .app-header .tab { color: #1f2a37; background: rgba(255, 255, 255, 0.5); border-color: rgba(31, 42, 55, 0.25); } body.header-tone-light .app-header .tab:hover, body.header-tone-light .app-header .tab:focus-visible { color: #111827; background: rgba(255, 255, 255, 0.7); border-color: rgba(31, 42, 55, 0.4); } body.header-tone-light .app-header .tab.active { color: #fff; background: #1f2a37; border-color: #1f2a37; } /* Mobile Responsive */ @media (max-width: 768px) { .container { padding: 10px; } .app-header h1.h3 { font-size: 1.3rem; } .user-balance { max-width: 58vw; } .app-header .tabs { gap: 0.4rem; } .app-header .tab { padding: 0.4rem 0.8rem; min-height: 2.3rem; } } .calendar-agenda-list .calendar-agenda-day:first-child .list-group-item.border-top { border-top: none !important; } .calendar-agenda-today { background-color: rgba(74, 144, 226, 0.06); } /* Calendar tab: Google column first; side-by-side 70% / 30% from xl up when embed is configured */ @media (min-width: 1200px) { .calendar-tab-layout-split > .calendar-tab-google { flex: 0 0 70%; max-width: 70%; width: 70%; } .calendar-tab-layout-split > .calendar-tab-agenda { flex: 0 0 30%; max-width: 30%; width: 30%; } } .calendar-tv-view .calendar-embed iframe { min-height: 70vh; } @media (min-width: 1200px) { .calendar-tv-view .calendar-embed iframe { min-height: 78vh; } }