* { font-family: "Microsoft YaHei UI"; font-size: 13px; color: #282d33; } QMainWindow { background: transparent; } QWidget#windowSurface { background: #f4f5f7; border: 1px solid #cbd2da; border-radius: 10px; } QWidget#windowSurface[maximized="true"] { border: none; border-radius: 0; } QWidget#appRoot, QStackedWidget#pages { background: #f4f5f7; } QWidget#customTitleBar { background: #f8fafc; border: none; border-bottom: 1px solid #dce1e6; } QLabel#titleBarMark { color: #ffffff; background: #1b6ef3; border-radius: 5px; font-size: 13px; font-weight: 700; } QLabel#titleBarTitle { color: #202832; font-size: 13px; font-weight: 700; } QLabel#titleBarPage { color: #66727e; font-size: 12px; } QLabel#titleBarBuild { color: #818b96; background: #eef1f4; border: 1px solid #dce1e6; border-radius: 10px; padding: 2px 8px; font-size: 11px; } QFrame#titleBarDivider { color: #d4dae0; max-height: 18px; } QPushButton#windowControlButton, QPushButton#closeWindowButton { min-height: 44px; padding: 0; background: transparent; border: none; border-radius: 0; } QPushButton#windowControlButton:hover { background: #e8ecf0; } QPushButton#windowControlButton:pressed { background: #dce2e8; } QPushButton#closeWindowButton:hover { background: #d84646; } QPushButton#closeWindowButton:pressed { background: #bc3434; } QWidget#sidebar { background: #182028; border: none; } QLabel#brandMark { background: #1b6ef3; color: white; border-radius: 4px; font-size: 15px; font-weight: 700; } QLabel#brandName { color: #f5f7fa; font-size: 16px; font-weight: 700; } QLabel#brandCaption, QLabel#sidebarLabel { color: #89919c; font-size: 11px; } QLabel#workspaceLabel { padding-top: 16px; border-top: 1px solid #2b3540; } QPushButton#navButton { background: transparent; color: #b9c0c9; border: none; border-left: 3px solid transparent; border-radius: 0; text-align: left; padding: 0 16px; min-height: 34px; font-weight: 500; } QPushButton#navButton:hover { background: #222c35; color: white; } QPushButton#navButton:checked { background: #26313c; color: white; border-left-color: #4e8df7; font-weight: 600; } QFrame#connectionPanel { background: #202a34; border: 1px solid #34414d; border-radius: 6px; } QFrame#connectionPanel QLabel { color: #aeb6c0; } QWidget#sidebarConnectionState { background: transparent; } QLabel#sidebarEndpoint { color: #f3f6f8; font-family: Consolas; font-weight: 600; } QLabel#sidebarDetail { color: #8f9ca8; font-size: 11px; } QFrame#connectionPanel QLabel#statusChip { min-height: 0; padding: 0; color: #aeb6c0; background: transparent; border: none; border-radius: 0; } QFrame#connectionPanel QLineEdit, QFrame#connectionPanel QSpinBox { background: #20252b; color: #f0f2f5; border-color: #424a54; } QCheckBox#demoCheck { color: #cbd1d8; } QWidget#header { background: white; border-bottom: 1px solid #e2e5e9; } QWidget#armHeaderControls { background: transparent; } QWidget#armHeaderControls QLabel#eyebrow { color: #69747f; font-size: 11px; } QWidget#armHeaderControls QLineEdit { min-width: 172px; max-width: 172px; background: #f9fafb; } QWidget#armHeaderControls QPushButton { min-width: 106px; } QPushButton#armTelemetryStatus { color: #62706b; background: #f4f7f6; border-color: #d7e2dd; font-weight: 500; } QPushButton#armTelemetryStatus[active="true"] { color: #166c4b; background: #eef9f4; border-color: #bfe6d5; } QLabel#pageTitle { font-size: 18px; font-weight: 600; color: #20252b; } QLabel#pageSubtitle { color: #747b84; font-size: 12px; } QLabel#statusChip { background: #f1f3f5; color: #616872; border: 1px solid #e0e4e8; border-radius: 12px; padding: 4px 10px; min-height: 16px; } QFrame#metricCard, QFrame#panel, QFrame#armServiceHeader, QFrame#agvServiceHeader, QFrame#armCommandPanel, QFrame#armTeachPanel { background: white; border: 1px solid #e0e3e7; border-radius: 6px; } QFrame#armServiceHeader, QFrame#agvServiceHeader { background: transparent; border: none; border-bottom: 1px solid #d7dde3; border-radius: 0; } QFrame#armCommandPanel, QFrame#armTeachPanel { border-color: #d9dee4; background: #ffffff; border-radius: 6px; } QSplitter#armModelMotionSplitter::handle { background: transparent; } QSplitter#armModelMotionSplitter::handle:vertical { height: 8px; } QSplitter#armModelMotionSplitter::handle:vertical:hover { background: #dce8f5; } QFrame#armPanelHeader { background: #ffffff; border: none; border-bottom: 1px solid #e4e8ec; } QWidget#commandBody { background: #ffffff; } QLabel#armStateValue { color: #74808a; font-weight: 600; } QLabel#armStateValue[state="good"] { color: #177553; } QLabel#armStateValue[state="error"] { color: #bd343b; } QTabWidget#serviceTabs::pane { border: 1px solid #dfe3e8; border-radius: 6px; background: #ffffff; top: -1px; } QTabWidget#armTabs::pane, QTabWidget#agvTabs::pane { border: none; background: transparent; top: -1px; } QTabWidget#serviceTabs QTabBar::tab { min-width: 116px; min-height: 34px; padding: 0 16px; color: #69727d; background: #edf0f3; border: 1px solid #dfe3e8; border-bottom: none; } QTabWidget#serviceTabs QTabBar::tab:selected { color: #16202a; background: #ffffff; font-weight: 600; } QTabWidget#armTabs QTabBar::tab, QTabWidget#agvTabs QTabBar::tab { min-width: 126px; min-height: 38px; padding: 0 16px; color: #68737e; background: transparent; border: none; border-bottom: 2px solid transparent; font-weight: 500; } QTabWidget#armTabs QTabBar::tab:hover, QTabWidget#agvTabs QTabBar::tab:hover { color: #27313b; background: #eef2f6; } QTabWidget#armTabs QTabBar::tab:selected, QTabWidget#agvTabs QTabBar::tab:selected { color: #17212b; background: transparent; border-bottom-color: #2179dc; font-weight: 600; } QTabWidget#armTabs QTabBar, QTabWidget#agvTabs QTabBar { border-bottom: 1px solid #d7dde3; } QTabWidget#armMotionCommandTabs::pane { border: none; background: #ffffff; top: -1px; } QTabWidget#armMotionCommandTabs QTabBar { border: none; background: #eef2f6; border-radius: 5px; } QTabWidget#armMotionCommandTabs QTabBar::tab { min-width: 132px; min-height: 30px; padding: 0 14px; color: #63707c; background: transparent; border: none; border-radius: 4px; font-weight: 500; } QTabWidget#armMotionCommandTabs QTabBar::tab:hover { color: #27313b; background: #e2e8ef; } QTabWidget#armMotionCommandTabs QTabBar::tab:selected { color: #155dcc; background: #ffffff; border: 1px solid #ccd8e5; font-weight: 600; } QSplitter#armTargetTables::handle { background: transparent; width: 12px; } QWidget#armTargetGroup { background: transparent; } QTableWidget#leftMotionTable, QTableWidget#motionTable { background: #ffffff; alternate-background-color: #f8fafc; border: 1px solid #dce3ea; border-radius: 6px; color: #26323d; } QTableWidget#leftMotionTable QHeaderView::section, QTableWidget#motionTable QHeaderView::section { background: #eef3f7; color: #526171; border: none; border-bottom: 1px solid #d7e0e8; padding: 6px 8px; font-size: 11px; font-weight: 600; } QTableWidget#leftMotionTable::item, QTableWidget#motionTable::item { padding: 3px 8px; border-bottom: 1px solid #edf1f4; } QTableWidget#leftMotionTable QDoubleSpinBox, QTableWidget#motionTable QDoubleSpinBox { min-height: 24px; padding: 1px 7px; background: #f5f8fb; border: 1px solid transparent; border-radius: 4px; color: #1d5fa7; font-weight: 600; } QTableWidget#leftMotionTable QDoubleSpinBox:hover, QTableWidget#motionTable QDoubleSpinBox:hover, QTableWidget#leftMotionTable QDoubleSpinBox:focus, QTableWidget#motionTable QDoubleSpinBox:focus { background: #ffffff; border-color: #6aa7ea; } QFrame#urdfToolbar, QFrame#urdfStatusBar { background: #ffffff; border: none; } QFrame#urdfToolbar { border-bottom: 1px solid #dfe3e8; min-height: 46px; max-height: 46px; } QFrame#urdfStatusBar { border-top: 1px solid #dfe3e8; min-height: 38px; max-height: 38px; } QWidget#urdfLoadingView { background: #eef1f4; border: none; } QLabel#urdfLoadingTitle { color: #26323d; font-size: 16px; font-weight: 600; } QLabel#urdfLoadingDetail { color: #74808c; font-size: 12px; } QProgressBar#urdfLoadingProgress { min-height: 6px; max-height: 6px; background: #dce2e8; border: none; border-radius: 3px; } QProgressBar#urdfLoadingProgress::chunk { background: #2878f0; border-radius: 3px; } QWidget#urdfViewer { background: #e9eef2; border: 1px solid #d9dee4; border-radius: 4px; } QFrame#armCommandPanel QLabel#sectionTitle, QFrame#armTeachPanel QLabel#sectionTitle { color: #202a34; } QFrame#armTeachPanel QTableWidget { background: #ffffff; alternate-background-color: #f7f9fb; border: 1px solid #e0e5e9; border-radius: 3px; } QFrame#armTeachPanel QTableWidget::item:selected { background: #e8f2ff; color: #145da8; border-bottom: 1px solid #d7e7fa; } QPushButton#teachUndoButton { min-height: 34px; } QFrame#armCommandPanel QPushButton, QFrame#armTeachPanel QPushButton { min-height: 22px; } QFrame#armServiceHeader QLineEdit { background: #f9fafb; } QFrame#agvServiceHeader QLineEdit { background: #f9fafb; } QDialog#AgvStatusDialog { background: transparent; border: none; } QWidget#agvDialogSurface { background: transparent; border: none; } QWidget#agvDialogTitleBar { background: #f8fafc; border: 1px solid #cbd2da; border-bottom-color: #dce1e6; border-top-left-radius: 9px; border-top-right-radius: 9px; } QWidget#agvDialogContent { background: #f5f7fa; border-left: 1px solid #cbd2da; border-right: 1px solid #cbd2da; border-bottom: 1px solid #cbd2da; border-bottom-left-radius: 9px; border-bottom-right-radius: 9px; } QLabel#agvDialogMark { color: #ffffff; background: #1b6ef3; border-radius: 5px; font-size: 12px; font-weight: 700; } QLabel#agvDialogTitleBarTitle { color: #202832; font-size: 13px; font-weight: 700; } QLabel#agvDialogTitleService { color: #66727e; font-size: 12px; } QFrame#agvDialogTitleDivider { color: #d4dae0; max-height: 18px; } QPushButton#agvDialogCloseButton { min-height: 42px; padding: 0; background: transparent; border: none; border-radius: 0; border-top-right-radius: 8px; } QPushButton#agvDialogCloseButton:hover { background: #fde8e8; border: none; } QPushButton#agvDialogCloseButton:pressed { background: #f9d2d2; border: none; } QCheckBox#agvStatusSwitch { spacing: 0; background: transparent; padding: 0; } QCheckBox#agvStatusSwitch::indicator { width: 44px; height: 24px; margin: 0; padding: 0; border: none; border-radius: 0; background: transparent; } QCheckBox#agvStatusSwitch::indicator:unchecked { image: url(:/icons/toggle-off.svg); border: none; background: transparent; } QCheckBox#agvStatusSwitch::indicator:checked { image: url(:/icons/toggle-on.svg); border: none; background: transparent; } QCheckBox#configEnableSwitch { spacing: 0; background: transparent; padding: 0; } QCheckBox#configEnableSwitch::indicator { width: 44px; height: 24px; margin: 0; padding: 0; border: none; background: transparent; } QCheckBox#configEnableSwitch::indicator:unchecked { image: url(:/icons/toggle-off.svg); } QCheckBox#configEnableSwitch::indicator:checked { image: url(:/icons/toggle-on.svg); } QCheckBox#agvStatusSwitch::indicator:hover, QCheckBox#agvStatusSwitch::indicator:unchecked:hover, QCheckBox#agvStatusSwitch::indicator:checked:hover { border: none; background: transparent; } QLabel#agvLiveIndicator { color: #16794b; background: #e9f7f0; border: 1px solid #b9dfcc; border-radius: 11px; padding: 3px 9px; font-weight: 600; } QLabel#agvStateValue { color: #26323d; font-family: Consolas; font-size: 13px; font-weight: 600; } QLabel#agvNavigationValue { color: #145da8; background: #eef5fd; border-left: 3px solid #237ddd; border-radius: 4px; padding: 8px 10px; } QPushButton#agvDirectionButton { min-width: 104px; min-height: 48px; padding: 0 12px; font-weight: 600; } QPushButton#agvDirectionButton:hover { color: #145da8; background: #edf5ff; border-color: #9fc5ef; } QLabel#agvMapPreview { color: #71808e; background: #eef2f6; border: 1px solid #d8dfe6; border-radius: 4px; font-size: 13px; } QLabel#metricTitle { color: #6f7680; font-size: 12px; font-weight: 600; } QLabel#metricValue { color: #22272d; font-size: 25px; font-weight: 700; } QLabel#metricSuffix, QLabel#panelSubtitle, QLabel#mutedLabel { color: #858c95; font-size: 11px; } QLabel#sectionTitle { font-size: 15px; font-weight: 600; color: #272c32; } QLabel#eyebrow { color: #727a84; font-size: 11px; font-weight: 600; } QLabel#poseValue { color: #30363d; font-family: Consolas; font-size: 13px; } QPushButton { background: white; color: #353b43; border: 1px solid #cfd4da; border-radius: 4px; padding: 7px 13px; min-height: 20px; font-weight: 500; } QPushButton:hover { background: #f6f8fa; border-color: #aeb5bd; } QPushButton:pressed { background: #eceff2; } QPushButton:disabled { color: #a8adb4; background: #f2f3f5; border-color: #e1e3e6; } QPushButton#primaryButton { background: #1b6ef3; border-color: #1b6ef3; color: white; } QPushButton#primaryButton:hover { background: #155dcc; } QPushButton#primaryButton:disabled { background: #b9c4d2; border-color: #b9c4d2; color: #f6f8fb; } QPushButton#connectButton { background: #3c82f6; border-color: #3c82f6; color: white; } QPushButton#dangerButton { background: #c83e3e; border-color: #c83e3e; color: white; } QPushButton#dangerButton:hover { background: #ad3131; } QPushButton#dangerButton:disabled { background: #d8baba; border-color: #d8baba; color: #f7eeee; } QPushButton#teachModeButton:checked { background: #e8f0ff; border-color: #1b6ef3; color: #155dcc; } QLabel#teachJointValue { background: #eef5fd; border: none; border-left: 3px solid #237ddd; border-radius: 4px; color: #145da8; font-family: Consolas; font-weight: 600; padding: 0 9px; } QFrame#teachSeparator { color: #e4e7eb; } QFrame#armTeachPanel QTableWidget { border: 1px solid #e3e6ea; border-radius: 4px; } QPushButton#iconButton { padding: 0; min-width: 32px; max-width: 32px; min-height: 32px; max-height: 32px; } QLineEdit, QSpinBox, QDoubleSpinBox, QComboBox { background: white; border: 1px solid #cfd4da; border-radius: 4px; padding: 6px 8px; min-height: 20px; selection-background-color: #1b6ef3; } QLineEdit:focus, QSpinBox:focus, QDoubleSpinBox:focus, QComboBox:focus { border: 1px solid #1b6ef3; } QComboBox { min-height: 32px; padding: 0 34px 0 10px; } QComboBox::drop-down { subcontrol-origin: padding; subcontrol-position: top right; width: 30px; background: #f7f9fb; border: none; border-left: 1px solid #dce1e6; border-top-right-radius: 3px; border-bottom-right-radius: 3px; } QComboBox::drop-down:hover { background: #eef2f6; } QComboBox::down-arrow { image: url(:/icons/chevron-down.svg); width: 14px; height: 14px; } QComboBox QAbstractItemView { background: #ffffff; color: #27313b; border: 1px solid #cfd4da; border-radius: 4px; padding: 5px; outline: 0; show-decoration-selected: 0; selection-background-color: #edf5ff; selection-color: #145da8; } QComboBox QAbstractItemView::item { min-height: 32px; padding: 0 10px; margin: 1px 0; color: #33404c; background: transparent; border: none; border-radius: 3px; } QComboBox QAbstractItemView::item:hover { color: #27313b; background: #f3f7fb; } QComboBox QAbstractItemView::item:selected { color: #145da8; background: #e8f2ff; font-weight: 600; } QComboBox:on { border-color: #1b6ef3; } QComboBox::drop-down:on { background: #edf5ff; border-left-color: #b9d4f4; } QSpinBox, QDoubleSpinBox { min-height: 32px; padding: 0 31px 0 10px; } QSpinBox::up-button, QDoubleSpinBox::up-button { subcontrol-origin: padding; subcontrol-position: top right; width: 26px; height: 16px; background: #f7f9fb; border: none; border-left: 1px solid #dce1e6; border-bottom: 1px solid #e4e8ec; border-top-right-radius: 3px; } QSpinBox::down-button, QDoubleSpinBox::down-button { subcontrol-origin: padding; subcontrol-position: bottom right; width: 26px; height: 16px; background: #f7f9fb; border: none; border-left: 1px solid #dce1e6; border-bottom-right-radius: 3px; } QSpinBox::up-button:hover, QDoubleSpinBox::up-button:hover, QSpinBox::down-button:hover, QDoubleSpinBox::down-button:hover { background: #eaf1f8; } QSpinBox::up-button:pressed, QDoubleSpinBox::up-button:pressed, QSpinBox::down-button:pressed, QDoubleSpinBox::down-button:pressed { background: #dce8f4; } QSpinBox::up-arrow, QDoubleSpinBox::up-arrow { image: url(:/icons/chevron-up.svg); width: 11px; height: 11px; } QSpinBox::down-arrow, QDoubleSpinBox::down-arrow { image: url(:/icons/chevron-down.svg); width: 11px; height: 11px; } QSpinBox#portSpin { min-height: 30px; padding: 0 6px; } QSpinBox#portSpin::up-button, QSpinBox#portSpin::down-button { width: 0; height: 0; border: none; background: transparent; } QLineEdit:disabled, QSpinBox:disabled, QDoubleSpinBox:disabled, QComboBox:disabled { color: #9aa3ad; background: #f3f5f7; border-color: #e1e5e9; } QCheckBox::indicator { width: 15px; height: 15px; background: #ffffff; border: 1px solid #bcc4cc; border-radius: 3px; } QCheckBox::indicator:hover { border-color: #1b6ef3; } QCheckBox::indicator:checked { image: url(:/icons/check.svg); background: #1b6ef3; border-color: #1b6ef3; } QTableWidget { background: white; alternate-background-color: #fafbfc; border: none; gridline-color: #edf0f2; selection-background-color: #e8f2ff; selection-color: #145da8; outline: 0; } QHeaderView::section { background: #f4f6f8; color: #626a74; border: none; border-bottom: 1px solid #dfe3e7; padding: 7px 8px; font-size: 11px; font-weight: 600; } QTableWidget::item { padding: 5px 8px; border-bottom: 1px solid #eef0f2; } QTableWidget::item:hover { color: #27313b; background: #f3f7fb; } QTableWidget::item:selected, QTableWidget::item:selected:active, QTableWidget::item:selected:!active { color: #145da8; background: #e8f2ff; border-bottom: 1px solid #d7e7fa; } QTableWidget::item:focus { outline: none; } QScrollBar:vertical { width: 10px; background: transparent; } QScrollBar::handle:vertical { background: #c7ccd2; min-height: 30px; border-radius: 4px; } QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical { height: 0; } QTextEdit#logView { background: #171b20; color: #cdd4dc; border: none; border-radius: 4px; padding: 8px; font-family: Consolas; font-size: 12px; } QTextEdit#rpcEditor { background: #f8f9fb; color: #252b32; border: 1px solid #d9dde2; border-radius: 4px; padding: 8px; font-family: Consolas; font-size: 12px; } VideoRenderWidget#imageView { background: #1d2228; border: 1px solid #363d46; border-radius: 4px; color: #87909a; } QProgressBar { background: #e8ebef; border: none; border-radius: 2px; height: 4px; } QProgressBar::chunk { background: #218c74; border-radius: 2px; } QToolTip { background: #272c32; color: white; border: none; padding: 5px; } QFrame#bottomStatusBar { background: #ffffff; border: none; border-top: 1px solid #dce1e6; } QLabel#bottomLogLevel { color: #62707a; font-weight: 600; } QLabel#bottomLogLevel[level="ok"] { color: #177553; } QLabel#bottomLogLevel[level="warn"] { color: #b26b14; } QLabel#bottomLogLevel[level="error"] { color: #bd343b; } QLabel#bottomLogMessage { color: #68737e; } QLabel#bottomVersion { color: #68737e; font-family: Consolas; }