root = Card([pageHeader, globalAlert, incidentCard, severityCard, resourceCard, shelterCard, routeCard, weatherCard, casualtyCard, volunteerCard, donationCard, aidCard, commsCard, roadCard, hospitalCard, taskCard, actionSectionHeading, resourceFormCard, broadcastCard, focusCard, sitrepCard], "clear", "column", "l")
pageHeader = CardHeader("Emergency Response Coordination Center", "Unified Command Dashboard — All Zones")
globalAlert = Callout("error", "Active emergency", "Evacuation in progress in Zones 3 and 4. All units respond to Incident Command.")
incidentCard = Card([incidentHeading, incidentsTable], "sunk", "column", "xs")
incidentHeading = Heading("Active Incidents by Zone", "h3")
incidentsTable = Table([incidentCol, zoneCol, severityCol])
incidentCol = Col("Incident", ["Structure fire", "Flood rescue", "Landslide", "Gas leak", "Power outage"])
zoneCol = Col("Zone", ["Zone 3", "Zone 4", "Zone 4", "Zone 2", "Zone 1"])
severityCol = Col("Severity", ["Critical", "Critical", "High", "Medium", "Low"])
severityCard = Card([severityHeading, severityChart], "sunk", "column", "xs")
severityHeading = Heading("Overall Severity Summary", "h3")
severityChart = PieChart(["Critical", "High", "Medium", "Low"], [4, 7, 12, 5], "donut")
resourceCard = Card([resourceHeading, resourceTable], "sunk", "column", "xs")
resourceHeading = Heading("Available Resources", "h3")
resourceTable = Table([resourceCol, availableCol])
resourceCol = Col("Resource", ["Ambulances", "Fire engines", "Search & rescue teams", "Medical personnel", "Police officers", "Water (liters)", "Emergency blankets"])
availableCol = Col("Available", [12, 8, 5, 34, 20, 5000, 1200])
shelterCard = Card([shelterHeading, shelterTable], "sunk", "column", "xs")
shelterHeading = Heading("Shelters & Occupancy", "h3")
shelterTable = Table([shelterCol, capacityCol, occupancyCol])
shelterCol = Col("Shelter", ["Central High School", "Riverside Community Center", "St. Mary's Church", "Fairgrounds Hall"])
capacityCol = Col("Capacity", [500, 300, 200, 800])
occupancyCol = Col("Occupancy", [342, 198, 150, 512])
routeCard = Card([routeHeading, evacRouteTable], "sunk", "column", "xs")
routeHeading = Heading("Evacuation Route Status", "h3")
evacRouteTable = Table([routeCol, routeStatus])
routeCol = Col("Route", ["Route 101 North", "Route 101 South", "Canyon Road", "Old Mill Highway", "Shoreline Drive"])
routeStatus = Col("Status", ["Open", "Congested", "Closed", "Open", "Congested"])
weatherCard = Card([weatherHeading, weatherChart], "sunk", "column", "xs")
weatherHeading = Heading("Weather Forecast — Next 48 Hours", "h3")
weatherChart = LineChart(["Now", "+6h", "+12h", "+18h", "+24h", "+30h", "+36h", "+42h", "+48h"], [tempSeries, precipSeries], "linear", "Time", "Temp °C / Precip %")
tempSeries = Series("Temperature (°C)", [18, 17, 16, 15, 14, 13, 13, 12, 12])
precipSeries = Series("Precipitation probability (%)", [20, 30, 45, 60, 75, 70, 55, 40, 30])
casualtyCard = Card([casualtyHeading, casualtyTable], "sunk", "column", "xs")
casualtyHeading = Heading("Rescue & Casualty Report", "h3")
casualtyTable = Table([metricCol, countCol])
metricCol = Col("Metric", ["People rescued", "Injured", "Fatalities", "Missing"])
countCol = Col("Count", [245, 78, 12, 6])
volunteerCard = Card([volunteerHeading, volunteerTable], "sunk", "column", "xs")
volunteerHeading = Heading("Volunteers on Duty", "h3")
volunteerTable = Table([nameCol, assignmentCol])
nameCol = Col("Volunteer", ["A. Reyes", "M. Chen", "J. Okafor", "S. Patel", "L. Novak", "D. Kim"])
assignmentCol = Col("Assignment", ["Shelter triage", "Supply distribution", "Search & rescue", "Communications", "Medical aid", "Logistics"])
donationCard = Card([donationHeading, donationTotal, donationTable], "sunk", "column", "xs")
donationHeading = Heading("Donations Received", "h3")
donationTotal = TextContent("**Total raised: $152,350**", "large-heavy")
donationTable = Table([donorCol, amountCol])
donorCol = Col("Source", ["Red Cross", "Local businesses", "Online fund", "Corporate match"])
amountCol = Col("Amount", ["$50,000", "$28,300", "$41,050", "$33,000"])
aidCard = Card([aidHeading, aidRequestsTable], "sunk", "column", "xs")
aidHeading = Heading("Aid Requests Awaiting Action", "h3")
aidRequestsTable = Table([requestCol, requestZoneCol, priorityCol])
requestCol = Col("Request", ["Drinking water", "Portable generators", "Medical supplies", "Sandbags", "Search lights"])
requestZoneCol = Col("Zone", ["Zone 4", "Zone 3", "Zone 2", "Zone 1", "Zone 4"])
priorityCol = Col("Priority", ["High", "Critical", "Medium", "Low", "High"])
commsCard = Card([commsHeading, commsTable], "sunk", "column", "xs")
commsHeading = Heading("Communication Channels", "h3")
commsTable = Table([channelCol, commsStatus])
channelCol = Col("Channel", ["Radio network", "Cellular", "Satellite link", "Public sirens", "CAD system"])
commsStatus = Col("Status", ["Operational", "Degraded", "Down", "Operational", "Operational"])
roadCard = Card([roadHeading, roadClosuresTable], "sunk", "column", "xs")
roadHeading = Heading("Roads Closed", "h3")
roadClosuresTable = Table([roadCol, reasonCol])
roadCol = Col("Road", ["Canyon Road", "Route 101 South", "Riverside Dr", "Hillcrest Ave"])
reasonCol = Col("Reason", ["Landslide debris", "Flooding", "Bridge damage", "Downed power lines"])
hospitalCard = Card([hospitalHeading, hospitalTable], "sunk", "column", "xs")
hospitalHeading = Heading("Nearby Hospitals — Free Beds", "h3")
hospitalTable = Table([hospitalCol, freeBedsCol, totalBedsCol])
hospitalCol = Col("Hospital", ["St. Mary's Hospital", "Central General", "Valley Medical", "Riverside Clinic"])
freeBedsCol = Col("Free beds", [24, 12, 31, 8])
totalBedsCol = Col("Total beds", [120, 85, 90, 30])
taskCard = Card([taskHeading, tasksTable], "sunk", "column", "xs")
taskHeading = Heading("Open Tasks", "h3")
tasksTable = Table([taskCol, assigneeCol, dueCol])
taskCol = Col("Task", ["Coordinate Zone 3 evacuation", "Distribute water rations", "Repair radio repeater", "Open auxiliary shelter", "Survey landslide area"])
assigneeCol = Col("Assignee", ["IC Rivera", "Supply Ops", "Comms Tech", "Shelter Lead", "Engineer Corps"])
dueCol = Col("Due", ["14:00", "16:30", "13:00", "18:00", "15:00"])
actionSectionHeading = Heading("Response Actions", "h2")
resourceFormCard = Card([resourceFormHeading, resourceForm], "sunk", "column", "xs")
resourceFormHeading = Heading("Request More Resources", "h3")
resourceForm = Form("request-resources", resourceButtons, [resourceTypeField, resourceQtyField])
resourceTypeField = FormControl("Resource type", resourceTypeSelect)
resourceTypeSelect = Select("resource_type", [resWater, resFood, resMedical, resFuel, resGenerator], "Select type")
resWater = SelectItem("water", "Drinking water")
resFood = SelectItem("food", "Food rations")
resMedical = SelectItem("medical", "Medical supplies")
resFuel = SelectItem("fuel", "Fuel")
resGenerator = SelectItem("generator", "Portable generator")
resourceQtyField = FormControl("Quantity", resourceQtyInput)
resourceQtyInput = Input("quantity", "e.g. 500", "number")
resourceButtons = Buttons([resourceSubmit, resourceCancel])
resourceSubmit = Button("Request resources", null, "primary")
resourceCancel = Button("Cancel", null, "tertiary")
broadcastCard = Card([broadcastHeading, broadcastForm], "sunk", "column", "xs")
broadcastHeading = Heading("Broadcast Update", "h3")
broadcastForm = Form("broadcast", broadcastButtons, [broadcastMsgField])
broadcastMsgField = FormControl("Message", broadcastMsgInput, "This will be sent to all response teams")
broadcastMsgInput = TextArea("message", "Enter update...", 3)
broadcastButtons = Buttons([broadcastSend])
broadcastSend = Button("Send broadcast", null, "primary")
focusCard = Card([focusHeading, focusForm], "sunk", "column", "xs")
focusHeading = Heading("Focus on One Zone", "h3")
focusForm = Form("focus-zone", focusButtons, [focusZoneField])
focusZoneField = FormControl("Select zone", focusZoneSelect)
focusZoneSelect = Select("zone", [zone1, zone2, zone3, zone4], "Choose zone")
zone1 = SelectItem("zone1", "Zone 1")
zone2 = SelectItem("zone2", "Zone 2")
zone3 = SelectItem("zone3", "Zone 3")
zone4 = SelectItem("zone4", "Zone 4")
focusButtons = Buttons([focusSubmit])
focusSubmit = Button("Focus zone", null, "primary")
sitrepCard = Card([sitrepHeading, sitrepForm], "sunk", "column", "xs")
sitrepHeading = Heading("File Situation Report", "h3")
sitrepForm = Form("sitrep", sitrepButtons, [sitrepField])
sitrepField = FormControl("Situation report", sitrepInput, "Describe current status, needs, and hazards")
sitrepInput = TextArea("sitrep", "Enter report...", 4)
sitrepButtons = Buttons([sitrepSubmit])
sitrepSubmit = Button("Submit report", null, "primary")