/* Gráfica Magro portal identity — true black + GM accents */
:root {
  --gm-black: #000000;
  --gm-surface: #0a0a0a;
  --gm-card: #111111;
  --gm-border: rgba(230, 82, 151, 0.35);
  --gm-text: #f5f5f5;
  --gm-text-muted: #b0b0b0;
  --gm-accent-pink: #e65297;
  --gm-accent-pink-hover: #d14487;
  --gm-accent-yellow: #f6d76b;
}

body.portal-theme-grafica {
  background: var(--gm-black) !important;
  color: var(--gm-text);
}

body.portal-theme-grafica main.container {
  background: transparent;
}

body.portal-theme-grafica #portal-efemerides-bar {
  display: none !important;
}

body.portal-theme-grafica .portal-header {
  background: var(--gm-black) !important;
  border-bottom: 1px solid var(--gm-border);
  color: #fff;
}

body.portal-theme-grafica .portal-header .head-title,
body.portal-theme-grafica .portal-header .head-sub {
  color: #fff;
}

body.portal-theme-grafica .portal-header a.text-dark {
  color: #fff !important;
}

body.portal-theme-grafica .portal-header a.text-dark:hover {
  color: var(--gm-accent-yellow) !important;
}

body.portal-theme-grafica .portal-header .user-greeting {
  color: var(--gm-accent-yellow);
}

body.portal-theme-grafica .portal-header .user-greeting .user-email {
  color: rgba(255, 255, 255, 0.9);
}

body.portal-theme-grafica .portal-header .btn-outline-secondary,
body.portal-theme-grafica .portal-header .btn-outline-primary {
  border-color: rgba(255, 255, 255, 0.5);
  color: #fff;
}

body.portal-theme-grafica .portal-header .btn-outline-secondary:hover,
body.portal-theme-grafica .portal-header .btn-outline-primary:hover {
  background: var(--gm-accent-pink);
  border-color: var(--gm-accent-pink);
  color: #fff;
}

body.portal-theme-grafica .portal-footer {
  background: var(--gm-black) !important;
  border-top: 1px solid var(--gm-border);
  color: var(--gm-text-muted);
}

body.portal-theme-grafica .portal-footer a {
  color: var(--gm-accent-yellow);
}

body.portal-theme-grafica .portal-footer a:hover {
  color: var(--gm-accent-pink);
}

body.portal-theme-grafica .portal-footer .footer-contact,
body.portal-theme-grafica .portal-footer .contact-item {
  color: var(--gm-text-muted);
}

body.portal-theme-grafica .portal-footer .phone-label {
  color: #fff;
}

body.portal-theme-grafica .portal-footer .btn-footer-dropdown {
  color: var(--gm-accent-yellow) !important;
}

body.portal-theme-grafica .portal-footer .btn-footer-dropdown:hover {
  color: var(--gm-accent-pink) !important;
}

body.portal-theme-grafica .portal-footer .btn-whatsapp {
  background: #25d366;
  color: #fff;
}

body.portal-theme-grafica .portal-footer .btn-whatsapp:hover {
  background: #20bd5a;
  color: #fff;
}

body.portal-theme-grafica .portal-footer .btn-email {
  background: var(--gm-accent-pink);
  color: #fff;
}

body.portal-theme-grafica .portal-footer .btn-email:hover {
  background: var(--gm-accent-pink-hover);
  color: #fff;
}

body.portal-theme-grafica .portal-footer .footer-links-row {
  border-top-color: rgba(230, 82, 151, 0.3);
}

body.portal-theme-grafica .portal-footer .dropdown-menu {
  background: var(--gm-card);
  border-color: var(--gm-border);
}

body.portal-theme-grafica .portal-footer .dropdown-item {
  color: var(--gm-text-muted);
}

body.portal-theme-grafica .portal-footer .dropdown-item:hover {
  background: rgba(230, 82, 151, 0.2);
  color: var(--gm-accent-yellow);
}

body.portal-theme-grafica .portal-footer .footer-brands {
  display: none;
}

body.portal-theme-grafica .portal-footer .footer-legal-row {
  padding-top: 0.75rem;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

body.portal-theme-grafica .portal-footer .gm-footer-legal {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
  align-items: center;
  justify-content: center;
}

body.portal-theme-grafica .portal-footer .gm-footer-legal a {
  color: #9ca3af;
  font-size: 0.875rem;
  font-weight: 500;
  text-decoration: none;
}

body.portal-theme-grafica .portal-footer .gm-footer-legal a:hover {
  color: var(--gm-accent-yellow);
}

/* Gusi assistant on Grafica Magro portal — ensure cards sit on dark canvas */
body.portal-theme-grafica .gusi-assistant {
  --gusi-surface-card: #111111;
}
body.portal-theme-grafica .gusi-layout-page .gusi-chat-card,
body.portal-theme-grafica .gusi-layout-page .gusi-summary-card {
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.45);
}

/* Portal content: historial, mis pedidos, detalle, forms */
body.portal-theme-grafica main.container {
  color: var(--gm-text);
}

body.portal-theme-grafica main.container h1,
body.portal-theme-grafica main.container .h4,
body.portal-theme-grafica main.container strong {
  color: var(--gm-text);
}

body.portal-theme-grafica main.container .text-muted {
  color: var(--gm-text-muted) !important;
}

body.portal-theme-grafica main.container a:not(.btn) {
  color: var(--gm-accent-yellow);
}

body.portal-theme-grafica main.container a:not(.btn):hover {
  color: var(--gm-accent-pink);
}

body.portal-theme-grafica main.container .table {
  --bs-table-bg: var(--gm-card);
  --bs-table-color: var(--gm-text);
  --bs-table-border-color: var(--gm-border);
  --bs-table-striped-bg: rgba(230, 82, 151, 0.08);
  --bs-table-hover-bg: rgba(230, 82, 151, 0.14);
  --bs-table-hover-color: var(--gm-text);
}

body.portal-theme-grafica main.container .table thead,
body.portal-theme-grafica main.container .table-light,
body.portal-theme-grafica main.container .table thead th {
  background: var(--gm-surface) !important;
  color: var(--gm-accent-yellow);
  border-color: var(--gm-border);
}

body.portal-theme-grafica main.container .table td,
body.portal-theme-grafica main.container .table th {
  border-color: var(--gm-border);
}

body.portal-theme-grafica main.container .table-hover > tbody > tr:hover > * {
  color: var(--gm-text);
}

body.portal-theme-grafica .historial-table-wrapper {
  background: var(--gm-card);
  border-color: var(--gm-border);
}

body.portal-theme-grafica .historial-table th {
  background: var(--gm-surface) !important;
  color: var(--gm-accent-yellow);
  box-shadow: 0 1px 0 0 var(--gm-border);
}

body.portal-theme-grafica .historial-table tr.solicitud-row:hover {
  background-color: rgba(230, 82, 151, 0.12);
}

body.portal-theme-grafica .historial-table .collapse-detail .bg-light,
body.portal-theme-grafica .historial-table tr.table-light {
  background: var(--gm-surface) !important;
}

body.portal-theme-grafica .historial-table .collapse-detail .border-top {
  border-top-color: var(--gm-border) !important;
}

body.portal-theme-grafica .historial-filters {
  background: var(--gm-card);
  border: 1px solid var(--gm-border);
}

body.portal-theme-grafica .historial-filters label {
  color: var(--gm-text);
}

body.portal-theme-grafica main.container .card {
  background: var(--gm-card);
  border-color: var(--gm-border);
  color: var(--gm-text);
}

body.portal-theme-grafica main.container .card.border-primary {
  border-color: var(--gm-accent-pink) !important;
}

body.portal-theme-grafica main.container .card.border-success {
  border-color: rgba(246, 215, 107, 0.55) !important;
}

body.portal-theme-grafica main.container .card.border-secondary {
  border-color: var(--gm-border) !important;
}

body.portal-theme-grafica main.container .card-header {
  background: var(--gm-surface);
  border-bottom-color: var(--gm-border);
  color: var(--gm-text);
}

body.portal-theme-grafica main.container .card-header.bg-primary {
  background: var(--gm-accent-pink) !important;
  border-bottom-color: var(--gm-accent-pink);
  color: #fff;
}

body.portal-theme-grafica main.container .card.bg-light {
  background: var(--gm-surface) !important;
  border-color: var(--gm-border);
}

body.portal-theme-grafica main.container pre.bg-light {
  background: var(--gm-surface) !important;
  border: 1px solid var(--gm-border);
  color: var(--gm-text);
}

body.portal-theme-grafica main.container .badge.bg-primary {
  background: var(--gm-accent-pink) !important;
  color: #fff;
}

body.portal-theme-grafica main.container .badge.bg-success {
  background: rgba(246, 215, 107, 0.25) !important;
  color: var(--gm-accent-yellow);
  border: 1px solid rgba(246, 215, 107, 0.45);
}

body.portal-theme-grafica main.container .badge.bg-secondary {
  background: rgba(255, 255, 255, 0.12) !important;
  color: var(--gm-text-muted);
}

body.portal-theme-grafica main.container .badge.bg-warning {
  background: rgba(246, 215, 107, 0.22) !important;
  color: var(--gm-accent-yellow);
}

body.portal-theme-grafica main.container .btn-outline-primary {
  border-color: var(--gm-accent-pink);
  color: var(--gm-accent-pink);
}

body.portal-theme-grafica main.container .btn-outline-primary:hover,
body.portal-theme-grafica main.container .btn-outline-primary:focus {
  background: var(--gm-accent-pink);
  border-color: var(--gm-accent-pink);
  color: #fff;
}

body.portal-theme-grafica main.container .btn-outline-secondary {
  border-color: rgba(255, 255, 255, 0.45);
  color: var(--gm-text);
}

body.portal-theme-grafica main.container .btn-outline-secondary:hover,
body.portal-theme-grafica main.container .btn-outline-secondary:focus {
  background: rgba(230, 82, 151, 0.2);
  border-color: var(--gm-accent-pink);
  color: var(--gm-accent-yellow);
}

body.portal-theme-grafica main.container .btn-outline-warning {
  border-color: var(--gm-accent-yellow);
  color: var(--gm-accent-yellow);
}

body.portal-theme-grafica main.container .btn-outline-warning:hover,
body.portal-theme-grafica main.container .btn-outline-warning:focus {
  background: rgba(246, 215, 107, 0.15);
  border-color: var(--gm-accent-yellow);
  color: var(--gm-accent-yellow);
}

body.portal-theme-grafica main.container .btn-link {
  color: var(--gm-accent-yellow);
}

body.portal-theme-grafica main.container .btn-link:hover {
  color: var(--gm-accent-pink);
}

body.portal-theme-grafica main.container .form-control,
body.portal-theme-grafica main.container .form-select {
  background: var(--gm-black);
  border-color: var(--gm-border);
  color: var(--gm-text);
}

body.portal-theme-grafica main.container .form-control:focus,
body.portal-theme-grafica main.container .form-select:focus {
  background: var(--gm-black);
  border-color: var(--gm-accent-pink);
  color: var(--gm-text);
  box-shadow: 0 0 0 0.2rem rgba(230, 82, 151, 0.25);
}

body.portal-theme-grafica main.container .form-check-label {
  color: var(--gm-text-muted);
}

body.portal-theme-grafica main.container .form-label {
  color: var(--gm-text);
}

body.portal-theme-grafica main.container .alert-success {
  background: rgba(37, 211, 102, 0.12);
  border-color: rgba(37, 211, 102, 0.35);
  color: #9ef0b8;
}

body.portal-theme-grafica main.container .alert-warning {
  background: rgba(246, 215, 107, 0.12);
  border-color: rgba(246, 215, 107, 0.35);
  color: var(--gm-accent-yellow);
}

body.portal-theme-grafica main.container .text-success {
  color: #9ef0b8 !important;
}

body.portal-theme-grafica main.container .text-warning {
  color: var(--gm-accent-yellow) !important;
}

body.portal-theme-grafica main.container .text-danger {
  color: #ff8a8a !important;
}

body.portal-theme-grafica main.container hr {
  border-color: var(--gm-border);
  opacity: 1;
}

body.portal-theme-grafica .portal-header .btn-outline-danger {
  border-color: rgba(255, 120, 120, 0.55);
  color: #ffb4b4;
}

body.portal-theme-grafica .portal-header .btn-outline-danger:hover {
  background: rgba(255, 80, 80, 0.2);
  border-color: #ff8080;
  color: #fff;
}
