/* ============================================================ AR-ShipDesign — Tema Oscuro Profesional v2 Paleta "Deep Navy Slate" — sin negro puro, azul oceánico ───────────────────────────────────────────────────────── #252a38 fondo principal (slate azul-gris) #2e3342 paneles / toolbar #373c4e elementos elevados #424757 hover / inputs #1a1e2c viewport canvas (azul marino profundo) #22263a viewport title bar #454a5e bordes principales #363b4e bordes sutiles #8a93aa texto muted #dce1f0 texto principal #0d99ff acento (azul eléctrico) ============================================================ */ /* ─── BASE ─────────────────────────────────────────────────── */ * { outline: none; } QMainWindow, QDialog, QWidget { background-color: #252a38; color: #dce1f0; font-family: "Segoe UI", Arial, sans-serif; font-size: 13px; } /* ─── MENÚ ──────────────────────────────────────────────────── */ QMenuBar { background-color: #2e3342; color: #dce1f0; border-bottom: 1px solid #454a5e; padding: 1px 0; } QMenuBar::item { padding: 4px 10px; background: transparent; } QMenuBar::item:selected { background-color: #373c4e; color: #ffffff; } QMenuBar::item:pressed { background-color: #0d99ff; color: #ffffff; } QMenu { background-color: #2e3342; color: #dce1f0; border: 1px solid #454a5e; padding: 3px 0; } QMenu::item { padding: 5px 28px 5px 20px; } QMenu::item:selected { background-color: #0d99ff; color: #ffffff; } QMenu::item:disabled { color: #555c6e; } QMenu::separator { height: 1px; background: #454a5e; margin: 3px 8px; } /* ─── RIBBON TOOLBAR (contenedor QToolBar) ──────────────────── */ QToolBar#ribbonToolbar { background-color: #2e3342; border: none; border-bottom: 1px solid #454a5e; padding: 0; spacing: 0; margin: 0; } /* ─── RIBBON BAR ────────────────────────────────────────────── */ QWidget#ribbonBar { background-color: #2e3342; } /* Fila de pestañas */ QWidget#ribbonTabRow { background-color: #252a38; border-bottom: 1px solid #454a5e; } /* Botones de pestañas */ QToolButton#ribbonTabBtn { background: transparent; border: none; border-bottom: 2px solid transparent; border-radius: 0; padding: 0 16px; color: #8a93aa; font-size: 12px; min-width: 80px; height: 26px; } QToolButton#ribbonTabBtn:hover { background-color: #373c4e; color: #c0c8d8; } QToolButton#ribbonTabBtn:checked { background-color: #2e3342; color: #0d99ff; border-bottom: 2px solid #0d99ff; font-weight: bold; } /* Stack de contenido */ QStackedWidget#ribbonContent { background-color: #2e3342; border-bottom: 1px solid #454a5e; } /* Grupo de botones */ QFrame#ribbonGroup { background-color: transparent; border: none; margin: 2px 0; } QWidget#ribbonBtnArea { background-color: transparent; } QLabel#ribbonGroupTitle { color: #7a8398; font-size: 10px; padding: 2px 0 3px 0; background-color: transparent; } QFrame#ribbonSep { color: #373c4e; margin: 6px 2px; } /* Botones — sin max-width para que el texto no se corte */ QToolButton#ribbonButton { background: transparent; color: #dce1f0; border: 1px solid transparent; border-radius: 3px; padding: 4px 8px 2px 8px; font-size: 11px; min-width: 48px; /* SIN max-width — texto completo siempre visible */ } QToolButton#ribbonButton:hover { background-color: #373c4e; border-color: #454a5e; } QToolButton#ribbonButton:pressed { background-color: #0d99ff; color: #ffffff; border-color: #0d99ff; } QToolButton#ribbonButton:checked { background-color: #1a4070; border-color: #0d99ff; } QToolButton#ribbonButton:disabled { color: #555c6e; } /* ─── 4 VIEWPORTS ───────────────────────────────────────────── */ QWidget#fourViewport { background-color: #1a1e2c; } QFrame#viewportFrame { background-color: #1a1e2c; border: 1px solid #2a2e40; } QWidget#viewportTitleBar { background-color: #22263a; border-bottom: 1px solid #2e3448; } QLabel#viewportTitle { color: #6070a0; font-size: 11px; font-weight: bold; letter-spacing: 0.5px; } QWidget#viewportCanvas { background-color: #1a1e2c; } /* Texto watermark en el viewport — sutil pero legible */ QLabel#viewportPlaceholder { color: #2a3060; font-size: 16px; font-family: "Consolas", monospace; font-weight: bold; letter-spacing: 2px; } /* Separadores arrastrables del viewport — azul eléctrico */ QSplitter#viewportSplitter { background-color: #1a1e2c; } QSplitter#viewportSplitter::handle { background-color: #0d99ff; } QSplitter#viewportSplitter::handle:horizontal { width: 3px; } QSplitter#viewportSplitter::handle:vertical { height: 3px; } QSplitter#viewportSplitter::handle:hover { background-color: #4dbfff; } /* ─── DOCK WIDGETS ──────────────────────────────────────────── */ QDockWidget { color: #dce1f0; font-weight: bold; font-size: 12px; } QDockWidget::title { background-color: #2e3342; padding: 4px 8px; border-bottom: 1px solid #454a5e; 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: #454a5e; border-radius: 2px; } /* ─── PANEL DE CAPAS ────────────────────────────────────────── */ QWidget#layersPanel { background-color: #252a38; } QWidget#layersPanelHeader { background-color: #2e3342; border-bottom: 1px solid #454a5e; } QFrame#panelSep { color: #454a5e; max-height: 1px; } QScrollArea#layersScrollArea { background-color: #252a38; border: none; } QWidget#layersContainer { background-color: #252a38; } /* Fila de capa */ QWidget#layerRow { background-color: transparent; min-height: 26px; } QWidget#layerRow:hover { background-color: #2e3342; } QLabel#layerName { color: #c0c8d8; font-size: 12px; } /* Botón de visibilidad: azul = capa visible, gris oscuro = oculta (sin texto — el color ES el indicador) */ QToolButton#layerVisBtn { background-color: #0d99ff; border: none; border-radius: 2px; /* 16×16 fijo desde Python */ } QToolButton#layerVisBtn:!checked { background-color: #363b4e; border: 1px solid #454a5e; } QToolButton#layerVisBtn:hover { border: 1px solid #6bb8ff; } /* Botón de bloqueo: ámbar = bloqueada, gris = libre */ QToolButton#layerLockBtn { background-color: #363b4e; border: 1px solid #454a5e; border-radius: 2px; } QToolButton#layerLockBtn:checked { background-color: #fbbf24; border-color: #fbbf24; } QToolButton#layerLockBtn:hover { border: 1px solid #ffd066; } /* ─── PROPIEDADES ───────────────────────────────────────────── */ QWidget#propContent { background-color: #252a38; } QLabel#propSection { color: #8a93aa; font-size: 11px; padding-bottom: 6px; border-bottom: 1px solid #454a5e; margin-bottom: 4px; } QLabel#propKey { color: #8a93aa; font-size: 12px; } QLabel#propVal { color: #dce1f0; font-size: 13px; } /* ─── PANEL HIDROSTÁTICOS ───────────────────────────────────── */ QFrame#hydrostaticsPanel { background-color: #1e2232; border-top: 1px solid #454a5e; } QLabel#hydroTitle { color: #555c6e; font-size: 10px; font-weight: bold; padding: 0 10px 0 4px; letter-spacing: 1px; } QFrame#hydroSep { color: #363b4e; } QLabel#hydroKey { color: #8a93aa; font-size: 11px; padding: 0 2px; } QLabel#hydroVal { color: #0d99ff; font-family: "Consolas", monospace; font-size: 12px; min-width: 52px; } QLabel#hydroImoNone { color: #555c6e; 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: #252a38; } QLabel#placeholderTitle { color: #5a6585; font-size: 18px; font-weight: bold; } QLabel#placeholderDesc { color: #4e5870; font-size: 13px; } QLabel#placeholderMsg { color: #414c64; font-size: 12px; } /* ─── BARRA DE ESTADO ───────────────────────────────────────── */ QStatusBar { background-color: #0a7de0; 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: #252a38; width: 10px; border: none; } QScrollBar::handle:vertical { background: #454a5e; border-radius: 5px; min-height: 24px; } QScrollBar::handle:vertical:hover { background: #6b7385; } QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical { height: 0; } QScrollBar:horizontal { background: #252a38; height: 10px; border: none; } QScrollBar::handle:horizontal { background: #454a5e; border-radius: 5px; min-width: 24px; } QScrollBar::handle:horizontal:hover { background: #6b7385; } QScrollBar::add-line:horizontal, QScrollBar::sub-line:horizontal { width: 0; } /* ─── BOTONES ───────────────────────────────────────────────── */ QPushButton { background-color: #373c4e; color: #dce1f0; border: 1px solid #454a5e; border-radius: 3px; padding: 5px 14px; min-width: 72px; } QPushButton:hover { background-color: #424757; border-color: #6b7385; } QPushButton:pressed { background-color: #0d99ff; color: #ffffff; border-color: #0d99ff; } QPushButton:default { border-color: #0d99ff; } QPushButton:disabled { color: #555c6e; border-color: #363b4e; } /* ─── CAMPOS DE ENTRADA ─────────────────────────────────────── */ QLineEdit, QSpinBox, QDoubleSpinBox, QComboBox { background-color: #2e3342; color: #dce1f0; border: 1px solid #454a5e; 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: #555c6e; background-color: #252a38; } QComboBox::drop-down { border: none; width: 20px; } QComboBox QAbstractItemView { background-color: #2e3342; color: #dce1f0; border: 1px solid #454a5e; selection-background-color: #0d99ff; } /* ─── TABLAS Y LISTAS ───────────────────────────────────────── */ QHeaderView::section { background-color: #2e3342; color: #8a93aa; border: none; border-right: 1px solid #454a5e; border-bottom: 1px solid #454a5e; padding: 4px 8px; font-size: 12px; } QTableView, QListView { background-color: #252a38; alternate-background-color: #282d3c; color: #dce1f0; border: 1px solid #454a5e; gridline-color: #363b4e; selection-background-color: #0d99ff; selection-color: #ffffff; } QTableView::item:hover, QListView::item:hover { background-color: #373c4e; } /* ─── ÁRBOL ─────────────────────────────────────────────────── */ QTreeWidget { background-color: #252a38; alternate-background-color: #282d3c; color: #dce1f0; border: none; selection-background-color: #0d99ff; selection-color: #ffffff; font-size: 13px; } QTreeWidget::item { padding: 3px 4px; border: none; } QTreeWidget::item:hover { background-color: #373c4e; } QTreeWidget::item:selected { background-color: #0d99ff; color: #ffffff; } QTreeWidget::branch { background-color: #252a38; } /* ─── PESTAÑAS ──────────────────────────────────────────────── */ QTabWidget::pane { border: none; border-top: 1px solid #454a5e; background-color: #252a38; } QTabBar { background-color: #2e3342; } QTabBar::tab { background-color: #2e3342; color: #8a93aa; border: none; border-right: 1px solid #454a5e; padding: 6px 14px; min-width: 70px; font-size: 12px; } QTabBar::tab:selected { background-color: #252a38; color: #dce1f0; border-top: 2px solid #0d99ff; } QTabBar::tab:hover:!selected { background-color: #373c4e; color: #dce1f0; } /* ─── SPLITTER GENERAL ──────────────────────────────────────── */ QSplitter::handle { background-color: #454a5e; } QSplitter::handle:horizontal { width: 1px; } QSplitter::handle:vertical { height: 1px; } /* ─── MENSAJES / TOOLTIP ────────────────────────────────────── */ QMessageBox { background-color: #2e3342; } QMessageBox QLabel { color: #dce1f0; } QToolTip { background-color: #2e3342; color: #dce1f0; border: 1px solid #454a5e; padding: 4px 6px; font-size: 12px; }