diff --git a/backend/app/api/routes/printer_control.py b/backend/app/api/routes/printer_control.py index 7f01fcae1..c0dc1f28e 100644 --- a/backend/app/api/routes/printer_control.py +++ b/backend/app/api/routes/printer_control.py @@ -273,6 +273,35 @@ async def set_nozzle_temperature( ) +@router.post("/{printer_id}/control/temperature/chamber", response_model=ControlResponse) +async def set_chamber_temperature( + printer_id: int, + request: TemperatureRequest, + db: AsyncSession = Depends(get_db), +): + """Set the chamber target temperature.""" + await get_printer_or_404(printer_id, db) + client = get_mqtt_client_or_503(printer_id) + + # Warn for high temperatures (chamber typically maxes around 60°C) + if request.target > 60 and not request.confirm_token: + token = _create_confirmation_token(printer_id, "chamber_temp") + return ConfirmationRequired( + token=token, + warning=f"Setting chamber to {request.target}°C is very high. Confirm?" + ) + + if request.target > 60: + if not _validate_confirmation_token(request.confirm_token, printer_id, "chamber_temp"): + raise HTTPException(status_code=400, detail="Invalid or expired confirmation token") + + success = client.set_chamber_temperature(request.target) + return ControlResponse( + success=success, + message=f"Chamber temperature set to {request.target}°C" if success else "Failed to set chamber temperature" + ) + + # ============================================================================= # Speed Control Endpoint # ============================================================================= @@ -354,6 +383,38 @@ async def set_chamber_fan( ) +# ============================================================================= +# Air Conditioning Control Endpoint +# ============================================================================= + +class AirductModeRequest(BaseModel): + mode: str # "cooling" or "heating" + + +@router.post("/{printer_id}/control/airduct", response_model=ControlResponse) +async def set_airduct_mode( + printer_id: int, + request: AirductModeRequest, + db: AsyncSession = Depends(get_db), +): + """Set air conditioning mode (cooling or heating). + + - Cooling: Suitable for PLA/PETG/TPU, filters and cools chamber air + - Heating: Suitable for ABS/ASA/PC/PA, circulates and heats chamber air, closes top exhaust flap + """ + await get_printer_or_404(printer_id, db) + client = get_mqtt_client_or_503(printer_id) + + if request.mode not in ("cooling", "heating"): + raise HTTPException(status_code=400, detail="Mode must be 'cooling' or 'heating'") + + success = client.set_airduct_mode(request.mode) + return ControlResponse( + success=success, + message=f"Air conditioning set to {request.mode}" if success else "Failed to set air conditioning mode" + ) + + # ============================================================================= # Light Control Endpoint # ============================================================================= diff --git a/backend/app/api/routes/printers.py b/backend/app/api/routes/printers.py index c14d370c5..59c18e764 100644 --- a/backend/app/api/routes/printers.py +++ b/backend/app/api/routes/printers.py @@ -241,6 +241,9 @@ async def get_printer_status(printer_id: int, db: AsyncSession = Depends(get_db) stg_cur=state.stg_cur, stg_cur_name=get_stage_name(state.stg_cur) if state.stg_cur >= 0 else None, stg=state.stg, + airduct_mode=state.airduct_mode, + speed_level=state.speed_level, + chamber_light=state.chamber_light, ) diff --git a/backend/app/schemas/printer.py b/backend/app/schemas/printer.py index b0f4a74a8..2c3c243a6 100644 --- a/backend/app/schemas/printer.py +++ b/backend/app/schemas/printer.py @@ -112,3 +112,9 @@ class PrinterStatus(BaseModel): stg_cur: int = -1 # Current stage number (-1 = not calibrating) stg_cur_name: str | None = None # Human-readable current stage name stg: list[int] = [] # List of stage numbers in calibration sequence + # Air conditioning mode (0=cooling, 1=heating) + airduct_mode: int = 0 + # Print speed level (1=silent, 2=standard, 3=sport, 4=ludicrous) + speed_level: int = 2 + # Chamber light on/off + chamber_light: bool = False diff --git a/backend/app/services/bambu_mqtt.py b/backend/app/services/bambu_mqtt.py index a2e2aa20b..dbcb6b9d5 100644 --- a/backend/app/services/bambu_mqtt.py +++ b/backend/app/services/bambu_mqtt.py @@ -103,6 +103,12 @@ class PrinterState: # Calibration stage tracking (from stg_cur and stg fields) stg_cur: int = -1 # Current stage index (-1 = not calibrating) stg: list = field(default_factory=list) # List of stages to execute + # Air conditioning mode (0=cooling, 1=heating) + airduct_mode: int = 0 + # Print speed level (1=silent, 2=standard, 3=sport, 4=ludicrous) + speed_level: int = 2 + # Chamber light on/off + chamber_light: bool = False # Stage name mapping from BambuStudio DeviceManager.cpp @@ -781,6 +787,13 @@ class BambuMQTTClient: # Parse chamber temp from device.ctc.info.temp if not already set ctc_data = device.get("ctc", {}) ctc_info = ctc_data.get("info", {}) + # Parse airduct mode (0=cooling, 1=heating) + airduct_data = device.get("airduct", {}) + if "modeCur" in airduct_data: + new_mode = airduct_data["modeCur"] + if new_mode != self.state.airduct_mode: + logger.info(f"[{self.serial_number}] airduct_mode changed: {self.state.airduct_mode} -> {new_mode}") + self.state.airduct_mode = new_mode if "temp" in ctc_info and "chamber" not in temps: temps["chamber"] = float(ctc_info["temp"]) # Parse chamber target from ctc.info.target if available @@ -860,6 +873,26 @@ class BambuMQTTClient: else: self.state.ipcam = ipcam_data is True + # Parse print speed level (1=silent, 2=standard, 3=sport, 4=ludicrous) + if "spd_lvl" in data: + new_speed = data["spd_lvl"] + if new_speed != self.state.speed_level: + logger.info(f"[{self.serial_number}] speed_level changed: {self.state.speed_level} -> {new_speed}") + self.state.speed_level = new_speed + + # Parse chamber light status from lights_report + if "lights_report" in data: + lights = data["lights_report"] + logger.debug(f"[{self.serial_number}] lights_report: {lights}") + if isinstance(lights, list): + for light in lights: + if isinstance(light, dict) and light.get("node") == "chamber_light": + new_light_state = light.get("mode") == "on" + if new_light_state != self.state.chamber_light: + logger.info(f"[{self.serial_number}] chamber_light changed: {self.state.chamber_light} -> {new_light_state}") + self.state.chamber_light = new_light_state + break + # Parse nozzle hardware info (single nozzle printers) if "nozzle_type" in data: self.state.nozzles[0].nozzle_type = str(data["nozzle_type"]) @@ -1772,6 +1805,18 @@ class BambuMQTTClient: logger.info(f"[{self.serial_number}] Tracking LEFT nozzle target locally: {target}°C") return result + def set_chamber_temperature(self, target: int) -> bool: + """Set the chamber target temperature. + + Args: + target: Target temperature in Celsius (0 to turn off heating) + + Returns: + True if command was sent, False otherwise + """ + # M141 sets chamber temperature + return self.send_gcode(f"M141 S{target}") + def set_print_speed(self, mode: int) -> bool: """Set the print speed mode. @@ -1829,6 +1874,37 @@ class BambuMQTTClient: """Set chamber fan speed (0-255).""" return self.set_fan_speed(3, speed) + def set_airduct_mode(self, mode: str) -> bool: + """Set air conditioning mode (cooling or heating). + + Args: + mode: "cooling" (modeId=0) or "heating" (modeId=1) + - Cooling: Suitable for PLA/PETG/TPU, filters and cools chamber air + - Heating: Suitable for ABS/ASA/PC/PA, circulates and heats chamber air, + closes top exhaust flap + + Returns: + True if command was sent, False otherwise + """ + if not self._client or not self.state.connected: + logger.warning(f"[{self.serial_number}] Cannot set airduct mode: not connected") + return False + + self._sequence_id += 1 + mode_id = 0 if mode == "cooling" else 1 + command = { + "print": { + "command": "set_airduct", + "modeId": mode_id, + "sequence_id": str(self._sequence_id), + "submode": -1 + } + } + # Use QoS 1 for reliable delivery + self._client.publish(self.topic_publish, json.dumps(command), qos=1) + logger.info(f"[{self.serial_number}] Set airduct mode to {mode} (modeId={mode_id}, seq={self._sequence_id})") + return True + def set_chamber_light(self, on: bool) -> bool: """Turn chamber light on or off. @@ -1842,20 +1918,24 @@ class BambuMQTTClient: logger.warning(f"[{self.serial_number}] Cannot set chamber light: not connected") return False - command = { - "system": { - "command": "ledctrl", - "led_node": "chamber_light", - "led_mode": "on" if on else "off", - "led_on_time": 500, - "led_off_time": 500, - "loop_times": 0, - "interval_time": 0, - "sequence_id": "0" + mode = "on" if on else "off" + # Control both chamber lights (some printers like H2D have two) + for led_node in ["chamber_light", "chamber_light2"]: + self._sequence_id += 1 + command = { + "system": { + "command": "ledctrl", + "led_node": led_node, + "led_mode": mode, + "led_on_time": 500, + "led_off_time": 500, + "loop_times": 0, + "interval_time": 0, + "sequence_id": str(self._sequence_id) + } } - } - self._client.publish(self.topic_publish, json.dumps(command)) - logger.info(f"[{self.serial_number}] Set chamber light {'on' if on else 'off'}") + self._client.publish(self.topic_publish, json.dumps(command), qos=1) + logger.info(f"[{self.serial_number}] Set chamber lights {'on' if on else 'off'} (seq={self._sequence_id})") return True def home_axes(self, axes: str = "XYZ") -> bool: diff --git a/frontend/src/api/client.ts b/frontend/src/api/client.ts index b93601a2a..c4a7b6d61 100644 --- a/frontend/src/api/client.ts +++ b/frontend/src/api/client.ts @@ -115,6 +115,12 @@ export interface PrinterStatus { stg_cur: number; // Current stage number (-1 = not calibrating) stg_cur_name: string | null; // Human-readable current stage name stg: number[]; // List of stage numbers in calibration sequence + // Air conditioning mode (0=cooling, 1=heating) + airduct_mode: number; + // Print speed level (1=silent, 2=standard, 3=sport, 4=ludicrous) + speed_level: number; + // Chamber light on/off + chamber_light: boolean; } export interface PrinterCreate { @@ -1138,6 +1144,11 @@ export const api = { method: 'POST', body: JSON.stringify({ target, nozzle, confirm_token: confirmToken }), }), + setChamberTemperature: (printerId: number, target: number, confirmToken?: string) => + request(`/printers/${printerId}/control/temperature/chamber`, { + method: 'POST', + body: JSON.stringify({ target, confirm_token: confirmToken }), + }), setPrintSpeed: (printerId: number, mode: number) => request(`/printers/${printerId}/control/speed`, { method: 'POST', @@ -1158,6 +1169,11 @@ export const api = { method: 'POST', body: JSON.stringify({ speed }), }), + setAirductMode: (printerId: number, mode: 'cooling' | 'heating') => + request(`/printers/${printerId}/control/airduct`, { + method: 'POST', + body: JSON.stringify({ mode }), + }), setChamberLight: (printerId: number, on: boolean) => request(`/printers/${printerId}/control/light`, { method: 'POST', diff --git a/frontend/src/components/control/AirConditionModal.tsx b/frontend/src/components/control/AirConditionModal.tsx new file mode 100644 index 000000000..8b6688fda --- /dev/null +++ b/frontend/src/components/control/AirConditionModal.tsx @@ -0,0 +1,451 @@ +import { useState, useEffect } from 'react'; +import { useMutation } from '@tanstack/react-query'; +import { api } from '../../api/client'; +import type { Printer, PrinterStatus } from '../../api/client'; +import { X, Minus, Plus, Wind, Flame, AlertTriangle } from 'lucide-react'; + +interface AirConditionModalProps { + printer: Printer; + status: PrinterStatus | null | undefined; + onClose: () => void; +} + +type Mode = 'cooling' | 'heating'; + +// Toggle switch component +function Toggle({ + checked, + onChange, + disabled, +}: { + checked: boolean; + onChange: (checked: boolean) => void; + disabled?: boolean; +}) { + return ( + + ); +} + +// Fan control card component +function FanCard({ + name, + icon, + speed, + enabled, + onToggle, + onSpeedChange, + disabled, + showSpeedControl = true, +}: { + name: string; + icon: React.ReactNode; + speed: number; + enabled: boolean; + onToggle: (enabled: boolean) => void; + onSpeedChange: (speed: number) => void; + disabled?: boolean; + showSpeedControl?: boolean; +}) { + const increment = () => { + const newSpeed = Math.min(100, speed + 10); + onSpeedChange(newSpeed); + }; + + const decrement = () => { + const newSpeed = Math.max(0, speed - 10); + onSpeedChange(newSpeed); + }; + + return ( +
+ {/* Header */} +
+
+
+ {icon} +
+ {name} +
+ {showSpeedControl && ( + + )} +
+ + {/* Controls or Status */} + {showSpeedControl ? ( +
+ +
+ + {speed}% + +
+ +
+ ) : ( +
+ + {enabled ? 'Auto' : 'Off'} + +
+ )} +
+ ); +} + +// Warning dialog component +function PrintWarningDialog({ + onConfirm, + onCancel, +}: { + onConfirm: () => void; + onCancel: () => void; +}) { + return ( +
+
+
+
+ +
+
+

Print in Progress

+

The printer is currently controlling air conditioning.

+
+
+

+ Changing these settings during a print may affect print quality. Are you sure you want to continue? +

+
+ + +
+
+
+ ); +} + +export function AirConditionModal({ printer, status, onClose }: AirConditionModalProps) { + const isConnected = status?.connected ?? false; + const isPrinting = status?.state === 'RUNNING' || status?.state === 'PRINTING'; + const isDisabled = !isConnected; + + // Initialize mode from printer status (0=cooling, 1=heating) + const initialMode: Mode = (status?.airduct_mode ?? 0) === 1 ? 'heating' : 'cooling'; + const [mode, setMode] = useState(initialMode); + const [showPrintWarning, setShowPrintWarning] = useState(false); + const [pendingAction, setPendingAction] = useState<(() => void) | null>(null); + + // Fan states + const [partFanEnabled, setPartFanEnabled] = useState(false); + const [partFanSpeed, setPartFanSpeed] = useState(0); + const [auxFanEnabled, setAuxFanEnabled] = useState(false); + const [auxFanSpeed, setAuxFanSpeed] = useState(0); + const [exhaustFanEnabled, setExhaustFanEnabled] = useState(false); + const [exhaustFanSpeed, setExhaustFanSpeed] = useState(0); + + // Mutation for airduct mode + const airductMutation = useMutation({ + mutationFn: (newMode: Mode) => api.setAirductMode(printer.id, newMode), + }); + + // Mutations for fan control + const partFanMutation = useMutation({ + mutationFn: (speed: number) => api.setPartFan(printer.id, speed), + }); + + const auxFanMutation = useMutation({ + mutationFn: (speed: number) => api.setAuxFan(printer.id, speed), + }); + + const chamberFanMutation = useMutation({ + mutationFn: (speed: number) => api.setChamberFan(printer.id, speed), + }); + + // Wrapper to check for print warning before executing action + const withPrintWarning = (action: () => void) => { + if (isPrinting) { + setPendingAction(() => action); + setShowPrintWarning(true); + } else { + action(); + } + }; + + const handleWarningConfirm = () => { + if (pendingAction) { + pendingAction(); + setPendingAction(null); + } + setShowPrintWarning(false); + }; + + const handleWarningCancel = () => { + setPendingAction(null); + setShowPrintWarning(false); + }; + + // Handle mode change + const handleModeChange = (newMode: Mode) => { + if (newMode === mode) return; + + withPrintWarning(() => { + setMode(newMode); + airductMutation.mutate(newMode); + }); + }; + + const handlePartFanToggle = (enabled: boolean) => { + withPrintWarning(() => { + setPartFanEnabled(enabled); + if (!enabled) { + setPartFanSpeed(0); + partFanMutation.mutate(0); + } + }); + }; + + const handlePartFanSpeed = (speed: number) => { + withPrintWarning(() => { + setPartFanSpeed(speed); + setPartFanEnabled(speed > 0); + partFanMutation.mutate(speed); + }); + }; + + const handleAuxFanToggle = (enabled: boolean) => { + withPrintWarning(() => { + setAuxFanEnabled(enabled); + if (!enabled) { + setAuxFanSpeed(0); + auxFanMutation.mutate(0); + } + }); + }; + + const handleAuxFanSpeed = (speed: number) => { + withPrintWarning(() => { + setAuxFanSpeed(speed); + setAuxFanEnabled(speed > 0); + auxFanMutation.mutate(speed); + }); + }; + + const handleExhaustFanToggle = (enabled: boolean) => { + withPrintWarning(() => { + setExhaustFanEnabled(enabled); + if (!enabled) { + setExhaustFanSpeed(0); + chamberFanMutation.mutate(0); + } + }); + }; + + const handleExhaustFanSpeed = (speed: number) => { + withPrintWarning(() => { + setExhaustFanSpeed(speed); + setExhaustFanEnabled(speed > 0); + chamberFanMutation.mutate(speed); + }); + }; + + // Close on Escape key + useEffect(() => { + const handleKeyDown = (e: KeyboardEvent) => { + if (e.key === 'Escape') { + if (showPrintWarning) { + handleWarningCancel(); + } else { + onClose(); + } + } + }; + window.addEventListener('keydown', handleKeyDown); + return () => window.removeEventListener('keydown', handleKeyDown); + }, [onClose, showPrintWarning]); + + const modeDescriptions = { + cooling: 'Suitable for PLA, PETG, TPU. Filters and cools the chamber air.', + heating: 'Suitable for ABS, ASA, PC, PA. Circulates and heats chamber air.', + }; + + const FanIcon = () => ( + + ); + + const HeatIcon = () => ( + + ); + + return ( +
+
e.stopPropagation()} + > + {/* Print Warning Overlay */} + {showPrintWarning && ( + + )} + + {/* Header */} +
+
+
+ +
+ Air Condition +
+ +
+ + {/* Content */} +
+ {/* Print Warning Banner */} + {isPrinting && ( +
+ + + Print in progress. Changes may affect print quality. + +
+ )} + + {/* Mode Toggle */} +
+ + +
+ + {/* Mode Description */} +

{modeDescriptions[mode]}

+ + {/* Separator */} +
+ + {/* Fan Controls Grid */} +
+ {/* Part Fan - always has speed control */} + } + speed={partFanSpeed} + enabled={partFanEnabled} + onToggle={handlePartFanToggle} + onSpeedChange={handlePartFanSpeed} + disabled={isDisabled} + showSpeedControl={true} + /> + + {/* Aux Fan */} + } + speed={auxFanSpeed} + enabled={auxFanEnabled} + onToggle={handleAuxFanToggle} + onSpeedChange={handleAuxFanSpeed} + disabled={isDisabled} + showSpeedControl={mode === 'cooling'} + /> + + {/* Exhaust Fan */} + } + speed={exhaustFanSpeed} + enabled={exhaustFanEnabled} + onToggle={handleExhaustFanToggle} + onSpeedChange={handleExhaustFanSpeed} + disabled={isDisabled} + showSpeedControl={mode === 'cooling'} + /> + + {/* Heat Status */} +
+
+
+ +
+ Heat +
+
+ + {mode === 'heating' ? 'Auto' : 'Off'} + +
+
+
+
+
+
+ ); +} diff --git a/frontend/src/components/control/SpeedModal.tsx b/frontend/src/components/control/SpeedModal.tsx new file mode 100644 index 000000000..781da2825 --- /dev/null +++ b/frontend/src/components/control/SpeedModal.tsx @@ -0,0 +1,133 @@ +import { useState, useEffect } from 'react'; +import { useMutation } from '@tanstack/react-query'; +import { api } from '../../api/client'; +import type { Printer, PrinterStatus } from '../../api/client'; +import { X, AlertTriangle } from 'lucide-react'; + +interface SpeedModalProps { + printer: Printer; + status: PrinterStatus | null | undefined; + onClose: () => void; +} + +type SpeedMode = 1 | 2 | 3 | 4; + +interface SpeedOption { + mode: SpeedMode; + name: string; + description: string; + percentage: string; +} + +const SPEED_OPTIONS: SpeedOption[] = [ + { mode: 1, name: 'Silent', description: 'Quieter printing, slower speed', percentage: '50%' }, + { mode: 2, name: 'Standard', description: 'Balanced speed and quality', percentage: '100%' }, + { mode: 3, name: 'Sport', description: 'Faster printing, moderate noise', percentage: '124%' }, + { mode: 4, name: 'Ludicrous', description: 'Maximum speed', percentage: '166%' }, +]; + +export function SpeedModal({ printer, status, onClose }: SpeedModalProps) { + const isConnected = status?.connected ?? false; + const isPrinting = status?.state === 'RUNNING' || status?.state === 'PRINTING'; + // Speed can only be changed during a print + const isDisabled = !isConnected || !isPrinting; + + // Initialize from printer status + const initialSpeed = (status?.speed_level ?? 2) as SpeedMode; + const [selectedSpeed, setSelectedSpeed] = useState(initialSpeed); + + const speedMutation = useMutation({ + mutationFn: (mode: number) => api.setPrintSpeed(printer.id, mode), + }); + + const handleSpeedChange = (mode: SpeedMode) => { + if (mode === selectedSpeed || isDisabled) return; + setSelectedSpeed(mode); + speedMutation.mutate(mode); + }; + + // Close on Escape key + useEffect(() => { + const handleKeyDown = (e: KeyboardEvent) => { + if (e.key === 'Escape') { + onClose(); + } + }; + window.addEventListener('keydown', handleKeyDown); + return () => window.removeEventListener('keydown', handleKeyDown); + }, [onClose]); + + return ( +
+
e.stopPropagation()} + > + {/* Header */} +
+
+
+ +
+ Print Speed +
+ +
+ + {/* Content */} +
+ {/* Info Banner */} + {!isPrinting ? ( +
+ + + No print in progress. Speed can only be changed during printing. + +
+ ) : ( +
+ + + Speed changes take effect immediately. + +
+ )} + + {/* Speed Options */} +
+ {SPEED_OPTIONS.map((option) => ( + + ))} +
+
+
+
+ ); +} diff --git a/frontend/src/components/control/TemperatureColumn.tsx b/frontend/src/components/control/TemperatureColumn.tsx index 04d568ad8..e8df95e14 100644 --- a/frontend/src/components/control/TemperatureColumn.tsx +++ b/frontend/src/components/control/TemperatureColumn.tsx @@ -1,7 +1,9 @@ import { useState } from 'react'; import { useMutation } from '@tanstack/react-query'; import { api } from '../../api/client'; -import type { PrinterStatus } from '../../api/client'; +import type { Printer, PrinterStatus } from '../../api/client'; +import { AirConditionModal } from './AirConditionModal'; +import { SpeedModal } from './SpeedModal'; interface Temperatures { bed?: number; @@ -19,33 +21,38 @@ interface Temperatures { } interface TemperatureColumnProps { - printerId: number; + printer: Printer; status: PrinterStatus | null | undefined; - nozzleCount: number; disabled?: boolean; } -type EditingField = 'nozzle' | 'nozzle_2' | 'bed' | null; +type EditingField = 'nozzle' | 'nozzle_2' | 'bed' | 'chamber' | null; -export function TemperatureColumn({ printerId, status, nozzleCount, disabled = false }: TemperatureColumnProps) { +export function TemperatureColumn({ printer, status, disabled = false }: TemperatureColumnProps) { const temps = (status?.temperatures ?? {}) as Temperatures; - const isDualNozzle = nozzleCount > 1; + const isDualNozzle = printer.nozzle_count > 1; const isConnected = (status?.connected ?? false) && !disabled; const [editing, setEditing] = useState(null); const [editValue, setEditValue] = useState(''); + const [showAirConditionModal, setShowAirConditionModal] = useState(false); + const [showSpeedModal, setShowSpeedModal] = useState(false); const bedMutation = useMutation({ - mutationFn: (target: number) => api.setBedTemperature(printerId, target), + mutationFn: (target: number) => api.setBedTemperature(printer.id, target), }); const nozzleMutation = useMutation({ mutationFn: ({ target, nozzle }: { target: number; nozzle: number }) => - api.setNozzleTemperature(printerId, target, nozzle), + api.setNozzleTemperature(printer.id, target, nozzle), + }); + + const chamberMutation = useMutation({ + mutationFn: (target: number) => api.setChamberTemperature(printer.id, target), }); const lightMutation = useMutation({ - mutationFn: (on: boolean) => api.setChamberLight(printerId, on), + mutationFn: (on: boolean) => api.setChamberLight(printer.id, on), }); const startEditing = (field: EditingField, currentValue: number) => { @@ -76,6 +83,8 @@ export function TemperatureColumn({ printerId, status, nozzleCount, disabled = f // nozzle_2 field = RIGHT nozzle display // H2D: RIGHT is T0/default (index 0) nozzleMutation.mutate({ target, nozzle: 0 }); + } else if (editing === 'chamber') { + chamberMutation.mutate(target); } cancelEditing(); }; @@ -132,6 +141,7 @@ export function TemperatureColumn({ printerId, status, nozzleCount, disabled = f }; return ( + <>
{/* Nozzle 1 (Left) */}
@@ -183,38 +193,69 @@ export function TemperatureColumn({ printerId, status, nozzleCount, disabled = f {renderTargetTemp('bed', temps.bed_target ?? 0)}
- {/* Chamber - read only (target set by print file or display) */} + {/* Chamber - editable target */}
{isDualNozzle && } {Math.round(temps.chamber ?? 0)} - /{Math.round(temps.chamber_target ?? 0)} °C + {renderTargetTemp('chamber', temps.chamber_target ?? 0)}
- {/* Air Condition - button */} + {/* Air Condition - full width button */} - {/* Lamp - button (toggle, state not tracked in status yet) */} - + {/* Speed & Lamp - half width each */} +
+ {/* Speed */} + + + {/* Lamp */} + +
+ + {/* Air Condition Modal */} + {showAirConditionModal && ( + setShowAirConditionModal(false)} + /> + )} + + {/* Speed Modal */} + {showSpeedModal && ( + setShowSpeedModal(false)} + /> + )} + ); } diff --git a/frontend/src/pages/ControlPage.tsx b/frontend/src/pages/ControlPage.tsx index d80ca17dd..3f8ee3b83 100644 --- a/frontend/src/pages/ControlPage.tsx +++ b/frontend/src/pages/ControlPage.tsx @@ -220,11 +220,10 @@ export function ControlPage() {
{/* Temperature Column */} + printer={selectedPrinter} + status={selectedStatus} + disabled={isCalibrating} + /> {/* Movement Column */}
diff --git a/static/assets/index-CH7yvvuS.css b/static/assets/index-CH7yvvuS.css deleted file mode 100644 index 3c01540c3..000000000 --- a/static/assets/index-CH7yvvuS.css +++ /dev/null @@ -1 +0,0 @@ -@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";@layer properties,theme,base,components,utilities;@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-orange-400:oklch(75% .183 55.934);--color-orange-500:oklch(70.5% .213 47.604);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-yellow-400:oklch(85.2% .199 91.936);--color-yellow-500:oklch(79.5% .184 86.047);--color-yellow-600:oklch(68.1% .162 75.834);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-purple-400:oklch(71.4% .203 305.504);--color-purple-500:oklch(62.7% .265 303.9);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--tracking-widest:.1em;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--drop-shadow-sm:0 1px 2px #00000026;--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--blur-sm:8px;--aspect-video:16/9;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-bambu-green:#00ae42;--color-bambu-green-light:#00c64d;--color-bambu-green-dark:#009438;--color-bambu-dark:var(--bg-primary);--color-bambu-dark-secondary:var(--bg-secondary);--color-bambu-dark-tertiary:var(--bg-tertiary);--color-bambu-gray:var(--text-muted);--color-bambu-gray-light:var(--text-secondary);--color-bambu-gray-dark:var(--text-tertiary)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer utilities{.pointer-events-none{pointer-events:none}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:calc(var(--spacing)*0)}.inset-y-0{inset-block:calc(var(--spacing)*0)}.-top-1{top:calc(var(--spacing)*-1)}.top-1{top:calc(var(--spacing)*1)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing)*2)}.top-4{top:calc(var(--spacing)*4)}.top-\[2px\]{top:2px}.top-\[8px\]{top:8px}.top-\[42px\]{top:42px}.top-full{top:100%}.-right-1{right:calc(var(--spacing)*-1)}.right-0{right:calc(var(--spacing)*0)}.right-2{right:calc(var(--spacing)*2)}.right-4{right:calc(var(--spacing)*4)}.right-12{right:calc(var(--spacing)*12)}.right-\[8px\]{right:8px}.right-\[42px\]{right:42px}.bottom-0{bottom:calc(var(--spacing)*0)}.bottom-1{bottom:calc(var(--spacing)*1)}.bottom-2{bottom:calc(var(--spacing)*2)}.bottom-4{bottom:calc(var(--spacing)*4)}.bottom-6{bottom:calc(var(--spacing)*6)}.bottom-\[8px\]{bottom:8px}.bottom-\[42px\]{bottom:42px}.left-0{left:calc(var(--spacing)*0)}.left-1{left:calc(var(--spacing)*1)}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing)*2)}.left-2\.5{left:calc(var(--spacing)*2.5)}.left-3{left:calc(var(--spacing)*3)}.left-4{left:calc(var(--spacing)*4)}.left-7{left:calc(var(--spacing)*7)}.left-12{left:calc(var(--spacing)*12)}.left-\[2px\]{left:2px}.left-\[8px\]{left:8px}.left-\[42px\]{left:42px}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-60,.z-\[60\]{z-index:60}.col-span-1{grid-column:span 1/span 1}.col-span-2{grid-column:span 2/span 2}.col-span-4{grid-column:span 4/span 4}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.m-3{margin:calc(var(--spacing)*3)}.m-auto{margin:auto}.mx-1{margin-inline:calc(var(--spacing)*1)}.mx-2{margin-inline:calc(var(--spacing)*2)}.mx-4{margin-inline:calc(var(--spacing)*4)}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing)*1)}.my-8{margin-block:calc(var(--spacing)*8)}.-mt-2{margin-top:calc(var(--spacing)*-2)}.-mt-\[50px\]{margin-top:-50px}.mt-0\.5{margin-top:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-6{margin-top:calc(var(--spacing)*6)}.mr-1{margin-right:calc(var(--spacing)*1)}.mr-3{margin-right:calc(var(--spacing)*3)}.mr-4{margin-right:calc(var(--spacing)*4)}.-mb-px{margin-bottom:-1px}.mb-0\.5{margin-bottom:calc(var(--spacing)*.5)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-1\.5{margin-bottom:calc(var(--spacing)*1.5)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-2\.5{margin-bottom:calc(var(--spacing)*2.5)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-3\.5{margin-bottom:calc(var(--spacing)*3.5)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.mb-8{margin-bottom:calc(var(--spacing)*8)}.-ml-1{margin-left:calc(var(--spacing)*-1)}.ml-0\.5{margin-left:calc(var(--spacing)*.5)}.ml-1\.5{margin-left:calc(var(--spacing)*1.5)}.ml-2{margin-left:calc(var(--spacing)*2)}.ml-8{margin-left:calc(var(--spacing)*8)}.ml-16{margin-left:calc(var(--spacing)*16)}.ml-64{margin-left:calc(var(--spacing)*64)}.ml-auto{margin-left:auto}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.aspect-square{aspect-ratio:1}.aspect-video{aspect-ratio:var(--aspect-video)}.h-1{height:calc(var(--spacing)*1)}.h-1\.5{height:calc(var(--spacing)*1.5)}.h-2{height:calc(var(--spacing)*2)}.h-2\.5{height:calc(var(--spacing)*2.5)}.h-3{height:calc(var(--spacing)*3)}.h-3\.5{height:calc(var(--spacing)*3.5)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-8{height:calc(var(--spacing)*8)}.h-10{height:calc(var(--spacing)*10)}.h-12{height:calc(var(--spacing)*12)}.h-16{height:calc(var(--spacing)*16)}.h-20{height:calc(var(--spacing)*20)}.h-28{height:calc(var(--spacing)*28)}.h-64{height:calc(var(--spacing)*64)}.h-\[25px\]{height:25px}.h-\[30px\]{height:30px}.h-\[35px\]{height:35px}.h-\[40px\]{height:40px}.h-\[50px\]{height:50px}.h-\[70px\]{height:70px}.h-\[80vh\]{height:80vh}.h-\[120px\]{height:120px}.h-\[160px\]{height:160px}.h-\[220px\]{height:220px}.h-full{height:100%}.h-screen{height:100vh}.max-h-40{max-height:calc(var(--spacing)*40)}.max-h-60{max-height:calc(var(--spacing)*60)}.max-h-96{max-height:calc(var(--spacing)*96)}.max-h-\[60vh\]{max-height:60vh}.max-h-\[80vh\]{max-height:80vh}.max-h-\[85vh\]{max-height:85vh}.max-h-\[90vh\]{max-height:90vh}.max-h-full{max-height:100%}.min-h-0{min-height:calc(var(--spacing)*0)}.min-h-\[44px\]{min-height:44px}.min-h-\[48px\]{min-height:48px}.min-h-\[120px\]{min-height:120px}.min-h-\[400px\]{min-height:400px}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.w-0\.5{width:calc(var(--spacing)*.5)}.w-2{width:calc(var(--spacing)*2)}.w-2\.5{width:calc(var(--spacing)*2.5)}.w-3{width:calc(var(--spacing)*3)}.w-3\.5{width:calc(var(--spacing)*3.5)}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-6{width:calc(var(--spacing)*6)}.w-8{width:calc(var(--spacing)*8)}.w-9{width:calc(var(--spacing)*9)}.w-10{width:calc(var(--spacing)*10)}.w-11{width:calc(var(--spacing)*11)}.w-12{width:calc(var(--spacing)*12)}.w-16{width:calc(var(--spacing)*16)}.w-20{width:calc(var(--spacing)*20)}.w-28{width:calc(var(--spacing)*28)}.w-32{width:calc(var(--spacing)*32)}.w-36{width:calc(var(--spacing)*36)}.w-40{width:calc(var(--spacing)*40)}.w-48{width:calc(var(--spacing)*48)}.w-64{width:calc(var(--spacing)*64)}.w-80{width:calc(var(--spacing)*80)}.w-\[25px\]{width:25px}.w-\[30px\]{width:30px}.w-\[35px\]{width:35px}.w-\[40px\]{width:40px}.w-\[50px\]{width:50px}.w-\[220px\]{width:220px}.w-\[680px\]{width:680px}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-px{width:1px}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-\[90vw\]{max-width:90vw}.max-w-\[100px\]{max-width:100px}.max-w-\[200px\]{max-width:200px}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-none{max-width:none}.max-w-sm{max-width:var(--container-sm)}.max-w-xl{max-width:var(--container-xl)}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-48{min-width:calc(var(--spacing)*48)}.min-w-\[18px\]{min-width:18px}.min-w-\[70px\]{min-width:70px}.min-w-\[80px\]{min-width:80px}.min-w-\[100px\]{min-width:100px}.min-w-\[120px\]{min-width:120px}.min-w-\[150px\]{min-width:150px}.min-w-\[160px\]{min-width:160px}.min-w-\[180px\]{min-width:180px}.min-w-\[200px\]{min-width:200px}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-0{--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-1{--tw-translate-x:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-4{--tw-translate-x:calc(var(--spacing)*4);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-7{--tw-translate-x:calc(var(--spacing)*7);translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.scale-110{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x)var(--tw-scale-y)}.-rotate-90{rotate:-90deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.resize-none{resize:none}.\[appearance\:textfield\]{appearance:textfield}.appearance-none{appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-evenly{justify-content:space-evenly}.gap-0\.5{gap:calc(var(--spacing)*.5)}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-2\.5{gap:calc(var(--spacing)*2.5)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-5{gap:calc(var(--spacing)*5)}.gap-6{gap:calc(var(--spacing)*6)}.gap-8{gap:calc(var(--spacing)*8)}:where(.space-y-0>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*0)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*0)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*8)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*8)*calc(1 - var(--tw-space-y-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px*var(--tw-divide-y-reverse));border-bottom-width:calc(1px*calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-bambu-dark-tertiary>:not(:last-child)){border-color:var(--color-bambu-dark-tertiary)}.self-center{align-self:center}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\[8px\]{border-radius:8px}.rounded-\[10px\]{border-radius:10px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t-xl{border-top-left-radius:var(--radius-xl);border-top-right-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-4{border-style:var(--tw-border-style);border-width:4px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-\[\#d4a84b\]{border-color:#d4a84b}.border-bambu-dark-tertiary{border-color:var(--color-bambu-dark-tertiary)}.border-bambu-gray{border-color:var(--color-bambu-gray)}.border-bambu-green{border-color:var(--color-bambu-green)}.border-bambu-green\/30{border-color:#00ae424d}@supports (color:color-mix(in lab,red,red)){.border-bambu-green\/30{border-color:color-mix(in oklab,var(--color-bambu-green)30%,transparent)}}.border-bambu-green\/50{border-color:#00ae4280}@supports (color:color-mix(in lab,red,red)){.border-bambu-green\/50{border-color:color-mix(in oklab,var(--color-bambu-green)50%,transparent)}}.border-blue-500\/30{border-color:#3080ff4d}@supports (color:color-mix(in lab,red,red)){.border-blue-500\/30{border-color:color-mix(in oklab,var(--color-blue-500)30%,transparent)}}.border-gray-700{border-color:var(--color-gray-700)}.border-green-500\/30{border-color:#00c7584d}@supports (color:color-mix(in lab,red,red)){.border-green-500\/30{border-color:color-mix(in oklab,var(--color-green-500)30%,transparent)}}.border-green-500\/50{border-color:#00c75880}@supports (color:color-mix(in lab,red,red)){.border-green-500\/50{border-color:color-mix(in oklab,var(--color-green-500)50%,transparent)}}.border-red-500\/30{border-color:#fb2c364d}@supports (color:color-mix(in lab,red,red)){.border-red-500\/30{border-color:color-mix(in oklab,var(--color-red-500)30%,transparent)}}.border-red-500\/50{border-color:#fb2c3680}@supports (color:color-mix(in lab,red,red)){.border-red-500\/50{border-color:color-mix(in oklab,var(--color-red-500)50%,transparent)}}.border-transparent{border-color:#0000}.border-white\/10{border-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.border-white\/10{border-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.border-white\/20{border-color:#fff3}@supports (color:color-mix(in lab,red,red)){.border-white\/20{border-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.border-yellow-500{border-color:var(--color-yellow-500)}.border-yellow-500\/30{border-color:#edb2004d}@supports (color:color-mix(in lab,red,red)){.border-yellow-500\/30{border-color:color-mix(in oklab,var(--color-yellow-500)30%,transparent)}}.border-yellow-500\/50{border-color:#edb20080}@supports (color:color-mix(in lab,red,red)){.border-yellow-500\/50{border-color:color-mix(in oklab,var(--color-yellow-500)50%,transparent)}}.border-t-transparent{border-top-color:#0000}.bg-amber-500\/20{background-color:#f99c0033}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/20{background-color:color-mix(in oklab,var(--color-amber-500)20%,transparent)}}.bg-bambu-dark{background-color:var(--color-bambu-dark)}.bg-bambu-dark-secondary,.bg-bambu-dark-secondary\/90{background-color:var(--color-bambu-dark-secondary)}@supports (color:color-mix(in lab,red,red)){.bg-bambu-dark-secondary\/90{background-color:color-mix(in oklab,var(--color-bambu-dark-secondary)90%,transparent)}}.bg-bambu-dark-tertiary,.bg-bambu-dark-tertiary\/50{background-color:var(--color-bambu-dark-tertiary)}@supports (color:color-mix(in lab,red,red)){.bg-bambu-dark-tertiary\/50{background-color:color-mix(in oklab,var(--color-bambu-dark-tertiary)50%,transparent)}}.bg-bambu-dark\/30{background-color:var(--color-bambu-dark)}@supports (color:color-mix(in lab,red,red)){.bg-bambu-dark\/30{background-color:color-mix(in oklab,var(--color-bambu-dark)30%,transparent)}}.bg-bambu-dark\/50{background-color:var(--color-bambu-dark)}@supports (color:color-mix(in lab,red,red)){.bg-bambu-dark\/50{background-color:color-mix(in oklab,var(--color-bambu-dark)50%,transparent)}}.bg-bambu-dark\/80{background-color:var(--color-bambu-dark)}@supports (color:color-mix(in lab,red,red)){.bg-bambu-dark\/80{background-color:color-mix(in oklab,var(--color-bambu-dark)80%,transparent)}}.bg-bambu-dark\/90{background-color:var(--color-bambu-dark)}@supports (color:color-mix(in lab,red,red)){.bg-bambu-dark\/90{background-color:color-mix(in oklab,var(--color-bambu-dark)90%,transparent)}}.bg-bambu-gray\/20{background-color:var(--color-bambu-gray)}@supports (color:color-mix(in lab,red,red)){.bg-bambu-gray\/20{background-color:color-mix(in oklab,var(--color-bambu-gray)20%,transparent)}}.bg-bambu-gray\/30{background-color:var(--color-bambu-gray)}@supports (color:color-mix(in lab,red,red)){.bg-bambu-gray\/30{background-color:color-mix(in oklab,var(--color-bambu-gray)30%,transparent)}}.bg-bambu-gray\/50{background-color:var(--color-bambu-gray)}@supports (color:color-mix(in lab,red,red)){.bg-bambu-gray\/50{background-color:color-mix(in oklab,var(--color-bambu-gray)50%,transparent)}}.bg-bambu-green{background-color:var(--color-bambu-green)}.bg-bambu-green\/10{background-color:#00ae421a}@supports (color:color-mix(in lab,red,red)){.bg-bambu-green\/10{background-color:color-mix(in oklab,var(--color-bambu-green)10%,transparent)}}.bg-bambu-green\/20{background-color:#00ae4233}@supports (color:color-mix(in lab,red,red)){.bg-bambu-green\/20{background-color:color-mix(in oklab,var(--color-bambu-green)20%,transparent)}}.bg-bambu-green\/30{background-color:#00ae424d}@supports (color:color-mix(in lab,red,red)){.bg-bambu-green\/30{background-color:color-mix(in oklab,var(--color-bambu-green)30%,transparent)}}.bg-bambu-green\/50{background-color:#00ae4280}@supports (color:color-mix(in lab,red,red)){.bg-bambu-green\/50{background-color:color-mix(in oklab,var(--color-bambu-green)50%,transparent)}}.bg-bambu-green\/75{background-color:#00ae42bf}@supports (color:color-mix(in lab,red,red)){.bg-bambu-green\/75{background-color:color-mix(in oklab,var(--color-bambu-green)75%,transparent)}}.bg-black{background-color:var(--color-black)}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black)50%,transparent)}}.bg-black\/60{background-color:#0009}@supports (color:color-mix(in lab,red,red)){.bg-black\/60{background-color:color-mix(in oklab,var(--color-black)60%,transparent)}}.bg-black\/70{background-color:#000000b3}@supports (color:color-mix(in lab,red,red)){.bg-black\/70{background-color:color-mix(in oklab,var(--color-black)70%,transparent)}}.bg-black\/80{background-color:#000c}@supports (color:color-mix(in lab,red,red)){.bg-black\/80{background-color:color-mix(in oklab,var(--color-black)80%,transparent)}}.bg-black\/90{background-color:#000000e6}@supports (color:color-mix(in lab,red,red)){.bg-black\/90{background-color:color-mix(in oklab,var(--color-black)90%,transparent)}}.bg-blue-400\/10{background-color:#54a2ff1a}@supports (color:color-mix(in lab,red,red)){.bg-blue-400\/10{background-color:color-mix(in oklab,var(--color-blue-400)10%,transparent)}}.bg-blue-500{background-color:var(--color-blue-500)}.bg-blue-500\/10{background-color:#3080ff1a}@supports (color:color-mix(in lab,red,red)){.bg-blue-500\/10{background-color:color-mix(in oklab,var(--color-blue-500)10%,transparent)}}.bg-blue-500\/20{background-color:#3080ff33}@supports (color:color-mix(in lab,red,red)){.bg-blue-500\/20{background-color:color-mix(in oklab,var(--color-blue-500)20%,transparent)}}.bg-gray-400\/10{background-color:#99a1af1a}@supports (color:color-mix(in lab,red,red)){.bg-gray-400\/10{background-color:color-mix(in oklab,var(--color-gray-400)10%,transparent)}}.bg-gray-500\/20{background-color:#6a728233}@supports (color:color-mix(in lab,red,red)){.bg-gray-500\/20{background-color:color-mix(in oklab,var(--color-gray-500)20%,transparent)}}.bg-green-400{background-color:var(--color-green-400)}.bg-green-400\/10{background-color:#05df721a}@supports (color:color-mix(in lab,red,red)){.bg-green-400\/10{background-color:color-mix(in oklab,var(--color-green-400)10%,transparent)}}.bg-green-500{background-color:var(--color-green-500)}.bg-green-500\/10{background-color:#00c7581a}@supports (color:color-mix(in lab,red,red)){.bg-green-500\/10{background-color:color-mix(in oklab,var(--color-green-500)10%,transparent)}}.bg-green-500\/20{background-color:#00c75833}@supports (color:color-mix(in lab,red,red)){.bg-green-500\/20{background-color:color-mix(in oklab,var(--color-green-500)20%,transparent)}}.bg-orange-400\/10{background-color:#ff8b1a1a}@supports (color:color-mix(in lab,red,red)){.bg-orange-400\/10{background-color:color-mix(in oklab,var(--color-orange-400)10%,transparent)}}.bg-orange-500{background-color:var(--color-orange-500)}.bg-orange-500\/20{background-color:#fe6e0033}@supports (color:color-mix(in lab,red,red)){.bg-orange-500\/20{background-color:color-mix(in oklab,var(--color-orange-500)20%,transparent)}}.bg-purple-500\/20{background-color:#ac4bff33}@supports (color:color-mix(in lab,red,red)){.bg-purple-500\/20{background-color:color-mix(in oklab,var(--color-purple-500)20%,transparent)}}.bg-purple-500\/80{background-color:#ac4bffcc}@supports (color:color-mix(in lab,red,red)){.bg-purple-500\/80{background-color:color-mix(in oklab,var(--color-purple-500)80%,transparent)}}.bg-red-400{background-color:var(--color-red-400)}.bg-red-400\/10{background-color:#ff65681a}@supports (color:color-mix(in lab,red,red)){.bg-red-400\/10{background-color:color-mix(in oklab,var(--color-red-400)10%,transparent)}}.bg-red-500{background-color:var(--color-red-500)}.bg-red-500\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/10{background-color:color-mix(in oklab,var(--color-red-500)10%,transparent)}}.bg-red-500\/15{background-color:#fb2c3626}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/15{background-color:color-mix(in oklab,var(--color-red-500)15%,transparent)}}.bg-red-500\/20{background-color:#fb2c3633}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/20{background-color:color-mix(in oklab,var(--color-red-500)20%,transparent)}}.bg-red-500\/30{background-color:#fb2c364d}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/30{background-color:color-mix(in oklab,var(--color-red-500)30%,transparent)}}.bg-red-500\/80{background-color:#fb2c36cc}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/80{background-color:color-mix(in oklab,var(--color-red-500)80%,transparent)}}.bg-red-600{background-color:var(--color-red-600)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-yellow-400{background-color:var(--color-yellow-400)}.bg-yellow-400\/10{background-color:#fac8001a}@supports (color:color-mix(in lab,red,red)){.bg-yellow-400\/10{background-color:color-mix(in oklab,var(--color-yellow-400)10%,transparent)}}.bg-yellow-400\/20{background-color:#fac80033}@supports (color:color-mix(in lab,red,red)){.bg-yellow-400\/20{background-color:color-mix(in oklab,var(--color-yellow-400)20%,transparent)}}.bg-yellow-500{background-color:var(--color-yellow-500)}.bg-yellow-500\/10{background-color:#edb2001a}@supports (color:color-mix(in lab,red,red)){.bg-yellow-500\/10{background-color:color-mix(in oklab,var(--color-yellow-500)10%,transparent)}}.bg-yellow-500\/20{background-color:#edb20033}@supports (color:color-mix(in lab,red,red)){.bg-yellow-500\/20{background-color:color-mix(in oklab,var(--color-yellow-500)20%,transparent)}}.fill-yellow-400{fill:var(--color-yellow-400)}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.object-left{object-position:left}.p-0{padding:calc(var(--spacing)*0)}.p-1{padding:calc(var(--spacing)*1)}.p-1\.5{padding:calc(var(--spacing)*1.5)}.p-2{padding:calc(var(--spacing)*2)}.p-2\.5{padding:calc(var(--spacing)*2.5)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.p-8{padding:calc(var(--spacing)*8)}.p-12{padding:calc(var(--spacing)*12)}.px-1{padding-inline:calc(var(--spacing)*1)}.px-1\.5{padding-inline:calc(var(--spacing)*1.5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-2\.5{padding-inline:calc(var(--spacing)*2.5)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-3\.5{padding-inline:calc(var(--spacing)*3.5)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-5{padding-inline:calc(var(--spacing)*5)}.px-6{padding-inline:calc(var(--spacing)*6)}.px-7{padding-inline:calc(var(--spacing)*7)}.px-\[18px\]{padding-inline:18px}.py-0\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-2\.5{padding-block:calc(var(--spacing)*2.5)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-8{padding-block:calc(var(--spacing)*8)}.py-12{padding-block:calc(var(--spacing)*12)}.py-\[3px\]{padding-block:3px}.pt-0{padding-top:calc(var(--spacing)*0)}.pt-0\.5{padding-top:calc(var(--spacing)*.5)}.pt-2{padding-top:calc(var(--spacing)*2)}.pt-3{padding-top:calc(var(--spacing)*3)}.pt-4{padding-top:calc(var(--spacing)*4)}.pr-3{padding-right:calc(var(--spacing)*3)}.pr-4{padding-right:calc(var(--spacing)*4)}.pr-5{padding-right:calc(var(--spacing)*5)}.pr-8{padding-right:calc(var(--spacing)*8)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pb-4{padding-bottom:calc(var(--spacing)*4)}.pb-\[5px\]{padding-bottom:5px}.pl-4{padding-left:calc(var(--spacing)*4)}.pl-8{padding-left:calc(var(--spacing)*8)}.pl-10{padding-left:calc(var(--spacing)*10)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.text-amber-400{color:var(--color-amber-400)}.text-bambu-dark-tertiary{color:var(--color-bambu-dark-tertiary)}.text-bambu-gray{color:var(--color-bambu-gray)}.text-bambu-gray-light{color:var(--color-bambu-gray-light)}.text-bambu-gray\/30{color:var(--color-bambu-gray)}@supports (color:color-mix(in lab,red,red)){.text-bambu-gray\/30{color:color-mix(in oklab,var(--color-bambu-gray)30%,transparent)}}.text-bambu-gray\/50{color:var(--color-bambu-gray)}@supports (color:color-mix(in lab,red,red)){.text-bambu-gray\/50{color:color-mix(in oklab,var(--color-bambu-gray)50%,transparent)}}.text-bambu-gray\/70{color:var(--color-bambu-gray)}@supports (color:color-mix(in lab,red,red)){.text-bambu-gray\/70{color:color-mix(in oklab,var(--color-bambu-gray)70%,transparent)}}.text-bambu-green{color:var(--color-bambu-green)}.text-blue-400{color:var(--color-blue-400)}.text-gray-400{color:var(--color-gray-400)}.text-gray-800{color:var(--color-gray-800)}.text-green-400{color:var(--color-green-400)}.text-green-500{color:var(--color-green-500)}.text-orange-400{color:var(--color-orange-400)}.text-purple-400{color:var(--color-purple-400)}.text-red-400{color:var(--color-red-400)}.text-red-500{color:var(--color-red-500)}.text-white{color:var(--color-white)}.text-white\/80{color:#fffc}@supports (color:color-mix(in lab,red,red)){.text-white\/80{color:color-mix(in oklab,var(--color-white)80%,transparent)}}.text-yellow-400{color:var(--color-yellow-400)}.text-yellow-500{color:var(--color-yellow-500)}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.placeholder-bambu-gray::placeholder,.placeholder-bambu-gray\/50::placeholder{color:var(--color-bambu-gray)}@supports (color:color-mix(in lab,red,red)){.placeholder-bambu-gray\/50::placeholder{color:color-mix(in oklab,var(--color-bambu-gray)50%,transparent)}}.accent-bambu-green{accent-color:var(--color-bambu-green)}.opacity-0{opacity:0}.opacity-20{opacity:.2}.opacity-30{opacity:.3}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-80{opacity:.8}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring,.ring-1{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-bambu-green{--tw-ring-color:var(--color-bambu-green)}.ring-white{--tw-ring-color:var(--color-white)}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.drop-shadow-sm{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#00000026));--tw-drop-shadow:drop-shadow(var(--drop-shadow-sm));filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}@media(hover:hover){.group-hover\:text-bambu-green:is(:where(.group):hover *){color:var(--color-bambu-green)}.group-hover\:opacity-50:is(:where(.group):hover *){opacity:.5}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.peer-checked\:bg-bambu-green:is(:where(.peer):checked~*){background-color:var(--color-bambu-green)}.peer-focus\:outline-none:is(:where(.peer):focus~*){--tw-outline-style:none;outline-style:none}.before\:absolute:before{content:var(--tw-content);position:absolute}.before\:top-0:before{content:var(--tw-content);top:calc(var(--spacing)*0)}.before\:right-0:before{content:var(--tw-content);right:calc(var(--spacing)*0)}.before\:left-0:before{content:var(--tw-content);left:calc(var(--spacing)*0)}.before\:h-0\.5:before{content:var(--tw-content);height:calc(var(--spacing)*.5)}.before\:bg-bambu-green:before{content:var(--tw-content);background-color:var(--color-bambu-green)}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:top-\[2px\]:after{content:var(--tw-content);top:2px}.after\:left-\[2px\]:after{content:var(--tw-content);left:2px}.after\:h-4:after{content:var(--tw-content);height:calc(var(--spacing)*4)}.after\:h-5:after{content:var(--tw-content);height:calc(var(--spacing)*5)}.after\:w-4:after{content:var(--tw-content);width:calc(var(--spacing)*4)}.after\:w-5:after{content:var(--tw-content);width:calc(var(--spacing)*5)}.after\:rounded-full:after{content:var(--tw-content);border-radius:3.40282e38px}.after\:bg-white:after{content:var(--tw-content);background-color:var(--color-white)}.after\:transition-all:after{content:var(--tw-content);transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.after\:content-\[\'\'\]:after{--tw-content:"";content:var(--tw-content)}.peer-checked\:after\:translate-x-full:is(:where(.peer):checked~*):after{content:var(--tw-content);--tw-translate-x:100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.peer-checked\:after\:border-white:is(:where(.peer):checked~*):after{content:var(--tw-content);border-color:var(--color-white)}@media(hover:hover){.hover\:border-bambu-gray:hover{border-color:var(--color-bambu-gray)}.hover\:border-bambu-green:hover{border-color:var(--color-bambu-green)}.hover\:border-white\/40:hover{border-color:#fff6}@supports (color:color-mix(in lab,red,red)){.hover\:border-white\/40:hover{border-color:color-mix(in oklab,var(--color-white)40%,transparent)}}.hover\:bg-bambu-dark:hover{background-color:var(--color-bambu-dark)}.hover\:bg-bambu-dark-secondary:hover{background-color:var(--color-bambu-dark-secondary)}.hover\:bg-bambu-dark-tertiary:hover,.hover\:bg-bambu-dark-tertiary\/30:hover{background-color:var(--color-bambu-dark-tertiary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-bambu-dark-tertiary\/30:hover{background-color:color-mix(in oklab,var(--color-bambu-dark-tertiary)30%,transparent)}}.hover\:bg-bambu-dark-tertiary\/50:hover{background-color:var(--color-bambu-dark-tertiary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-bambu-dark-tertiary\/50:hover{background-color:color-mix(in oklab,var(--color-bambu-dark-tertiary)50%,transparent)}}.hover\:bg-bambu-dark-tertiary\/70:hover{background-color:var(--color-bambu-dark-tertiary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-bambu-dark-tertiary\/70:hover{background-color:color-mix(in oklab,var(--color-bambu-dark-tertiary)70%,transparent)}}.hover\:bg-bambu-dark-tertiary\/80:hover{background-color:var(--color-bambu-dark-tertiary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-bambu-dark-tertiary\/80:hover{background-color:color-mix(in oklab,var(--color-bambu-dark-tertiary)80%,transparent)}}.hover\:bg-bambu-gray-dark:hover{background-color:var(--color-bambu-gray-dark)}.hover\:bg-bambu-green-dark:hover{background-color:var(--color-bambu-green-dark)}.hover\:bg-bambu-green-light:hover{background-color:var(--color-bambu-green-light)}.hover\:bg-bambu-green\/20:hover{background-color:#00ae4233}@supports (color:color-mix(in lab,red,red)){.hover\:bg-bambu-green\/20:hover{background-color:color-mix(in oklab,var(--color-bambu-green)20%,transparent)}}.hover\:bg-bambu-green\/30:hover{background-color:#00ae424d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-bambu-green\/30:hover{background-color:color-mix(in oklab,var(--color-bambu-green)30%,transparent)}}.hover\:bg-bambu-green\/90:hover{background-color:#00ae42e6}@supports (color:color-mix(in lab,red,red)){.hover\:bg-bambu-green\/90:hover{background-color:color-mix(in oklab,var(--color-bambu-green)90%,transparent)}}.hover\:bg-black\/70:hover{background-color:#000000b3}@supports (color:color-mix(in lab,red,red)){.hover\:bg-black\/70:hover{background-color:color-mix(in oklab,var(--color-black)70%,transparent)}}.hover\:bg-black\/80:hover{background-color:#000c}@supports (color:color-mix(in lab,red,red)){.hover\:bg-black\/80:hover{background-color:color-mix(in oklab,var(--color-black)80%,transparent)}}.hover\:bg-gray-700:hover{background-color:var(--color-gray-700)}.hover\:bg-red-400\/10:hover{background-color:#ff65681a}@supports (color:color-mix(in lab,red,red)){.hover\:bg-red-400\/10:hover{background-color:color-mix(in oklab,var(--color-red-400)10%,transparent)}}.hover\:bg-red-500:hover{background-color:var(--color-red-500)}.hover\:bg-red-500\/10:hover{background-color:#fb2c361a}@supports (color:color-mix(in lab,red,red)){.hover\:bg-red-500\/10:hover{background-color:color-mix(in oklab,var(--color-red-500)10%,transparent)}}.hover\:bg-red-500\/30:hover{background-color:#fb2c364d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-red-500\/30:hover{background-color:color-mix(in oklab,var(--color-red-500)30%,transparent)}}.hover\:bg-red-600:hover{background-color:var(--color-red-600)}.hover\:bg-red-700:hover{background-color:var(--color-red-700)}.hover\:bg-white:hover{background-color:var(--color-white)}.hover\:bg-yellow-500\/30:hover{background-color:#edb2004d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-yellow-500\/30:hover{background-color:color-mix(in oklab,var(--color-yellow-500)30%,transparent)}}.hover\:bg-yellow-600:hover{background-color:var(--color-yellow-600)}.hover\:text-bambu-green:hover{color:var(--color-bambu-green)}.hover\:text-bambu-green\/80:hover{color:#00ae42cc}@supports (color:color-mix(in lab,red,red)){.hover\:text-bambu-green\/80:hover{color:color-mix(in oklab,var(--color-bambu-green)80%,transparent)}}.hover\:text-red-300:hover{color:var(--color-red-300)}.hover\:text-red-400:hover{color:var(--color-red-400)}.hover\:text-white:hover{color:var(--color-white)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-10:hover{opacity:.1}.hover\:opacity-70:hover{opacity:.7}.hover\:opacity-80:hover{opacity:.8}}.focus\:border-bambu-green:focus{border-color:var(--color-bambu-green)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-bambu-gray:focus{--tw-ring-color:var(--color-bambu-gray)}.focus\:ring-bambu-green:focus{--tw-ring-color:var(--color-bambu-green)}.focus\:ring-red-500:focus{--tw-ring-color:var(--color-red-500)}.focus\:ring-offset-0:focus{--tw-ring-offset-width:0px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus\:ring-offset-bambu-dark:focus{--tw-ring-offset-color:var(--color-bambu-dark)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.active\:cursor-grabbing:active{cursor:grabbing}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-50:disabled{opacity:.5}@media(hover:hover){.disabled\:hover\:bg-bambu-dark-secondary:disabled:hover{background-color:var(--color-bambu-dark-secondary)}.disabled\:hover\:text-bambu-gray:disabled:hover{color:var(--color-bambu-gray)}}@media(min-width:40rem){.sm\:inline{display:inline}.sm\:h-4{height:calc(var(--spacing)*4)}.sm\:w-4{width:calc(var(--spacing)*4)}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:p-1\.5{padding:calc(var(--spacing)*1.5)}}@media(min-width:48rem){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}}@media(min-width:64rem){.lg\:w-80{width:calc(var(--spacing)*80)}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}}@media(min-width:80rem){.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.\[\&\:\:-moz-range-thumb\]\:h-4::-moz-range-thumb{height:calc(var(--spacing)*4)}.\[\&\:\:-moz-range-thumb\]\:w-4::-moz-range-thumb{width:calc(var(--spacing)*4)}.\[\&\:\:-moz-range-thumb\]\:cursor-pointer::-moz-range-thumb{cursor:pointer}.\[\&\:\:-moz-range-thumb\]\:rounded-full::-moz-range-thumb{border-radius:3.40282e38px}.\[\&\:\:-moz-range-thumb\]\:border-0::-moz-range-thumb{border-style:var(--tw-border-style);border-width:0}.\[\&\:\:-moz-range-thumb\]\:bg-bambu-green::-moz-range-thumb{background-color:var(--color-bambu-green)}.\[\&\:\:-webkit-slider-thumb\]\:h-3::-webkit-slider-thumb{height:calc(var(--spacing)*3)}.\[\&\:\:-webkit-slider-thumb\]\:h-4::-webkit-slider-thumb{height:calc(var(--spacing)*4)}.\[\&\:\:-webkit-slider-thumb\]\:w-3::-webkit-slider-thumb{width:calc(var(--spacing)*3)}.\[\&\:\:-webkit-slider-thumb\]\:w-4::-webkit-slider-thumb{width:calc(var(--spacing)*4)}.\[\&\:\:-webkit-slider-thumb\]\:cursor-pointer::-webkit-slider-thumb{cursor:pointer}.\[\&\:\:-webkit-slider-thumb\]\:appearance-none::-webkit-slider-thumb{appearance:none}.\[\&\:\:-webkit-slider-thumb\]\:rounded-full::-webkit-slider-thumb{border-radius:3.40282e38px}.\[\&\:\:-webkit-slider-thumb\]\:bg-bambu-green::-webkit-slider-thumb{background-color:var(--color-bambu-green)}}:root{--bg-primary:#f5f5f5;--bg-secondary:#fff;--bg-tertiary:#e5e5e5;--text-primary:#1a1a1a;--text-secondary:#4a4a4a;--text-muted:#6b6b6b;--text-tertiary:gray;--border-color:#d4d4d4;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,system-ui,sans-serif;font-weight:400;line-height:1.5}.dark{--bg-primary:#1a1a1a;--bg-secondary:#2d2d2d;--bg-tertiary:#3d3d3d;--text-primary:#fff;--text-secondary:#a0a0a0;--text-muted:gray;--text-tertiary:#4a4a4a;--border-color:#3d3d3d}body{background-color:var(--bg-primary);color:var(--text-primary);min-height:100vh;margin:0;transition:background-color .2s,color .2s}#root{min-height:100vh}.text-white{color:var(--text-primary)}.bg-bambu-dark,.bg-bambu-dark-secondary,.bg-bambu-dark-tertiary,.border-bambu-dark-tertiary{transition:background-color .2s,border-color .2s}@keyframes slide-in{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.animate-slide-in{animation:.2s ease-out slide-in}.icon-theme{opacity:.5}.dark .icon-theme{filter:invert();opacity:.4}.icon-green{filter:invert(48%)sepia(89%)saturate(459%)hue-rotate(93deg)brightness(95%)contrast(92%);opacity:1}.icon-heating{filter:invert(50%)sepia()saturate(1000%)hue-rotate(360deg)brightness()contrast();opacity:1}.dark .jogpad-theme{filter:brightness(.7)contrast(1.1)}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:""}}} diff --git a/static/assets/index-DyjgQh1m.css b/static/assets/index-DyjgQh1m.css new file mode 100644 index 000000000..dd97cb11c --- /dev/null +++ b/static/assets/index-DyjgQh1m.css @@ -0,0 +1 @@ +@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";@layer properties,theme,base,components,utilities;@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-orange-400:oklch(75% .183 55.934);--color-orange-500:oklch(70.5% .213 47.604);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-yellow-400:oklch(85.2% .199 91.936);--color-yellow-500:oklch(79.5% .184 86.047);--color-yellow-600:oklch(68.1% .162 75.834);--color-yellow-700:oklch(55.4% .135 66.442);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-purple-400:oklch(71.4% .203 305.504);--color-purple-500:oklch(62.7% .265 303.9);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--tracking-widest:.1em;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--drop-shadow-sm:0 1px 2px #00000026;--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--blur-sm:8px;--aspect-video:16/9;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-bambu-green:#00ae42;--color-bambu-green-light:#00c64d;--color-bambu-green-dark:#009438;--color-bambu-dark:var(--bg-primary);--color-bambu-dark-secondary:var(--bg-secondary);--color-bambu-dark-tertiary:var(--bg-tertiary);--color-bambu-gray:var(--text-muted);--color-bambu-gray-light:var(--text-secondary);--color-bambu-gray-dark:var(--text-tertiary)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer utilities{.pointer-events-none{pointer-events:none}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:calc(var(--spacing)*0)}.inset-y-0{inset-block:calc(var(--spacing)*0)}.-top-1{top:calc(var(--spacing)*-1)}.top-0\.5{top:calc(var(--spacing)*.5)}.top-1{top:calc(var(--spacing)*1)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing)*2)}.top-4{top:calc(var(--spacing)*4)}.top-\[2px\]{top:2px}.top-\[8px\]{top:8px}.top-\[42px\]{top:42px}.top-full{top:100%}.-right-1{right:calc(var(--spacing)*-1)}.right-0{right:calc(var(--spacing)*0)}.right-2{right:calc(var(--spacing)*2)}.right-4{right:calc(var(--spacing)*4)}.right-12{right:calc(var(--spacing)*12)}.right-\[8px\]{right:8px}.right-\[42px\]{right:42px}.bottom-0{bottom:calc(var(--spacing)*0)}.bottom-1{bottom:calc(var(--spacing)*1)}.bottom-2{bottom:calc(var(--spacing)*2)}.bottom-4{bottom:calc(var(--spacing)*4)}.bottom-6{bottom:calc(var(--spacing)*6)}.bottom-\[8px\]{bottom:8px}.bottom-\[42px\]{bottom:42px}.left-0{left:calc(var(--spacing)*0)}.left-1{left:calc(var(--spacing)*1)}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing)*2)}.left-2\.5{left:calc(var(--spacing)*2.5)}.left-3{left:calc(var(--spacing)*3)}.left-4{left:calc(var(--spacing)*4)}.left-7{left:calc(var(--spacing)*7)}.left-12{left:calc(var(--spacing)*12)}.left-\[2px\]{left:2px}.left-\[8px\]{left:8px}.left-\[42px\]{left:42px}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-60,.z-\[60\]{z-index:60}.col-span-1{grid-column:span 1/span 1}.col-span-2{grid-column:span 2/span 2}.col-span-4{grid-column:span 4/span 4}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.m-3{margin:calc(var(--spacing)*3)}.m-4{margin:calc(var(--spacing)*4)}.m-auto{margin:auto}.mx-1{margin-inline:calc(var(--spacing)*1)}.mx-2{margin-inline:calc(var(--spacing)*2)}.mx-4{margin-inline:calc(var(--spacing)*4)}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing)*1)}.my-8{margin-block:calc(var(--spacing)*8)}.-mt-2{margin-top:calc(var(--spacing)*-2)}.-mt-\[50px\]{margin-top:-50px}.mt-0\.5{margin-top:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-6{margin-top:calc(var(--spacing)*6)}.mr-1{margin-right:calc(var(--spacing)*1)}.mr-3{margin-right:calc(var(--spacing)*3)}.mr-4{margin-right:calc(var(--spacing)*4)}.-mb-px{margin-bottom:-1px}.mb-0\.5{margin-bottom:calc(var(--spacing)*.5)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-1\.5{margin-bottom:calc(var(--spacing)*1.5)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-2\.5{margin-bottom:calc(var(--spacing)*2.5)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-3\.5{margin-bottom:calc(var(--spacing)*3.5)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-5{margin-bottom:calc(var(--spacing)*5)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.mb-8{margin-bottom:calc(var(--spacing)*8)}.-ml-1{margin-left:calc(var(--spacing)*-1)}.ml-0\.5{margin-left:calc(var(--spacing)*.5)}.ml-1\.5{margin-left:calc(var(--spacing)*1.5)}.ml-2{margin-left:calc(var(--spacing)*2)}.ml-8{margin-left:calc(var(--spacing)*8)}.ml-16{margin-left:calc(var(--spacing)*16)}.ml-64{margin-left:calc(var(--spacing)*64)}.ml-auto{margin-left:auto}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.aspect-square{aspect-ratio:1}.aspect-video{aspect-ratio:var(--aspect-video)}.h-1{height:calc(var(--spacing)*1)}.h-1\.5{height:calc(var(--spacing)*1.5)}.h-2{height:calc(var(--spacing)*2)}.h-2\.5{height:calc(var(--spacing)*2.5)}.h-3{height:calc(var(--spacing)*3)}.h-3\.5{height:calc(var(--spacing)*3.5)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-10{height:calc(var(--spacing)*10)}.h-12{height:calc(var(--spacing)*12)}.h-16{height:calc(var(--spacing)*16)}.h-20{height:calc(var(--spacing)*20)}.h-28{height:calc(var(--spacing)*28)}.h-64{height:calc(var(--spacing)*64)}.h-\[25px\]{height:25px}.h-\[30px\]{height:30px}.h-\[35px\]{height:35px}.h-\[40px\]{height:40px}.h-\[50px\]{height:50px}.h-\[70px\]{height:70px}.h-\[80vh\]{height:80vh}.h-\[120px\]{height:120px}.h-\[160px\]{height:160px}.h-\[220px\]{height:220px}.h-full{height:100%}.h-screen{height:100vh}.max-h-40{max-height:calc(var(--spacing)*40)}.max-h-60{max-height:calc(var(--spacing)*60)}.max-h-96{max-height:calc(var(--spacing)*96)}.max-h-\[60vh\]{max-height:60vh}.max-h-\[80vh\]{max-height:80vh}.max-h-\[85vh\]{max-height:85vh}.max-h-\[90vh\]{max-height:90vh}.max-h-full{max-height:100%}.min-h-0{min-height:calc(var(--spacing)*0)}.min-h-\[44px\]{min-height:44px}.min-h-\[48px\]{min-height:48px}.min-h-\[120px\]{min-height:120px}.min-h-\[400px\]{min-height:400px}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.w-0\.5{width:calc(var(--spacing)*.5)}.w-2{width:calc(var(--spacing)*2)}.w-2\.5{width:calc(var(--spacing)*2.5)}.w-3{width:calc(var(--spacing)*3)}.w-3\.5{width:calc(var(--spacing)*3.5)}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-6{width:calc(var(--spacing)*6)}.w-8{width:calc(var(--spacing)*8)}.w-9{width:calc(var(--spacing)*9)}.w-10{width:calc(var(--spacing)*10)}.w-11{width:calc(var(--spacing)*11)}.w-12{width:calc(var(--spacing)*12)}.w-16{width:calc(var(--spacing)*16)}.w-20{width:calc(var(--spacing)*20)}.w-28{width:calc(var(--spacing)*28)}.w-32{width:calc(var(--spacing)*32)}.w-36{width:calc(var(--spacing)*36)}.w-40{width:calc(var(--spacing)*40)}.w-48{width:calc(var(--spacing)*48)}.w-64{width:calc(var(--spacing)*64)}.w-80{width:calc(var(--spacing)*80)}.w-\[25px\]{width:25px}.w-\[30px\]{width:30px}.w-\[35px\]{width:35px}.w-\[40px\]{width:40px}.w-\[50px\]{width:50px}.w-\[220px\]{width:220px}.w-\[680px\]{width:680px}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-px{width:1px}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-\[90vw\]{max-width:90vw}.max-w-\[100px\]{max-width:100px}.max-w-\[200px\]{max-width:200px}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-none{max-width:none}.max-w-sm{max-width:var(--container-sm)}.max-w-xl{max-width:var(--container-xl)}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-48{min-width:calc(var(--spacing)*48)}.min-w-\[18px\]{min-width:18px}.min-w-\[70px\]{min-width:70px}.min-w-\[80px\]{min-width:80px}.min-w-\[100px\]{min-width:100px}.min-w-\[120px\]{min-width:120px}.min-w-\[150px\]{min-width:150px}.min-w-\[160px\]{min-width:160px}.min-w-\[180px\]{min-width:180px}.min-w-\[200px\]{min-width:200px}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-0{--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-0\.5{--tw-translate-x:calc(var(--spacing)*.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-1{--tw-translate-x:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-4{--tw-translate-x:calc(var(--spacing)*4);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-5{--tw-translate-x:calc(var(--spacing)*5);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-7{--tw-translate-x:calc(var(--spacing)*7);translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.scale-110{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x)var(--tw-scale-y)}.-rotate-90{rotate:-90deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.resize-none{resize:none}.\[appearance\:textfield\]{appearance:textfield}.appearance-none{appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-evenly{justify-content:space-evenly}.gap-0\.5{gap:calc(var(--spacing)*.5)}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-2\.5{gap:calc(var(--spacing)*2.5)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-5{gap:calc(var(--spacing)*5)}.gap-6{gap:calc(var(--spacing)*6)}.gap-8{gap:calc(var(--spacing)*8)}:where(.space-y-0>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*0)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*0)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*8)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*8)*calc(1 - var(--tw-space-y-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px*var(--tw-divide-y-reverse));border-bottom-width:calc(1px*calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-bambu-dark-tertiary>:not(:last-child)){border-color:var(--color-bambu-dark-tertiary)}.self-center{align-self:center}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-\[8px\]{border-radius:8px}.rounded-\[10px\]{border-radius:10px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t-xl{border-top-left-radius:var(--radius-xl);border-top-right-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-4{border-style:var(--tw-border-style);border-width:4px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-\[\#d4a84b\]{border-color:#d4a84b}.border-bambu-dark-tertiary,.border-bambu-dark-tertiary\/50{border-color:var(--color-bambu-dark-tertiary)}@supports (color:color-mix(in lab,red,red)){.border-bambu-dark-tertiary\/50{border-color:color-mix(in oklab,var(--color-bambu-dark-tertiary)50%,transparent)}}.border-bambu-gray{border-color:var(--color-bambu-gray)}.border-bambu-green{border-color:var(--color-bambu-green)}.border-bambu-green\/30{border-color:#00ae424d}@supports (color:color-mix(in lab,red,red)){.border-bambu-green\/30{border-color:color-mix(in oklab,var(--color-bambu-green)30%,transparent)}}.border-bambu-green\/50{border-color:#00ae4280}@supports (color:color-mix(in lab,red,red)){.border-bambu-green\/50{border-color:color-mix(in oklab,var(--color-bambu-green)50%,transparent)}}.border-blue-500\/30{border-color:#3080ff4d}@supports (color:color-mix(in lab,red,red)){.border-blue-500\/30{border-color:color-mix(in oklab,var(--color-blue-500)30%,transparent)}}.border-gray-700{border-color:var(--color-gray-700)}.border-green-500\/30{border-color:#00c7584d}@supports (color:color-mix(in lab,red,red)){.border-green-500\/30{border-color:color-mix(in oklab,var(--color-green-500)30%,transparent)}}.border-green-500\/50{border-color:#00c75880}@supports (color:color-mix(in lab,red,red)){.border-green-500\/50{border-color:color-mix(in oklab,var(--color-green-500)50%,transparent)}}.border-red-500\/30{border-color:#fb2c364d}@supports (color:color-mix(in lab,red,red)){.border-red-500\/30{border-color:color-mix(in oklab,var(--color-red-500)30%,transparent)}}.border-red-500\/50{border-color:#fb2c3680}@supports (color:color-mix(in lab,red,red)){.border-red-500\/50{border-color:color-mix(in oklab,var(--color-red-500)50%,transparent)}}.border-transparent{border-color:#0000}.border-white\/10{border-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.border-white\/10{border-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.border-white\/20{border-color:#fff3}@supports (color:color-mix(in lab,red,red)){.border-white\/20{border-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.border-yellow-500{border-color:var(--color-yellow-500)}.border-yellow-500\/30{border-color:#edb2004d}@supports (color:color-mix(in lab,red,red)){.border-yellow-500\/30{border-color:color-mix(in oklab,var(--color-yellow-500)30%,transparent)}}.border-yellow-500\/50{border-color:#edb20080}@supports (color:color-mix(in lab,red,red)){.border-yellow-500\/50{border-color:color-mix(in oklab,var(--color-yellow-500)50%,transparent)}}.border-t-transparent{border-top-color:#0000}.bg-amber-500\/20{background-color:#f99c0033}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/20{background-color:color-mix(in oklab,var(--color-amber-500)20%,transparent)}}.bg-bambu-dark{background-color:var(--color-bambu-dark)}.bg-bambu-dark-secondary,.bg-bambu-dark-secondary\/90{background-color:var(--color-bambu-dark-secondary)}@supports (color:color-mix(in lab,red,red)){.bg-bambu-dark-secondary\/90{background-color:color-mix(in oklab,var(--color-bambu-dark-secondary)90%,transparent)}}.bg-bambu-dark-tertiary,.bg-bambu-dark-tertiary\/50{background-color:var(--color-bambu-dark-tertiary)}@supports (color:color-mix(in lab,red,red)){.bg-bambu-dark-tertiary\/50{background-color:color-mix(in oklab,var(--color-bambu-dark-tertiary)50%,transparent)}}.bg-bambu-dark\/30{background-color:var(--color-bambu-dark)}@supports (color:color-mix(in lab,red,red)){.bg-bambu-dark\/30{background-color:color-mix(in oklab,var(--color-bambu-dark)30%,transparent)}}.bg-bambu-dark\/50{background-color:var(--color-bambu-dark)}@supports (color:color-mix(in lab,red,red)){.bg-bambu-dark\/50{background-color:color-mix(in oklab,var(--color-bambu-dark)50%,transparent)}}.bg-bambu-dark\/80{background-color:var(--color-bambu-dark)}@supports (color:color-mix(in lab,red,red)){.bg-bambu-dark\/80{background-color:color-mix(in oklab,var(--color-bambu-dark)80%,transparent)}}.bg-bambu-dark\/90{background-color:var(--color-bambu-dark)}@supports (color:color-mix(in lab,red,red)){.bg-bambu-dark\/90{background-color:color-mix(in oklab,var(--color-bambu-dark)90%,transparent)}}.bg-bambu-gray\/20{background-color:var(--color-bambu-gray)}@supports (color:color-mix(in lab,red,red)){.bg-bambu-gray\/20{background-color:color-mix(in oklab,var(--color-bambu-gray)20%,transparent)}}.bg-bambu-gray\/30{background-color:var(--color-bambu-gray)}@supports (color:color-mix(in lab,red,red)){.bg-bambu-gray\/30{background-color:color-mix(in oklab,var(--color-bambu-gray)30%,transparent)}}.bg-bambu-gray\/50{background-color:var(--color-bambu-gray)}@supports (color:color-mix(in lab,red,red)){.bg-bambu-gray\/50{background-color:color-mix(in oklab,var(--color-bambu-gray)50%,transparent)}}.bg-bambu-green{background-color:var(--color-bambu-green)}.bg-bambu-green\/10{background-color:#00ae421a}@supports (color:color-mix(in lab,red,red)){.bg-bambu-green\/10{background-color:color-mix(in oklab,var(--color-bambu-green)10%,transparent)}}.bg-bambu-green\/20{background-color:#00ae4233}@supports (color:color-mix(in lab,red,red)){.bg-bambu-green\/20{background-color:color-mix(in oklab,var(--color-bambu-green)20%,transparent)}}.bg-bambu-green\/30{background-color:#00ae424d}@supports (color:color-mix(in lab,red,red)){.bg-bambu-green\/30{background-color:color-mix(in oklab,var(--color-bambu-green)30%,transparent)}}.bg-bambu-green\/50{background-color:#00ae4280}@supports (color:color-mix(in lab,red,red)){.bg-bambu-green\/50{background-color:color-mix(in oklab,var(--color-bambu-green)50%,transparent)}}.bg-bambu-green\/75{background-color:#00ae42bf}@supports (color:color-mix(in lab,red,red)){.bg-bambu-green\/75{background-color:color-mix(in oklab,var(--color-bambu-green)75%,transparent)}}.bg-black{background-color:var(--color-black)}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black)50%,transparent)}}.bg-black\/60{background-color:#0009}@supports (color:color-mix(in lab,red,red)){.bg-black\/60{background-color:color-mix(in oklab,var(--color-black)60%,transparent)}}.bg-black\/70{background-color:#000000b3}@supports (color:color-mix(in lab,red,red)){.bg-black\/70{background-color:color-mix(in oklab,var(--color-black)70%,transparent)}}.bg-black\/80{background-color:#000c}@supports (color:color-mix(in lab,red,red)){.bg-black\/80{background-color:color-mix(in oklab,var(--color-black)80%,transparent)}}.bg-black\/90{background-color:#000000e6}@supports (color:color-mix(in lab,red,red)){.bg-black\/90{background-color:color-mix(in oklab,var(--color-black)90%,transparent)}}.bg-blue-400\/10{background-color:#54a2ff1a}@supports (color:color-mix(in lab,red,red)){.bg-blue-400\/10{background-color:color-mix(in oklab,var(--color-blue-400)10%,transparent)}}.bg-blue-500{background-color:var(--color-blue-500)}.bg-blue-500\/10{background-color:#3080ff1a}@supports (color:color-mix(in lab,red,red)){.bg-blue-500\/10{background-color:color-mix(in oklab,var(--color-blue-500)10%,transparent)}}.bg-blue-500\/20{background-color:#3080ff33}@supports (color:color-mix(in lab,red,red)){.bg-blue-500\/20{background-color:color-mix(in oklab,var(--color-blue-500)20%,transparent)}}.bg-gray-400\/10{background-color:#99a1af1a}@supports (color:color-mix(in lab,red,red)){.bg-gray-400\/10{background-color:color-mix(in oklab,var(--color-gray-400)10%,transparent)}}.bg-gray-500\/20{background-color:#6a728233}@supports (color:color-mix(in lab,red,red)){.bg-gray-500\/20{background-color:color-mix(in oklab,var(--color-gray-500)20%,transparent)}}.bg-green-400{background-color:var(--color-green-400)}.bg-green-400\/10{background-color:#05df721a}@supports (color:color-mix(in lab,red,red)){.bg-green-400\/10{background-color:color-mix(in oklab,var(--color-green-400)10%,transparent)}}.bg-green-500{background-color:var(--color-green-500)}.bg-green-500\/10{background-color:#00c7581a}@supports (color:color-mix(in lab,red,red)){.bg-green-500\/10{background-color:color-mix(in oklab,var(--color-green-500)10%,transparent)}}.bg-green-500\/20{background-color:#00c75833}@supports (color:color-mix(in lab,red,red)){.bg-green-500\/20{background-color:color-mix(in oklab,var(--color-green-500)20%,transparent)}}.bg-orange-400\/10{background-color:#ff8b1a1a}@supports (color:color-mix(in lab,red,red)){.bg-orange-400\/10{background-color:color-mix(in oklab,var(--color-orange-400)10%,transparent)}}.bg-orange-500{background-color:var(--color-orange-500)}.bg-orange-500\/20{background-color:#fe6e0033}@supports (color:color-mix(in lab,red,red)){.bg-orange-500\/20{background-color:color-mix(in oklab,var(--color-orange-500)20%,transparent)}}.bg-purple-500\/20{background-color:#ac4bff33}@supports (color:color-mix(in lab,red,red)){.bg-purple-500\/20{background-color:color-mix(in oklab,var(--color-purple-500)20%,transparent)}}.bg-purple-500\/80{background-color:#ac4bffcc}@supports (color:color-mix(in lab,red,red)){.bg-purple-500\/80{background-color:color-mix(in oklab,var(--color-purple-500)80%,transparent)}}.bg-red-400{background-color:var(--color-red-400)}.bg-red-400\/10{background-color:#ff65681a}@supports (color:color-mix(in lab,red,red)){.bg-red-400\/10{background-color:color-mix(in oklab,var(--color-red-400)10%,transparent)}}.bg-red-500{background-color:var(--color-red-500)}.bg-red-500\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/10{background-color:color-mix(in oklab,var(--color-red-500)10%,transparent)}}.bg-red-500\/15{background-color:#fb2c3626}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/15{background-color:color-mix(in oklab,var(--color-red-500)15%,transparent)}}.bg-red-500\/20{background-color:#fb2c3633}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/20{background-color:color-mix(in oklab,var(--color-red-500)20%,transparent)}}.bg-red-500\/30{background-color:#fb2c364d}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/30{background-color:color-mix(in oklab,var(--color-red-500)30%,transparent)}}.bg-red-500\/80{background-color:#fb2c36cc}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/80{background-color:color-mix(in oklab,var(--color-red-500)80%,transparent)}}.bg-red-600{background-color:var(--color-red-600)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-yellow-400{background-color:var(--color-yellow-400)}.bg-yellow-400\/10{background-color:#fac8001a}@supports (color:color-mix(in lab,red,red)){.bg-yellow-400\/10{background-color:color-mix(in oklab,var(--color-yellow-400)10%,transparent)}}.bg-yellow-400\/20{background-color:#fac80033}@supports (color:color-mix(in lab,red,red)){.bg-yellow-400\/20{background-color:color-mix(in oklab,var(--color-yellow-400)20%,transparent)}}.bg-yellow-500{background-color:var(--color-yellow-500)}.bg-yellow-500\/10{background-color:#edb2001a}@supports (color:color-mix(in lab,red,red)){.bg-yellow-500\/10{background-color:color-mix(in oklab,var(--color-yellow-500)10%,transparent)}}.bg-yellow-500\/20{background-color:#edb20033}@supports (color:color-mix(in lab,red,red)){.bg-yellow-500\/20{background-color:color-mix(in oklab,var(--color-yellow-500)20%,transparent)}}.bg-yellow-600{background-color:var(--color-yellow-600)}.fill-yellow-400{fill:var(--color-yellow-400)}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.object-left{object-position:left}.p-0{padding:calc(var(--spacing)*0)}.p-1{padding:calc(var(--spacing)*1)}.p-1\.5{padding:calc(var(--spacing)*1.5)}.p-2{padding:calc(var(--spacing)*2)}.p-2\.5{padding:calc(var(--spacing)*2.5)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-5{padding:calc(var(--spacing)*5)}.p-6{padding:calc(var(--spacing)*6)}.p-8{padding:calc(var(--spacing)*8)}.p-12{padding:calc(var(--spacing)*12)}.px-1{padding-inline:calc(var(--spacing)*1)}.px-1\.5{padding-inline:calc(var(--spacing)*1.5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-2\.5{padding-inline:calc(var(--spacing)*2.5)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-3\.5{padding-inline:calc(var(--spacing)*3.5)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-5{padding-inline:calc(var(--spacing)*5)}.px-6{padding-inline:calc(var(--spacing)*6)}.px-7{padding-inline:calc(var(--spacing)*7)}.px-\[18px\]{padding-inline:18px}.py-0\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-2\.5{padding-block:calc(var(--spacing)*2.5)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-8{padding-block:calc(var(--spacing)*8)}.py-12{padding-block:calc(var(--spacing)*12)}.py-\[3px\]{padding-block:3px}.pt-0{padding-top:calc(var(--spacing)*0)}.pt-0\.5{padding-top:calc(var(--spacing)*.5)}.pt-2{padding-top:calc(var(--spacing)*2)}.pt-3{padding-top:calc(var(--spacing)*3)}.pt-4{padding-top:calc(var(--spacing)*4)}.pr-3{padding-right:calc(var(--spacing)*3)}.pr-4{padding-right:calc(var(--spacing)*4)}.pr-5{padding-right:calc(var(--spacing)*5)}.pr-8{padding-right:calc(var(--spacing)*8)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pb-4{padding-bottom:calc(var(--spacing)*4)}.pb-\[5px\]{padding-bottom:5px}.pl-4{padding-left:calc(var(--spacing)*4)}.pl-8{padding-left:calc(var(--spacing)*8)}.pl-10{padding-left:calc(var(--spacing)*10)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.text-amber-400{color:var(--color-amber-400)}.text-bambu-dark-tertiary{color:var(--color-bambu-dark-tertiary)}.text-bambu-gray{color:var(--color-bambu-gray)}.text-bambu-gray-light{color:var(--color-bambu-gray-light)}.text-bambu-gray\/30{color:var(--color-bambu-gray)}@supports (color:color-mix(in lab,red,red)){.text-bambu-gray\/30{color:color-mix(in oklab,var(--color-bambu-gray)30%,transparent)}}.text-bambu-gray\/50{color:var(--color-bambu-gray)}@supports (color:color-mix(in lab,red,red)){.text-bambu-gray\/50{color:color-mix(in oklab,var(--color-bambu-gray)50%,transparent)}}.text-bambu-gray\/70{color:var(--color-bambu-gray)}@supports (color:color-mix(in lab,red,red)){.text-bambu-gray\/70{color:color-mix(in oklab,var(--color-bambu-gray)70%,transparent)}}.text-bambu-green{color:var(--color-bambu-green)}.text-blue-400{color:var(--color-blue-400)}.text-gray-400{color:var(--color-gray-400)}.text-gray-800{color:var(--color-gray-800)}.text-green-400{color:var(--color-green-400)}.text-green-500{color:var(--color-green-500)}.text-orange-400{color:var(--color-orange-400)}.text-purple-400{color:var(--color-purple-400)}.text-red-400{color:var(--color-red-400)}.text-red-500{color:var(--color-red-500)}.text-white{color:var(--color-white)}.text-white\/80{color:#fffc}@supports (color:color-mix(in lab,red,red)){.text-white\/80{color:color-mix(in oklab,var(--color-white)80%,transparent)}}.text-yellow-400{color:var(--color-yellow-400)}.text-yellow-500{color:var(--color-yellow-500)}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.placeholder-bambu-gray::placeholder,.placeholder-bambu-gray\/50::placeholder{color:var(--color-bambu-gray)}@supports (color:color-mix(in lab,red,red)){.placeholder-bambu-gray\/50::placeholder{color:color-mix(in oklab,var(--color-bambu-gray)50%,transparent)}}.accent-bambu-green{accent-color:var(--color-bambu-green)}.opacity-0{opacity:0}.opacity-20{opacity:.2}.opacity-30{opacity:.3}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-80{opacity:.8}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-inner{--tw-shadow:inset 0 2px 4px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring,.ring-1{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-bambu-green{--tw-ring-color:var(--color-bambu-green)}.ring-white{--tw-ring-color:var(--color-white)}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.drop-shadow-sm{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#00000026));--tw-drop-shadow:drop-shadow(var(--drop-shadow-sm));filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}@media(hover:hover){.group-hover\:text-bambu-green:is(:where(.group):hover *){color:var(--color-bambu-green)}.group-hover\:opacity-50:is(:where(.group):hover *){opacity:.5}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.peer-checked\:bg-bambu-green:is(:where(.peer):checked~*){background-color:var(--color-bambu-green)}.peer-focus\:outline-none:is(:where(.peer):focus~*){--tw-outline-style:none;outline-style:none}.before\:absolute:before{content:var(--tw-content);position:absolute}.before\:top-0:before{content:var(--tw-content);top:calc(var(--spacing)*0)}.before\:right-0:before{content:var(--tw-content);right:calc(var(--spacing)*0)}.before\:left-0:before{content:var(--tw-content);left:calc(var(--spacing)*0)}.before\:h-0\.5:before{content:var(--tw-content);height:calc(var(--spacing)*.5)}.before\:bg-bambu-green:before{content:var(--tw-content);background-color:var(--color-bambu-green)}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:top-\[2px\]:after{content:var(--tw-content);top:2px}.after\:left-\[2px\]:after{content:var(--tw-content);left:2px}.after\:h-4:after{content:var(--tw-content);height:calc(var(--spacing)*4)}.after\:h-5:after{content:var(--tw-content);height:calc(var(--spacing)*5)}.after\:w-4:after{content:var(--tw-content);width:calc(var(--spacing)*4)}.after\:w-5:after{content:var(--tw-content);width:calc(var(--spacing)*5)}.after\:rounded-full:after{content:var(--tw-content);border-radius:3.40282e38px}.after\:bg-white:after{content:var(--tw-content);background-color:var(--color-white)}.after\:transition-all:after{content:var(--tw-content);transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.after\:content-\[\'\'\]:after{--tw-content:"";content:var(--tw-content)}.peer-checked\:after\:translate-x-full:is(:where(.peer):checked~*):after{content:var(--tw-content);--tw-translate-x:100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.peer-checked\:after\:border-white:is(:where(.peer):checked~*):after{content:var(--tw-content);border-color:var(--color-white)}@media(hover:hover){.hover\:border-bambu-gray:hover{border-color:var(--color-bambu-gray)}.hover\:border-bambu-green:hover{border-color:var(--color-bambu-green)}.hover\:border-white\/40:hover{border-color:#fff6}@supports (color:color-mix(in lab,red,red)){.hover\:border-white\/40:hover{border-color:color-mix(in oklab,var(--color-white)40%,transparent)}}.hover\:bg-bambu-dark:hover{background-color:var(--color-bambu-dark)}.hover\:bg-bambu-dark-secondary:hover{background-color:var(--color-bambu-dark-secondary)}.hover\:bg-bambu-dark-tertiary:hover,.hover\:bg-bambu-dark-tertiary\/30:hover{background-color:var(--color-bambu-dark-tertiary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-bambu-dark-tertiary\/30:hover{background-color:color-mix(in oklab,var(--color-bambu-dark-tertiary)30%,transparent)}}.hover\:bg-bambu-dark-tertiary\/50:hover{background-color:var(--color-bambu-dark-tertiary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-bambu-dark-tertiary\/50:hover{background-color:color-mix(in oklab,var(--color-bambu-dark-tertiary)50%,transparent)}}.hover\:bg-bambu-dark-tertiary\/70:hover{background-color:var(--color-bambu-dark-tertiary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-bambu-dark-tertiary\/70:hover{background-color:color-mix(in oklab,var(--color-bambu-dark-tertiary)70%,transparent)}}.hover\:bg-bambu-dark-tertiary\/80:hover{background-color:var(--color-bambu-dark-tertiary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-bambu-dark-tertiary\/80:hover{background-color:color-mix(in oklab,var(--color-bambu-dark-tertiary)80%,transparent)}}.hover\:bg-bambu-gray-dark:hover{background-color:var(--color-bambu-gray-dark)}.hover\:bg-bambu-green-dark:hover{background-color:var(--color-bambu-green-dark)}.hover\:bg-bambu-green-light:hover{background-color:var(--color-bambu-green-light)}.hover\:bg-bambu-green\/20:hover{background-color:#00ae4233}@supports (color:color-mix(in lab,red,red)){.hover\:bg-bambu-green\/20:hover{background-color:color-mix(in oklab,var(--color-bambu-green)20%,transparent)}}.hover\:bg-bambu-green\/30:hover{background-color:#00ae424d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-bambu-green\/30:hover{background-color:color-mix(in oklab,var(--color-bambu-green)30%,transparent)}}.hover\:bg-bambu-green\/90:hover{background-color:#00ae42e6}@supports (color:color-mix(in lab,red,red)){.hover\:bg-bambu-green\/90:hover{background-color:color-mix(in oklab,var(--color-bambu-green)90%,transparent)}}.hover\:bg-black\/70:hover{background-color:#000000b3}@supports (color:color-mix(in lab,red,red)){.hover\:bg-black\/70:hover{background-color:color-mix(in oklab,var(--color-black)70%,transparent)}}.hover\:bg-black\/80:hover{background-color:#000c}@supports (color:color-mix(in lab,red,red)){.hover\:bg-black\/80:hover{background-color:color-mix(in oklab,var(--color-black)80%,transparent)}}.hover\:bg-gray-700:hover{background-color:var(--color-gray-700)}.hover\:bg-red-400\/10:hover{background-color:#ff65681a}@supports (color:color-mix(in lab,red,red)){.hover\:bg-red-400\/10:hover{background-color:color-mix(in oklab,var(--color-red-400)10%,transparent)}}.hover\:bg-red-500:hover{background-color:var(--color-red-500)}.hover\:bg-red-500\/10:hover{background-color:#fb2c361a}@supports (color:color-mix(in lab,red,red)){.hover\:bg-red-500\/10:hover{background-color:color-mix(in oklab,var(--color-red-500)10%,transparent)}}.hover\:bg-red-500\/30:hover{background-color:#fb2c364d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-red-500\/30:hover{background-color:color-mix(in oklab,var(--color-red-500)30%,transparent)}}.hover\:bg-red-600:hover{background-color:var(--color-red-600)}.hover\:bg-red-700:hover{background-color:var(--color-red-700)}.hover\:bg-white:hover{background-color:var(--color-white)}.hover\:bg-yellow-500\/30:hover{background-color:#edb2004d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-yellow-500\/30:hover{background-color:color-mix(in oklab,var(--color-yellow-500)30%,transparent)}}.hover\:bg-yellow-600:hover{background-color:var(--color-yellow-600)}.hover\:bg-yellow-700:hover{background-color:var(--color-yellow-700)}.hover\:text-bambu-green:hover{color:var(--color-bambu-green)}.hover\:text-bambu-green\/80:hover{color:#00ae42cc}@supports (color:color-mix(in lab,red,red)){.hover\:text-bambu-green\/80:hover{color:color-mix(in oklab,var(--color-bambu-green)80%,transparent)}}.hover\:text-red-300:hover{color:var(--color-red-300)}.hover\:text-red-400:hover{color:var(--color-red-400)}.hover\:text-white:hover{color:var(--color-white)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-10:hover{opacity:.1}.hover\:opacity-70:hover{opacity:.7}.hover\:opacity-80:hover{opacity:.8}}.focus\:border-bambu-green:focus{border-color:var(--color-bambu-green)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-bambu-gray:focus{--tw-ring-color:var(--color-bambu-gray)}.focus\:ring-bambu-green:focus{--tw-ring-color:var(--color-bambu-green)}.focus\:ring-red-500:focus{--tw-ring-color:var(--color-red-500)}.focus\:ring-offset-0:focus{--tw-ring-offset-width:0px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus\:ring-offset-bambu-dark:focus{--tw-ring-offset-color:var(--color-bambu-dark)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.active\:cursor-grabbing:active{cursor:grabbing}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}@media(hover:hover){.disabled\:hover\:bg-bambu-dark-secondary:disabled:hover{background-color:var(--color-bambu-dark-secondary)}.disabled\:hover\:text-bambu-gray:disabled:hover{color:var(--color-bambu-gray)}}@media(min-width:40rem){.sm\:inline{display:inline}.sm\:h-4{height:calc(var(--spacing)*4)}.sm\:w-4{width:calc(var(--spacing)*4)}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:p-1\.5{padding:calc(var(--spacing)*1.5)}}@media(min-width:48rem){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}}@media(min-width:64rem){.lg\:w-80{width:calc(var(--spacing)*80)}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}}@media(min-width:80rem){.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.\[\&\:\:-moz-range-thumb\]\:h-4::-moz-range-thumb{height:calc(var(--spacing)*4)}.\[\&\:\:-moz-range-thumb\]\:w-4::-moz-range-thumb{width:calc(var(--spacing)*4)}.\[\&\:\:-moz-range-thumb\]\:cursor-pointer::-moz-range-thumb{cursor:pointer}.\[\&\:\:-moz-range-thumb\]\:rounded-full::-moz-range-thumb{border-radius:3.40282e38px}.\[\&\:\:-moz-range-thumb\]\:border-0::-moz-range-thumb{border-style:var(--tw-border-style);border-width:0}.\[\&\:\:-moz-range-thumb\]\:bg-bambu-green::-moz-range-thumb{background-color:var(--color-bambu-green)}.\[\&\:\:-webkit-slider-thumb\]\:h-3::-webkit-slider-thumb{height:calc(var(--spacing)*3)}.\[\&\:\:-webkit-slider-thumb\]\:h-4::-webkit-slider-thumb{height:calc(var(--spacing)*4)}.\[\&\:\:-webkit-slider-thumb\]\:w-3::-webkit-slider-thumb{width:calc(var(--spacing)*3)}.\[\&\:\:-webkit-slider-thumb\]\:w-4::-webkit-slider-thumb{width:calc(var(--spacing)*4)}.\[\&\:\:-webkit-slider-thumb\]\:cursor-pointer::-webkit-slider-thumb{cursor:pointer}.\[\&\:\:-webkit-slider-thumb\]\:appearance-none::-webkit-slider-thumb{appearance:none}.\[\&\:\:-webkit-slider-thumb\]\:rounded-full::-webkit-slider-thumb{border-radius:3.40282e38px}.\[\&\:\:-webkit-slider-thumb\]\:bg-bambu-green::-webkit-slider-thumb{background-color:var(--color-bambu-green)}}:root{--bg-primary:#f5f5f5;--bg-secondary:#fff;--bg-tertiary:#e5e5e5;--text-primary:#1a1a1a;--text-secondary:#4a4a4a;--text-muted:#6b6b6b;--text-tertiary:gray;--border-color:#d4d4d4;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,system-ui,sans-serif;font-weight:400;line-height:1.5}.dark{--bg-primary:#1a1a1a;--bg-secondary:#2d2d2d;--bg-tertiary:#3d3d3d;--text-primary:#fff;--text-secondary:#a0a0a0;--text-muted:gray;--text-tertiary:#4a4a4a;--border-color:#3d3d3d}body{background-color:var(--bg-primary);color:var(--text-primary);min-height:100vh;margin:0;transition:background-color .2s,color .2s}#root{min-height:100vh}.text-white{color:var(--text-primary)}.bg-bambu-dark,.bg-bambu-dark-secondary,.bg-bambu-dark-tertiary,.border-bambu-dark-tertiary{transition:background-color .2s,border-color .2s}@keyframes slide-in{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.animate-slide-in{animation:.2s ease-out slide-in}.icon-theme{opacity:.5}.dark .icon-theme{filter:invert();opacity:.4}.icon-green{filter:invert(48%)sepia(89%)saturate(459%)hue-rotate(93deg)brightness(95%)contrast(92%);opacity:1}.icon-heating{filter:invert(50%)sepia()saturate(1000%)hue-rotate(360deg)brightness()contrast();opacity:1}.dark .jogpad-theme{filter:brightness(.7)contrast(1.1)}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:""}}} diff --git a/static/assets/index-1LVQBXOF.js b/static/assets/index-DzdPY90c.js similarity index 64% rename from static/assets/index-1LVQBXOF.js rename to static/assets/index-DzdPY90c.js index d2d883626..198d780ad 100644 --- a/static/assets/index-1LVQBXOF.js +++ b/static/assets/index-DzdPY90c.js @@ -1,18 +1,18 @@ -function $te(t,e){for(var n=0;ni[r]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))i(r);new MutationObserver(r=>{for(const a of r)if(a.type==="childList")for(const s of a.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&i(s)}).observe(document,{childList:!0,subtree:!0});function n(r){const a={};return r.integrity&&(a.integrity=r.integrity),r.referrerPolicy&&(a.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?a.credentials="include":r.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function i(r){if(r.ep)return;r.ep=!0;const a=n(r);fetch(r.href,a)}})();var Mb=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Ys(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var vA={exports:{}},Eg={};var FU;function Gte(){if(FU)return Eg;FU=1;var t=Symbol.for("react.transitional.element"),e=Symbol.for("react.fragment");function n(i,r,a){var s=null;if(a!==void 0&&(s=""+a),r.key!==void 0&&(s=""+r.key),"key"in r){a={};for(var o in r)o!=="key"&&(a[o]=r[o])}else a=r;return r=a.ref,{$$typeof:t,type:i,key:s,ref:r!==void 0?r:null,props:a}}return Eg.Fragment=e,Eg.jsx=n,Eg.jsxs=n,Eg}var zU;function Wte(){return zU||(zU=1,vA.exports=Gte()),vA.exports}var p=Wte(),bA={exports:{}},Yt={};var BU;function qte(){if(BU)return Yt;BU=1;var t=Symbol.for("react.transitional.element"),e=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),i=Symbol.for("react.strict_mode"),r=Symbol.for("react.profiler"),a=Symbol.for("react.consumer"),s=Symbol.for("react.context"),o=Symbol.for("react.forward_ref"),l=Symbol.for("react.suspense"),c=Symbol.for("react.memo"),u=Symbol.for("react.lazy"),f=Symbol.for("react.activity"),m=Symbol.iterator;function g(B){return B===null||typeof B!="object"?null:(B=m&&B[m]||B["@@iterator"],typeof B=="function"?B:null)}var b={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},y=Object.assign,v={};function x(B,X,ae){this.props=B,this.context=X,this.refs=v,this.updater=ae||b}x.prototype.isReactComponent={},x.prototype.setState=function(B,X){if(typeof B!="object"&&typeof B!="function"&&B!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,B,X,"setState")},x.prototype.forceUpdate=function(B){this.updater.enqueueForceUpdate(this,B,"forceUpdate")};function M(){}M.prototype=x.prototype;function w(B,X,ae){this.props=B,this.context=X,this.refs=v,this.updater=ae||b}var E=w.prototype=new M;E.constructor=w,y(E,x.prototype),E.isPureReactComponent=!0;var T=Array.isArray;function R(){}var N={H:null,A:null,T:null,S:null},j=Object.prototype.hasOwnProperty;function C(B,X,ae){var ce=ae.ref;return{$$typeof:t,type:B,key:X,ref:ce!==void 0?ce:null,props:ae}}function k(B,X){return C(B.type,X,B.props)}function F(B){return typeof B=="object"&&B!==null&&B.$$typeof===t}function I(B){var X={"=":"=0",":":"=2"};return"$"+B.replace(/[=:]/g,function(ae){return X[ae]})}var q=/\/+/g;function O(B,X){return typeof B=="object"&&B!==null&&B.key!=null?I(""+B.key):X.toString(36)}function H(B){switch(B.status){case"fulfilled":return B.value;case"rejected":throw B.reason;default:switch(typeof B.status=="string"?B.then(R,R):(B.status="pending",B.then(function(X){B.status==="pending"&&(B.status="fulfilled",B.value=X)},function(X){B.status==="pending"&&(B.status="rejected",B.reason=X)})),B.status){case"fulfilled":return B.value;case"rejected":throw B.reason}}throw B}function V(B,X,ae,ce,xe){var ie=typeof B;(ie==="undefined"||ie==="boolean")&&(B=null);var ve=!1;if(B===null)ve=!0;else switch(ie){case"bigint":case"string":case"number":ve=!0;break;case"object":switch(B.$$typeof){case t:case e:ve=!0;break;case u:return ve=B._init,V(ve(B._payload),X,ae,ce,xe)}}if(ve)return xe=xe(B),ve=ce===""?"."+O(B,0):ce,T(xe)?(ae="",ve!=null&&(ae=ve.replace(q,"$&/")+"/"),V(xe,X,ae,"",function(we){return we})):xe!=null&&(F(xe)&&(xe=k(xe,ae+(xe.key==null||B&&B.key===xe.key?"":(""+xe.key).replace(q,"$&/")+"/")+ve)),X.push(xe)),1;ve=0;var Pe=ce===""?".":ce+":";if(T(B))for(var pe=0;pe>>1,se=V[Y];if(0>>1;Yr(ae,K))cer(xe,ae)?(V[Y]=xe,V[ce]=K,Y=ce):(V[Y]=ae,V[X]=K,Y=X);else if(cer(xe,K))V[Y]=xe,V[ce]=K,Y=ce;else break e}}return $}function r(V,$){var K=V.sortIndex-$.sortIndex;return K!==0?K:V.id-$.id}if(t.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var a=performance;t.unstable_now=function(){return a.now()}}else{var s=Date,o=s.now();t.unstable_now=function(){return s.now()-o}}var l=[],c=[],u=1,f=null,m=3,g=!1,b=!1,y=!1,v=!1,x=typeof setTimeout=="function"?setTimeout:null,M=typeof clearTimeout=="function"?clearTimeout:null,w=typeof setImmediate<"u"?setImmediate:null;function E(V){for(var $=n(c);$!==null;){if($.callback===null)i(c);else if($.startTime<=V)i(c),$.sortIndex=$.expirationTime,e(l,$);else break;$=n(c)}}function T(V){if(y=!1,E(V),!b)if(n(l)!==null)b=!0,R||(R=!0,I());else{var $=n(c);$!==null&&H(T,$.startTime-V)}}var R=!1,N=-1,j=5,C=-1;function k(){return v?!0:!(t.unstable_now()-CV&&k());){var Y=f.callback;if(typeof Y=="function"){f.callback=null,m=f.priorityLevel;var se=Y(f.expirationTime<=V);if(V=t.unstable_now(),typeof se=="function"){f.callback=se,E(V),$=!0;break t}f===n(l)&&i(l),E(V)}else i(l);f=n(l)}if(f!==null)$=!0;else{var B=n(c);B!==null&&H(T,B.startTime-V),$=!1}}break e}finally{f=null,m=K,g=!1}$=void 0}}finally{$?I():R=!1}}}var I;if(typeof w=="function")I=function(){w(F)};else if(typeof MessageChannel<"u"){var q=new MessageChannel,O=q.port2;q.port1.onmessage=F,I=function(){O.postMessage(null)}}else I=function(){x(F,0)};function H(V,$){N=x(function(){V(t.unstable_now())},$)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(V){V.callback=null},t.unstable_forceFrameRate=function(V){0>V||125Y?(V.sortIndex=K,e(c,V),n(l)===null&&V===n(c)&&(y?(M(N),N=-1):y=!0,H(T,K-Y))):(V.sortIndex=se,e(l,V),b||g||(b=!0,R||(R=!0,I()))),V},t.unstable_shouldYield=k,t.unstable_wrapCallback=function(V){var $=m;return function(){var K=m;m=$;try{return V.apply(this,arguments)}finally{m=K}}}})(SA)),SA}var $U;function Yte(){return $U||($U=1,_A.exports=Kte()),_A.exports}var wA={exports:{}},qr={};var GU;function Zte(){if(GU)return qr;GU=1;var t=fm();function e(l){var c="https://react.dev/errors/"+l;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(e){console.error(e)}}return t(),wA.exports=Zte(),wA.exports}var qU;function Qte(){if(qU)return Ag;qU=1;var t=Yte(),e=fm(),n=aG();function i(d){var h="https://react.dev/errors/"+d;if(1se||(d.current=Y[se],Y[se]=null,se--)}function ae(d,h){se++,Y[se]=d.current,d.current=h}var ce=B(null),xe=B(null),ie=B(null),ve=B(null);function Pe(d,h){switch(ae(ie,h),ae(xe,d),ae(ce,null),h.nodeType){case 9:case 11:d=(d=h.documentElement)&&(d=d.namespaceURI)?lU(d):0;break;default:if(d=h.tagName,h=h.namespaceURI)h=lU(h),d=cU(h,d);else switch(d){case"svg":d=1;break;case"math":d=2;break;default:d=0}}X(ce),ae(ce,d)}function pe(){X(ce),X(xe),X(ie)}function we(d){d.memoizedState!==null&&ae(ve,d);var h=ce.current,_=cU(h,d.type);h!==_&&(ae(xe,d),ae(ce,_))}function ze(d){xe.current===d&&(X(ce),X(xe)),ve.current===d&&(X(ve),_g._currentValue=K)}var ue,ht;function z(d){if(ue===void 0)try{throw Error()}catch(_){var h=_.stack.trim().match(/\n( *(at )?)/);ue=h&&h[1]||"",ht=-1<_.stack.indexOf(` +function Wte(t,e){for(var n=0;ni[r]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))i(r);new MutationObserver(r=>{for(const a of r)if(a.type==="childList")for(const s of a.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&i(s)}).observe(document,{childList:!0,subtree:!0});function n(r){const a={};return r.integrity&&(a.integrity=r.integrity),r.referrerPolicy&&(a.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?a.credentials="include":r.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function i(r){if(r.ep)return;r.ep=!0;const a=n(r);fetch(r.href,a)}})();var Mb=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Zs(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var vA={exports:{}},Eg={};var zU;function qte(){if(zU)return Eg;zU=1;var t=Symbol.for("react.transitional.element"),e=Symbol.for("react.fragment");function n(i,r,a){var s=null;if(a!==void 0&&(s=""+a),r.key!==void 0&&(s=""+r.key),"key"in r){a={};for(var o in r)o!=="key"&&(a[o]=r[o])}else a=r;return r=a.ref,{$$typeof:t,type:i,key:s,ref:r!==void 0?r:null,props:a}}return Eg.Fragment=e,Eg.jsx=n,Eg.jsxs=n,Eg}var BU;function Xte(){return BU||(BU=1,vA.exports=qte()),vA.exports}var h=Xte(),bA={exports:{}},Yt={};var HU;function Kte(){if(HU)return Yt;HU=1;var t=Symbol.for("react.transitional.element"),e=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),i=Symbol.for("react.strict_mode"),r=Symbol.for("react.profiler"),a=Symbol.for("react.consumer"),s=Symbol.for("react.context"),o=Symbol.for("react.forward_ref"),l=Symbol.for("react.suspense"),c=Symbol.for("react.memo"),u=Symbol.for("react.lazy"),f=Symbol.for("react.activity"),m=Symbol.iterator;function g(B){return B===null||typeof B!="object"?null:(B=m&&B[m]||B["@@iterator"],typeof B=="function"?B:null)}var b={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},y=Object.assign,v={};function x(B,X,ae){this.props=B,this.context=X,this.refs=v,this.updater=ae||b}x.prototype.isReactComponent={},x.prototype.setState=function(B,X){if(typeof B!="object"&&typeof B!="function"&&B!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,B,X,"setState")},x.prototype.forceUpdate=function(B){this.updater.enqueueForceUpdate(this,B,"forceUpdate")};function M(){}M.prototype=x.prototype;function w(B,X,ae){this.props=B,this.context=X,this.refs=v,this.updater=ae||b}var A=w.prototype=new M;A.constructor=w,y(A,x.prototype),A.isPureReactComponent=!0;var T=Array.isArray;function R(){}var N={H:null,A:null,T:null,S:null},j=Object.prototype.hasOwnProperty;function C(B,X,ae){var ce=ae.ref;return{$$typeof:t,type:B,key:X,ref:ce!==void 0?ce:null,props:ae}}function k(B,X){return C(B.type,X,B.props)}function F(B){return typeof B=="object"&&B!==null&&B.$$typeof===t}function I(B){var X={"=":"=0",":":"=2"};return"$"+B.replace(/[=:]/g,function(ae){return X[ae]})}var W=/\/+/g;function O(B,X){return typeof B=="object"&&B!==null&&B.key!=null?I(""+B.key):X.toString(36)}function H(B){switch(B.status){case"fulfilled":return B.value;case"rejected":throw B.reason;default:switch(typeof B.status=="string"?B.then(R,R):(B.status="pending",B.then(function(X){B.status==="pending"&&(B.status="fulfilled",B.value=X)},function(X){B.status==="pending"&&(B.status="rejected",B.reason=X)})),B.status){case"fulfilled":return B.value;case"rejected":throw B.reason}}throw B}function V(B,X,ae,ce,xe){var ee=typeof B;(ee==="undefined"||ee==="boolean")&&(B=null);var ve=!1;if(B===null)ve=!0;else switch(ee){case"bigint":case"string":case"number":ve=!0;break;case"object":switch(B.$$typeof){case t:case e:ve=!0;break;case u:return ve=B._init,V(ve(B._payload),X,ae,ce,xe)}}if(ve)return xe=xe(B),ve=ce===""?"."+O(B,0):ce,T(xe)?(ae="",ve!=null&&(ae=ve.replace(W,"$&/")+"/"),V(xe,X,ae,"",function(we){return we})):xe!=null&&(F(xe)&&(xe=k(xe,ae+(xe.key==null||B&&B.key===xe.key?"":(""+xe.key).replace(W,"$&/")+"/")+ve)),X.push(xe)),1;ve=0;var Pe=ce===""?".":ce+":";if(T(B))for(var pe=0;pe>>1,se=V[Y];if(0>>1;Yr(ae,K))cer(xe,ae)?(V[Y]=xe,V[ce]=K,Y=ce):(V[Y]=ae,V[X]=K,Y=X);else if(cer(xe,K))V[Y]=xe,V[ce]=K,Y=ce;else break e}}return $}function r(V,$){var K=V.sortIndex-$.sortIndex;return K!==0?K:V.id-$.id}if(t.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var a=performance;t.unstable_now=function(){return a.now()}}else{var s=Date,o=s.now();t.unstable_now=function(){return s.now()-o}}var l=[],c=[],u=1,f=null,m=3,g=!1,b=!1,y=!1,v=!1,x=typeof setTimeout=="function"?setTimeout:null,M=typeof clearTimeout=="function"?clearTimeout:null,w=typeof setImmediate<"u"?setImmediate:null;function A(V){for(var $=n(c);$!==null;){if($.callback===null)i(c);else if($.startTime<=V)i(c),$.sortIndex=$.expirationTime,e(l,$);else break;$=n(c)}}function T(V){if(y=!1,A(V),!b)if(n(l)!==null)b=!0,R||(R=!0,I());else{var $=n(c);$!==null&&H(T,$.startTime-V)}}var R=!1,N=-1,j=5,C=-1;function k(){return v?!0:!(t.unstable_now()-CV&&k());){var Y=f.callback;if(typeof Y=="function"){f.callback=null,m=f.priorityLevel;var se=Y(f.expirationTime<=V);if(V=t.unstable_now(),typeof se=="function"){f.callback=se,A(V),$=!0;break t}f===n(l)&&i(l),A(V)}else i(l);f=n(l)}if(f!==null)$=!0;else{var B=n(c);B!==null&&H(T,B.startTime-V),$=!1}}break e}finally{f=null,m=K,g=!1}$=void 0}}finally{$?I():R=!1}}}var I;if(typeof w=="function")I=function(){w(F)};else if(typeof MessageChannel<"u"){var W=new MessageChannel,O=W.port2;W.port1.onmessage=F,I=function(){O.postMessage(null)}}else I=function(){x(F,0)};function H(V,$){N=x(function(){V(t.unstable_now())},$)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(V){V.callback=null},t.unstable_forceFrameRate=function(V){0>V||125Y?(V.sortIndex=K,e(c,V),n(l)===null&&V===n(c)&&(y?(M(N),N=-1):y=!0,H(T,K-Y))):(V.sortIndex=se,e(l,V),b||g||(b=!0,R||(R=!0,I()))),V},t.unstable_shouldYield=k,t.unstable_wrapCallback=function(V){var $=m;return function(){var K=m;m=$;try{return V.apply(this,arguments)}finally{m=K}}}})(SA)),SA}var GU;function Qte(){return GU||(GU=1,_A.exports=Zte()),_A.exports}var wA={exports:{}},qr={};var WU;function Jte(){if(WU)return qr;WU=1;var t=fm();function e(l){var c="https://react.dev/errors/"+l;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(e){console.error(e)}}return t(),wA.exports=Jte(),wA.exports}var XU;function ene(){if(XU)return Ag;XU=1;var t=Qte(),e=fm(),n=sG();function i(d){var p="https://react.dev/errors/"+d;if(1se||(d.current=Y[se],Y[se]=null,se--)}function ae(d,p){se++,Y[se]=d.current,d.current=p}var ce=B(null),xe=B(null),ee=B(null),ve=B(null);function Pe(d,p){switch(ae(ee,p),ae(xe,d),ae(ce,null),p.nodeType){case 9:case 11:d=(d=p.documentElement)&&(d=d.namespaceURI)?cU(d):0;break;default:if(d=p.tagName,p=p.namespaceURI)p=cU(p),d=uU(p,d);else switch(d){case"svg":d=1;break;case"math":d=2;break;default:d=0}}X(ce),ae(ce,d)}function pe(){X(ce),X(xe),X(ee)}function we(d){d.memoizedState!==null&&ae(ve,d);var p=ce.current,_=uU(p,d.type);p!==_&&(ae(xe,d),ae(ce,_))}function ze(d){xe.current===d&&(X(ce),X(xe)),ve.current===d&&(X(ve),_g._currentValue=K)}var ue,ht;function z(d){if(ue===void 0)try{throw Error()}catch(_){var p=_.stack.trim().match(/\n( *(at )?)/);ue=p&&p[1]||"",ht=-1<_.stack.indexOf(` at`)?" ()":-1<_.stack.indexOf("@")?"@unknown:0:0":""}return` -`+ue+d+ht}var W=!1;function re(d,h){if(!d||W)return"";W=!0;var _=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var S={DetermineComponentFrameRoot:function(){try{if(h){var st=function(){throw Error()};if(Object.defineProperty(st.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(st,[])}catch(Ye){var Ve=Ye}Reflect.construct(d,[],st)}else{try{st.call()}catch(Ye){Ve=Ye}d.call(st.prototype)}}else{try{throw Error()}catch(Ye){Ve=Ye}(st=d())&&typeof st.catch=="function"&&st.catch(function(){})}}catch(Ye){if(Ye&&Ve&&typeof Ye.stack=="string")return[Ye.stack,Ve.stack]}return[null,null]}};S.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var P=Object.getOwnPropertyDescriptor(S.DetermineComponentFrameRoot,"name");P&&P.configurable&&Object.defineProperty(S.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var D=S.DetermineComponentFrameRoot(),G=D[0],ne=D[1];if(G&&ne){var _e=G.split(` -`),Fe=ne.split(` +`+ue+d+ht}var q=!1;function re(d,p){if(!d||q)return"";q=!0;var _=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var S={DetermineComponentFrameRoot:function(){try{if(p){var ot=function(){throw Error()};if(Object.defineProperty(ot.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(ot,[])}catch(Ye){var $e=Ye}Reflect.construct(d,[],ot)}else{try{ot.call()}catch(Ye){$e=Ye}d.call(ot.prototype)}}else{try{throw Error()}catch(Ye){$e=Ye}(ot=d())&&typeof ot.catch=="function"&&ot.catch(function(){})}}catch(Ye){if(Ye&&$e&&typeof Ye.stack=="string")return[Ye.stack,$e.stack]}return[null,null]}};S.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var P=Object.getOwnPropertyDescriptor(S.DetermineComponentFrameRoot,"name");P&&P.configurable&&Object.defineProperty(S.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var D=S.DetermineComponentFrameRoot(),G=D[0],ie=D[1];if(G&&ie){var _e=G.split(` +`),Fe=ie.split(` `);for(P=S=0;S<_e.length&&!_e[S].includes("DetermineComponentFrameRoot");)S++;for(;PP||_e[S]!==Fe[P]){var Je=` -`+_e[S].replace(" at new "," at ");return d.displayName&&Je.includes("")&&(Je=Je.replace("",d.displayName)),Je}while(1<=S&&0<=P);break}}}finally{W=!1,Error.prepareStackTrace=_}return(_=d?d.displayName||d.name:"")?z(_):""}function J(d,h){switch(d.tag){case 26:case 27:case 5:return z(d.type);case 16:return z("Lazy");case 13:return d.child!==h&&h!==null?z("Suspense Fallback"):z("Suspense");case 19:return z("SuspenseList");case 0:case 15:return re(d.type,!1);case 11:return re(d.type.render,!1);case 1:return re(d.type,!0);case 31:return z("Activity");default:return""}}function ee(d){try{var h="",_=null;do h+=J(d,_),_=d,d=d.return;while(d);return h}catch(S){return` +`+_e[S].replace(" at new "," at ");return d.displayName&&Je.includes("")&&(Je=Je.replace("",d.displayName)),Je}while(1<=S&&0<=P);break}}}finally{q=!1,Error.prepareStackTrace=_}return(_=d?d.displayName||d.name:"")?z(_):""}function J(d,p){switch(d.tag){case 26:case 27:case 5:return z(d.type);case 16:return z("Lazy");case 13:return d.child!==p&&p!==null?z("Suspense Fallback"):z("Suspense");case 19:return z("SuspenseList");case 0:case 15:return re(d.type,!1);case 11:return re(d.type.render,!1);case 1:return re(d.type,!0);case 31:return z("Activity");default:return""}}function te(d){try{var p="",_=null;do p+=J(d,_),_=d,d=d.return;while(d);return p}catch(S){return` Error generating stack: `+S.message+` -`+S.stack}}var oe=Object.prototype.hasOwnProperty,ke=t.unstable_scheduleCallback,Ne=t.unstable_cancelCallback,te=t.unstable_shouldYield,U=t.unstable_requestPaint,L=t.unstable_now,Z=t.unstable_getCurrentPriorityLevel,me=t.unstable_ImmediatePriority,be=t.unstable_UserBlockingPriority,he=t.unstable_NormalPriority,Ze=t.unstable_LowPriority,Le=t.unstable_IdlePriority,Xe=t.log,at=t.unstable_setDisableYieldValue,Ie=null,Re=null;function pt(d){if(typeof Xe=="function"&&at(d),Re&&typeof Re.setStrictMode=="function")try{Re.setStrictMode(Ie,d)}catch{}}var tt=Math.clz32?Math.clz32:de,et=Math.log,ut=Math.LN2;function de(d){return d>>>=0,d===0?32:31-(et(d)/ut|0)|0}var nt=256,fe=262144,Oe=4194304;function Me(d){var h=d&42;if(h!==0)return h;switch(d&-d){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return d&261888;case 262144:case 524288:case 1048576:case 2097152:return d&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return d&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return d}}function ge(d,h,_){var S=d.pendingLanes;if(S===0)return 0;var P=0,D=d.suspendedLanes,G=d.pingedLanes;d=d.warmLanes;var ne=S&134217727;return ne!==0?(S=ne&~D,S!==0?P=Me(S):(G&=ne,G!==0?P=Me(G):_||(_=ne&~d,_!==0&&(P=Me(_))))):(ne=S&~D,ne!==0?P=Me(ne):G!==0?P=Me(G):_||(_=S&~d,_!==0&&(P=Me(_)))),P===0?0:h!==0&&h!==P&&(h&D)===0&&(D=P&-P,_=h&-h,D>=_||D===32&&(_&4194048)!==0)?h:P}function Be(d,h){return(d.pendingLanes&~(d.suspendedLanes&~d.pingedLanes)&h)===0}function ct(d,h){switch(d){case 1:case 2:case 4:case 8:case 64:return h+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return h+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function yt(){var d=Oe;return Oe<<=1,(Oe&62914560)===0&&(Oe=4194304),d}function Rt(d){for(var h=[],_=0;31>_;_++)h.push(d);return h}function ln(d,h){d.pendingLanes|=h,h!==268435456&&(d.suspendedLanes=0,d.pingedLanes=0,d.warmLanes=0)}function Dt(d,h,_,S,P,D){var G=d.pendingLanes;d.pendingLanes=_,d.suspendedLanes=0,d.pingedLanes=0,d.warmLanes=0,d.expiredLanes&=_,d.entangledLanes&=_,d.errorRecoveryDisabledLanes&=_,d.shellSuspendCounter=0;var ne=d.entanglements,_e=d.expirationTimes,Fe=d.hiddenUpdates;for(_=G&~_;0<_;){var Je=31-tt(_),st=1<"u")return null;try{return d.activeElement||d.body}catch{return d.body}}var Ti=/[\n"\\]/g;function Nn(d){return d.replace(Ti,function(h){return"\\"+h.charCodeAt(0).toString(16)+" "})}function Js(d,h,_,S,P,D,G,ne){d.name="",G!=null&&typeof G!="function"&&typeof G!="symbol"&&typeof G!="boolean"?d.type=G:d.removeAttribute("type"),h!=null?G==="number"?(h===0&&d.value===""||d.value!=h)&&(d.value=""+un(h)):d.value!==""+un(h)&&(d.value=""+un(h)):G!=="submit"&&G!=="reset"||d.removeAttribute("value"),h!=null?gr(d,G,un(h)):_!=null?gr(d,G,un(_)):S!=null&&d.removeAttribute("value"),P==null&&D!=null&&(d.defaultChecked=!!D),P!=null&&(d.checked=P&&typeof P!="function"&&typeof P!="symbol"),ne!=null&&typeof ne!="function"&&typeof ne!="symbol"&&typeof ne!="boolean"?d.name=""+un(ne):d.removeAttribute("name")}function Pn(d,h,_,S,P,D,G,ne){if(D!=null&&typeof D!="function"&&typeof D!="symbol"&&typeof D!="boolean"&&(d.type=D),h!=null||_!=null){if(!(D!=="submit"&&D!=="reset"||h!=null)){Kt(d);return}_=_!=null?""+un(_):"",h=h!=null?""+un(h):_,ne||h===d.value||(d.value=h),d.defaultValue=h}S=S??P,S=typeof S!="function"&&typeof S!="symbol"&&!!S,d.checked=ne?d.checked:!!S,d.defaultChecked=!!S,G!=null&&typeof G!="function"&&typeof G!="symbol"&&typeof G!="boolean"&&(d.name=G),Kt(d)}function gr(d,h,_){h==="number"&&bi(d.ownerDocument)===d||d.defaultValue===""+_||(d.defaultValue=""+_)}function Qi(d,h,_,S){if(d=d.options,h){h={};for(var P=0;P<_.length;P++)h["$"+_[P]]=!0;for(_=0;_"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),vM=!1;if(ul)try{var Fm={};Object.defineProperty(Fm,"passive",{get:function(){vM=!0}}),window.addEventListener("test",Fm,Fm),window.removeEventListener("test",Fm,Fm)}catch{vM=!1}var Dc=null,bM=null,gv=null;function cL(){if(gv)return gv;var d,h=bM,_=h.length,S,P="value"in Dc?Dc.value:Dc.textContent,D=P.length;for(d=0;d<_&&h[d]===P[d];d++);var G=_-d;for(S=1;S<=G&&h[_-S]===P[D-S];S++);return gv=P.slice(d,1=Hm),mL=" ",gL=!1;function xL(d,h){switch(d){case"keyup":return fee.indexOf(h.keyCode)!==-1;case"keydown":return h.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function vL(d){return d=d.detail,typeof d=="object"&&"data"in d?d.data:null}var Kf=!1;function pee(d,h){switch(d){case"compositionend":return vL(h);case"keypress":return h.which!==32?null:(gL=!0,mL);case"textInput":return d=h.data,d===mL&&gL?null:d;default:return null}}function mee(d,h){if(Kf)return d==="compositionend"||!MM&&xL(d,h)?(d=cL(),gv=bM=Dc=null,Kf=!1,d):null;switch(d){case"paste":return null;case"keypress":if(!(h.ctrlKey||h.altKey||h.metaKey)||h.ctrlKey&&h.altKey){if(h.char&&1=h)return{node:_,offset:h-d};d=S}e:{for(;_;){if(_.nextSibling){_=_.nextSibling;break e}_=_.parentNode}_=void 0}_=AL(_)}}function CL(d,h){return d&&h?d===h?!0:d&&d.nodeType===3?!1:h&&h.nodeType===3?CL(d,h.parentNode):"contains"in d?d.contains(h):d.compareDocumentPosition?!!(d.compareDocumentPosition(h)&16):!1:!1}function NL(d){d=d!=null&&d.ownerDocument!=null&&d.ownerDocument.defaultView!=null?d.ownerDocument.defaultView:window;for(var h=bi(d.document);h instanceof d.HTMLIFrameElement;){try{var _=typeof h.contentWindow.location.href=="string"}catch{_=!1}if(_)d=h.contentWindow;else break;h=bi(d.document)}return h}function TM(d){var h=d&&d.nodeName&&d.nodeName.toLowerCase();return h&&(h==="input"&&(d.type==="text"||d.type==="search"||d.type==="tel"||d.type==="url"||d.type==="password")||h==="textarea"||d.contentEditable==="true")}var wee=ul&&"documentMode"in document&&11>=document.documentMode,Yf=null,CM=null,Wm=null,NM=!1;function RL(d,h,_){var S=_.window===_?_.document:_.nodeType===9?_:_.ownerDocument;NM||Yf==null||Yf!==bi(S)||(S=Yf,"selectionStart"in S&&TM(S)?S={start:S.selectionStart,end:S.selectionEnd}:(S=(S.ownerDocument&&S.ownerDocument.defaultView||window).getSelection(),S={anchorNode:S.anchorNode,anchorOffset:S.anchorOffset,focusNode:S.focusNode,focusOffset:S.focusOffset}),Wm&&Gm(Wm,S)||(Wm=S,S=cb(CM,"onSelect"),0>=G,P-=G,Co=1<<32-tt(h)+P|_<Jt?(xn=kt,kt=null):xn=kt.sibling;var Mn=Ve(De,kt,Ue[Jt],rt);if(Mn===null){kt===null&&(kt=xn);break}d&&kt&&Mn.alternate===null&&h(De,kt),Ee=D(Mn,Ee,Jt),wn===null?jt=Mn:wn.sibling=Mn,wn=Mn,kt=xn}if(Jt===Ue.length)return _(De,kt),bn&&fl(De,Jt),jt;if(kt===null){for(;JtJt?(xn=kt,kt=null):xn=kt.sibling;var tu=Ve(De,kt,Mn.value,rt);if(tu===null){kt===null&&(kt=xn);break}d&&kt&&tu.alternate===null&&h(De,kt),Ee=D(tu,Ee,Jt),wn===null?jt=tu:wn.sibling=tu,wn=tu,kt=xn}if(Mn.done)return _(De,kt),bn&&fl(De,Jt),jt;if(kt===null){for(;!Mn.done;Jt++,Mn=Ue.next())Mn=st(De,Mn.value,rt),Mn!==null&&(Ee=D(Mn,Ee,Jt),wn===null?jt=Mn:wn.sibling=Mn,wn=Mn);return bn&&fl(De,Jt),jt}for(kt=S(kt);!Mn.done;Jt++,Mn=Ue.next())Mn=Ye(kt,De,Jt,Mn.value,rt),Mn!==null&&(d&&Mn.alternate!==null&&kt.delete(Mn.key===null?Jt:Mn.key),Ee=D(Mn,Ee,Jt),wn===null?jt=Mn:wn.sibling=Mn,wn=Mn);return d&&kt.forEach(function(Vte){return h(De,Vte)}),bn&&fl(De,Jt),jt}function Un(De,Ee,Ue,rt){if(typeof Ue=="object"&&Ue!==null&&Ue.type===y&&Ue.key===null&&(Ue=Ue.props.children),typeof Ue=="object"&&Ue!==null){switch(Ue.$$typeof){case g:e:{for(var jt=Ue.key;Ee!==null;){if(Ee.key===jt){if(jt=Ue.type,jt===y){if(Ee.tag===7){_(De,Ee.sibling),rt=P(Ee,Ue.props.children),rt.return=De,De=rt;break e}}else if(Ee.elementType===jt||typeof jt=="object"&&jt!==null&&jt.$$typeof===j&&yd(jt)===Ee.type){_(De,Ee.sibling),rt=P(Ee,Ue.props),Qm(rt,Ue),rt.return=De,De=rt;break e}_(De,Ee);break}else h(De,Ee);Ee=Ee.sibling}Ue.type===y?(rt=md(Ue.props.children,De.mode,rt,Ue.key),rt.return=De,De=rt):(rt=Av(Ue.type,Ue.key,Ue.props,null,De.mode,rt),Qm(rt,Ue),rt.return=De,De=rt)}return G(De);case b:e:{for(jt=Ue.key;Ee!==null;){if(Ee.key===jt)if(Ee.tag===4&&Ee.stateNode.containerInfo===Ue.containerInfo&&Ee.stateNode.implementation===Ue.implementation){_(De,Ee.sibling),rt=P(Ee,Ue.children||[]),rt.return=De,De=rt;break e}else{_(De,Ee);break}else h(De,Ee);Ee=Ee.sibling}rt=IM(Ue,De.mode,rt),rt.return=De,De=rt}return G(De);case j:return Ue=yd(Ue),Un(De,Ee,Ue,rt)}if(H(Ue))return Nt(De,Ee,Ue,rt);if(I(Ue)){if(jt=I(Ue),typeof jt!="function")throw Error(i(150));return Ue=jt.call(Ue),Bt(De,Ee,Ue,rt)}if(typeof Ue.then=="function")return Un(De,Ee,Dv(Ue),rt);if(Ue.$$typeof===w)return Un(De,Ee,Nv(De,Ue),rt);Ov(De,Ue)}return typeof Ue=="string"&&Ue!==""||typeof Ue=="number"||typeof Ue=="bigint"?(Ue=""+Ue,Ee!==null&&Ee.tag===6?(_(De,Ee.sibling),rt=P(Ee,Ue),rt.return=De,De=rt):(_(De,Ee),rt=LM(Ue,De.mode,rt),rt.return=De,De=rt),G(De)):_(De,Ee)}return function(De,Ee,Ue,rt){try{Zm=0;var jt=Un(De,Ee,Ue,rt);return oh=null,jt}catch(kt){if(kt===sh||kt===Pv)throw kt;var wn=Wa(29,kt,null,De.mode);return wn.lanes=rt,wn.return=De,wn}finally{}}}var Sd=JL(!0),eI=JL(!1),Uc=!1;function XM(d){d.updateQueue={baseState:d.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function KM(d,h){d=d.updateQueue,h.updateQueue===d&&(h.updateQueue={baseState:d.baseState,firstBaseUpdate:d.firstBaseUpdate,lastBaseUpdate:d.lastBaseUpdate,shared:d.shared,callbacks:null})}function Fc(d){return{lane:d,tag:0,payload:null,callback:null,next:null}}function zc(d,h,_){var S=d.updateQueue;if(S===null)return null;if(S=S.shared,(Cn&2)!==0){var P=S.pending;return P===null?h.next=h:(h.next=P.next,P.next=h),S.pending=h,h=Ev(d),jL(d,null,_),h}return Mv(d,S,h,_),Ev(d)}function Jm(d,h,_){if(h=h.updateQueue,h!==null&&(h=h.shared,(_&4194048)!==0)){var S=h.lanes;S&=d.pendingLanes,_|=S,h.lanes=_,qn(d,_)}}function YM(d,h){var _=d.updateQueue,S=d.alternate;if(S!==null&&(S=S.updateQueue,_===S)){var P=null,D=null;if(_=_.firstBaseUpdate,_!==null){do{var G={lane:_.lane,tag:_.tag,payload:_.payload,callback:null,next:null};D===null?P=D=G:D=D.next=G,_=_.next}while(_!==null);D===null?P=D=h:D=D.next=h}else P=D=h;_={baseState:S.baseState,firstBaseUpdate:P,lastBaseUpdate:D,shared:S.shared,callbacks:S.callbacks},d.updateQueue=_;return}d=_.lastBaseUpdate,d===null?_.firstBaseUpdate=h:d.next=h,_.lastBaseUpdate=h}var ZM=!1;function eg(){if(ZM){var d=ah;if(d!==null)throw d}}function tg(d,h,_,S){ZM=!1;var P=d.updateQueue;Uc=!1;var D=P.firstBaseUpdate,G=P.lastBaseUpdate,ne=P.shared.pending;if(ne!==null){P.shared.pending=null;var _e=ne,Fe=_e.next;_e.next=null,G===null?D=Fe:G.next=Fe,G=_e;var Je=d.alternate;Je!==null&&(Je=Je.updateQueue,ne=Je.lastBaseUpdate,ne!==G&&(ne===null?Je.firstBaseUpdate=Fe:ne.next=Fe,Je.lastBaseUpdate=_e))}if(D!==null){var st=P.baseState;G=0,Je=Fe=_e=null,ne=D;do{var Ve=ne.lane&-536870913,Ye=Ve!==ne.lane;if(Ye?(gn&Ve)===Ve:(S&Ve)===Ve){Ve!==0&&Ve===rh&&(ZM=!0),Je!==null&&(Je=Je.next={lane:0,tag:ne.tag,payload:ne.payload,callback:null,next:null});e:{var Nt=d,Bt=ne;Ve=h;var Un=_;switch(Bt.tag){case 1:if(Nt=Bt.payload,typeof Nt=="function"){st=Nt.call(Un,st,Ve);break e}st=Nt;break e;case 3:Nt.flags=Nt.flags&-65537|128;case 0:if(Nt=Bt.payload,Ve=typeof Nt=="function"?Nt.call(Un,st,Ve):Nt,Ve==null)break e;st=f({},st,Ve);break e;case 2:Uc=!0}}Ve=ne.callback,Ve!==null&&(d.flags|=64,Ye&&(d.flags|=8192),Ye=P.callbacks,Ye===null?P.callbacks=[Ve]:Ye.push(Ve))}else Ye={lane:Ve,tag:ne.tag,payload:ne.payload,callback:ne.callback,next:null},Je===null?(Fe=Je=Ye,_e=st):Je=Je.next=Ye,G|=Ve;if(ne=ne.next,ne===null){if(ne=P.shared.pending,ne===null)break;Ye=ne,ne=Ye.next,Ye.next=null,P.lastBaseUpdate=Ye,P.shared.pending=null}}while(!0);Je===null&&(_e=st),P.baseState=_e,P.firstBaseUpdate=Fe,P.lastBaseUpdate=Je,D===null&&(P.shared.lanes=0),Gc|=G,d.lanes=G,d.memoizedState=st}}function tI(d,h){if(typeof d!="function")throw Error(i(191,d));d.call(h)}function nI(d,h){var _=d.callbacks;if(_!==null)for(d.callbacks=null,d=0;d<_.length;d++)tI(_[d],h)}var lh=B(null),Lv=B(0);function iI(d,h){d=wl,ae(Lv,d),ae(lh,h),wl=d|h.baseLanes}function QM(){ae(Lv,wl),ae(lh,lh.current)}function JM(){wl=Lv.current,X(lh),X(Lv)}var qa=B(null),ys=null;function Bc(d){var h=d.alternate;ae(Ci,Ci.current&1),ae(qa,d),ys===null&&(h===null||lh.current!==null||h.memoizedState!==null)&&(ys=d)}function eE(d){ae(Ci,Ci.current),ae(qa,d),ys===null&&(ys=d)}function rI(d){d.tag===22?(ae(Ci,Ci.current),ae(qa,d),ys===null&&(ys=d)):Hc()}function Hc(){ae(Ci,Ci.current),ae(qa,qa.current)}function Xa(d){X(qa),ys===d&&(ys=null),X(Ci)}var Ci=B(0);function Iv(d){for(var h=d;h!==null;){if(h.tag===13){var _=h.memoizedState;if(_!==null&&(_=_.dehydrated,_===null||sA(_)||oA(_)))return h}else if(h.tag===19&&(h.memoizedProps.revealOrder==="forwards"||h.memoizedProps.revealOrder==="backwards"||h.memoizedProps.revealOrder==="unstable_legacy-backwards"||h.memoizedProps.revealOrder==="together")){if((h.flags&128)!==0)return h}else if(h.child!==null){h.child.return=h,h=h.child;continue}if(h===d)break;for(;h.sibling===null;){if(h.return===null||h.return===d)return null;h=h.return}h.sibling.return=h.return,h=h.sibling}return null}var ml=0,Qt=null,In=null,ji=null,jv=!1,ch=!1,wd=!1,Uv=0,ng=0,uh=null,Dee=0;function yi(){throw Error(i(321))}function tE(d,h){if(h===null)return!1;for(var _=0;_D?D:8;var G=V.T,ne={};V.T=ne,gE(d,!1,h,_);try{var _e=P(),Fe=V.S;if(Fe!==null&&Fe(ne,_e),_e!==null&&typeof _e=="object"&&typeof _e.then=="function"){var Je=kee(_e,S);rg(d,h,Je,Za(d))}else rg(d,h,S,Za(d))}catch(st){rg(d,h,{then:function(){},status:"rejected",reason:st},Za())}finally{$.p=D,G!==null&&ne.types!==null&&(G.types=ne.types),V.T=G}}function Uee(){}function pE(d,h,_,S){if(d.tag!==5)throw Error(i(476));var P=OI(d).queue;DI(d,P,h,K,_===null?Uee:function(){return LI(d),_(S)})}function OI(d){var h=d.memoizedState;if(h!==null)return h;h={memoizedState:K,baseState:K,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:gl,lastRenderedState:K},next:null};var _={};return h.next={memoizedState:_,baseState:_,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:gl,lastRenderedState:_},next:null},d.memoizedState=h,d=d.alternate,d!==null&&(d.memoizedState=h),h}function LI(d){var h=OI(d);h.next===null&&(h=d.alternate.memoizedState),rg(d,h.next.queue,{},Za())}function mE(){return Dr(_g)}function II(){return Ni().memoizedState}function jI(){return Ni().memoizedState}function Fee(d){for(var h=d.return;h!==null;){switch(h.tag){case 24:case 3:var _=Za();d=Fc(_);var S=zc(h,d,_);S!==null&&(Na(S,h,_),Jm(S,h,_)),h={cache:$M()},d.payload=h;return}h=h.return}}function zee(d,h,_){var S=Za();_={lane:S,revertLane:0,gesture:null,action:_,hasEagerState:!1,eagerState:null,next:null},$v(d)?FI(h,_):(_=DM(d,h,_,S),_!==null&&(Na(_,d,S),zI(_,h,S)))}function UI(d,h,_){var S=Za();rg(d,h,_,S)}function rg(d,h,_,S){var P={lane:S,revertLane:0,gesture:null,action:_,hasEagerState:!1,eagerState:null,next:null};if($v(d))FI(h,P);else{var D=d.alternate;if(d.lanes===0&&(D===null||D.lanes===0)&&(D=h.lastRenderedReducer,D!==null))try{var G=h.lastRenderedState,ne=D(G,_);if(P.hasEagerState=!0,P.eagerState=ne,Ga(ne,G))return Mv(d,h,P,0),Xn===null&&wv(),!1}catch{}finally{}if(_=DM(d,h,P,S),_!==null)return Na(_,d,S),zI(_,h,S),!0}return!1}function gE(d,h,_,S){if(S={lane:2,revertLane:XE(),gesture:null,action:S,hasEagerState:!1,eagerState:null,next:null},$v(d)){if(h)throw Error(i(479))}else h=DM(d,_,S,2),h!==null&&Na(h,d,2)}function $v(d){var h=d.alternate;return d===Qt||h!==null&&h===Qt}function FI(d,h){ch=jv=!0;var _=d.pending;_===null?h.next=h:(h.next=_.next,_.next=h),d.pending=h}function zI(d,h,_){if((_&4194048)!==0){var S=h.lanes;S&=d.pendingLanes,_|=S,h.lanes=_,qn(d,_)}}var ag={readContext:Dr,use:zv,useCallback:yi,useContext:yi,useEffect:yi,useImperativeHandle:yi,useLayoutEffect:yi,useInsertionEffect:yi,useMemo:yi,useReducer:yi,useRef:yi,useState:yi,useDebugValue:yi,useDeferredValue:yi,useTransition:yi,useSyncExternalStore:yi,useId:yi,useHostTransitionStatus:yi,useFormState:yi,useActionState:yi,useOptimistic:yi,useMemoCache:yi,useCacheRefresh:yi};ag.useEffectEvent=yi;var BI={readContext:Dr,use:zv,useCallback:function(d,h){return la().memoizedState=[d,h===void 0?null:h],d},useContext:Dr,useEffect:MI,useImperativeHandle:function(d,h,_){_=_!=null?_.concat([d]):null,Hv(4194308,4,CI.bind(null,h,d),_)},useLayoutEffect:function(d,h){return Hv(4194308,4,d,h)},useInsertionEffect:function(d,h){Hv(4,2,d,h)},useMemo:function(d,h){var _=la();h=h===void 0?null:h;var S=d();if(wd){pt(!0);try{d()}finally{pt(!1)}}return _.memoizedState=[S,h],S},useReducer:function(d,h,_){var S=la();if(_!==void 0){var P=_(h);if(wd){pt(!0);try{_(h)}finally{pt(!1)}}}else P=h;return S.memoizedState=S.baseState=P,d={pending:null,lanes:0,dispatch:null,lastRenderedReducer:d,lastRenderedState:P},S.queue=d,d=d.dispatch=zee.bind(null,Qt,d),[S.memoizedState,d]},useRef:function(d){var h=la();return d={current:d},h.memoizedState=d},useState:function(d){d=cE(d);var h=d.queue,_=UI.bind(null,Qt,h);return h.dispatch=_,[d.memoizedState,_]},useDebugValue:fE,useDeferredValue:function(d,h){var _=la();return hE(_,d,h)},useTransition:function(){var d=cE(!1);return d=DI.bind(null,Qt,d.queue,!0,!1),la().memoizedState=d,[!1,d]},useSyncExternalStore:function(d,h,_){var S=Qt,P=la();if(bn){if(_===void 0)throw Error(i(407));_=_()}else{if(_=h(),Xn===null)throw Error(i(349));(gn&127)!==0||lI(S,h,_)}P.memoizedState=_;var D={value:_,getSnapshot:h};return P.queue=D,MI(uI.bind(null,S,D,d),[d]),S.flags|=2048,dh(9,{destroy:void 0},cI.bind(null,S,D,_,h),null),_},useId:function(){var d=la(),h=Xn.identifierPrefix;if(bn){var _=No,S=Co;_=(S&~(1<<32-tt(S)-1)).toString(32)+_,h="_"+h+"R_"+_,_=Uv++,0<_&&(h+="H"+_.toString(32)),h+="_"}else _=Dee++,h="_"+h+"r_"+_.toString(32)+"_";return d.memoizedState=h},useHostTransitionStatus:mE,useFormState:bI,useActionState:bI,useOptimistic:function(d){var h=la();h.memoizedState=h.baseState=d;var _={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return h.queue=_,h=gE.bind(null,Qt,!0,_),_.dispatch=h,[d,h]},useMemoCache:sE,useCacheRefresh:function(){return la().memoizedState=Fee.bind(null,Qt)},useEffectEvent:function(d){var h=la(),_={impl:d};return h.memoizedState=_,function(){if((Cn&2)!==0)throw Error(i(440));return _.impl.apply(void 0,arguments)}}},xE={readContext:Dr,use:zv,useCallback:RI,useContext:Dr,useEffect:dE,useImperativeHandle:NI,useInsertionEffect:AI,useLayoutEffect:TI,useMemo:PI,useReducer:Bv,useRef:wI,useState:function(){return Bv(gl)},useDebugValue:fE,useDeferredValue:function(d,h){var _=Ni();return kI(_,In.memoizedState,d,h)},useTransition:function(){var d=Bv(gl)[0],h=Ni().memoizedState;return[typeof d=="boolean"?d:ig(d),h]},useSyncExternalStore:oI,useId:II,useHostTransitionStatus:mE,useFormState:yI,useActionState:yI,useOptimistic:function(d,h){var _=Ni();return hI(_,In,d,h)},useMemoCache:sE,useCacheRefresh:jI};xE.useEffectEvent=EI;var HI={readContext:Dr,use:zv,useCallback:RI,useContext:Dr,useEffect:dE,useImperativeHandle:NI,useInsertionEffect:AI,useLayoutEffect:TI,useMemo:PI,useReducer:lE,useRef:wI,useState:function(){return lE(gl)},useDebugValue:fE,useDeferredValue:function(d,h){var _=Ni();return In===null?hE(_,d,h):kI(_,In.memoizedState,d,h)},useTransition:function(){var d=lE(gl)[0],h=Ni().memoizedState;return[typeof d=="boolean"?d:ig(d),h]},useSyncExternalStore:oI,useId:II,useHostTransitionStatus:mE,useFormState:SI,useActionState:SI,useOptimistic:function(d,h){var _=Ni();return In!==null?hI(_,In,d,h):(_.baseState=d,[d,_.queue.dispatch])},useMemoCache:sE,useCacheRefresh:jI};HI.useEffectEvent=EI;function vE(d,h,_,S){h=d.memoizedState,_=_(S,h),_=_==null?h:f({},h,_),d.memoizedState=_,d.lanes===0&&(d.updateQueue.baseState=_)}var bE={enqueueSetState:function(d,h,_){d=d._reactInternals;var S=Za(),P=Fc(S);P.payload=h,_!=null&&(P.callback=_),h=zc(d,P,S),h!==null&&(Na(h,d,S),Jm(h,d,S))},enqueueReplaceState:function(d,h,_){d=d._reactInternals;var S=Za(),P=Fc(S);P.tag=1,P.payload=h,_!=null&&(P.callback=_),h=zc(d,P,S),h!==null&&(Na(h,d,S),Jm(h,d,S))},enqueueForceUpdate:function(d,h){d=d._reactInternals;var _=Za(),S=Fc(_);S.tag=2,h!=null&&(S.callback=h),h=zc(d,S,_),h!==null&&(Na(h,d,_),Jm(h,d,_))}};function VI(d,h,_,S,P,D,G){return d=d.stateNode,typeof d.shouldComponentUpdate=="function"?d.shouldComponentUpdate(S,D,G):h.prototype&&h.prototype.isPureReactComponent?!Gm(_,S)||!Gm(P,D):!0}function $I(d,h,_,S){d=h.state,typeof h.componentWillReceiveProps=="function"&&h.componentWillReceiveProps(_,S),typeof h.UNSAFE_componentWillReceiveProps=="function"&&h.UNSAFE_componentWillReceiveProps(_,S),h.state!==d&&bE.enqueueReplaceState(h,h.state,null)}function Md(d,h){var _=h;if("ref"in h){_={};for(var S in h)S!=="ref"&&(_[S]=h[S])}if(d=d.defaultProps){_===h&&(_=f({},_));for(var P in d)_[P]===void 0&&(_[P]=d[P])}return _}function GI(d){Sv(d)}function WI(d){console.error(d)}function qI(d){Sv(d)}function Gv(d,h){try{var _=d.onUncaughtError;_(h.value,{componentStack:h.stack})}catch(S){setTimeout(function(){throw S})}}function XI(d,h,_){try{var S=d.onCaughtError;S(_.value,{componentStack:_.stack,errorBoundary:h.tag===1?h.stateNode:null})}catch(P){setTimeout(function(){throw P})}}function yE(d,h,_){return _=Fc(_),_.tag=3,_.payload={element:null},_.callback=function(){Gv(d,h)},_}function KI(d){return d=Fc(d),d.tag=3,d}function YI(d,h,_,S){var P=_.type.getDerivedStateFromError;if(typeof P=="function"){var D=S.value;d.payload=function(){return P(D)},d.callback=function(){XI(h,_,S)}}var G=_.stateNode;G!==null&&typeof G.componentDidCatch=="function"&&(d.callback=function(){XI(h,_,S),typeof P!="function"&&(Wc===null?Wc=new Set([this]):Wc.add(this));var ne=S.stack;this.componentDidCatch(S.value,{componentStack:ne!==null?ne:""})})}function Bee(d,h,_,S,P){if(_.flags|=32768,S!==null&&typeof S=="object"&&typeof S.then=="function"){if(h=_.alternate,h!==null&&ih(h,_,P,!0),_=qa.current,_!==null){switch(_.tag){case 31:case 13:return ys===null?ib():_.alternate===null&&_i===0&&(_i=3),_.flags&=-257,_.flags|=65536,_.lanes=P,S===kv?_.flags|=16384:(h=_.updateQueue,h===null?_.updateQueue=new Set([S]):h.add(S),GE(d,S,P)),!1;case 22:return _.flags|=65536,S===kv?_.flags|=16384:(h=_.updateQueue,h===null?(h={transitions:null,markerInstances:null,retryQueue:new Set([S])},_.updateQueue=h):(_=h.retryQueue,_===null?h.retryQueue=new Set([S]):_.add(S)),GE(d,S,P)),!1}throw Error(i(435,_.tag))}return GE(d,S,P),ib(),!1}if(bn)return h=qa.current,h!==null?((h.flags&65536)===0&&(h.flags|=256),h.flags|=65536,h.lanes=P,S!==FM&&(d=Error(i(422),{cause:S}),Xm(gs(d,_)))):(S!==FM&&(h=Error(i(423),{cause:S}),Xm(gs(h,_))),d=d.current.alternate,d.flags|=65536,P&=-P,d.lanes|=P,S=gs(S,_),P=yE(d.stateNode,S,P),YM(d,P),_i!==4&&(_i=2)),!1;var D=Error(i(520),{cause:S});if(D=gs(D,_),hg===null?hg=[D]:hg.push(D),_i!==4&&(_i=2),h===null)return!0;S=gs(S,_),_=h;do{switch(_.tag){case 3:return _.flags|=65536,d=P&-P,_.lanes|=d,d=yE(_.stateNode,S,d),YM(_,d),!1;case 1:if(h=_.type,D=_.stateNode,(_.flags&128)===0&&(typeof h.getDerivedStateFromError=="function"||D!==null&&typeof D.componentDidCatch=="function"&&(Wc===null||!Wc.has(D))))return _.flags|=65536,P&=-P,_.lanes|=P,P=KI(P),YI(P,d,_,S),YM(_,P),!1}_=_.return}while(_!==null);return!1}var _E=Error(i(461)),Ui=!1;function Or(d,h,_,S){h.child=d===null?eI(h,null,_,S):Sd(h,d.child,_,S)}function ZI(d,h,_,S,P){_=_.render;var D=h.ref;if("ref"in S){var G={};for(var ne in S)ne!=="ref"&&(G[ne]=S[ne])}else G=S;return vd(h),S=nE(d,h,_,G,D,P),ne=iE(),d!==null&&!Ui?(rE(d,h,P),xl(d,h,P)):(bn&&ne&&jM(h),h.flags|=1,Or(d,h,S,P),h.child)}function QI(d,h,_,S,P){if(d===null){var D=_.type;return typeof D=="function"&&!OM(D)&&D.defaultProps===void 0&&_.compare===null?(h.tag=15,h.type=D,JI(d,h,D,S,P)):(d=Av(_.type,null,S,h,h.mode,P),d.ref=h.ref,d.return=h,h.child=d)}if(D=d.child,!NE(d,P)){var G=D.memoizedProps;if(_=_.compare,_=_!==null?_:Gm,_(G,S)&&d.ref===h.ref)return xl(d,h,P)}return h.flags|=1,d=dl(D,S),d.ref=h.ref,d.return=h,h.child=d}function JI(d,h,_,S,P){if(d!==null){var D=d.memoizedProps;if(Gm(D,S)&&d.ref===h.ref)if(Ui=!1,h.pendingProps=S=D,NE(d,P))(d.flags&131072)!==0&&(Ui=!0);else return h.lanes=d.lanes,xl(d,h,P)}return SE(d,h,_,S,P)}function ej(d,h,_,S){var P=S.children,D=d!==null?d.memoizedState:null;if(d===null&&h.stateNode===null&&(h.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),S.mode==="hidden"){if((h.flags&128)!==0){if(D=D!==null?D.baseLanes|_:_,d!==null){for(S=h.child=d.child,P=0;S!==null;)P=P|S.lanes|S.childLanes,S=S.sibling;S=P&~D}else S=0,h.child=null;return tj(d,h,D,_,S)}if((_&536870912)!==0)h.memoizedState={baseLanes:0,cachePool:null},d!==null&&Rv(h,D!==null?D.cachePool:null),D!==null?iI(h,D):QM(),rI(h);else return S=h.lanes=536870912,tj(d,h,D!==null?D.baseLanes|_:_,_,S)}else D!==null?(Rv(h,D.cachePool),iI(h,D),Hc(),h.memoizedState=null):(d!==null&&Rv(h,null),QM(),Hc());return Or(d,h,P,_),h.child}function sg(d,h){return d!==null&&d.tag===22||h.stateNode!==null||(h.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),h.sibling}function tj(d,h,_,S,P){var D=WM();return D=D===null?null:{parent:Ii._currentValue,pool:D},h.memoizedState={baseLanes:_,cachePool:D},d!==null&&Rv(h,null),QM(),rI(h),d!==null&&ih(d,h,S,!0),h.childLanes=P,null}function Wv(d,h){return h=Xv({mode:h.mode,children:h.children},d.mode),h.ref=d.ref,d.child=h,h.return=d,h}function nj(d,h,_){return Sd(h,d.child,null,_),d=Wv(h,h.pendingProps),d.flags|=2,Xa(h),h.memoizedState=null,d}function Hee(d,h,_){var S=h.pendingProps,P=(h.flags&128)!==0;if(h.flags&=-129,d===null){if(bn){if(S.mode==="hidden")return d=Wv(h,S),h.lanes=536870912,sg(null,d);if(eE(h),(d=ti)?(d=pU(d,bs),d=d!==null&&d.data==="&"?d:null,d!==null&&(h.memoizedState={dehydrated:d,treeContext:Oc!==null?{id:Co,overflow:No}:null,retryLane:536870912,hydrationErrors:null},_=FL(d),_.return=h,h.child=_,kr=h,ti=null)):d=null,d===null)throw Ic(h);return h.lanes=536870912,null}return Wv(h,S)}var D=d.memoizedState;if(D!==null){var G=D.dehydrated;if(eE(h),P)if(h.flags&256)h.flags&=-257,h=nj(d,h,_);else if(h.memoizedState!==null)h.child=d.child,h.flags|=128,h=null;else throw Error(i(558));else if(Ui||ih(d,h,_,!1),P=(_&d.childLanes)!==0,Ui||P){if(S=Xn,S!==null&&(G=pr(S,_),G!==0&&G!==D.retryLane))throw D.retryLane=G,pd(d,G),Na(S,d,G),_E;ib(),h=nj(d,h,_)}else d=D.treeContext,ti=_s(G.nextSibling),kr=h,bn=!0,Lc=null,bs=!1,d!==null&&HL(h,d),h=Wv(h,S),h.flags|=4096;return h}return d=dl(d.child,{mode:S.mode,children:S.children}),d.ref=h.ref,h.child=d,d.return=h,d}function qv(d,h){var _=h.ref;if(_===null)d!==null&&d.ref!==null&&(h.flags|=4194816);else{if(typeof _!="function"&&typeof _!="object")throw Error(i(284));(d===null||d.ref!==_)&&(h.flags|=4194816)}}function SE(d,h,_,S,P){return vd(h),_=nE(d,h,_,S,void 0,P),S=iE(),d!==null&&!Ui?(rE(d,h,P),xl(d,h,P)):(bn&&S&&jM(h),h.flags|=1,Or(d,h,_,P),h.child)}function ij(d,h,_,S,P,D){return vd(h),h.updateQueue=null,_=sI(h,S,_,P),aI(d),S=iE(),d!==null&&!Ui?(rE(d,h,D),xl(d,h,D)):(bn&&S&&jM(h),h.flags|=1,Or(d,h,_,D),h.child)}function rj(d,h,_,S,P){if(vd(h),h.stateNode===null){var D=Jf,G=_.contextType;typeof G=="object"&&G!==null&&(D=Dr(G)),D=new _(S,D),h.memoizedState=D.state!==null&&D.state!==void 0?D.state:null,D.updater=bE,h.stateNode=D,D._reactInternals=h,D=h.stateNode,D.props=S,D.state=h.memoizedState,D.refs={},XM(h),G=_.contextType,D.context=typeof G=="object"&&G!==null?Dr(G):Jf,D.state=h.memoizedState,G=_.getDerivedStateFromProps,typeof G=="function"&&(vE(h,_,G,S),D.state=h.memoizedState),typeof _.getDerivedStateFromProps=="function"||typeof D.getSnapshotBeforeUpdate=="function"||typeof D.UNSAFE_componentWillMount!="function"&&typeof D.componentWillMount!="function"||(G=D.state,typeof D.componentWillMount=="function"&&D.componentWillMount(),typeof D.UNSAFE_componentWillMount=="function"&&D.UNSAFE_componentWillMount(),G!==D.state&&bE.enqueueReplaceState(D,D.state,null),tg(h,S,D,P),eg(),D.state=h.memoizedState),typeof D.componentDidMount=="function"&&(h.flags|=4194308),S=!0}else if(d===null){D=h.stateNode;var ne=h.memoizedProps,_e=Md(_,ne);D.props=_e;var Fe=D.context,Je=_.contextType;G=Jf,typeof Je=="object"&&Je!==null&&(G=Dr(Je));var st=_.getDerivedStateFromProps;Je=typeof st=="function"||typeof D.getSnapshotBeforeUpdate=="function",ne=h.pendingProps!==ne,Je||typeof D.UNSAFE_componentWillReceiveProps!="function"&&typeof D.componentWillReceiveProps!="function"||(ne||Fe!==G)&&$I(h,D,S,G),Uc=!1;var Ve=h.memoizedState;D.state=Ve,tg(h,S,D,P),eg(),Fe=h.memoizedState,ne||Ve!==Fe||Uc?(typeof st=="function"&&(vE(h,_,st,S),Fe=h.memoizedState),(_e=Uc||VI(h,_,_e,S,Ve,Fe,G))?(Je||typeof D.UNSAFE_componentWillMount!="function"&&typeof D.componentWillMount!="function"||(typeof D.componentWillMount=="function"&&D.componentWillMount(),typeof D.UNSAFE_componentWillMount=="function"&&D.UNSAFE_componentWillMount()),typeof D.componentDidMount=="function"&&(h.flags|=4194308)):(typeof D.componentDidMount=="function"&&(h.flags|=4194308),h.memoizedProps=S,h.memoizedState=Fe),D.props=S,D.state=Fe,D.context=G,S=_e):(typeof D.componentDidMount=="function"&&(h.flags|=4194308),S=!1)}else{D=h.stateNode,KM(d,h),G=h.memoizedProps,Je=Md(_,G),D.props=Je,st=h.pendingProps,Ve=D.context,Fe=_.contextType,_e=Jf,typeof Fe=="object"&&Fe!==null&&(_e=Dr(Fe)),ne=_.getDerivedStateFromProps,(Fe=typeof ne=="function"||typeof D.getSnapshotBeforeUpdate=="function")||typeof D.UNSAFE_componentWillReceiveProps!="function"&&typeof D.componentWillReceiveProps!="function"||(G!==st||Ve!==_e)&&$I(h,D,S,_e),Uc=!1,Ve=h.memoizedState,D.state=Ve,tg(h,S,D,P),eg();var Ye=h.memoizedState;G!==st||Ve!==Ye||Uc||d!==null&&d.dependencies!==null&&Cv(d.dependencies)?(typeof ne=="function"&&(vE(h,_,ne,S),Ye=h.memoizedState),(Je=Uc||VI(h,_,Je,S,Ve,Ye,_e)||d!==null&&d.dependencies!==null&&Cv(d.dependencies))?(Fe||typeof D.UNSAFE_componentWillUpdate!="function"&&typeof D.componentWillUpdate!="function"||(typeof D.componentWillUpdate=="function"&&D.componentWillUpdate(S,Ye,_e),typeof D.UNSAFE_componentWillUpdate=="function"&&D.UNSAFE_componentWillUpdate(S,Ye,_e)),typeof D.componentDidUpdate=="function"&&(h.flags|=4),typeof D.getSnapshotBeforeUpdate=="function"&&(h.flags|=1024)):(typeof D.componentDidUpdate!="function"||G===d.memoizedProps&&Ve===d.memoizedState||(h.flags|=4),typeof D.getSnapshotBeforeUpdate!="function"||G===d.memoizedProps&&Ve===d.memoizedState||(h.flags|=1024),h.memoizedProps=S,h.memoizedState=Ye),D.props=S,D.state=Ye,D.context=_e,S=Je):(typeof D.componentDidUpdate!="function"||G===d.memoizedProps&&Ve===d.memoizedState||(h.flags|=4),typeof D.getSnapshotBeforeUpdate!="function"||G===d.memoizedProps&&Ve===d.memoizedState||(h.flags|=1024),S=!1)}return D=S,qv(d,h),S=(h.flags&128)!==0,D||S?(D=h.stateNode,_=S&&typeof _.getDerivedStateFromError!="function"?null:D.render(),h.flags|=1,d!==null&&S?(h.child=Sd(h,d.child,null,P),h.child=Sd(h,null,_,P)):Or(d,h,_,P),h.memoizedState=D.state,d=h.child):d=xl(d,h,P),d}function aj(d,h,_,S){return gd(),h.flags|=256,Or(d,h,_,S),h.child}var wE={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function ME(d){return{baseLanes:d,cachePool:XL()}}function EE(d,h,_){return d=d!==null?d.childLanes&~_:0,h&&(d|=Ya),d}function sj(d,h,_){var S=h.pendingProps,P=!1,D=(h.flags&128)!==0,G;if((G=D)||(G=d!==null&&d.memoizedState===null?!1:(Ci.current&2)!==0),G&&(P=!0,h.flags&=-129),G=(h.flags&32)!==0,h.flags&=-33,d===null){if(bn){if(P?Bc(h):Hc(),(d=ti)?(d=pU(d,bs),d=d!==null&&d.data!=="&"?d:null,d!==null&&(h.memoizedState={dehydrated:d,treeContext:Oc!==null?{id:Co,overflow:No}:null,retryLane:536870912,hydrationErrors:null},_=FL(d),_.return=h,h.child=_,kr=h,ti=null)):d=null,d===null)throw Ic(h);return oA(d)?h.lanes=32:h.lanes=536870912,null}var ne=S.children;return S=S.fallback,P?(Hc(),P=h.mode,ne=Xv({mode:"hidden",children:ne},P),S=md(S,P,_,null),ne.return=h,S.return=h,ne.sibling=S,h.child=ne,S=h.child,S.memoizedState=ME(_),S.childLanes=EE(d,G,_),h.memoizedState=wE,sg(null,S)):(Bc(h),AE(h,ne))}var _e=d.memoizedState;if(_e!==null&&(ne=_e.dehydrated,ne!==null)){if(D)h.flags&256?(Bc(h),h.flags&=-257,h=TE(d,h,_)):h.memoizedState!==null?(Hc(),h.child=d.child,h.flags|=128,h=null):(Hc(),ne=S.fallback,P=h.mode,S=Xv({mode:"visible",children:S.children},P),ne=md(ne,P,_,null),ne.flags|=2,S.return=h,ne.return=h,S.sibling=ne,h.child=S,Sd(h,d.child,null,_),S=h.child,S.memoizedState=ME(_),S.childLanes=EE(d,G,_),h.memoizedState=wE,h=sg(null,S));else if(Bc(h),oA(ne)){if(G=ne.nextSibling&&ne.nextSibling.dataset,G)var Fe=G.dgst;G=Fe,S=Error(i(419)),S.stack="",S.digest=G,Xm({value:S,source:null,stack:null}),h=TE(d,h,_)}else if(Ui||ih(d,h,_,!1),G=(_&d.childLanes)!==0,Ui||G){if(G=Xn,G!==null&&(S=pr(G,_),S!==0&&S!==_e.retryLane))throw _e.retryLane=S,pd(d,S),Na(G,d,S),_E;sA(ne)||ib(),h=TE(d,h,_)}else sA(ne)?(h.flags|=192,h.child=d.child,h=null):(d=_e.treeContext,ti=_s(ne.nextSibling),kr=h,bn=!0,Lc=null,bs=!1,d!==null&&HL(h,d),h=AE(h,S.children),h.flags|=4096);return h}return P?(Hc(),ne=S.fallback,P=h.mode,_e=d.child,Fe=_e.sibling,S=dl(_e,{mode:"hidden",children:S.children}),S.subtreeFlags=_e.subtreeFlags&65011712,Fe!==null?ne=dl(Fe,ne):(ne=md(ne,P,_,null),ne.flags|=2),ne.return=h,S.return=h,S.sibling=ne,h.child=S,sg(null,S),S=h.child,ne=d.child.memoizedState,ne===null?ne=ME(_):(P=ne.cachePool,P!==null?(_e=Ii._currentValue,P=P.parent!==_e?{parent:_e,pool:_e}:P):P=XL(),ne={baseLanes:ne.baseLanes|_,cachePool:P}),S.memoizedState=ne,S.childLanes=EE(d,G,_),h.memoizedState=wE,sg(d.child,S)):(Bc(h),_=d.child,d=_.sibling,_=dl(_,{mode:"visible",children:S.children}),_.return=h,_.sibling=null,d!==null&&(G=h.deletions,G===null?(h.deletions=[d],h.flags|=16):G.push(d)),h.child=_,h.memoizedState=null,_)}function AE(d,h){return h=Xv({mode:"visible",children:h},d.mode),h.return=d,d.child=h}function Xv(d,h){return d=Wa(22,d,null,h),d.lanes=0,d}function TE(d,h,_){return Sd(h,d.child,null,_),d=AE(h,h.pendingProps.children),d.flags|=2,h.memoizedState=null,d}function oj(d,h,_){d.lanes|=h;var S=d.alternate;S!==null&&(S.lanes|=h),HM(d.return,h,_)}function CE(d,h,_,S,P,D){var G=d.memoizedState;G===null?d.memoizedState={isBackwards:h,rendering:null,renderingStartTime:0,last:S,tail:_,tailMode:P,treeForkCount:D}:(G.isBackwards=h,G.rendering=null,G.renderingStartTime=0,G.last=S,G.tail=_,G.tailMode=P,G.treeForkCount=D)}function lj(d,h,_){var S=h.pendingProps,P=S.revealOrder,D=S.tail;S=S.children;var G=Ci.current,ne=(G&2)!==0;if(ne?(G=G&1|2,h.flags|=128):G&=1,ae(Ci,G),Or(d,h,S,_),S=bn?qm:0,!ne&&d!==null&&(d.flags&128)!==0)e:for(d=h.child;d!==null;){if(d.tag===13)d.memoizedState!==null&&oj(d,_,h);else if(d.tag===19)oj(d,_,h);else if(d.child!==null){d.child.return=d,d=d.child;continue}if(d===h)break e;for(;d.sibling===null;){if(d.return===null||d.return===h)break e;d=d.return}d.sibling.return=d.return,d=d.sibling}switch(P){case"forwards":for(_=h.child,P=null;_!==null;)d=_.alternate,d!==null&&Iv(d)===null&&(P=_),_=_.sibling;_=P,_===null?(P=h.child,h.child=null):(P=_.sibling,_.sibling=null),CE(h,!1,P,_,D,S);break;case"backwards":case"unstable_legacy-backwards":for(_=null,P=h.child,h.child=null;P!==null;){if(d=P.alternate,d!==null&&Iv(d)===null){h.child=P;break}d=P.sibling,P.sibling=_,_=P,P=d}CE(h,!0,_,null,D,S);break;case"together":CE(h,!1,null,null,void 0,S);break;default:h.memoizedState=null}return h.child}function xl(d,h,_){if(d!==null&&(h.dependencies=d.dependencies),Gc|=h.lanes,(_&h.childLanes)===0)if(d!==null){if(ih(d,h,_,!1),(_&h.childLanes)===0)return null}else return null;if(d!==null&&h.child!==d.child)throw Error(i(153));if(h.child!==null){for(d=h.child,_=dl(d,d.pendingProps),h.child=_,_.return=h;d.sibling!==null;)d=d.sibling,_=_.sibling=dl(d,d.pendingProps),_.return=h;_.sibling=null}return h.child}function NE(d,h){return(d.lanes&h)!==0?!0:(d=d.dependencies,!!(d!==null&&Cv(d)))}function Vee(d,h,_){switch(h.tag){case 3:Pe(h,h.stateNode.containerInfo),jc(h,Ii,d.memoizedState.cache),gd();break;case 27:case 5:we(h);break;case 4:Pe(h,h.stateNode.containerInfo);break;case 10:jc(h,h.type,h.memoizedProps.value);break;case 31:if(h.memoizedState!==null)return h.flags|=128,eE(h),null;break;case 13:var S=h.memoizedState;if(S!==null)return S.dehydrated!==null?(Bc(h),h.flags|=128,null):(_&h.child.childLanes)!==0?sj(d,h,_):(Bc(h),d=xl(d,h,_),d!==null?d.sibling:null);Bc(h);break;case 19:var P=(d.flags&128)!==0;if(S=(_&h.childLanes)!==0,S||(ih(d,h,_,!1),S=(_&h.childLanes)!==0),P){if(S)return lj(d,h,_);h.flags|=128}if(P=h.memoizedState,P!==null&&(P.rendering=null,P.tail=null,P.lastEffect=null),ae(Ci,Ci.current),S)break;return null;case 22:return h.lanes=0,ej(d,h,_,h.pendingProps);case 24:jc(h,Ii,d.memoizedState.cache)}return xl(d,h,_)}function cj(d,h,_){if(d!==null)if(d.memoizedProps!==h.pendingProps)Ui=!0;else{if(!NE(d,_)&&(h.flags&128)===0)return Ui=!1,Vee(d,h,_);Ui=(d.flags&131072)!==0}else Ui=!1,bn&&(h.flags&1048576)!==0&&BL(h,qm,h.index);switch(h.lanes=0,h.tag){case 16:e:{var S=h.pendingProps;if(d=yd(h.elementType),h.type=d,typeof d=="function")OM(d)?(S=Md(d,S),h.tag=1,h=rj(null,h,d,S,_)):(h.tag=0,h=SE(null,h,d,S,_));else{if(d!=null){var P=d.$$typeof;if(P===E){h.tag=11,h=ZI(null,h,d,S,_);break e}else if(P===N){h.tag=14,h=QI(null,h,d,S,_);break e}}throw h=O(d)||d,Error(i(306,h,""))}}return h;case 0:return SE(d,h,h.type,h.pendingProps,_);case 1:return S=h.type,P=Md(S,h.pendingProps),rj(d,h,S,P,_);case 3:e:{if(Pe(h,h.stateNode.containerInfo),d===null)throw Error(i(387));S=h.pendingProps;var D=h.memoizedState;P=D.element,KM(d,h),tg(h,S,null,_);var G=h.memoizedState;if(S=G.cache,jc(h,Ii,S),S!==D.cache&&VM(h,[Ii],_,!0),eg(),S=G.element,D.isDehydrated)if(D={element:S,isDehydrated:!1,cache:G.cache},h.updateQueue.baseState=D,h.memoizedState=D,h.flags&256){h=aj(d,h,S,_);break e}else if(S!==P){P=gs(Error(i(424)),h),Xm(P),h=aj(d,h,S,_);break e}else{switch(d=h.stateNode.containerInfo,d.nodeType){case 9:d=d.body;break;default:d=d.nodeName==="HTML"?d.ownerDocument.body:d}for(ti=_s(d.firstChild),kr=h,bn=!0,Lc=null,bs=!0,_=eI(h,null,S,_),h.child=_;_;)_.flags=_.flags&-3|4096,_=_.sibling}else{if(gd(),S===P){h=xl(d,h,_);break e}Or(d,h,S,_)}h=h.child}return h;case 26:return qv(d,h),d===null?(_=yU(h.type,null,h.pendingProps,null))?h.memoizedState=_:bn||(_=h.type,d=h.pendingProps,S=ub(ie.current).createElement(_),S[hi]=h,S[Ai]=d,Lr(S,_,d),Te(S),h.stateNode=S):h.memoizedState=yU(h.type,d.memoizedProps,h.pendingProps,d.memoizedState),null;case 27:return we(h),d===null&&bn&&(S=h.stateNode=xU(h.type,h.pendingProps,ie.current),kr=h,bs=!0,P=ti,Yc(h.type)?(lA=P,ti=_s(S.firstChild)):ti=P),Or(d,h,h.pendingProps.children,_),qv(d,h),d===null&&(h.flags|=4194304),h.child;case 5:return d===null&&bn&&((P=S=ti)&&(S=bte(S,h.type,h.pendingProps,bs),S!==null?(h.stateNode=S,kr=h,ti=_s(S.firstChild),bs=!1,P=!0):P=!1),P||Ic(h)),we(h),P=h.type,D=h.pendingProps,G=d!==null?d.memoizedProps:null,S=D.children,iA(P,D)?S=null:G!==null&&iA(P,G)&&(h.flags|=32),h.memoizedState!==null&&(P=nE(d,h,Oee,null,null,_),_g._currentValue=P),qv(d,h),Or(d,h,S,_),h.child;case 6:return d===null&&bn&&((d=_=ti)&&(_=yte(_,h.pendingProps,bs),_!==null?(h.stateNode=_,kr=h,ti=null,d=!0):d=!1),d||Ic(h)),null;case 13:return sj(d,h,_);case 4:return Pe(h,h.stateNode.containerInfo),S=h.pendingProps,d===null?h.child=Sd(h,null,S,_):Or(d,h,S,_),h.child;case 11:return ZI(d,h,h.type,h.pendingProps,_);case 7:return Or(d,h,h.pendingProps,_),h.child;case 8:return Or(d,h,h.pendingProps.children,_),h.child;case 12:return Or(d,h,h.pendingProps.children,_),h.child;case 10:return S=h.pendingProps,jc(h,h.type,S.value),Or(d,h,S.children,_),h.child;case 9:return P=h.type._context,S=h.pendingProps.children,vd(h),P=Dr(P),S=S(P),h.flags|=1,Or(d,h,S,_),h.child;case 14:return QI(d,h,h.type,h.pendingProps,_);case 15:return JI(d,h,h.type,h.pendingProps,_);case 19:return lj(d,h,_);case 31:return Hee(d,h,_);case 22:return ej(d,h,_,h.pendingProps);case 24:return vd(h),S=Dr(Ii),d===null?(P=WM(),P===null&&(P=Xn,D=$M(),P.pooledCache=D,D.refCount++,D!==null&&(P.pooledCacheLanes|=_),P=D),h.memoizedState={parent:S,cache:P},XM(h),jc(h,Ii,P)):((d.lanes&_)!==0&&(KM(d,h),tg(h,null,null,_),eg()),P=d.memoizedState,D=h.memoizedState,P.parent!==S?(P={parent:S,cache:S},h.memoizedState=P,h.lanes===0&&(h.memoizedState=h.updateQueue.baseState=P),jc(h,Ii,S)):(S=D.cache,jc(h,Ii,S),S!==P.cache&&VM(h,[Ii],_,!0))),Or(d,h,h.pendingProps.children,_),h.child;case 29:throw h.pendingProps}throw Error(i(156,h.tag))}function vl(d){d.flags|=4}function RE(d,h,_,S,P){if((h=(d.mode&32)!==0)&&(h=!1),h){if(d.flags|=16777216,(P&335544128)===P)if(d.stateNode.complete)d.flags|=8192;else if(Ij())d.flags|=8192;else throw _d=kv,qM}else d.flags&=-16777217}function uj(d,h){if(h.type!=="stylesheet"||(h.state.loading&4)!==0)d.flags&=-16777217;else if(d.flags|=16777216,!EU(h))if(Ij())d.flags|=8192;else throw _d=kv,qM}function Kv(d,h){h!==null&&(d.flags|=4),d.flags&16384&&(h=d.tag!==22?yt():536870912,d.lanes|=h,mh|=h)}function og(d,h){if(!bn)switch(d.tailMode){case"hidden":h=d.tail;for(var _=null;h!==null;)h.alternate!==null&&(_=h),h=h.sibling;_===null?d.tail=null:_.sibling=null;break;case"collapsed":_=d.tail;for(var S=null;_!==null;)_.alternate!==null&&(S=_),_=_.sibling;S===null?h||d.tail===null?d.tail=null:d.tail.sibling=null:S.sibling=null}}function ni(d){var h=d.alternate!==null&&d.alternate.child===d.child,_=0,S=0;if(h)for(var P=d.child;P!==null;)_|=P.lanes|P.childLanes,S|=P.subtreeFlags&65011712,S|=P.flags&65011712,P.return=d,P=P.sibling;else for(P=d.child;P!==null;)_|=P.lanes|P.childLanes,S|=P.subtreeFlags,S|=P.flags,P.return=d,P=P.sibling;return d.subtreeFlags|=S,d.childLanes=_,h}function $ee(d,h,_){var S=h.pendingProps;switch(UM(h),h.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return ni(h),null;case 1:return ni(h),null;case 3:return _=h.stateNode,S=null,d!==null&&(S=d.memoizedState.cache),h.memoizedState.cache!==S&&(h.flags|=2048),pl(Ii),pe(),_.pendingContext&&(_.context=_.pendingContext,_.pendingContext=null),(d===null||d.child===null)&&(nh(h)?vl(h):d===null||d.memoizedState.isDehydrated&&(h.flags&256)===0||(h.flags|=1024,zM())),ni(h),null;case 26:var P=h.type,D=h.memoizedState;return d===null?(vl(h),D!==null?(ni(h),uj(h,D)):(ni(h),RE(h,P,null,S,_))):D?D!==d.memoizedState?(vl(h),ni(h),uj(h,D)):(ni(h),h.flags&=-16777217):(d=d.memoizedProps,d!==S&&vl(h),ni(h),RE(h,P,d,S,_)),null;case 27:if(ze(h),_=ie.current,P=h.type,d!==null&&h.stateNode!=null)d.memoizedProps!==S&&vl(h);else{if(!S){if(h.stateNode===null)throw Error(i(166));return ni(h),null}d=ce.current,nh(h)?VL(h):(d=xU(P,S,_),h.stateNode=d,vl(h))}return ni(h),null;case 5:if(ze(h),P=h.type,d!==null&&h.stateNode!=null)d.memoizedProps!==S&&vl(h);else{if(!S){if(h.stateNode===null)throw Error(i(166));return ni(h),null}if(D=ce.current,nh(h))VL(h);else{var G=ub(ie.current);switch(D){case 1:D=G.createElementNS("http://www.w3.org/2000/svg",P);break;case 2:D=G.createElementNS("http://www.w3.org/1998/Math/MathML",P);break;default:switch(P){case"svg":D=G.createElementNS("http://www.w3.org/2000/svg",P);break;case"math":D=G.createElementNS("http://www.w3.org/1998/Math/MathML",P);break;case"script":D=G.createElement("div"),D.innerHTML=" - + +