/* ── Reset & Variables ── */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
:root{
  /* shadcn/ui Color Tokens */
  --color-canvas:#f5f5f5;
  --color-paper:#ffffff;
  --color-surface-alt:#fafafa;
  --color-ink:#0a0a0a;
  --color-ink-soft:#171717;
  --color-mid-gray:#737373;
  --color-hairline:#e5e5e5;
  --color-ember:#e7000b;
  
  /* Legacy aliases */
  --bg:var(--color-canvas);
  --fg:var(--color-ink);
  --muted:var(--color-mid-gray);
  --border:var(--color-hairline);
  --accent:var(--color-ink-soft);
  --accent-light:var(--color-surface-alt);
  --primary:var(--color-ink);
  --card-bg:var(--color-paper);
  
  /* Typography */
  --font-geist:'Inter',ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  --font-serif:var(--font-geist);
  --font-sans:var(--font-geist);
  
  /* Type Scale */
  --text-caption:12px;
  --leading-caption:1.33;
  --tracking-caption:0.6px;
  --text-body:14px;
  --leading-body:1.43;
  --text-body-lg:16px;
  --leading-body-lg:1.5;
  --text-subheading:18px;
  --leading-subheading:1.56;
  --text-heading-sm:24px;
  --leading-heading-sm:1.33;
  --tracking-heading-sm:-0.6px;
  --text-heading:30px;
  --leading-heading:1.2;
  --tracking-heading:-0.75px;
  --text-heading-lg:36px;
  --leading-heading-lg:1.11;
  --tracking-heading-lg:-0.9px;
  --text-display:48px;
  --leading-display:1.1;
  --tracking-display:-2.4px;
  
  /* Font Weights */
  --font-weight-regular:400;
  --font-weight-medium:500;
  --font-weight-semibold:600;
  
  /* Spacing */
  --spacing-4:4px;
  --spacing-8:8px;
  --spacing-12:12px;
  --spacing-16:16px;
  --spacing-20:20px;
  --spacing-24:24px;
  --spacing-48:48px;
  
  /* Border Radius */
  --radius-small:6px;
  --radius-nested:10px;
  --radius-buttons:18px;
  --radius-cards:24px;
  
  /* Shadows */
  --shadow-subtle:0 0 0 1px rgba(23,23,23,0.05), 0 1px 3px rgba(0,0,0,0.1), 0 1px 2px -1px rgba(0,0,0,0.1);
}
html,body{width:100%;height:100%;overflow:hidden;background:var(--bg);color:var(--fg);font-family:var(--font-geist);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;}

/* ── Slides ── */
main{position:relative;width:100%;height:100%;}
.slide{position:absolute;top:0;left:0;width:100vw;height:100vh;opacity:0;pointer-events:none;transition:opacity .5s ease;display:flex;flex-direction:column;overflow:hidden;}
.slide.active{opacity:1;pointer-events:auto;z-index:2;}
.slide-number{position:absolute;bottom:20px;right:30px;font-size:10px;letter-spacing:3px;color:var(--muted);z-index:10;}

/* ── Navigation Buttons ── */
.nav-buttons{position:absolute;bottom:30px;left:50%;transform:translateX(-50%);display:flex;gap:12px;z-index:10;}
.nav-btn{background:var(--color-paper);border:1px solid var(--color-hairline);border-radius:var(--radius-buttons);padding:8px 20px;font-family:var(--font-geist);font-size:12px;cursor:pointer;transition:all .2s;color:var(--color-ink);}
.nav-btn:hover{background:var(--color-ink);color:var(--color-paper);border-color:var(--color-ink);}

/* ══════════════════════════════════════════ */
/* PAGE 0 — COVER                              */
/* ══════════════════════════════════════════ */
.slide-cover{flex-direction:row;align-items:center;justify-content:center;background:var(--bg);}
.cover-content{flex:1;padding:60px 80px;display:flex;flex-direction:column;justify-content:center;max-width:55%;}
.cover-badge{font-size:10px;letter-spacing:4px;text-transform:uppercase;color:var(--muted);margin-bottom:32px;}
.cover-title{font-family:var(--font-geist);font-weight:var(--font-weight-semibold);font-size:72px;font-weight:300;letter-spacing:2px;line-height:1.1;margin-bottom:16px;}
.cover-divider{width:60px;height:1px;background:var(--fg);margin:24px 0;}
.cover-subtitle{font-family:var(--font-geist);font-weight:var(--font-weight-semibold);font-size:var(--text-heading);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-heading);font-style:italic;color:var(--muted);margin-bottom:24px;}
.cover-desc{font-size:14px;line-height:1.8;color:#555;max-width:480px;margin-bottom:40px;}
.cover-start-btn{background:var(--color-ink);color:var(--color-paper);border:none;border-radius:24px;padding:14px 32px;font-family:var(--font-geist);font-size:13px;letter-spacing:1px;cursor:pointer;transition:all .3s;align-self:flex-start;}
.cover-start-btn:hover{background:var(--color-ink-soft);transform:translateX(4px);}
.cover-image{flex:1;height:100%;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.cover-image img{width:100%;height:100%;object-fit:cover;}

/* ══════════════════════════════════════════ */
/* PAGE 1 — ISLAND AGENT                      */
/* ══════════════════════════════════════════ */
.slide-island{flex-direction:row;}
.island-layout{display:flex;width:100%;height:100%;position:relative;}
.island-layout::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:url('images/topo-map.svg') center center/85% auto no-repeat;opacity:0.15;pointer-events:none;z-index:0;}
.island-sidebar,.island-main{position:relative;z-index:1;}
.island-main{flex:1;display:flex;flex-direction:column;padding:30px 30px 80px;min-width:0;}
.island-header{margin-bottom:20px;}
.island-header h1{font-family:var(--font-geist);font-weight:var(--font-weight-semibold);font-size:var(--text-heading);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-heading);letter-spacing:1px;}
.island-subtitle{font-size:12px;color:var(--muted);margin-top:4px;}
.island-question-area{margin-bottom:20px;}
.island-question-input{display:flex;gap:8px;margin-bottom:12px;}
.island-question-input input{flex:1;border:1px solid var(--border);border-radius:var(--radius-buttons);padding:10px 16px;font-family:var(--font-geist);font-size:13px;outline:none;background:#fff;}
.island-question-input input:focus{border-color:var(--fg);}
.island-question-input button{background:var(--color-ink);color:var(--color-paper);border:none;border-radius:var(--radius-buttons);padding:10px 20px;font-family:var(--font-geist);font-size:12px;cursor:pointer;}
.island-preset-questions{display:flex;flex-wrap:wrap;gap:6px;}
.island-preset-questions button{background:#fff;border:1px solid var(--border);border-radius:var(--radius-buttons);padding:6px 14px;font-family:var(--font-geist);font-size:11px;cursor:pointer;transition:all .2s;}
.island-preset-questions button:hover{background:var(--color-ink);color:var(--color-paper);border-color:var(--color-ink);}
.island-debate-stage{flex:1;background:#fff;border-radius:var(--radius-cards);border:1px solid var(--border);overflow-y:auto;padding:20px;}
.island-empty-state{text-align:center;color:var(--muted);padding:60px 20px;}
.island-icon{font-size:48px;margin-bottom:16px;display:flex;justify-content:center;}
.island-icon svg{width:80px;height:80px;}
.island-empty-text{font-size:13px;}
.island-sidebar{width:280px;flex-shrink:0;border-left:1px solid var(--border);padding:20px;display:flex;flex-direction:column;background:#fff;}
.island-sidebar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;}
.island-sidebar-title{font-size:12px;font-weight:600;letter-spacing:1px;text-transform:uppercase;}
.island-sidebar-count{font-size:11px;color:var(--muted);}
.island-agents-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:8px;}
.island-agent-card{display:flex;align-items:center;gap:8px;padding:8px;border-radius:var(--radius-nested);background:var(--accent-light);transition:all .2s;}
.island-agent-card.speaking{background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.1);}
.island-agent-card .coze-avatar{width:28px;height:28px;}
.island-agent-card .agent-name{font-size:11px;font-weight:500;}
.island-agent-card .agent-emotion{font-size:9px;margin-left:auto;padding:2px 6px;border-radius:var(--radius-nested);}
.emotion-angry{background:#ffe0e0;color:#c0392b;}
.emotion-happy{background:#e0ffe0;color:#27ae60;}
.emotion-sad{background:#e0e8ff;color:#2980b9;}
.emotion-scared{background:#fff0e0;color:#e67e22;}
.emotion-smug{background:#f0e0ff;color:#8e44ad;}
.emotion-neutral{background:#f0f0f0;color:var(--color-mid-gray);}
.island-consensus{margin-top:16px;padding:12px;background:#e8f5e9;border-radius:var(--radius-nested);border:1px solid #c8e6c9;}
.consensus-label{font-size:10px;font-weight:600;color:#2e7d32;margin-bottom:4px;}
.consensus-text{font-size:11px;color:#1b5e20;line-height:1.4;}

/* Debate messages */
.island-msg{display:flex;gap:8px;margin-bottom:14px;animation:msgIn .3s ease;}
.island-msg .msg-avatar{width:28px;height:28px;border-radius:50%;flex-shrink:0;}
.island-msg .msg-content{background:var(--accent-light);border-radius:10px;padding:10px 14px;max-width:88%;}
.island-msg .msg-name{font-size:10px;font-weight:600;margin-bottom:4px;}
.island-msg .msg-text{font-size:12px;line-height:1.6;}
.island-msg.simultaneous{opacity:.85;}
.island-msg.system-msg{justify-content:center;}
.island-msg.system-msg .msg-content{background:#fff3e0;text-align:center;font-weight:500;color:#e65100;font-size:11px;}
.island-msg .msg-type{font-weight:400;color:var(--muted);font-size:9px;font-style:italic;}
.island-msg .rebuttal-content{border-left:3px solid #e74c3c;background:#fff5f5;}
.island-msg .compromise-content{border-left:3px solid #f39c12;background:#fffbf0;}
.island-msg .analysis-content{border-left:3px solid #6C5CE7;background:#f5f3ff;}
.island-msg.consensus-msg{justify-content:center;}
.island-msg.consensus-msg .msg-content{background:#e8f5e9;color:#2e7d32;text-align:center;font-size:12px;max-width:90%;border:2px solid #c8e6c9;}
.island-msg.vote-msg .msg-content{background:#f0f0ff;border:1px solid #d0d0ff;}
.island-msg.vote-yes .msg-content{border-left:3px solid #27ae60;}
.island-msg.vote-no .msg-content{border-left:3px solid #e74c3c;}
.island-msg.vote-abstain .msg-content{border-left:3px solid #95a5a6;}
.agent-info{display:flex;flex-direction:column;gap:1px;}
.agent-reason{font-size:9px;color:var(--muted);line-height:1.3;max-width:180px;}
@keyframes msgIn{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:translateY(0);}}

/* ═════════════════════════════════════════ */
/* PAGE 2 — ISLAND CONSORTIUM                 */
/* ══════════════════════════════════════════ */
.slide-consortium{flex-direction:column;}
.consortium-layout{display:flex;flex:1;min-height:0;}
.consortium-main{flex:1;display:flex;flex-direction:column;padding:30px 30px 100px;min-width:0;}
.consortium-header{margin-bottom:20px;}
.consortium-header h1{font-family:var(--font-geist);font-weight:var(--font-weight-semibold);font-size:var(--text-heading);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-heading);}
.consortium-subtitle{font-size:12px;color:var(--muted);margin-top:4px;}

/* Town Hall Stage */
.townhall-stage{display:flex;gap:20px;margin-bottom:20px;min-height:160px;}
.island-seats{flex:1;display:flex;gap:20px;align-items:flex-start;justify-content:center;}
.seat-placeholder{width:100%;text-align:center;padding:40px;color:var(--muted);font-size:14px;border:1px dashed var(--border);border-radius:var(--radius-cards);}

/* Island Seats — Circular with Glow */
.island-seat{
  flex:0 0 180px;
  background:#fff;
  border-radius:50%;
  width:180px;
  height:180px;
  padding:20px;
  border:3px solid var(--border);
  position:relative;
  transition:all .4s cubic-bezier(0.4, 0, 0.2, 1);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  box-shadow:var(--shadow-subtle);
}
.island-seat.active{
  border-color:var(--primary);
  box-shadow:0 0 30px rgba(108,92,231,0.3), 0 4px 12px rgba(0,0,0,0.08);
  transform:scale(1.05);
}
.island-seat.speaking{
  border-width:4px;
  box-shadow:0 0 40px rgba(108,92,231,0.5), 0 8px 24px rgba(0,0,0,0.12);
  transform:scale(1.08) translateY(-4px);
  animation:speakPulse 1.5s ease-in-out infinite;
}
@keyframes speakPulse{
  0%,100%{box-shadow:0 0 40px rgba(108,92,231,0.5), 0 8px 24px rgba(0,0,0,0.12);}
  50%{box-shadow:0 0 60px rgba(108,92,231,0.7), 0 8px 24px rgba(0,0,0,0.12);}
}

/* Island-specific colors */
.island-seat[data-island="volcanic"]{border-width:2px;}
.island-seat[data-island="volcanic"].active{box-shadow:0 0 30px rgba(225,112,85,0.4);}
.island-seat[data-island="volcanic"].speaking{border-color:var(--color-ink);box-shadow:0 0 0 2px var(--color-ink);}

.island-seat[data-island="coral"]{border-style:dashed;}
.island-seat[data-island="coral"].active{box-shadow:0 0 30px rgba(9,132,227,0.4);}
.island-seat[data-island="coral"].speaking{border-color:var(--color-ink);box-shadow:0 0 0 2px var(--color-ink);}

.island-seat[data-island="mangrove"]{border-style:dotted;}
.island-seat[data-island="mangrove"].active{box-shadow:0 0 30px rgba(0,184,148,0.4);}
.island-seat[data-island="mangrove"].speaking{border-color:var(--color-ink);box-shadow:0 0 0 2px var(--color-ink);}

.island-seat[data-island="limestone"]{border-width:3px;}
.island-seat[data-island="limestone"].active{box-shadow:0 0 30px rgba(99,110,114,0.4);}
.island-seat[data-island="limestone"].speaking{border-color:var(--color-ink);box-shadow:0 0 0 2px var(--color-ink);}

.seat-header{display:flex;flex-direction:column;align-items:center;gap:8px;margin-bottom:8px;}
.seat-avatar{width:60px;height:60px;position:relative;}
.seat-avatar::after{
  content:'';
  position:absolute;
  top:-4px;left:-4px;right:-4px;bottom:-4px;
  border-radius:50%;
  border:2px solid transparent;
  transition:border-color .3s;
}
.island-seat.speaking .seat-avatar::after{
  border-color:currentColor;
  animation:ripple 1.5s ease-out infinite;
}
@keyframes ripple{
  0%{transform:scale(1);opacity:1;}
  100%{transform:scale(1.3);opacity:0;}
}

.seat-info{flex:1;}
.seat-name{font-size:16px;font-weight:700;color:var(--fg);margin-bottom:2px;}
.seat-island{font-size:10px;color:var(--muted);line-height:1.2;}
.seat-focus{font-size:10px;color:var(--primary);font-weight:600;margin-top:4px;text-transform:uppercase;letter-spacing:0.5px;}
.seat-subs{display:flex;gap:6px;justify-content:center;margin-top:8px;}
.sub-avatar{width:28px;height:28px;opacity:0.7;transition:all .3s;}
.sub-avatar.active{opacity:1;transform:scale(1.1);}

/* Data Panel — Dashboard Style */
.data-panel{
  width:300px;
  background:#fff;
  border-radius:16px;
  padding:20px;
  border:1px solid var(--border);
  box-shadow:0 4px 16px rgba(0,0,0,0.06);
}
.data-title{
  font-size:11px;
  font-weight:700;
  color:var(--muted);
  text-transform:uppercase;
  letter-spacing:1px;
  margin-bottom:16px;
  display:flex;
  align-items:center;
  gap:6px;
}
.data-title::before{
  content:'';
  width:8px;
  height:8px;
  background:var(--color-ink);
  border-radius:50%;
  animation:pulse 2s ease-in-out infinite;
}
@keyframes pulse{
  0%,100%{opacity:1;}
  50%{opacity:0.4;}
}
.data-chart{margin-bottom:20px;}
.chart-bar{display:flex;align-items:center;gap:10px;margin-bottom:10px;font-size:12px;}
.chart-label{width:70px;color:var(--fg);text-align:right;font-weight:500;}
.chart-track{flex:1;height:10px;background:var(--border);border-radius:5px;overflow:hidden;position:relative;}
.chart-fill{
  height:100%;
  border-radius:5px;
  transition:width 1s cubic-bezier(0.4, 0, 0.2, 1);
  position:relative;
}
.chart-fill::after{
  content:'';
  position:absolute;
  top:0;left:0;right:0;bottom:0;
  background:linear-gradient(90deg, transparent, rgba(255,255,255,0.3));
  animation:shimmer 2s ease-in-out infinite;
}
@keyframes shimmer{
  0%{transform:translateX(-100%);}
  100%{transform:translateX(100%);}
}
.chart-value{width:45px;color:var(--muted);font-size:11px;font-weight:600;}

.data-table{width:100%;border-collapse:collapse;font-size:11px;}
.data-table th,.data-table td{padding:6px 8px;text-align:left;border-bottom:1px solid var(--border);}
.data-table th{color:var(--muted);font-weight:600;font-size:10px;text-transform:uppercase;letter-spacing:0.5px;}
.data-table td{color:var(--fg);}
.data-table tr:hover{background:var(--bg);}
.data-table td:last-child{font-weight:600;color:var(--primary);}

/* Discussion Area */
.table-discussion{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:16px;}
.table-discussion .island-msg{margin-bottom:0;}
.welcome-message{text-align:center;color:var(--color-mid-gray);padding:40px 20px;font-size:15px;line-height:1.6;}
.welcome-message p{max-width:500px;margin:0 auto;}
.consortium-icon{margin-bottom:20px;display:flex;justify-content:center;}
.consortium-icon svg{width:80px;height:80px;}

/* Messages with Island-Colored Borders */
.island-msg{
  display:flex;
  gap:14px;
  margin-bottom:16px;
  animation:slideIn .4s cubic-bezier(0.4, 0, 0.2, 1);
  padding:16px;
  background:#fff;
  border-radius:var(--radius-cards);
  border-left:4px solid var(--border);
  box-shadow:var(--shadow-subtle);
  transition:all .3s;
}
.island-msg:hover{
  box-shadow:0 4px 16px rgba(0,0,0,0.08);
  transform:translateX(2px);
}
@keyframes slideIn{
  from{opacity:0;transform:translateY(10px);}
  to{opacity:1;transform:translateY(0);}
}

/* Message borders — subtle monochromatic */
.island-msg[data-team="volcanic"]{border-left-color:var(--color-ink);}
.island-msg[data-team="coral"]{border-left-color:var(--color-ink);}
.island-msg[data-team="mangrove"]{border-left-color:var(--color-ink);}
.island-msg[data-team="limestone"]{border-left-color:var(--color-ink);}

.msg-avatar{flex-shrink:0;}
.coze-avatar{width:40px;height:40px;}
.msg-content{flex:1;min-width:0;}
.msg-name{font-size:14px;font-weight:600;margin-bottom:6px;}
.msg-type{font-size:11px;font-weight:400;color:var(--muted);margin-left:8px;}
.msg-text{font-size:var(--text-body);line-height:var(--leading-body);color:var(--fg);}
.msg-text strong{color:var(--primary);font-weight:600;}
.msg-text.rebuttal-content{border-left:3px solid var(--color-ink);padding-left:12px;background:var(--color-canvas);}
.msg-text.compromise-content{border-left:3px dashed var(--color-ink);padding-left:12px;background:var(--color-canvas);}
.msg-text.analysis-content{border-left:3px dotted var(--color-ink);padding-left:12px;background:var(--color-canvas);}
.consensus-msg{background:var(--card-bg);border:2px solid var(--primary);border-radius:var(--radius-cards);padding:20px;margin-top:20px;}
.consensus-msg .msg-content{font-size:15px;line-height:1.7;font-weight:500;}

/* ═══ Task Queue — Dark Terminal Style ══ */
.consortium-backend{
  width:340px;
  flex-shrink:0;
  border-left:1px solid var(--border);
  display:flex;
  flex-direction:column;
  background:#1a1a2e;
  color:#e0e0e0;
  font-family:'SF Mono',Monaco,'Cascadia Code',monospace;
}
.backend-header{
  padding:16px 20px;
  border-bottom:1px solid rgba(255,255,255,0.1);
  display:flex;
  justify-content:space-between;
  align-items:center;
}
.backend-title{
  font-size:12px;
  font-weight:700;
  letter-spacing:1px;
  text-transform:uppercase;
  color:var(--color-ink);
  display:flex;
  align-items:center;
  gap:8px;
}
.backend-title::before{
  content:'';
  width:6px;
  height:6px;
  background:var(--color-ink);
  border-radius:50%;
  animation:pulse 2s ease-in-out infinite;
}
.backend-status{
  font-size:10px;
  padding:3px 8px;
  border-radius:10px;
  background:var(--color-hairline);
  color:var(--color-mid-gray);
  font-weight:600;
}
.backend-status.active{background:var(--color-ink);color:var(--color-ink);}

.task-list{flex:1;overflow-y:auto;padding:16px;}
.task-placeholder{text-align:center;padding:40px 20px;color:#666;font-size:12px;}

.task-card{
  background:var(--color-paper);
  border-radius:10px;
  padding:14px;
  margin-bottom:12px;
  border:1px solid var(--color-hairline);
  transition:all .3s;
}
.task-card.running{
  border-color:var(--color-ink);
  box-shadow:0 0 0 1px var(--color-ink);
  background:var(--color-surface-alt);
}
.task-card.completed{opacity:0.5;border-color:rgba(0,184,148,0.3);}

.task-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;}
.task-name{font-size:12px;font-weight:600;color:var(--color-ink);}
.task-status{font-size:9px;padding:3px 8px;border-radius:10px;font-weight:600;letter-spacing:0.5px;}
.task-status.running{background:var(--color-ink);color:var(--color-paper);}
.task-status.completed{background:var(--color-ink);color:var(--color-ink);}
.task-status.queued{background:var(--color-hairline);color:var(--color-mid-gray);}

.task-meta{font-size:10px;color:var(--color-mid-gray);margin-bottom:8px;}

.task-progress{height:4px;background:var(--color-hairline);border-radius:2px;overflow:hidden;margin-bottom:8px;}
.task-progress-fill{
  height:100%;
  background:var(--color-ink);
  border-radius:2px;
  transition:width .3s ease;
}

.task-log{font-size:10px;color:var(--color-ink-soft);line-height:1.5;}
.task-log div{padding:2px 0;animation:logIn .3s ease;}
@keyframes logIn{from{opacity:0;transform:translateX(-4px);}to{opacity:1;transform:translateX(0);}}

.consortium-controls{position:absolute;bottom:60px;left:50%;transform:translateX(-50%);display:flex;gap:12px;align-items:center;z-index:10;}
.consortium-start-btn{background:var(--color-ink);color:var(--color-paper);border:none;border-radius:var(--radius-buttons);padding:10px 24px;font-family:var(--font-geist);font-size:12px;cursor:pointer;letter-spacing:1px;}
.consortium-scenarios{display:flex;gap:6px;}
.consortium-scenarios button{background:#fff;border:1px solid var(--border);border-radius:var(--radius-buttons);padding:6px 14px;font-family:var(--font-geist);font-size:11px;cursor:pointer;}
.consortium-scenarios button:hover{background:var(--color-ink);color:var(--color-paper);}


/* ══════════════════════════════════════════ */
/* PAGE 3 — STUDIO RAG */
/* ═════════════════════════════════════════ */
.slide-rag{flex-direction:column;}
.rag-layout{display:flex;flex:1;min-height:0;}
.rag-main{flex:1;display:flex;flex-direction:column;padding:30px 30px 100px;min-width:0;}
.rag-header{margin-bottom:20px;}
.rag-header h1{font-family:var(--font-geist);font-size:var(--text-heading-lg);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-heading-lg);}
.rag-subtitle{font-size:var(--text-body);color:var(--color-mid-gray);margin-top:4px;}

.rag-chat-area{flex:1;display:flex;flex-direction:column;min-height:0;}
.rag-messages{flex:1;overflow-y:auto;padding:24px;}
.rag-welcome{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;color:var(--color-mid-gray);}
.rag-welcome-icon{width:80px;height:80px;border-radius:50%;background:var(--color-canvas);margin-bottom:24px;display:flex;align-items:center;justify-content:center;}
.rag-welcome-icon svg{width:56px;height:56px;}
.rag-welcome-title{font-size:24px;font-weight:600;color:var(--color-ink);margin-bottom:12px;}
.rag-welcome-sub{font-size:var(--text-body);line-height:1.6;max-width:400px;}
.rag-welcome-text{font-size:var(--text-body);line-height:1.6;}

.rag-msg{margin-bottom:24px;animation:fadeIn .3s ease;}
.rag-msg.user{margin-left:40px;}
.rag-msg.agent{margin-right:40px;}
.rag-msg-label{font-size:12px;font-weight:500;color:var(--color-mid-gray);margin-bottom:6px;text-transform:uppercase;letter-spacing:0.5px;}
.rag-msg-content{font-size:var(--text-body);line-height:1.6;color:var(--color-ink);}
.rag-msg.user .rag-msg-content{background:var(--color-ink);color:var(--color-paper);padding:12px 16px;border-radius:var(--radius-nested) var(--radius-nested) 0 var(--radius-nested);display:inline-block;}
.rag-msg.agent .rag-msg-content{background:var(--color-paper);border:1px solid var(--color-hairline);padding:16px 20px;border-radius:var(--radius-nested) var(--radius-nested) var(--radius-nested) 0;}
.msg-head{font-size:var(--text-caption);font-weight:var(--font-weight-medium);color:var(--color-mid-gray);text-transform:uppercase;letter-spacing:var(--tracking-caption);margin-bottom:8px;}
.msg-body{font-size:var(--text-body);line-height:var(--leading-body);color:var(--color-ink);}
.msg-body h2{font-size:var(--text-heading-sm);font-weight:var(--font-weight-semibold);margin:20px 0 12px 0;letter-spacing:var(--tracking-heading-sm);}
.msg-body h3{font-size:var(--text-subheading);font-weight:var(--font-weight-semibold);margin:16px 0 8px 0;}
.msg-body p{margin:12px 0;}
.msg-body ul{margin:12px 0;padding-left:24px;}
.msg-body li{margin:6px 0;}
.msg-body table{width:100%;border-collapse:collapse;margin:16px 0;font-size:var(--text-body);}
.msg-body th,.msg-body td{padding:8px 12px;text-align:left;border-bottom:1px solid var(--color-hairline);}
.msg-body th{font-weight:var(--font-weight-medium);color:var(--color-mid-gray);font-size:var(--text-caption);text-transform:uppercase;letter-spacing:var(--tracking-caption);}
.msg-body strong{font-weight:var(--font-weight-semibold);}
.msg-body.typing{border-right:2px solid var(--color-ink);animation:blink .7s infinite;}
@keyframes blink{0%,100%{border-color:transparent;}50%{border-color:var(--color-ink);}}
.msg-body h2{font-size:var(--text-heading-sm);font-weight:var(--font-weight-semibold);margin:20px 0 12px 0;letter-spacing:var(--tracking-heading-sm);}
.msg-body h3{font-size:var(--text-subheading);font-weight:var(--font-weight-semibold);margin:16px 0 8px 0;}
.msg-body p{margin:12px 0;}
.msg-body ul{margin:12px 0;padding-left:24px;}
.msg-body li{margin:6px 0;}
.msg-body table{width:100%;border-collapse:collapse;margin:12px 0;font-size:13px;background:var(--color-paper);border-radius:var(--radius-nested);overflow:hidden;}
.msg-body th,.msg-body td{padding:8px 12px;text-align:left;border-bottom:1px solid var(--color-hairline);}
.msg-body th{font-weight:var(--font-weight-medium);color:var(--color-mid-gray);font-size:11px;text-transform:uppercase;letter-spacing:var(--tracking-caption);background:var(--color-canvas);}
.msg-body tr:last-child td{border-bottom:none;}
.msg-body tr:hover td{background:var(--color-surface-alt);}
.msg-body h2{font-size:18px;font-weight:var(--font-weight-semibold);margin:12px 0 8px 0;letter-spacing:-0.3px;}
.msg-body h3{font-size:15px;font-weight:var(--font-weight-semibold);margin:10px 0 6px 0;}
.msg-body p{margin:8px 0;font-size:13px;line-height:1.5;}
.msg-body ul{margin:8px 0;padding-left:20px;}
.msg-body li{margin:4px 0;font-size:13px;}
.rag-elaboration{margin-top:12px;padding:12px 16px;background:var(--color-canvas);border-left:3px solid var(--color-ink);border-radius:0 var(--radius-nested) var(--radius-nested) 0;font-size:13px;line-height:1.5;color:var(--color-ink-soft);}

.rag-input-area{padding:20px 24px;border-top:1px solid var(--color-hairline);display:flex;flex-direction:column;gap:12px;}
.rag-preset-topics{display:flex;gap:8px;flex-wrap:wrap;}
.rag-preset-topics button{background:var(--color-canvas);border:1px solid var(--color-hairline);border-radius:var(--radius-buttons);padding:8px 16px;font-family:var(--font-geist);font-size:var(--text-caption);font-weight:var(--font-weight-medium);color:var(--color-ink);cursor:pointer;transition:all .2s;}
.rag-preset-topics button:hover{background:var(--color-ink);color:var(--color-paper);border-color:var(--color-ink);}

.rag-input-row{display:flex;gap:12px;}
.rag-input{flex:1;background:var(--color-canvas);border:1px solid transparent;border-radius:var(--radius-buttons);padding:12px 16px;font-family:var(--font-geist);font-size:var(--text-body);color:var(--color-ink);outline:none;transition:border-color .2s;}
.rag-input:focus{border-color:var(--color-hairline);}
.rag-input::placeholder{color:var(--color-mid-gray);}
.rag-send{background:var(--color-ink);color:var(--color-paper);border:none;border-radius:var(--radius-buttons);padding:12px 24px;font-family:var(--font-geist);font-size:var(--text-body);font-weight:var(--font-weight-medium);cursor:pointer;transition:opacity .2s;}
.rag-send:hover{opacity:0.8;}
.rag-clear-btn{background:transparent;border:1px solid var(--color-hairline);border-radius:var(--radius-buttons);padding:8px 12px;font-family:var(--font-geist);font-size:12px;color:var(--color-mid-gray);cursor:pointer;transition:all .2s;}
.rag-clear-btn:hover{border-color:var(--color-ink);color:var(--color-ink);}


/* ─ Coze Avatar ── */



/* Avatar System — DiceBear Images */
.coze-avatar{width:40px;height:40px;border-radius:50%;flex-shrink:0;overflow:hidden;background:var(--color-canvas);}
.coze-avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover;}
.seat-avatar.coze-avatar{width:60px;height:60px;}
.sub-avatar.coze-avatar{width:28px;height:28px;opacity:0.7;transition:all .3s;}
.sub-avatar.coze-avatar.active{opacity:1;transform:scale(1.1);}


/* External Link Button */
.nav-btn-external{background:var(--color-ink);color:var(--color-paper);text-decoration:none;display:inline-flex;align-items:center;}
.nav-btn-external:hover{background:#333;}

/* ── Responsive ── */
@media(max-width:900px){
  .island-sidebar{width:220px;}
  .consortium-backend{width:280px;}
  .cover-content{max-width:70%;padding:40px;}
  .cover-title{font-size:48px;}
}
@media(max-width:700px){
  .slide-cover{flex-direction:column;}
  .cover-content{max-width:100%;padding:30px;}
  .cover-image{height:40%;}
  .island-layout{flex-direction:column;}
  .island-sidebar{width:100%;border-left:none;border-top:1px solid var(--border);max-height:200px;}
  .consortium-layout{flex-direction:column;}
  .consortium-backend{width:100%;border-left:none;border-top:1px solid var(--border);max-height:200px;}
}
