/* JollyAsso UI 3.2.1 — Module Surface System
   Canonical visual language for SDK modules.
   Modules keep their métier layout; the Core owns spacing, surfaces, controls and rhythm. */
:root{
  --ja-module-canvas:#101214;
  --ja-module-surface:#17191b;
  --ja-module-surface-2:#1c1f22;
  --ja-module-surface-3:#22262a;
  --ja-module-line:rgba(255,255,255,.07);
  --ja-module-line-strong:rgba(255,255,255,.12);
  --ja-module-gutter:clamp(18px,2vw,30px);
  --ja-module-gap:18px;
  --ja-module-card-radius:10px;
  --ja-module-control-radius:7px;
  --ja-module-content-max:1560px;
}

body.swat-ui3 .swat-sdk-workspace[data-module]:not([data-module="dashboard"]){
  --swat-color-bg:var(--ja-module-canvas);
  --swat-color-surface:var(--ja-module-surface);
  --swat-color-surface-2:var(--ja-module-surface-2);
  --swat-color-surface-3:var(--ja-module-surface-3);
  --swat-color-line:var(--ja-module-line);
  --swat-color-line-strong:var(--ja-module-line-strong);
  --swat-text:var(--ja-text);
  --swat-text-soft:var(--ja-muted);
  --swat-border:var(--ja-module-line);
  --swat-surface:var(--ja-module-surface);
  --swat-surface-2:var(--ja-module-surface-2);
  --swat-input:#121416;
  --swat-accent:var(--ja-accent);
  background:var(--ja-module-canvas)!important;
}

body.swat-ui3 .swat-sdk-workspace[data-module]:not([data-module="dashboard"]) .swat-sdk-main{
  padding:var(--ja-module-gutter)!important;
  background:var(--ja-module-canvas)!important;
  scroll-padding:24px;
}
body.swat-ui3 .swat-sdk-workspace[data-module]:not([data-module="dashboard"]) .swat-sdk-main>*{
  width:min(100%,var(--ja-module-content-max));
  margin-inline:auto;
}

/* Page rhythm */
body.swat-ui3 .swat-sdk-workspace[data-module]:not([data-module="dashboard"]) :is(
  .sdk-members-native,.sdk-registrations-native,.swat-ha-native,.swat-platform-admin,
  .admin-native-shell,.ss-page,.ss-shell,.pa-page,.pa-stack,.module-page
){
  gap:var(--ja-module-gap)!important;
}
body.swat-ui3 [data-module^="admin-"] .admin-native-shell{
  width:min(100%,var(--ja-module-content-max))!important;
  padding:0 0 48px!important;
}

/* Headings stay quiet and editorial instead of looking like boxed admin panels. */
body.swat-ui3 .swat-sdk-workspace[data-module]:not([data-module="dashboard"]) :is(
  .admin-native-head,.sdk-members-top-actions,.sdk-registration-head,.ss-page-head,.pa-head,.pa-hero
){
  margin-bottom:4px!important;
  padding:2px 0 4px!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
body.swat-ui3 .swat-sdk-workspace[data-module]:not([data-module="dashboard"]) :is(.admin-native-head,.sdk-registration-head,.ss-page-head) h1,
body.swat-ui3 .swat-sdk-workspace[data-module]:not([data-module="dashboard"]) :is(.admin-native-head,.sdk-registration-head,.ss-page-head) h2{
  color:var(--ja-text)!important;
  font-family:var(--ja-font-display)!important;
  font-weight:650!important;
  letter-spacing:-.025em!important;
}
body.swat-ui3 .swat-sdk-workspace[data-module]:not([data-module="dashboard"]) :is(.admin-native-head,.sdk-registration-head,.ss-page-head) p,
body.swat-ui3 .swat-sdk-workspace[data-module]:not([data-module="dashboard"]) :is(.hint,.muted,.help,.description){
  color:var(--ja-muted)!important;
  line-height:1.5!important;
}

/* Shared surfaces. Keep the canvas open; only meaningful groups receive a card. */
body.swat-ui3 .swat-sdk-workspace[data-module]:not([data-module="dashboard"]) :is(
  .panel,.admin-native-card,.ss-card,.swat-ui-card,.sdk-registration-panel,
  .sdk-members-kpis article,.sdk-member-card,.swat-ha-section,.pa-card,.pa-panel,
  .admin-native-kpi,.stat,.accountSummary,.sessionList>div,.tariffCard
){
  border:1px solid var(--ja-module-line)!important;
  border-radius:var(--ja-module-card-radius)!important;
  background:var(--ja-module-surface)!important;
  box-shadow:none!important;
}
body.swat-ui3 .swat-sdk-workspace[data-module]:not([data-module="dashboard"]) :is(.panel,.admin-native-card,.ss-card,.sdk-member-card,.pa-card,.pa-panel){
  transition:background var(--ja-motion-fast) var(--ja-ease-soft),border-color var(--ja-motion-fast) var(--ja-ease-soft),transform var(--ja-motion-fast) var(--ja-ease-soft)!important;
}
body.swat-ui3 .swat-sdk-workspace[data-module]:not([data-module="dashboard"]) :is(.panel,.admin-native-card,.ss-card,.sdk-member-card,.pa-card,.pa-panel):hover{
  border-color:var(--ja-module-line-strong)!important;
  background:var(--ja-module-surface-2)!important;
}

/* KPI cards: more air, less decoration. */
body.swat-ui3 .swat-sdk-workspace[data-module]:not([data-module="dashboard"]) :is(.sdk-members-kpis,.admin-native-kpis,.pa-kpis){gap:12px!important}
body.swat-ui3 .swat-sdk-workspace[data-module]:not([data-module="dashboard"]) :is(.sdk-members-kpis article,.admin-native-kpi,.stat){
  min-height:92px!important;
  padding:15px 16px!important;
}
body.swat-ui3 .swat-sdk-workspace[data-module]:not([data-module="dashboard"]) :is(.sdk-members-kpis article,.admin-native-kpi,.stat) small{
  color:var(--ja-muted)!important;
  font-weight:600!important;
  letter-spacing:.02em!important;
  text-transform:none!important;
}
body.swat-ui3 .swat-sdk-workspace[data-module]:not([data-module="dashboard"]) :is(.sdk-members-kpis article,.admin-native-kpi,.stat) strong{
  color:var(--ja-text)!important;
  font-family:var(--ja-font-display)!important;
  font-weight:650!important;
  letter-spacing:-.025em!important;
}

/* Buttons — same quiet graphite language as the navigation. */
body.swat-ui3 .swat-sdk-workspace[data-module]:not([data-module="dashboard"]) button:not(.ja-context-item):not(.swat-rail-logo):not(.swat-top-icon),
body.swat-ui3 .swat-sdk-workspace[data-module]:not([data-module="dashboard"]) .buttonLike{
  min-height:32px!important;
  padding:0 10px!important;
  border:1px solid var(--ja-module-line-strong)!important;
  border-radius:var(--ja-module-control-radius)!important;
  background:var(--ja-module-surface-2)!important;
  color:var(--ja-text-2)!important;
  box-shadow:none!important;
  font-family:var(--ja-font)!important;
  font-size:12px!important;
  font-weight:600!important;
  line-height:1!important;
  transition:background var(--ja-motion-fast) var(--ja-ease-soft),border-color var(--ja-motion-fast) var(--ja-ease-soft),color var(--ja-motion-fast) var(--ja-ease-soft),transform var(--ja-motion-fast) var(--ja-ease-soft)!important;
}
body.swat-ui3 .swat-sdk-workspace[data-module]:not([data-module="dashboard"]) button:hover:not(:disabled):not(.ja-context-item),
body.swat-ui3 .swat-sdk-workspace[data-module]:not([data-module="dashboard"]) .buttonLike:hover{
  background:var(--ja-module-surface-3)!important;
  border-color:rgba(255,255,255,.16)!important;
  color:var(--ja-text)!important;
  transform:none!important;
  filter:none!important;
}
body.swat-ui3 .swat-sdk-workspace[data-module]:not([data-module="dashboard"]) button:active:not(:disabled){transform:scale(.985)!important}
body.swat-ui3 .swat-sdk-workspace[data-module]:not([data-module="dashboard"]) button.primary,
body.swat-ui3 .swat-sdk-workspace[data-module]:not([data-module="dashboard"]) .buttonLike.primary{
  background:linear-gradient(180deg,#2bbbf8,#159bd3)!important;
  border-color:rgba(73,196,248,.55)!important;
  color:#fff!important;
  box-shadow:0 4px 14px rgba(20,169,255,.10)!important;
}
body.swat-ui3 .swat-sdk-workspace[data-module]:not([data-module="dashboard"]) button.danger,
body.swat-ui3 .swat-sdk-workspace[data-module]:not([data-module="dashboard"]) button.dangerBtn{
  background:rgba(255,107,117,.07)!important;
  border-color:rgba(255,107,117,.22)!important;
  color:#ff9aa2!important;
}

/* Form controls */
body.swat-ui3 .swat-sdk-workspace[data-module]:not([data-module="dashboard"]) :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea,.swat-ui-input,.swat-ui-select){
  min-height:34px!important;
  border:1px solid var(--ja-module-line-strong)!important;
  border-radius:var(--ja-module-control-radius)!important;
  background:#121416!important;
  color:var(--ja-text)!important;
  box-shadow:none!important;
  font-family:var(--ja-font)!important;
  font-size:12px!important;
  transition:border-color var(--ja-motion-fast) var(--ja-ease-soft),background var(--ja-motion-fast) var(--ja-ease-soft),box-shadow var(--ja-motion-fast) var(--ja-ease-soft)!important;
}
body.swat-ui3 .swat-sdk-workspace[data-module]:not([data-module="dashboard"]) :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea):hover{border-color:rgba(255,255,255,.16)!important}
body.swat-ui3 .swat-sdk-workspace[data-module]:not([data-module="dashboard"]) :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea):focus{
  outline:0!important;
  border-color:color-mix(in srgb,var(--ja-accent) 52%,var(--ja-module-line-strong))!important;
  box-shadow:0 0 0 3px rgba(40,183,246,.08)!important;
}
body.swat-ui3 .swat-sdk-workspace[data-module]:not([data-module="dashboard"]) label{color:var(--ja-text-2)!important;font-weight:550!important}

/* Toolbars and filters become light structural strips, not heavy cards. */
body.swat-ui3 .swat-sdk-workspace[data-module]:not([data-module="dashboard"]) :is(
  .admin-native-toolbar,.sdk-members-filters,.ss-filters,.pa-toolbar,.sdk-members-native-toolbar
){
  padding:10px!important;
  border:1px solid var(--ja-module-line)!important;
  border-radius:9px!important;
  background:rgba(255,255,255,.018)!important;
  box-shadow:none!important;
}

/* Tables */
body.swat-ui3 .swat-sdk-workspace[data-module]:not([data-module="dashboard"]) :is(.admin-native-table-wrap,.tableWrap,.sdk-members-directory,.pa-table-wrap,.ja-table-wrap){
  border:1px solid var(--ja-module-line)!important;
  border-radius:10px!important;
  background:var(--ja-module-surface)!important;
  box-shadow:none!important;
  overflow:auto!important;
}
body.swat-ui3 .swat-sdk-workspace[data-module]:not([data-module="dashboard"]) table{border-collapse:separate!important;border-spacing:0!important;background:transparent!important}
body.swat-ui3 .swat-sdk-workspace[data-module]:not([data-module="dashboard"]) thead th{
  background:#181b1e!important;
  color:var(--ja-muted)!important;
  border-bottom:1px solid var(--ja-module-line)!important;
  font-size:10px!important;
  font-weight:650!important;
  letter-spacing:.035em!important;
  text-transform:none!important;
}
body.swat-ui3 .swat-sdk-workspace[data-module]:not([data-module="dashboard"]) tbody td{border-bottom:1px solid rgba(255,255,255,.05)!important}
body.swat-ui3 .swat-sdk-workspace[data-module]:not([data-module="dashboard"]) tbody tr{transition:background var(--ja-motion-fast) var(--ja-ease-soft)!important}
body.swat-ui3 .swat-sdk-workspace[data-module]:not([data-module="dashboard"]) tbody tr:hover{background:rgba(255,255,255,.025)!important}
body.swat-ui3 .swat-sdk-workspace[data-module]:not([data-module="dashboard"]) tbody tr:last-child td{border-bottom:0!important}

/* Pills / badges */
body.swat-ui3 .swat-sdk-workspace[data-module]:not([data-module="dashboard"]) :is(.sdk-pill,.statusPill,.admin-native-badge,.pa-badge,.ss-tag){
  border:1px solid var(--ja-module-line)!important;
  border-radius:999px!important;
  background:rgba(255,255,255,.035)!important;
  color:var(--ja-text-2)!important;
  font-weight:600!important;
  letter-spacing:0!important;
}

/* Details and list rows get the same low-noise hover language as the context sidebar. */
body.swat-ui3 .swat-sdk-workspace[data-module]:not([data-module="dashboard"]) :is(.sdk-registration-row,.admin-native-list>div,.ss-list>div,.pa-list>div){
  transition:background var(--ja-motion-fast) var(--ja-ease-soft),border-color var(--ja-motion-fast) var(--ja-ease-soft)!important;
}
body.swat-ui3 .swat-sdk-workspace[data-module]:not([data-module="dashboard"]) :is(.sdk-registration-row,.admin-native-list>div,.ss-list>div,.pa-list>div):hover{
  background:rgba(255,255,255,.025)!important;
}

@media(max-width:900px){
  :root{--ja-module-gutter:18px;--ja-module-gap:16px}
}
@media(max-width:767px){
  :root{--ja-module-gutter:12px;--ja-module-gap:14px}
  body.swat-ui3 .swat-sdk-workspace[data-module]:not([data-module="dashboard"]) .swat-sdk-main{padding-bottom:calc(84px + env(safe-area-inset-bottom))!important}
  body.swat-ui3 .swat-sdk-workspace[data-module]:not([data-module="dashboard"]) button:not(.ja-context-item){min-height:38px!important}
}

@media(prefers-reduced-motion:reduce){
  body.swat-ui3 .swat-sdk-workspace[data-module]:not([data-module="dashboard"]) *{scroll-behavior:auto!important}
}

/* Design Lab — module surface specimen */
.ja-lab-module-preview{display:grid;gap:18px;padding:20px;border:1px solid var(--ja-module-line);border-radius:12px;background:var(--ja-module-canvas)}
.ja-lab-module-preview>header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.ja-lab-module-preview>header small{color:var(--ja-domain-members);font:650 9px/1 var(--ja-font);letter-spacing:.08em}.ja-lab-module-preview>header h2{margin:5px 0 4px;font:650 22px/1.1 var(--ja-font-display);letter-spacing:-.025em}.ja-lab-module-preview>header p{margin:0;color:var(--ja-muted);font-size:12px}.ja-lab-module-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;padding:10px;border:1px solid var(--ja-module-line);border-radius:9px;background:rgba(255,255,255,.018)}.ja-lab-module-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.ja-lab-module-kpis article{min-height:92px;padding:15px 16px;border:1px solid var(--ja-module-line);border-radius:10px;background:var(--ja-module-surface)}.ja-lab-module-kpis small,.ja-lab-module-kpis span{display:block;color:var(--ja-muted);font-size:10px}.ja-lab-module-kpis strong{display:block;margin:8px 0 4px;font:650 26px/1 var(--ja-font-display);letter-spacing:-.03em}
@media(max-width:700px){.ja-lab-module-preview>header{display:grid}.ja-lab-module-toolbar{grid-template-columns:1fr 1fr}.ja-lab-module-toolbar input{grid-column:1/-1}.ja-lab-module-kpis{grid-template-columns:1fr}}
