/* PAI Brain V9.3 — Fixed 720px transcript with dedicated conversation toolbar.
   Only the transcript stream and genuinely large drawers scroll. */

html,body{min-height:100%;overflow-x:hidden}
body{overflow-y:auto}
*,*::before,*::after{box-sizing:border-box}
img,svg,video,canvas,iframe{max-width:100%}
button,input,select,textarea{max-width:100%}
.ak-shell,.ak-main,.ak-left-column,.ak-card,.ak-card-head,.ak-card-head>*,.ak-side-grid,.ak-mini-card,.ak-chat-card,.ak-visual-card,.ak-slide-panel,.ak-modal-box{min-width:0}
.ak-shell{width:min(1540px,100%);margin:0 auto;padding:14px}
.ak-topbar{position:sticky;top:0;z-index:40}
.ak-main{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(390px,.82fr);gap:16px;align-items:start}
.ak-left-column{display:flex;flex-direction:column;gap:16px}

/* Visualization remains stable and proportional. */
.ak-visual-card{display:grid;grid-template-rows:auto 500px auto;overflow:hidden}
.ak-visual-stage{position:relative;width:100%;height:500px;min-height:500px;overflow:hidden;isolation:isolate}
#archCanvas{display:block;width:100%!important;height:100%!important}
.ak-hud{inset:11px}
.hud-box{max-width:46%;overflow:visible;white-space:normal;overflow-wrap:anywhere}
.hud-bottom{max-width:none}
.ak-control-strip{display:flex;flex-wrap:wrap;gap:6px;padding:9px}
.ak-control-strip .ak-btn{flex:0 1 auto;min-width:72px;padding:7px 9px;border-radius:9px;font-size:.68rem;line-height:1.15;white-space:normal}

/* Metrics stay beneath visualization and never create tiny internal scrollbars. */
.ak-side-grid{margin-top:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.ak-mini-card{height:auto;min-height:0;overflow:visible;padding:13px}
.ak-mini-card p,.ak-mini-card li{overflow-wrap:anywhere;word-break:normal}

/* Transcript panel is fixed at exactly 720px on desktop. */
.ak-chat-card{
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto auto auto;
  height:720px;
  min-height:720px;
  max-height:720px;
  overflow:hidden;
  position:sticky;
  top:92px
}
.ak-chat-card>.ak-card-head{min-height:0;padding:12px 14px}
.ak-chat-card>.ak-card-head p{font-size:.72rem;line-height:1.35}
.ak-chat-body{
  min-height:0;
  height:auto;
  max-height:none;
  overflow-y:auto;
  overflow-x:hidden;
  padding:12px;
  scroll-behavior:smooth;
  overscroll-behavior:contain;
  scrollbar-gutter:stable
}
.ak-chat-body::-webkit-scrollbar{width:10px}
.ak-chat-body::-webkit-scrollbar-track{background:rgba(255,255,255,.035)}
.ak-chat-body::-webkit-scrollbar-thumb{background:rgba(0,229,255,.28);border:2px solid transparent;background-clip:padding-box;border-radius:99px}
.ak-msg{min-width:0;gap:8px;margin-bottom:10px}
.ak-avatar{width:30px;height:30px;flex:0 0 30px;border-radius:9px}
.ak-msg .ak-bubble{min-width:0;max-width:calc(100% - 40px)}
.ak-bubble{padding:9px 11px;border-radius:12px;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}
.ak-bubble strong{font-size:.72rem}
.ak-bubble p,.ak-bubble pre,.ak-bubble code{max-width:100%;overflow-wrap:anywhere;word-break:break-word}
.ak-bubble p{font-size:.82rem;line-height:1.45}
.ak-bubble pre{overflow-x:auto;white-space:pre}

/* Conversation controls are separate from transcript. */
.ak-conversation-toolbar{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:5px;
  padding:7px 9px;
  border-top:1px solid rgba(255,255,255,.07);
  background:rgba(3,9,20,.92)
}
.ak-toolbar-btn{
  border:1px solid rgba(0,229,255,.23);
  background:rgba(0,229,255,.065);
  color:var(--text);
  border-radius:8px;
  padding:6px 8px;
  font:700 .64rem/1.15 Segoe UI,Arial,sans-serif;
  letter-spacing:.035em;
  cursor:pointer
}
.ak-toolbar-btn:hover{border-color:var(--theme);background:var(--themeSoft)}
.ak-toolbar-btn.danger{border-color:rgba(255,49,92,.34);color:#ff8ca2;background:rgba(255,49,92,.07)}
.ak-toolbar-status{margin-left:auto;color:var(--muted);font-size:.62rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:190px}

.ak-input{position:relative;bottom:auto;z-index:2;grid-template-columns:minmax(0,1fr) auto auto;gap:6px;padding:8px;background:rgba(2,8,18,.97)}
.ak-input input{min-width:0;padding:9px 10px;border-radius:9px;font-size:.78rem}
.ak-input .ak-btn{min-width:58px;padding:8px 9px;border-radius:9px;font-size:.68rem}
.ak-voice-help{margin:0;padding:6px 9px;border-width:1px 0 0;border-radius:0;font-size:.61rem;line-height:1.25;background:rgba(2,8,18,.97)}

/* Drawers are genuinely hidden until activated. */
.ak-slide-panel,.ak-code-panel{
  right:0!important;
  transform:translateX(104%);
  visibility:hidden;
  opacity:0;
  pointer-events:none;
  transition:transform .28s ease,opacity .2s ease,visibility 0s linear .28s;
  overflow-y:auto;
  overflow-x:hidden
}
.ak-slide-panel.open,.ak-code-panel.open{
  transform:translateX(0);
  visibility:visible;
  opacity:1;
  pointer-events:auto;
  transition:transform .28s ease,opacity .2s ease
}
.ak-slide-panel:not(.open),.ak-code-panel:not(.open){display:block!important}
.ak-panel-head{position:sticky;top:0;z-index:4;padding:5px 0 9px;background:rgba(5,13,28,.98)}
.ak-code-editor{max-width:100%;resize:vertical}

.ak-footer{position:relative;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:16px;padding:10px 14px;border:1px solid var(--line);border-radius:14px;background:var(--panel);font-size:.7rem;color:var(--muted)}

@media(max-width:1180px){
  .ak-main{grid-template-columns:1fr}
  .ak-chat-card{position:relative;top:auto;width:100%}
  .ak-side-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:700px){
  .ak-shell{padding:7px}
  .ak-topbar{top:0}
  .ak-status{justify-content:flex-start}
  .ak-card-head{flex-wrap:wrap}
  .ak-mode-pills{max-width:100%}
  .ak-visual-card{grid-template-rows:auto 420px auto}
  .ak-visual-stage{height:420px;min-height:420px}
  .hud-box{max-width:70%;font-size:.56rem}
  .hud-right{display:none}
  .ak-control-strip .ak-btn{flex:1 1 calc(33.333% - 5px);min-width:78px}
  .ak-side-grid{grid-template-columns:1fr}
  .ak-chat-card{height:720px;min-height:720px;max-height:720px}
  .ak-chat-card>.ak-card-head p{display:none}
  .ak-conversation-toolbar{align-items:stretch}
  .ak-toolbar-btn{flex:1 1 calc(50% - 4px)}
  .ak-toolbar-status{order:10;width:100%;max-width:none;margin-left:0}
  .ak-input{grid-template-columns:1fr auto auto}
  .ak-input input{grid-column:1/-1}
  .ak-slide-panel,.ak-code-panel{width:100vw;max-width:100vw;padding:14px}
}

@media(max-width:430px){
  .ak-toolbar-btn{flex-basis:100%}
  .ak-chat-card{height:680px;min-height:680px;max-height:680px}
}


/* PAI Brain V9.4 — Accessible news article reader */
.ak-news-reader-panel{width:min(860px,100vw)}
.ak-news-reader-status{
  padding:12px 14px;
  margin:8px 0 14px;
  border:1px solid rgba(0,229,255,.18);
  border-radius:12px;
  background:rgba(0,229,255,.055);
  color:var(--muted);
  line-height:1.45
}
.ak-news-reader-article{min-width:0}
.ak-news-reader-heading{
  display:grid;
  grid-template-columns:150px minmax(0,1fr);
  gap:14px;
  align-items:start;
  margin-bottom:12px
}
.ak-news-reader-heading img{
  width:150px;
  aspect-ratio:16/10;
  object-fit:cover;
  border-radius:13px;
  border:1px solid rgba(255,255,255,.1)
}
.ak-news-reader-heading h3{
  margin:4px 0 7px;
  font-size:1.12rem;
  line-height:1.35;
  overflow-wrap:anywhere
}
.ak-news-reader-byline{margin:0;color:var(--muted);font-size:.76rem}
.ak-news-reader-controls{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:7px;
  padding:10px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:13px;
  background:rgba(3,10,22,.78)
}
.ak-news-reader-controls .ak-btn{padding:7px 9px;font-size:.68rem}
.ak-reader-rate{
  display:flex;
  align-items:center;
  gap:6px;
  color:var(--muted);
  font-size:.7rem
}
.ak-reader-rate select{
  width:auto;
  min-width:86px;
  margin:0;
  padding:6px 8px
}
.ak-news-reader-progress{
  display:grid;
  grid-template-columns:minmax(120px,1fr) auto;
  gap:10px;
  align-items:center;
  padding:9px 2px;
  color:var(--muted);
  font-size:.7rem
}
.ak-news-reader-progress progress{width:100%;height:8px}
.ak-news-reader-text{
  padding:15px;
  border:1px solid rgba(255,255,255,.09);
  border-radius:15px;
  background:rgba(4,12,25,.9);
  color:var(--text);
  font-size:.91rem;
  line-height:1.72;
  overflow-wrap:anywhere
}
.ak-news-reader-text p{margin:0 0 1.05em}
.ak-news-reader-text p:last-child{margin-bottom:0}
.ak-news-reader-text p.ak-reading-current{
  border-left:3px solid var(--theme);
  padding-left:10px;
  background:rgba(0,229,255,.055)
}
.ak-news-reader-notice{
  padding:10px 0;
  color:var(--muted);
  font-size:.7rem;
  line-height:1.4
}
.ak-news-reader-source-link{display:inline-flex;text-decoration:none}
.ak-btn.danger{border-color:rgba(255,49,92,.36);color:#ff8ca2;background:rgba(255,49,92,.07)}

@media(max-width:620px){
  .ak-news-reader-heading{grid-template-columns:1fr}
  .ak-news-reader-heading img{width:100%;max-height:210px}
  .ak-news-reader-controls .ak-btn{flex:1 1 calc(50% - 5px)}
  .ak-reader-rate{width:100%;justify-content:space-between}
}


/* PAI Brain V9.4.2 — reader runtime diagnostics and manual fallback */
.ak-news-manual-reader{
  margin:12px 0 16px;
  padding:13px;
  border:1px solid rgba(255,255,255,.09);
  border-radius:14px;
  background:rgba(5,13,28,.72)
}
.ak-news-manual-reader .ak-panel-head{position:relative;padding:0 0 8px;background:transparent}
.ak-news-manual-reader input,
.ak-news-manual-reader textarea{width:100%;margin:6px 0}
.ak-news-manual-reader textarea{
  min-height:180px;
  resize:vertical;
  white-space:pre-wrap;
  overflow-wrap:anywhere
}
.ak-news-reader-runtime-warning{
  padding:12px;
  margin:8px 0;
  border:1px solid rgba(255,188,71,.35);
  border-radius:12px;
  background:rgba(255,188,71,.07);
  color:#ffd58a;
  line-height:1.45
}


/* PAI Brain V9.5 — Location Intelligence */
.ak-location-panel{width:min(1040px,100vw)}
.ak-location-search{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  gap:8px;
  margin:10px 0
}
.ak-location-search input{margin:0}
.ak-location-status{
  padding:11px 13px;
  margin:8px 0 13px;
  border:1px solid rgba(0,229,255,.18);
  border-radius:12px;
  background:rgba(0,229,255,.055);
  color:var(--muted);
  line-height:1.45
}
.ak-location-layout{
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);
  gap:14px
}
.ak-location-map-card,
.ak-location-explanation{
  min-width:0;
  border:1px solid rgba(255,255,255,.09);
  border-radius:15px;
  background:rgba(4,12,25,.9);
  overflow:hidden
}
.ak-location-map-card iframe{
  display:block;
  width:100%;
  height:480px;
  border:0;
  background:rgba(255,255,255,.04)
}
.ak-location-links{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  padding:10px
}
.ak-location-explanation{padding:15px}
.ak-location-explanation h3{
  margin:4px 0 9px;
  font-size:1.12rem;
  overflow-wrap:anywhere
}
.ak-location-facts{display:grid;gap:7px;margin:14px 0}
.ak-location-facts>div{
  display:grid;
  grid-template-columns:120px minmax(0,1fr);
  gap:9px;
  padding:8px 0;
  border-bottom:1px solid rgba(255,255,255,.06)
}
.ak-location-facts dt{color:var(--muted);font-size:.72rem}
.ak-location-facts dd{margin:0;overflow-wrap:anywhere}
.ak-route-modes{display:flex;flex-wrap:wrap;gap:7px;margin:12px 0}
.ak-route-directions{
  max-height:340px;
  overflow-y:auto;
  padding:11px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:12px;
  background:rgba(2,8,18,.72);
  font-size:.82rem;
  line-height:1.5
}
.ak-route-step{padding:7px 0;border-bottom:1px solid rgba(255,255,255,.06)}
.ak-route-step:last-child{border-bottom:0}
.ak-location-notice{color:var(--muted);font-size:.69rem;line-height:1.45;margin-top:12px}

@media(max-width:820px){
  .ak-location-search{grid-template-columns:1fr}
  .ak-location-layout{grid-template-columns:1fr}
  .ak-location-map-card iframe{height:390px}
}


/* Progenitor V10.1 — equal primary panels and full-width metrics */
.ak-main{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
  align-items:start !important;
}

.ak-left-column{
  min-width:0;
}

.ak-visual-card,
.ak-chat-card{
  height:720px !important;
  min-height:720px !important;
  max-height:720px !important;
}

.ak-visual-card{
  display:grid !important;
  grid-template-rows:auto minmax(0,1fr) auto !important;
}

.ak-visual-stage{
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
}

.ak-chat-card{
  position:relative !important;
  top:auto !important;
}

.ak-side-grid{
  grid-column:1 / -1 !important;
  width:100% !important;
  margin-top:16px !important;
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  align-items:start !important;
}

.ak-voice-toggle{
  display:inline-flex;
  align-items:center;
  gap:5px;
  min-height:30px;
  padding:5px 8px;
  border:1px solid rgba(0,229,255,.2);
  border-radius:9px;
  color:var(--muted);
  background:rgba(0,229,255,.05);
  font-size:.64rem;
  white-space:nowrap;
}

.ak-voice-toggle input{
  width:auto;
  margin:0;
}

@media(max-width:1180px){
  .ak-main{
    grid-template-columns:1fr !important;
  }

  .ak-visual-card,
  .ak-chat-card{
    height:720px !important;
    min-height:720px !important;
    max-height:720px !important;
  }

  .ak-side-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}

@media(max-width:700px){
  .ak-side-grid{
    grid-template-columns:1fr !important;
  }
}


/* Progenitor V11 — Charts & Graphs Studio */
.ak-chart-btn{
  border-color:rgba(170,108,255,.42);
  background:rgba(170,108,255,.09);
}

.ak-chart-panel{
  width:min(1180px,100vw);
}

.ak-chart-toolbar{
  display:grid;
  grid-template-columns:150px minmax(220px,1fr) auto auto auto;
  gap:8px;
  align-items:end;
  margin:10px 0 14px;
}

.ak-chart-toolbar label{
  display:grid;
  gap:5px;
  color:var(--muted);
  font-size:.7rem;
}

.ak-chart-toolbar input,
.ak-chart-toolbar select{
  width:100%;
  margin:0;
}

.ak-chart-layout{
  display:grid;
  grid-template-columns:minmax(300px,.72fr) minmax(0,1.28fr);
  gap:14px;
  min-width:0;
}

.ak-chart-input-card,
.ak-chart-output-card{
  min-width:0;
  padding:14px;
  border:1px solid rgba(255,255,255,.09);
  border-radius:15px;
  background:rgba(4,12,25,.92);
}

.ak-chart-input-card h3{
  margin:0 0 5px;
}

.ak-chart-input-card p{
  margin:0 0 9px;
  color:var(--muted);
  font-size:.72rem;
}

#chartDataInput{
  width:100%;
  min-height:265px;
  resize:vertical;
  margin:0;
  font:500 .76rem/1.5 Consolas,Monaco,monospace;
  white-space:pre;
  overflow:auto;
}

.ak-chart-input-actions{
  display:flex;
  gap:7px;
  flex-wrap:wrap;
  margin:8px 0;
}

.ak-chart-table-wrap{
  max-height:220px;
  overflow:auto;
  border:1px solid rgba(255,255,255,.07);
  border-radius:10px;
}

.ak-chart-data-table{
  width:100%;
  border-collapse:collapse;
  font-size:.69rem;
}

.ak-chart-data-table th,
.ak-chart-data-table td{
  padding:7px 8px;
  text-align:left;
  border-bottom:1px solid rgba(255,255,255,.06);
  overflow-wrap:anywhere;
}

.ak-chart-data-table th{
  position:sticky;
  top:0;
  background:#071527;
}

.ak-chart-output-card{
  display:flex;
  flex-direction:column;
  gap:10px;
}

#analysisChartCanvas{
  display:block;
  width:100%;
  height:auto;
  max-height:560px;
  border:1px solid rgba(0,229,255,.12);
  border-radius:13px;
  background:#07111f;
}

.ak-chart-summary{
  padding:11px 13px;
  border:1px solid rgba(0,229,255,.16);
  border-radius:11px;
  background:rgba(0,229,255,.055);
  color:var(--text);
  line-height:1.45;
}

.ak-chart-metrics{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
}

.ak-chart-metric{
  min-width:0;
  padding:9px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:10px;
  background:rgba(255,255,255,.025);
}

.ak-chart-metric span{
  display:block;
  color:var(--muted);
  font-size:.61rem;
  text-transform:uppercase;
  letter-spacing:.06em;
}

.ak-chart-metric strong{
  display:block;
  margin-top:3px;
  overflow-wrap:anywhere;
}

@media(max-width:980px){
  .ak-chart-toolbar{
    grid-template-columns:1fr 1fr;
  }

  .ak-chart-toolbar .ak-btn{
    width:100%;
  }

  .ak-chart-layout{
    grid-template-columns:1fr;
  }
}

@media(max-width:600px){
  .ak-chart-toolbar{
    grid-template-columns:1fr;
  }

  .ak-chart-metrics{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  #chartDataInput{
    min-height:210px;
  }
}
