/* ============================================================================
   AD Automation shared class layer — extracted + deduplicated from the four
   reference mockups (docs/design/mockups/*.html), per implementation-notes §2.
   NO color literals here: every color/border/shadow comes from var(--ada-*)
   (tokens.css). Load order: bootstrap (legacy pages only) → tokens.css → app.css.
   Density: differences key off [data-density=dense|comfortable] set ONCE on the
   shell root — pages never set density.
   ============================================================================ */

/* ============ BASE ============ */
*, *::before, *::after { box-sizing: border-box; }
html, body { height: 100%; margin: 0; padding: 0; }
body { font-family: var(--ada-font-sans); font-size: 14px; line-height: 1.45; color: var(--ada-text-1); background: var(--ada-bg-app); }
a { color: var(--ada-accent); text-decoration: none; }
a:hover { text-decoration: underline; }
button { font: inherit; cursor: pointer; }
:focus-visible { outline: 2px solid var(--ada-focus-ring); outline-offset: 2px; border-radius: var(--ada-r-sm); }
.mono { font-family: var(--ada-font-mono); font-size: 12.5px; }

/* ============ APP SHELL ============ */
.shell{display:grid;grid-template-columns:232px 1fr;grid-template-rows:52px 1fr;min-height:100vh}
.sidebar{grid-row:1/3;background:var(--ada-bg-surface);border-right:1px solid var(--ada-border);display:flex;flex-direction:column;position:sticky;top:0;height:100vh}
.brand{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--ada-border)}
.brand-mark{width:26px;height:26px;border-radius:var(--ada-r-md);background:var(--ada-accent-solid);color:var(--ada-accent-contrast);display:grid;place-items:center;font-weight:700;font-size:13px}
.brand-name{font-weight:650;font-size:14px}
.brand-name small{display:block;font-weight:400;font-size:11px;color:var(--ada-text-3)}
.nav{flex:1;overflow-y:auto;padding:12px 8px}
.nav-group{margin-bottom:18px}
.nav-label{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ada-text-3);padding:0 10px;margin-bottom:4px}
.nav-item{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:var(--ada-r-md);color:var(--ada-text-2);font-size:13.5px;font-weight:500;margin-bottom:1px}
[data-density="comfortable"] .nav-item{padding:9px 10px;font-size:14px;margin-bottom:2px}
.nav-item svg{flex:none;opacity:.75}
.nav-item:hover{background:var(--ada-bg-hover);color:var(--ada-text-1);text-decoration:none}
.nav-item.active{background:var(--ada-accent-subtle);color:var(--ada-accent);font-weight:600}
.nav-item.active svg{opacity:1}
.nav-count{margin-left:auto;background:var(--ada-warning-bg);color:var(--ada-warning-text);border:1px solid var(--ada-warning-border);font-size:11px;font-weight:600;border-radius:var(--ada-r-full);padding:0 7px;line-height:17px}
.sidebar-foot{padding:12px 16px;border-top:1px solid var(--ada-border);display:flex;align-items:center;justify-content:space-between}
.sidebar-foot a{font-size:12px;color:var(--ada-text-3)}
.env-chip{font-size:11px;font-weight:600;letter-spacing:.05em;padding:2px 8px;border-radius:var(--ada-r-full);background:var(--ada-warning-bg);color:var(--ada-warning-text);border:1px solid var(--ada-warning-border)}
.topbar{grid-column:2;display:flex;align-items:center;gap:16px;background:var(--ada-bg-surface);border-bottom:1px solid var(--ada-border);padding:0 24px;position:sticky;top:0;z-index:10}
.search{flex:1;max-width:520px;position:relative}
.search input{width:100%;height:32px;border:1px solid var(--ada-border-strong);border-radius:var(--ada-r-md);background:var(--ada-bg-app);padding:0 64px 0 32px;font:inherit;font-size:13px;color:var(--ada-text-1)}
[data-density="comfortable"] .search input{height:34px;font-size:13.5px;padding-right:12px}
.search input::placeholder{color:var(--ada-text-3)}
.search svg{position:absolute;left:9px;top:8px;color:var(--ada-text-3)}
[data-density="comfortable"] .search svg{top:9px}
.kbd{position:absolute;right:8px;top:6px;font-family:var(--ada-font-mono);font-size:11px;color:var(--ada-text-3);border:1px solid var(--ada-border);border-radius:4px;padding:1px 5px;background:var(--ada-bg-surface)}
.topbar-actions{margin-left:auto;display:flex;align-items:center;gap:10px}
.icon-btn{width:32px;height:32px;border-radius:var(--ada-r-md);border:1px solid transparent;background:none;color:var(--ada-text-2);display:grid;place-items:center}
.icon-btn:hover{background:var(--ada-bg-hover);color:var(--ada-text-1)}
.avatar{width:30px;height:30px;border-radius:var(--ada-r-full);background:var(--ada-synced-bg);color:var(--ada-synced-text);display:grid;place-items:center;font-size:12px;font-weight:650;border:1px solid var(--ada-synced-border)}
[data-density="comfortable"] .avatar{background:var(--ada-accent-subtle);color:var(--ada-accent);border-color:var(--ada-accent-subtle)}
.main{grid-column:2;padding:24px;width:100%}
.page-head{display:flex;align-items:baseline;gap:12px;margin-bottom:20px}
.page-head h1{font-size:20px;font-weight:650;margin:0}
.page-head .sub{font-size:12px;color:var(--ada-text-3)}
.crumbs{font-size:13px;color:var(--ada-text-3)}
.crumbs a{color:var(--ada-text-3)}
.crumbs b{color:var(--ada-text-1);font-weight:600}
.hello h1{font-size:22px;font-weight:650;margin:0}
.hello p{color:var(--ada-text-3);font-size:13.5px;margin:4px 0 24px}

/* ============ CHIPS (one vocabulary — Chip.razor is the only emitter) ============ */
.chip{display:inline-flex;align-items:center;gap:4px;height:20px;padding:0 8px;border-radius:var(--ada-r-full);font-size:11px;font-weight:600;white-space:nowrap;border:1px solid}
[data-density="comfortable"] .chip{height:22px;padding:0 9px}
.chip svg{width:12px;height:12px}
.chip-success{background:var(--ada-success-bg);color:var(--ada-success-text);border-color:var(--ada-success-border)}
.chip-danger{background:var(--ada-danger-bg);color:var(--ada-danger-text);border-color:var(--ada-danger-border)}
.chip-warning{background:var(--ada-warning-bg);color:var(--ada-warning-text);border-color:var(--ada-warning-border)}
.chip-running{background:var(--ada-running-bg);color:var(--ada-running-text);border-color:var(--ada-running-border)}
.chip-info{background:var(--ada-info-bg);color:var(--ada-info-text);border-color:var(--ada-info-border)}
.chip-neutral{background:var(--ada-neutral-bg);color:var(--ada-neutral-text);border-color:var(--ada-neutral-border)}
.chip-dryrun{background:var(--ada-dryrun-bg);color:var(--ada-dryrun-text);border-color:var(--ada-dryrun-border)}
.chip-manual{background:var(--ada-manual-bg);color:var(--ada-manual-text);border-color:var(--ada-manual-border)}
.chip-synced{background:var(--ada-synced-bg);color:var(--ada-synced-text);border-color:var(--ada-synced-border)}
.chip-outline{background:transparent}
.chip-neutral.chip-outline{color:var(--ada-neutral-text);border-color:var(--ada-neutral-border)}
.chip-warning.chip-outline{color:var(--ada-warning-text);border-color:var(--ada-warning-border)}
.pulse{width:8px;height:8px;border-radius:50%;background:currentColor;display:inline-block}
@media (prefers-reduced-motion: no-preference){.pulse{animation:ada-pulse 1.6s ease-in-out infinite}}
@keyframes ada-pulse{0%,100%{opacity:1}50%{opacity:.35}}

/* ============ TILE GRID / CARDS ============ */
.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:16px}
.tile{background:var(--ada-bg-surface);border:1px solid var(--ada-border);border-radius:var(--ada-r-lg);box-shadow:var(--ada-e-1);display:flex;flex-direction:column;min-width:0}
.tile-head{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--ada-border)}
[data-density="comfortable"] .tile-head{padding:14px 18px}
.tile-head h2{font-size:13px;font-weight:650;letter-spacing:.01em;margin:0}
[data-density="comfortable"] .tile-head h2{font-size:14px}
.tile-head .meta{margin-left:auto;font-size:11px;color:var(--ada-text-3);white-space:nowrap;display:inline-flex;align-items:center;gap:6px}
[data-density="comfortable"] .tile-head .meta{font-size:12px}
.tile-body{padding:16px;flex:1}
[data-density="comfortable"] .tile-body{padding:10px 18px}
.tile-foot{padding:8px 16px;border-top:1px solid var(--ada-border);font-size:12px}
[data-density="comfortable"] .tile-foot{padding:10px 18px;font-size:13px}
.span-3{grid-column:span 3}.span-4{grid-column:span 4}.span-5{grid-column:span 5}.span-6{grid-column:span 6}.span-8{grid-column:span 8}.span-12{grid-column:span 12}
@media(max-width:1200px){.span-3,.span-4,.span-5{grid-column:span 6}.span-8{grid-column:span 12}}
@media(max-width:820px){.grid>*{grid-column:span 12}.shell{grid-template-columns:1fr}.sidebar{display:none}.main,.topbar{grid-column:1}}
@media(max-width:900px){.main{padding:16px}}
.card{background:var(--ada-bg-surface);border:1px solid var(--ada-border);border-radius:var(--ada-r-lg);box-shadow:var(--ada-e-1);min-width:0}
.card-head{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--ada-border)}
.card-head h2{font-size:13px;font-weight:650;margin:0}
.card-head .meta{margin-left:auto}
.card-body{padding:14px 16px}

/* KPI stats */
.kpis{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px}
.kpi .v{font-size:28px;font-weight:650;font-variant-numeric:tabular-nums;line-height:1.15}
.kpi .l{font-size:12px;color:var(--ada-text-3)}

/* license bars */
.sku{margin-bottom:12px}
.sku:last-child{margin-bottom:0}
.sku-row{display:flex;align-items:baseline;gap:8px;font-size:13px;margin-bottom:4px}
.sku-row .n{font-weight:550}
.sku-row .c{margin-left:auto;font-variant-numeric:tabular-nums;color:var(--ada-text-2);font-size:12px}
.bar{height:6px;border-radius:3px;background:var(--ada-bg-inset);overflow:hidden}
.bar>i{display:block;height:100%;border-radius:3px;background:var(--ada-accent-solid)}
.bar>i.warn{background:var(--ada-warning-text)}

/* mini list rows inside tiles (dense) */
.mini{list-style:none;margin:0;padding:0}
.mini li{display:flex;align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid var(--ada-border);font-size:13px;min-width:0}
.mini li:last-child{border-bottom:0}
.mini .grow{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mini .dim{color:var(--ada-text-3);font-size:12px;white-space:nowrap}
.mini .err{display:block;font-size:12px;color:var(--ada-danger-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* comfortable rows (self-service tiles) */
.row{display:flex;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid var(--ada-border);font-size:14px;min-width:0}
.row:last-child{border-bottom:0}
.row .grow{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.row .dim{color:var(--ada-text-3);font-size:12.5px;white-space:nowrap}

/* request step timeline segments */
.steps{display:flex;align-items:center;gap:4px}
.steps .s{width:22px;height:6px;border-radius:3px;background:var(--ada-bg-inset)}
.steps .s.done{background:var(--ada-success-text)}
.steps .s.now{background:var(--ada-running-text)}

/* health rows */
.health{display:grid;grid-template-columns:1fr;gap:8px}
.health-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--ada-border);border-radius:var(--ada-r-md);background:var(--ada-bg-surface-2)}
.health-row .n{font-size:13px;font-weight:550;flex:1}
.health-row .d{font-size:11px;color:var(--ada-text-3)}

/* quick actions */
.qa{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.qa a{display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid var(--ada-border);border-radius:var(--ada-r-md);color:var(--ada-text-1);font-size:13px;font-weight:550;background:var(--ada-bg-surface-2)}
.qa a:hover{border-color:var(--ada-accent);color:var(--ada-accent);text-decoration:none;background:var(--ada-accent-subtle)}
.qa svg{color:var(--ada-accent)}

/* sparkline */
.spark-wrap{display:flex;gap:24px;align-items:flex-end}
.spark{flex:1}
.legend{font-size:12px;color:var(--ada-text-3);display:flex;gap:16px;margin-top:8px}
.legend b{color:var(--ada-text-1);font-variant-numeric:tabular-nums}
.dot{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:5px;vertical-align:1px}
.dim{color:var(--ada-text-3);font-size:12px}
.dot-success{background:var(--ada-success-text)}
.dot-warning{background:var(--ada-warning-text)}

/* my-stuff strip */
.strip{display:flex;align-items:center;gap:24px;padding:12px 16px}
.strip .s-item{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ada-text-2)}
.strip .s-item b{font-variant-numeric:tabular-nums;color:var(--ada-text-1)}

/* ============ STATES: skeleton / empty / degraded ============ */
.skel{background:linear-gradient(90deg,var(--ada-bg-inset) 25%,var(--ada-bg-surface-2) 50%,var(--ada-bg-inset) 75%);background-size:200% 100%;border-radius:4px;height:14px;margin-bottom:12px}
.skel:last-child{margin-bottom:0}
@media (prefers-reduced-motion: no-preference){.skel{animation:ada-shimmer 1.4s linear infinite}}
@keyframes ada-shimmer{to{background-position:-200% 0}}
.empty{text-align:center;padding:20px 12px;color:var(--ada-text-3)}
.empty svg{margin-bottom:8px;color:var(--ada-text-3)}
.empty p{font-size:13px;margin:0 0 12px}
.degraded{border:1px dashed var(--ada-border-strong);border-radius:var(--ada-r-lg);background:var(--ada-bg-surface);padding:20px;text-align:center;color:var(--ada-text-3)}
.degraded p{font-size:13px;margin:8px auto 0;max-width:46ch}
.degraded .degraded-action{margin-top:12px}
.panel{display:none}
.panel.on{display:block}
.action.planned{opacity:.6}
.callout{display:flex;gap:8px;align-items:flex-start;background:var(--ada-bg-surface-2);border:1px solid var(--ada-border);border-radius:var(--ada-r-md);padding:10px 12px;font-size:12.5px;color:var(--ada-text-2);margin-top:12px}
.callout svg{flex:none;margin-top:1px;color:var(--ada-synced-text)}

/* ============ BUTTONS ============ */
.btn{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 13px;border-radius:var(--ada-r-md);border:1px solid var(--ada-border-strong);background:var(--ada-bg-surface);color:var(--ada-text-1);font-size:13px;font-weight:550}
[data-density="dense"] .btn{height:30px;padding:0 12px}
.btn:hover{background:var(--ada-bg-hover);text-decoration:none}
.btn-primary{background:var(--ada-accent-solid);border-color:var(--ada-accent-solid);color:var(--ada-accent-contrast)}
.btn-primary:hover{background:var(--ada-accent-hover);color:var(--ada-accent-contrast)}
.btn[disabled],.btn:disabled{opacity:.55;cursor:not-allowed}
.btn-sm{height:26px;padding:0 10px;font-size:12px}
/* Tile error state (implementation-notes §3.3 — the T5 row treatment at tile level) */
.tile-error{display:flex;align-items:center;gap:10px;min-width:0}
.tile-error .err-line{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:var(--ada-danger-text)}

/* ============ TABLES (dense admin default; .tbl to avoid legacy bootstrap clashes) ============ */
.tbl{width:100%;border-collapse:collapse;font-size:13px}
[data-density="comfortable"] .tbl{font-size:14px}
.tbl th{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ada-text-3);text-align:left;background:var(--ada-bg-surface-2);padding:7px 10px;border-bottom:1px solid var(--ada-border);position:sticky;top:0;z-index:1}
.tbl td{padding:6px 10px;border-bottom:1px solid var(--ada-border);height:32px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:280px}
[data-density="comfortable"] .tbl td{padding:10px 12px;height:44px}
.tbl tr:hover td{background:var(--ada-bg-hover)}
.tbl td.num{text-align:right;font-variant-numeric:tabular-nums}

/* ============ PROFILE ============ */
.profile-head{background:var(--ada-bg-surface);border:1px solid var(--ada-border);border-radius:var(--ada-r-lg);box-shadow:var(--ada-e-1);padding:20px;display:flex;gap:16px;align-items:center;margin-bottom:16px}
.pavatar{width:56px;height:56px;border-radius:var(--ada-r-full);background:var(--ada-accent-subtle);color:var(--ada-accent);display:grid;place-items:center;font-size:20px;font-weight:650;flex:none}
.pmeta h1{font-size:20px;font-weight:650;line-height:1.2;margin:0}
.pmeta .upn{font-family:var(--ada-font-mono);font-size:12.5px;color:var(--ada-text-2);margin:2px 0 8px}
.badges{display:flex;gap:6px;flex-wrap:wrap}
.cols{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:16px;align-items:start}
@media(max-width:1080px){.cols{grid-template-columns:1fr}}
.cols-wide{grid-template-columns:minmax(0,1fr) 400px}
@media(max-width:1100px){.cols-wide{grid-template-columns:1fr}}
.tabs{display:flex;gap:2px;border-bottom:1px solid var(--ada-border);margin-bottom:16px;overflow-x:auto}
.tab{appearance:none;background:none;border:0;border-bottom:2px solid transparent;padding:9px 14px;font-size:13.5px;font-weight:550;color:var(--ada-text-2);white-space:nowrap}
.tab:hover{color:var(--ada-text-1)}
.tab[aria-selected="true"]{color:var(--ada-accent);border-bottom-color:var(--ada-accent);font-weight:600}
.tab .n{font-size:11px;color:var(--ada-text-3);margin-left:4px;font-variant-numeric:tabular-nums}
.cardgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:900px){.cardgrid{grid-template-columns:1fr}}
.gc-span{grid-column:1/-1}
.dl{display:grid;grid-template-columns:150px 1fr;gap:7px 12px;font-size:13px;margin:0}
.dl dt{color:var(--ada-text-3)}
.dl dd{color:var(--ada-text-1);min-width:0;overflow-wrap:anywhere;margin:0}
.plans{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;font-size:12.5px}
.plans .p{display:flex;align-items:center;gap:6px;color:var(--ada-text-2)}
.rail{position:sticky;top:76px}
.rail .card-body{display:flex;flex-direction:column;gap:8px}
.action{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--ada-border);border-radius:var(--ada-r-md);background:var(--ada-bg-surface-2);color:var(--ada-text-1);font-size:13px;font-weight:550}
.action:hover{border-color:var(--ada-accent);color:var(--ada-accent);text-decoration:none;background:var(--ada-accent-subtle)}
.action .chip{margin-left:auto}
.rail-note{font-size:11.5px;color:var(--ada-text-3);padding:10px 16px;border-top:1px solid var(--ada-border)}
.tl{list-style:none;position:relative;padding-left:20px;margin:0}
.tl::before{content:"";position:absolute;left:5px;top:6px;bottom:6px;width:2px;background:var(--ada-border)}
.tl li{position:relative;padding:0 0 14px}
.tl li::before{content:"";position:absolute;left:-19px;top:5px;width:8px;height:8px;border-radius:50%;background:var(--ada-accent);border:2px solid var(--ada-bg-surface)}
.tl .t{font-size:13px}
.tl .d{font-size:12px;color:var(--ada-text-3)}
.toolbar{display:flex;align-items:center;gap:12px;margin-bottom:10px;font-size:12.5px;color:var(--ada-text-2)}
.toolbar label{display:flex;align-items:center;gap:6px}

/* ============ CATALOG SHORTCUTS (U4) ============ */
.shortcuts{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media(max-width:640px){.shortcuts{grid-template-columns:1fr}}
.shortcut{display:flex;gap:12px;align-items:center;padding:13px 14px;border:1px solid var(--ada-border);border-radius:var(--ada-r-md);background:var(--ada-bg-surface-2)}
.shortcut:hover{border-color:var(--ada-accent);text-decoration:none;background:var(--ada-accent-subtle)}
.shortcut .ic{width:34px;height:34px;border-radius:var(--ada-r-md);background:var(--ada-accent-subtle);color:var(--ada-accent);display:grid;place-items:center;flex:none}
.shortcut:hover .ic{background:var(--ada-bg-surface)}
.shortcut .t{font-size:13.5px;font-weight:600;color:var(--ada-text-1)}
.shortcut .d{font-size:12px;color:var(--ada-text-3)}

/* ============ FORMS (catalog request form family — shared for slice 2) ============ */
.item-head{background:var(--ada-bg-surface);border:1px solid var(--ada-border);border-radius:var(--ada-r-lg);box-shadow:var(--ada-e-1);padding:18px 20px;margin-bottom:16px}
.item-head h1{font-size:20px;font-weight:650;margin:0 0 4px}
.item-head .desc{font-size:13px;color:var(--ada-text-2);max-width:70ch}
.item-head .chips{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}
.fsec{margin-bottom:24px}
.fsec:last-child{margin-bottom:0}
.fsec h3{font-size:14px;font-weight:600;margin:0 0 12px;padding-bottom:6px;border-bottom:1px solid var(--ada-border)}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px;margin-bottom:14px}
.frow:last-child{margin-bottom:0}
.f1{grid-column:1/-1}
.field label{display:block;font-size:12.5px;font-weight:600;color:var(--ada-text-2);margin-bottom:5px}
.field .req{color:var(--ada-danger-text)}
.field input[type=text],.field input[type=search],.field input[type=number],.field select,.field textarea{width:100%;min-height:34px;border:1px solid var(--ada-border-strong);border-radius:var(--ada-r-md);background:var(--ada-bg-surface);color:var(--ada-text-1);padding:6px 10px;font:inherit;font-size:13.5px}
.field input::placeholder{color:var(--ada-text-3)}
.hint{font-size:12px;color:var(--ada-text-3);margin-top:4px}
.hint-ok{font-size:12px;color:var(--ada-success-text);margin-top:4px;display:flex;align-items:center;gap:4px}
.hint-ok svg{width:12px;height:12px}
.hint-error{font-size:12px;color:var(--ada-danger-text);margin-top:4px}
.radios{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.radio-card{display:flex;gap:10px;padding:12px;border:1px solid var(--ada-border);border-radius:var(--ada-r-md);background:var(--ada-bg-surface-2);cursor:pointer;align-items:flex-start}
.radio-card.sel{border-color:var(--ada-accent);background:var(--ada-accent-subtle);box-shadow:inset 0 0 0 1px var(--ada-accent)}
.radio-card input{margin-top:3px;accent-color:var(--ada-accent)}
.radio-card .t{font-size:13px;font-weight:600}
.radio-card .d{font-size:12px;color:var(--ada-text-3)}
.tokens{display:flex;gap:6px;flex-wrap:wrap;border:1px solid var(--ada-border-strong);border-radius:var(--ada-r-md);padding:6px;min-height:34px;background:var(--ada-bg-surface)}
.token{display:inline-flex;align-items:center;gap:6px;background:var(--ada-accent-subtle);color:var(--ada-accent);font-size:12px;font-weight:600;border-radius:var(--ada-r-sm);padding:3px 6px}
.token b{cursor:pointer;font-weight:700;opacity:.7}
.tokens input{border:0;background:none;flex:1;min-width:120px;font:inherit;font-size:13px;color:var(--ada-text-1);padding:0 4px}
.tokens input:focus{outline:none}
.formfoot{display:flex;align-items:center;gap:12px;padding:14px 16px;border-top:1px solid var(--ada-border)}
.foot-note{font-size:12px;color:var(--ada-text-3);margin-left:auto;text-align:right}
.switch{display:flex;align-items:center;gap:10px}
.sw{width:36px;height:20px;border-radius:var(--ada-r-full);background:var(--ada-dryrun-text);position:relative;flex:none}
.sw::after{content:"";position:absolute;right:2px;top:2px;width:16px;height:16px;border-radius:50%;background:var(--ada-accent-contrast)}

/* ============ PLAN PANEL (one component, two feeds — form preview + run detail) ============ */
.plan-rail{position:sticky;top:76px}
.plan-step{display:flex;gap:10px;padding:11px 0;border-bottom:1px solid var(--ada-border)}
.plan-step:last-child{border-bottom:0}
.plan-num{width:20px;height:20px;border-radius:50%;background:var(--ada-bg-inset);color:var(--ada-text-2);font-size:11px;font-weight:650;display:grid;place-items:center;flex:none;margin-top:1px}
.plan-step .g{min-width:0;flex:1}
.plan-step .t{font-size:13px;font-weight:600;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.plan-step .d{font-size:12px;color:var(--ada-text-3);margin-top:2px}
.op{font-family:var(--ada-font-mono);font-size:11.5px;background:var(--ada-bg-inset);border:1px solid var(--ada-border);border-radius:var(--ada-r-sm);padding:6px 8px;margin-top:6px;color:var(--ada-text-2);overflow-x:auto;white-space:pre}
.plan-banner{display:flex;gap:8px;align-items:flex-start;background:var(--ada-dryrun-bg);border:1px solid var(--ada-dryrun-border);color:var(--ada-dryrun-text);border-radius:var(--ada-r-md);padding:10px 12px;font-size:12.5px;margin-bottom:12px}
.plan-banner svg{flex:none;margin-top:1px}
