*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#f8fafc;color:#0f172a}.page{min-height:100vh}.container{max-width:1280px;margin:0 auto;padding:24px 20px}.hero{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.hero h1{font-size:28px;font-weight:700;margin:4px 0}.hero p{color:#64748b;font-size:14px}.pill{display:inline-block;background:#eff6ff;color:#2563eb;font-size:11px;font-weight:600;padding:3px 10px;border-radius:20px;text-transform:uppercase;letter-spacing:.5px}.heroRight{display:flex;align-items:center;gap:12px}.refreshBtn{padding:8px 16px;border-radius:8px;border:1px solid #e2e8f0;background:#fff;font-size:13px;cursor:pointer;font-weight:500}.refreshBtn:hover{border-color:#3b82f6;color:#3b82f6}.refreshBtn:disabled{opacity:.5;cursor:not-allowed}.toolbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:16px;padding:12px 16px;background:#fff;border-radius:12px;border:1px solid #e2e8f0}.filters{display:flex;gap:8px;align-items:center}.filters select,.searchInput{padding:6px 12px;border-radius:8px;border:1px solid #e2e8f0;font-size:13px;background:#fff}.searchInput{width:180px}.viewControls{display:flex;gap:8px;align-items:center}.viewBtn{padding:6px 14px;border-radius:8px;border:1px solid #e2e8f0;background:#fff;font-size:12px;font-weight:500;cursor:pointer}.viewBtn.active{background:#eff6ff;border-color:#3b82f6;color:#3b82f6}.weekNav{display:flex;align-items:center;gap:6px;margin-left:8px}.navBtn{padding:6px 10px;border-radius:8px;border:1px solid #e2e8f0;background:#fff;cursor:pointer;font-size:13px}.navBtn:hover{border-color:#3b82f6}.todayBtn{font-size:11px;color:#3b82f6;font-weight:500}.weekLabel{font-size:13px;color:#64748b;font-weight:500;white-space:nowrap}.summary{font-size:13px;color:#94a3b8;margin-bottom:12px}.loading{text-align:center;padding:80px 0;color:#94a3b8}.weekGrid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.dayColumn{background:#fff;border-radius:12px;border:1px solid #e2e8f0;min-height:200px;overflow:hidden}.dayColumn.today{border-color:#3b82f6;box-shadow:0 0 0 1px #3b82f6}.dayColumn.past{opacity:.6}.dayHeader{padding:10px 12px;border-bottom:1px solid #f1f5f9;display:flex;align-items:center;gap:6px}.dayName{font-size:12px;font-weight:600;text-transform:capitalize}.dayDate{font-size:11px;color:#94a3b8}.dayCount{background:#3b82f6;color:#fff;font-size:10px;font-weight:600;width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-left:auto}.dayItems{padding:8px;display:flex;flex-direction:column;gap:6px}.emptyDay{text-align:center;padding:20px;color:#e2e8f0;font-size:18px}.earningsCard{padding:10px;border-radius:8px;border:1px solid #f1f5f9;background:#fafbfc;transition:all .15s}.earningsCard:hover{border-color:#e2e8f0;background:#fff}.earningsCard.past{opacity:.7}.cardHeader{display:flex;justify-content:space-between;align-items:flex-start;gap:6px;margin-bottom:4px}.companyName{font-size:13px;font-weight:600;line-height:1.3}.indexBadge{font-size:9px;font-weight:600;color:#fff;padding:2px 6px;border-radius:4px;white-space:nowrap;flex-shrink:0}.fiscalPeriod{font-size:11px;color:#64748b;margin-bottom:4px;font-weight:500}.epsRow,.revenueRow{font-size:11px;color:#475569;display:flex;gap:8px}.epsRow .label,.revenueRow .label{font-weight:600;color:#94a3b8;min-width:24px}.prev{color:#94a3b8}.cardFooter{display:flex;gap:6px;margin-top:6px;align-items:center}.sourceBadge{font-size:9px;font-weight:500;padding:2px 6px;border-radius:4px}.sourceBadge.trading_economics{background:#fef3c7;color:#92400e}.sourceBadge.yahoo{background:#ede9fe;color:#5b21b6}.estimateBadge{font-size:9px;background:#fff7ed;color:#c2410c;padding:2px 6px;border-radius:4px;font-weight:500}.listView{display:flex;flex-direction:column;gap:16px}.listDateGroup{background:#fff;border-radius:12px;border:1px solid #e2e8f0;padding:16px}.listDateGroup.today{border-color:#3b82f6}.listDateGroup.pastGroup{opacity:.6}.listDateHeader{font-size:15px;font-weight:600;margin-bottom:12px;display:flex;align-items:center;gap:8px}.listItems{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px}@media(max-width:900px){.weekGrid{grid-template-columns:1fr}.toolbar{flex-direction:column;align-items:stretch}.viewControls{flex-wrap:wrap}}.sourceBadge.amf{background:#dcfce7;color:#166534}.eventType{font-size:10px;color:#475569;font-weight:500;background:#f1f5f9;padding:2px 6px;border-radius:4px}.sourceBadge.ir{background:#dbeafe;color:#1e40af}
