/*
 * Dark theme. Active only when <html data-theme="dark"> (set by the inline
 * script in base.html.twig from localStorage or the OS preference).
 * Loaded after every vendored stylesheet, so these rules override Bootstrap 3,
 * SB Admin 2 and the plugins without touching third-party files.
 * Print output (invoices, quotes...) always stays light: see @media print below.
 */

html[data-theme="dark"] {
    --dm-bg: #14181d;
    --dm-surface: #1c2229;
    --dm-surface-2: #232a33;
    --dm-surface-3: #2b333d;
    --dm-border: #343e4a;
    --dm-text: #d8dee5;
    --dm-text-strong: #f1f4f7;
    --dm-muted: #8e9aa8;
    --dm-link: #4fc6ea;
    --dm-link-hover: #8ad9f1;
    --dm-input: #181d23;
    --dm-brand: #13b3d9;
    color-scheme: dark;
}

/* ---------- Base ---------- */
html[data-theme="dark"] body { background-color: var(--dm-bg); color: var(--dm-text); }
/* Plain links only: many actions are <a class="btn ..."> and must keep their button colours. */
/* :where() keeps specificity low so navbar, dropdown and list-group rules still win. */
html[data-theme="dark"] :where(a:not(.btn, .label, .badge)) { color: var(--dm-link); }
html[data-theme="dark"] :where(a:not(.btn, .label, .badge)):hover,
html[data-theme="dark"] :where(a:not(.btn, .label, .badge)):focus { color: var(--dm-link-hover); }
html[data-theme="dark"] h1, html[data-theme="dark"] h2, html[data-theme="dark"] h3,
html[data-theme="dark"] h4, html[data-theme="dark"] h5, html[data-theme="dark"] h6,
html[data-theme="dark"] .h1, html[data-theme="dark"] .h2, html[data-theme="dark"] .h3,
html[data-theme="dark"] .h4, html[data-theme="dark"] .h5, html[data-theme="dark"] .h6,
html[data-theme="dark"] strong, html[data-theme="dark"] b, html[data-theme="dark"] legend { color: var(--dm-text-strong); }
html[data-theme="dark"] hr,
html[data-theme="dark"] .page-header,
html[data-theme="dark"] legend { border-color: var(--dm-border); }
html[data-theme="dark"] .text-muted,
html[data-theme="dark"] .help-block { color: var(--dm-muted) !important; }
html[data-theme="dark"] .text-primary { color: var(--dm-link); }
html[data-theme="dark"] .text-success { color: #6fcf8b; }
html[data-theme="dark"] .text-danger { color: #f08a8a; }
html[data-theme="dark"] .text-warning { color: #f0c36d; }
html[data-theme="dark"] .text-info { color: #7fd0ee; }
html[data-theme="dark"] code { background: #3a2a33; color: #f5a6c4; }
html[data-theme="dark"] pre, html[data-theme="dark"] .well { background: var(--dm-surface-2); border-color: var(--dm-border); color: var(--dm-text); }
html[data-theme="dark"] ::placeholder { color: #6b7684; }

/* ---------- Navbar ---------- */
html[data-theme="dark"] .navbar-default { background-color: var(--dm-surface); border-color: var(--dm-border); }
html[data-theme="dark"] .navbar-default .navbar-nav > li > a,
html[data-theme="dark"] .navbar-default .navbar-brand { color: var(--dm-text); }
html[data-theme="dark"] .navbar-default .navbar-nav > li > a:hover,
html[data-theme="dark"] .navbar-default .navbar-nav > li > a:focus { color: var(--dm-text-strong); background-color: var(--dm-surface-3); }
html[data-theme="dark"] .navbar-default .navbar-nav > .open > a,
html[data-theme="dark"] .navbar-default .navbar-nav > .open > a:hover,
html[data-theme="dark"] .navbar-default .navbar-nav > .open > a:focus,
html[data-theme="dark"] .navbar-default .navbar-nav > .active > a { color: var(--dm-text-strong); background-color: var(--dm-surface-3); }
html[data-theme="dark"] .navbar-default .navbar-toggle { border-color: var(--dm-border); }
html[data-theme="dark"] .navbar-default .navbar-toggle:hover,
html[data-theme="dark"] .navbar-default .navbar-toggle:focus { background-color: var(--dm-surface-3); }
html[data-theme="dark"] .navbar-default .navbar-toggle .icon-bar { background-color: var(--dm-text); }
html[data-theme="dark"] .navbar-default .navbar-collapse { border-color: var(--dm-border); }
html[data-theme="dark"] .navbar-default .navbar-nav .open .dropdown-menu > li > a { color: var(--dm-text); }
/* The logo has dark navy text: keep it readable on a light badge. */
html[data-theme="dark"] .navbar-brand img { background: #f1f4f7; border-radius: 8px; padding: 3px 8px; box-sizing: content-box; }

/* ---------- Dropdowns ---------- */
html[data-theme="dark"] .dropdown-menu { background-color: var(--dm-surface-2); border-color: var(--dm-border); box-shadow: 0 8px 24px rgba(0, 0, 0, .45); }
html[data-theme="dark"] .dropdown-menu > li > a { color: var(--dm-text); }
html[data-theme="dark"] .dropdown-menu > li > a:hover,
html[data-theme="dark"] .dropdown-menu > li > a:focus { background-color: var(--dm-surface-3); color: var(--dm-text-strong); }
html[data-theme="dark"] .dropdown-menu > .active > a,
html[data-theme="dark"] .dropdown-menu > .active > a:hover,
html[data-theme="dark"] .dropdown-menu > .active > a:focus { background-color: #1d6f86; color: #fff; }
html[data-theme="dark"] .dropdown-menu .divider { background-color: var(--dm-border); }
html[data-theme="dark"] .dropdown-header { color: var(--dm-muted); }

/* ---------- Panels ---------- */
html[data-theme="dark"] .panel { background-color: var(--dm-surface); border-color: var(--dm-border); box-shadow: none; }
html[data-theme="dark"] .panel-default > .panel-heading { background-color: var(--dm-surface-2); border-color: var(--dm-border); color: var(--dm-text-strong); }
html[data-theme="dark"] .panel-footer { background-color: var(--dm-surface-2); border-color: var(--dm-border); color: var(--dm-text); }
html[data-theme="dark"] .panel-group .panel-heading + .panel-collapse > .panel-body,
html[data-theme="dark"] .panel-heading + .panel-collapse > .list-group,
html[data-theme="dark"] .panel-body + .panel-footer,
html[data-theme="dark"] .panel > .panel-body + .table,
html[data-theme="dark"] .panel > .table + .panel-body { border-color: var(--dm-border); }
/* Coloured panels keep their brand heading, with a dark body. */
html[data-theme="dark"] .panel-primary { border-color: #2a6f9e; }
html[data-theme="dark"] .panel-info { border-color: #2b7f9b; }
html[data-theme="dark"] .panel-info > .panel-heading { background-color: #1f5d73; border-color: #2b7f9b; color: #dff4fb; }
html[data-theme="dark"] .panel-success { border-color: #3d7a46; }
html[data-theme="dark"] .panel-success > .panel-heading { background-color: #2a5a32; border-color: #3d7a46; color: #e1f5e4; }
html[data-theme="dark"] .panel-warning > .panel-heading { background-color: #6b5320; border-color: #8a6c2a; color: #fbefd6; }
html[data-theme="dark"] .panel-danger > .panel-heading { background-color: #6e2b2b; border-color: #8f3a3a; color: #fbe0e0; }
html[data-theme="dark"] .panel-green .panel-footer,
html[data-theme="dark"] .panel-yellow .panel-footer,
html[data-theme="dark"] .panel-red .panel-footer,
html[data-theme="dark"] .panel-primary .panel-footer { background-color: var(--dm-surface-2); }

/* ---------- List groups ---------- */
html[data-theme="dark"] .list-group-item { background-color: var(--dm-surface); border-color: var(--dm-border); color: var(--dm-text); }
html[data-theme="dark"] a.list-group-item,
html[data-theme="dark"] button.list-group-item { color: var(--dm-text); }
html[data-theme="dark"] a.list-group-item:hover,
html[data-theme="dark"] a.list-group-item:focus,
html[data-theme="dark"] button.list-group-item:hover { background-color: var(--dm-surface-3); color: var(--dm-text-strong); }
html[data-theme="dark"] .list-group-item.active,
html[data-theme="dark"] .list-group-item.active:hover,
html[data-theme="dark"] .list-group-item.active:focus { background-color: #1d6f86; border-color: #1d6f86; color: #fff; }

/* ---------- Forms ---------- */
html[data-theme="dark"] .form-control { background-color: var(--dm-input); border-color: var(--dm-border); color: var(--dm-text-strong); box-shadow: none; }
html[data-theme="dark"] .form-control:focus { border-color: var(--dm-brand); box-shadow: 0 0 0 3px rgba(19, 179, 217, .25); }
html[data-theme="dark"] .form-control[disabled],
html[data-theme="dark"] .form-control[readonly],
html[data-theme="dark"] fieldset[disabled] .form-control { background-color: var(--dm-surface-2); color: var(--dm-muted); }
html[data-theme="dark"] select.form-control option { background-color: var(--dm-surface-2); color: var(--dm-text); }
html[data-theme="dark"] .input-group-addon { background-color: var(--dm-surface-3); border-color: var(--dm-border); color: var(--dm-text); }
html[data-theme="dark"] .has-error .form-control { border-color: #c95b5b; }
html[data-theme="dark"] .has-error .help-block,
html[data-theme="dark"] .has-error .control-label { color: #f08a8a !important; }
html[data-theme="dark"] .has-success .form-control { border-color: #4f9a5c; }
html[data-theme="dark"] input[type="checkbox"],
html[data-theme="dark"] input[type="radio"] { accent-color: var(--dm-brand); }

/* ---------- Buttons ---------- */
html[data-theme="dark"] .btn-default { background-color: var(--dm-surface-3); border-color: var(--dm-border); color: var(--dm-text); }
html[data-theme="dark"] .btn-default:hover,
html[data-theme="dark"] .btn-default:focus,
html[data-theme="dark"] .btn-default:active,
html[data-theme="dark"] .btn-default.active,
html[data-theme="dark"] .open > .dropdown-toggle.btn-default { background-color: #36404c; border-color: #46515f; color: var(--dm-text-strong); }
html[data-theme="dark"] .btn-default[disabled],
html[data-theme="dark"] .btn-default.disabled { background-color: var(--dm-surface-2); color: var(--dm-muted); }
html[data-theme="dark"] .btn-link { color: var(--dm-link); }
html[data-theme="dark"] .close { color: var(--dm-text-strong); text-shadow: none; opacity: .6; }
html[data-theme="dark"] .close:hover { opacity: .9; }

/* ---------- Tables ---------- */
html[data-theme="dark"] .table { color: var(--dm-text); background-color: transparent; }
html[data-theme="dark"] .table > thead > tr > th,
html[data-theme="dark"] .table > tbody > tr > th,
html[data-theme="dark"] .table > tfoot > tr > th,
html[data-theme="dark"] .table > thead > tr > td,
html[data-theme="dark"] .table > tbody > tr > td,
html[data-theme="dark"] .table > tfoot > tr > td,
html[data-theme="dark"] .table-bordered,
html[data-theme="dark"] .table > thead > tr > th { border-color: var(--dm-border); }
html[data-theme="dark"] .table > thead > tr > th { color: var(--dm-text-strong); background-color: var(--dm-surface-2); }
html[data-theme="dark"] .table-striped > tbody > tr:nth-of-type(odd) { background-color: rgba(255, 255, 255, .03); }
html[data-theme="dark"] .table-hover > tbody > tr:hover { background-color: rgba(79, 198, 234, .08); }
html[data-theme="dark"] .table > tbody > tr.success > td, html[data-theme="dark"] .table > tbody > tr > td.success { background-color: rgba(76, 175, 80, .18); }
html[data-theme="dark"] .table > tbody > tr.danger > td, html[data-theme="dark"] .table > tbody > tr > td.danger { background-color: rgba(229, 83, 83, .18); }
html[data-theme="dark"] .table > tbody > tr.warning > td, html[data-theme="dark"] .table > tbody > tr > td.warning { background-color: rgba(240, 173, 78, .18); }
html[data-theme="dark"] .table > tbody > tr.info > td, html[data-theme="dark"] .table > tbody > tr > td.info { background-color: rgba(79, 198, 234, .15); }
html[data-theme="dark"] .table > tbody > tr.active > td, html[data-theme="dark"] .table > tbody > tr > td.active { background-color: var(--dm-surface-3); }

/* ---------- Modals ---------- */
html[data-theme="dark"] .modal-content { background-color: var(--dm-surface); border-color: var(--dm-border); box-shadow: 0 12px 40px rgba(0, 0, 0, .6); }
html[data-theme="dark"] .modal-header,
html[data-theme="dark"] .modal-footer { border-color: var(--dm-border); }
html[data-theme="dark"] .modal-backdrop.in { opacity: .7; }

/* ---------- Pagination, labels, badges, alerts, tabs, misc ---------- */
html[data-theme="dark"] .pagination > li > a,
html[data-theme="dark"] .pagination > li > span { background-color: var(--dm-surface); border-color: var(--dm-border); color: var(--dm-link); }
html[data-theme="dark"] .pagination > li > a:hover,
html[data-theme="dark"] .pagination > li > span:hover { background-color: var(--dm-surface-3); color: var(--dm-link-hover); }
html[data-theme="dark"] .pagination > .active > a,
html[data-theme="dark"] .pagination > .active > span,
html[data-theme="dark"] .pagination > .active > a:hover { background-color: #1d6f86; border-color: #1d6f86; color: #fff; }
html[data-theme="dark"] .pagination > .disabled > a,
html[data-theme="dark"] .pagination > .disabled > span { background-color: var(--dm-surface); border-color: var(--dm-border); color: #5c6774; }
html[data-theme="dark"] .label-default { background-color: #4a5563; }
html[data-theme="dark"] .badge { background-color: #4a5563; color: #fff; }
html[data-theme="dark"] .alert-success { background-color: #1f3b26; border-color: #2e5a37; color: #b8e6c3; }
html[data-theme="dark"] .alert-info { background-color: #173845; border-color: #23566a; color: #b7e4f4; }
html[data-theme="dark"] .alert-warning { background-color: #3d3119; border-color: #5e4b23; color: #f3dca6; }
html[data-theme="dark"] .alert-danger { background-color: #432222; border-color: #693131; color: #f5c0c0; }
html[data-theme="dark"] .alert .alert-link { color: inherit; }
html[data-theme="dark"] .nav-tabs { border-color: var(--dm-border); }
html[data-theme="dark"] .nav-tabs > li > a:hover { background-color: var(--dm-surface-3); border-color: var(--dm-border); }
html[data-theme="dark"] .nav-tabs > li.active > a,
html[data-theme="dark"] .nav-tabs > li.active > a:hover,
html[data-theme="dark"] .nav-tabs > li.active > a:focus { background-color: var(--dm-surface); border-color: var(--dm-border) var(--dm-border) transparent; color: var(--dm-text-strong); }
html[data-theme="dark"] .breadcrumb { background-color: var(--dm-surface-2); }
html[data-theme="dark"] .popover { background-color: var(--dm-surface-2); border-color: var(--dm-border); color: var(--dm-text); }
html[data-theme="dark"] .popover-title { background-color: var(--dm-surface-3); border-color: var(--dm-border); }
html[data-theme="dark"] .jumbotron { background-color: var(--dm-surface-2); }

/* ---------- Plugins ---------- */
/* bootstrap-select */
html[data-theme="dark"] .bootstrap-select .dropdown-toggle .filter-option { color: var(--dm-text); }
html[data-theme="dark"] .bootstrap-select .dropdown-menu li.selected a,
html[data-theme="dark"] .bootstrap-select .dropdown-menu li.active a { background-color: #1d6f86; color: #fff; }
html[data-theme="dark"] .bootstrap-select .dropdown-menu li.no-results { background-color: var(--dm-surface-2); color: var(--dm-muted); }
html[data-theme="dark"] .bootstrap-select .dropdown-menu .text-muted { color: var(--dm-muted); }
html[data-theme="dark"] .bootstrap-select .bs-searchbox .form-control { background-color: var(--dm-input); }
/* bootstrap-datepicker */
html[data-theme="dark"] .datepicker-dropdown { background-color: var(--dm-surface-2); border-color: var(--dm-border); color: var(--dm-text); }
html[data-theme="dark"] .datepicker-dropdown.datepicker-orient-bottom:before { border-bottom-color: var(--dm-border); }
html[data-theme="dark"] .datepicker-dropdown.datepicker-orient-bottom:after { border-bottom-color: var(--dm-surface-2); }
html[data-theme="dark"] .datepicker-dropdown.datepicker-orient-top:before { border-top-color: var(--dm-border); }
html[data-theme="dark"] .datepicker-dropdown.datepicker-orient-top:after { border-top-color: var(--dm-surface-2); }
html[data-theme="dark"] .datepicker table tr td.day:hover,
html[data-theme="dark"] .datepicker table tr td.focused,
html[data-theme="dark"] .datepicker .datepicker-switch:hover,
html[data-theme="dark"] .datepicker .prev:hover,
html[data-theme="dark"] .datepicker .next:hover,
html[data-theme="dark"] .datepicker tfoot tr th:hover,
html[data-theme="dark"] .datepicker table tr td span:hover { background-color: var(--dm-surface-3); }
html[data-theme="dark"] .datepicker table tr td.old,
html[data-theme="dark"] .datepicker table tr td.new { color: #5c6774; }
html[data-theme="dark"] .datepicker table tr td.today { background-color: #5e4b23; color: #fbefd6; }
html[data-theme="dark"] .datepicker table tr td.active,
html[data-theme="dark"] .datepicker table tr td.active:hover,
html[data-theme="dark"] .datepicker table tr td span.active { background-color: #1d6f86; border-color: #1d6f86; color: #fff; }
html[data-theme="dark"] .datepicker table tr td.range { background-color: rgba(79, 198, 234, .15); }
/* DataTables */
html[data-theme="dark"] .dataTables_wrapper,
html[data-theme="dark"] .dataTables_info,
html[data-theme="dark"] .dataTables_length,
html[data-theme="dark"] .dataTables_filter { color: var(--dm-text); }
/* Morris / Flot charts */
html[data-theme="dark"] .morris-hover.morris-default-style { background: rgba(28, 34, 41, .95); border-color: var(--dm-border); color: var(--dm-text); }
html[data-theme="dark"] .morris-hover.morris-default-style .morris-hover-row-label { color: var(--dm-text-strong); }
html[data-theme="dark"] [id^="morris"] svg text { fill: var(--dm-muted); }
html[data-theme="dark"] .flot-text, html[data-theme="dark"] .flot-tick-label { color: var(--dm-muted) !important; }
html[data-theme="dark"] #flotTip { background-color: var(--dm-surface-2) !important; border-color: var(--dm-border) !important; color: var(--dm-text) !important; }
/* Growl notifications use .alert-* classes: covered above. */

/* ---------- App-specific ---------- */
html[data-theme="dark"] #loader { background: rgba(20, 24, 29, .7); }

/* ---------- Theme toggle (navbar) ---------- */
.theme-toggle .fa-sun-o { display: none; }
html[data-theme="dark"] .theme-toggle .fa-sun-o { display: inline-block; }
html[data-theme="dark"] .theme-toggle .fa-moon-o { display: none; }

/* ---------- Print stays light ---------- */
@media print {
    html[data-theme="dark"] body { background: #fff !important; color: #000 !important; }
}
