/* ============================================================================
   AIon console — what 3D's publish.css does not already cover
   ============================================================================
   The drop target, the message box and the Publish button come from
   ../3d/publish.css, so the consoles look like one tool. This file adds the
   summary, the calibration and parameter tables, the diff, and the frame
   around the preview — which is the real app, mounted below.

   Interface ramp only — --ink, --line, --plane. The warm brand greys are for
   charts and print (§6), and nothing here is either.
   ========================================================================= */

.pub{max-width:none}
.ai-console{max-width:56rem}

.ai-summary{
  margin:18px 0 0;padding:14px 16px;background:var(--plane);
  border:1px solid var(--line);border-radius:12px;font-size:.92rem;color:var(--ink-2);
}
.ai-summary p{margin:0 0 8px}
.ai-summary p:last-child{margin-bottom:0}
.ai-summary b{color:var(--ink)}
.ai-note{background:var(--plane-2);border-left:3px solid var(--ink-3);padding:8px 12px;border-radius:0 8px 8px 0;font-size:.84rem}
.ai-warn{background:var(--neg-bg);border-left:3px solid var(--neg);padding:9px 12px;border-radius:0 8px 8px 0;color:var(--ink)}
.ai-warn-inline{color:var(--neg);font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin-left:6px}
.ai-dim{color:var(--ink-3)}
.ai-first{margin:8px 0 0;color:var(--ink-2)}

.ai-calib,.ai-params,.ai-diff{
  margin:20px 0 0;padding:18px 20px;border:1px solid var(--line);border-radius:12px;
  background:var(--surface);box-shadow:0 1px 2px rgba(18,19,26,.04);
}
.ai-calib h2,.ai-diff h2{margin:0 0 4px;font-size:1.05rem;letter-spacing:-.01em}
.ai-calib p,.ai-params p,.ai-diff p{font-size:.86rem;line-height:1.5}
.ai-tablewrap{overflow-x:auto}
.ai-params summary{cursor:pointer;font-weight:600;font-size:1rem}
.ai-params input{font:inherit;font-size:.8rem;padding:3px 6px;border:1px solid var(--line);border-radius:6px;text-align:right}
.ai-pbtns{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.ai-btn{
  font:inherit;font-size:.8rem;font-weight:600;cursor:pointer;
  background:var(--npb-red);border:1px solid var(--npb-red);color:#fff;padding:.4rem .9rem;border-radius:var(--r-btn);
}
.ai-btn.ghost{background:var(--surface);color:var(--ink-2);border-color:var(--line)}
.ai-btn.ghost:hover{border-color:#c7ccd8;color:var(--ink)}

.ai-diff h3{margin:0 0 6px;font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
.ai-diff h3 span{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:20px;background:var(--plane-2);color:var(--ink-2);font-size:.74rem;letter-spacing:0}
.ai-dblock{margin:16px 0 0;padding-top:14px;border-top:1px solid var(--line-2)}
.ai-dblock ul{margin:0;padding:0;list-style:none;font-size:.9rem}
.ai-dblock li{padding:2px 0;color:var(--ink-2)}
.ai-dblock li b{color:var(--ink)}
.ai-dblock.is-new h3 span{background:var(--pos-bg);color:var(--pos)}
.ai-dblock.is-gone h3 span{background:var(--neg-bg);color:var(--neg)}
.ai-dblock.is-gone li b{color:var(--neg)}

/* The preview is the app. Framed quietly so nobody mistakes it for the site. */
.pubpreview .ai-frame{
  border:1px solid var(--line);border-radius:12px;overflow:hidden;
}
.pubpreview .ai-frame > .aion{padding:0 16px}
