/* Сессии Nex — рабочая панель. Только новые классы, токены Pulse не переопределяем. */

.nex-sr-only,
.nex-table caption{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

#sessionPanel{
  display:flex;
  flex-direction:column;
  gap:16px;
  min-width:0;
}
#sessionPanel>.section-heading{margin-bottom:0}
#sessionPanel .section-heading h2{font-size:22px;letter-spacing:-.02em}
#sessionPanel .section-heading p{max-width:62ch}

.nex-status{margin:0}
.nex-status[data-state="active"] .status-led{background:var(--good);box-shadow:0 0 12px var(--good)}
.nex-status[data-state="expiring"] .status-led{background:var(--warn,#ffc069);box-shadow:0 0 14px var(--warn,#ffc069)}
.nex-status[data-state="none"] .status-led,
.nex-status[data-state="error"] .status-led{background:var(--bad,#ff7d97);box-shadow:0 0 12px var(--bad,#ff7d97)}
.nex-status .status-led{width:10px;height:10px;border-radius:50%;flex:none}
.nex-status strong{display:block}
.nex-status span{display:block;font-size:12.5px;color:var(--ink-2);line-height:1.45}

.nex-subnav{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:0;
}
.nex-tab{
  flex:1 1 calc(50% - 8px);
  min-height:44px;
  min-width:44px;
  padding:8px 14px;
  border-radius:14px;
  border:1px solid var(--glass-edge);
  background:var(--glass);
  color:var(--ink-2);
  font:inherit;
  font-size:14px;
  font-weight:650;
  cursor:pointer;
}
.nex-tab[aria-selected="true"]{
  color:var(--ink);
  background:var(--glass-strong);
  box-shadow:inset 0 0 0 1px var(--glass-edge);
}
@media(min-width:769px){
  .nex-tab{flex:0 0 auto;padding:8px 18px}
}
body[data-role="viewer"] [data-admin-only]{display:none!important}

.nex-section{display:flex;flex-direction:column;gap:12px;min-width:0}
.nex-section[hidden]{display:none!important}
.nex-section-head h3{margin:0;font-size:18px;letter-spacing:-.02em}
.nex-section-head p{margin:4px 0 0;font-size:13.5px;color:var(--ink-2);max-width:72ch;line-height:1.45}

.nex-table-note{margin:0;font-size:12.5px;color:var(--ink-2);max-width:72ch}
.nex-table-wrap{position:relative;min-width:0;max-width:100%;overflow-x:auto}
.nex-table{
  width:100%;
  border-collapse:collapse;
  min-width:0;
}
.nex-table thead th{
  text-align:left;
  font-size:12px;
  font-weight:600;
  color:var(--ink-2);
  padding:0 12px 8px;
  border:0;
}
.nex-table tbody{border:1px solid var(--glass-edge);border-radius:18px}
.nex-row td{
  padding:13px 12px;
  border-top:1px solid var(--line);
  vertical-align:middle;
  min-width:0;
}
.nex-row:first-child td{border-top:0}
.nex-cardno{
  font-family:var(--num);
  font-weight:700;
  font-variant-numeric:tabular-nums;
  letter-spacing:.02em;
  font-size:15px;
  color:var(--ink);
  white-space:nowrap;
}
.nex-mask{letter-spacing:.14em;color:var(--ink-2);font-weight:700}
.nex-holder{
  font-weight:650;
  font-size:14.5px;
  max-width:18ch;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.nex-state{font-size:13px;font-weight:600;color:var(--ink-2)}
.nex-row[data-state="enabled"] .nex-state{color:var(--good)}
/* NS-2: light «включен» must be ≥4.5:1 on white. Pulse --good #0f9a6a is 3.59:1. */
:root[data-theme="light"] .nex-row[data-state="enabled"] .nex-state{color:#0a7a52}

.nex-deals{display:grid;gap:6px;min-width:0}
.nex-deals-count{
  font-family:var(--num);
  font-variant-numeric:tabular-nums;
  font-weight:650;
  font-size:14.5px;
  color:var(--ink);
}
.nex-deals-today{font-size:12.5px;color:var(--ink-2)}
.nex-bar{
  display:block;
  height:6px;
  border-radius:99px;
  background:rgba(255,255,255,.08);
  overflow:hidden;
}
:root[data-theme="light"] .nex-bar{background:#e6e9f3}
.nex-bar i{
  display:block;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg,#3d8f72,var(--good));
  max-width:100%;
}
.nex-row[data-tone="warn"] .nex-bar i{background:linear-gradient(90deg,#c9891c,#e2a83a)}
.nex-row[data-tone="danger"] .nex-bar i{background:linear-gradient(90deg,#c8284f,#d6325a)}
.nex-flag{
  display:none;
  width:max-content;
  padding:2px 8px;
  border-radius:999px;
  font-size:11.5px;
  font-weight:700;
}
.nex-row[data-state="enabled"][data-tone="warn"] .nex-flag{
  display:inline-block;
  color:#3a2a08;
  background:#ffc069;
}
.nex-row[data-state="enabled"][data-tone="danger"] .nex-flag{
  display:inline-block;
  color:#fff;
  background:#d6325a;
}
:root[data-theme="light"] .nex-row[data-state="enabled"][data-tone="warn"] .nex-flag{color:#3a2a08;background:#f3c16b}
:root[data-theme="light"] .nex-row[data-state="enabled"][data-tone="danger"] .nex-flag{color:#fff;background:#d6325a}

.nex-row[data-state="disabled"],
.nex-row[data-state="deleted"]{opacity:.82}
.nex-row[data-state="disabled"] .nex-cardno,
.nex-row[data-state="deleted"] .nex-cardno,
.nex-row[data-state="disabled"] .nex-holder,
.nex-row[data-state="deleted"] .nex-holder,
.nex-row[data-state="disabled"] .nex-deals-count,
.nex-row[data-state="deleted"] .nex-deals-count{color:#9aa3bd}
:root[data-theme="light"] .nex-row[data-state="disabled"] .nex-cardno,
:root[data-theme="light"] .nex-row[data-state="deleted"] .nex-cardno,
:root[data-theme="light"] .nex-row[data-state="disabled"] .nex-holder,
:root[data-theme="light"] .nex-row[data-state="deleted"] .nex-holder,
:root[data-theme="light"] .nex-row[data-state="disabled"] .nex-deals-count,
:root[data-theme="light"] .nex-row[data-state="deleted"] .nex-deals-count{color:#5f6780}
.nex-row[data-state="disabled"] .nex-state,
.nex-row[data-state="deleted"] .nex-state{color:#c5cadb}
:root[data-theme="light"] .nex-row[data-state="disabled"] .nex-state,
:root[data-theme="light"] .nex-row[data-state="deleted"] .nex-state{color:#5b6582}
.nex-row[data-state="disabled"] .nex-bar i,
.nex-row[data-state="deleted"] .nex-bar i{background:#8b93ab}
.nex-row[data-state="disabled"] .nex-flag,
.nex-row[data-state="deleted"] .nex-flag{display:none}

body[data-today="0"] .nex-deals-today{display:none}
.nex-today-missing,
.nex-life-missing{color:var(--warn,#ffc069);font-weight:650}
:root[data-theme="light"] .nex-today-missing,
:root[data-theme="light"] .nex-life-missing{color:#8a5a12}
.nex-summary-alert{color:var(--warn,#ffc069)}
:root[data-theme="light"] .nex-summary-alert{color:#8a5a12}

.nex-row-action{
  min-height:44px;
  min-width:44px;
  padding:8px 12px;
  border-radius:12px;
  border:1px solid var(--glass-edge);
  background:transparent;
  color:var(--ink);
  font:inherit;
  font-size:13px;
  font-weight:650;
  cursor:pointer;
}
.nex-row-action[disabled]{opacity:.45;cursor:not-allowed}

/* Mobile: visual cards, thead clipped (not display:none) so NS-4 a11y stays. */
@media(max-width:768px){
  .nex-table thead{
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0;
  }
  .nex-table,.nex-table tbody,.nex-table tr,.nex-table td{display:block;width:100%}
  .nex-table tbody{border:0;background:transparent}
  .nex-row{
    display:grid;
    grid-template-columns:1fr auto;
    gap:6px 12px;
    padding:14px 16px;
    margin-bottom:8px;
    border:1px solid var(--glass-edge);
    border-radius:18px;
    background:var(--glass);
  }
  .nex-row td{padding:0;border:0}
  .nex-row td:nth-child(1){grid-column:1;font-size:16px}
  .nex-row td:nth-child(2){grid-column:1}
  .nex-row td:nth-child(3){grid-column:2;grid-row:1;align-self:start;text-align:right}
  .nex-row td:nth-child(4){grid-column:1/-1}
  .nex-row td:nth-child(5){grid-column:1/-1}
  .nex-holder{max-width:100%}
}

.nex-skeleton{
  display:flex;
  flex-direction:column;
  gap:8px;
  width:100%;
  min-width:0;
  max-width:100%;
}
.nex-sk{
  height:64px;
  border-radius:18px;
  background:rgba(255,255,255,.06);
  position:relative;
  overflow:hidden;
}
:root[data-theme="light"] .nex-sk{background:rgba(20,32,80,.08)}
.nex-sk::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.12) 50%,transparent 70%);
  background-size:300% 100%;
  animation:nex-shimmer 1.4s ease-in-out infinite;
}
:root[data-theme="light"] .nex-sk::after{
  background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.8) 50%,transparent 70%);
  background-size:300% 100%;
}
@keyframes nex-shimmer{0%{background-position:100% 0}100%{background-position:0 0}}

.nex-empty,.nex-error,.nex-banner{
  margin:0;
  padding:16px 18px;
  border-radius:18px;
  border:1px solid var(--glass-edge);
  background:var(--glass);
  color:var(--ink);
  font-size:14.5px;
  line-height:1.45;
}
.nex-error{display:flex;flex-direction:column;align-items:flex-start;gap:12px;border-color:rgba(255,125,151,.35)}
:root[data-theme="light"] .nex-error{border-color:rgba(214,50,90,.3);background:#fff}
.nex-banner-session,.nex-banner-cooldown{color:var(--ink)}
.nex-live{margin:0;min-height:1.2em;font-size:13px;color:var(--ink-2)}

.nex-kpi{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
@media(min-width:769px){.nex-kpi{grid-template-columns:repeat(4,minmax(0,1fr))}}
.nex-kpi-card{
  padding:14px 16px;
  border-radius:16px;
  border:1px solid var(--glass-edge);
  background:var(--glass);
  min-width:0;
}
:root[data-theme="light"] .nex-kpi-card,:root[data-theme="light"] .nex-deposit{background:#fff}
.nex-kpi-card .nex-label{margin:0;font-size:12.5px;color:var(--ink-2);font-weight:600}
.nex-kpi-card strong{
  display:block;
  margin-top:4px;
  font-family:var(--num);
  font-size:22px;
  letter-spacing:-.03em;
}
.nex-count-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.nex-count-item{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
  padding:12px 16px;
  min-height:44px;
  border:1px solid var(--glass-edge);
  border-radius:16px;
  background:var(--glass);
}
.nex-count-item span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.nex-deposit{
  padding:18px 20px;
  border-radius:18px;
  border:1px solid var(--glass-edge);
  background:var(--glass);
  display:flex;
  flex-direction:column;
  gap:6px;
  min-width:0;
}
.nex-label{margin:0;font-size:13px;font-weight:600;color:var(--ink-2)}
.nex-amount{
  margin:2px 0 4px;
  font-family:var(--num);
  font-size:clamp(28px,4.2vw,36px);
  font-weight:700;
  letter-spacing:-.03em;
  line-height:1.1;
  font-variant-numeric:tabular-nums;
  color:var(--ink);
}
.nex-formula,.nex-hint{margin:0;font-size:13px;color:var(--ink-2);line-height:1.45;max-width:56ch}

.nex-action-group{display:flex;flex-direction:column;gap:10px;min-width:0}
.nex-action-group-title{margin:0;font-size:15px;letter-spacing:-.01em}
.nex-action-group-lead{margin:0;font-size:13px;color:var(--ink-2);line-height:1.45;max-width:70ch}
.nex-action-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.nex-action-card{
  display:flex;
  flex-wrap:wrap;
  gap:12px 16px;
  align-items:center;
  justify-content:space-between;
  padding:14px 16px;
  border-radius:16px;
  border:1px solid var(--glass-edge);
  background:var(--glass);
  min-width:0;
}
.nex-action-card>div{flex:1 1 16rem;min-width:0}
.nex-action-card h4{margin:0;font-size:15px}
.nex-action-card p{margin:4px 0 0;font-size:12.5px;color:var(--ink-2);line-height:1.4}
.nex-action-meta{margin-top:6px;font-size:11.5px;color:var(--ink-2);font-family:var(--num);word-break:break-all}
.nex-action-group[data-kind="read"] .nex-action-card{border-left:3px solid #5b8def}
.nex-action-group[data-kind="write"] .nex-action-card{border-left:3px solid #d6325a;background:rgba(214,50,90,.06)}
:root[data-theme="light"] .nex-action-group[data-kind="write"] .nex-action-card{background:rgba(214,50,90,.05)}
.nex-badge{
  display:inline-block;
  margin-left:6px;
  padding:2px 8px;
  border-radius:999px;
  font-size:11px;
  font-weight:700;
  vertical-align:middle;
}
.nex-badge-unverified{color:#3a2a08;background:#ffc069}
:root[data-theme="light"] .nex-badge-unverified{color:#3a2a08;background:#f3c16b}
.nex-badge-off{color:#fff;background:#5b6582}

.nex-action-btn,
.nex-btn-primary,
.nex-btn-danger,
.nex-btn-ghost{
  min-height:44px;
  min-width:44px;
  padding:8px 16px;
  border-radius:14px;
  border:1px solid var(--glass-edge);
  font:inherit;
  font-size:14px;
  font-weight:650;
  cursor:pointer;
}
.nex-action-btn,.nex-btn-ghost{background:var(--glass-strong);color:var(--ink)}
.nex-action-group[data-kind="write"] .nex-action-btn,
.nex-btn-danger{
  background:#d6325a;
  border-color:#d6325a;
  color:#fff;
}
.nex-btn-primary{background:#3b6de0;border-color:#3b6de0;color:#fff}
.nex-action-btn[disabled],
.nex-btn-danger[disabled],
.nex-btn-primary[disabled]{opacity:.45;cursor:not-allowed}

.nex-layer{
  position:fixed;
  inset:0;
  z-index:80;
  display:grid;
  place-items:center;
  padding:16px;
}
.nex-layer[hidden]{display:none!important}
.nex-backdrop{position:absolute;inset:0;background:rgba(4,8,18,.64)}
.nex-dialog{
  position:relative;
  z-index:1;
  width:min(28rem,100%);
  max-height:calc(100vh - 32px);
  overflow:auto;
  padding:22px 22px 18px;
  border-radius:22px;
  border:1px solid var(--glass-edge);
  background:var(--field,#0c1224);
  color:var(--ink);
  box-shadow:0 24px 64px rgba(0,0,0,.4);
}
:root[data-theme="light"] .nex-dialog{background:#fff;box-shadow:0 24px 64px rgba(20,32,80,.2)}
.nex-dialog-body h2{margin:0 0 8px;font-size:20px;letter-spacing:-.02em}
.nex-dialog-body p{margin:0 0 12px;font-size:14px;line-height:1.45;color:var(--ink-2)}
.nex-dialog-card{
  display:flex;
  flex-wrap:wrap;
  gap:8px 16px;
  padding:12px 14px;
  border-radius:14px;
  border:1px solid var(--glass-edge);
  background:var(--glass);
  color:var(--ink)!important;
  font-weight:650;
}
.nex-field{display:block;margin:8px 0 6px;font-size:13.5px;font-weight:600;color:var(--ink)}
.nex-input{
  width:100%;
  min-height:44px;
  padding:8px 12px;
  border-radius:12px;
  border:1px solid var(--glass-edge);
  background:var(--field);
  color:var(--ink);
  font:inherit;
  font-size:18px;
  letter-spacing:.2em;
  font-variant-numeric:tabular-nums;
}
.nex-field-hint{margin:6px 0 0;font-size:12.5px;color:var(--ink-2)}
.nex-dialog-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;margin-top:16px}

.nex-tab:focus-visible,
.nex-action-btn:focus-visible,
.nex-row-action:focus-visible,
.nex-btn-primary:focus-visible,
.nex-btn-danger:focus-visible,
.nex-btn-ghost:focus-visible,
.nex-input:focus-visible,
.nex-dialog .nex-tab:focus,
.nex-dialog .nex-action-btn:focus,
.nex-dialog .nex-btn-primary:focus,
.nex-dialog .nex-btn-danger:focus,
.nex-dialog .nex-btn-ghost:focus,
.nex-dialog .nex-input:focus{
  outline:2px solid #7aa2ff;
  outline-offset:3px;
}
:root[data-theme="light"] .nex-tab:focus-visible,
:root[data-theme="light"] .nex-action-btn:focus-visible,
:root[data-theme="light"] .nex-row-action:focus-visible,
:root[data-theme="light"] .nex-btn-primary:focus-visible,
:root[data-theme="light"] .nex-btn-danger:focus-visible,
:root[data-theme="light"] .nex-btn-ghost:focus-visible,
:root[data-theme="light"] .nex-input:focus-visible,
:root[data-theme="light"] .nex-dialog .nex-btn-primary:focus,
:root[data-theme="light"] .nex-dialog .nex-btn-danger:focus,
:root[data-theme="light"] .nex-dialog .nex-btn-ghost:focus,
:root[data-theme="light"] .nex-dialog .nex-input:focus{outline-color:#2d55c4}

/* NS-1: space after the view attribute is required, otherwise the nosession
   screen is hidden together with the rest of the dashboard. */
body[data-view="overview"] [data-screen]:not([data-screen="overview"]),
body[data-view="loading"] [data-screen]:not([data-screen="loading"]),
body[data-view="empty"] [data-screen]:not([data-screen="empty"]),
body[data-view="error"] [data-screen]:not([data-screen="error"]),
body[data-view="expiring"] [data-screen]:not([data-screen="expiring"]),
body[data-view="nosession"] [data-screen]:not([data-screen="nosession"]){display:none!important}

@media(max-width:390px){
  #sessionPanel,.nex-table-wrap,.nex-skeleton,.nex-action-card{min-width:0;max-width:100%}
  body{overflow-x:hidden}
}

/* Этапы действий */
.nex-action-group[data-stage]{padding:14px 14px 16px;border-radius:18px;border:1px solid var(--glass-edge)}
.nex-action-group[data-stage="1"]{background:rgba(91,141,239,.06)}
.nex-action-group[data-stage="2"]{background:rgba(214,50,90,.06)}
.nex-action-group[data-stage="3"]{background:rgba(180,140,60,.07)}
:root[data-theme="light"] .nex-action-group[data-stage="1"]{background:rgba(45,85,196,.05)}
:root[data-theme="light"] .nex-action-group[data-stage="2"]{background:rgba(214,50,90,.05)}
:root[data-theme="light"] .nex-action-group[data-stage="3"]{background:rgba(140,110,30,.06)}
.nex-stage-badge,
.nex-action-card .nex-badge-stage{
  display:inline-block;
  margin-left:6px;
  padding:2px 8px;
  border-radius:999px;
  font-size:11px;
  font-weight:700;
  vertical-align:middle;
  color:#fff;
  background:#3b6de0;
}
.nex-action-group[data-stage="2"] .nex-stage-badge,
.nex-badge-stage[data-stage="2"]{background:#d6325a}
.nex-action-group[data-stage="3"] .nex-stage-badge,
.nex-badge-stage[data-stage="3"]{background:#8a6a1a}
.nex-action-card[data-kind="read"]{border-left:3px solid #5b8def}
.nex-action-card[data-kind="write"]{border-left:3px solid #d6325a}
.nex-action-card[data-kind="write"] .nex-action-btn{background:#d6325a;border-color:#d6325a;color:#fff}
.nex-action-card.is-waiting{opacity:.78}
.nex-action-card.is-waiting .nex-action-btn{display:none}
.nex-badge-wait{color:#3a2a08;background:#ffc069}
:root[data-theme="light"] .nex-badge-wait{color:#3a2a08;background:#f3c16b}

.nex-bank-states{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));
  gap:8px;
  margin:4px 0 8px;
}
.nex-bank-state{
  padding:12px 14px;
  border-radius:14px;
  border:1px solid var(--glass-edge);
  background:var(--glass);
  min-width:0;
}
.nex-bank-state .nex-label{margin:0 0 4px}
.nex-bank-state strong{font-size:16px}
.nex-bank-state[data-state="enabled"] strong{color:var(--good)}
:root[data-theme="light"] .nex-bank-state[data-state="enabled"] strong{color:#0a7a52}
.nex-bank-state[data-state="disabled"] strong{color:var(--ink-2)}

#sessionRefreshNote{max-width:78ch;margin:0}

/* 320–768: no horizontal scroll, 44px targets */
.nex-dialog,
.nex-layer,
.nex-action-card,
.nex-table-wrap,
#sessionPanel,
.workspace{
  box-sizing:border-box;
}
.nex-dialog{max-width:100%}
.nex-input{box-sizing:border-box;max-width:100%;letter-spacing:.12em}
@media(max-width:768px){
  .nex-action-card>div{flex:1 1 100%}
  .nex-action-btn,.nex-row-action,.nex-btn-primary,.nex-btn-danger,.nex-btn-ghost{
    max-width:100%;
    box-sizing:border-box;
  }
  .nex-table-wrap{overflow-x:hidden}
  #sessionPanel,.wrap,.workspace,.nex-layer{max-width:100%;min-width:0}
  html,body{max-width:100%}
}

/* 44px Pulse chrome targets in this mock.
   Pulse redesign.css sets 38px !important on the top rail from 761px
   and 40px on the theme button under 760px. */
#logout,
#themeToggle,
.theme-toggle{
  min-height:44px;
  min-width:44px;
  box-sizing:border-box;
}
#logout{min-height:44px!important}
.rail a,
.rail button{
  min-height:44px;
  box-sizing:border-box;
}
@media(max-width:760px){
  .rail-theme button,
  #themeToggle,
  .theme-toggle{
    width:44px!important;
    height:44px!important;
    min-height:44px!important;
  }
}
@media(min-width:761px){
  .rail a{
    height:44px!important;
    min-height:44px!important;
    min-width:44px!important;
  }
  .rail button,
  #themeToggle,
  .theme-toggle{
    width:44px!important;
    height:44px!important;
    min-height:44px!important;
  }
}

@media(max-width:760px){
  .nex-layer{padding-top:72px;padding-bottom:88px;place-items:center}
}

/* NP: rail 44x44 at 320 — wrap so items do not shrink below the target. */
@media(max-width:760px){
  .rail{flex-wrap:wrap;justify-content:center;max-width:100%;width:auto;left:8px;right:8px}
  .rail-group:not(.rail-theme){flex-wrap:wrap!important;justify-content:center;gap:4px!important;min-width:0}
  .rail-group:not(.rail-theme) a{
    flex:0 0 44px!important;
    min-width:44px!important;
    width:44px!important;
    max-width:44px!important;
    min-height:44px!important;
    height:44px!important;
  }
}

/* ---- viktor-nex-panel-api (API mode additions; only new selectors) ---- */
.nex-stub{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;margin:8px 0 0!important;font-size:12.5px}
.nex-stub[hidden]{display:none}
.nex-stub .nex-badge{margin-left:0}
.nex-stub-text{color:var(--ink-2)}
.nex-badge-stub{color:#0a1a36;background:#9cc0ff}
:root[data-theme="light"] .nex-badge-stub{color:#1d3c8f;background:#dbe6ff}

#sessionStatus{flex-wrap:wrap}
#sessionStatus>div{flex:1 1 12rem;min-width:0}
.nex-refresh{margin-left:auto;flex:none}
.nex-refresh[hidden]{display:none}
.nex-refresh[disabled]{opacity:.6;cursor:progress}

.nex-card-pick{margin:0 0 4px;max-width:36rem}
.nex-card-pick[hidden]{display:none}
.nex-select{
  font-size:15px;
  letter-spacing:0!important;
  appearance:auto;
  cursor:pointer;
}
.nex-select[aria-invalid="true"]{border-color:#d6325a;box-shadow:0 0 0 1px #d6325a}
.nex-field-hint-alert{color:var(--warn,#ffc069)!important;font-weight:650}
:root[data-theme="light"] .nex-field-hint-alert{color:#8a5a12!important}

.nex-col-action .nex-row-action+.nex-row-action{margin-left:6px}
.nex-row-select[aria-pressed="true"]{background:var(--glass-strong);border-color:#5b8def;box-shadow:inset 0 0 0 1px #5b8def}
:root[data-theme="light"] .nex-row-select[aria-pressed="true"]{border-color:#2d55c4;box-shadow:inset 0 0 0 1px #2d55c4}
.nex-row.is-selected td{background:rgba(91,141,239,.10)}
:root[data-theme="light"] .nex-row.is-selected td{background:rgba(45,85,196,.07)}

.nex-input-pan{letter-spacing:.08em!important;font-family:var(--num,inherit)}
.nex-input-pan[aria-invalid="true"]{border-color:#d6325a;box-shadow:0 0 0 1px #d6325a}
.nex-field-error{margin:6px 0 0!important;font-size:13px!important;font-weight:650;color:#ff9db0!important}
.nex-field-error[hidden]{display:none}
:root[data-theme="light"] .nex-field-error{color:#b3123a!important}
.nex-dialog-newcard{margin-top:-4px!important}
.nex-dialog-newcard[hidden]{display:none}
.nex-dialog-card[hidden]{display:none}
.nex-closed{margin:0;font-size:13px;color:var(--ink-2)}
.nex-action-card.is-closed{opacity:.85}

@media(max-width:768px){
  .nex-col-action .nex-row-action+.nex-row-action{margin-left:0;margin-top:6px}
  .nex-refresh{margin-left:0;width:100%}
}

/* ---- NPA-11: «Сессия Getnex истекла» (reads answer getnex_session_expired). Only new selectors. ---- */
body[data-getnex="expired"] #sessionStatus,
body[data-getnex="expired"] #sectionTabs,
body[data-getnex="expired"] #sec-cards,
body[data-getnex="expired"] #sec-counters,
body[data-getnex="expired"] #sec-deposit,
body[data-getnex="expired"] #sec-actions{display:none!important}
.nex-expired{
  display:flex;
  align-items:flex-start;
  gap:14px;
  margin:0;
  padding:22px 24px;
  border-radius:20px;
  border:1px solid var(--glass-edge);
  background:var(--glass);
  background-color:rgba(255,255,255,.03);
  color:var(--ink);
  min-width:0;
  max-width:100%;
  box-sizing:border-box;
}
.nex-expired[hidden]{display:none}
:root[data-theme="light"] .nex-expired{background:#fff;border-color:rgba(20,32,80,.1)}
.nex-expired-mark{
  flex:none;
  width:10px;
  height:10px;
  margin-top:8px;
  border-radius:50%;
  background:var(--warn,#ffc069);
  box-shadow:0 0 12px var(--warn,#ffc069);
}
:root[data-theme="light"] .nex-expired-mark{box-shadow:none}
.nex-expired-body{flex:1 1 auto;min-width:0;max-width:60ch}
.nex-expired-title{
  margin:0;
  font-size:18px;
  line-height:1.3;
  font-weight:700;
  letter-spacing:-.01em;
  color:var(--ink);
  border-radius:6px;
}
.nex-expired-title:focus{outline:none}
.nex-expired-title:focus-visible{outline:2px solid #7aa2ff;outline-offset:4px}
:root[data-theme="light"] .nex-expired-title:focus-visible{outline-color:#2d55c4}
.nex-expired-text{margin:8px 0 0;font-size:15px;line-height:1.5;color:var(--ink);overflow-wrap:break-word}
.nex-expired-time{margin:10px 0 0;font-size:13.5px;line-height:1.45;color:var(--ink-2);font-variant-numeric:tabular-nums}
.nex-expired-writes{margin:6px 0 0;font-size:13px;line-height:1.45;color:var(--ink-2);overflow-wrap:break-word}
.nex-expired-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.nex-expired-check[aria-busy="true"]{opacity:.7;cursor:progress}
@media(max-width:768px){
  .nex-expired{padding:18px 16px;gap:12px;border-radius:18px}
  .nex-expired-title{font-size:17px}
  .nex-expired-check{width:100%}
}
@media(prefers-reduced-motion:reduce){
  .nex-expired,.nex-expired *{transition:none!important;animation:none!important}
}
/* NPA-11: the live region repeats the block text — keep it for screen readers, hide it visually while the state is on */
body[data-getnex="expired"] #readStatus{
  position:absolute;
  width:1px;
  height:1px;
  min-height:0;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}
