/* Artisan Estate "Forge" admin theme, light and dark. Linked into pretix's control and login base
   templates by pretix-branding/debrand.py. Everything colours through the tokens below, so dark mode
   only redefines tokens. */

:root {
  --ae-charcoal: #1f1c1a;
  --ae-charcoal-2: #2f2a26;
  --ae-charcoal-3: #3d3732;
  --ae-side-text: #e9e3da;
  --ae-side-muted: #a89e92;
  --ae-page: #f6f3ee;
  --ae-card: #ffffff;
  --ae-card-2: #faf7f2;
  --ae-border: #e4ddd2;
  --ae-text: #2a2622;
  --ae-muted: #7a7067;
  --ae-ember: #c8742c;
  --ae-ember-soft: #fbeee2;
  --ae-green: #008000;
  --ae-green-dark: #006600;
  --ae-green-soft: #e5f3e5;
  --ae-link: #006600;
  --ae-input: #ffffff;
  --ae-shadow: 0 1px 2px rgba(42, 38, 34, .06);
  --ae-serif: Georgia, "Times New Roman", serif;
  color-scheme: light;
}

:root[data-theme="dark"] {
  --ae-page: #171513;
  --ae-card: #221f1c;
  --ae-card-2: #2a2622;
  --ae-border: #3a342e;
  --ae-text: #ece6dc;
  --ae-muted: #a89e92;
  --ae-ember: #e08a3c;
  --ae-ember-soft: #3a2a1c;
  --ae-green: #3fae3f;
  --ae-green-dark: #5cc35c;
  --ae-green-soft: #1c2e1c;
  --ae-link: #7fd17f;
  --ae-input: #1b1916;
  --ae-shadow: none;
  color-scheme: dark;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --ae-page: #171513;
    --ae-card: #221f1c;
    --ae-card-2: #2a2622;
    --ae-border: #3a342e;
    --ae-text: #ece6dc;
    --ae-muted: #a89e92;
    --ae-ember: #e08a3c;
    --ae-ember-soft: #3a2a1c;
    --ae-green: #3fae3f;
    --ae-green-dark: #5cc35c;
    --ae-green-soft: #1c2e1c;
    --ae-link: #7fd17f;
    --ae-input: #1b1916;
    --ae-shadow: none;
    color-scheme: dark;
  }
}

/* ── Page ─────────────────────────────────────────────────────────────── */
html, body, #wrapper, #page-wrapper { background: var(--ae-page) !important; color: var(--ae-text); }
#page-wrapper { border-left: 0 !important; }
h1, h2, h3, h4, .h1, .h2, .h3, .page-header h1 { font-family: var(--ae-serif); font-weight: normal; color: var(--ae-text); }
h1 small, h2 small, h3 small, .text-muted, .help-block, small.text-muted { color: var(--ae-muted) !important; }
a { color: var(--ae-link); }
a:hover, a:focus { color: var(--ae-green-dark); }
hr { border-top-color: var(--ae-border); }
footer, #page-wrapper footer { color: var(--ae-muted); }
footer a { color: var(--ae-muted) !important; }
code, pre { background: var(--ae-card-2); color: var(--ae-text); border-color: var(--ae-border); }

/* ── Top bar ──────────────────────────────────────────────────────────── */
.navbar-inverse, .navbar-static-top.navbar-inverse {
  background: var(--ae-charcoal) !important; border-color: var(--ae-charcoal) !important;
}
.navbar-inverse .navbar-brand, .navbar-inverse .navbar-nav > li > a, .navbar-inverse .navbar-toggle {
  color: var(--ae-side-text) !important;
}
.navbar-inverse .navbar-brand { font-family: var(--ae-serif); }
.navbar-inverse .navbar-nav > li > a:hover, .navbar-inverse .navbar-nav > .open > a { background: var(--ae-charcoal-2) !important; color: #fff !important; }
.navbar-inverse .navbar-toggle .icon-bar { background: var(--ae-side-text); }
/* "System admin": rarely needed, so it shouldn't shout. */
.navbar-nav a[href*="/control/sudo/"] { opacity: .65; font-size: 13px; }
.navbar-nav a[href*="/control/sudo/"]:hover { opacity: 1; }
.ae-theme-toggle { cursor: pointer; background: none; border: 0; }

/* ── Sidebar ──────────────────────────────────────────────────────────── */
.navbar-default.sidebar, .sidebar { background: var(--ae-charcoal) !important; border-color: var(--ae-charcoal) !important; }
.sidebar .context-selector, .sidebar .context-selector > a, .sidebar .context-selector .dropdown-toggle {
  background: var(--ae-charcoal-2) !important; border-color: var(--ae-charcoal-3) !important; color: var(--ae-side-text) !important;
}
.sidebar .context-name { color: #fff !important; font-family: var(--ae-serif); }
.sidebar .context-meta { color: var(--ae-side-muted) !important; }
.sidebar .context-indicator .fa-circle { color: var(--ae-ember) !important; }
#side-menu > li { border-bottom: 1px solid var(--ae-charcoal-2) !important; }
#side-menu > li > a, #side-menu .nav-second-level li a {
  color: var(--ae-side-text) !important; background: transparent !important; border-left: 3px solid transparent;
}
#side-menu > li > a:hover, #side-menu .nav-second-level li a:hover { background: var(--ae-charcoal-2) !important; color: #fff !important; }
#side-menu > li > a.active, #side-menu .nav-second-level li a.active {
  background: var(--ae-charcoal-2) !important; color: #fff !important; border-left-color: var(--ae-ember);
}
#side-menu .nav-second-level { background: rgba(0, 0, 0, .18) !important; }
@media (min-width: 768px) {
  /* Charcoal all the way down, not just behind the last item. */
  .navbar-default.sidebar { min-height: calc(100vh - 50px); }
  /* Items placed below the menu editor's "bottom of the sidebar" line sit at the foot of the panel. */
  .navbar-default.sidebar .sidebar-nav { display: flex; flex-direction: column; min-height: calc(100vh - 50px); }
  .navbar-default.sidebar #side-menu { display: flex; flex-direction: column; flex: 1 0 auto; }
  #side-menu li.ae-nav-bottom { margin-top: auto; }
}
#side-menu li.ae-nav-heading.ae-nav-bottom { padding: 0; min-height: 16px; border-bottom: 1px solid var(--ae-charcoal-2) !important; }
#side-menu .nav-second-level li a { padding-left: 40px; font-size: 13px; }
#side-menu .fa { color: var(--ae-side-muted); }
#side-menu a.active .fa, #side-menu a:hover .fa { color: var(--ae-ember); }
#side-menu .arrow, #side-menu .fa.arrow { color: var(--ae-side-muted) !important; }
#side-menu li.testmode a { background: #f0ad4e !important; color: #1f1c1a !important; }
#side-menu li.ae-nav-heading {
  padding: 18px 16px 6px; font-size: 12px; font-weight: 600; letter-spacing: 1.4px; text-transform: uppercase;
  color: var(--ae-ember); border-bottom: 0 !important;
}
#side-menu li.ae-nav-back > a { color: var(--ae-side-muted) !important; font-size: 13px; }

/* ── Surfaces ─────────────────────────────────────────────────────────── */
.panel, .well, .list-group-item, .thumbnail, .modal-content, .popover, .dashboard .widget, .widget,
.dropdown-menu, .media, .pagination > li > a, .pagination > li > span, .card {
  background-color: var(--ae-card) !important; border-color: var(--ae-border) !important; color: var(--ae-text);
}
.panel { box-shadow: var(--ae-shadow); }
.panel-default > .panel-heading, .panel-heading, .modal-header, .modal-footer, .panel-footer, .well-sm {
  background-color: var(--ae-card-2) !important; border-color: var(--ae-border) !important; color: var(--ae-text) !important;
}
.panel-title, .panel-heading h3, .panel-heading .panel-title { font-family: var(--ae-serif); color: var(--ae-text); }
.dropdown-menu > li > a { color: var(--ae-text) !important; }
.dropdown-menu > li > a:hover, .dropdown-menu > .active > a { background: var(--ae-card-2) !important; color: var(--ae-text) !important; }
.dropdown-menu .divider { background: var(--ae-border); }

/* Tables */
.table, .table > thead > tr > th, .table > tbody > tr > td, .table > tfoot > tr > td, .table > thead > tr > td {
  border-color: var(--ae-border) !important; color: var(--ae-text);
}
.table > thead > tr > th { color: var(--ae-muted); font-weight: 600; }
.table-striped > tbody > tr:nth-of-type(odd), .table-hover > tbody > tr:hover { background-color: var(--ae-card-2) !important; }
.table > tbody > tr.active > td, .table > tbody > tr > td.active { background-color: var(--ae-card-2) !important; }

/* Forms */
.form-control, .input-group-addon, select.form-control, textarea.form-control,
.select2-container--default .select2-selection, .select2-container--bootstrap .select2-selection,
.select2-dropdown, .select2-search__field, .bootstrap-datetimepicker-widget {
  background-color: var(--ae-input) !important; border-color: var(--ae-border) !important; color: var(--ae-text) !important;
}
.select2-results__option, .select2-selection__rendered { color: var(--ae-text) !important; }
.select2-results__option--highlighted { background: var(--ae-green) !important; color: #fff !important; }
.form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control {
  background-color: var(--ae-card-2) !important; color: var(--ae-muted) !important; cursor: not-allowed;
}
.form-control:focus { border-color: var(--ae-ember) !important; box-shadow: 0 0 0 2px var(--ae-ember-soft) !important; }
.control-label, label, legend { color: var(--ae-text); }
legend { border-bottom-color: var(--ae-border); font-family: var(--ae-serif); }
.nav-tabs { border-bottom-color: var(--ae-border); }
.nav-tabs > li > a { color: var(--ae-muted); }
.nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus {
  background: var(--ae-card) !important; color: var(--ae-text) !important; border-color: var(--ae-border) var(--ae-border) transparent !important;
}
.nav-pills > li.active > a { background: var(--ae-green) !important; }

/* Buttons */
.btn-primary, .btn-success {
  background-color: var(--ae-green) !important; border-color: var(--ae-green) !important; color: #fff !important;
}
.btn-primary:hover, .btn-primary:focus, .btn-success:hover { background-color: var(--ae-green-dark) !important; border-color: var(--ae-green-dark) !important; }
.btn-default { background-color: var(--ae-card) !important; border-color: var(--ae-border) !important; color: var(--ae-text) !important; }
.btn-default:hover, .btn-default:focus, .btn-default.active { background-color: var(--ae-card-2) !important; }
.btn-link { color: var(--ae-link); }

/* Alerts and labels */
.alert-info { background: var(--ae-card-2) !important; border-color: var(--ae-border) !important; color: var(--ae-text) !important; }
.alert-success { background: var(--ae-green-soft) !important; border-color: var(--ae-green) !important; color: var(--ae-text) !important; }
.alert-warning { background: var(--ae-ember-soft) !important; border-color: var(--ae-ember) !important; color: var(--ae-text) !important; }
.alert-danger { color: var(--ae-text) !important; }
.label-success { background: var(--ae-green) !important; }
.label-primary { background: var(--ae-ember) !important; }

/* pretix bits */
.page-header { border-bottom-color: var(--ae-border); }
.empty-collection { color: var(--ae-muted); }
.helper-display-inline, .context-meta { color: var(--ae-muted); }

/* ── Dark-mode fixes for colours pretix hard-codes ────────────────────── */
:root[data-theme="dark"] .alert-danger { background: #3a1e1e !important; border-color: #a94442 !important; }
:root[data-theme="dark"] .text-success, :root[data-theme="dark"] .text-primary { color: var(--ae-green-dark) !important; }
:root[data-theme="dark"] .bg-success, :root[data-theme="dark"] .success > td { background-color: var(--ae-green-soft) !important; }
:root[data-theme="dark"] .bg-warning, :root[data-theme="dark"] .warning > td { background-color: var(--ae-ember-soft) !important; }
:root[data-theme="dark"] .bg-danger, :root[data-theme="dark"] .danger > td { background-color: #3a1e1e !important; }
:root[data-theme="dark"] .close { color: var(--ae-text); text-shadow: none; }
:root[data-theme="dark"] .text-danger, :root[data-theme="dark"] .aes-incoming.text-danger { color: #f08a84 !important; }
:root[data-theme="dark"] .text-warning { color: #e8b65c !important; }
:root[data-theme="dark"] .nav-tabs > li > a:hover { background: var(--ae-card-2); border-color: var(--ae-border); }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .alert-danger { background: #3a1e1e !important; border-color: #a94442 !important; }
  :root:not([data-theme="light"]) .text-success, :root:not([data-theme="light"]) .text-primary { color: var(--ae-green-dark) !important; }
  :root:not([data-theme="light"]) .bg-success, :root:not([data-theme="light"]) .success > td { background-color: var(--ae-green-soft) !important; }
  :root:not([data-theme="light"]) .bg-warning, :root:not([data-theme="light"]) .warning > td { background-color: var(--ae-ember-soft) !important; }
  :root:not([data-theme="light"]) .bg-danger, :root:not([data-theme="light"]) .danger > td { background-color: #3a1e1e !important; }
  :root:not([data-theme="light"]) .text-danger, :root:not([data-theme="light"]) .aes-incoming.text-danger { color: #f08a84 !important; }
  :root:not([data-theme="light"]) .text-warning { color: #e8b65c !important; }
  :root:not([data-theme="light"]) .nav-tabs > li > a:hover { background: var(--ae-card-2); border-color: var(--ae-border); }
  :root:not([data-theme="light"]) .close { color: var(--ae-text); text-shadow: none; }
}
img { color-scheme: normal; }

/* ── Login pages (auth/base.html) ─────────────────────────────────────── */
body > .container .logo { margin-top: 8vh; width: 160px; }
body > .container form, body > .container .panel { background: var(--ae-card); border: 1px solid var(--ae-border); border-radius: 8px; padding: 24px; }
body > .container footer { text-align: center; color: var(--ae-muted); }

/* ── Today page ───────────────────────────────────────────────────────── */
.ae-today h1 { margin-top: 10px; margin-bottom: 2px; }
.ae-today h2 { font-size: 20px; margin: 26px 0 10px; }
.ae-today-sub { color: var(--ae-muted); margin-bottom: 18px; }
.ae-today-note { margin-top: -6px; }
.ae-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px; margin-bottom: 14px; }
.ae-tile { display: block; background: var(--ae-card); border: 1px solid var(--ae-border); border-radius: 8px;
  padding: 14px 16px; color: var(--ae-text) !important; text-decoration: none !important; box-shadow: var(--ae-shadow); }
.ae-tile b { display: block; font-size: 26px; font-family: var(--ae-serif); font-weight: normal; color: var(--ae-green); }
.ae-tile span { color: var(--ae-muted); font-size: 13px; }
.ae-tile-alert b { color: var(--ae-ember); }
.ae-tile:hover { border-color: var(--ae-ember); }
.ae-list { background: var(--ae-card); border: 1px solid var(--ae-border); border-radius: 8px; overflow: hidden; }
.ae-row { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; padding: 12px 16px;
  color: var(--ae-text) !important; text-decoration: none !important; border-top: 1px solid var(--ae-border); }
.ae-row:first-child { border-top: 0; }
.ae-row:hover { background: var(--ae-card-2); }
.ae-row-time { min-width: 120px; color: var(--ae-muted); font-variant-numeric: tabular-nums; }
.ae-row-name { flex: 1 1 200px; font-weight: 600; }
.ae-row-meta { display: flex; gap: 6px; flex-wrap: wrap; }
.ae-list-compact .ae-row { padding: 8px 16px; }
.ae-list-compact .ae-row-name { font-weight: normal; }
.ae-pill { font-size: 12px; padding: 2px 9px; border-radius: 10px; background: var(--ae-card-2); color: var(--ae-muted); border: 1px solid var(--ae-border); }
.ae-pill-ok { background: var(--ae-green-soft); color: var(--ae-green-dark); border-color: transparent; }
.ae-pill-warn { background: var(--ae-ember-soft); color: var(--ae-ember); border-color: transparent; }
.ae-empty { padding: 14px 16px; margin: 0; }

/* ── Menu editor ──────────────────────────────────────────────────────── */
.ae-menu-editor .ae-menu-landing { max-width: 420px; }
.ae-menu-list, .ae-menu-children { list-style: none; padding: 0; margin: 12px 0; }
.ae-menu-children { margin: 6px 0 2px 34px; }
.ae-menu-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 6px 10px; margin-bottom: 4px;
  background: var(--ae-card); border: 1px solid var(--ae-border); border-radius: 6px; }
.ae-menu-row .ae-label { flex: 1 1 200px; max-width: 320px; }
.ae-menu-row .ae-menu-children { flex-basis: 100%; }
.ae-menu-children:not(:has(> li)) { margin: 0; min-height: 0; }
.ae-dragging .ae-menu-children:not(:has(> li)), .ae-menu-folder > .ae-menu-children:not(:has(> li)) {
  margin: 6px 0 2px 34px; min-height: 30px; border: 1px dashed var(--ae-border); border-radius: 6px;
}
.ae-menu-folder > .ae-menu-children:not(:has(> li))::before {
  content: "Drag pages here"; display: block; padding: 5px 10px; color: var(--ae-muted); font-size: 12px;
}
.ae-dragging .ae-menu-children:not(:has(> li))::before { content: none; }
.ae-menu-heading.ae-heading-empty::after {
  content: "Nothing under this heading, so it won't show in the sidebar"; flex-basis: 100%; color: var(--ae-ember); font-size: 12px;
}
.ae-menu-folder { background: var(--ae-card-2); }
.ae-menu-row .ae-url { flex: 1 1 220px; max-width: 360px; }
.ae-menu-link .ae-link-icon { color: var(--ae-ember); }
.ae-menu-hidden > .ae-url { opacity: .45; }
.ae-menu-bottom { background: transparent; border: 0; border-top: 2px dashed var(--ae-ember); border-radius: 0;
  margin: 14px 0 8px; color: var(--ae-ember); font-size: 12px; }
.ae-folder-icon { color: var(--ae-ember); }
.ae-menu-heading { background: var(--ae-card-2); }
.ae-menu-heading .ae-label { text-transform: uppercase; letter-spacing: 1px; font-size: 12px; }
.ae-menu-hidden > .ae-label, .ae-menu-hidden > .ae-original { opacity: .45; text-decoration: line-through; }
.ae-drag { cursor: grab; color: var(--ae-muted); padding: 4px; }
.ae-show { margin: 0; }
.ae-menu-actions { margin-top: 16px; }
.ae-menu-reset { margin-top: 6px; }

/* ── Class-date manifest (under Bookings) ─────────────────────────────── */
.ae-manifest { margin-top: 22px; }
.ae-manifest tr.ae-manifest-booking > td { border-top: 2px solid var(--ae-border); }
.ae-manifest td .label { font-size: 11px; }
.ae-mb1 { margin-bottom: 1em; }
.ae-search-wide { width: 300px; max-width: 100%; }
.ae-narrow-form { max-width: 600px; }
