/* Shared shell for every authenticated Django admin screen. */
body.halo-admin-shell:not(.login) {
  min-height: 100vh;
  color: #202822;
  background: #f5f6f1;
}
body.halo-admin-shell:not(.login) #container { min-width: 0; min-height: 100vh; height: auto; }
body.halo-admin-shell:not(.login) #header,
body.halo-admin-shell:not(.login) #container > nav { display: none; }
body.halo-admin-shell:not(.login) #container > .main { display: flex; min-height: 100vh; align-items: stretch; }

body.halo-admin-shell:not(.login) .main > #nav-sidebar.halo-sidebar,
body.halo-admin-shell:not(.login) .main.shifted > #nav-sidebar.halo-sidebar {
  position: sticky;
  z-index: 40;
  top: 0;
  left: 0;
  display: flex;
  width: 280px;
  height: 100vh;
  max-height: 100vh;
  margin-left: 0;
  flex: 0 0 280px;
  visibility: visible;
  color: #c8d0cc;
  background: #111612;
  border: 0;
}
body.halo-admin-shell:not(.login) .main > #nav-sidebar + .content,
body.halo-admin-shell:not(.login) .main.shifted > #nav-sidebar + .content {
  width: 0;
  min-width: 0;
  max-width: none;
  flex: 1 1 0;
  background: #f5f6f1;
}
body.halo-admin-shell:not(.login) #content {
  position: relative;
  width: 100%;
  max-width: none;
  padding: 36px 38px 54px;
  box-sizing: border-box;
}
body.halo-admin-shell:not(.login) #content-main { float: none; width: 100%; }
body.halo-admin-shell:not(.login) #content > h1 {
  margin: 0 0 28px;
  color: #151b17;
  font: 800 30px/1.15 "Avenir Next", "Gill Sans", sans-serif;
  letter-spacing: -.04em;
}
body.halo-admin-shell:not(.login) #content > h2 { margin: -18px 0 26px; color: #7b857f; font-size: 12px; font-weight: 500; }

/* Sidebar sizing and account controls. */
body.halo-admin-shell:not(.login) .halo-sidebar__logo { margin: 24px 20px 7px; }
body.halo-admin-shell:not(.login) .halo-sidebar__logo > span { width: 36px; height: 36px; font-size: 18px; }
body.halo-admin-shell:not(.login) .halo-sidebar__logo strong { font-size: 13px; }
body.halo-admin-shell:not(.login) .halo-sidebar__workspace { margin: 20px 17px 13px; padding: 14px; }
body.halo-admin-shell:not(.login) .halo-sidebar__workspace strong { font-size: 13px; }
body.halo-admin-shell:not(.login) .halo-sidebar__search { height: 42px; margin: 0 17px 6px; }
body.halo-admin-shell:not(.login) .halo-sidebar__search input { font-size: 11px; }
body.halo-admin-shell:not(.login) .halo-nav-group { margin-top: 19px; }
body.halo-admin-shell:not(.login) .halo-nav-group h2 { font-size: 9px; }
body.halo-admin-shell:not(.login) .halo-nav-group a { min-height: 43px; font-size: 12px; }
body.halo-admin-shell:not(.login) .halo-nav-icon { width: 28px; height: 28px; }
body.halo-admin-shell:not(.login) .halo-sidebar__account { min-height: 108px; flex-wrap: wrap; }
body.halo-admin-shell:not(.login) .halo-sidebar__account strong { font-size: 11px; }
body.halo-admin-shell:not(.login) .halo-sidebar__account > span:nth-child(2) { min-width: 0; flex: 1; }
body.halo-admin-shell:not(.login) .halo-sidebar__account > a { color: #77837c; font-size: 13px; letter-spacing: 1px; text-decoration: none; }
.halo-sidebar__logout { width: 100%; margin: 2px 0 0; }
.halo-sidebar__logout button {
  display: flex;
  width: 100%;
  min-height: 34px;
  padding: 0 11px;
  align-items: center;
  justify-content: center;
  gap: 8px;
  color: #c5cec9;
  background: #171e1a;
  border: 1px solid #2b3530;
  border-radius: 8px;
  cursor: pointer;
  font: 800 9px/1 "Avenir Next", sans-serif;
}
.halo-sidebar__logout button:hover { color: #161b18; background: #ffd400; border-color: #ffd400; }
.halo-sidebar__logout svg { width: 15px; height: 15px; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

/* Page tools and primary actions. */
body.halo-admin-shell:not(.login) .object-tools { display: flex; min-height: 42px; margin: -68px 0 26px; align-items: center; justify-content: flex-end; float: none; }
body.halo-admin-shell:not(.login) .object-tools li { height: auto; margin: 0; }
body.halo-admin-shell:not(.login) .object-tools a:link,
body.halo-admin-shell:not(.login) .object-tools a:visited { min-height: 40px; padding: 0 16px; display: inline-flex; align-items: center; color: #171c18; background: #ffd400; border-radius: 10px; font-size: 11px; font-weight: 900; }
body.halo-admin-shell:not(.login) .object-tools a:hover { background: #ffe45b; }
body.halo-admin-shell:not(.login) .object-tools a.addlink:before { color: #171c18; }

/* Changelist shell. */
body.halo-admin-shell:not(.login) #changelist { display: flex; width: 100%; align-items: flex-start; gap: 18px; }
body.halo-admin-shell:not(.login) #changelist .changelist-form-container { width: auto; min-width: 0; flex: 1 1 0; }
body.halo-admin-shell:not(.login) #changelist-form { min-width: 0; }
body.halo-admin-shell:not(.login) #toolbar {
  margin: 0 0 14px;
  padding: 13px;
  background: #fff;
  border: 1px solid #e2e6df;
  border-radius: 13px;
  box-shadow: 0 4px 18px rgba(31,43,35,.03);
}
body.halo-admin-shell:not(.login) #toolbar form { display: flex; align-items: center; gap: 8px; }
body.halo-admin-shell:not(.login) #toolbar form > div { display: flex; width: 100%; align-items: center; gap: 9px; }
body.halo-admin-shell:not(.login) #toolbar form label { display: grid; width: 38px; height: 38px; margin: 0; flex: 0 0 auto; place-items: center; color: #7f8982; background: #f2f4ef; border-radius: 9px; }
body.halo-admin-shell:not(.login) #toolbar form label img { width: 17px; height: 17px; }
body.halo-admin-shell:not(.login) #toolbar form #searchbar { width: min(520px, 100%); height: 40px; margin: 0; padding: 0 13px; flex: 1 1 360px; background: #f6f7f3; border: 1px solid #dfe4dc; border-radius: 9px; font-size: 12px; }
body.halo-admin-shell:not(.login) #toolbar form input[type="submit"] { height: 40px; padding: 0 16px; color: #fff; background: #171d18; border: 0; border-radius: 9px; font-weight: 800; }
body.halo-admin-shell:not(.login) #toolbar form img { opacity: .45; }
body.halo-admin-shell:not(.login) #toolbar form .small.quiet { margin-left: auto; color: #8b948e; font-size: 10px; white-space: nowrap; }

body.halo-admin-shell:not(.login) #changelist .actions {
  min-height: 54px;
  margin: 0;
  padding: 8px 14px;
  background: #fff;
  border: 1px solid #e4e8e1;
  border-bottom: 0;
  border-radius: 13px 13px 0 0;
}
body.halo-admin-shell:not(.login) #changelist .actions label { color: #707b74; font-size: 11px; }
body.halo-admin-shell:not(.login) #changelist .actions select { min-width: 240px; height: 36px; background: #f5f7f3; border: 1px solid #dfe4dc; border-radius: 8px; }
body.halo-admin-shell:not(.login) #changelist .actions button { height: 36px; padding: 0 13px; color: #fff; background: #202720; border-radius: 8px; }

body.halo-admin-shell:not(.login) .results { width: 100%; overflow: auto; background: #fff; border: 1px solid #e4e8e1; border-radius: 0 0 13px 13px; }
body.halo-admin-shell:not(.login) #result_list { width: 100%; margin: 0; border: 0; }
body.halo-admin-shell:not(.login) #result_list thead th { padding: 13px 12px; color: #78817b; background: #f0f2ed; border: 0; border-bottom: 1px solid #dfe4dc; font-size: 10px; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; }
body.halo-admin-shell:not(.login) #result_list thead th.sorted { color: #37351e; background: #fff1a3; }
body.halo-admin-shell:not(.login) #result_list thead th a,
body.halo-admin-shell:not(.login) #result_list thead th .text a,
body.halo-admin-shell:not(.login) #result_list thead th.sorted a,
body.halo-admin-shell:not(.login) #result_list thead th.sorted .text a { color: #315848 !important; background: transparent !important; }
body.halo-admin-shell:not(.login) #result_list thead th.sorted a,
body.halo-admin-shell:not(.login) #result_list thead th.sorted .text a { color: #37351e !important; }
body.halo-admin-shell:not(.login) #result_list thead th:hover { color: #292f2b; background: #fff8d8; }
body.halo-admin-shell:not(.login) #result_list thead th.sorted:hover { background: #ffe77a; }
body.halo-admin-shell:not(.login) #result_list thead th .text a:hover,
body.halo-admin-shell:not(.login) #result_list thead th.sorted .text a:hover { color: #171c18 !important; background: transparent !important; }
body.halo-admin-shell:not(.login) #result_list thead th .sortoptions { color: #72786f; }
body.halo-admin-shell:not(.login) #result_list thead th .sortoptions a { background-color: transparent !important; }
body.halo-admin-shell:not(.login) #result_list thead th .sortoptions .sortpriority { color: #5e625b; }
body.halo-admin-shell:not(.login) #result_list tbody td,
body.halo-admin-shell:not(.login) #result_list tbody th { height: 54px; padding: 11px 12px; color: #4f5952; background: #fff; border-color: #edf0eb; font-size: 12px; vertical-align: middle; }
body.halo-admin-shell:not(.login) #result_list tbody tr:nth-child(even) td,
body.halo-admin-shell:not(.login) #result_list tbody tr:nth-child(even) th { background: #fafbf8; }
body.halo-admin-shell:not(.login) #result_list tbody tr:hover td,
body.halo-admin-shell:not(.login) #result_list tbody tr:hover th { color: #303a33; background: #fff9dc; }
body.halo-admin-shell:not(.login) #result_list tbody tr:hover a { color: #234c3c; }
body.halo-admin-shell:not(.login) #result_list a { color: #2e5748; font-weight: 800; }
body.halo-admin-shell:not(.login) #result_list input[type="number"],
body.halo-admin-shell:not(.login) #result_list input[type="text"] { min-width: 0; height: 38px; padding: 6px 9px; background: #fafbf8; border: 1px solid #dce2da; border-radius: 8px; }
body.halo-admin-shell:not(.login) #result_list .field-price input,
body.halo-admin-shell:not(.login) #result_list .field-compare_at_price input { width: 118px; }
body.halo-admin-shell:not(.login) #result_list .field-stock input,
body.halo-admin-shell:not(.login) #result_list .field-sort_order input { width: 76px; }
body.halo-admin-shell:not(.login) #result_list td.action-checkbox,
body.halo-admin-shell:not(.login) #result_list th.action-checkbox-column { width: 42px; padding-left: 14px; padding-right: 8px; text-align: center; }
body.halo-admin-shell:not(.login) #changelist .paginator { margin: 12px 0 0; padding: 14px 16px; background: #fff; border: 1px solid #e4e8e1; border-radius: 12px; font-size: 11px; }
body.halo-admin-shell:not(.login) #changelist .paginator input[type="submit"] { color: #171c18; background: #ffd400; }

/* Filters stay light and readable. */
body.halo-admin-shell:not(.login) #changelist-filter {
  position: static;
  width: 250px;
  margin: 0;
  flex: 0 0 250px;
  overflow: hidden;
  color: #566159;
  background: #fff;
  border: 1px solid #e2e6df;
  border-radius: 13px;
  box-shadow: 0 4px 18px rgba(31,43,35,.03);
}
body.halo-admin-shell:not(.login) #changelist-filter h2 { margin: 0; padding: 17px 18px; color: #202720; background: #fff; border-bottom: 1px solid #edf0eb; font-size: 14px; }
body.halo-admin-shell:not(.login) #changelist-filter h3 { margin: 0; padding: 14px 18px 6px; color: #8b948e; font-size: 9px; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
body.halo-admin-shell:not(.login) #changelist-filter ul { margin: 0; padding: 0 10px 11px; }
body.halo-admin-shell:not(.login) #changelist-filter li { margin: 1px 0; }
body.halo-admin-shell:not(.login) #changelist-filter li a { display: block; padding: 8px 9px; color: #606a63; border-radius: 7px; font-size: 11px; }
body.halo-admin-shell:not(.login) #changelist-filter li.selected { border-left: 3px solid #e8bd00; }
body.halo-admin-shell:not(.login) #changelist-filter li.selected a { color: #20251f; background: #fff7cc; font-weight: 800; }
body.halo-admin-shell:not(.login) #changelist-filter #changelist-filter-extra-actions { border-color: #edf0eb; }
body.halo-admin-shell:not(.login) #changelist-filter details > summary { padding: 13px 17px; color: #526058; }

/* Add/change forms. */
body.halo-admin-shell:not(.login) form > div > .module,
body.halo-admin-shell:not(.login) fieldset.module,
body.halo-admin-shell:not(.login) .inline-group {
  margin-bottom: 18px;
  overflow: hidden;
  background: #fff;
  border: 1px solid #e2e6df;
  border-radius: 14px;
  box-shadow: 0 4px 18px rgba(31,43,35,.03);
}
body.halo-admin-shell:not(.login) fieldset.module > h2,
body.halo-admin-shell:not(.login) .inline-group > h2 { margin: 0; padding: 15px 18px; color: #252d27; background: #f0f2ed; font-size: 12px; }
body.halo-admin-shell:not(.login) .form-row { padding: 17px 20px; border-color: #edf0eb; }
body.halo-admin-shell:not(.login) .form-row label { color: #48534c; font-size: 11px; font-weight: 800; }
body.halo-admin-shell:not(.login) input[type="text"],
body.halo-admin-shell:not(.login) input[type="email"],
body.halo-admin-shell:not(.login) input[type="number"],
body.halo-admin-shell:not(.login) input[type="url"],
body.halo-admin-shell:not(.login) input[type="password"],
body.halo-admin-shell:not(.login) textarea,
body.halo-admin-shell:not(.login) select { min-height: 42px; padding: 8px 11px; color: #28312b; background: #fafbf8; border: 1px solid #dce2da; border-radius: 9px; }
body.halo-admin-shell:not(.login) input:focus,
body.halo-admin-shell:not(.login) textarea:focus,
body.halo-admin-shell:not(.login) select:focus { border-color: #ae9800; box-shadow: 0 0 0 3px rgba(255,212,0,.12); outline: 0; }
body.halo-admin-shell:not(.login) .submit-row { position: sticky; z-index: 10; bottom: 0; display: flex; padding: 14px; align-items: center; justify-content: flex-end; gap: 8px; background: rgba(240,242,237,.94); border: 1px solid #dce2da; border-radius: 13px; backdrop-filter: blur(10px); }
body.halo-admin-shell:not(.login) .submit-row input { min-height: 42px; padding: 0 18px; }
body.halo-admin-shell:not(.login) .submit-row input.default { color: #171c18; background: #ffd400; }

.halo-shell-menu, .halo-shell-backdrop { display: none; }

@media (max-width: 900px) {
  body.halo-admin-shell:not(.login) #container > .main { display: block; }
  body.halo-admin-shell:not(.login) .main > #nav-sidebar.halo-sidebar,
  body.halo-admin-shell:not(.login) .main.shifted > #nav-sidebar.halo-sidebar {
    position: fixed;
    z-index: 130;
    top: 0;
    bottom: 0;
    left: 0;
    display: flex;
    width: min(86vw, 300px);
    height: 100dvh;
    max-height: 100dvh;
    margin-left: 0;
    flex-basis: auto;
    visibility: visible;
    transform: translateX(-102%);
    transition: transform .24s cubic-bezier(.2,.8,.2,1);
    box-shadow: 24px 0 60px rgba(0,0,0,.3);
  }
  body.halo-admin-shell.halo-sidebar-open:not(.login) .main > #nav-sidebar.halo-sidebar,
  body.halo-admin-shell.halo-sidebar-open:not(.login) .main.shifted > #nav-sidebar.halo-sidebar { transform: translateX(0); }
  body.halo-admin-shell:not(.login) .main > #nav-sidebar + .content,
  body.halo-admin-shell:not(.login) .main.shifted > #nav-sidebar + .content { width: 100%; max-width: 100%; }
  body.halo-admin-shell:not(.login) #content { padding: 78px 16px 38px; }
  .halo-shell-menu { position: fixed; z-index: 115; top: 16px; left: 16px; display: flex; width: 44px; height: 44px; padding: 11px; flex-direction: column; justify-content: center; gap: 4px; background: #171d18; border: 0; border-radius: 11px; box-shadow: 0 8px 22px rgba(22,29,24,.2); }
  .halo-shell-menu i { display: block; height: 2px; background: #ffd400; border-radius: 2px; }
  .halo-shell-backdrop { position: fixed; z-index: 120; inset: 0; display: block; visibility: hidden; opacity: 0; background: rgba(8,11,9,.58); border: 0; backdrop-filter: blur(2px); transition: opacity .2s ease, visibility .2s ease; }
  body.halo-admin-shell.halo-sidebar-open:not(.login) .halo-shell-backdrop { visibility: visible; opacity: 1; }
  body.halo-admin-shell.halo-sidebar-open:not(.login) { overflow: hidden; }
  body.halo-admin-shell:not(.login) #changelist { display: block; }
  body.halo-admin-shell:not(.login) #changelist-filter { width: 100%; margin-top: 16px; }
  body.halo-admin-shell:not(.login) .object-tools { margin: 0 0 16px; justify-content: flex-start; }
  body.halo-admin-shell:not(.login) #content > h1 { margin-bottom: 18px; font-size: 25px; }
}

@media (max-width: 560px) {
  body.halo-admin-shell:not(.login) #toolbar form,
  body.halo-admin-shell:not(.login) #toolbar form > div { align-items: stretch; flex-wrap: wrap; }
  body.halo-admin-shell:not(.login) #toolbar form label { display: none; }
  body.halo-admin-shell:not(.login) #toolbar form #searchbar { width: 100%; }
  body.halo-admin-shell:not(.login) #changelist .actions select { min-width: 150px; max-width: 100%; }
  body.halo-admin-shell:not(.login) .form-row { padding: 14px; }
  body.halo-admin-shell:not(.login) .form-row > div { width: 100%; }
  body.halo-admin-shell:not(.login) .form-row input[type="text"],
  body.halo-admin-shell:not(.login) .form-row textarea,
  body.halo-admin-shell:not(.login) .form-row select { width: 100%; max-width: 100%; }
}
