.nav-item:disabled {opacity:.48;cursor:not-allowed}
.nav-item .nav-label small {display:block;font-size:10px;font-weight:500;line-height:1.5}
.token-snipe-layout {grid-template-columns:minmax(0,2fr) minmax(0,1fr);align-items:start}
#token-snipe-jobs-panel {scrollbar-gutter:stable}
.snipe-mobile-tabs {display:none}
.snipe-card {border:1px solid var(--line);border-radius:14px;padding:16px;margin-top:14px;min-width:0}
.snipe-card-heading {display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;text-align:left;border:0;background:transparent;color:#f5f7f6;padding:0;min-height:44px;cursor:pointer}
.snipe-card-heading strong {font-size:17px}
.snipe-card-heading small {display:block;color:var(--muted);margin-top:6px;font-weight:400}
.snipe-metrics {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:18px 0}
.snipe-metrics small {display:block;color:var(--muted);margin-bottom:6px}
.snipe-metrics strong {overflow-wrap:anywhere}
.snipe-address {overflow-wrap:anywhere;font-size:12px;color:var(--muted);line-height:1.6}
.snipe-actions {display:flex;gap:10px;align-items:start;flex-wrap:wrap}
.snipe-actions details {border:1px solid var(--line);border-radius:8px;min-width:100px}
.snipe-actions summary {padding:10px 14px;cursor:pointer}
.snipe-actions details>div {display:grid;gap:8px;padding:8px}
.snipe-trade {padding:16px 0;border-bottom:1px solid var(--line)}
.token-snipe-dialog {width:min(640px,calc(100vw - 24px));max-height:90dvh;overflow:auto;scrollbar-gutter:stable}
.snipe-form {display:grid;gap:16px;margin-top:20px}
.snipe-form label:not(.checkline) {display:grid;gap:8px}
.snipe-form fieldset {border:1px solid var(--line);border-radius:10px;padding:14px}
.snipe-form fieldset label {margin:8px 0}
.snipe-lookup-results {display:grid;gap:8px;max-height:240px;overflow:auto}
/* Match the portal controls, including buttons created inside overlays. */
:where(#view-token-sniper,#view-spot-trading,.token-snipe-dialog) button:where(:not(.snipe-card-heading):not(.dialog-close)) {
  appearance:none;border:1px solid var(--line);border-radius:9px;
  background:var(--surface);color:var(--text);padding:11px 15px;
  min-height:44px;font:inherit;font-weight:700;cursor:pointer;
  transition:background .15s,border-color .15s;
}
:where(#view-token-sniper,#view-spot-trading,.token-snipe-dialog) button.primary {
  background:var(--acid);color:#12170e;border-color:var(--acid);
}
:where(#view-token-sniper,#view-spot-trading,.token-snipe-dialog) button:where(:not(:disabled):not(.primary):not(.snipe-card-heading):not(.dialog-close)):hover {
  background:var(--surface2);border-color:#52635a;
}
:where(#view-token-sniper,#view-spot-trading,.token-snipe-dialog) button.primary:not(:disabled):hover {
  background:#c9ff68;border-color:#c9ff68;
}
:where(#view-token-sniper,#view-spot-trading,.token-snipe-dialog) button:disabled {opacity:.45;cursor:not-allowed}
:where(#view-token-sniper,#view-spot-trading,.token-snipe-dialog) button:focus-visible,
.snipe-actions summary:focus-visible {outline:2px solid var(--acid);outline-offset:3px}
.snipe-actions details {background:var(--surface);border-radius:9px}
.snipe-actions summary {min-height:44px;font-weight:700;color:var(--text)}
.snipe-actions summary:hover {background:var(--surface2);border-radius:9px}
.snipe-actions details[open] {border-color:#52635a}
@media(max-width:900px) {
  .token-snipe-layout {display:block}
  .snipe-mobile-tabs {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:16px 0}
  .snipe-mobile-tabs [aria-selected=true] {border-color:var(--acid);color:var(--acid)}
  #view-token-sniper .snipe-mobile-inactive {display:none!important}
  :is(#view-token-sniper,#view-spot-trading) .section-intro {gap:16px}
  :is(#view-token-sniper,#view-spot-trading) .section-intro .row-actions {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}
  :is(#view-token-sniper,#view-spot-trading) .section-intro button {width:100%;min-height:44px}
  .snipe-actions {display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .snipe-actions button,.snipe-actions details {width:100%;min-height:44px}
  .snipe-metrics {gap:16px 12px}
  .token-snipe-dialog {padding:20px}
}

@media(max-width:900px){#view-spot-trading .spot-mobile-inactive{display:none!important}}

/* Fixed geometry for notification checkboxes and sticky overlay close control. */
.snipe-form .checkline,.snipe-form .checkbox {display:flex;align-items:flex-start;gap:10px;min-height:32px;line-height:1.5}
.snipe-form :is(.checkline,.checkbox) input[type=checkbox] {flex:0 0 18px;width:18px;height:18px;margin:3px 0 0;padding:0;align-self:flex-start}
.token-snipe-dialog>.dialog-close {z-index:5;top:8px;right:0;width:44px;height:44px;border:1px solid #61766a;border-radius:9px;background:var(--surface2);color:var(--text);box-shadow:0 3px 12px #0008;line-height:1}
.token-snipe-dialog>.dialog-close:hover {border-color:var(--acid);background:#26332c}
.token-snipe-dialog>.dialog-close:focus-visible {outline:2px solid var(--acid);outline-offset:2px}
.grid-analysis-progress {padding:14px;border:1px solid var(--line);border-radius:10px;margin:16px 0;font-variant-numeric:tabular-nums}
.grid-analysis-progress ol {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:0;list-style:none;color:var(--muted);font-size:12px}
.grid-analysis-progress .current {color:var(--acid);font-weight:700}
.grid-analysis-progress progress {display:block;width:100%;height:14px;accent-color:var(--acid)}
.grid-analysis-progress small {color:var(--muted)}
.module-access-controls {display:flex;gap:10px;align-items:end;flex-wrap:wrap}
.module-access-controls label {display:grid;gap:6px}
@media(max-width:600px){.grid-analysis-progress ol{grid-template-columns:repeat(2,minmax(0,1fr))}}
