body{font-family:system-ui;background:#0f172a;color:#e5e7eb;margin:0}header.topbar{display:flex;justify-content:space-between;align-items:center;padding:16px;background:#020617;border-bottom:1px solid #1f2937}h1{margin:0;font-size:20px}.tabs button{margin-left:8px;padding:8px 12px;background:#1f2937;border:0;color:#fff;border-radius:6px;cursor:pointer}.tabs .active{background:#3b82f6}main{padding:20px}.hidden{display:none}.builder label{display:block;margin:8px 0}.weather-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-top:10px}.weather-card{background:#111827;border-radius:10px;padding:10px;text-align:center;position:relative;box-shadow:0 6px 18px rgba(0,0,0,.4)}.satire{position:absolute;top:6px;right:6px;font-size:10px;background:#ef4444;padding:2px 6px;border-radius:4px}.w-icon{font-size:28px}.w-loc{font-weight:bold}.w-day{font-size:13px;color:#9ca3af}.poll-card{background:#111827;padding:16px;border-radius:10px;position:relative}.poll-card.politics{border-top:4px solid #ef4444}.poll-card.sports{border-top:4px solid #22c55e}.bar{margin:6px 0}.bar-fill{background:#3b82f6;color:#fff;padding:2px 6px;border-radius:4px}.donut{width:120px;height:120px;border-radius:50%;margin:10px auto}.legend{font-size:12px}.stock-card{background:#111827;border-radius:10px;padding:14px;position:relative}.stock-head{font-weight:bold;font-size:18px}.stock-target{margin:6px 0;color:#22c55e}.stock-row{display:flex;justify-content:space-between;font-size:13px;border-top:1px solid #1f2937;padding:4px 0}button{cursor:pointer}