:root{ --bg: #05020f; --glass: rgba(12,8,35,.82); --border: rgba(0,255,240,.38); --text: #f8f9ff; --muted: #9ed4ff; --accent: #00ffea; --accent-2: #ff00c8; --glow: #00ffea; --outer-pad: 16px; --gap: 14px; --radius: 18px; --radius-sm: 12px; --font: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, "Noto Sans", Arial, sans-serif; --time-size: 40px; --date-size: clamp(16px, 1.25vh, 22px); --h2-size: clamp(15px, 1.05vh, 19px); --cond-size: clamp(16px, 1.25vh, 21px); --info-size: clamp(12px, 1vh, 17px); --table-head: clamp(12px, 1vh, 15px); --table-cell: clamp(12px, 1.05vh, 16px); } *{box-sizing:border-box} html,body{height:100%;width:100%;margin:0;padding:0} body{ font-family:var(--font); color:var(--text); background: radial-gradient(1200px 600px at 20% 10%, rgba(0,255,234,.18), transparent 60%), radial-gradient(900px 500px at 85% 20%, rgba(255,0,200,.14), transparent 55%), radial-gradient(800px 600px at 50% 100%, rgba(120,0,255,.08), transparent 55%), var(--bg); overflow:hidden; -webkit-font-smoothing:antialiased; text-rendering:geometricPrecision; } .grid{ height:100vh; width:100vw; padding:var(--outer-pad); display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.35fr); grid-template-rows:minmax(0,1fr) minmax(0,1fr); gap:var(--gap); filter:brightness(.98); } .grid>*{min-width:0;min-height:0} .topLeft,.topRight,.bottomLeft,.bottomRight{ position:relative; min-width:0; min-height:0; border-radius:var(--radius); background:var(--glass); border:1px solid var(--border); box-shadow:0 10px 30px #00000059, inset 0 1px #ffffff0f, 0 0 0 1px rgba(0,255,234,.12); overflow:hidden; backdrop-filter:blur(16px); } /* -------- Top Left - weather description/logo NOW SAFELY to the RIGHT of date/time -------- */ .topLeft{ display:flex; flex-direction:column; padding:12px; gap:10px; } .dateTime{ flex:0 0 auto; min-width:0; display: grid; grid-template-columns: 1fr 38%; /* fully responsive % — no more fixed px clipping */ gap: 8px 24px; padding:14px 18px; border-radius:var(--radius-sm); background:rgba(8,4,28,.85); border:1px solid rgba(0,255,234,.35); position: relative; align-items: start; min-height: auto; /* prevents collapse */ } #date{ grid-column: 1; margin:0; font-size:var(--date-size); letter-spacing:.35px; color:var(--muted); text-transform:uppercase; } #time{ grid-column: 1; margin:2px 0 0 0; font-size:var(--time-size); font-weight:760; letter-spacing:.8px; line-height:1.02; color:var(--text); text-shadow:0 0 20px var(--glow); } /* weather description + logo moved to right column (flex column so they stack nicely) */ .dateTime > div { grid-column: 2; grid-row: 1 / span 2; display:flex; flex-direction:column; align-items: flex-end; justify-content: center; gap: 6px; height: 100%; min-width:0; } #weatherDescription{ font-size:clamp(21px, 1.85vh, 29px); font-weight:700; color:#fff; text-shadow:0 0 15px var(--accent); margin:0; text-align:right; line-height:1.05; white-space:nowrap; } #currentWeatherLogo{ font-size:clamp(46px, 3.9vh, 60px); line-height:1; filter:drop-shadow(0 0 22px var(--accent-2)); margin:0; } #conditionLogo{ height: 100%; position: absolute; top: 0; right: 0; filter:drop-shadow(0 0 25px var(--glow)); z-index: 1; pointer-events: none; } /* -------- weather block below (unchanged proportions) -------- */ .weather{ flex:1 1 auto; min-width:0; min-height:0; display:flex; } .weatherBlock{ flex:1 1 auto; min-width:0; min-height:0; padding:10px; } .weatherInfo{ height: 100%; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); grid-template-rows:minmax(0,1fr) minmax(0,1fr); gap:6px 8px; align-content:stretch; align-items:stretch; } .weatherItem{ margin:0; padding:6px 9px; border-radius:14px; background:rgba(255,255,255,.09); border:1px solid rgba(0,255,234,.25); font-size:var(--info-size); line-height:1.00; color:var(--muted); display:flex; align-items:center; justify-content:center; box-shadow:0 4px 12px rgba(0,0,0,.4); } #temp,#feels,#wind,#humidity{ color:var(--text); font-weight:700; } /* -------- Top Right (Radar) -------- */ .topRight{ padding:12px; display:flex; align-items:center; justify-content:center; background:radial-gradient(800px 520px at 70% 10%, rgba(255,0,200,.12), transparent 55%), rgba(8,4,28,.85); } #radar{ width:100%; height:100%; object-fit:scale-down; object-position:center 52%; transform:scale(1.08); border-radius:calc(var(--radius) - 6px); border:1px solid rgba(0,255,234,.45); box-shadow:0 14px 40px #00000073, 0 0 25px rgba(0,255,234,.3); background:#00000038; display:block; } /* -------- Bottom Left (Forecast) -------- */ .bottomLeft{padding:12px;display:flex;min-width:0;min-height:0} table{ width:100%; height:100%; border-collapse:separate; border-spacing:0; overflow:hidden; border-radius:calc(var(--radius) - 6px); background:rgba(8,4,28,.75); border:1px solid rgba(0,255,234,.3); table-layout:fixed; } thead th{ padding:8px; font-size:var(--table-head); line-height:1.1; color:#fff; letter-spacing:.4px; text-transform:uppercase; background:linear-gradient(90deg, rgba(0,255,234,.25), rgba(255,0,200,.2)); border-bottom:1px solid rgba(0,255,234,.35); } tbody td{ padding:6px 8px; font-size:var(--table-cell); line-height:1.1; color:var(--muted); border-bottom:1px solid rgba(255,255,255,.06); } tbody td:first-child{ width:44%; color:#e0f8ff; font-weight:760; background:rgba(0,255,234,.1); border-right:1px solid rgba(0,255,234,.25); } tbody td:not(:first-child),thead th:not(:first-child){text-align:center} tbody tr:nth-child(odd) td{background:rgba(255,255,255,.04)} tbody tr:nth-child(2n) td{background:rgba(255,255,255,.07)} tbody tr:last-child td{border-bottom:none} /* -------- Bottom Right -------- */ .bottomRight{ padding:12px; background:radial-gradient(900px 600px at 20% 20%, rgba(0,255,234,.1), transparent 55%), rgba(8,4,28,.85); } .bottomRight iframe{ width:100%; height:100%; border:1px solid rgba(0,255,234,.35); border-radius:calc(var(--radius) - 6px); box-shadow:0 18px 50px #0000008c, 0 0 30px rgba(255,0,200,.3); background:#000; display:block; } :focus{outline:3px solid var(--accent);outline-offset:3px;border-radius:12px}