/* Rise and Shine owned workspace primitives. Loaded after vendor CSS. */
@media screen {
/* Rise and Shine | owned light design layer | design-20261102 */
/* Replaces the obsolete owned dark-theme fragments; vendor CSS remains untouched. */
:root {
  --rns-workspace: #f4f6fb; --rns-surface: #ffffff; --rns-ink: #10243a;
  --rns-muted: #475569; --rns-line: #7a8ca3; --rns-sidebar: #11263d;
  --rns-sidebar-text: #e2e8f0; --rns-brand: #0f766e; --rns-brand-hover: #115e59;
  --rns-focus: #0f766e; --rns-success-text: #166534; --rns-success-bg: #dcfce7;
  --rns-danger-text: #991b1b; --rns-danger-bg: #fee2e2; --rns-warning-text: #92400e;
  --rns-warning-bg: #fef3c7; --rns-info-text: #1e40af; --rns-info-bg: #dbeafe;
  --rns-header: #e9edf3;
}

/* Screen baseline: a light canvas, white surfaces, and readable system fallback. */
body.rns-design, body.rns-design #wrapper, body.rns-design #content-wrapper,
body.rns-design #content, body.rns-design .rns-workspace {
  background: var(--rns-workspace); color: var(--rns-ink);
  font-family: Nunito, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
  font-size: 16px; line-height: 1.5;
}
body.rns-design a { color: var(--rns-brand); }
body.rns-design a:hover { color: var(--rns-brand-hover); }
body.rns-design h1 { color: var(--rns-ink); font-size: 28px; line-height: 1.2; font-weight: 800; }
body.rns-design h2 { color: var(--rns-ink); font-size: 22px; line-height: 1.25; font-weight: 800; }
body.rns-design h3 { color: var(--rns-ink); font-size: 18px; line-height: 1.3; font-weight: 800; }
body.rns-design h4, body.rns-design h5, body.rns-design h6 { color: var(--rns-ink); font-weight: 800; }
body.rns-design label, body.rns-design legend { color: var(--rns-ink); font-weight: 700; }
body.rns-design small, body.rns-design .text-muted, body.rns-design .help-block { color: var(--rns-muted); }

/* Workspace and native SB Admin structure; geometry utilities remain vendor-owned. */
body.rns-design #content-wrapper { min-height: 100vh; }
body.rns-design .topbar { background: var(--rns-surface); border-bottom: 1px solid var(--rns-line); box-shadow: 0 2px 8px rgba(16,36,58,.08); }
body.rns-design .sidebar, body.rns-design ul.navbar-nav.sidebar,
body.rns-design #accordionSidebar { background: var(--rns-sidebar); background-image: none; }
body.rns-design .sidebar .sidebar-brand, body.rns-design .sidebar .sidebar-heading { color: var(--rns-sidebar-text); }
body.rns-design .sidebar .nav-link, body.rns-design .sidebar .nav-link i,
body.rns-design .sidebar .nav-link span { color: var(--rns-sidebar-text); }
body.rns-design .sidebar .nav-item .nav-link:hover,
body.rns-design .sidebar .nav-item.active .nav-link { color: #ffffff; background: rgba(255,255,255,.10); }
body.rns-design .sidebar .collapse-inner, body.rns-design .dropdown-menu {
  background: var(--rns-surface); border: 1px solid var(--rns-line); box-shadow: 0 8px 18px rgba(16,36,58,.12);
}
body.rns-design .sidebar .collapse-item, body.rns-design .dropdown-item { color: var(--rns-ink); }
body.rns-design .sidebar .collapse-item:hover, body.rns-design .dropdown-item:hover,
body.rns-design .dropdown-item:focus { color: var(--rns-ink); background: var(--rns-header); }
body.rns-design .sidebar hr.sidebar-divider { border-top-color: rgba(226,232,240,.28); }
body.rns-design .sidebar-toggle, body.rns-design #sidebarToggle, body.rns-design #sidebarToggleTop { color: var(--rns-brand); }

/* Cards, table surfaces, and reports. */
body.rns-design .card, body.rns-design .card-body, body.rns-design .card-footer,
body.rns-design .list-group-item, body.rns-design .bg-white, body.rns-design .bg-light {
  background-color: var(--rns-surface); color: var(--rns-ink); border-color: var(--rns-line);
}
body.rns-design .card { border: 1px solid var(--rns-line); border-radius: 8px; box-shadow: 0 3px 12px rgba(16,36,58,.08); }
body.rns-design .card-header { background: var(--rns-header); color: var(--rns-ink); border-bottom: 1px solid var(--rns-line); }
body.rns-design .table-responsive { overflow-x: auto; }
body.rns-design table { color: var(--rns-ink); font-size: 14px; }
body.rns-design .table th { color: var(--rns-ink); background: var(--rns-header); font-weight: 800; border-color: var(--rns-line); }
body.rns-design .table td { color: var(--rns-ink); background: var(--rns-surface); border-color: var(--rns-line); vertical-align: middle; }
body.rns-design .table-striped tbody tr:nth-of-type(odd) td { background: #f8fafc; }
body.rns-design .table-hover tbody tr:hover td { background: #eef7f6; }
body.rns-design td, body.rns-design th { overflow-wrap: anywhere; }
body.rns-design .text-primary, body.rns-design .text-info { color: var(--rns-brand) !important; }
body.rns-design .text-dark, body.rns-design .text-gray-800, body.rns-design .text-gray-900 { color: var(--rns-ink) !important; }
body.rns-design .text-secondary, body.rns-design .text-muted { color: var(--rns-muted) !important; }

/* Buttons retain meaning; white text is reserved for primary/status fills. */
body.rns-design .btn-primary, body.rns-design .btn-info { color: #ffffff; background: var(--rns-brand); border-color: var(--rns-brand); }
body.rns-design .btn-primary:hover, body.rns-design .btn-info:hover,
body.rns-design .btn-primary:focus-visible, body.rns-design .btn-info:focus-visible { color: #ffffff; background: var(--rns-brand-hover); border-color: var(--rns-brand-hover); }
body.rns-design .btn-secondary, body.rns-design .btn-default, body.rns-design .btn-outline-secondary { color: var(--rns-ink); background: var(--rns-surface); border-color: var(--rns-line); }
body.rns-design .btn-secondary:hover, body.rns-design .btn-default:hover, body.rns-design .btn-outline-secondary:hover { color: var(--rns-ink); background: var(--rns-header); }
body.rns-design .btn-danger { color: #ffffff; background: var(--rns-danger-text); border-color: var(--rns-danger-text); }
body.rns-design .btn-success { color: #ffffff; background: var(--rns-success-text); border-color: var(--rns-success-text); }
body.rns-design .btn-warning { color: var(--rns-ink); background: var(--rns-warning-bg, #fef3c7); border-color: var(--rns-warning-text); }
body.rns-design .btn:disabled, body.rns-design .btn.disabled { color: var(--rns-muted); background: #e2e8f0; border-color: var(--rns-line); cursor: not-allowed; }

/* Native controls: white fields, dark text, readable placeholder/calendar, deliberate states. */
body.rns-design input:not([type="hidden"]), body.rns-design select, body.rns-design textarea,
body.rns-design .form-control, body.rns-design .custom-select, body.rns-design .input-group-text {
  background: var(--rns-surface); color: var(--rns-ink); border: 1px solid var(--rns-line);
}
body.rns-design input:not([type="hidden"]), body.rns-design select, body.rns-design textarea,
body.rns-design .form-control { min-height: 40px; }
body.rns-design input::placeholder, body.rns-design textarea::placeholder,
body.rns-design .form-control::placeholder { color: var(--rns-muted); opacity: 1; }
body.rns-design input:focus-visible, body.rns-design select:focus-visible,
body.rns-design textarea:focus-visible, body.rns-design .form-control:focus,
body.rns-design .custom-select:focus { color: var(--rns-ink); background: var(--rns-surface); border-color: var(--rns-focus); box-shadow: 0 0 0 3px rgba(15,118,110,.22); outline: none; }
body.rns-design input:disabled, body.rns-design select:disabled, body.rns-design textarea:disabled,
body.rns-design .form-control:disabled { color: var(--rns-muted); background: #eef2f6; border-color: var(--rns-line); cursor: not-allowed; }
body.rns-design input[aria-invalid="true"], body.rns-design .is-invalid { border-color: var(--rns-danger-text); }
body.rns-design input[type="date"], body.rns-design input[type="month"] { color-scheme: light; }
body.rns-design ::-webkit-calendar-picker-indicator { filter: none; opacity: .8; cursor: pointer; }
body.rns-design option { color: var(--rns-ink); background: var(--rns-surface); }

/* Select2 contract, only when that runtime component is present. */
body.rns-design .select2-container--default .select2-selection--single,
body.rns-design .select2-container--default .select2-selection--multiple,
body.rns-design .select2-dropdown, body.rns-design .select2-search__field,
body.rns-design .select2-container--default .select2-results__option { color: var(--rns-ink); background: var(--rns-surface); border-color: var(--rns-line); }
body.rns-design .select2-container--default .select2-selection--single .select2-selection__rendered,
body.rns-design .select2-container--default .select2-selection--multiple .select2-selection__rendered { color: var(--rns-ink); }
body.rns-design .select2-container--default .select2-selection__placeholder { color: var(--rns-muted); }
body.rns-design .select2-container--default .select2-results__option--highlighted[aria-selected] { color: #ffffff; background: var(--rns-brand); }
body.rns-design .select2-container--default .select2-results__option[aria-selected="true"] { color: var(--rns-ink); background: var(--rns-header); }
body.rns-design .select2-container--default.select2-container--focus .select2-selection--single,
body.rns-design .select2-container--default.select2-container--focus .select2-selection--multiple { border-color: var(--rns-focus); box-shadow: 0 0 0 3px rgba(15,118,110,.22); }
body.rns-design .select2-container--disabled .select2-selection { color: var(--rns-muted); background: #eef2f6; }

/* Alerts, badges, and modal surfaces retain semantic text and visible boundaries. */
body.rns-design .alert-success { color: var(--rns-success-text); background: var(--rns-success-bg); border-color: var(--rns-success-text); }
body.rns-design .alert-danger { color: var(--rns-danger-text); background: var(--rns-danger-bg); border-color: var(--rns-danger-text); }
body.rns-design .alert-warning { color: var(--rns-warning-text); background: var(--rns-warning-bg, #fef3c7); border-color: var(--rns-warning-text); }
body.rns-design .alert-info { color: var(--rns-info-text); background: var(--rns-info-bg); border-color: var(--rns-info-text); }
body.rns-design .modal-content { color: var(--rns-ink); background: var(--rns-surface); border: 1px solid var(--rns-line); box-shadow: 0 12px 30px rgba(16,36,58,.18); }
body.rns-design .modal-header, body.rns-design .modal-footer { border-color: var(--rns-line); }
body.rns-design .modal .close { color: var(--rns-ink); opacity: 1; text-shadow: none; }
body.rns-design .modal .close:hover, body.rns-design .modal .close:focus-visible { color: var(--rns-brand); opacity: 1; }
body.rns-design :focus-visible { outline: 3px solid var(--rns-focus); outline-offset: 2px; }
body.rns-design .badge-success { color: #ffffff; background: var(--rns-success-text); }
body.rns-design .badge-danger { color: #ffffff; background: var(--rns-danger-text); }
body.rns-design .badge-warning { color: var(--rns-ink); background: var(--rns-warning-bg, #fef3c7); }
body.rns-design .badge-info { color: #ffffff; background: var(--rns-info-text); }

/* Login is light too, without changing POST names, IDs, or existing controls. */
body.rns-login.rns-design { min-height: 100vh; background: var(--rns-workspace); color: var(--rns-ink); }
body.rns-login.rns-design .card { background: var(--rns-surface); }
body.rns-login.rns-design .logo-container img { background: var(--rns-surface); border-color: var(--rns-line); }
}
/* Browser print and server-PDF hooks are intentionally independent of screen dark rules. */
@media print {
  @page { margin: 14mm 12mm; }
  html, body, body.rns-design, body.rns-design #wrapper, body.rns-design #content-wrapper,
  body.rns-design #content, body.rns-design .card, body.rns-design .card-body { background: #ffffff !important; color: #10243a !important; }
  body.rns-design { font-family: Helvetica, Arial, sans-serif; font-size: 10.5pt; line-height: 1.35; }
  body.rns-design .sidebar, body.rns-design .topbar, body.rns-design footer,
  body.rns-design .no-print, body.rns-design .btn, body.rns-design .scroll-to-top { display: none !important; }
  body.rns-design #content-wrapper { margin: 0 !important; width: 100% !important; }
  body.rns-design .card { border: 1px solid #7a8ca3 !important; box-shadow: none !important; }
  body.rns-design .card-header { background: #e9edf3 !important; color: #10243a !important; }
  body.rns-design table { width: 100%; border-collapse: collapse; font-size: 10pt; }
  body.rns-design thead { display: table-header-group; }
  body.rns-design th, body.rns-design td { color: #10243a !important; background: #ffffff !important; border: 1px solid #7a8ca3 !important; padding: 4pt 5pt; }
  body.rns-design th { background: #e9edf3 !important; font-weight: bold; }
  body.rns-design tr { page-break-inside: avoid; }
}
/* Django's context-controlled PDF branch remains intact; these selectors are additive. */
body.is-pdf-export, body.rns-pdf, body[data-rns-pdf="true"] { background: #ffffff; color: #10243a; font-family: Helvetica, Arial, sans-serif; }
body.is-pdf-export .card, body.rns-pdf .card, body[data-rns-pdf="true"] .card { background: #ffffff; color: #10243a; border: 1px solid #7a8ca3; box-shadow: none; }
body.is-pdf-export table, body.rns-pdf table, body[data-rns-pdf="true"] table { width: 100%; border-collapse: collapse; font-size: 10.5pt; }
body.is-pdf-export th, body.is-pdf-export td, body.rns-pdf th, body.rns-pdf td, body[data-rns-pdf="true"] th, body[data-rns-pdf="true"] td { color: #10243a; background: #ffffff; border: 1px solid #7a8ca3; }

@media (max-width: 767.98px) {
  body.rns-design .container, body.rns-design .container-fluid { padding-left: 1rem; padding-right: 1rem; }
  body.rns-design .card-body { padding: 1rem; }
  body.rns-design table { min-width: 620px; }
  body.rns-design .form-inline { align-items: stretch; }
}
@media screen {
/* deterministic final light-theme conflict layer */
body.rns-design,
body.rns-design html,
body.rns-design #wrapper,
body.rns-design #content-wrapper,
body.rns-design #content,
body.rns-design .content-wrapper { background-color: var(--rns-workspace) !important; color: var(--rns-ink) !important; }
body.rns-design .main-sidebar { background: var(--rns-sidebar) !important; color: var(--rns-sidebar-text) !important; }
body.rns-design .main-sidebar a, body.rns-design .main-sidebar .nav-link { color: var(--rns-sidebar-text) !important; }
body.rns-design .main-sidebar a:hover, body.rns-design .main-sidebar .nav-link:hover { color: #ffffff !important; background: rgba(255,255,255,.10) !important; }
/* Legacy sidebar gradients/inline heading colors require these scoped overrides. */
body.rns-design #accordionSidebar { background: var(--rns-sidebar) !important; background-image: none !important; }
body.rns-design #accordionSidebar .sidebar-heading { color: var(--rns-sidebar-text) !important; font-size: 13px; }
body.rns-design .card.shadow, body.rns-design .card.shadow-lg, body.rns-design .card.shadow-sm { box-shadow: 0 3px 12px rgba(16,36,58,.10) !important; }
body.rns-design .sidebar .nav-item.active .nav-link,
body.rns-design .sidebar .nav-link:hover,
body.rns-design .main-sidebar .nav-item.active .nav-link,
body.rns-design .main-sidebar .nav-link:hover { color: #ffffff !important; background: var(--rns-brand) !important; }
body.rns-design .sidebar .nav-item.active .nav-link span,
body.rns-design .sidebar .nav-link:hover span,
body.rns-design .main-sidebar .nav-item.active .nav-link span,
body.rns-design .main-sidebar .nav-link:hover span,
body.rns-design .sidebar .nav-link span,
body.rns-design .sidebar .nav-link i,
body.rns-design .main-sidebar .nav-link span,
body.rns-design .main-sidebar .nav-link i { color: #ffffff !important; }
body.rns-design .content-wrapper, body.rns-design .content-wrapper .content { background: var(--rns-workspace) !important; }
body.rns-design form, body.rns-design label, body.rns-design legend { color: var(--rns-ink); }
body.rns-design .card, body.rns-design .card-body, body.rns-design .card-footer,
body.rns-design .bg-white, body.rns-design .bg-light { background-color: var(--rns-surface) !important; color: var(--rns-ink) !important; }
body.rns-design .card-header { background-color: var(--rns-header) !important; color: var(--rns-ink) !important; }
body.rns-design .table th { color: var(--rns-ink) !important; background-color: var(--rns-header) !important; }
body.rns-design .table td { color: var(--rns-ink) !important; background-color: var(--rns-surface) !important; }
body.rns-design .table.text-white, body.rns-design .table.text-white th,
body.rns-design .table.text-white td { color: var(--rns-ink) !important; }
body.rns-design input:not([type="hidden"]), body.rns-design select, body.rns-design textarea,
body.rns-design .form-control, body.rns-design .custom-select,
body.rns-design .input-group-text { background-color: var(--rns-surface) !important; color: var(--rns-ink) !important; border-color: var(--rns-line) !important; }
body.rns-design input:focus, body.rns-design select:focus, body.rns-design textarea:focus,
body.rns-design .form-control:focus, body.rns-design .custom-select:focus { background-color: var(--rns-surface) !important; color: var(--rns-ink) !important; border-color: var(--rns-focus) !important; box-shadow: 0 0 0 3px rgba(15,118,110,.22) !important; }
body.rns-design input:disabled, body.rns-design select:disabled, body.rns-design textarea:disabled,
body.rns-design .form-control:disabled { background-color: #eef2f6 !important; color: var(--rns-muted) !important; }
body.rns-design option { background: var(--rns-surface) !important; color: var(--rns-ink) !important; }
body.rns-design .select2-container--default .select2-selection--single,
body.rns-design .select2-container--default .select2-selection--multiple,
body.rns-design .select2-container--default .select2-selection__rendered,
body.rns-design .select2-container--default .select2-search--dropdown .select2-search__field,
body.rns-design .select2-container--default .select2-search__field,
body.rns-design .select2-dropdown,
body.rns-design .select2-results__option { background-color: var(--rns-surface) !important; color: var(--rns-ink) !important; border-color: var(--rns-line) !important; }
body.rns-design .select2-container--default .select2-results__option--highlighted[aria-selected] { background-color: var(--rns-brand) !important; color: #ffffff !important; }
body.rns-design .select2-container--default .select2-results__option[aria-selected="true"] { background-color: var(--rns-header) !important; color: var(--rns-ink) !important; }
body.rns-design .text-success, body.rns-design .text-success.text-xs { color: var(--rns-success-text) !important; }
body.rns-design .text-danger, body.rns-design .text-danger.text-xs { color: var(--rns-danger-text) !important; }
body.rns-design .text-warning, body.rns-design .text-warning.text-xs { color: var(--rns-warning-text) !important; }
body.rns-design .text-info, body.rns-design .text-primary { color: var(--rns-brand) !important; }
body.rns-design .text-muted, body.rns-design .text-secondary { color: var(--rns-muted) !important; }
body.rns-design .text-xs.font-weight-bold { font-size: 13px; }
body.rns-design .alert-danger { color: var(--rns-danger-text) !important; background-color: var(--rns-danger-bg) !important; border-color: var(--rns-danger-text) !important; }
body.rns-design .alert-success { color: var(--rns-success-text) !important; background-color: var(--rns-success-bg) !important; border-color: var(--rns-success-text) !important; }
body.rns-design .alert-warning { color: var(--rns-warning-text) !important; background-color: var(--rns-warning-bg) !important; border-color: var(--rns-warning-text) !important; }
body.rns-design .alert-info { color: var(--rns-info-text) !important; background-color: var(--rns-info-bg) !important; border-color: var(--rns-info-text) !important; }
body.rns-design .alert-danger.text-white { color: var(--rns-danger-text) !important; }
body.rns-design .alert-success.text-white { color: var(--rns-success-text) !important; }
body.rns-design .alert-warning.text-white { color: var(--rns-warning-text) !important; }
body.rns-design .alert-info.text-white { color: var(--rns-info-text) !important; }
body.rns-design .alert-danger .text-white, body.rns-design .alert-danger h5 { color: var(--rns-danger-text) !important; }
body.rns-design .alert-success .text-white, body.rns-design .alert-success h5 { color: var(--rns-success-text) !important; }
body.rns-design .alert-warning .text-white, body.rns-design .alert-warning h5 { color: var(--rns-warning-text) !important; }
body.rns-design .alert-info .text-white, body.rns-design .alert-info h5 { color: var(--rns-info-text) !important; }
body.rns-design input:focus-visible, body.rns-design select:focus-visible,
body.rns-design textarea:focus-visible, body.rns-design button:focus-visible,
body.rns-design a:focus-visible { outline: 3px solid var(--rns-focus) !important; outline-offset: 2px; }
body.rns-design .btn-primary, body.rns-design .btn-info { color: #ffffff !important; background-color: var(--rns-brand) !important; border-color: var(--rns-brand) !important; }
body.rns-design .btn-primary:hover, body.rns-design .btn-info:hover { background-color: var(--rns-brand-hover) !important; border-color: var(--rns-brand-hover) !important; }
body.rns-design .btn-secondary, body.rns-design .btn-default, body.rns-design .btn-outline-secondary { color: var(--rns-ink) !important; background-color: var(--rns-surface) !important; border-color: var(--rns-line) !important; }
body.rns-design .btn-danger { color: #ffffff !important; background-color: var(--rns-danger-text) !important; border-color: var(--rns-danger-text) !important; }
body.rns-design .btn-success { color: #ffffff !important; background-color: var(--rns-success-text) !important; border-color: var(--rns-success-text) !important; }
body.rns-design .btn-warning { color: var(--rns-ink) !important; background-color: var(--rns-warning-bg) !important; border-color: var(--rns-warning-text) !important; }
body.rns-login.rns-design { background: var(--rns-workspace) !important; color: var(--rns-ink) !important; }
body.rns-login.rns-design .card { background: var(--rns-surface) !important; border-color: var(--rns-line) !important; }
body.rns-login.rns-design .form-control-user,
body.rns-login.rns-design input:not([type="hidden"]), body.rns-login.rns-design .input-group-text { background: var(--rns-surface) !important; color: var(--rns-ink) !important; border-color: var(--rns-line) !important; }
body.rns-login.rns-design .btn-primary { background: var(--rns-brand) !important; border-color: var(--rns-brand) !important; color: #ffffff !important; }
body.rns-login.rns-design .text-gray-900 { color: var(--rns-ink) !important; }
/* Django admin/Jazzmin has no guaranteed rns body class; use native admin roots. */
.main-sidebar { background: var(--rns-sidebar) !important; }
.main-sidebar a, .main-sidebar .nav-link { color: var(--rns-sidebar-text) !important; }
.content-wrapper { background: var(--rns-workspace) !important; }
.content-wrapper label, .content-wrapper form { color: var(--rns-ink); }
.content-wrapper .card, .content-wrapper .card-body, .content-wrapper .card-header { background: var(--rns-surface); color: var(--rns-ink); }
}
@media print {
  body.rns-design, body.rns-design html, body.rns-design #content-wrapper, body.rns-design .content-wrapper { background: #ffffff !important; color: #10243a !important; }
}
