/* Pro / Automate panel — part of the graphite Master Chain instrument (tokens from master-chain.css #mcs).
   Violet = Pro. Closed it is one line with an unlock button; open it shows the Pro processors and the buy box first. */
.mcs-pro { margin: 0 0 14px; border: 1px solid rgba(179,155,255,.35); border-radius: 4px; background: linear-gradient(180deg, rgba(124,92,240,.10), rgba(124,92,240,.03) 60%), var(--mc-card); color: var(--mc-text); min-width: 0; scroll-margin-top: 90px; }
.mcs-pro.is-active { border-color: rgba(127,224,182,.6); }
.mcs-pro-expand > summary { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; min-height: 54px; padding: 10px 16px; cursor: pointer; list-style: none; }
.mcs-pro-expand > summary::-webkit-details-marker { display: none; }
.mcs-pro-expand > summary::before { content: "▸"; color: var(--mc-pro); font-size: .9rem; }
.mcs-pro-expand[open] > summary::before { content: "▾"; }
.mcs-pro__title { display: inline-flex; align-items: center; gap: 10px; margin-right: auto; font-size: .98rem; }
.mcs-pro__badge { font-family: var(--font-mono, 'IBM Plex Mono', monospace); font-size: .64rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--mc-pro); border: 1px solid rgba(179,155,255,.6); border-radius: 2px; padding: 2px 6px; }
.mcs-pro.is-active .mcs-pro__badge { color: var(--mc-on); border-color: var(--mc-on); }
.mcs-pro__state { font-size: .82rem; color: var(--mc-dim); }
.mcs-pro__cta { min-height: 32px; padding: 0 14px; border: 1px solid #8b74e6; border-radius: 2px; background: #6c56c8; color: #fff; font: inherit; font-family: var(--font-mono, 'IBM Plex Mono', monospace); font-size: .7rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; cursor: pointer; }
.mcs-pro__cta[hidden] { display: none; }
.mcs-pro__cta:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.mcs-pro__body { padding: 2px 16px 16px; }
.mcs-pro__lead { margin: 0 0 12px; font-size: .88rem; color: var(--mc-dim); max-width: 80ch; }

/* the three Pro processors: colour dot = the same colour the module gets in the chain */
.mcs-pro-modules { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 0 0 12px; }
.mcs-pro-module { position: relative; display: grid; gap: 3px; text-align: left; padding: 10px 12px 10px 14px; background: rgba(31,35,39,.35); color: var(--mc-text); border: 1px solid rgba(255,255,255,.14); border-radius: 3px; cursor: pointer; font: inherit; font-size: .8rem; line-height: 1.35; overflow: hidden; }
.mcs-pro-module::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 4px; background: #b18cff; }
.mcs-pro-module[data-pro-processor=exciter]::before { background: #e48cf0; }
.mcs-pro-module[data-pro-processor=multiband]::before { background: #8fa2ff; }
.mcs-pro-module__title { font-weight: 700; font-size: .9rem; }
.mcs-pro-module__line { color: var(--mc-dim); }
.mcs-pro-module__state { font-size: .74rem; font-weight: 600; color: var(--mc-pro); }
.mcs-pro-module:hover { border-color: var(--mc-pro); }
.mcs-pro-module.is-wanted { border-color: var(--mc-pro); box-shadow: 0 0 0 2px rgba(179,155,255,.5); }
.mcs-pro-module.is-active { border-color: rgba(127,224,182,.6); }
.mcs-pro-module.is-active .mcs-pro-module__state { color: var(--mc-on); }
.mcs-pro-module:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }

/* buy box: free check → payment → unlocked */
.mcs-buy { margin: 0 0 12px; padding: 14px 16px; border-radius: 3px; background: rgba(20,18,36,.22); border: 1px solid rgba(179,155,255,.35); scroll-margin: 120px; }
.mcs-buy[hidden] { display: none; }
.mcs-buy > summary { list-style: none; cursor: default; font-weight: 700; font-size: 1rem; margin-bottom: 8px; }
.mcs-buy > summary::-webkit-details-marker { display: none; }
.mcs-buy.is-attention { animation: mcs-buy-pulse 1.4s ease-out 1; }
@keyframes mcs-buy-pulse { 0% { box-shadow: 0 0 0 0 rgba(179,155,255,.75); } 100% { box-shadow: 0 0 0 14px rgba(179,155,255,0); } }
.mcs-buy p { margin: 6px 0; font-size: .85rem; color: var(--mc-dim); }
.mcs-pro-track { display: flex; flex-wrap: wrap; gap: 6px 12px; margin: 4px 0 8px; font-size: .9rem; }
.mcs-pro-track #au-fileinfo { color: var(--mc-dim); }
.mcs-pro-track__label { font-family: var(--font-mono, 'IBM Plex Mono', monospace); font-size: .66rem; letter-spacing: .1em; text-transform: uppercase; color: var(--mc-dim); align-self: center; }
.mcs-buy__note { margin: 6px 0 0; font-size: .78rem; color: var(--mc-dim); }
.mcs-buy__row { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; }
.au-consent { display: flex; align-items: flex-start; gap: 10px; flex: 1 1 320px; margin: 0; font-size: .86rem; line-height: 1.45; color: var(--mc-text); cursor: pointer; }
.au-consent input { flex: none; width: 18px; height: 18px; margin: 1px 0 0; accent-color: var(--mc-pro-strong); }
#mcs .mcs-buy .btn-technical, #mcs #au-go { min-height: 40px; padding: 0 18px; border: 1px solid #8b74e6; border-radius: 2px; background: #6c56c8; color: #fff; font-weight: 600; }
#mcs .mcs-buy .btn-technical:disabled { background: transparent; border-color: rgba(179,155,255,.45); color: rgba(225,215,255,.75); opacity: 1; }
.mcs-buy__steps { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 10px 0 0; padding: 0; list-style: none; counter-reset: step; font-size: .76rem; color: var(--mc-dim); }
.mcs-buy__steps li { counter-increment: step; }
.mcs-buy__steps li::before { content: counter(step); display: inline-flex; align-items: center; justify-content: center; width: 17px; height: 17px; margin-right: 6px; border-radius: 2px; background: rgba(179,155,255,.3); color: #fff; font-size: .68rem; font-weight: 700; }
#au-progress { width: 100%; max-width: 620px; margin: 12px 0 6px; }
#au-buy { display: grid; gap: 4px; justify-items: start; margin-top: 8px; }

/* character / context: only once Pro is unlocked */
.mcs-pro__controls { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; gap: 10px; align-items: end; margin: 4px 0 8px; }
.mcs-pro__controls.is-locked { display: none; }
.mcs-pro__controls label { display: grid; gap: 4px; font-size: .8rem; color: var(--mc-dim); min-width: 0; }
.mcs-pro__controls .field-hint, .mcs-pro__controls .mcs-pro-explore { grid-column: 1 / -1; margin: 0; }
.mcs-pro select { min-width: 0; width: 100%; height: 38px; background: var(--mc-field); border: 1px solid var(--mc-line); color: var(--mc-text); padding: 0 10px; border-radius: 3px; }
.mcs-pro-gate { display: none; }
.mcs-pro details:not(.mcs-pro-expand):not(.mcs-buy) > summary { cursor: pointer; font-size: .84rem; color: var(--mc-text); }
.mcs-pro-explore li { margin: 6px 0; font-size: .82rem; color: var(--mc-dim); }
.mcs-pro__changes { font-size: .82rem; color: #9fe6cb; max-height: 7em; overflow: auto; }
.mcs-pro__changes:empty, .mcs-pro__body:has(#au-panel-result:not([hidden]) #au-proposal:not([hidden])) .mcs-pro__changes { display: none; }
#au-panel-file p { margin: 0 0 8px; font-size: .86rem; color: var(--mc-dim); }

/* proposal: applied only on a click, undoable */
.au-proposal { margin: 8px 0; padding: 12px 14px; border: 1px solid rgba(255,255,255,.14); border-left: 4px solid var(--mc-pro); border-radius: 3px; background: rgba(31,35,39,.35); }
.au-proposal.is-applied { border-left-color: var(--mc-on); }
.au-proposal__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 6px 12px; }
.au-tag { font-size: .74rem; padding: 2px 10px; border-radius: 2px; border: 1px solid rgba(255,255,255,.25); color: var(--mc-dim); }
.au-proposal.is-applied .au-tag { border-color: var(--mc-on); color: var(--mc-on); }
.au-proposal ul { margin: 8px 0 0; padding-left: 1.2em; font-size: .84rem; line-height: 1.5; color: var(--mc-dim); }
.au-proposal__actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.mcs-mod.is-automated { border-color: #6fd0b4; }
.mcs-mod__text .mcs-mod__delta { color: #9fe6cb; max-width: 100%; font-size: .68rem; }
.mcs-mod__delta:empty { display: none; }

/* measurements and reasoning (JS-built) */
.au-measure { display: grid; border: 1px solid rgba(255,255,255,.12); border-radius: 3px; background: rgba(31,35,39,.3); margin: 10px 0; overflow: hidden; font-size: .84rem; }
.au-measure__row { display: grid; grid-template-columns: minmax(130px, 1.2fr) minmax(0, 1fr) minmax(0, 1.4fr); gap: 12px; padding: 8px 12px; align-items: baseline; border-top: 1px solid rgba(255,255,255,.08); }
.au-measure__row:first-child { border-top: 0; }
.au-measure__row--head { font-weight: 600; font-size: .78rem; color: var(--mc-dim); }
.au-measure__v { font-variant-numeric: tabular-nums; }
.au-measure__h { font-size: .8rem; color: var(--mc-dim); }
#au-verify .au-measure__row { grid-template-columns: minmax(90px, .8fr) repeat(3, minmax(0, 1fr)); }
.au-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0; padding: 0; list-style: none; }
.au-chip { display: inline-block; padding: 3px 10px; font-size: .8rem; border: 1px solid rgba(255,255,255,.2); border-radius: 2px; }
.au-decisions { list-style: none; margin: 12px 0; padding: 0; display: grid; gap: 8px; }
.au-decision { padding: 10px 12px; border: 1px solid rgba(255,255,255,.12); border-radius: 3px; background: rgba(31,35,39,.3); }
.au-decision--skipped { border-style: dashed; }
.au-decision__head { display: flex; justify-content: space-between; gap: 12px; font-size: .74rem; color: var(--mc-dim); text-transform: uppercase; letter-spacing: .05em; }
.au-decision--applied .au-decision__status { color: var(--mc-on); }
.au-decision__title { margin: 4px 0; font-size: .92rem; }
.au-decision__detail, .au-evidence, .au-verify-note { margin: 0; color: var(--mc-dim); font-size: .84rem; line-height: 1.5; }
.au-evidence { margin-top: 6px; padding-left: 1.2em; font-variant-numeric: tabular-nums; }

@media (max-width: 760px) {
  .mcs-pro-modules { grid-template-columns: 1fr; }
  .mcs-pro__controls { grid-template-columns: minmax(0, 1fr); }
  .mcs-pro__state { display: none; }
}
@media (max-width: 640px) { .au-measure__row, #au-verify .au-measure__row { grid-template-columns: minmax(0, 1fr); gap: 2px; } .au-measure__row--head { display: none; } }
@media (prefers-reduced-motion: reduce) { .mcs-buy.is-attention { animation: none; } }
