/* ============================================================ AR-ShipDesign — Tema Oscuro Profesional Estilo: ingeniería CAD / naval / Office dark mode Paleta: #1e2128 fondo, #252830 panel, #2d3139 elevado, #0d99ff acento, #e8eaf0 texto, #8b919e texto muted ============================================================ */ /* ─── BASE ─────────────────────────────────────────────────── */ * { outline: none; } QMainWindow, QDialog, QWidget { background-color: #1e2128; color: #e8eaf0; font-family: "Segoe UI", Arial, sans-serif; font-size: 13px; } /* ─── MENÚ ──────────────────────────────────────────────────── */ QMenuBar { background-color: #252830; color: #e8eaf0; border-bottom: 1px solid #333841; padding: 1px 0; } QMenuBar::item { padding: 4px 10px; background: transparent; } QMenuBar::item:selected { background-color: #2d3139; color: #ffffff; } QMenuBar::item:pressed { background-color: #0d99ff; color: #ffffff; } QMenu { background-color: #252830; color: #e8eaf0; border: 1px solid #3a3f4b; padding: 3px 0; } QMenu::item { padding: 5px 28px 5px 20px; } QMenu::item:selected { background-color: #0d99ff; color: #ffffff; } QMenu::item:disabled { color: #555b67; } QMenu::separator { height: 1px; background: #333841; margin: 3px 8px; } /* ─── RIBBON TOOLBAR (contenedor) ───────────────────────────── */ QToolBar#ribbonToolbar { background-color: #252830; border: none; border-bottom: 1px solid #333841; padding: 0; spacing: 0; margin: 0; } /* ─── RIBBON BAR ────────────────────────────────────────────── */ QWidget#ribbonBar { background-color: #252830; } /* Fila de pestañas */ QWidget#ribbonTabRow { background-color: #1e2128; border-bottom: 1px solid #333841; } /* Botones de pestañas */ QToolButton#ribbonTabBtn { background: transparent; border: none; border-bottom: 2px solid transparent; border-radius: 0; padding: 0 14px; color: #8b919e; font-size: 12px; min-width: 80px; height: 26px; } QToolButton#ribbonTabBtn:hover { background-color: #2d3139; color: #c8cad0; } QToolButton#ribbonTabBtn:checked { background-color: #252830; color: #0d99ff; border-bottom: 2px solid #0d99ff; font-weight: bold; } /* Stack de contenido del ribbon */ QStackedWidget#ribbonContent { background-color: #252830; } /* Grupo individual */ QFrame#ribbonGroup { background-color: transparent; border: none; margin: 2px 0; } /* Área de botones dentro del grupo */ QWidget#ribbonBtnArea { background-color: transparent; } /* Etiqueta del nombre del grupo */ QLabel#ribbonGroupTitle { color: #8b919e; font-size: 10px; padding: 2px 0 3px 0; background-color: transparent; } /* Separador vertical entre grupos */ QFrame#ribbonSep { color: #2d3139; margin: 6px 2px; } /* Botones de la ribbon */ QToolButton#ribbonButton { background: transparent; color: #e8eaf0; border: 1px solid transparent; border-radius: 3px; padding: 4px 6px 2px 6px; font-size: 11px; min-width: 46px; max-width: 72px; } QToolButton#ribbonButton:hover { background-color: #2d3139; border-color: #3a3f4b; } QToolButton#ribbonButton:pressed { background-color: #0d99ff; color: #ffffff; border-color: #0d99ff; } QToolButton#ribbonButton:checked { background-color: #1a4a70; border-color: #0d99ff; } QToolButton#ribbonButton:disabled { color: #555b67; } /* ─── 4 VIEWPORTS ───────────────────────────────────────────── */ QWidget#fourViewport { background-color: #12151a; } QFrame#viewportFrame { background-color: #12151a; border: 1px solid #1e2128; } QWidget#viewportTitleBar { background-color: #1a1e26; border-bottom: 1px solid #2a2e38; } QLabel#viewportTitle { color: #6b7280; font-size: 11px; font-weight: bold; letter-spacing: 0.5px; } QWidget#viewportCanvas { background-color: #0e1117; } QLabel#viewportPlaceholder { color: #1e2540; font-size: 20px; font-family: "Consolas", monospace; font-weight: bold; letter-spacing: 2px; } /* Separadores arrastrables del viewport */ QSplitter#viewportSplitter::handle { background-color: #0d99ff; } QSplitter#viewportSplitter::handle:horizontal { width: 3px; } QSplitter#viewportSplitter::handle:vertical { height: 3px; } QSplitter#viewportSplitter::handle:hover { background-color: #3db8ff; } /* ─── DOCK WIDGETS ──────────────────────────────────────────── */ QDockWidget { color: #e8eaf0; font-weight: bold; font-size: 12px; } QDockWidget::title { background-color: #252830; padding: 4px 8px; border-bottom: 1px solid #333841; text-align: left; } QDockWidget::close-button, QDockWidget::float-button { background: transparent; border: none; padding: 2px; } QDockWidget::close-button:hover, QDockWidget::float-button:hover { background-color: #3a3f4b; border-radius: 2px; } /* ─── PANEL DE CAPAS ────────────────────────────────────────── */ QWidget#layersPanel { background-color: #1e2128; } QWidget#layersPanelHeader { background-color: #252830; border-bottom: 1px solid #333841; } QFrame#panelSep { color: #333841; max-height: 1px; } QScrollArea#layersScrollArea { background-color: #1e2128; border: none; } QWidget#layersContainer { background-color: #1e2128; } QWidget#layerRow { background-color: transparent; min-height: 26px; } QWidget#layerRow:hover { background-color: #252830; } QLabel#layerName { color: #c8cad0; font-size: 12px; } /* Botón de visibilidad de capa */ QToolButton#layerVisBtn { background: transparent; border: 1px solid transparent; border-radius: 2px; color: #0d99ff; font-size: 9px; font-weight: bold; } QToolButton#layerVisBtn:hover { background-color: #2d3139; border-color: #3a3f4b; } QToolButton#layerVisBtn:checked { background-color: #1a4a70; border-color: #0d99ff; } /* Botón de bloqueo de capa */ QToolButton#layerLockBtn { background: transparent; border: 1px solid transparent; border-radius: 2px; color: #fbbf24; font-size: 9px; } QToolButton#layerLockBtn:hover { background-color: #2d3139; border-color: #3a3f4b; } QToolButton#layerLockBtn:checked { background-color: #3d2c00; border-color: #fbbf24; } /* ─── PROPIEDADES ───────────────────────────────────────────── */ QWidget#propContent { background-color: #1e2128; } QLabel#propSection { color: #8b919e; font-size: 11px; padding-bottom: 6px; border-bottom: 1px solid #333841; margin-bottom: 4px; } QLabel#propKey { color: #8b919e; font-size: 12px; } QLabel#propVal { color: #e8eaf0; font-size: 13px; } /* ─── PANEL HIDROSTÁTICOS ───────────────────────────────────── */ QFrame#hydrostaticsPanel { background-color: #14181f; border-top: 1px solid #333841; } QLabel#hydroTitle { color: #555b67; font-size: 10px; font-weight: bold; padding: 0 10px 0 4px; letter-spacing: 1px; } QFrame#hydroSep { color: #333841; } QLabel#hydroKey { color: #8b919e; font-size: 11px; padding: 0 2px; } QLabel#hydroVal { color: #0d99ff; font-family: "Consolas", monospace; font-size: 12px; min-width: 52px; } QLabel#hydroImoNone { color: #555b67; font-family: "Consolas", monospace; font-size: 12px; } QLabel#hydroImoOk { color: #34c759; font-family: "Consolas", monospace; font-size: 12px; font-weight: bold; } QLabel#hydroImoFail { color: #ff3b30; font-family: "Consolas", monospace; font-size: 12px; font-weight: bold; } /* ─── MÓDULOS PLACEHOLDER ───────────────────────────────────── */ QWidget#modulePlaceholder { background-color: #1e2128; } QLabel#placeholderTitle { color: #2d3448; font-size: 18px; font-weight: bold; } QLabel#placeholderDesc { color: #3a4055; font-size: 13px; } QLabel#placeholderMsg { color: #333841; font-size: 12px; } /* ─── BARRA DE ESTADO ───────────────────────────────────────── */ QStatusBar { background-color: #0d99ff; color: #ffffff; font-size: 12px; } QStatusBar::item { border: none; } QLabel#statusVersion { color: rgba(255,255,255,0.85); font-size: 11px; font-weight: bold; } QLabel#statusLabel { color: rgba(255,255,255,0.70); font-size: 11px; } QLabel#statusValue { color: #ffffff; font-size: 11px; font-weight: bold; } /* ─── SCROLLBARS ────────────────────────────────────────────── */ QScrollBar:vertical { background: #1e2128; width: 10px; border: none; } QScrollBar::handle:vertical { background: #3a3f4b; border-radius: 5px; min-height: 24px; } QScrollBar::handle:vertical:hover { background: #555b67; } QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical { height: 0; } QScrollBar:horizontal { background: #1e2128; height: 10px; border: none; } QScrollBar::handle:horizontal { background: #3a3f4b; border-radius: 5px; min-width: 24px; } QScrollBar::handle:horizontal:hover { background: #555b67; } QScrollBar::add-line:horizontal, QScrollBar::sub-line:horizontal { width: 0; } /* ─── BOTONES ───────────────────────────────────────────────── */ QPushButton { background-color: #2d3139; color: #e8eaf0; border: 1px solid #3a3f4b; border-radius: 3px; padding: 5px 14px; min-width: 72px; } QPushButton:hover { background-color: #3a3f4b; border-color: #555b67; } QPushButton:pressed { background-color: #0d99ff; color: #ffffff; border-color: #0d99ff; } QPushButton:default { border-color: #0d99ff; } QPushButton:disabled { color: #555b67; border-color: #2d3139; } /* ─── CAMPOS DE ENTRADA ─────────────────────────────────────── */ QLineEdit, QSpinBox, QDoubleSpinBox, QComboBox { background-color: #252830; color: #e8eaf0; border: 1px solid #3a3f4b; border-radius: 3px; padding: 4px 6px; selection-background-color: #0d99ff; } QLineEdit:focus, QSpinBox:focus, QDoubleSpinBox:focus, QComboBox:focus { border-color: #0d99ff; } QLineEdit:disabled, QSpinBox:disabled, QDoubleSpinBox:disabled { color: #555b67; background-color: #1e2128; } QComboBox::drop-down { border: none; width: 20px; } QComboBox QAbstractItemView { background-color: #252830; color: #e8eaf0; border: 1px solid #3a3f4b; selection-background-color: #0d99ff; } /* ─── TABLAS Y LISTAS ───────────────────────────────────────── */ QHeaderView::section { background-color: #252830; color: #8b919e; border: none; border-right: 1px solid #333841; border-bottom: 1px solid #333841; padding: 4px 8px; font-size: 12px; } QTableView, QListView { background-color: #1e2128; alternate-background-color: #212630; color: #e8eaf0; border: 1px solid #333841; gridline-color: #2d3139; selection-background-color: #0d99ff; selection-color: #ffffff; } QTableView::item:hover, QListView::item:hover { background-color: #2d3139; } /* ─── ÁRBOL ─────────────────────────────────────────────────── */ QTreeWidget { background-color: #1e2128; alternate-background-color: #212630; color: #e8eaf0; border: none; selection-background-color: #0d99ff; selection-color: #ffffff; font-size: 13px; } QTreeWidget::item { padding: 3px 4px; border: none; } QTreeWidget::item:hover { background-color: #2d3139; } QTreeWidget::item:selected { background-color: #0d99ff; color: #ffffff; } QTreeWidget::branch { background-color: #1e2128; } /* ─── PESTAÑAS ──────────────────────────────────────────────── */ QTabWidget::pane { border: none; border-top: 1px solid #333841; background-color: #1e2128; } QTabBar { background-color: #252830; } QTabBar::tab { background-color: #252830; color: #8b919e; border: none; border-right: 1px solid #333841; padding: 6px 14px; min-width: 70px; font-size: 12px; } QTabBar::tab:selected { background-color: #1e2128; color: #e8eaf0; border-top: 2px solid #0d99ff; } QTabBar::tab:hover:!selected { background-color: #2d3139; color: #e8eaf0; } /* ─── SPLITTER GENERAL ──────────────────────────────────────── */ QSplitter::handle { background-color: #333841; } QSplitter::handle:horizontal { width: 1px; } QSplitter::handle:vertical { height: 1px; } /* ─── MENSAJES / TOOLTIP ────────────────────────────────────── */ QMessageBox { background-color: #252830; } QMessageBox QLabel { color: #e8eaf0; } QToolTip { background-color: #252830; color: #e8eaf0; border: 1px solid #3a3f4b; padding: 4px 6px; font-size: 12px; } /* ─── WIDGET DE INFO (ribbonInfoWidget legado) ──────────────── */ QWidget#ribbonInfoWidget { background-color: transparent; border-left: 1px solid #333841; padding-left: 4px; } QLabel#tbLabel { color: #8b919e; font-size: 11px; } QLabel#tbValue { color: #0d99ff; font-weight: bold; font-size: 11px; }