/* ARIA Console — production stylesheet
   Source of truth: handoff/ARIA-Console-Handoff.md + handoff/aria-console-tokens.css
   Tokens + shell/component classes below are copied from the frozen handoff token sheet.
   Everything after the "additional components" marker implements handoff §3 component
   descriptions that were not yet present in that file, using only the tokens above —
   nothing here introduces a new color, radius or type size. */

:root{
  /* ground + surfaces */
  --navy:#050C1A;
  --navy-2:#070F1E;
  --surface:rgba(255,255,255,.035);
  --surface-hover:rgba(255,255,255,.05);
  --surface-row-hover:rgba(255,255,255,.03);
  --surface-selected:rgba(244,115,33,.08);
  --rail-bg:rgba(5,12,26,.96);
  --topbar-bg:rgba(7,15,30,.6);
  --scrim:rgba(3,7,15,.6);

  /* accents */
  --orange:#F47321;
  --orange-2:#C85C14;
  --gold:#E0AA3E;
  --cyan:#38BDF8;
  --mint:#3FBF88;
  --rose:#E8543F;

  /* text */
  --t1:#FFFFFF;
  --t2:rgba(255,255,255,.74);
  --t3:rgba(255,255,255,.46);
  --on-accent:#FFFFFF;
  --on-gold:#0B0F17;

  /* text on tinted fills */
  --text-danger:#FFD9D3;
  --text-danger-soft:#FFB4A8;
  --text-success:#CFF3E3;
  --text-success-soft:#8FE3BE;

  /* status tints */
  --tint-danger:rgba(232,84,63,.10);
  --tint-danger-strong:rgba(232,84,63,.16);
  --tint-success:rgba(63,191,136,.10);
  --tint-warning:rgba(224,170,62,.10);
  --tint-info:rgba(56,189,248,.12);
  --tint-accent:rgba(244,115,33,.12);

  /* borders */
  --line:rgba(244,115,33,.20);
  --line-2:rgba(255,255,255,.09);
  --line-dashed:rgba(255,255,255,.16);
  --border-danger:rgba(232,84,63,.34);
  --border-success:rgba(63,191,136,.30);
  --border-warning:rgba(224,170,62,.32);
  --border-focus:rgba(244,115,33,.55);

  /* radii */
  --r-xs:5px; --r-sm:6px; --r-md:9px; --r-lg:10px;
  --r-xl:11px; --r-2xl:14px; --r-3xl:18px; --r-pill:999px;

  /* spacing */
  --s-1:3px;  --s-2:6px;  --s-3:8px;  --s-4:10px; --s-5:12px;
  --s-6:14px; --s-7:16px; --s-8:18px; --s-9:20px; --s-10:22px;
  --s-11:26px;--s-12:32px;--s-13:40px;--s-14:52px;--s-15:64px;

  /* elevation */
  --glow-accent:0 0 28px rgba(244,115,33,.28);
  --ring-focus:0 0 0 3px rgba(244,115,33,.11);
  --ring-danger:0 0 0 3px rgba(232,84,63,.10);

  /* type */
  --sans:'Plus Jakarta Sans',system-ui,sans-serif;
  --mono:'JetBrains Mono',ui-monospace,monospace;

  /* layout */
  --rail-w:248px;
  --rail-drawer-w:272px;
  --topbar-h:64px;
  --topbar-h-mobile:56px;
  --drawer-w:440px;
  --page-pad:var(--s-11);
  --page-pad-mobile:var(--s-8) var(--s-7) var(--s-13);
  --table-min-w:720px;
}

/* ---------- base ---------- */

*{box-sizing:border-box}
[hidden]{display:none !important}

body{
  margin:0;
  background:var(--navy);
  color:var(--t1);
  font-family:var(--sans);
  -webkit-font-smoothing:antialiased;
}

a{color:var(--orange);text-decoration:none}
a:hover{color:var(--gold)}

:focus-visible{outline:2px solid var(--orange);outline-offset:2px}

::selection{background:rgba(244,115,33,.28)}

@keyframes rtaBlink{0%,100%{opacity:1}50%{opacity:.25}}
@keyframes rtaShimmer{0%{opacity:.35}50%{opacity:.7}100%{opacity:.35}}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important}
}

/* ---------- type roles ---------- */

.t-page-title{font:800 17px/1.2 var(--sans);letter-spacing:-.015em;color:var(--t1)}
.t-screen-head{font:800 22px/1.2 var(--sans);letter-spacing:-.02em;color:var(--t1)}
.t-card-title{font:800 15.5px/1.25 var(--sans);color:var(--t1)}
.t-metric{font:800 30px/1 var(--sans);letter-spacing:-.02em;color:var(--t1)}
.t-metric--dense{font-size:28px}
.t-body{font:400 13.5px/1.6 var(--sans);color:var(--t2)}
.t-meta{font:400 12.5px/1.5 var(--sans);color:var(--t3)}
.t-label{font:500 9.5px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--t3)}
.t-section-label{font:500 9px/1 var(--mono);letter-spacing:.15em;text-transform:uppercase;color:var(--t3)}
.t-num{font:600 13px/1 var(--mono);color:var(--t1)}
.t-footnote{font:400 10.5px/1.6 var(--mono);letter-spacing:.07em;color:var(--t3)}

/* ---------- shell ---------- */

.shell{min-height:100vh;display:grid;grid-template-columns:var(--rail-w) minmax(0,1fr)}

.rail{
  position:sticky;top:0;height:100vh;
  display:flex;flex-direction:column;gap:var(--s-10);
  padding:var(--s-9) var(--s-6);
  background:var(--rail-bg);
  border-right:1px solid var(--line);
}
.rail__nav{flex:1;min-height:0;display:flex;flex-direction:column;gap:2px;overflow-y:auto;
  scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.16) transparent}
.rail__nav::-webkit-scrollbar{width:5px}
.rail__nav::-webkit-scrollbar-track{background:transparent}
.rail__nav::-webkit-scrollbar-thumb{background:rgba(255,255,255,.14);border-radius:3px}
.rail__nav:hover::-webkit-scrollbar-thumb{background:rgba(255,255,255,.24)}
.rail__footer{margin-top:auto;display:flex;flex-direction:column;gap:var(--s-5)}

.nav-item{
  display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);
  padding:var(--s-4) 11px;border:1px solid transparent;border-radius:var(--r-md);
  font:700 13px/1 var(--sans);color:var(--t2);cursor:pointer;
}
.nav-item::before{content:"";width:5px;height:5px;border-radius:50%;background:rgba(255,255,255,.24);flex:none;margin-right:var(--s-4)}
.nav-item:hover{background:var(--surface-hover);color:var(--t1)}
.nav-item--active{background:var(--tint-accent);border-color:rgba(244,115,33,.26);color:var(--orange)}
.nav-item--active::before{background:var(--orange)}
.view-internal .nav-item--active{background:var(--tint-info);border-color:rgba(56,189,248,.26);color:var(--cyan)}
.view-internal .nav-item--active::before{background:var(--cyan)}

.topbar{
  height:var(--topbar-h);position:sticky;top:0;z-index:5;
  display:flex;align-items:center;gap:var(--s-7);padding:0 var(--s-11);
  background:var(--topbar-bg);border-bottom:1px solid var(--line-2);
  backdrop-filter:blur(8px);
}
.topbar__mobile{display:none}

.page{padding:var(--page-pad);display:flex;flex-direction:column;gap:var(--s-10)}

/* ---------- cards, metrics ---------- */

.card{background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r-2xl)}
.card--accent{border-color:var(--line)}
.card__head{display:flex;align-items:center;justify-content:space-between;gap:var(--s-5);padding:var(--s-9) var(--s-10) var(--s-6)}
.card__body{padding:var(--s-10)}

.metric{padding:var(--s-8) var(--s-9);background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r-2xl)}
.metric__label{margin-bottom:var(--s-5)}
.metric__delta{margin-top:var(--s-4);font:700 11.5px/1 var(--mono)}
.metric__delta--up{color:var(--mint)}
.metric__delta--warn{color:var(--gold)}
.metric__delta--down{color:var(--rose)}

.grid-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s-7)}
.grid-main{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:var(--s-7);align-items:start}
.grid-half{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-7);align-items:start}
.grid-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-7)}

/* ---------- badges ---------- */

.badge{
  display:inline-flex;align-items:center;gap:7px;
  padding:5px var(--s-4);border-radius:var(--r-sm);
  background:rgba(255,255,255,.05);
  font:700 10.5px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;
}
.badge::before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}
.badge--no-dot::before{display:none}
.badge--live,.badge--ok{color:var(--mint)}
.badge--degraded,.badge--warn{color:var(--gold)}
.badge--paused,.badge--info{color:var(--cyan)}
.badge--offline,.badge--error{color:var(--rose)}
.badge--draft{color:rgba(255,255,255,.4)}
.badge--pending{background:rgba(224,170,62,.12);color:var(--gold)}

/* ---------- tables ---------- */

.table-wrap{background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r-2xl);overflow-x:auto}
.table-inner{min-width:auto}
.table__head,.table__row{display:grid;gap:var(--s-5);align-items:center;padding:15px var(--s-10)}
.table__head{padding:var(--s-7) var(--s-10);font:500 9px/1 var(--mono);letter-spacing:.15em;text-transform:uppercase;color:var(--t3)}
.table__row{border-top:1px solid var(--line-2)}
.table__row:hover{background:var(--surface-row-hover)}
.table__row--selected{background:var(--surface-selected)}
.table__row--clickable{cursor:pointer}
.cell-primary{font:600 13.5px/1.3 var(--sans);color:var(--t1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cell-secondary{margin-top:var(--s-1);font:400 11px/1.35 var(--sans);color:var(--t3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cell-num{text-align:right;font:600 12.5px/1 var(--mono);color:var(--t1)}
.cell-right{text-align:right}

.pager{display:flex;align-items:center;justify-content:space-between;gap:var(--s-5);flex-wrap:wrap;font:400 12px/1.4 var(--sans);color:var(--t3)}

/* ---------- controls ---------- */

.btn{
  min-height:38px;display:inline-flex;align-items:center;justify-content:center;gap:var(--s-3);
  padding:0 var(--s-7);border:1px solid transparent;border-radius:var(--r-md);
  font:700 12.5px/1 var(--sans);cursor:pointer;
}
.btn--primary{color:var(--on-accent);background:linear-gradient(135deg,var(--orange),var(--orange-2))}
.btn--primary-lg{min-height:52px;border-radius:var(--r-xl);font-size:15px;box-shadow:var(--glow-accent);width:100%}
.btn--secondary{border-color:var(--line-2);background:rgba(255,255,255,.04);color:var(--t2);font-weight:600}
.btn--secondary:hover{border-color:rgba(244,115,33,.45);color:var(--t1)}
.btn--gold{background:var(--gold);color:var(--on-gold)}
.btn[aria-disabled="true"],.btn:disabled{opacity:.45;cursor:not-allowed}

.chip{
  min-height:34px;display:inline-flex;align-items:center;gap:var(--s-3);
  padding:0 var(--s-6);border:1px solid var(--line-2);border-radius:var(--r-md);
  background:transparent;font:600 12px/1 var(--sans);color:var(--t2);cursor:pointer;
}
.chip--active{background:rgba(244,115,33,.14);border-color:rgba(244,115,33,.4);color:var(--orange)}
.chips{display:flex;gap:var(--s-3);flex-wrap:wrap}

.field{display:flex;flex-direction:column;gap:7px}
.input{
  min-height:48px;padding:0 var(--s-7);
  background:rgba(255,255,255,.05);border:1px solid var(--line-2);border-radius:var(--r-lg);
  font:400 14px/1 var(--sans);color:var(--t1);outline:none;
}
.input::placeholder{color:var(--t3)}
.input:focus-visible{border-color:var(--border-focus);box-shadow:var(--ring-focus)}
.input--error{border-color:var(--border-danger);box-shadow:var(--ring-danger)}
.input--textarea{min-height:132px;padding:var(--s-6) var(--s-7);line-height:1.6}

.switch{display:grid;grid-template-columns:1fr 1fr;gap:3px;padding:3px;background:rgba(255,255,255,.05);border:1px solid var(--line-2);border-radius:var(--r-md)}
.switch__opt{min-height:30px;display:grid;place-items:center;border:1px solid transparent;border-radius:7px;font:700 11.5px/1 var(--sans);color:var(--t3);cursor:pointer}
.switch__opt[aria-selected="true"]{background:rgba(244,115,33,.16);border-color:rgba(244,115,33,.4);color:var(--orange)}
.switch__opt--internal[aria-selected="true"]{background:rgba(56,189,248,.16);border-color:rgba(56,189,248,.4);color:var(--cyan)}

.progress{height:6px;border-radius:3px;background:rgba(255,255,255,.1);overflow:hidden}
.progress__fill{display:block;height:100%;background:linear-gradient(90deg,var(--orange),var(--gold))}

/* ---------- overlays ---------- */

.scrim{position:fixed;inset:0;z-index:50;background:var(--scrim)}

.drawer{
  position:fixed;top:0;right:0;bottom:0;z-index:80;
  width:var(--drawer-w);max-width:100%;
  display:flex;flex-direction:column;
  background:var(--navy-2);border-left:1px solid var(--line);
}
.drawer__head{padding:var(--s-10) var(--s-11);border-bottom:1px solid var(--line-2)}
.drawer__body{padding:var(--s-9) var(--s-11);overflow:auto;display:flex;flex-direction:column;gap:var(--s-8)}
.drawer__foot{margin-top:auto;padding:var(--s-7) var(--s-11);border-top:1px solid var(--line-2);display:flex;gap:var(--s-4);flex-wrap:wrap}

.modal{width:452px;max-width:calc(100vw - 32px);padding:var(--s-12);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-3xl)}

/* ---------- states ---------- */

.banner-demo{
  display:flex;align-items:center;gap:var(--s-4);
  padding:11px var(--s-6);border-radius:var(--r-lg);
  background:var(--tint-warning);border:1px solid rgba(224,170,62,.28);
  font:400 12px/1.5 var(--sans);color:var(--t2);
}

.skeleton{display:block;border-radius:3px;background:rgba(255,255,255,.09);animation:rtaShimmer 1.4s infinite}

.state-empty{
  padding:56px var(--s-12);border-radius:var(--r-2xl);
  background:rgba(255,255,255,.025);border:1px dashed var(--line-dashed);
  display:flex;flex-direction:column;align-items:center;gap:var(--s-6);text-align:center;
}
.state-error{
  padding:var(--s-12);border-radius:var(--r-2xl);
  background:rgba(232,84,63,.07);border:1px solid var(--border-danger);
  display:flex;gap:var(--s-7);align-items:flex-start;
}

.alert-row{display:flex;gap:11px;padding:var(--s-5) 0;border-bottom:1px solid var(--line-2)}
.alert-row__dot{width:6px;height:6px;flex:none;border-radius:50%;margin-top:var(--s-2)}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ==================== additional components (handoff §3, tokens above only) ==================== */

/* ---------- auth screen ---------- */

.auth{min-height:100vh;display:grid;grid-template-columns:55% 45%}
.auth__brand{
  background:linear-gradient(160deg,var(--navy-2),var(--navy));
  padding:var(--s-15) var(--s-13);
  display:flex;flex-direction:column;justify-content:center;gap:var(--s-9);
  border-right:1px solid var(--line);
}
.auth__brand::before{
  content:"";
  width:56px;height:56px;
  border-radius:var(--r-lg);
  background:transparent url('/assets/images/brand/favicon.svg?v=target-20260811') center/contain no-repeat;
  flex:none;
}
.auth__brand h1{font:800 33px/1.12 var(--sans);letter-spacing:-.025em;color:var(--t1);margin:0}
.auth__brand p{font:400 14px/1.65 var(--sans);color:var(--t2);margin:0}
.auth__bullets{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--s-5)}
.auth__bullets li{display:flex;align-items:center;gap:var(--s-4);font:600 13px/1.4 var(--sans);color:var(--t2)}
.auth__bullets li::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--orange);flex:none}
.auth__waveform{display:flex;align-items:flex-end;gap:3px;height:40px}
.auth__waveform span{display:block;width:3px;background:var(--orange);border-radius:2px;opacity:.5}
.auth__capabilities{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-6)}
.auth__capability{padding:var(--s-6);border:1px solid var(--line-2);border-radius:var(--r-lg);background:var(--surface)}
.auth__capability-label{font:700 11px/1.3 var(--sans);color:var(--t1)}
.auth__form{display:flex;align-items:center;justify-content:center;padding:var(--s-13)}
.auth__form-card{width:100%;max-width:400px;display:flex;flex-direction:column;gap:var(--s-8)}
.auth__badge{align-self:flex-end;padding:5px var(--s-4);border-radius:var(--r-sm);background:var(--tint-warning);color:var(--gold);font:700 10px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase}
.auth__title{font:800 30px/1.15 var(--sans);letter-spacing:-.022em;color:var(--t1);margin:0}
.auth__subtitle{font:400 13.5px/1.6 var(--sans);color:var(--t2);margin:0 0 var(--s-4)}
.auth__checkbox-row{display:flex;align-items:center;justify-content:space-between;gap:var(--s-5)}
.auth__checkbox-row label{display:flex;align-items:center;gap:var(--s-3);font:400 12.5px/1.4 var(--sans);color:var(--t2)}
.auth__footnote{text-align:center}

/* ---------- rail brand + org switch ---------- */

.rail__brand{display:flex;align-items:center;gap:var(--s-4)}
.rail__brand-mark{width:32px;height:32px;border-radius:var(--r-sm);background:transparent url('/assets/images/brand/favicon.svg?v=target-20260811') center/contain no-repeat;flex:none}
.rail__brand-name{font:800 14px/1.2 var(--sans);color:var(--t1)}

.nav-item__badge{font:700 10px/1 var(--mono);color:var(--t3);background:rgba(255,255,255,.06);border-radius:var(--r-pill);padding:2px 7px}
.nav-item__label{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rail__section-label{padding:var(--s-5) 11px var(--s-2);font:500 8.5px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--t3)}

.org-switch{display:flex;align-items:center;gap:var(--s-4);padding:var(--s-4) var(--s-5);border:1px solid var(--line-2);border-radius:var(--r-md);background:var(--surface)}
.org-switch__mark{width:22px;height:22px;border-radius:var(--r-xs);background:linear-gradient(135deg,var(--orange),var(--orange-2));flex:none}
.org-switch__name{font:700 12.5px/1.2 var(--sans);color:var(--t1);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ---------- mobile top bar ---------- */

.topbar__menu-btn{
  display:none;min-height:34px;min-width:34px;align-items:center;justify-content:center;
  border:1px solid var(--line-2);border-radius:var(--r-md);background:transparent;color:var(--t1);cursor:pointer;
}
.topbar__mobile .topbar__menu-btn{display:inline-flex}
.topbar__avatar{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,var(--orange),var(--orange-2));display:grid;place-items:center;font:700 12px/1 var(--sans);color:var(--on-accent)}

/* ---------- action menu ---------- */

.menu{position:absolute;z-index:40;min-width:180px;padding:var(--s-3);background:var(--navy-2);border:1px solid var(--line-2);border-radius:var(--r-lg);box-shadow:0 12px 32px rgba(0,0,0,.4)}
.menu__item{display:flex;width:100%;align-items:center;gap:var(--s-4);padding:var(--s-4) var(--s-5);border:none;background:transparent;border-radius:var(--r-sm);font:600 12.5px/1 var(--sans);color:var(--t2);cursor:pointer;text-align:left}
.menu__item:hover,.menu__item:focus-visible{background:var(--surface-hover);color:var(--t1)}
.menu__item--danger{color:var(--rose)}

/* ---------- misc ---------- */

.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}
.status-dot--live{animation:rtaBlink 1.8s infinite}

.icon-btn{min-height:34px;min-width:34px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line-2);border-radius:var(--r-md);background:transparent;color:var(--t2);cursor:pointer}
.icon-btn:hover{color:var(--t1);border-color:rgba(244,115,33,.35)}

.checkbox{width:16px;height:16px;border-radius:var(--r-xs);border:1px solid var(--line-2);background:rgba(255,255,255,.05);flex:none}

.field__error{font:400 12px/1.4 var(--sans);color:var(--text-danger-soft)}

.alert-panel{display:flex;gap:var(--s-5);align-items:flex-start;padding:var(--s-6) var(--s-7);border-radius:var(--r-xl);background:var(--tint-danger);border:1px solid var(--border-danger);color:var(--text-danger);font:400 13px/1.5 var(--sans)}

.link-btn{background:transparent;border:none;padding:0;font:600 12.5px/1 var(--sans);color:var(--t3);cursor:pointer}
.link-btn:hover{color:var(--t1)}
.link-btn[aria-disabled="true"]{opacity:.6;cursor:not-allowed}

/* ---------- product discovery + entitlement states ---------- */

.console-intro{max-width:900px}
.console-intro .t-screen-head{margin:var(--s-3) 0 var(--s-4)}
.console-intro .t-body{max-width:760px;margin:0}

.product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-7)}
.product-card{min-height:220px;display:flex;flex-direction:column;gap:var(--s-7);padding:var(--s-9);background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r-2xl)}
.product-card--locked{background:linear-gradient(180deg,rgba(255,255,255,.025),rgba(255,255,255,.015));border-style:dashed}
.product-card__head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-5)}
.product-card__title{margin:var(--s-3) 0 0}
.product-card__description{margin:0}
.product-card__actions{margin-top:auto;display:flex;gap:var(--s-4);flex-wrap:wrap}
.product-card__locked-link{border-style:dashed}

.product-hero{padding:var(--s-11);background:linear-gradient(140deg,var(--surface),rgba(244,115,33,.045));border:1px solid var(--line);border-radius:var(--r-3xl)}
.product-hero--locked{background:linear-gradient(140deg,rgba(255,255,255,.025),rgba(255,255,255,.012));border-color:var(--line-2)}
.product-hero--ide{background:linear-gradient(140deg,rgba(56,189,248,.06),rgba(244,115,33,.05));border-color:rgba(56,189,248,.22)}
.product-hero__content{display:flex;flex-direction:column;gap:var(--s-7);max-width:980px}
.product-hero__content .t-screen-head{margin:0;max-width:900px}
.product-hero__content .t-body{margin:0;max-width:840px}
.product-hero__status-row{display:flex;align-items:center;justify-content:space-between;gap:var(--s-5);flex-wrap:wrap}

.capability-strip{display:flex;gap:var(--s-3);flex-wrap:wrap}
.capability-pill{display:inline-flex;align-items:center;min-height:32px;padding:0 var(--s-5);border:1px solid var(--line-2);border-radius:var(--r-pill);background:rgba(255,255,255,.035);font:600 11.5px/1 var(--sans);color:var(--t2)}
.workflow-list{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:var(--s-5);font:400 13.5px/1.6 var(--sans);color:var(--t2)}
.workflow-list strong{color:var(--t1)}

.locked-notice{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-8);padding:var(--s-8);background:rgba(255,255,255,.03);border:1px dashed var(--line-dashed);border-radius:var(--r-xl)}
.locked-notice .t-body{margin-top:var(--s-3)}
.locked-notice__actions{display:flex;gap:var(--s-4);flex-wrap:wrap;flex:none}
.product-access-list{display:flex;flex-direction:column;border-top:1px solid var(--line-2)}
.product-access-row{display:flex;align-items:center;justify-content:space-between;gap:var(--s-6);padding:var(--s-6) 0;border-bottom:1px solid var(--line-2)}

@media (max-width:1099px){
  .product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media (max-width:719px){
  .product-grid{grid-template-columns:1fr}
  .product-card{min-height:0;padding:var(--s-7)}
  .product-hero{padding:var(--s-8)}
  .locked-notice{flex-direction:column}
  .locked-notice__actions{width:100%}
  .locked-notice__actions .btn{flex:1 1 160px}
}

/* ---------- breakpoints ---------- */

@media (max-width:1099px){
  .grid-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .grid-main{grid-template-columns:1fr}
  .grid-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .auth{grid-template-columns:1fr}
  .auth__brand{padding:var(--s-11);border-right:none;border-bottom:1px solid var(--line)}
}

@media (max-width:719px){
  html,body{max-width:100%;overflow-x:hidden}
  .shell{grid-template-columns:1fr;min-width:0}
  .rail{
    position:fixed;left:0;top:0;bottom:0;z-index:60;
    width:min(var(--rail-drawer-w),calc(100vw - 48px));height:100dvh;
    transform:translateX(-100%);visibility:hidden;
    transition:transform .22s ease;
  }
  .rail[data-open="true"]{transform:translateX(0);visibility:visible}
  .topbar{display:none}
  .topbar__mobile{
    min-height:var(--topbar-h-mobile);height:auto;position:sticky;top:0;z-index:20;
    display:grid;grid-template-columns:44px minmax(0,1fr) 36px;align-items:center;gap:var(--s-4);padding:6px var(--s-7);
    background:var(--rail-bg);border-bottom:1px solid var(--line-2);
  }
  .topbar__mobile .t-page-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .topbar__menu-btn{min-width:44px;min-height:44px}
  .topbar__avatar{width:36px;height:36px}
  .page{min-width:0;padding:var(--page-pad-mobile);gap:var(--s-8)}
  .t-screen-head{font-size:20px}
  .t-metric{font-size:26px}
  .grid-metrics{grid-template-columns:1fr}
  .grid-main,.grid-half,.grid-cards{grid-template-columns:1fr}
  .card__head{align-items:flex-start;flex-wrap:wrap;padding:var(--s-7)}
  .card__body{padding:var(--s-7)}
  .metric{padding:var(--s-7)}
  .btn,.chip,.icon-btn{min-height:44px}
  .icon-btn{min-width:44px}
  .input{min-height:48px;font-size:16px}
  .switch__opt{min-height:40px}
  .table-wrap{max-width:100%;-webkit-overflow-scrolling:touch}
  .table-inner{min-width:var(--table-min-w)}
  .table__head,.table__row{padding-inline:var(--s-7)}
  .pager{align-items:stretch;flex-direction:column}
  .drawer{width:100%;max-width:100vw}
  .drawer__head,.drawer__body,.drawer__foot{padding-left:var(--s-7);padding-right:var(--s-7)}
  .drawer__foot .btn{flex:1 1 160px}
  .modal{width:calc(100vw - 20px);max-width:none;padding:var(--s-8)}
  .auth{min-height:100dvh}
  .auth__brand{padding:var(--s-9) var(--s-7)}
  .auth__brand h1{font-size:24px}
  .auth__form{padding:var(--s-9) var(--s-7)}
  .auth__form-card{max-width:none}
  .auth__capabilities{grid-template-columns:1fr}
  .auth__checkbox-row{align-items:flex-start;flex-direction:column}
}

@media (max-width:420px){
  :root{--page-pad-mobile:var(--s-7) var(--s-5) var(--s-12)}
  .topbar__mobile{padding-inline:var(--s-5)}
  .state-empty,.state-error{padding:var(--s-8)}
  .drawer__body{padding-top:var(--s-7)}
}

/* Mobile-first cascade: phone interaction is the baseline; wider screens enhance it. */
html,body{max-width:100%;overflow-x:hidden}
.shell{min-width:0;grid-template-columns:1fr}
.rail{position:fixed;left:0;top:0;bottom:0;z-index:60;width:min(var(--rail-drawer-w),calc(100vw - 48px));height:100dvh;transform:translateX(-100%);visibility:hidden;transition:transform .22s ease}
.rail[data-open="true"]{transform:translateX(0);visibility:visible}
.topbar{display:none}
.topbar__mobile{min-height:var(--topbar-h-mobile);height:auto;position:sticky;top:0;z-index:20;display:grid;grid-template-columns:44px minmax(0,1fr) 36px;align-items:center;gap:var(--s-4);padding:6px var(--s-5);background:var(--rail-bg);border-bottom:1px solid var(--line-2)}
.topbar__mobile .t-page-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.topbar__menu-btn{display:inline-flex;min-width:44px;min-height:44px}
.topbar__avatar{width:36px;height:36px}
.page{min-width:0;padding:var(--s-7) var(--s-5) var(--s-12);gap:var(--s-8)}
.t-screen-head{font-size:20px}.t-metric{font-size:26px}
.grid-metrics,.grid-main,.grid-half,.grid-cards{grid-template-columns:1fr}
.card__head{align-items:flex-start;flex-wrap:wrap;padding:var(--s-7)}
.card__body,.metric{padding:var(--s-7)}
.btn,.chip,.icon-btn{min-height:44px}.icon-btn{min-width:44px}.input{min-height:48px;font-size:16px}.switch__opt{min-height:40px}
.table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-inner{min-width:var(--table-min-w)}
.table__head,.table__row{padding-inline:var(--s-7)}
.pager{align-items:stretch;flex-direction:column}
.drawer{width:100%;max-width:100vw}.drawer__head,.drawer__body,.drawer__foot{padding-left:var(--s-7);padding-right:var(--s-7)}.drawer__body{padding-top:var(--s-7)}.drawer__foot .btn{flex:1 1 160px}
.modal{width:calc(100vw - 20px);max-width:none;padding:var(--s-8)}
.state-empty,.state-error{padding:var(--s-8)}
.auth{min-height:100dvh;grid-template-columns:1fr}.auth__brand{padding:var(--s-9) var(--s-7);border-right:0;border-bottom:1px solid var(--line)}.auth__brand h1{font-size:24px}.auth__form{padding:var(--s-9) var(--s-7)}.auth__form-card{max-width:none}.auth__capabilities{grid-template-columns:1fr}.auth__checkbox-row{align-items:flex-start;flex-direction:column}

@media (min-width:720px){
  .shell{grid-template-columns:var(--rail-w) minmax(0,1fr)}
  .rail{position:sticky;left:auto;top:0;bottom:auto;z-index:auto;width:auto;height:100vh;transform:none;visibility:visible}
  .topbar{display:flex}.topbar__mobile{display:none}
  .page{padding:var(--page-pad);gap:var(--s-10)}
  .t-screen-head{font-size:22px}.t-metric{font-size:30px}
  .grid-metrics,.grid-half,.grid-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .card__head{align-items:center;flex-wrap:nowrap;padding:var(--s-9) var(--s-10) var(--s-6)}.card__body{padding:var(--s-10)}.metric{padding:var(--s-8) var(--s-9)}
  .btn{min-height:38px}.chip{min-height:34px}.icon-btn{min-height:34px;min-width:34px}.input{font-size:14px}.switch__opt{min-height:30px}
  .table-inner{min-width:auto}.table__head,.table__row{padding-inline:var(--s-10)}.pager{align-items:center;flex-direction:row}
  .drawer{width:var(--drawer-w);max-width:100%}.drawer__head{padding:var(--s-10) var(--s-11)}.drawer__body{padding:var(--s-9) var(--s-11)}.drawer__foot{padding:var(--s-7) var(--s-11)}
  .modal{width:452px;max-width:calc(100vw - 32px);padding:var(--s-12)}
  .state-empty{padding:56px var(--s-12)}.state-error{padding:var(--s-12)}
  .auth__brand{padding:var(--s-11)}.auth__brand h1{font-size:33px}.auth__form{padding:var(--s-13)}.auth__form-card{max-width:400px}.auth__capabilities{grid-template-columns:repeat(3,1fr)}.auth__checkbox-row{align-items:center;flex-direction:row}
}

@media (min-width:1100px){
  .grid-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-main{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr)}.grid-cards{grid-template-columns:repeat(3,minmax(0,1fr))}
  .auth{grid-template-columns:55% 45%}.auth__brand{padding:var(--s-15) var(--s-13);border-right:1px solid var(--line);border-bottom:0}
}
