.home-container { display: flex; flex-direction: column; padding: 1.25rem; background-color: var(--bg-primary); height: 100%; overflow-y: auto; overflow-x: hidden; max-width: 1200px; margin: 0 auto; width: 100%; box-sizing: border-box; position: relative; } .header-container { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.875rem; } .greeting { font-size: 2rem; font-weight: 600; color: var(--text-primary); line-height: 0.75em; font-family: 'Inter', sans-serif; margin: 0; } .add-button { width: 40px; height: 40px; border-radius: 50%; background-color: var(--color-accent); color: var(--text-primary); border: none; font-size: 24px; display: flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: 0 2px 4px var(--shadow-color); transition: transform 0.2s, background-color 0.2s; } .add-button:hover { transform: scale(1.05); background-color: var(--color-mint); } .add-button span { margin-top: -2px; } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } @keyframes slideDown { from { transform: translateY(-20px); opacity: 0; } to { transform: translateY(0); opacity: 1; } } @keyframes slideUp { from { transform: translateY(0); opacity: 1; } to { transform: translateY(-20px); opacity: 0; } } .textbox-overlay { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background-color: transparent; display: flex; align-items: flex-start; justify-content: center; z-index: 1000; padding-top: 20px; animation: fadeIn 0.3s ease-out; } .textbox-overlay.closing { animation: fadeIn 0.3s ease-out reverse; } .textbox-container { background: var(--bg-primary); border-radius: 8px; padding: 0; width: 100%; max-width: 90%; position: relative; box-shadow: 0 4px 20px var(--shadow-color); animation: slideDown 0.3s ease-out; } .textbox-container.closing { animation: slideUp 0.3s ease-out; } .large-textbox { width: 100%; height: 60px; padding: 16px 50px 16px 16px; border: none; border-radius: 8px; font-family: 'Inter', sans-serif; font-size: 20px; resize: none; box-shadow: 0 4px 12px var(--shadow-color); } .close-button { position: absolute; top: 15px; right: 15px; background: none; border: none; font-size: 24px; cursor: pointer; color: var(--color-slate); z-index: 1001; } .close-button:hover { color: var(--text-primary); } .events-section { margin-bottom: 2.5rem; } .section-title { font-size: 1.25rem; font-weight: 700; margin-bottom: 1rem; color: var(--text-secondary); font-family: 'Inter', sans-serif; line-height: 1.2em; } .events-list { display: flex; flex-direction: column; gap: 0.75rem; } .tomorrow-events { display: flex; flex-direction: row; gap: 1rem; padding-bottom: 0.5rem; width: 100%; flex-wrap: wrap; } .tomorrow-events .event-item { min-width: 200px; width: 250px; flex-shrink: 0; max-width: 100%; } .week-events { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 1rem; width: 100%; } .event-item { background-color: var(--color-light); border-radius: 0.5rem; padding: 1.125rem 1.25rem; color: var(--text-primary); cursor: pointer; transition: transform 0.2s, box-shadow 0.2s, border-left-width 0.2s; box-shadow: 0 2px 8px var(--shadow-light); border-left: 8px solid var(--color-accent); } .event-item:hover { transform: translateY(-3px); box-shadow: 0 4px 12px var(--shadow-color); border-left-width: 12px; } .event-title { font-weight: 600; margin-bottom: 0.5rem; font-size: 1rem; line-height: 1.3; color: var(--text-primary); } .event-time { font-size: 0.85rem; color: var(--text-primary); opacity: 0.8; } .no-events { text-align: center; padding: 1.5rem; color: var(--color-slate); font-style: italic; background-color: var(--state-hover); border-radius: 0.5rem; } .loading, .error { text-align: center; padding: 1.5rem; color: var(--color-slate); font-style: italic; } .error { color: var(--color-error, #e53e3e); } .draft-loading-overlay { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background-color: var(--overlay-background); display: flex; justify-content: center; align-items: center; z-index: 1000; } /* Responsive adjustments */ @media (max-width: 768px) { .greeting { font-size: 1.5rem; line-height: 1em; } .section-title { font-size: 1.125rem; } .events-section { margin-bottom: 1.5rem; } .tomorrow-events { overflow-x: auto; padding-bottom: 1rem; } .tomorrow-events .event-item { min-width: 230px; } } @media (max-width: 480px) { .home-container { padding: 1rem; } .greeting { font-size: 1.25rem; } .tomorrow-events .event-item { min-width: 200px; } .week-events { grid-template-columns: 1fr; } } /* Ensure scrolling works properly within the TabView */ @media (max-height: 700px) { .home-container { padding-bottom: 5rem; } }