/* Athena portal teasers — reusable mini-console previews of each Function's portal.
   Shared shell + primitives; per-page markup supplies the content. Animations reveal
   on scroll-into-view (.pt-console.live, applied by portal-teaser.js). */
.pt-wrap{margin-top:30px}
.pt-console{position:relative;border:1px solid rgba(30,44,64,.9);border-radius:18px;background:linear-gradient(160deg,#080f1c,#0a1322);overflow:hidden;box-shadow:0 34px 90px -46px rgba(0,0,0,.85)}
.pt-cbar{display:flex;align-items:center;gap:8px;padding:13px 18px;border-bottom:1px solid rgba(27,39,64,.8);background:rgba(8,13,24,.6)}
.pt-cbar i{width:10px;height:10px;border-radius:50%;background:rgba(72,90,124,.7);flex:none}
.pt-cbar i:nth-child(1){background:rgba(255,95,109,.6)}
.pt-cbar i:nth-child(2){background:rgba(255,190,90,.55)}
.pt-cbar i:nth-child(3){background:rgba(62,224,240,.55)}
.pt-ctitle{margin-left:8px;font-family:'JetBrains Mono',monospace;font-size:11.5px;letter-spacing:.04em;color:#8ea2c4}
.pt-live{margin-left:auto;display:inline-flex;align-items:center;gap:7px;font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#3EE0F0}
.pt-live::before{content:"";width:7px;height:7px;border-radius:50%;background:#3EE0F0;box-shadow:0 0 8px #3EE0F0;animation:ptpulse 2s infinite}
@keyframes ptpulse{0%,100%{opacity:1}50%{opacity:.32}}
.pt-body{padding:22px}
.pt-grid2{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.pt-grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}
.pt-colh{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#6b7c9c;margin:0 0 11px}
/* KPI */
.pt-kpi{border:1px solid rgba(30,44,64,.8);border-radius:12px;background:rgba(12,19,34,.5);padding:14px 15px}
.pt-kpi .v{font-family:'Saira',sans-serif;font-size:28px;font-weight:800;color:#fff;line-height:1}
.pt-kpi .v small{font-size:14px;color:#3EE0F0;font-weight:700}
.pt-kpi .v.vio{color:#b3a6ee}
.pt-kpi .l{font-family:'JetBrains Mono',monospace;font-size:9.5px;letter-spacing:.07em;text-transform:uppercase;color:#6b7c9c;margin-top:9px}
/* rows (labelled progress) */
.pt-rows{display:flex;flex-direction:column;gap:13px}
.pt-row .lab{display:flex;justify-content:space-between;font-size:12.5px;color:#9fb1cd;margin-bottom:6px}
.pt-row .lab b{color:#fff;font-weight:600}
.pt-row .lab .mut{color:#6b7c9c}
.pt-track{height:7px;border-radius:999px;background:rgba(38,52,79,.7);overflow:hidden}
.pt-track i{display:block;height:100%;width:0;border-radius:999px;background:linear-gradient(90deg,#5B4AB7,#3EE0F0);transition:width 1.1s cubic-bezier(.2,.7,.2,1)}
.pt-track i.cy{background:linear-gradient(90deg,#1c6e7d,#3EE0F0)}
/* streaming list */
.pt-list{display:flex;flex-direction:column;gap:9px}
.pt-li{display:flex;gap:10px;align-items:center;font-size:12.5px;color:#a8b8d4;padding:9px 11px;border:1px solid rgba(27,39,64,.7);border-radius:9px;background:rgba(12,19,34,.4)}
.pt-li .tag{font-family:'JetBrains Mono',monospace;font-size:9.5px;letter-spacing:.03em;color:#3EE0F0;border:1px solid rgba(62,224,240,.3);border-radius:5px;padding:2px 6px;flex:none}
.pt-li .tag.v{color:#9d8fe0;border-color:rgba(122,104,214,.4)}
.pt-li .tag.warn{color:#ffbe6b;border-color:rgba(255,190,90,.4)}
.pt-li .tag.bad{color:#ff8aa0;border-color:rgba(255,95,109,.4)}
.pt-li .tag.ok{color:#5fe3a0;border-color:rgba(95,227,160,.4)}
.pt-li .meta{margin-left:auto;font-family:'JetBrains Mono',monospace;font-size:10.5px;color:#5e6b87;flex:none}
.pt-li.ptnew{animation:ptslide .5s ease both}
@keyframes ptslide{from{opacity:0;transform:translateY(-8px)}}
/* mini bar chart */
.pt-spark{display:flex;align-items:flex-end;gap:5px;height:54px}
.pt-spark i{flex:1;border-radius:3px 3px 0 0;background:linear-gradient(180deg,#3EE0F0,#1c6e7d);height:var(--h,40%);transform:scaleY(0);transform-origin:bottom;transition:transform 1s cubic-bezier(.2,.7,.2,1)}
/* chips */
.pt-chips{display:flex;flex-wrap:wrap;gap:8px}
.pt-chip{font-size:11.5px;color:#c3cde0;padding:6px 11px;border:1px solid rgba(38,52,79,.8);border-radius:999px;background:rgba(17,25,39,.5)}
.pt-chip.on{color:#05080d;background:#3EE0F0;border-color:#3EE0F0;font-weight:600}
.pt-chip.vio{color:#05080d;background:#7A68D6;border-color:#7A68D6;font-weight:600}
/* donut/gauge number block */
.pt-gauge{display:flex;align-items:center;gap:16px}
.pt-gauge .num{font-family:'Saira',sans-serif;font-size:46px;font-weight:800;color:#fff;line-height:1}
.pt-gauge .num small{font-size:18px;color:#3EE0F0}
/* live-state reveals */
.pt-console.live .pt-track i{width:var(--w,0)}
.pt-console.live .pt-spark i{transform:scaleY(1)}
.pt-sweep{position:absolute;inset:0;pointer-events:none;overflow:hidden;opacity:0;transition:opacity .4s}
.pt-console.live .pt-sweep{opacity:1}
.pt-sweep::before{content:"";position:absolute;top:0;bottom:0;width:38%;left:-44%;background:linear-gradient(90deg,transparent,rgba(62,224,240,.06),transparent);animation:ptscan 3.6s linear infinite}
@keyframes ptscan{to{left:122%}}
@media(max-width:720px){.pt-grid2,.pt-grid3{grid-template-columns:1fr}.pt-kpi .v{font-size:25px}}
@media(prefers-reduced-motion:reduce){
  .pt-track i,.pt-spark i{transition:none}
  .pt-live::before,.pt-sweep::before,.pt-li.ptnew{animation:none}
  .pt-console.live .pt-spark i{transform:scaleY(1)}
}
