/* Page-scoped styles (auth card, advisor surface, signals) in their original
   source order, which is what resolves equal-specificity ties.
   Extracted from dashboard.html's inline <style> blocks (Epic P / P3): a strict
   style-src cannot keep 'unsafe-inline' while inline <style> elements exist.
   Load ORDER is the contract — see the <link> sequence in dashboard.html. */

/* ── auth card ─────────────────────────────────────────────────────────── */
      .auth-input-wrap{position:relative}
      .auth-input-wrap > input{width:100%}
      /* min-height 24 for WCAG 2.2 AA 2.5.8 — measured 52x22, two pixels short.
         inline-flex so the label stays centred inside the taller box, and the
         translateY(-50%) centring against the field is unaffected. (AC3 p2.) */
      .pw-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:none;border:0;color:var(--dim,#8a94a6);font-size:9px;letter-spacing:1px;cursor:pointer;padding:6px 8px;font-weight:600;min-height:24px;display:inline-flex;align-items:center;justify-content:center}
      .pw-toggle:hover{color:var(--accent,#3ad36a)}
      .pw-meter{height:4px;border-radius:3px;background:rgba(255,255,255,.09);overflow:hidden;margin-top:8px}
      .pw-meter > i{display:block;height:100%;width:0;transition:width .2s ease,background .2s ease;background:var(--down,#f85149)}
      .pw-reqs{margin-top:8px;font-size:9.5px;line-height:1.75;color:var(--muted,#6b7280);letter-spacing:.3px}
      .pw-reqs span{display:inline-block;margin-right:10px;white-space:nowrap}
      .pw-reqs .ok{color:var(--up,#3fb950)}
      .pw-reqs .ok::before{content:'✓ '}
      .pw-reqs .no::before{content:'○ '}
      .caps-hint{display:none;margin-top:6px;font-size:9.5px;color:var(--warn,#d29922);letter-spacing:.5px}
      .auth-switch{text-align:center;margin-top:12px;font-size:10px;letter-spacing:.5px}
      .auth-switch a{color:var(--dim,#8a94a6);text-decoration:none;cursor:pointer}
      .auth-switch a:hover{color:var(--accent,#3ad36a)}
      .auth-switch .sep{color:var(--muted,#4b5563);margin:0 8px}

/* ── advisor surface ───────────────────────────────────────────────────── */
        /* Scoped to #advisor-root so it cannot collide with terminal styles. */
        #advisor-root{margin-top:18px}
        #advisor-root .adv-strip{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:16px}
        #advisor-root .adv-grid{display:grid;grid-template-columns:330px 1fr;gap:18px}
        #advisor-root .adv-list .item{cursor:pointer;margin-bottom:10px}
        #advisor-root .adv-list .item .nm{font-weight:650}
        #advisor-root .adv-list .item .mc{font-size:12px;color:var(--mp-text-muted);margin-top:2px}
        #advisor-root .stack>*+*{margin-top:14px}
        #advisor-root .arow{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
        #advisor-root .between{display:flex;gap:12px;align-items:center;justify-content:space-between}
        #advisor-root label{font-size:12px;color:var(--mp-text-muted);display:block;margin:8px 0 3px}
        #advisor-root input,#advisor-root textarea,#advisor-root select{font:inherit;color:var(--mp-text);
          background:var(--mp-inset);border:1px solid var(--mp-border-2);border-radius:var(--mp-r-sm);padding:8px 10px;width:100%}
        #advisor-root textarea{resize:vertical}
        #advisor-root .field-inline{display:flex;gap:10px}
        #advisor-root .field-inline input{flex:1}
        #advisor-root .insight{margin-bottom:10px}
        #advisor-root .insight .top{display:flex;align-items:center;gap:9px;margin-bottom:7px}
        #advisor-root .act{font-size:9px;font-weight:800;letter-spacing:.08em;padding:2px 7px;border-radius:5px;text-transform:uppercase}
        #advisor-root .act.accumulate{background:color-mix(in srgb,var(--mp-success) 16%,transparent);color:var(--mp-success)}
        #advisor-root .act.watch{background:color-mix(in srgb,var(--mp-primary) 16%,transparent);color:var(--mp-primary)}
        #advisor-root .act.hold{background:color-mix(in srgb,var(--mp-warn) 16%,transparent);color:var(--mp-warn)}
        #advisor-root .act.reduce,#advisor-root .act.exit,#advisor-root .act.avoid{background:color-mix(in srgb,var(--mp-danger) 16%,transparent);color:var(--mp-danger)}
        #advisor-root .tick{font-family:var(--mp-font-mono);font-size:11px;color:var(--mp-text-dim)}
        #advisor-root .insight .ttl{font-weight:650}
        #advisor-root .insight .body{color:var(--mp-text-2);margin:5px 0}
        #advisor-root .insight .risk{font-size:12px;color:var(--mp-warn)}
        #advisor-root .insight .disc{font-size:11px;color:var(--mp-text-dim);margin-top:8px;border-top:1px dashed var(--mp-border-2);padding-top:7px}
        #advisor-root .stars{color:var(--mp-warn);letter-spacing:2px}
        #advisor-root .agg{display:flex;align-items:baseline;gap:10px}
        #advisor-root .agg .big{font-family:var(--mp-font-head);font-weight:800;font-size:30px}
        #advisor-root .dist{margin:12px 0}
        #advisor-root .dist .bar{display:flex;align-items:center;gap:9px;font-size:12px;color:var(--mp-text-muted);margin:3px 0}
        #advisor-root .dist .track{height:6px;background:var(--mp-inset);border-radius:4px;flex:1;overflow:hidden}
        #advisor-root .dist .fill{height:100%;background:var(--mp-grad-primary)}
        #advisor-root .review{border-top:1px solid var(--mp-border);padding:9px 0}
        #advisor-root .verified{font-size:9px;font-weight:800;letter-spacing:.06em;color:var(--mp-success);
          background:rgba(52,211,182,.12);border:1px solid rgba(52,211,182,.3);border-radius:var(--mp-r-pill);padding:1px 7px;margin-left:7px}
        #advisor-root .aerr{color:var(--mp-danger);font-size:12px;margin-top:6px;min-height:15px}
        #advisor-root .amuted{color:var(--mp-text-muted)}
        /* community board (chatboard) — ported from advisor.html */
        #advisor-root .pills{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
        #advisor-root .pill{font-size:11px;font-weight:600;padding:3px 10px;border-radius:var(--mp-r-pill);cursor:pointer;
          border:1px solid var(--mp-border-2);background:var(--mp-inset);color:var(--mp-text-muted)}
        #advisor-root .pill.is-on{background:var(--mp-grad-primary);color:#fff;border-color:transparent}
        #advisor-root .bpost{display:flex;gap:10px;padding:9px 0;border-top:1px solid var(--mp-border)}
        #advisor-root .bpost .votes{display:flex;flex-direction:column;align-items:center;min-width:34px}
        #advisor-root .vbtn{cursor:pointer;background:none;border:none;color:var(--mp-text-dim);font-size:13px;padding:1px 6px;line-height:1}
        #advisor-root .vbtn.on-up{color:var(--mp-success)} #advisor-root .vbtn.on-dn{color:var(--mp-danger)}
        #advisor-root .vscore{font-family:var(--mp-font-mono);font-size:12px;font-weight:700}
        #advisor-root .bpost .ttl{font-weight:650;cursor:pointer}
        #advisor-root .bpost .ttl:hover{color:var(--mp-primary)}
        #advisor-root .btype{font-size:9px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;padding:1px 6px;border-radius:4px;
          background:color-mix(in srgb,var(--mp-primary) 14%,transparent);color:var(--mp-primary);margin-right:6px}
        #advisor-root .btype.question{background:color-mix(in srgb,var(--mp-warn) 14%,transparent);color:var(--mp-warn)}
        #advisor-root .btype.code{background:color-mix(in srgb,var(--mp-success) 13%,transparent);color:var(--mp-success)}
        #advisor-root .btype.document,#advisor-root .btype.pin{background:rgba(160,120,255,.16);color:#b49aff}
        #advisor-root .bmeta{font-size:11px;color:var(--mp-text-dim);margin-top:2px}
        #advisor-root .btag{font-size:10px;color:var(--mp-primary);background:color-mix(in srgb,var(--mp-primary) 10%,transparent);border-radius:4px;padding:1px 6px;margin-right:4px}
        #advisor-root .cmt{border-left:2px solid var(--mp-border-2);padding:7px 0 2px 10px;margin-top:8px}
        #advisor-root .cmt.accepted{border-left-color:var(--mp-success)}
        #advisor-root .cmt .who{font-size:11px;color:var(--mp-text-dim)}
        #advisor-root .cmt .bd{margin:3px 0;color:var(--mp-text-2)}
        #advisor-root .cmt .ops{display:flex;gap:10px;align-items:center;font-size:11px}
        #advisor-root .lnk{cursor:pointer;color:var(--mp-primary);background:none;border:none;font-size:11px;padding:0}
        #advisor-root .ai-out{background:var(--mp-inset);border:1px solid var(--mp-border-2);border-radius:var(--mp-r-sm);
          padding:10px;margin-top:8px;font-size:12.5px;white-space:pre-wrap;color:var(--mp-text-2)}
        #advisor-root pre.bcode{background:var(--mp-inset);border:1px solid var(--mp-border-2);border-radius:var(--mp-r-sm);
          padding:9px;overflow:auto;font-family:var(--mp-font-mono);font-size:12px}
        #advisor-root .asub{font-size:12px;color:var(--mp-text-muted)}
        /* ── Professional polish (spacing, feedback, empty states, mobile) ──── */
        #advisor-root .adv-strip{padding:9px 12px;background:var(--mp-inset);border:1px solid var(--mp-border);border-radius:var(--mp-r-sm)}
        #advisor-root .adv-list .item{padding:12px 13px;border-radius:var(--mp-r-sm);transition:border-color .15s ease,transform .06s ease}
        #advisor-root .adv-list .item:hover{border-color:var(--mp-primary)}
        #advisor-root .adv-list .item:active{transform:translateY(1px)}
        #advisor-root .adv-list .item .mc{margin-top:4px}
        /* Centered, breathing empty/loading states inside cards & lists */
        #advisor-root .mp-card>.amuted, #advisor-root .adv-list>.amuted,
        #advisor-root #adv-detail>.mp-card>.amuted{display:block;text-align:center;padding:22px 14px}
        #advisor-root .adv-list>.aerr, #advisor-root #adv-detail .aerr{text-align:center;padding:8px 0}
        @media(max-width:820px){
          #advisor-root .adv-grid{grid-template-columns:1fr}
          #advisor-root #adv-ctrls{margin-left:0!important;width:100%;flex-wrap:wrap}
          #advisor-root .adv-strip{flex-direction:column;align-items:flex-start}
          #advisor-root .adv-strip .mp-btn{min-height:42px;flex:1 1 auto}
        }

        /* ── Advisor Admin console (works in both the host Admin tab and the
              in-page ⚙ Manage panel; self-contained, mobile-first) ────────── */
        .aa-console{font-size:13px}
        .aa-console .aa-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}
        .aa-console .aa-kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:10px;margin-bottom:16px}
        .aa-console .aa-kpi{background:var(--mp-inset);border:1px solid var(--mp-border);border-radius:10px;padding:10px 8px;text-align:center}
        .aa-console .aa-kpi .v{font-family:var(--mp-font-head);font-weight:800;font-size:20px;line-height:1.1}
        .aa-console .aa-kpi .l{font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--mp-text-muted);margin-top:3px}
        .aa-console .aa-tabs{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--mp-border);margin-bottom:14px}
        .aa-console .aa-tab{appearance:none;background:transparent;border:0;border-bottom:2px solid transparent;color:var(--mp-text-muted);font:inherit;font-weight:650;padding:8px 11px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
        .aa-console .aa-tab[aria-selected="true"]{color:var(--mp-text);border-bottom-color:var(--mp-primary)}
        .aa-console .aa-tab .cnt{font-size:10px;min-width:15px;text-align:center;padding:1px 5px;border-radius:9px;background:color-mix(in srgb,var(--mp-primary) 24%,transparent);color:var(--mp-text)}
        .aa-console .aa-row{display:flex;gap:12px;align-items:flex-start;justify-content:space-between;padding:10px 0;border-top:1px solid var(--mp-border)}
        .aa-console .aa-row:first-child{border-top:0}
        .aa-console .aa-row .meta{min-width:0}
        .aa-console .aa-row .nm{font-weight:650;word-break:break-word}
        .aa-console .aa-row .sub{font-size:12px;color:var(--mp-text-muted);margin-top:2px;word-break:break-word}
        .aa-console .aa-actions{display:flex;gap:8px;flex-wrap:wrap;flex-shrink:0}
        .aa-console .aa-empty{color:var(--mp-text-muted);padding:18px 0;text-align:center}
        .aa-console .aa-err{color:var(--mp-danger);font-size:12px;margin-top:8px;min-height:15px}
        .aa-console .aa-sec-title{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--mp-text-muted);margin:2px 0 8px}
        .aa-console .aa-field{margin-bottom:12px}
        .aa-console .aa-field>label{display:block;font-size:11px;letter-spacing:.03em;text-transform:uppercase;color:var(--mp-text-muted);margin-bottom:5px}
        .aa-console .aa-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
        .aa-console input,.aa-console select,.aa-console textarea{font:inherit;color:var(--mp-text);background:var(--mp-inset);border:1px solid var(--mp-border-2);border-radius:8px;padding:8px 10px;width:100%;box-sizing:border-box}
        .aa-console textarea{resize:vertical;font-family:var(--mp-font-mono);font-size:12px}
        .aa-console .aa-mini{font-size:12px}
        .aa-console .aa-pill{font-size:9px;font-weight:800;letter-spacing:.05em;padding:2px 7px;border-radius:20px;text-transform:uppercase;white-space:nowrap}
        .aa-console .aa-pill.ok{background:color-mix(in srgb,var(--mp-success) 16%,transparent);color:var(--mp-success)}
        .aa-console .aa-pill.warn{background:color-mix(in srgb,var(--mp-warn) 16%,transparent);color:var(--mp-warn)}
        .aa-console .aa-pill.dim{background:var(--mp-inset);color:var(--mp-text-muted)}
        @media(max-width:640px){
          .aa-console .aa-row{flex-direction:column;gap:8px}
          .aa-console .aa-actions{width:100%}
          .aa-console .aa-actions .mp-btn{flex:1}
          .aa-console .aa-kpis{grid-template-columns:repeat(auto-fill,minmax(76px,1fr))}
        }

/* ── signals ───────────────────────────────────────────────────────────── */
        /* Friendly, device-responsive "why it wasn't executed" messaging */
        .sig-reason{display:inline-flex;gap:5px;align-items:flex-start;font-size:11px;line-height:1.35;max-width:230px}
        .sig-reason .ic{flex:none}
        .sig-reason .rx{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
        .sig-reason--blocked{color:var(--yellow,#e3b341)}
        .sig-reason--failed{color:var(--down,#f85149)}
        .sig-reason--info{color:var(--muted)}
        /* Explainer banner in the trade-log modal */
        .not-exec{display:flex;gap:12px;align-items:flex-start;border-radius:10px;padding:13px 15px;margin-bottom:20px;border:1px solid var(--border)}
        .not-exec--blocked{background:color-mix(in srgb,var(--yellow,#e3b341) 9%,transparent);border-color:color-mix(in srgb,var(--yellow,#e3b341) 34%,transparent)}
        .not-exec--failed{background:color-mix(in srgb,var(--down,#f85149) 9%,transparent);border-color:color-mix(in srgb,var(--down,#f85149) 34%,transparent)}
        .not-exec--info{background:var(--surface2);border-color:var(--border)}
        .not-exec .ne-ic{font-size:20px;line-height:1.1;flex:none}
        .not-exec .ne-title{font-weight:650;margin-bottom:3px}
        .not-exec .ne-detail{font-size:13px;color:var(--muted);line-height:1.5}
        .tradelog-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:22px}
        @media(max-width:680px){
          .sig-reason{max-width:160px}
          .sig-reason .rx{-webkit-line-clamp:4}
          .tradelog-grid{grid-template-columns:1fr;gap:16px}
        }

        /* ── Advisor: the last three inline style attributes (Epic P / P3 step 16) ──
           These were recorded in step 12 as "must stay inline", which was too
           pessimistic — and load-bearing, because three structurally-required
           attributes would mean style-src-attr could NEVER drop 'unsafe-inline'
           and the epic's goal was unreachable. Both reasons had ordinary fixes.

           1. #adv-bellCount carried style="margin-left:4px" because
              refreshNotifCount() assigned el.style.cssText wholesale, and a class
              would survive `cssText = ''` where the inline declaration did not.
              The sledgehammer is gone: the badge is a class now, toggled, so there
              is nothing to wipe and nothing to leak. */
        #advisor-root .mp-notif-count.is-unread{margin-left:4px;background:var(--mp-danger);color:#fff;border-radius:999px;padding:0 6px;font-size:10px}

        /* 2+3. The success-stories broadcast checkbox and its label lost to
           `#advisor-root label{display:block}` and `#advisor-root input{width:100%}`
           — ID-selector defaults at (1,0,1), which no stack of plain classes can
           outrank. The answer is not a stronger class but a page-scoped override at
           matching specificity: these are (1,2,0) and (1,2,1), so they win on
           specificity rather than on source order, and the defaults keep applying
           to every other label and input inside #advisor-root. */
        #advisor-root label.mp-check-inline{display:flex;gap:6px;align-items:center}
        #advisor-root .mp-check-inline input[type=checkbox]{width:auto}

  /* Utility-vs-ID, the step 16 lesson recurring. advisor.js's converted markup
     lives inside #advisor-root, and `#advisor-root .bpost` above is (1,1,0) —
     an ID beats ANY number of classes, so `.u-bdt-none.u-bdt-none` at (0,2,0)
     could not turn the border off and the board posts grew a rule they had not
     had. The cascade harness caught it as the one difference in the advisor
     conversion, on a surface it had only just been taught to reach.
     (1,2,0) beats (1,1,0) on specificity, so this needs no source-order luck —
     which matters, because utilities.css is NOT the last sheet: the mod-*.css
     tail is linked after it. */
  #advisor-root .bpost.u-bdt-none{border-top:none}

/* ── Reports: the "Change default…" link is a row action, not prose (Epic Q / Q2)
   It measured 95.30x15.90 — under WCAG 2.2 AA 2.5.8's 24x24 floor and nowhere
   near the 44px touch bar. 2.5.8's inline exception does not cover it: the
   exception is for a link "in a sentence, or whose size is otherwise
   constrained by the line-height of non-target text", and this sits alone at
   the end of a control row. Scoped to that row rather than floored globally,
   because a blanket `a{min-height:44px}` would wreck the line rhythm of the
   legal and docs pages, which is exactly what the exception exists to protect. */
#rep-recipient-row a { display: inline-flex; align-items: center; min-height: 24px; }
@media (max-width: 640px) {
  #rep-recipient-row a { min-height: 44px; }
}
