/* ============================================================================
   Forest Studio Hospitality — back-office design layer
   ----------------------------------------------------------------------------
   Loaded LAST, at PHP_INT_MAX priority, after the 500 KB compiled admin-theme.css
   (AdminController::setMedia, AdminLoginController::setMedia). This file is the
   whole reskin — see design/DESIGN-ADMIN.md for the contract. No SASS rebuild.

   Sections:
     0  Google Sans @font-face (self-hosted, SIL OFL)
     1  Tokens (:root)                          [9.1]
     2  Keyframes                               [9.1]
     3  Base — type, background, focus, links   [9.1]
     4  Chrome — top bar, sidebar, page head    [9.2]
     5  Data surfaces — tables, badges, KPIs    [9.3]
     6  Forms                                   [9.4]
     7  Dashboard + charts                      [9.5]
     8  Operational screens (Book Now, etc.)    [9.6]
     9  Login + interstitials                   [9.7]
   ========================================================================== */

/* == 0 · Google Sans ======================================================== */
@font-face{font-family:"Google Sans";font-style:normal;font-weight:400 700;font-display:swap;
 src:url("../fonts/GoogleSans-latin.woff2") format("woff2");
 unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Google Sans";font-style:normal;font-weight:400 700;font-display:swap;
 src:url("../fonts/GoogleSans-latin-ext.woff2") format("woff2");
 unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:"Google Sans";font-style:italic;font-weight:400 700;font-display:swap;
 src:url("../fonts/GoogleSans-latin-italic.woff2") format("woff2");unicode-range:U+0000-00FF,U+2000-206F,U+20AC,U+2122;}

/* == 1 · Tokens ============================================================= */
:root{
  /* surfaces */
  --fsh-bg:#FBFAF5; --fsh-surface:#FFFFFF; --fsh-sunk:#F3F1E9; --fsh-off:#F6F4EE;
  --fsh-forest:#1C3B30; --fsh-forest-deep:#12261F;   /* ink/accent only — never a surface */
  /* lines */
  --fsh-line:#DED9C9; --fsh-line-soft:#EBE7DB; --fsh-line-strong:#CFC9B7;
  /* text */
  --fsh-ink:#15211C; --fsh-body:#3A423C; --fsh-sub:#6E7B73; --fsh-faint:#9AA39B;

  /* accent */
  --fsh-accent:#35785A; --fsh-accent-hi:#2C6249; --fsh-accent-ink:#FFFFFF;
  --fsh-accent-soft:#E6F0EA; --fsh-accent-line:#BFD6C8;
  --fsh-brass:#B5822E; --fsh-brass-soft:#F0E6CE;
  /* status */
  --fsh-ok:#2E7D52; --fsh-ok-soft:#E7F1EB;
  --fsh-warn:#C4841C; --fsh-warn-soft:#F8EEDA;
  --fsh-stop:#B23B3B; --fsh-stop-soft:#F6E5E5;
  --fsh-info:#3B6E8F; --fsh-info-soft:#E5EEF3;
  /* shape */
  --fsh-r:10px; --fsh-r-sm:7px; --fsh-r-pill:999px;
  /* depth */
  --fsh-shadow:0 1px 2px rgba(21,33,28,.04), 0 12px 28px -14px rgba(21,33,28,.16);
  --fsh-shadow-pop:0 2px 6px rgba(21,33,28,.06), 0 28px 64px -24px rgba(18,38,31,.34);
  --fsh-focus:0 0 0 3px rgba(53,120,90,.22);
  /* type */
  --fsh-font:"Google Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --fsh-mono:ui-monospace,"SFMono-Regular","JetBrains Mono",Menlo,Consolas,monospace;
  /* motion */
  --fsh-ease:cubic-bezier(.22,.61,.36,1);
  --fsh-t-fast:120ms; --fsh-t:220ms; --fsh-t-slow:400ms; --fsh-t-count:650ms;
}

/* == 2 · Keyframes ========================================================== */
/* soft expanding ring for a live/non-zero state; colour via --fsh-pulse-rgb */
@keyframes fsh-pulse{
  0%  {box-shadow:0 0 0 0 rgba(var(--fsh-pulse-rgb,196,132,28),.45)}
  70% {box-shadow:0 0 0 7px rgba(var(--fsh-pulse-rgb,196,132,28),0)}
  100%{box-shadow:0 0 0 0 rgba(var(--fsh-pulse-rgb,196,132,28),0)}
}
@keyframes fsh-heartbeat{
  0%,100%{transform:scale(1)} 40%{transform:scale(1.015)} 60%{transform:scale(1.008)}
}
@keyframes fsh-flash{ 0%{background-color:var(--fsh-brass-soft)} 100%{background-color:transparent} }
@keyframes fsh-shimmer{ 0%{opacity:.5} 100%{opacity:1} }
@keyframes fsh-draw{ from{stroke-dashoffset:var(--fsh-dash,600)} to{stroke-dashoffset:0} }

/* JS-driven state classes (fsh-admin.js) */
html body .fsh-live{ animation:fsh-pulse 2.4s var(--fsh-ease) infinite; border-radius:var(--fsh-r-pill); }
html body .data_chart.fsh-drawn,
html body .boxchart svg.fsh-drawn{ animation:fsh-shimmer .45s var(--fsh-ease) both; }
html body .fsh-count-flash{ animation:fsh-flash .9s var(--fsh-ease); }

/* == 3 · Base ============================================================== */
html body,
html body h1,html body h2,html body h3,html body h4,html body h5,html body h6,
html body input,html body select,html body textarea,html body button,html body .btn,
html body a,html body p,html body span,html body div,html body td,html body th,html body li,html body label{
  font-family:var(--fsh-font) !important;
  font-optical-sizing:auto;font-variation-settings:"GRAD" 0;
}

/* kill the stock Ubuntu Condensed heading font wherever it is applied */
html body .panel-heading,html body .panel-heading h3,
html body .nav-tabs > li > a,html body h2.page-title,html body .page-title,
html body .list-empty .list-empty-msg,html body .pageTitle h3,
html body .breadcrumb,html body .dashboard .panel .row .col-lg-3 h3,
html body .kpi .title,html body .kpi-content .title{
  font-family:var(--fsh-font) !important;
}

/* content background — warm white, not the stock grey #EFF1F2 */
html body.ps_back-office{ background:var(--fsh-bg) !important; color:var(--fsh-body); }
html body #content.bootstrap,
html body #main,
html body .bootstrap #content{ background:var(--fsh-bg) !important; }

/* tabular numerals on anything data-shaped */
html body .kpi-content .value,html body .box-stats .value,
html body td.number,html body .text-right,html body .amount,
html body [data-fsh-count]{ font-variant-numeric:tabular-nums; }

/* mono for data-ish cells */
html body .fsh-mono,
html body td .label-tooltip,
html body .table td.order-reference,html body .table td .order_reference{
  font-family:var(--fsh-mono) !important;
}

/* links */
html body #content a:not(.btn):not(.list-action-enable):not(.toolbar_btn):not(.dropdown-toggle){
  color:var(--fsh-accent);
}
html body #content a:not(.btn):hover{ color:var(--fsh-accent-hi); }

/* the one focus ring, everywhere */
html body a:focus,html body button:focus,html body input:focus,
html body select:focus,html body textarea:focus,html body .btn:focus,
html body [tabindex]:focus{
  outline:none !important;
  box-shadow:var(--fsh-focus) !important;
}

/* selection + scrollbar */
html body ::selection{ background:var(--fsh-brass-soft); color:var(--fsh-forest-deep); }
html body ::-webkit-scrollbar{ width:11px;height:11px; }
html body ::-webkit-scrollbar-thumb{ background:var(--fsh-line-strong);border-radius:999px;border:3px solid var(--fsh-bg); }
html body ::-webkit-scrollbar-track{ background:transparent; }

/* reduced motion — belt and braces (fsh-admin.js also guards) */
@media (prefers-reduced-motion:reduce){
  html body *,html body *::before,html body *::after{
    animation-duration:.001ms !important;animation-iteration-count:1 !important;
    transition-duration:.001ms !important;scroll-behavior:auto !important;
  }
}

/* == 4 · Chrome — top bar, sidebar, page head ============================= */
/* LIGHT chrome. No dark surfaces anywhere — hard rule (memory:
   feedback-no-dark-mode-ever-global). White top bar, warm-paper sidebar,
   forest-green only as an ink/accent colour, never as a surface. */

/* --- 4a · top bar -------------------------------------------------------- */
html body #header_infos{
  background:var(--fsh-surface) !important;
  border:0 !important; border-bottom:1px solid var(--fsh-line) !important;
  box-shadow:none !important;
  height:38px !important;
}
html body #header_infos .navbar-header{ height:38px; }

/* the wordmark — the shop-name text IS the mark (design/BRAND.md: Google Sans,
   no icon). Kill the clipping background PNG + the redundant version so the
   brand appears exactly once. Forest-green ink on the light bar. */
html body #header_infos #header_shopversion{ display:none !important; }
html body #header_infos #header_shopname{
  float:left; line-height:38px; padding:0 10px 0 18px; margin:0;
  font-family:var(--fsh-font) !important; font-weight:600;
  font-size:12.5px; letter-spacing:.13em; text-transform:uppercase;
  color:var(--fsh-forest,#1C3B30) !important; text-decoration:none;
  white-space:nowrap;
}
@media (min-width:992px){
  html body.page-sidebar #header_infos #header_shopname{ padding-left:18px; }
}
html body #header_infos #header_shopname:hover{ color:var(--fsh-accent) !important; }

html body #header_infos #header_nav_toggle{
  background:transparent !important; color:var(--fsh-sub) !important;
  border:0; border-right:1px solid var(--fsh-line);
}
html body #header_infos #header_nav_toggle:hover{ color:var(--fsh-ink) !important; background:var(--fsh-off) !important; }

/* right-hand links + dropdowns */
html body #header_infos #header_employee_box > li > a,
html body #header_infos #header_quick > li > a,
html body #header_infos #header_notifs_icon_wrapper > li > a{
  color:var(--fsh-sub) !important; height:38px; line-height:38px; font-size:12.5px;
  transition:color var(--fsh-t) var(--fsh-ease), background-color var(--fsh-t);
}
html body #header_infos #header_employee_box > li > a:hover,
html body #header_infos #header_quick > li > a:hover,
html body #header_infos #header_notifs_icon_wrapper > li > a:hover,
html body #header_infos .open > a{
  color:var(--fsh-ink) !important; background:var(--fsh-off) !important;
}
html body #header_infos #header_employee_box .caret{ border-top-color:var(--fsh-sub); }

/* notification icons + badges — space them so nothing collides */
html body #header_infos #header_notifs_icon_wrapper{ margin-left:20px; display:flex; align-items:center; }
html body #header_infos #header_notifs_icon_wrapper > li{ margin:0 !important; }
html body #header_infos #header_notifs_icon_wrapper > li > a{ padding:0 12px !important; position:relative; }
html body #header_infos .notifs_badge{
  background:var(--fsh-stop) !important; color:#fff !important;
  font-family:var(--fsh-mono); font-weight:600; font-size:9px;
  border:1.5px solid var(--fsh-surface);
  min-width:15px; height:15px; line-height:12px; text-align:center;
  top:3px !important; right:0 !important;
}
html body #header_infos .notifs_badge.fsh-live{ --fsh-pulse-rgb:178,59,59; }
html body #header_infos #header_quick{ margin-left:8px; }

/* header dropdown panels */
html body #header_infos .dropdown-menu,
html body #header_infos .notifs_dropdown{
  background:var(--fsh-surface); border:1px solid var(--fsh-line);
  border-radius:var(--fsh-r); box-shadow:var(--fsh-shadow-pop); margin-top:2px;
  padding:6px;
}
html body #header_infos .dropdown-menu > li > a{
  color:var(--fsh-body); border-radius:var(--fsh-r-sm); padding:7px 10px; font-size:13px;
}
html body #header_infos .dropdown-menu > li > a:hover{
  background:var(--fsh-off); color:var(--fsh-ink);
}
html body #header_infos .notifs_panel .notifs_panel_title{ color:var(--fsh-sub); font-size:11px; text-transform:uppercase; letter-spacing:.06em; }

/* --- 4b · left sidebar (warm-paper, light) --------------------------- */
html body #nav-sidebar{
  background:var(--fsh-sunk) !important;
  border-right:1px solid var(--fsh-line) !important;
}
html body #nav-sidebar ul.menu{ padding-top:6px; }

/* search box at the top of the rail */
html body #nav-sidebar .searchtab #bo_query,
html body #nav-sidebar .searchtab .form-control{
  background:var(--fsh-surface) !important; color:var(--fsh-ink) !important;
  border:1px solid var(--fsh-line-strong) !important; border-radius:var(--fsh-r-pill);
  height:34px;
}
html body #nav-sidebar .searchtab #bo_query::placeholder{ color:var(--fsh-faint); }
html body #nav-sidebar .searchtab #bo_query:focus,
html body #nav-sidebar .searchtab.focus-search #bo_query{
  border-color:var(--fsh-accent) !important; box-shadow:var(--fsh-focus) !important;
}
html body #nav-sidebar .searchtab .btn,
html body #nav-sidebar .searchtab .btn-default{ background:transparent !important; border:0 !important; color:var(--fsh-sub) !important; }

/* main menu items */
html body #nav-sidebar,
html body #nav-sidebar ul.menu,
html body #nav-sidebar ul.menu li.maintab,
html body #nav-sidebar ul.menu li.maintab > a.title{
  background-color:transparent !important;   /* stock puts $main-color (#363A41) here */
}
html body #nav-sidebar ul.menu li.maintab > a.title{
  color:var(--fsh-body) !important; height:36px; line-height:20px;
  display:flex; align-items:center; gap:9px;
  margin:1px 8px; padding:0 10px; border-radius:var(--fsh-r-sm);
  font-size:13px; font-weight:500; letter-spacing:0;
  transition:background-color var(--fsh-t) var(--fsh-ease), color var(--fsh-t);
}
html body #nav-sidebar ul.menu li.maintab > a.title span{ color:var(--fsh-body) !important; }
html body #nav-sidebar ul.menu li.maintab > a.title i{ color:var(--fsh-sub) !important; font-size:15px; width:18px; text-align:center; }
html body #nav-sidebar ul.menu li.maintab > a.title span{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

html body #nav-sidebar ul.menu li.maintab.hover > a.title,
html body #nav-sidebar ul.menu li.maintab:hover > a.title{
  background:var(--fsh-surface) !important; color:var(--fsh-ink) !important;
}
html body #nav-sidebar ul.menu li.maintab.hover:not(.active) > a.title:before{ display:none !important; }

html body #nav-sidebar ul.menu li.maintab.active > a.title{
  background:var(--fsh-accent-soft) !important; color:var(--fsh-accent-hi) !important;
  border-right:0 !important; font-weight:600;
  box-shadow:inset 3px 0 0 var(--fsh-accent);
}
html body #nav-sidebar ul.menu li.maintab.active > a.title i{ color:var(--fsh-accent) !important; }

/* submenu — both the inline-expanded (active tab) and the hover fly-out */
html body #nav-sidebar ul.menu li.maintab ul.submenu,
html body #nav-sidebar ul.menu li.maintab.active ul.submenu,
html body #nav-sidebar ul.menu li.maintab.hover ul.submenu{
  background:var(--fsh-sunk) !important; box-shadow:none;
  border:0 !important; border-left:1px solid var(--fsh-line) !important;
  margin-left:12px !important; padding:2px 0 !important;
}
html body #nav-sidebar ul.menu li.maintab.hover ul.submenu{
  background:var(--fsh-surface) !important; box-shadow:var(--fsh-shadow-pop);
  border:1px solid var(--fsh-line) !important; border-radius:0 var(--fsh-r) var(--fsh-r) 0;
  margin-left:0 !important; padding:6px !important;
}
html body #nav-sidebar ul.menu li.maintab ul.submenu li,
html body #nav-sidebar ul.menu li.maintab ul.submenu li a{
  background:transparent !important;
}
html body #nav-sidebar ul.menu li.maintab ul.submenu li > a{
  color:var(--fsh-sub) !important; font-size:12.5px; padding:6px 12px !important;
  border-radius:var(--fsh-r-sm); border:0 !important;
  transition:background-color var(--fsh-t), color var(--fsh-t);
}
html body #nav-sidebar ul.menu li.maintab ul.submenu li > a:hover,
html body #nav-sidebar ul.menu li.maintab ul.submenu li.active > a{
  background:var(--fsh-accent-soft) !important; color:var(--fsh-accent-hi) !important;
}

/* collapsed icon rail */
html body .page-sidebar-closed #nav-sidebar ul.menu li.maintab > a.title{ justify-content:center; }
html body #nav-sidebar .menu-collapse{ color:var(--fsh-sub); }
html body #nav-sidebar .menu-collapse:hover{ color:var(--fsh-ink); }

/* --- 4c · page head / toolbar --------------------------------------- */
html body .page-head{
  background:var(--fsh-surface) !important;
  border-bottom:1px solid var(--fsh-line) !important;
  box-shadow:none !important; color:var(--fsh-ink) !important;
}
html body .page-head h2.page-title,
html body .pageTitle h3{
  font-family:var(--fsh-font) !important; font-weight:600 !important;
  font-size:20px !important; letter-spacing:-.01em; color:var(--fsh-ink) !important;
  text-transform:none !important;
}
html body .page-head .breadcrumb,
html body ul.page-breadcrumb{
  background:transparent !important; border:0 !important; font-size:12px;
  color:var(--fsh-faint) !important; text-transform:none !important;
}
html body ul.page-breadcrumb li a,
html body .breadcrumb li a{ color:var(--fsh-sub) !important; }
html body ul.page-breadcrumb li.breadcrumb-container i,
html body .breadcrumb > li + li:before{
  color:var(--fsh-faint) !important; border:0 !important; font-size:14px !important;
  content:"\2022" !important; padding:0 6px;
}

/* toolbar buttons → the button system (cyan outline gone).
   Scoped to the page-head / list toolbars — the top bar also uses .toolbar_btn
   for its links and must NOT get the white-button treatment. */
html body .page-head .toolbar_btn,
html body .page-bar .toolbar_btn,
html body .toolbar-placeholder .toolbar_btn,
html body #toolbar-nav .toolbar_btn,
html body .bootstrap .btn-toolbar .toolbar_btn{
  color:var(--fsh-body) !important;
  background:var(--fsh-surface) !important;
  border:1px solid var(--fsh-line-strong) !important;
  border-radius:var(--fsh-r-sm) !important;
  padding:7px 12px !important; font-size:12.5px; font-weight:600;
  display:inline-flex; align-items:center; gap:6px;
  box-shadow:none !important;
  transition:border-color var(--fsh-t) var(--fsh-ease), color var(--fsh-t), background-color var(--fsh-t);
}
html body .page-head .toolbar_btn:hover,
html body .page-bar .toolbar_btn:hover,
html body .toolbar-placeholder .toolbar_btn:hover,
html body #toolbar-nav .toolbar_btn:hover{
  border-color:var(--fsh-accent) !important; color:var(--fsh-accent) !important;
  background:var(--fsh-surface) !important;
}
html body .page-head .toolbar_btn i,
html body .page-bar .toolbar_btn i,
html body #toolbar-nav .toolbar_btn i{ font-size:15px !important; }
html body .page-head .toolbar_btn span,
html body #toolbar-nav .toolbar_btn span{ color:inherit !important; }

/* the primary / "new" action */
html body .page-head .toolbar_btn.toolbar-new,
html body #toolbar-nav .toolbar_btn.toolbar-new,
html body .page-head .btn-toolbar .toolbar_btn[id*="add_new"],
html body .page-head .btn-toolbar .toolbar_btn[id*="new_"]{
  background:var(--fsh-accent) !important; border-color:var(--fsh-accent) !important; color:#fff !important;
}
html body .page-head .toolbar_btn.toolbar-new:hover,
html body #toolbar-nav .toolbar_btn.toolbar-new:hover{ background:var(--fsh-accent-hi) !important; }

/* top bar uses .toolbar_btn for its own links — keep them plain */
html body #header_infos .toolbar_btn{
  background:transparent !important; border:0 !important; color:var(--fsh-sub) !important;
  padding:0 10px !important; height:38px; line-height:38px; border-radius:0 !important;
}
html body #header_infos .toolbar_btn:hover{ color:var(--fsh-ink) !important; background:var(--fsh-off) !important; }

/* == 5 · Data surfaces — panels, tables, badges, filters, KPI ============ */

/* --- 5a · panels ------------------------------------------------------- */
html body #content .panel,
html body #content .table_grid,
html body #content .list-container{
  background:var(--fsh-surface) !important;
  border:1px solid var(--fsh-line) !important;
  border-radius:var(--fsh-r) !important;
  box-shadow:none !important;
  transition:box-shadow var(--fsh-t) var(--fsh-ease), border-color var(--fsh-t);
}
html body #content .panel > .panel-heading,
html body #content .panel-heading{
  background:transparent !important;
  border-bottom:1px solid var(--fsh-line-soft) !important;
  color:var(--fsh-ink) !important;
  font-family:var(--fsh-font) !important; font-weight:600 !important;
  font-size:14px !important; text-transform:none !important; letter-spacing:0 !important;
  height:auto !important; padding:14px 16px !important; margin:-16px -16px 14px !important;
}
html body #content .panel-heading i,
html body #content .panel-heading .icon{ color:var(--fsh-sub) !important; }
html body #content .panel-footer{
  background:var(--fsh-off) !important; border-top:1px solid var(--fsh-line-soft) !important;
}
html body #content .panel.panel-highlighted,
html body #content .panel.panel-primary{ border-color:var(--fsh-accent-line) !important; box-shadow:none !important; }
/* interactive panels lift on hover */
html body #content a.panel:hover,
html body #content .panel.clickable:hover{
  box-shadow:var(--fsh-shadow) !important; border-color:var(--fsh-accent-line) !important;
}

/* --- 5b · list tables ------------------------------------------------- */
html body #content .table{
  border-collapse:separate !important; border-spacing:0 !important;
  background:var(--fsh-surface);
}
html body #content .table > thead > tr > th,
html body #content .table > thead > tr > td{
  background:transparent !important;
  border:0 !important; border-bottom:1px solid var(--fsh-line) !important;
  color:var(--fsh-sub) !important;
  font-family:var(--fsh-font) !important; font-weight:600 !important;
  font-size:11px !important; text-transform:uppercase; letter-spacing:.06em;
  padding:10px 12px !important; vertical-align:middle;
}
html body #content .table > thead > tr.filter > th,
html body #content .table > thead > tr.filter > td{
  background:var(--fsh-off) !important; border-bottom:1px solid var(--fsh-line) !important;
}
html body #content .table > tbody > tr > td{
  background:var(--fsh-surface) !important;
  color:var(--fsh-body) !important;
  border:0 !important; border-bottom:1px solid var(--fsh-line-soft) !important;
  padding:10px 12px !important; font-size:13px; vertical-align:middle;
  transition:background-color var(--fsh-t-fast) var(--fsh-ease);
}
html body #content .table > tbody > tr.odd > td{ background:var(--fsh-surface) !important; }
html body #content .table > tbody > tr:hover > td{ background:var(--fsh-off) !important; }
html body #content .table > tbody > tr.highlighted > td,
html body #content .table > tbody > tr.myDragClass > td{
  background:var(--fsh-accent-soft) !important; color:var(--fsh-ink) !important;
}
/* money / numeric / reference cells → mono, aligned */
html body #content .table td.number,
html body #content .table td.text-right,
html body #content .table td .order_reference,
html body #content .table td.cursor_pointer.dragHandle + td{
  font-family:var(--fsh-mono) !important; font-variant-numeric:tabular-nums;
}
/* sort carets */
html body #content .table th a.sort{ color:var(--fsh-faint) !important; }
html body #content .table th a.sort:hover,
html body #content .table th a.sort.active{ color:var(--fsh-accent) !important; }
/* enable/disable toggles in the list */
html body #content .list-action-enable.action-enabled,
html body #content .list-action-enable .icon-check{ color:var(--fsh-ok) !important; }
html body #content .list-action-enable.action-disabled,
html body #content .list-action-enable .icon-remove{ color:var(--fsh-stop) !important; }
/* row action buttons */
html body #content .table td .btn-group .btn,
html body #content .table td .btn-default{
  border-color:var(--fsh-line-strong) !important; color:var(--fsh-body) !important;
  background:var(--fsh-surface) !important; border-radius:var(--fsh-r-sm) !important;
}
html body #content .table td .btn-group .btn:hover{ border-color:var(--fsh-accent) !important; color:var(--fsh-accent) !important; }
html body #content .list-empty .list-empty-msg{ color:var(--fsh-faint) !important; font-family:var(--fsh-font) !important; }

/* --- 5c · status badges -------------------------------------------- */
/* order-state labels carry an inline background-color (from fsh_order_state.color,
   set to the Understory semantic hexes by migration 010). Present them as a
   clean solid pill — small, pill radius, medium weight. */
html body #content .label.color_field,
html body #content span.label[style*="background"],
html body #content .badge,
html body #content .label{
  display:inline-flex !important; align-items:center; gap:5px;
  padding:2px 9px !important;
  border-radius:var(--fsh-r-pill) !important;
  font-family:var(--fsh-font) !important; font-weight:500 !important;
  font-size:11px !important; line-height:1.5 !important;
  text-shadow:none !important; box-shadow:none !important;
  border:0 !important; letter-spacing:0 !important;
}
/* the neutral badge (no inline colour) */
html body #content .badge:not([style*="background"]){
  background:var(--fsh-off) !important; color:var(--fsh-sub) !important;
  border:1px solid var(--fsh-line) !important;
}
html body #content .badge.badge-success{ background:var(--fsh-ok-soft) !important; color:var(--fsh-ok) !important; }
html body #content .badge.badge-warning{ background:var(--fsh-warn-soft) !important; color:var(--fsh-warn) !important; }
html body #content .badge.badge-danger,
html body #content .badge.badge-critical{ background:var(--fsh-stop-soft) !important; color:var(--fsh-stop) !important; }
html body #content .badge.badge-info{ background:var(--fsh-info-soft) !important; color:var(--fsh-info) !important; }

/* --- 5d · filter bar / bulk actions / pagination ------------------- */
html body #content #selected_filter_container,
html body #content .list_filters,
html body #content .filter-container{
  background:var(--fsh-surface) !important;
  border:1px solid var(--fsh-line) !important;
  border-radius:var(--fsh-r) var(--fsh-r) 0 0 !important;
}
html body #content .list_filters{ gap:10px 28px !important; }
html body #content .btn-group.bulk-actions .btn,
html body #content .pagination > li > a,
html body #content .pagination > li > span{
  border-color:var(--fsh-line-strong) !important; color:var(--fsh-body) !important;
  background:var(--fsh-surface) !important;
}
html body #content .pagination > li.active > a,
html body #content .pagination > li.active > span{
  background:var(--fsh-accent) !important; border-color:var(--fsh-accent) !important; color:#fff !important;
}
html body #content .pagination > li > a:hover{ border-color:var(--fsh-accent) !important; color:var(--fsh-accent) !important; }
html body #content .chosen-container .chosen-single,
html body #content .chosen-container .chosen-choices{
  border-color:var(--fsh-line-strong) !important; border-radius:var(--fsh-r-sm) !important;
  background:var(--fsh-surface) !important; box-shadow:none !important;
}

/* --- 5e · KPI tiles → uniform live data cards --------------------- */
html body .kpi-container{ padding:0 0 4px !important; background:transparent !important; border:0 !important; }
html body .kpi-container .kpis-wrap{
  display:flex !important; flex-wrap:wrap !important; gap:14px !important;
  margin:0 !important;
}
html body .kpi-container .kpis-wrap .kpi-wrap{
  width:auto !important; flex:1 1 190px !important;
  padding:0 !important; margin:0 !important; min-height:0 !important;
}
html body .box-stats{
  border:0 !important; box-shadow:none !important;
  transition:transform var(--fsh-t-fast) var(--fsh-ease), box-shadow var(--fsh-t);
}
html body .box-stats .kpi-content{
  border:1px solid var(--fsh-line) !important;
  border-left-width:1px !important;            /* kill the 3px rainbow bar */
  border-radius:var(--fsh-r) !important;
  background:var(--fsh-surface) !important;
  padding:14px 16px !important;
  display:flex; gap:12px; align-items:flex-start;
}
html body a.box-stats:hover .kpi-content{ box-shadow:var(--fsh-shadow) !important; border-color:var(--fsh-accent-line) !important; }
/* every colorN → one calm icon chip */
html body .box-stats[class*="color"] .kpi-content i.kpi-icon,
html body .box-stats .kpi-content i.kpi-icon{
  background:var(--fsh-off) !important; color:var(--fsh-sub) !important;
  width:30px; height:30px; border-radius:var(--fsh-r-sm) !important;
  font-size:14px; line-height:30px; flex-shrink:0;
}
html body .box-stats .kpi-content .title{
  color:var(--fsh-sub) !important; font-size:11px !important; font-weight:600 !important;
  text-transform:uppercase; letter-spacing:.06em;
}
html body .box-stats .kpi-content .subtitle{ color:var(--fsh-faint) !important; font-size:10px !important; }
html body .box-stats .kpi-content .value{
  color:var(--fsh-ink) !important; font-size:24px !important; font-weight:600 !important;
  font-variant-numeric:tabular-nums; margin-top:2px; display:block;
}
html body .box-stats .kpi-content .value-container .value.loading{ color:transparent !important; }
html body .box-stats .kpi-content .arrow .icon-angle-right{ color:var(--fsh-faint) !important; }
/* the d3 sparkline bars in a KPI → Understory */
html body .box-stats .boxchart svg rect,
html body .box-stats .data_chart rect{ fill:var(--fsh-accent) !important; opacity:.85; }
html body .box-stats .boxchart svg rect:last-child{ fill:var(--fsh-brass) !important; }

/* == 6 · Forms + the button system ====================================== */

/* --- 6a · buttons (global) ----------------------------------------- */
html body #content .btn,
html body .bootstrap .btn{
  font-family:var(--fsh-font) !important; font-weight:600 !important; font-size:13px !important;
  border-radius:var(--fsh-r-sm) !important;
  border:1px solid transparent !important;
  padding:8px 15px !important;
  text-transform:none !important; letter-spacing:0 !important;
  box-shadow:none !important; text-shadow:none !important;
  transition:background-color var(--fsh-t) var(--fsh-ease), border-color var(--fsh-t), color var(--fsh-t), transform var(--fsh-t-fast);
}
html body #content .btn:active,
html body .bootstrap .btn:active{ transform:scale(.97); }
html body #content .btn-primary,
html body .bootstrap .btn-primary{
  background:var(--fsh-accent) !important; border-color:var(--fsh-accent) !important; color:#fff !important;
}
html body #content .btn-primary:hover,
html body #content .btn-primary:focus{ background:var(--fsh-accent-hi) !important; border-color:var(--fsh-accent-hi) !important; }
html body #content .btn-default,
html body .bootstrap .btn-default{
  background:var(--fsh-surface) !important; color:var(--fsh-body) !important;
  border-color:var(--fsh-line-strong) !important;
}
html body #content .btn-default:hover,
html body #content .btn-default:focus{ border-color:var(--fsh-accent) !important; color:var(--fsh-accent) !important; background:var(--fsh-surface) !important; }
html body #content .btn-success{
  background:var(--fsh-ok) !important; border-color:var(--fsh-ok) !important; color:#fff !important;
}
html body #content .btn-danger{
  background:var(--fsh-surface) !important; color:var(--fsh-stop) !important; border-color:var(--fsh-stop-soft) !important;
}
html body #content .btn-danger:hover{ background:var(--fsh-stop-soft) !important; }
html body #content .btn-warning{ background:var(--fsh-warn) !important; border-color:var(--fsh-warn) !important; color:#fff !important; }
html body #content .btn-link{ color:var(--fsh-accent) !important; box-shadow:none !important; }
html body #content .btn-group > .btn + .btn{ margin-left:-1px; }

/* --- 6b · inputs -------------------------------------------------- */
html body #content .form-control,
html body #content input[type="text"],
html body #content input[type="email"],
html body #content input[type="password"],
html body #content input[type="number"],
html body #content input[type="search"],
html body #content input[type="url"],
html body #content input[type="tel"],
html body #content textarea,
html body #content select{
  border:1px solid var(--fsh-line-strong) !important;
  border-radius:var(--fsh-r-sm) !important;
  background:var(--fsh-surface) !important;
  color:var(--fsh-ink) !important;
  font-family:var(--fsh-font) !important; font-size:13px !important;
  box-shadow:none !important;
  padding:8px 11px !important;
  transition:border-color var(--fsh-t) var(--fsh-ease), box-shadow var(--fsh-t);
}
html body #content .form-control:focus,
html body #content input:focus,
html body #content textarea:focus,
html body #content select:focus{
  border-color:var(--fsh-accent) !important;
  background:var(--fsh-surface) !important;   /* kill the yellow #FEFBE2 fill */
  box-shadow:var(--fsh-focus) !important;
  outline:none !important;
}
html body #content .form-control[disabled],
html body #content .form-control[readonly],
html body #content input[disabled],
html body #content select[disabled]{
  background:var(--fsh-sunk) !important; color:var(--fsh-faint) !important; cursor:not-allowed;
}
html body #content .input-group-addon{
  background:var(--fsh-off) !important; border-color:var(--fsh-line-strong) !important;
  color:var(--fsh-sub) !important; border-radius:var(--fsh-r-sm) !important;
}

/* --- 6c · labels + help --------------------------------------- */
html body #content label,
html body #content .control-label{ font-family:var(--fsh-font) !important; font-size:13px !important; color:var(--fsh-body) !important; font-weight:500; }
html body #content label.required:before,
html body #content .control-label.required:before{ color:var(--fsh-stop) !important; }
html body #content .help-block,
html body #content .form-text{ color:var(--fsh-faint) !important; font-size:12px !important; }
/* the cyan "?" help callouts → quiet info */
html body #content .alert-info,
html body #content .module-warning,
html body #content .help-box,
html body #content .product-tab-content .alert{
  background:var(--fsh-off) !important;
  border:1px solid var(--fsh-line) !important;
  border-left:3px solid var(--fsh-info) !important;
  color:var(--fsh-body) !important;
  border-radius:var(--fsh-r-sm) !important;
  box-shadow:none !important;
}
html body #content .alert-info a{ color:var(--fsh-accent) !important; }
html body #content .alert-info .icon,
html body #content .alert-info i,
html body #content .alert-info [class*="icon-"]{ color:var(--fsh-info) !important; background:transparent !important; }
html body #content .alert-info .icon-question-sign,
html body #content .alert-info .icon-info{ font-size:16px !important; }

/* primary save action → Fern */
html body #content .toolbar_top .btn[name*="submitAdd"]:not([name*="AndStay"]),
html body #content .page-footer .btn-primary,
html body #content .panel-footer .btn[type="submit"]:last-child,
html body #content #product_form_submit_btn,
html body #content .btn.process-icon-save{
  background:var(--fsh-accent) !important; border-color:var(--fsh-accent) !important; color:#fff !important;
}

/* --- 6d · prestashop-switch (YES / NO) ------------------------ */
html body #content .prestashop-switch,
html body #content .switch.prestashop-switch{
  border:1px solid var(--fsh-line-strong) !important;
  border-radius:var(--fsh-r-pill) !important;
  background:var(--fsh-sunk) !important;
  overflow:hidden;
}
html body #content .prestashop-switch label{
  color:var(--fsh-sub) !important; font-weight:600 !important; font-size:12px !important;
  background:transparent !important; text-shadow:none !important; border:0 !important;
  transition:color var(--fsh-t), background-color var(--fsh-t);
}
html body #content .prestashop-switch input:checked + label{
  background:var(--fsh-accent) !important; color:#fff !important;
}
html body #content .prestashop-switch input#active_off:checked + label,
html body #content .prestashop-switch input[value="0"]:checked + label{
  background:var(--fsh-sub) !important; color:#fff !important;
}
/* the standalone list-view toggle icon */
html body #content .process-icon-toggle-on,
html body #content .action-enabled i{ color:var(--fsh-ok) !important; }
html body #content .process-icon-toggle-off,
html body #content .action-disabled i{ color:var(--fsh-faint) !important; }

/* --- 6e · vertical tab nav (edit pages) ---------------------- */
html body #content .productTabs .list-group-item,
html body #content .nav-stacked > li > a,
html body #content ul.nav-sidebar > li > a{
  border:0 !important; border-radius:var(--fsh-r-sm) !important;
  color:var(--fsh-body) !important; background:transparent !important;
  font-size:13px !important; padding:9px 12px !important;
  transition:background-color var(--fsh-t), color var(--fsh-t), box-shadow var(--fsh-t);
}
html body #content .productTabs .list-group-item:hover,
html body #content .nav-stacked > li > a:hover{ background:var(--fsh-off) !important; color:var(--fsh-ink) !important; }
html body #content .productTabs .list-group-item.active,
html body #content .productTabs .list-group-item.active:hover,
html body #content .nav-stacked > li.active > a{
  background:var(--fsh-accent-soft) !important; color:var(--fsh-accent-hi) !important;
  box-shadow:inset 2px 0 0 var(--fsh-accent);
  font-weight:600;
}

/* horizontal nav-tabs */
html body #content .nav-tabs{ border-bottom:1px solid var(--fsh-line) !important; }
html body #content .nav-tabs > li > a{
  border:0 !important; color:var(--fsh-sub) !important; font-size:13px !important;
  text-transform:none !important; font-weight:500 !important;
  border-radius:var(--fsh-r-sm) var(--fsh-r-sm) 0 0 !important;
}
html body #content .nav-tabs > li > a:hover{ background:var(--fsh-off) !important; color:var(--fsh-ink) !important; }
html body #content .nav-tabs > li.active > a,
html body #content .nav-tabs > li.active > a:hover{
  background:transparent !important; color:var(--fsh-ink) !important; font-weight:600 !important;
  border:0 !important; box-shadow:inset 0 -2px 0 var(--fsh-accent) !important;
}

/* --- 6f · save toolbar / form footer ------------------------ */
html body #content .panel-footer,
html body #content .form-actions,
html body #content .toolbar_top,
html body #content #product-nav-container{
  background:var(--fsh-surface) !important;
  border-top:1px solid var(--fsh-line) !important;
}
html body #content .toolbar_top{ box-shadow:0 -1px 0 var(--fsh-line), 0 -12px 24px -18px rgba(21,33,28,.18) !important; }

/* --- 6g · TinyMCE chrome ----------------------------------- */
html body #content .mce-panel,
html body #content .mce-toolbar-grp,
html body #content .mce-tinymce{
  border-color:var(--fsh-line-strong) !important; border-radius:var(--fsh-r-sm) !important;
  background:var(--fsh-surface) !important; box-shadow:none !important;
}
html body #content .mce-btn button{ color:var(--fsh-body) !important; }
html body #content .mce-btn:hover,
html body #content .mce-btn.mce-active{ background:var(--fsh-off) !important; border-color:var(--fsh-line) !important; }
html body #content .mce-statusbar{ border-top-color:var(--fsh-line-soft) !important; }

/* tagify / token inputs */
html body #content .tagify-container > span,
html body #content .tagify__tag > div{
  background:var(--fsh-accent-soft) !important; color:var(--fsh-accent-hi) !important;
  border:1px solid var(--fsh-accent-line) !important; border-radius:var(--fsh-r-sm) !important;
}

/* == 7 · Dashboard — the cockpit ======================================== */

/* give the cramped left column more room: rebalance the zones 4 / 6 / 2 (was 3/7/2) */
@media (min-width:1200px){
  html body #content #hookDashboardZoneOne.col-lg-3{ width:33.333% !important; right:50% !important; }
  html body #content #hookDashboardZoneTwo.col-lg-7{ width:50% !important; left:33.333% !important; }
}

/* dashboard panels are <section class="panel widget"> with <header class="panel-heading"> */
html body #content section.panel.widget{
  background:var(--fsh-surface) !important;
  border:1px solid var(--fsh-line) !important;
  border-radius:var(--fsh-r) !important;
  box-shadow:none !important;
  margin-bottom:20px !important;
  padding:16px !important;
}
html body #content section.panel.widget > *{ margin-left:0 !important; margin-right:0 !important; }
/* breathing room inside cramped left-column panels */
html body #content #hookDashboardZoneOne .panel .chart,
html body #content #hookDashboardZoneOne .panel svg{ max-width:100% !important; }
html body #content #dashactivity .data_list li,
html body #content #dashactivity .list-group-item{ padding:9px 2px !important; }

/* small dashboard pie/donut legends that overlap the chart in the narrow column */
html body #content #hookDashboardZoneOne .pie-chart-legend,
html body #content #hookDashboardZoneOne .chart-legend,
html body #content #dashproducts .data_list_pie li,
html body #content #dashproducts .pie_chart_legend{
  position:static !important; float:none !important; clear:both;
  font-size:10px !important; color:var(--fsh-faint) !important; line-height:1.5;
  margin-top:8px !important;
}
html body #content #hookDashboardZoneOne .chart,
html body #content #hookDashboardZoneOne .dash-chart-wrap{ overflow:visible !important; }
html body #content section.panel.widget > header.panel-heading{
  background:transparent !important; border-bottom:1px solid var(--fsh-line-soft) !important;
  color:var(--fsh-ink) !important; font-weight:600 !important; font-size:14px !important;
  text-transform:none !important; padding:13px 16px !important;
}
html body #content section.panel.widget > header.panel-heading small,
html body #content section.panel.widget > header.panel-heading .text-muted{ color:var(--fsh-faint) !important; }
html body #content .panel-heading .panel-heading-action .list-toolbar-btn,
html body #content .panel-heading .icon-refresh,
html body #content .panel-heading .icon-cogs{ color:var(--fsh-faint) !important; }

/* --- 7a · top badge row (dashguestcycle) --------------------------- */
html body #dashguestcycle{ padding-bottom:14px !important; }
html body #dashguestcycle .badges-wrapper{
  display:grid !important;
  grid-template-columns:repeat(auto-fit, minmax(150px, 1fr)) !important;
  gap:12px !important; margin:0 !important; padding:0 !important;
  overflow:visible !important; white-space:normal !important;
}
html body #dashguestcycle .badge-wrapper{
  width:auto !important; min-width:0 !important; display:block !important; padding:0 !important;
}
html body #dashguestcycle .badge-item{
  border:1px solid var(--fsh-line) !important;
  box-shadow:0 1px 3px rgba(21,33,28,.05) !important;
  border-radius:var(--fsh-r) !important;
  height:auto !important; min-height:84px !important; width:100% !important;
  display:flex !important; flex-direction:column; justify-content:center;
  padding:11px 12px 11px 16px !important;
  transition:transform var(--fsh-t) var(--fsh-ease), box-shadow var(--fsh-t);
}
html body #dashguestcycle .badge-content-wrapper{ height:auto !important; display:block !important; }
html body #dashguestcycle .title-wrapper,
html body #dashguestcycle .value-wrapper{
  display:block !important; width:auto !important; height:auto !important; padding:0 !important;
}
html body #dashguestcycle .title-wrapper p{
  white-space:normal !important; line-height:1.2 !important; font-size:10px !important;
  letter-spacing:.03em !important; margin:0 0 5px !important;
}
html body #dashguestcycle .value-wrapper p{ display:block !important; line-height:1 !important; font-size:24px !important; }
html body #dashguestcycle .badge-item:hover{
  transform:translateY(-2px);
  box-shadow:var(--fsh-shadow) !important; border-color:var(--fsh-accent-line) !important;
}
html body #dashguestcycle .badge-item.fsh-live::after{
  content:""; position:absolute; inset:0; border-radius:var(--fsh-r); pointer-events:none;
  animation:fsh-pulse 2.6s var(--fsh-ease) infinite;
}
html body #dashguestcycle .badge-strip{ width:4px !important; border-radius:var(--fsh-r) 0 0 var(--fsh-r) !important; }
html body #dashguestcycle .badge-content-wrapper p,
html body #dashguestcycle .title-wrapper p{
  color:var(--fsh-sub) !important; font-size:11px !important; font-weight:600 !important;
  text-transform:uppercase; letter-spacing:.05em;
}
html body #dashguestcycle .value-wrapper p{
  color:var(--fsh-ink) !important; font-size:26px !important; font-weight:600 !important;
  font-variant-numeric:tabular-nums;
}

/* --- 7b · performance tiles (dashperformance) -------------------- */
html body #dashperformance .stat-box,
html body #dashperformance .stat-box[style]{
  background:var(--fsh-off) !important;          /* kill the pastel rainbow inline bg */
  border:1px solid var(--fsh-line) !important;
  border-radius:var(--fsh-r) !important;
  box-shadow:none !important;
  color:var(--fsh-body) !important;
}
html body #dashperformance .stat-box:hover{
  box-shadow:var(--fsh-shadow) !important; border-color:var(--fsh-accent-line) !important;
}
html body #dashperformance .stats-wrap{ display:grid !important; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)) !important; gap:14px !important; }
html body #dashperformance .stats-wrap > div{ width:auto !important; margin:0 !important; padding:0 !important; }
html body #dashperformance .stat-box{ padding:14px 16px !important; }
html body #dashperformance .stat-box .title-wrapper p{ color:var(--fsh-sub) !important; font-size:11px !important; font-weight:600 !important; line-height:1.25 !important; }
html body #dashperformance .stat-box .value-wrapper{
  color:var(--fsh-ink) !important; font-size:20px !important; font-weight:600 !important;
  font-variant-numeric:tabular-nums; white-space:nowrap !important; margin-top:6px;
}
html body #dashperformance .stat-box .value-wrapper br{ display:none !important; }

/* revenue / KPI tile values never wrap */
html body #content .box-stats .kpi-content .value,
html body #dashtrends_toolbar dl.label-tooltip dd{ white-space:nowrap !important; }

/* --- 7c · revenue metric tiles (dashtrends) --------------------- */
html body #dashtrends_toolbar dl.label-tooltip{
  background:var(--fsh-off) !important;
  border:1px solid var(--fsh-line) !important;
  border-radius:var(--fsh-r) !important;
  box-shadow:none !important;
  padding:12px 14px !important;
  transition:border-color var(--fsh-t) var(--fsh-ease), background-color var(--fsh-t);
  cursor:pointer;
}
html body #dashtrends_toolbar dl.label-tooltip:hover{ border-color:var(--fsh-accent-line) !important; }
html body #dashtrends_toolbar dl.label-tooltip.active{
  background:var(--fsh-accent-soft) !important;
  border-color:var(--fsh-accent) !important;
  box-shadow:inset 3px 0 0 var(--fsh-accent) !important;
}
html body #dashtrends_toolbar dl.label-tooltip dt{ color:var(--fsh-sub) !important; font-size:11px !important; font-weight:600 !important; text-transform:uppercase; letter-spacing:.05em; }
html body #dashtrends_toolbar dl.label-tooltip dd,
html body #dashtrends_toolbar dl.label-tooltip .data_value{ color:var(--fsh-ink) !important; font-weight:600 !important; font-variant-numeric:tabular-nums; }

/* --- 7c2 · other data_list panels -------------------------- */
html body #content .data_list_vertical,
html body #content .data_list{ background:transparent !important; }
html body #content .data_list_vertical .data_value,
html body #content .data_value.size_l{
  color:var(--fsh-ink) !important; font-weight:600 !important; font-variant-numeric:tabular-nums;
}
html body #content .data_value .small,
html body #content .data_label{ color:var(--fsh-faint) !important; font-weight:400 !important; }
html body #content .dash_trend_up,
html body #content .growth-positive,
html body #content .trend-up{ color:var(--fsh-ok) !important; }
html body #content .dash_trend_down,
html body #content .growth-negative,
html body #content .trend-down{ color:var(--fsh-stop) !important; }

/* --- 7d · operations-today tabs -------------------------------- */
html body #content .operations-today .nav-tabs,
html body #content #dashboard-operations .nav-tabs{ border-bottom:1px solid var(--fsh-line) !important; }
html body #content .operations-today .nav-tabs > li > a .badge,
html body #content .operations-today .count-badge{
  background:var(--fsh-off) !important; color:var(--fsh-sub) !important;
}

/* --- 7e · activity overview (dashactivity) -------------------- */
html body #dashactivity .list-group-item,
html body #dashactivity .data_list li{
  border-color:var(--fsh-line-soft) !important; background:transparent !important;
}
html body #dashactivity .data_label,
html body #dashactivity small{ color:var(--fsh-faint) !important; }
html body #dashactivity .data_value{ color:var(--fsh-ink) !important; }

/* --- 7f · charts (nvd3 + d3) ---------------------------------- */
html body #content .nvd3 text{ fill:var(--fsh-sub) !important; font-family:var(--fsh-font) !important; }
html body #content .nvd3 .nv-axis line,
html body #content .nvd3 .nv-axis path{ stroke:var(--fsh-line) !important; }
html body #content .nvd3 .nv-axis .zero line{ stroke:var(--fsh-line-strong) !important; }
html body #content .nvd3 .nv-groups path.nv-line{ stroke-width:2px !important; }
html body #content .nvd3 .nv-point{ stroke-width:2px !important; }
html body #content .nvd3 .nv-legend text{ fill:var(--fsh-sub) !important; }
html body #content .nv-pie path{ stroke:var(--fsh-surface) !important; stroke-width:2px !important; }
/* single-series bar/line charts on the dashboard → Fern (the data-driven default
   nvd3 palette is blues/purples) */
html body #dashinsights .nvd3 .nv-bar rect,
html body #dashinsights .nvd3 .nv-groups .nv-bar rect,
html body #content .nvd3 .nv-multibarHorizontal .nv-bar rect{ fill:var(--fsh-accent) !important; }
html body #dashavailability .nvd3 .nv-groups .nv-line{ stroke:var(--fsh-accent) !important; }
html body #dashavailability .nvd3 .nv-groups .nv-area{ fill:var(--fsh-accent) !important; fill-opacity:.08 !important; }
html body #dashavailability .nvd3 .nv-point{ stroke:var(--fsh-accent) !important; fill:var(--fsh-accent) !important; }
/* chart draw-in (fsh-admin.js adds .fsh-drawn) */
html body #content .data_chart.fsh-drawn,
html body #content .chart svg.fsh-drawn,
html body #content .boxchart svg.fsh-drawn{ animation:fsh-shimmer .5s var(--fsh-ease) both; }

/* --- 7g · target panel + misc dashboard buttons -------------- */
html body #content #dashboard .btn-group .btn.active,
html body #content .dash-config-btn.active{ background:var(--fsh-accent) !important; border-color:var(--fsh-accent) !important; color:#fff !important; }
html body #content #dashboard .alert{ background:var(--fsh-off) !important; border:1px solid var(--fsh-line) !important; border-left:3px solid var(--fsh-info) !important; color:var(--fsh-body) !important; }

/* --- 7h · help-center panel (right rail) -------------------- */
html body #content #dashboard .panel .list-unstyled a,
html body #content .help-center a{ color:var(--fsh-accent) !important; }

/* == 8 · Operational screens ========================================== */

/* --- 8a · Book Now / hotel calendar (FullCalendar) ---------------- */
html body #content .fc .fc-scrollgrid,
html body #content .fc .fc-scrollgrid td,
html body #content .fc .fc-scrollgrid th,
html body #content .fc-theme-standard td,
html body #content .fc-theme-standard th{ border-color:var(--fsh-line-soft) !important; }
html body #content .fc .fc-col-header-cell-cushion{
  color:var(--fsh-sub) !important; font-weight:600 !important; font-size:11px !important;
  text-transform:uppercase; letter-spacing:.05em; padding:8px 4px;
}
html body #content .fc .fc-daygrid-day-number{ color:var(--fsh-body) !important; font-size:12px; padding:6px 8px; }
html body #content .fc .fc-day-today{ background:var(--fsh-accent-soft) !important; }
html body #content .fc .fc-day-today .fc-daygrid-day-number{ color:var(--fsh-accent-hi) !important; font-weight:700 !important; }
html body #content .fc .fc-day-other .fc-daygrid-day-number{ color:var(--fsh-faint) !important; }
html body #content .fc .fc-toolbar-title{ font-family:var(--fsh-font) !important; font-weight:600 !important; font-size:18px !important; color:var(--fsh-ink) !important; }
html body #content .fc .fc-button,
html body #content .fc .fc-button-primary{
  background:var(--fsh-surface) !important; border:1px solid var(--fsh-line-strong) !important;
  color:var(--fsh-body) !important; border-radius:var(--fsh-r-sm) !important; box-shadow:none !important;
}
html body #content .fc .fc-button-primary:hover,
html body #content .fc .fc-button-primary:not(:disabled).fc-button-active{
  background:var(--fsh-accent) !important; border-color:var(--fsh-accent) !important; color:#fff !important;
}
/* the per-day availability event chips */
html body #content .fc .fc-event,
html body #content .fc .fc-daygrid-event{
  border:0 !important; border-radius:var(--fsh-r-pill) !important;
  font-size:10px !important; font-weight:500 !important; padding:1px 6px !important;
  background:var(--fsh-ok-soft) !important; color:var(--fsh-ok) !important;
}
html body #content .fc .fc-daygrid-day-events .fc-event.fsh-full,
html body #content .fc .fc-event[style*="255, 65, 60"],
html body #content .fc .fc-event.unavailable{ background:var(--fsh-stop-soft) !important; color:var(--fsh-stop) !important; }
/* the little "i" info markers on each day */
html body #content .fc .fc-daygrid-day-top .icon-info-sign,
html body #content .fc td .booking-info-icon{ color:var(--fsh-faint) !important; }

/* legend dots below the stats */
html body #content .booking-legend .available,
html body #content .cal-legend-available{ color:var(--fsh-ok) !important; }
html body #content .booking-legend .partial{ color:var(--fsh-warn) !important; }
html body #content .booking-legend .unavailable{ color:var(--fsh-stop) !important; }
html body #content .booking-legend .booked{ color:var(--fsh-info) !important; }

/* --- 8b · hotel stat tiles (Total Rooms / Available / …) --------- */
html body #content .hotel-stats .stat-item,
html body #content .rooms-stats > div,
html body #content .booking-stats-box{
  border:1px solid var(--fsh-line) !important; border-radius:var(--fsh-r) !important;
  background:var(--fsh-surface) !important; box-shadow:none !important;
}
html body #content .hotel-stats .stat-value,
html body #content .booking-stats-box .count{
  color:var(--fsh-ink) !important; font-weight:600 !important; font-variant-numeric:tabular-nums;
}

/* --- 8c · module admin panels (channel sync, features, refunds) - */
html body #content .fsh-channel-panel,
html body #content .module-admin-panel{ border:1px solid var(--fsh-line) !important; border-radius:var(--fsh-r) !important; }
html body #content table.htl-features-table td,
html body #content .refund-rules-table td{ border-bottom:1px solid var(--fsh-line-soft) !important; }

/* === 9 · Login + interstitials  (extended in 9.7) ======================= */
.fsh-hp{position:absolute !important;left:-9999px !important;width:1px;height:1px;opacity:0;overflow:hidden}
.fsh-turnstile-wrap{margin:14px 0 4px;display:flex;justify-content:center;min-height:65px}
.fsh-turnstile-wrap .cf-turnstile{max-width:100%}

/* --- 9a · login card --------------------------------------------- */
body.login,
#login{ background:var(--fsh-bg) !important; }
#login #login-panel .panel,
#login .front.panel,
#login .back.panel{
  background:var(--fsh-surface) !important;
  border:1px solid var(--fsh-line) !important;
  border-top:3px solid var(--fsh-forest,#1C3B30) !important;
  border-radius:var(--fsh-r) !important;
  box-shadow:var(--fsh-shadow-pop) !important;
}
#login #login-header,
#login .login-header{ color:var(--fsh-ink) !important; }
#login .btn-primary,
#login .ladda-button{
  background-color:var(--fsh-accent) !important; border-color:var(--fsh-accent) !important;
  border-radius:var(--fsh-r-sm) !important; font-weight:600 !important; text-transform:none !important;
}
#login .btn-primary:hover,#login .btn-primary:focus,#login .btn-primary:active{
  background-color:var(--fsh-accent-hi) !important;border-color:var(--fsh-accent-hi) !important}
#login a{ color:var(--fsh-accent) !important; }
#login a:hover,#login a:focus{ color:var(--fsh-brass) !important; }
#login label{ color:var(--fsh-body) !important; }
#login .form-control{ border:1px solid var(--fsh-line-strong) !important; border-radius:var(--fsh-r-sm) !important; }
#login input.form-control:focus{
  border-color:var(--fsh-accent) !important; box-shadow:var(--fsh-focus) !important; background:var(--fsh-surface) !important;
}
/* the stock version string → a quiet pill */
#login #login-panel .text-center h2 small,
body.login .shop_version,
#login .ps_version{
  display:inline-block; font-family:var(--fsh-mono); font-size:11px; color:var(--fsh-faint);
  border:1px solid var(--fsh-line); border-radius:var(--fsh-r-pill); padding:1px 8px;
}
/* the stock social-network row → muted, monochrome */
#login .social-networks a,
#login .login-social a{ color:var(--fsh-faint) !important; }
#login .social-networks a:hover{ color:var(--fsh-sub) !important; }
#login .social-networks a [class*="icon"]{ background:transparent !important; color:inherit !important; }

/* --- 9b · INVALID SECURITY TOKEN / maintenance / 404 ----------- */
.bootstrap .adminlogin,
body .invalid_token,
#content .invalid_token,
.process-notice{
  max-width:520px; margin:60px auto; padding:28px 30px;
  background:var(--fsh-surface); border:1px solid var(--fsh-line);
  border-top:3px solid var(--fsh-warn); border-radius:var(--fsh-r);
  box-shadow:var(--fsh-shadow);
}
body .invalid_token h1,
body .invalid_token h2,
.bootstrap .adminlogin h1{
  color:var(--fsh-warn) !important; font-family:var(--fsh-font) !important;
  font-weight:600 !important; font-size:18px !important; text-transform:none !important;
}
body .invalid_token .btn,
.bootstrap .adminlogin .btn{
  border-radius:var(--fsh-r-sm) !important; font-weight:600 !important;
  border:1px solid var(--fsh-line-strong) !important; background:var(--fsh-surface) !important;
  color:var(--fsh-body) !important; box-shadow:none !important; text-transform:none !important;
}
body .invalid_token .btn.btn-success,
body .invalid_token a[href*="controller="]:first-of-type{
  background:var(--fsh-accent) !important; border-color:var(--fsh-accent) !important; color:#fff !important;
}
/* stock maintenance page */
#maintenance,
.maintenance-page{ background:var(--fsh-bg) !important; color:var(--fsh-body) !important; }
