/* TokenX Host v2 — production stylesheet. Load after existing CSS. Fonts: Manrope, Inter, JetBrains Mono; icons: Font Awesome 6.5 */
:root{
  --tx-red:#E23744;--tx-red-h:#C62A37;--tx-red-d:#B92934;--tx-red-t:#FDEEEF;--tx-red-b:#F5C2C6;--tx-red-s:#FFF8F8;--tx-red-l:#F58A93;--tx-red-c:#F5A3A9;
  --tx-ink:#0F172A;--tx-ink-2:#1E293B;--tx-tv:#0B1220;--tx-tv-card:#131C2E;
  --tx-s700:#334155;--tx-s600:#475569;--tx-s500:#64748B;--tx-s400:#94A3B8;--tx-s300:#CBD5E1;
  --tx-line-in:#E2E8F0;--tx-line:#E5E9F0;--tx-div:#EEF1F5;--tx-bg:#F4F6F9;--tx-inset:#F7F8FA;--tx-chip:#F1F5F9;
  --tx-ok:#24963E;--tx-ok-t:#1B7A33;--tx-ok-b:#E3F9E5;--tx-ok-on-dark:#4ADE80;
  --tx-warn:#9A6700;--tx-warn-t:#6B4E00;--tx-warn-b:#FFF5CC;--tx-warn-bd:#F5D77A;--tx-amber:#F59F00;--tx-noshow:#B45309;
  --tx-err:#B91C1C;--tx-err-b:#FEE2E2;--tx-info:#0E7490;--tx-info-b:#E0F7FA;
  --tx-f-head:Manrope,system-ui,sans-serif;--tx-f-body:Inter,system-ui,sans-serif;--tx-f-mono:'JetBrains Mono',ui-monospace,monospace;
  --tx-r-sm:6px;--tx-r-chip:10px;--tx-r-in:12px;--tx-r-row:14px;--tx-r-card:18px;--tx-r-hero:22px;--tx-r-tile:28px;
  --tx-sh-cta:0 6px 16px rgba(226,55,68,.25);--tx-sh-tile:0 12px 28px rgba(226,55,68,.3);--tx-sh-drawer:-20px 0 40px rgba(15,23,42,.15);
  --tx-side:264px;--tx-rail:84px;--tx-top:68px;--tx-bnav:68px;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--tx-bg);color:var(--tx-ink);font:400 14px/1.45 var(--tx-f-body);-webkit-font-smoothing:antialiased}
a{color:var(--tx-red-h);text-decoration:none}a:hover{color:#9F1F2B}
input,select,textarea,button{font-family:inherit}
@keyframes txUp{from{transform:translateY(16px);opacity:0}to{transform:none;opacity:1}}
@keyframes txPulse{0%{transform:scale(.6);opacity:.9}100%{transform:scale(2.2);opacity:0}}

/* ---------- Shell ---------- */
.tx-app{display:flex;min-height:100vh}
.tx-side{width:var(--tx-side);flex-shrink:0;position:sticky;top:0;height:100vh;background:#fff;border-right:1px solid var(--tx-line);display:flex;flex-direction:column;z-index:40}
.tx-side__brand{height:var(--tx-top);display:flex;align-items:center;gap:10px;padding:0 16px;border-bottom:1px solid var(--tx-div)}
.tx-side__nav{flex:1;overflow-y:auto;overflow-x:hidden;padding:8px 10px;display:flex;flex-direction:column;gap:2px}
.tx-side__group{font:600 10.5px var(--tx-f-mono);letter-spacing:1.2px;color:var(--tx-s400);padding:14px 12px 6px;text-transform:uppercase}
.tx-nav{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:10px;color:var(--tx-s600);font-weight:500;cursor:pointer}
.tx-nav i{width:20px;text-align:center;font-size:15px}
.tx-nav span{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tx-nav.is-active{background:var(--tx-red-t);color:var(--tx-red-h);font-weight:700}
.tx-nav__badge{font-size:10.5px;font-weight:700;background:var(--tx-red);color:#fff;border-radius:999px;padding:1px 7px}
.tx-help{margin:12px;padding:14px;border-radius:14px;background:var(--tx-ink);color:#fff;display:flex;flex-direction:column;gap:8px}
.tx-main{flex:1;min-width:0;display:flex;flex-direction:column}
.tx-top{position:sticky;top:0;z-index:30;height:var(--tx-top);background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--tx-line);display:flex;align-items:center;gap:12px;padding:0 28px}
.tx-top__title{font:800 21px var(--tx-f-head);letter-spacing:-.02em}
.tx-top__sub{font-size:12px;color:var(--tx-s500)}
.tx-content{flex:1;width:100%;max-width:1440px;margin:0 auto;padding:28px 36px 56px;animation:txUp .3s ease}
.tx-bnav{display:none}

@media (max-width:1099px){
  .tx-side{width:var(--tx-rail)}
  .tx-side__group{font-size:0;padding:0;height:1px;width:24px;margin:10px auto;background:var(--tx-line)}
  .tx-side__nav{padding:8px 6px;scrollbar-width:none}
  .tx-nav{flex-direction:column;gap:4px;padding:10px 4px;text-align:center}
  .tx-nav span{font-size:10.5px}
  .tx-nav__badge,.tx-help,.tx-side__switcher,.tx-side__wordmark{display:none}
  .tx-content{padding:22px 24px 48px}
}
@media (max-width:639px){
  .tx-side{display:none}
  .tx-top{padding:0 14px}.tx-top__title{font-size:18px}.tx-top .tx-pill--clock,.tx-top .tx-pill--live{display:none}
  .tx-content{padding:16px 14px calc(96px + env(safe-area-inset-bottom))}
  .tx-bnav{display:flex;position:fixed;left:0;right:0;bottom:0;height:calc(var(--tx-bnav) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:#fff;border-top:1px solid var(--tx-line);z-index:45}
  .tx-bnav a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--tx-s500);font-size:11px;font-weight:500}
  .tx-bnav a i{width:52px;height:28px;border-radius:99px;display:flex;align-items:center;justify-content:center;font-size:16px}
  .tx-bnav a.is-active{color:var(--tx-red-h);font-weight:700}.tx-bnav a.is-active i{background:var(--tx-red-t)}
  .tx-fab{position:fixed;right:16px;bottom:calc(84px + env(safe-area-inset-bottom));z-index:44}
}

/* ---------- Layout helpers ---------- */
.tx-stack{display:flex;flex-direction:column;gap:20px}
.tx-cols{display:flex;flex-wrap:wrap;gap:20px;align-items:flex-start}
.tx-col-main{flex:2 1 540px;min-width:0;display:flex;flex-direction:column;gap:20px}
.tx-col-rail{flex:1 1 300px;min-width:0;display:flex;flex-direction:column;gap:20px}
.tx-grid-auto{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
.tx-grid-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}

/* ---------- Type ---------- */
.tx-h1{margin:4px 0 2px;font:800 28px/1.15 var(--tx-f-head);letter-spacing:-.03em}
.tx-h2{font:800 17px var(--tx-f-head)}
.tx-eyebrow{font:600 11.5px var(--tx-f-mono);letter-spacing:1.2px;color:var(--tx-red-d);text-transform:uppercase}
.tx-muted{color:var(--tx-s500);font-size:12.5px}
.tx-mono{font-family:var(--tx-f-mono)}
.tx-kpi{font:800 26px var(--tx-f-head);letter-spacing:-.02em}

/* ---------- Surfaces ---------- */
.tx-card{background:#fff;border:1px solid var(--tx-line);border-radius:var(--tx-r-card);padding:20px;display:flex;flex-direction:column;gap:14px}
.tx-card--hero{background:var(--tx-ink);color:#fff;border:0;border-radius:var(--tx-r-hero);padding:24px}
.tx-card--tint{background:var(--tx-red-t);border-color:var(--tx-red-b)}
.tx-card--flush{padding:0;overflow:hidden;gap:0}
.tx-inset{background:var(--tx-inset);border-radius:12px;padding:12px 14px}
.tx-banner{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:14px;font-size:13.5px}
.tx-banner--warn{background:var(--tx-warn-b);border:1px solid var(--tx-warn-bd);color:var(--tx-warn-t)}
.tx-banner--info{background:var(--tx-info-b);color:#0E5566}
.tx-banner--brand{background:var(--tx-red-t);border:1px solid var(--tx-red-b);color:#7F1D27}

/* ---------- Buttons ---------- */
.tx-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 16px;border-radius:var(--tx-r-in);border:1px solid var(--tx-line-in);background:#fff;color:var(--tx-ink);font-weight:600;font-size:13.5px;cursor:pointer}
.tx-btn--primary{background:var(--tx-red);border-color:var(--tx-red);color:#fff;box-shadow:var(--tx-sh-cta)}
.tx-btn--primary:hover{background:var(--tx-red-h)}
.tx-btn--dark{background:var(--tx-ink);border-color:var(--tx-ink);color:#fff}
.tx-btn--ghost-dark{background:transparent;border-color:#334155;color:#fff}
.tx-btn--danger{color:var(--tx-err);border-color:var(--tx-red-b)}
.tx-btn--export{color:var(--tx-ok-t);border-color:#BFE5CB;background:#F3FBF5}
.tx-btn--lg{min-height:56px;font-size:16px;font-weight:700;border-radius:14px}
.tx-icon-btn{width:40px;height:40px;border-radius:10px;border:1px solid var(--tx-line-in);background:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}

/* ---------- Chips, pills, tabs ---------- */
.tx-chip{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;padding:3px 9px;border-radius:99px;background:var(--tx-chip);color:var(--tx-s700)}
.tx-chip--ok{background:var(--tx-ok-b);color:var(--tx-ok-t)}
.tx-chip--warn{background:var(--tx-warn-b);color:var(--tx-noshow)}
.tx-chip--err{background:var(--tx-err-b);color:var(--tx-err)}
.tx-chip--info{background:var(--tx-info-b);color:var(--tx-info)}
.tx-chip--brand{background:var(--tx-red-t);color:var(--tx-red-h)}
.tx-tag{font:700 10.5px var(--tx-f-mono);letter-spacing:.5px;padding:3px 8px;border-radius:var(--tx-r-sm)}
.tx-pill{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border-radius:10px;border:1px solid var(--tx-line);background:var(--tx-inset);font-size:13px}
.tx-pill--live{background:var(--tx-ok-b);color:var(--tx-ok-t);border:0;font-weight:600}
.tx-pill--paused{background:var(--tx-warn-b);color:var(--tx-warn);border:0;font-weight:600}
.tx-filter{white-space:nowrap;padding:7px 12px;border-radius:99px;border:1px solid var(--tx-line-in);background:#fff;color:var(--tx-s700);font-size:12.5px;font-weight:600;cursor:pointer}
.tx-filter.is-active{background:var(--tx-ink);border-color:var(--tx-ink);color:#fff}
.tx-seg{display:inline-flex;background:#fff;border:1px solid var(--tx-line-in);border-radius:12px;padding:4px}
.tx-seg>*{padding:9px 16px;border-radius:9px;font-weight:600;font-size:13.5px;color:var(--tx-s600);cursor:pointer}
.tx-seg>.is-active{background:var(--tx-ink);color:#fff}
.tx-tabs{display:flex;gap:4px;background:#fff;border:1px solid var(--tx-line);border-radius:14px;padding:4px;overflow-x:auto}
.tx-tabs>*{flex:1 0 auto;padding:10px 16px;border-radius:10px;white-space:nowrap;font-weight:600;font-size:13.5px;display:flex;align-items:center;justify-content:center;gap:8px;color:var(--tx-s700);cursor:pointer}
.tx-tabs>.is-active{background:var(--tx-red);color:#fff}

/* ---------- Forms ---------- */
.tx-field{display:flex;flex-direction:column;gap:6px}
.tx-label{font-size:11.5px;font-weight:600;color:var(--tx-s500);letter-spacing:.4px;text-transform:uppercase}
.tx-input,.tx-select,.tx-textarea{height:46px;border:1px solid var(--tx-line-in);border-radius:var(--tx-r-in);padding:0 14px;font-size:14.5px;background:var(--tx-inset);color:var(--tx-ink);outline:none;width:100%}
.tx-textarea{height:auto;min-height:90px;padding:12px 14px;resize:vertical}
.tx-input:focus,.tx-select:focus,.tx-textarea:focus{border-color:var(--tx-red);box-shadow:0 0 0 3px rgba(226,55,68,.12);background:#fff}
.tx-hint{font-size:12px;color:var(--tx-s500)}
.tx-switch{width:46px;height:26px;border-radius:99px;background:var(--tx-s300);padding:3px;display:flex;flex-shrink:0;cursor:pointer;transition:background .15s}
.tx-switch::after{content:"";width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.2);transition:transform .15s}
.tx-switch.is-on{background:var(--tx-red)}.tx-switch.is-on::after{transform:translateX(20px)}
.tx-switch--ok.is-on{background:var(--tx-ok)}
.tx-toggle-card{display:flex;gap:14px;align-items:flex-start;padding:14px;background:var(--tx-inset);border:1px solid var(--tx-div);border-radius:14px;cursor:pointer}
.tx-stepper{display:inline-flex;align-items:center;gap:10px}
.tx-stepper button{width:36px;height:36px;border-radius:10px;border:1px solid var(--tx-line-in);background:#fff;cursor:pointer}
.tx-stepper output{font:800 18px var(--tx-f-head);min-width:20px;text-align:center}

/* ---------- Progress ---------- */
.tx-bar{height:6px;background:var(--tx-div);border-radius:99px;overflow:hidden}
.tx-bar>i{display:block;height:100%;background:var(--tx-red);border-radius:99px;min-width:6px}
.tx-bar--lg{height:10px}
.tx-card--hero .tx-bar{background:var(--tx-ink-2);height:8px}

/* ---------- Live queue ---------- */
.tx-token-tile{width:132px;height:132px;border-radius:var(--tx-r-tile);background:var(--tx-red);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:var(--tx-sh-tile);flex-shrink:0}
.tx-token-tile small{font:12px var(--tx-f-mono);letter-spacing:1.5px;opacity:.85}
.tx-token-tile b{font:700 62px/1 var(--tx-f-mono)}
.tx-token-tile--sm{width:108px;height:108px;border-radius:24px;box-shadow:none}.tx-token-tile--sm b{font-size:48px}
.tx-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1px;background:var(--tx-div);border:1px solid var(--tx-div);border-radius:14px;overflow:hidden}
.tx-stats>div{background:var(--tx-inset);padding:12px 14px}
.tx-track{display:flex;flex-direction:column}
.tx-stop{display:flex;gap:14px}
.tx-stop__rail{width:28px;position:relative;display:flex;justify-content:center;flex-shrink:0}
.tx-stop__rail::before{content:"";position:absolute;top:0;bottom:0;width:3px;background:var(--tx-line-in)}
.tx-stop--done .tx-stop__rail::before{background:var(--tx-red)}
.tx-stop--now .tx-stop__rail::before{background:linear-gradient(var(--tx-red) 50%,var(--tx-line-in) 50%)}
.tx-stop__dot{position:relative;margin-top:22px;width:12px;height:12px;border-radius:50%;background:#fff;border:3px solid var(--tx-s300)}
.tx-stop--next .tx-stop__dot{border-color:var(--tx-red)}
.tx-stop--now .tx-stop__dot{width:22px;height:22px;background:var(--tx-red);border:4px solid var(--tx-red-t);box-sizing:content-box}
.tx-stop--now .tx-stop__dot::after{content:"";position:absolute;inset:0;border-radius:50%;background:rgba(226,55,68,.5);animation:txPulse 1.6s ease-out infinite}
.tx-stop__row{flex:1;min-width:0;margin:3px 0;padding:12px 14px;border-radius:14px;border:1px solid var(--tx-div);background:#fff;display:flex;align-items:center;gap:12px;flex-wrap:wrap;cursor:pointer}
.tx-stop--next .tx-stop__row{background:var(--tx-red-s)}
.tx-stop--now .tx-stop__row{background:var(--tx-ink);color:#fff;border:0}
.tx-live-dot{position:relative;width:8px;height:8px;border-radius:50%;background:var(--tx-ok-on-dark)}
.tx-live-dot::after{content:"";position:absolute;inset:0;border-radius:50%;background:inherit;animation:txPulse 1.6s ease-out infinite}

/* ---------- Tables ---------- */
.tx-table-wrap{overflow-x:auto}
.tx-table{width:100%;min-width:820px;border-collapse:collapse;font-size:13.5px}
.tx-table th{text-align:left;padding:12px 20px;background:var(--tx-inset);border-bottom:1px solid var(--tx-div);font:600 11px var(--tx-f-mono);letter-spacing:1px;color:var(--tx-s500);text-transform:uppercase}
.tx-table td{padding:14px 20px;border-bottom:1px solid var(--tx-div);vertical-align:middle}
.tx-pager{display:flex;align-items:center;gap:10px;padding:12px 20px;font-size:12.5px;color:var(--tx-s500)}
.tx-pager .is-active{background:var(--tx-ink);color:#fff;border-radius:8px}

/* ---------- Sheet / drawer / toast ---------- */
.tx-scrim{position:fixed;inset:0;z-index:80;background:rgba(15,23,42,.45)}
.tx-sheet{position:fixed;z-index:81;top:0;right:0;bottom:0;width:460px;max-width:100%;background:#fff;display:flex;flex-direction:column;box-shadow:var(--tx-sh-drawer);animation:txUp .25s ease}
.tx-sheet__head{display:flex;align-items:center;gap:12px;padding:16px 22px;border-bottom:1px solid var(--tx-div)}
.tx-sheet__head h3{flex:1;margin:0;font:800 19px var(--tx-f-head)}
.tx-sheet__body{flex:1;overflow-y:auto;padding:20px 22px;display:flex;flex-direction:column;gap:16px}
.tx-sheet__foot{padding:16px 22px calc(16px + env(safe-area-inset-bottom));border-top:1px solid var(--tx-div);display:flex;gap:10px}
.tx-sheet__foot .tx-btn--primary{flex:1}
@media (max-width:639px){.tx-sheet{top:auto;left:0;width:100%;max-height:90vh;border-radius:24px 24px 0 0}.tx-sheet::before{content:"";width:40px;height:4px;border-radius:99px;background:var(--tx-s300);margin:10px auto 0}}
.tx-toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);background:var(--tx-ink);color:#fff;padding:12px 20px;border-radius:999px;font-size:13.5px;z-index:90;box-shadow:0 10px 24px rgba(15,23,42,.25);display:flex;align-items:center;gap:10px;animation:txUp .25s ease}
.tx-toast i{color:var(--tx-ok-on-dark)}
@media (max-width:639px){.tx-toast{bottom:calc(84px + env(safe-area-inset-bottom))}}

/* ---------- TV display ---------- */
.tx-tv{position:fixed;inset:0;background:var(--tx-tv);color:#fff;display:flex;flex-direction:column;padding:clamp(18px,3vw,44px);gap:clamp(14px,2vw,28px);overflow:auto}
.tx-tv__now{flex:3 1 460px;background:var(--tx-red);border-radius:28px;padding:clamp(24px,3vw,52px);display:flex;flex-direction:column;justify-content:space-between;gap:20px;min-height:320px}
.tx-tv__now.is-paused{background:var(--tx-warn)}
.tx-tv__num{font:700 clamp(120px,16vw,280px)/.9 var(--tx-f-mono);letter-spacing:-.04em}
.tx-tv__next{background:var(--tx-tv-card);border:1px solid var(--tx-ink-2);border-radius:20px;padding:clamp(14px,1.4vw,22px) clamp(18px,1.6vw,26px);display:flex;align-items:center;gap:18px}

/* ---------- Host app additions (shell) – tokens only ---------- */
.tx-brand{display:flex;align-items:center;gap:10px;color:var(--tx-ink)}
.tx-brand img{width:40px;height:40px;border-radius:10px;object-fit:contain}
.tx-brand b{display:block;font:800 20px/1 var(--tx-f-head);letter-spacing:-.02em}
.tx-brand small{display:block;font:600 9.5px var(--tx-f-mono);letter-spacing:2px;color:var(--tx-red-d);margin-top:3px}
.tx-side__switcher{margin:12px 12px 4px;padding:10px 12px;border:1px solid var(--tx-line);background:var(--tx-inset);border-radius:var(--tx-r-row);display:flex;align-items:center;gap:10px}
.tx-side__switcher select{border:0;background:transparent;font:600 13px var(--tx-f-body);width:100%;outline:none;padding:0}
.tx-avatar{width:34px;height:34px;border-radius:50%;background:var(--tx-red);color:#fff;display:inline-flex;align-items:center;justify-content:center;font:800 13px var(--tx-f-head);flex-shrink:0;overflow:hidden}
.tx-avatar--tint{background:var(--tx-red-t);color:var(--tx-red-h)}
.tx-avatar img{width:100%;height:100%;object-fit:cover}
.tx-nav:hover{background:var(--tx-inset);color:var(--tx-ink)}
.tx-nav.is-active:hover{background:var(--tx-red-t);color:var(--tx-red-h)}
.tx-nav__s{display:none}
.tx-help b{font:700 14px var(--tx-f-head)}
.tx-help p{margin:0;font-size:12.5px;color:var(--tx-s300)}
.tx-help .tx-btn{min-height:40px;padding:8px 14px}
.tx-top__spacer{flex:1}
.tx-top__ttl{min-width:0}
.tx-top__ttl>*{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tx-top__brand{display:none}
.tx-top__avatar{border:0;padding:0;cursor:pointer;width:40px;height:40px}
.tx-icon-btn{position:relative;color:var(--tx-ink)}
.tx-icon-btn .tx-dot{position:absolute;top:8px;right:9px;width:8px;height:8px;border-radius:50%;background:var(--tx-red);border:2px solid #fff;box-sizing:content-box;display:none}
.tx-icon-btn.has-dot .tx-dot{display:block}
.tx-live-dot--ok{background:var(--tx-ok)}
.tx-pill--paused .tx-live-dot--ok{background:var(--tx-amber)}
.tx-list{background:#fff;border:1px solid var(--tx-line);border-radius:var(--tx-r-card);overflow:hidden}
.tx-list__row{display:flex;align-items:center;gap:14px;min-height:58px;padding:0 16px;border-top:1px solid var(--tx-div);color:var(--tx-ink);font:600 15.5px var(--tx-f-body);width:100%;background:none;border-left:0;border-right:0;border-bottom:0;text-align:left;cursor:pointer}
.tx-list__row:first-child{border-top:0}
.tx-list__row:hover{color:var(--tx-ink);background:var(--tx-inset)}
.tx-list__ic{width:44px;height:44px;border-radius:var(--tx-r-row);background:var(--tx-red-t);color:var(--tx-red);display:inline-flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}
.tx-list__row>span:not(.tx-list__ic){flex:1}
.tx-list__row>.fa-chevron-right{color:var(--tx-s300);font-size:13px}
.tx-bnav a{text-decoration:none}
@media (max-width:1099px){
  .tx-side__switcher{display:none}
  .tx-nav{overflow:hidden}
  .tx-nav__l{display:none}
  .tx-nav__s{display:block;max-width:100%;flex:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .tx-side__brand{justify-content:center;padding:0}
  .tx-side__brand .tx-brand b,.tx-side__brand .tx-brand small{display:none}
}
@media (max-width:639px){
  .tx-top__brand{display:block}
  .tx-top__brand img{width:34px;height:34px;border:1px solid var(--tx-line);border-radius:var(--tx-r-chip);padding:3px;background:#fff}
}

/* ---------- Live queue page ---------- */
.tx-fab{display:none}
.tx-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:20px}
.tx-toolbar__l,.tx-toolbar__r{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.tx-toolbar__r{margin-left:auto}
.tx-shift{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border-radius:var(--tx-r-in);border:1px solid var(--tx-line-in);background:#fff;color:var(--tx-ink);font-weight:600;font-size:14px;cursor:pointer;text-decoration:none}
.tx-shift:hover{color:var(--tx-ink);border-color:var(--tx-s300)}
.tx-shift.is-active{background:var(--tx-ink);border-color:var(--tx-ink);color:#fff}
.tx-shift .tx-live-dot{background:var(--tx-ok-on-dark)}
.tx-now__top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.tx-now__body{display:flex;gap:22px;align-items:center;flex-wrap:wrap}
.tx-now__name{font:800 28px/1.15 var(--tx-f-head);letter-spacing:-.02em;margin:0}
.tx-now__meta{color:var(--tx-s600);font-size:15px;margin:4px 0 10px}
.tx-now__chips{display:flex;flex-wrap:wrap;gap:8px}
.tx-now__actions{display:flex;gap:10px;flex-wrap:wrap}
.tx-now__actions .tx-btn{min-height:60px;font-size:15px}
.tx-btn--noshow{color:var(--tx-noshow)}
.tx-btn--grow{flex:3 1 220px;font-size:16px;font-weight:700}
.tx-btn--half{flex:1 1 120px}
.tx-btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}
.tx-stats>div b{display:block;font:800 22px var(--tx-f-head);letter-spacing:-.02em}
.tx-stats>div span{font-size:12.5px;color:var(--tx-s500)}
.tx-stats .is-ok b{color:var(--tx-ok-t)}
.tx-chip--mono{font-family:var(--tx-f-mono);font-weight:600;background:var(--tx-chip)}
.tx-filters{display:flex;flex-wrap:wrap;gap:8px}
.tx-q-num{font:700 17px var(--tx-f-mono);min-width:44px}
.tx-stop--now .tx-q-num{background:var(--tx-red);color:#fff;border-radius:8px;padding:4px 8px;min-width:0}
.tx-q-main{flex:1;min-width:150px}
.tx-q-name{font:700 15px var(--tx-f-body)}
.tx-q-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px;align-items:center}
.tx-q-src{font-size:11.5px;font-weight:600;padding:3px 9px;border-radius:99px;background:var(--tx-chip);color:var(--tx-s500)}
.tx-q-alert{font-size:12px;font-weight:600;color:var(--tx-ok-t)}
.tx-q-eta{text-align:right;line-height:1.25}
.tx-q-eta b{display:block;font:700 15px var(--tx-f-mono)}
.tx-q-eta span{font-size:12.5px;color:var(--tx-s500)}
.tx-q-menu{border:0;background:none;color:var(--tx-s400);width:32px;height:44px;cursor:pointer}
.tx-stop--now .tx-q-eta,.tx-stop--now .tx-q-main span{color:var(--tx-s300)}
.tx-stop__tag{font:700 11px var(--tx-f-mono);letter-spacing:1.2px;color:var(--tx-red-l)}
.tx-stop--end .tx-stop__dot{border:0;border-radius:3px;background:var(--tx-ink);width:14px;height:14px;margin-top:6px}
.tx-stop--end .tx-stop__rail::before{display:none}
.tx-stop--fold{cursor:pointer}
.tx-stop--fold .tx-stop__dot{width:22px;height:22px;border:0;background:var(--tx-red);color:#fff;display:flex;align-items:center;justify-content:center;font-size:11px;margin-top:10px}
.tx-stop__txt{flex:1;padding:12px 0;font-size:14px}
.tx-stop--hold .tx-stop__row{background:var(--tx-warn-b);border-color:var(--tx-warn-bd)}
.tx-stop--done .tx-stop__row{background:var(--tx-inset);cursor:default}
.tx-stop--done .tx-q-name{font-weight:600;color:var(--tx-s600)}
.tx-promo{position:relative;border-radius:var(--tx-r-card);overflow:hidden;min-height:220px;display:flex;align-items:flex-end;color:#fff;background:var(--tx-ink) center/cover no-repeat}
.tx-promo::before{content:"";position:absolute;inset:0;background:linear-gradient(transparent 35%,rgba(15,23,42,.9))}
.tx-promo>div{position:relative;padding:18px 20px}
.tx-promo b{display:block;font:800 19px var(--tx-f-head)}
.tx-promo span{font-size:13px;color:var(--tx-s300)}
.tx-promo:hover{color:#fff}
.tx-rowline{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:-4px 0}
.tx-linkbtn{border:0;background:none;padding:6px 0;font-weight:700;color:var(--tx-red-h);cursor:pointer;min-height:44px}
.tx-linkbtn--ok{color:var(--tx-ok-t)}
.tx-bcast{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:48px;padding:0 14px;border:1px solid var(--tx-line-in);border-radius:var(--tx-r-in);background:#fff;font-size:14px;cursor:pointer;text-align:left}
.tx-bcast i{color:var(--tx-s400)}
.tx-ico{width:44px;height:44px;border-radius:var(--tx-r-row);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.tx-ico--ok{background:var(--tx-ok-b);color:var(--tx-ok)}
.tx-ico--err{background:var(--tx-err-b);color:var(--tx-err)}
.tx-ico--warn{background:var(--tx-warn-b);color:var(--tx-noshow)}
.tx-ico--brand{background:var(--tx-red-t);color:var(--tx-red)}
.tx-acts{border:1px solid var(--tx-line);border-radius:var(--tx-r-card);overflow:hidden}
.tx-acts button{display:flex;align-items:center;gap:14px;width:100%;min-height:64px;padding:0 16px;border:0;border-top:1px solid var(--tx-div);background:#fff;font:600 15px var(--tx-f-body);cursor:pointer;text-align:left}
.tx-acts button:first-child{border-top:0}
.tx-acts button:disabled{opacity:.55;cursor:default}
.tx-opts{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.tx-opts button{min-height:52px;border:1px solid var(--tx-line-in);border-radius:var(--tx-r-in);background:#fff;font:600 14.5px var(--tx-f-body);cursor:pointer}
.tx-opts button.is-active{background:var(--tx-ink);border-color:var(--tx-ink);color:#fff}
.tx-tile-id{width:94px;height:94px;border-radius:22px;background:var(--tx-ink);color:#fff;display:flex;align-items:center;justify-content:center;font:700 40px var(--tx-f-mono);flex-shrink:0}
.tx-prefix{display:flex;gap:10px}
.tx-prefix>span{height:46px;min-width:58px;border:1px solid var(--tx-line-in);border-radius:var(--tx-r-in);background:var(--tx-inset);display:flex;align-items:center;justify-content:center;font-weight:600}
.tx-preview{display:flex;align-items:center;gap:14px;padding:18px;border-radius:var(--tx-r-row);background:var(--tx-red-s);border:1px solid var(--tx-red-b)}
.tx-preview b{font:800 30px var(--tx-f-mono);color:var(--tx-red)}
.tx-cam{position:relative;border-radius:var(--tx-r-card);background:repeating-linear-gradient(135deg,var(--tx-ink),var(--tx-ink) 12px,var(--tx-ink-2) 12px,var(--tx-ink-2) 24px);min-height:260px;overflow:hidden}
.tx-cam #reader{width:100%}
.tx-cam__frame{position:absolute;left:50%;top:50%;width:180px;height:180px;margin:-90px 0 0 -90px;border:3px solid #fff;border-radius:18px;pointer-events:none}
.tx-cam__frame::after{content:"";position:absolute;left:8%;right:8%;top:50%;height:2px;background:var(--tx-red);animation:txScan 2s ease-in-out infinite alternate}
@keyframes txScan{from{top:12%}to{top:88%}}
.tx-scanned{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:var(--tx-r-in);background:var(--tx-ok-b);color:var(--tx-ok-t)}
.tx-scanned span:last-child{margin-left:auto;font-size:12.5px;color:var(--tx-s500)}
.tx-empty{text-align:center;padding:36px 16px;color:var(--tx-s500)}
@media (max-width:639px){
  .tx-fab{display:inline-flex;box-shadow:var(--tx-sh-cta)}
  .tx-toolbar__l{flex-wrap:nowrap;overflow-x:auto;width:100%;scrollbar-width:none}
  .tx-toolbar__l .tx-shift{white-space:nowrap;flex-shrink:0}
  .tx-stop__row{flex-wrap:nowrap;gap:8px;padding:10px}
  .tx-q-num{min-width:36px;font-size:15px}
  .tx-q-main{min-width:0}
  .tx-q-eta b{font-size:13px}
  .tx-toolbar__r{margin-left:0;width:100%}
  .tx-now__name{font-size:22px}
  .tx-token-tile{width:108px;height:108px;border-radius:24px}.tx-token-tile b{font-size:50px}
}

/* ---------- TV display extras ---------- */
.tx-tv__head{display:flex;align-items:center;justify-content:space-between;gap:16px}
.tx-tv__brand{display:flex;align-items:center;gap:clamp(12px,1.4vw,22px);min-width:0}
.tx-tv__logo{font:800 clamp(26px,3vw,44px) var(--tx-f-head);letter-spacing:-.03em}
.tx-tv__logo b{color:var(--tx-red)}
.tx-tv__sep{width:1px;align-self:stretch;background:var(--tx-ink-2)}
.tx-tv__clinic{font:700 clamp(16px,1.6vw,24px) var(--tx-f-head)}
.tx-tv__sub{font-size:clamp(12px,1.1vw,17px);color:var(--tx-s400)}
.tx-tv__clock{display:flex;align-items:center;gap:16px;font:500 clamp(24px,3vw,44px) var(--tx-f-mono)}
.tx-tv__close{width:clamp(40px,3.4vw,56px);height:clamp(40px,3.4vw,56px);border-radius:14px;border:0;background:var(--tx-ink-2);color:var(--tx-s400);font-size:18px;cursor:pointer}
.tx-tv__mid{display:flex;gap:clamp(16px,2.4vw,40px);flex:1;min-height:0;flex-wrap:wrap}
.tx-tv__eyebrow{font:600 clamp(13px,1.3vw,20px) var(--tx-f-mono);letter-spacing:.3em;text-transform:uppercase}
.tx-tv__now .tx-tv__eyebrow{opacity:.9}
.tx-tv__msg{font:800 clamp(20px,2.4vw,38px) var(--tx-f-head);display:flex;align-items:center;gap:14px}
.tx-tv__side{flex:2 1 320px;display:flex;flex-direction:column;gap:clamp(10px,1.2vw,18px)}
.tx-tv__side .tx-tv__eyebrow{color:var(--tx-s400);margin-bottom:4px}
.tx-tv__next{flex:1;max-height:200px}
.tx-tv__next b{font:700 clamp(40px,5vw,84px)/1 var(--tx-f-mono);min-width:1.6em}
.tx-tv__next .st{flex:1;font-size:clamp(16px,1.7vw,26px);color:var(--tx-s300)}
.tx-tv__next .eta{font:600 clamp(16px,1.7vw,26px) var(--tx-f-mono);color:var(--tx-red-l)}
.tx-tv__foot{display:flex;align-items:center;gap:clamp(14px,1.6vw,26px);padding:clamp(12px,1.2vw,20px) clamp(16px,1.6vw,26px);border-radius:20px;background:var(--tx-tv-card);border:1px solid var(--tx-ink-2)}
.tx-tv__qr{width:clamp(72px,7vw,120px);height:clamp(72px,7vw,120px);border-radius:16px;background:#fff;padding:8px;flex-shrink:0}
.tx-tv__qr img{width:100%;height:100%}
.tx-tv__foot b{display:block;font:800 clamp(18px,2vw,32px) var(--tx-f-head)}
.tx-tv__foot span{color:var(--tx-s400);font-size:clamp(13px,1.2vw,19px)}
.tx-tv__off{position:fixed;inset:0;z-index:99;background:rgba(11,18,32,.96);display:none;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center}
.tx-tv__off b{font:800 clamp(24px,3vw,44px) var(--tx-f-head)}
.tx-tv__empty{color:var(--tx-s400);font-size:clamp(16px,1.6vw,24px);padding:20px 4px}

/* ---------- Home ---------- */
.tx-home-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px}
.tx-home-head .tx-h1{font-size:34px}
.tx-hero__top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.tx-livepill{display:inline-flex;align-items:center;gap:8px;padding:7px 14px;border-radius:99px;background:rgba(36,150,62,.18);color:var(--tx-ok-on-dark);font:700 13px var(--tx-f-body);letter-spacing:.5px;text-transform:uppercase}
.tx-livepill .tx-live-dot{background:var(--tx-ok-on-dark)}
.tx-livepill.is-paused{background:rgba(245,159,0,.18);color:var(--tx-amber)}
.tx-livepill.is-paused .tx-live-dot{background:var(--tx-amber)}
.tx-livepill.is-idle{background:var(--tx-ink-2);color:var(--tx-s300)}
.tx-livepill.is-idle .tx-live-dot{display:none}
.tx-hero__body{display:flex;flex-wrap:wrap;align-items:center;gap:22px;margin:20px 0}
.tx-hero__who{flex:1;min-width:200px}
.tx-hero__who small{font:600 11.5px var(--tx-f-mono);letter-spacing:1.5px;color:var(--tx-red-l)}
.tx-hero__who b{display:block;font:800 28px/1.15 var(--tx-f-head);letter-spacing:-.02em;margin:4px 0}
.tx-hero__who span{color:var(--tx-s300);font-size:15px}
.tx-hero__stats{display:flex;gap:12px;flex-wrap:wrap}
.tx-hero__stats>div{background:var(--tx-ink-2);border-radius:14px;padding:12px 18px;min-width:96px}
.tx-hero__stats b{display:block;font:800 24px var(--tx-f-head)}
.tx-hero__stats span{font-size:12.5px;color:var(--tx-s400)}
.tx-hero__prog{display:flex;justify-content:space-between;font-size:14px;color:var(--tx-s300);margin-bottom:8px}
.tx-hero__cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}
.tx-hero__cta .tx-btn{min-height:56px;font-size:15.5px;font-weight:700;border-radius:14px}
.tx-hero__cta .tx-btn--primary{flex:1.4 1 220px}
.tx-hero__cta .tx-btn--ghost-dark{flex:1 1 180px}
.tx-qa{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.tx-qa a,.tx-qa button{display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding:16px;border:1px solid var(--tx-line);border-radius:var(--tx-r-row);background:#fff;color:var(--tx-ink);text-align:left;cursor:pointer;font:inherit;min-height:44px}
.tx-qa a:hover,.tx-qa button:hover{border-color:var(--tx-red-b);color:var(--tx-ink)}
.tx-qa .ic{width:42px;height:42px;border-radius:var(--tx-r-in);background:var(--tx-red-t);color:var(--tx-red);display:flex;align-items:center;justify-content:center;font-size:17px}
.tx-qa b{display:block;font:700 15px var(--tx-f-head)}
.tx-qa span.s{font-size:13px;color:var(--tx-s500)}
.tx-shifts{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
.tx-shiftcard{display:block;padding:16px;border:1px solid var(--tx-line);border-radius:var(--tx-r-row);background:#fff;color:var(--tx-ink)}
.tx-shiftcard:hover{color:var(--tx-ink)}
.tx-shiftcard.is-live{background:var(--tx-red-s);border-color:var(--tx-red-b)}
.tx-shiftcard.is-off{opacity:.65;cursor:not-allowed}
.tx-shiftcard__top{display:flex;justify-content:space-between;align-items:center;font:600 11.5px var(--tx-f-mono);letter-spacing:1.5px;color:var(--tx-s500)}
.tx-shiftcard__time{font:800 22px var(--tx-f-head);margin:10px 0 12px;letter-spacing:-.01em}
.tx-shiftcard__foot{font-size:13px;color:var(--tx-s500);margin-top:10px}
.tx-shiftcard .tx-bar>i{background:var(--tx-s500)}
.tx-shiftcard.is-live .tx-bar{background:var(--tx-red-b)}
.tx-shiftcard.is-live .tx-bar>i{background:var(--tx-red)}
.tx-check{display:flex;align-items:center;gap:12px;padding:8px 0;font-size:15px}
.tx-check .box{width:24px;height:24px;border-radius:50%;border:2px solid var(--tx-s300);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:12px;color:#fff}
.tx-check.is-done .box{background:var(--tx-ok);border-color:var(--tx-ok)}
.tx-check.is-done .t{text-decoration:line-through;color:var(--tx-s500)}
.tx-check .t{flex:1}
.tx-check a,.tx-check button{border:0;background:none;padding:6px 0;color:var(--tx-red-h);font-weight:700;font-size:14px;cursor:pointer}
.tx-card--green .tx-bar>i{background:var(--tx-ok)}
.tx-boost{display:flex;align-items:center;gap:10px;padding:12px;background:var(--tx-inset);border-radius:var(--tx-r-in);font-size:13px}
.tx-boost>span{flex:1;min-width:0}
.tx-boost i{color:var(--tx-amber)}
.tx-boost b{font-weight:800}
.tx-boost a{margin-left:auto;font-weight:700}
.tx-code{display:flex;gap:10px}
.tx-code>div{flex:1;min-width:0;height:48px;border:1.5px dashed var(--tx-line-in);border-radius:var(--tx-r-in);background:var(--tx-inset);display:flex;align-items:center;padding:0 16px;font:600 16px var(--tx-f-mono);letter-spacing:1px}
.tx-wa-btn{width:48px;height:48px;border-radius:var(--tx-r-in);border:0;background:var(--tx-ok);color:#fff;font-size:20px;display:flex;align-items:center;justify-content:center}
.tx-wa-btn:hover{color:#fff}
.tx-kiosk{flex-direction:row;flex-wrap:wrap;align-items:stretch}
.tx-kiosk img{flex:1 1 260px;width:0;min-width:200px;max-height:340px;object-fit:cover;min-height:220px}
.tx-kiosk>div{flex:1 1 260px;padding:26px;display:flex;flex-direction:column;gap:12px;justify-content:center}
@media (max-width:639px){.tx-home-head .tx-h1{font-size:26px}.tx-hero__who b{font-size:22px}}

/* ---------- Schedule ---------- */
.tx-sched-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}
.tx-sched-bar .tx-seg>a{display:block;color:var(--tx-s600)}
.tx-sched-bar .tx-seg>a.is-active{background:var(--tx-ink);color:#fff}
.tx-sched-bar__r{display:flex;gap:10px;flex-wrap:wrap}
.tx-daystrip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:12px;margin-bottom:20px}
.tx-day{display:flex;flex-direction:column;align-items:center;gap:2px;padding:14px 6px;min-height:92px;border:1px solid var(--tx-line);border-radius:var(--tx-r-card);background:#fff;color:var(--tx-ink);cursor:pointer;font:inherit}
.tx-day small{font:600 11.5px var(--tx-f-mono);letter-spacing:1.5px;color:var(--tx-s500)}
.tx-day b{font:800 26px var(--tx-f-head);letter-spacing:-.02em}
.tx-day span{font-size:12.5px;color:var(--tx-s500)}
.tx-day.is-leave span{color:var(--tx-noshow);font-weight:600}
.tx-day.is-active{background:var(--tx-red);border-color:var(--tx-red);color:#fff}
.tx-day.is-active small,.tx-day.is-active span{color:rgba(255,255,255,.85)}
.tx-daygroup{padding:20px 22px;gap:12px}
.tx-daygroup__head{display:flex;justify-content:space-between;align-items:center;font:600 13px var(--tx-f-mono);letter-spacing:1.5px;color:var(--tx-s700);text-transform:uppercase}
.tx-daygroup__head span{font:500 13.5px var(--tx-f-body);letter-spacing:0;text-transform:none;color:var(--tx-s500)}
.tx-srow{display:flex;flex-wrap:wrap;align-items:center;gap:14px 20px;padding:14px 16px;border:1px solid var(--tx-div);border-radius:var(--tx-r-row);background:var(--tx-inset)}
.tx-srow__t{flex:1 1 230px;min-width:0}
.tx-srow__t b{font:800 19px var(--tx-f-head);letter-spacing:-.01em;margin-right:8px}
.tx-srow__t div{font-size:13.5px;color:var(--tx-s500);margin-top:3px}
.tx-srow__bar{flex:1 1 200px;min-width:160px}
.tx-srow__bar>div{display:flex;justify-content:space-between;font-size:13.5px;color:var(--tx-s600);margin-bottom:6px}
.tx-srow__bar .tx-bar>i{background:var(--tx-s500)}
.tx-srow.is-live .tx-srow__bar .tx-bar>i{background:var(--tx-red)}
.tx-srow__act{display:flex;gap:8px}
.tx-sq{width:44px;height:44px;border-radius:var(--tx-r-in);border:1px solid var(--tx-line);background:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-size:15px;color:var(--tx-red)}
.tx-sq--ok{background:var(--tx-ok-b);border-color:#BFE5CB;color:var(--tx-ok-t)}
.tx-sq:disabled{opacity:.4;cursor:not-allowed}
.tx-leaveblock{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:16px;border-radius:var(--tx-r-row);background:repeating-linear-gradient(135deg,var(--tx-inset),var(--tx-inset) 10px,#EEF1F5 10px,#EEF1F5 20px);font-size:15px}
.tx-leaveblock .grow{flex:1;min-width:200px}
.tx-leaveblock .muted{color:var(--tx-s500)}
.tx-weekstat{display:flex;gap:26px;flex-wrap:wrap}
.tx-weekstat b{display:block;font:800 30px var(--tx-f-head)}
.tx-weekstat span{color:var(--tx-s400);font-size:13.5px}
.tx-tip{display:flex;gap:12px;align-items:flex-start;line-height:1.5}
.tx-tip i{color:var(--tx-amber);font-size:20px;margin-top:2px}
.tx-wrow{display:flex;align-items:center;gap:18px;padding:16px 22px;border-top:1px solid var(--tx-div);min-height:76px}
.tx-wrow:first-child{border-top:0}
.tx-wrow__d{width:130px;flex-shrink:0}
.tx-wrow__d b{display:block;font:800 17px var(--tx-f-head)}
.tx-wrow__d span{font-size:13.5px;color:var(--tx-s500)}
.tx-wrow__c{flex:1;display:flex;flex-wrap:wrap;gap:12px;align-items:center;min-width:0}
.tx-wchip{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:8px 16px;border-radius:var(--tx-r-row);background:var(--tx-red-s);border:1px solid var(--tx-red-b);cursor:pointer;font:700 15px var(--tx-f-head);color:var(--tx-ink)}
.tx-wchip em{font:500 13px var(--tx-f-mono);font-style:normal;color:var(--tx-red)}
.tx-wchip .tx-tag{background:var(--tx-ink);color:#fff;padding:3px 8px}
.tx-wchip .tx-tag--mon{background:var(--tx-red)}
.tx-wplus{width:44px;height:44px;border-radius:var(--tx-r-in);border:1.5px dashed var(--tx-s300);background:none;color:var(--tx-s500);font-size:16px;cursor:pointer;flex-shrink:0}
.tx-wplus:hover{border-color:var(--tx-red);color:var(--tx-red)}
.tx-wclosed{color:var(--tx-s400);font-size:15px}
.tx-explain{display:flex;flex-direction:column;gap:12px}
.tx-explain div{display:flex;gap:12px;align-items:flex-start;font-size:14.5px;line-height:1.45}
.tx-explain .tx-tag{background:var(--tx-ink);color:#fff;flex-shrink:0;margin-top:1px}
.tx-explain .tx-tag--mon{background:var(--tx-red)}
@media (max-width:1099px){.tx-daystrip{gap:8px}}
@media (max-width:639px){
  .tx-daystrip{display:flex;overflow-x:auto;scrollbar-width:none;margin:0 -14px 20px;padding:0 14px}
  .tx-day{flex:0 0 84px}
  .tx-wrow{flex-wrap:wrap;padding:14px 16px;gap:10px}
  .tx-wrow__d{width:100%;display:flex;gap:10px;align-items:baseline}
  .tx-sched-bar__r{width:100%}
  .tx-sched-bar__r .tx-btn{flex:1}
}

/* Shell live pill + queue badge (v2) */
.tx-top-pill--live{background:#E3F9E5;border-color:#BFE8C5;color:#1B7A33;font-weight:600;text-decoration:none}
.tx-top-pill--live.is-paused{background:#FFF5CC;border-color:#F5D77A;color:#9A6700}
.tx-top-pill--live.is-paused .tx-live-dot{animation:none;background:#9A6700}
.tx-nav-badge{margin-left:auto;min-width:22px;height:22px;padding:0 7px;border-radius:99px;background:#E23744;color:#fff;font:700 12px/22px var(--tx-f-body,Inter,sans-serif);text-align:center}

/* Analytics (v2) */
.tx-kgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
.tx-kgrid--3{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.tx-kcard{background:#fff;border:1px solid var(--tx-line,#E5E9F0);border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:6px}
.tx-kcard--row{flex-direction:row;align-items:center;gap:14px;padding:16px 18px}
.tx-kcard__l{font-size:12.5px;color:#64748B;display:flex;align-items:center;gap:8px}
.tx-kcard__l i{color:#E23744}
.tx-kcard__s{font-size:12px;font-weight:600}
.tx-kcard__ic{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}
.tx-tblhead{display:flex;align-items:center;gap:10px;padding:16px 20px;border-bottom:1px solid #EEF1F5;flex-wrap:wrap}
.tx-pager{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 20px;font-size:13px;color:#64748B;flex-wrap:wrap}
.tx-pager .tx-btn{min-height:36px;padding:6px 14px}
.tx-row{display:flex;flex-wrap:wrap;gap:20px;align-items:stretch}
.tx-grow2{flex:2 1 520px;min-width:0}.tx-grow1{flex:1 1 280px;min-width:0}
.tx-card--dark{background:#0F172A;color:#fff;border-color:#0F172A}
.tx-bars{height:220px;display:flex;align-items:flex-end;gap:6px;border-bottom:1px solid #EEF1F5}
.tx-bar2{flex:1;display:flex;flex-direction:column;justify-content:flex-end;height:100%;gap:2px}
.tx-bar2 i{display:block;min-height:0}
.tx-axis{display:flex;justify-content:space-between;font:500 11px var(--tx-f-mono,'JetBrains Mono',monospace);color:#94A3B8}
.tx-legend{display:flex;gap:14px;align-items:center;font-size:12px;color:#475569}
.tx-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px}
.tx-heat{display:grid;gap:4px;align-items:center;font:500 10.5px var(--tx-f-mono,'JetBrains Mono',monospace);color:#94A3B8}
.tx-heat b{font:600 11.5px var(--tx-f-body,Inter,sans-serif);color:#64748B}
.tx-heat__c{height:24px;border-radius:6px}
.tx-split{display:flex;height:12px;border-radius:99px;overflow:hidden}
.tx-splitlbl{display:flex;flex-wrap:wrap;gap:14px;font-size:13px;color:#475569}.tx-splitlbl b{color:#0F172A}
.tx-utilbar{display:inline-block;width:90px;height:6px;border-radius:99px;background:#EEF1F5;margin-right:8px;vertical-align:middle;overflow:hidden}
.tx-utilbar i{display:block;height:100%;background:#E23744}
.tx-mono{font-family:var(--tx-f-mono,'JetBrains Mono',monospace)}
.tx-chip--info{background:#E0F7FA;color:#0E7490}
@media (max-width:639px){.tx-tabs{overflow-x:auto}.tx-tblhead{padding:14px 16px}}

/* Billing (v2) */
.tx-rupee{width:40px;height:40px;border-radius:12px;background:#E23744;color:#fff;display:inline-flex;align-items:center;justify-content:center;font:800 16px var(--tx-f-head,Manrope,sans-serif);flex-shrink:0}
.tx-bgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}
.tx-bcard{background:#fff;border:1px solid var(--tx-line,#E5E9F0);border-radius:22px;padding:24px;display:flex;flex-direction:column;gap:14px}
.tx-bcard--dark{background:#0F172A;color:#fff;border-color:#0F172A}
.tx-bplan{font:800 28px var(--tx-f-head,Manrope,sans-serif);letter-spacing:-.02em}
.tx-bprice{font:800 24px var(--tx-f-head,Manrope,sans-serif)}
.tx-bbig{font:800 34px/1 var(--tx-f-head,Manrope,sans-serif)}
.tx-badge-ok{font-size:10.5px;font-weight:700;background:#24963E;color:#fff;padding:2px 8px;border-radius:6px}
.tx-badge-warn{font-size:11px;font-weight:700;color:#9A6700;background:#FFF5CC;padding:3px 8px;border-radius:6px}
.tx-note{display:flex;align-items:center;gap:12px;padding:12px;border-radius:12px;font-size:13px;line-height:1.5}
.tx-note--ok{background:#E7F6EC}.tx-note--ok i{color:#1B7A33}

/* Auth pages (v2): split layout, hero hidden under 640px, 400px form column */
.tx-auth{display:flex;min-height:100vh;background:#fff;font-family:var(--tx-f-body,Inter,sans-serif);color:#0F172A}
.tx-auth__hero{flex:1 1 50%;position:relative;background:#0F172A center/cover no-repeat;display:flex;align-items:flex-end;color:#fff;min-height:100vh}
.tx-auth__hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,23,42,0) 30%,rgba(15,23,42,.92) 100%)}
.tx-auth__hero>div{position:relative;z-index:1;padding:clamp(28px,4vw,56px);max-width:640px}
.tx-auth__hero small{font:600 12px var(--tx-f-mono,'JetBrains Mono',monospace);letter-spacing:1.5px;color:#F58A93;text-transform:uppercase}
.tx-auth__hero h2{font:800 clamp(26px,2.6vw,36px)/1.15 var(--tx-f-head,Manrope,sans-serif);letter-spacing:-.02em;margin:12px 0}
.tx-auth__hero p{color:#CBD5E1;font-size:15px;margin:0}
.tx-auth__col{flex:1 1 50%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 20px;gap:24px}
.tx-auth__box{width:100%;max-width:400px;display:flex;flex-direction:column;gap:18px}
.tx-auth__brand{display:flex;align-items:center;gap:10px;font:800 20px var(--tx-f-head,Manrope,sans-serif)}
.tx-auth__brand img{width:36px;height:36px}
.tx-auth__brand span{font:700 10.5px var(--tx-f-mono,'JetBrains Mono',monospace);letter-spacing:1px;background:#0F172A;color:#fff;padding:3px 7px;border-radius:6px}
.tx-auth h1{font:800 28px var(--tx-f-head,Manrope,sans-serif);letter-spacing:-.03em;margin:0}
.tx-auth__sub{color:#64748B;font-size:14px;margin-top:-10px}
.tx-auth .tx-seg{align-self:flex-start;width:100%}
.tx-auth .tx-seg>*{flex:1;text-align:center;cursor:pointer;border:0;background:none}
.tx-auth__in{position:relative}
.tx-auth__in input,.tx-auth__in .form-control-enterprise{width:100%;height:52px;border:1px solid #E2E8F0;border-radius:12px;padding:0 44px 0 14px;font-size:15px;background:#F7F8FA;outline:none}
.tx-auth__in input:focus{border-color:#E23744;background:#fff;box-shadow:0 0 0 4px #FDEEEF}
.tx-auth__eye{position:absolute;right:6px;top:6px;width:40px;height:40px;border:0;background:none;color:#94A3B8;cursor:pointer}
.tx-auth__lbl{display:flex;justify-content:space-between;font-size:13px;font-weight:600;margin-bottom:6px}
.tx-auth__lbl a{color:#E23744;text-decoration:none}
.tx-auth__cta{height:54px;border:0;border-radius:14px;background:#E23744;color:#fff;font:700 16px var(--tx-f-body,Inter,sans-serif);box-shadow:0 8px 20px rgba(226,55,68,.25);cursor:pointer;width:100%}
.tx-auth__cta:disabled{opacity:.6;cursor:default}
.tx-auth__card{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1px solid #E5E9F0;border-radius:16px;text-decoration:none;color:#0F172A}
.tx-auth__card i:first-child{width:40px;height:40px;border-radius:12px;background:#FDEEEF;color:#E23744;display:flex;align-items:center;justify-content:center}
.tx-auth__card div{flex:1}.tx-auth__card b{display:block}.tx-auth__card span{font-size:12.5px;color:#64748B}
.tx-auth__err{color:#B91C1C;font-size:13px;font-weight:600;min-height:18px}
.tx-auth__foot{font-size:12px;color:#94A3B8;text-align:center}.tx-auth__foot a{color:#64748B}
@media (max-width:639px){.tx-auth__hero{display:none}.tx-auth__col{justify-content:flex-start;padding-top:40px}}

/* Legacy auth pages (sign-up, verify, forget-password) adopt the v2 split layout without touching their forms */
body .brand-panel{background:linear-gradient(180deg,rgba(15,23,42,.05) 20%,rgba(15,23,42,.92) 100%),url('../assets/img/tokenx-v2/img-reception.png') center/cover no-repeat!important;border:0!important;justify-content:flex-end!important;align-items:flex-start!important;text-align:left!important;min-height:100vh}
body .brand-panel *{color:#fff!important;text-align:left!important}
body .brand-panel .rounded-circle,body .brand-panel .mb-4.d-inline-flex{display:none!important}
body .brand-panel h2{font:800 clamp(26px,2.6vw,36px)/1.15 var(--tx-f-head,Manrope,sans-serif)!important;letter-spacing:-.02em}
body .brand-panel p{color:#CBD5E1!important}
body .auth-title{font-family:var(--tx-f-head,Manrope,sans-serif)!important;font-weight:800!important;font-size:28px!important;letter-spacing:-.03em}
body .btn-brand{height:54px;border-radius:14px!important;font-weight:700!important;box-shadow:0 8px 20px rgba(226,55,68,.25)!important}
body .auth-input-group{min-height:52px;border-radius:12px!important;background:#F7F8FA!important;border-color:#E2E8F0!important}
body .form-wrapper::before{content:"TokenX  HOST";display:block;padding-left:46px;margin-bottom:22px;height:36px;line-height:36px;font:800 20px var(--tx-f-head,Manrope,sans-serif);background:url('../assets/img/tokenx-v2/logo-mark.png') left center/36px no-repeat}
body .form-wrapper::after{content:"A unit of Onsys Infotech \00B7 Privacy \00B7 Terms";display:block;margin-top:28px;text-align:center;font-size:12px;color:#94A3B8}
@media (max-width:991px){body .brand-panel{display:none!important}}

/* Tab bar built from <button>s (Analytics): no native border/background, equal-width cells */
.tx-tabs>button{border:0!important;background:transparent!important;box-shadow:none!important;font-family:inherit}
.tx-tabs>button:hover:not(.is-active){background:#F7F8FA!important}
.tx-tabs>button.is-active{background:var(--tx-red)!important;color:#fff!important}
.tx-tabs>button i{font-size:14px}

/* Analytics: vertical rhythm between sections (prototype uses 20px) */
.tx-page{display:flex;flex-direction:column;gap:20px}
#panel{display:flex;flex-direction:column;gap:20px}
#panel>.tx-kgrid,#panel>.tx-row,#panel>.tx-card{margin:0}
.tx-row>.tx-card{display:flex;flex-direction:column;gap:14px;padding:20px}

/* Billing: smaller dialogs (booster, calculator, confirm) share the v2 look */
.modal-overlay .modal-content{border-radius:22px!important;border:0!important;box-shadow:0 24px 56px rgba(15,23,42,.22)!important}
.modal-overlay .modal-title{font-family:var(--tx-f-head,Manrope,sans-serif)!important;font-weight:800!important;letter-spacing:-.02em}
.modal-overlay .booster-opt{border-radius:14px!important;border:1.5px solid #E2E8F0!important;background:#fff!important;color:#0F172A!important}
.modal-overlay .booster-opt.btn-danger{border-color:#E23744!important;background:#FFF8F8!important}
.modal-overlay .btn-primary{min-height:50px;border-radius:14px!important;font-weight:700}
.modal-overlay .btn-secondary{min-height:50px;border-radius:14px!important;background:#fff!important;color:#0F172A!important;border:1px solid #E2E8F0!important;font-weight:600}
