/* Update your style.css with these scaling rules */ html { /* Use the font-size of the root to scale everything else */ /* 1.5vw means the base font size is 1.5% of the TV width */ font-size: 1.5vw; } :root { --bg: #0f172a; --card: #1e293b; --accent: #38bdf8; --text: #f8fafc; --danger: #ef4444; --success: #10b981; } body { background: var(--bg); color: var(--text); font-family: 'Segoe UI', Roboto, Helvetica, Arial, sans-serif; margin: 0; padding: 0; overflow: hidden; /* Prevent scrolling on TV */ width: 100vw; height: 100vh; display: flex; flex-direction: column; } /* Slide Animation Engine */ #slider { display: flex; width: 400vw; /* 4 slides */ height: 100vh; transition: transform 1.2s cubic-bezier(0.4, 0, 0.2, 1); } .slide { width: 100vw; height: 100vh; padding: 4vh 4vw; /* Consistent padding regardless of resolution */ box-sizing: border-box; } h1 { font-size: 3.5rem; margin-top: 0; color: var(--accent); text-transform: uppercase; letter-spacing: 2px; border-bottom: 3px solid var(--card); padding-bottom: 15px; /* Instead of 60px, we use 4vh (4% of screen height) */ font-size: 5vh; margin: 2vh 0; } /* Grid Layouts */ .grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(30vw, 1fr)); gap: 20px;; margin-top: 40px; } /* Card Styling */ .card { background: var(--card); /* Use rem (root em) so cards scale with the html font-size */ padding: 2rem; border-radius: 1.5rem; /* Ensure cards don't get too tall for the screen */ max-height: 40vh; ; display: flex; flex-direction: column; justify-content: space-between; } .overdue { border-left: 12px solid var(--danger); } .ann-card { border-left: 12px solid #f59e0b; } .cal-card { border-left: 12px solid var(--success); } .bday { background: #831843; border-left: 12px solid #ec4899; } /* Progress Bar Components */ .progress-container { margin: 25px 0; } .progress-label { display: flex; justify-content: space-between; font-size: 1.2rem; font-weight: bold; margin-bottom: 10px; color: var(--accent); } .bar-bg { background: #334155; height: 1.5vh; /* Thicker bars on larger screens */ border-radius: 8px; width: 100%; } .bar-fill { background: linear-gradient(90deg, #38bdf8, #818cf8); height: 100%; border-radius: 8px; transition: width 1.5s ease-out; } /* Error UI */ #error-display { position: fixed; bottom: 20px; left: 20px; background: var(--danger); padding: 15px 30px; border-radius: 10px; font-weight: bold; z-index: 9999; } .hidden { display: none; }