/* ===== Responsive layer: every page fits phones, tablets and laptops =====
   Loaded after style.css and glass.css. Tables turn into cards on phones
   (labels come from responsive.js), side-by-side panels stack. */

/* never let a page scroll sideways */
html, body { max-width: 100%; overflow-x: hidden; }
.shell-main { min-width: 0; }
.shell-main img, .shell-main video, .shell-main canvas, .shell-main iframe { max-width: 100%; }
.shell-main pre, .shell-main code { white-space: pre-wrap; word-break: break-word; }
.shell-main :is(h1, h2, h3) { overflow-wrap: anywhere; }

/* tablets and small laptops */
@media (max-width: 1100px) {
  .shell-main .cm-grid[style] { grid-template-columns: minmax(0, 1fr) !important; }
  .ls-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}

/* phones */
@media (max-width: 760px) {
  .shell-main .page-head, .shell-main .module-head, .shell-main .cm-head { flex-wrap: wrap; gap: 10px; }
  .shell-main .page-head > *, .shell-main .cm-head > * { min-width: 0; }
  .shell-main .page-head h1, .shell-main .module-head h1, .shell-main .cm-head h1 { font-size: 23px; }
  .rsp-stack { grid-template-columns: minmax(0, 1fr) !important; }
  .um-grid, .um-checks, .um-checks.two { grid-template-columns: minmax(0, 1fr) !important; }
  .shell-main .panel, .shell-main .module-card, .shell-main .cm-card { padding-left: 14px; padding-right: 14px; }
  .shell-main input:not([type=checkbox]):not([type=radio]), .shell-main select, .shell-main textarea { max-width: 100%; }
  .shell-main .inline-form { flex-wrap: wrap; }
  .shell-main .inv-paper { overflow-x: auto; }
  .shell-main .inv-body { padding: 16px; }
  dialog, .module-dialog, .power-lead-dialog { max-width: calc(100vw - 20px) !important; max-height: calc(100dvh - 30px) !important; }

  /* tables -> cards */
  .shell-main .rt-wrap { overflow: visible !important; }
  .shell-main table.rt-cards { display: block; width: 100% !important; min-width: 0 !important; border: 0 !important; background: none !important; }
  .shell-main table.rt-cards thead, .shell-main table.rt-cards tr.rt-head { display: none; }
  .shell-main table.rt-cards tbody, .shell-main table.rt-cards tfoot { display: block; }
  .shell-main table.rt-cards tr { display: block; margin: 0 0 10px; padding: 6px 14px; border: 1px solid var(--border); border-radius: 14px; background: var(--bg-card); }
  .shell-main table.rt-cards tr:hover td { background: transparent !important; }
  .shell-main table.rt-cards td, .shell-main table.rt-cards th { display: flex; align-items: center; justify-content: space-between; gap: 12px;
    min-width: 0; width: auto !important; padding: 8px 0 !important; border: 0 !important; border-bottom: 1px solid var(--border) !important;
    text-align: right; white-space: normal !important; background: transparent !important; overflow-wrap: anywhere; }
  .shell-main table.rt-cards td:last-child { border-bottom: 0 !important; }
  .shell-main table.rt-cards td::before { content: attr(data-label); flex: 0 0 auto; max-width: 45%; text-align: left; font-size: 11px; font-weight: 600;
    letter-spacing: .04em; text-transform: uppercase; color: var(--text-secondary); }
  .shell-main table.rt-cards td > * { min-width: 0; }
  .shell-main table.rt-cards .rt-v { display: flex; flex-direction: column; align-items: flex-end; gap: 3px; min-width: 0; }
  .shell-main table.rt-cards td:first-child .rt-v { align-items: flex-start; }
  .shell-main table.rt-cards .rt-v.rt-act { flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 6px; }
  .shell-main table.rt-cards .rt-v > :is(form, div) { max-width: 100%; }
  .shell-main table.rt-cards td[data-label=""]::before { display: none; }
  .shell-main table.rt-cards td[data-label=""] { justify-content: flex-end; }
  /* the first cell is the card title */
  .shell-main table.rt-cards td:first-child { justify-content: flex-start; text-align: left; font-size: 15px; }
  .shell-main table.rt-cards td:first-child::before { display: none; }
  /* empty-state rows */
  .shell-main table.rt-cards td[colspan] { display: block; text-align: center; border: 0 !important; }
  .shell-main table.rt-cards td[colspan]::before { display: none; }
  /* action buttons wrap instead of squeezing */
  .shell-main table.rt-cards td :is(form, .actions, .row-actions) { display: inline-flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }
}

@media (max-width: 380px) {
  .ls-grid { grid-template-columns: minmax(0, 1fr) !important; }
  .shell-main table.rt-cards td { flex-wrap: wrap; }
  .shell-main table.rt-cards td::before { max-width: 100%; }
}

/* wider screens: the wrapper is invisible */
@media (min-width: 761px) { .rt-v { display: contents; } }

/* partner wallet forms */
.stack-form { display: flex; flex-direction: column; gap: 10px; }
.stack-form label { display: flex; flex-direction: column; gap: 6px; }
.dn-pill.danger { background: rgba(239, 68, 68, .14); color: #ef4444; }
.stack-form label, #partner label { font-size: 13px; font-weight: 600; color: var(--text-secondary); }
:is(.stack-form, #partner, .inline-form) :is(input:not([type=file]):not([type=checkbox]):not([type=radio]), select, textarea) {
  padding: 10px 12px; min-height: 40px; border-radius: 10px; font-size: 14px; font-weight: 500;
  color: var(--text-primary); background: var(--bg-input, rgba(255, 255, 255, .05)); border: 1px solid var(--border); }
.stack-form input[type=file] { font-size: 13px; }

/* partner brand (white-label) */
.brand .brand-text { font: 700 20px/1 "Space Grotesk", Inter, system-ui, sans-serif; letter-spacing: -.01em; color: var(--brand-accent, var(--text-primary)); white-space: nowrap; }
.brand.partner-brand .brand-logo { max-height: 38px; object-fit: contain; }
.brand.partner-brand .brand-icon { object-fit: contain; }
.stack-form [hidden], .stack-form label[hidden] { display: none !important; }

/* ===== Partner colour schemes (body.theme-*) ===== */
body.theme-ocean{--t1:#38bdf8;--t2:#0284c7;--tg:#0ea5e9;--tb1:#06121f;--tb2:#081a2b;--tb3:#040b14;--tl:#0369a1}
body.theme-emerald{--t1:#34d399;--t2:#059669;--tg:#10b981;--tb1:#05140f;--tb2:#071d16;--tb3:#030c09;--tl:#047857}
body.theme-sunset{--t1:#fb923c;--t2:#ea580c;--tg:#f97316;--tb1:#170c06;--tb2:#21110a;--tb3:#0d0704;--tl:#c2410c}
body.theme-rose{--t1:#fb7185;--t2:#e11d48;--tg:#f43f5e;--tb1:#170710;--tb2:#220a16;--tb3:#0d0409;--tl:#be123c}
body.theme-violet{--t1:#c084fc;--t2:#9333ea;--tg:#a855f7;--tb1:#110a1f;--tb2:#180e2c;--tb3:#0a0613;--tl:#7e22ce}
body.theme-graphite{--t1:#cbd5e1;--t2:#64748b;--tg:#94a3b8;--tb1:#0b0c10;--tb2:#111318;--tb3:#060709;--tl:#334155}
body.theme-custom{--t2:var(--t1);--tg:var(--t1);--tl:var(--t1)}
body.glass-ui[class*="theme-"]{--accent:var(--t1);--accent-hover:var(--t1);--accent-glow:color-mix(in srgb,var(--t1) 25%,transparent);--g-glow:var(--tg)}
body.glass-ui[class*="theme-"]:not(.theme-custom):not(.light-theme){background:linear-gradient(180deg,var(--tb1) 0%,var(--tb2) 55%,var(--tb3) 100%) fixed !important}
body.glass-ui.light-theme[class*="theme-"]{--accent:var(--tl);--accent-hover:var(--tl)}
body.glass-ui[class*="theme-"] :is(.btn-primary,.cm-btn,.btn-blue,.seg button.on,.chips span.on,.dn-btn.primary){
  background:linear-gradient(180deg,var(--t1),var(--t2)) !important;border-color:color-mix(in srgb,var(--t1) 60%,#fff) !important;color:#fff !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.45),0 8px 22px color-mix(in srgb,var(--tg) 35%,transparent) !important}
body[class*="theme-"] .seg a.on{background:var(--t2);color:#fff}
body[class*="theme-"] .shell-main .modern-table a:not(.dn-btn):not(.btn){color:var(--accent)}
body[class*="theme-"] .dial-chart-fill{background:linear-gradient(180deg,var(--t1),var(--t2))}
body[class*="theme-"] :is(input,select,textarea):focus{outline-color:var(--t1)}
body.glass-ui[class*="theme-"].light-theme :is(.btn-primary,.cm-btn,.btn-blue,.seg button.on,.chips span.on,.dn-btn.primary){background:linear-gradient(180deg,var(--t1),var(--tl)) !important}
body.lg[class*="theme-"] .lg-btn{background:linear-gradient(180deg,var(--t1),var(--t2)) !important;border-color:var(--t1) !important}
body.lg[class*="theme-"]:not(.theme-custom){background:linear-gradient(180deg,var(--tb1),var(--tb3)) !important}
