:root{
  --primary-bg:#0E1117;
  --secondary-bg:#1b1f23;

  --accent-color:#00cc00;
  --accent-hover:#00aa00;

  --text-color:#ffffff;
  --text-secondary:#9aa4ad;
  --border-color:#30363d;

  --error-color:#ff4444;
  --success-color:#00cc00;
  --warning-color:#ffaa00;

  --shadow:0 10px 28px rgba(0,0,0,.40);
  --shadow-hover:0 16px 44px rgba(0,0,0,.55);

  --transition: all .22s ease;

  --bg-img:url('./agentaitrans.png');

  /* Viewer / camera */
  --perspective: 1100px;
  --camRX: -6deg;
  --camRY: 10deg;
  --camRZ: 0deg;
  --camX: 0px;
  --camY: 0px;
  --camZ: 40px;

  /* Parallax offsets */
  --x-offset: 0px;
  --y-offset: 0px;
  --z-offset: 0px;
}

*{ margin:0; padding:0; box-sizing:border-box; }
html,body{ height:100%; }

body{
  font-family:'Inter',sans-serif;
  background: var(--primary-bg) var(--bg-img) center/cover no-repeat fixed;
  color:var(--text-color);
  line-height:1.6;
  min-height:100vh;
  overflow-x:hidden;
}

.scene{
  min-height:100%;
  perspective: var(--perspective);
  perspective-origin: 50% 35%;
}

.depth-control{
  transform-style: preserve-3d;
  transform:
    translate3d(var(--camX), var(--camY), var(--camZ))
    rotateX(var(--camRX))
    rotateY(var(--camRY))
    rotateZ(var(--camRZ));
  transition: transform 120ms ease-out;
}

.layer{
  position: relative;
  transform-style: preserve-3d;
  --depth: 0.08;
  transform:
    translate3d(
      calc(var(--x-offset) * var(--depth)),
      calc(var(--y-offset) * var(--depth)),
      calc(var(--z-offset) * var(--depth))
    );
}
.layer[data-depth]{ /* JS writes --depth via inline style for compatibility */ }

.container{
  max-width:1400px;
  margin:0 auto;
  padding:20px;
}

.header{
  text-align:center;
  margin-bottom:30px;
  padding:38px 20px;
  background:rgba(27,31,35,.94);
  border-radius:15px;
  backdrop-filter: blur(10px);
  border:1px solid var(--border-color);
  box-shadow: var(--shadow);
}

.header h1{
  font-size:3rem;
  font-weight:900;
  background:linear-gradient(135deg,var(--accent-color),#ffffff);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  margin-bottom:10px;
}

.header p{
  font-size:1.15rem;
  color:var(--text-secondary);
  max-width:760px;
  margin:0 auto;
}

.topbar{
  margin-top:18px;
  display:flex;
  justify-content:center;
  gap:10px;
  flex-wrap:wrap;
}

.chip{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:10px 14px;
  border-radius:999px;
  background:rgba(48,54,61,.45);
  border:1px solid rgba(255,255,255,.07);
  color:var(--text-secondary);
}

.dot{ width:10px; height:10px; border-radius:50%; display:inline-block; }
.dot-ok{ background: var(--success-color); }
.dot-warn{ background: var(--warning-color); }
.dot-bad{ background: var(--error-color); }

.chipbtn{
  background:rgba(48,54,61,.45);
  border:1px solid rgba(255,255,255,.10);
  color:var(--text-color);
  padding:10px 14px;
  border-radius:999px;
  cursor:pointer;
  transition: var(--transition);
}
.chipbtn:hover{ border-color: rgba(0,204,0,.55); color: var(--accent-color); }

.settings{
  display:none;
  background:rgba(27,31,35,.94);
  border-radius:15px;
  padding:18px;
  margin-bottom:22px;
  border:1px solid var(--border-color);
  backdrop-filter: blur(10px);
  box-shadow: var(--shadow);
}
.settings.open{ display:block; }

.settings-row{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:14px;
}
.settings-col label{
  display:block;
  margin-bottom:8px;
  font-weight:600;
  color:var(--text-color);
}
.settings-col input{
  width:100%;
  padding:12px;
  background:rgba(48,54,61,.5);
  border:1px solid var(--border-color);
  border-radius:10px;
  color:var(--text-color);
  transition: var(--transition);
}
.settings-col input:focus{
  outline:none;
  border-color: var(--accent-color);
  box-shadow: 0 0 0 2px rgba(0,204,0,.18);
}
.hint{
  margin-top:6px;
  font-size:.85rem;
  color: var(--text-secondary);
}

.settings-actions{
  display:flex;
  gap:10px;
  margin-top:14px;
  justify-content:flex-end;
  flex-wrap:wrap;
}

.back-button{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:12px 20px;
  background:rgba(48,54,61,.5);
  border:1px solid var(--border-color);
  border-radius:10px;
  color:var(--text-color);
  text-decoration:none;
  transition: var(--transition);
  margin-bottom:16px;
}
.back-button:hover{
  border-color: var(--accent-color);
  color: var(--accent-color);
}

.nav-tabs{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-bottom:22px;
  padding:16px;
  background:rgba(27,31,35,.94);
  border-radius:15px;
  backdrop-filter: blur(10px);
  border:1px solid var(--border-color);
  box-shadow: var(--shadow);
}

.nav-tab{
  padding:12px 18px;
  background:transparent;
  border:1px solid var(--border-color);
  border-radius:10px;
  color:var(--text-secondary);
  cursor:pointer;
  transition: var(--transition);
  font-weight:600;
}
.nav-tab:hover{ border-color: var(--accent-color); color: var(--accent-color); }
.nav-tab.active{
  background: var(--accent-color);
  color: var(--primary-bg);
  border-color: var(--accent-color);
}

.tab-content{ display:none; animation: fadeIn .25s ease; }
.tab-content.active{ display:block; }

@keyframes fadeIn{
  from{ opacity:0; transform: translateY(10px); }
  to{ opacity:1; transform: translateY(0); }
}

.api-section{
  background:rgba(27,31,35,.94);
  border-radius:15px;
  padding:26px;
  margin-bottom:22px;
  border:1px solid var(--border-color);
  backdrop-filter: blur(10px);
  box-shadow: var(--shadow);
}

.api-section h2{
  font-size:1.6rem;
  margin-bottom:16px;
  color: var(--accent-color);
  display:flex;
  align-items:center;
  gap:10px;
}

.api-section h3{
  font-size:1.2rem;
  margin:18px 0 12px;
  color: var(--text-color);
  border-bottom: 1px solid rgba(255,255,255,.08);
  padding-bottom:10px;
}

.endpoint-grid{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(300px,1fr));
  gap:16px;
  margin-bottom: 14px;
}

.endpoint-card{
  background:rgba(48,54,61,.45);
  border-radius:12px;
  padding:18px;
  border:1px solid var(--border-color);
  transition: var(--transition);
}
.endpoint-card:hover{
  border-color: rgba(0,204,0,.40);
  transform: translateY(-2px);
  box-shadow: var(--shadow-hover);
}

.endpoint-method{
  display:inline-block;
  padding:4px 8px;
  border-radius:6px;
  font-size:.8rem;
  font-weight:800;
  margin-bottom:10px;
}
.method-get{ background:#28a745; }
.method-post{ background:#007bff; }
.method-delete{ background:#dc3545; }
.method-put{ background:#ffc107; color:#000; }
.method-patch{ background:#6f42c1; }

.endpoint-path{
  font-family:'Fira Code', monospace;
  font-size:.9rem;
  color: var(--accent-color);
  margin-bottom:8px;
  word-break: break-word;
}

.endpoint-description{
  font-size:.9rem;
  color: var(--text-secondary);
  margin-bottom: 12px;
}

.test-button{
  background: var(--accent-color);
  color: var(--primary-bg);
  border:none;
  padding:10px 16px;
  border-radius:10px;
  cursor:pointer;
  font-weight:800;
  transition: var(--transition);
  width:100%;
}
.test-button:hover{
  background: var(--accent-hover);
  transform: translateY(-1px);
}

.ghost-button{
  background: transparent;
  color: var(--text-color);
  border: 1px solid rgba(255,255,255,.12);
  padding:10px 16px;
  border-radius:10px;
  cursor:pointer;
  font-weight:700;
  transition: var(--transition);
}
.ghost-button:hover{
  border-color: rgba(0,204,0,.40);
  color: var(--accent-color);
}

.form-panel{
  margin-top:10px;
  padding:18px;
  border-radius:12px;
  border: 1px dashed rgba(0,204,0,.30);
  background: rgba(0,0,0,.18);
}

.form-group{ margin-bottom:14px; }
.form-group label{
  display:block;
  margin-bottom:8px;
  font-weight:700;
  color: var(--text-color);
}
.form-group input,
.form-group textarea,
.form-group select{
  width:100%;
  padding:12px;
  background:rgba(48,54,61,.50);
  border:1px solid var(--border-color);
  border-radius:10px;
  color:var(--text-color);
  font-family:inherit;
  transition: var(--transition);
}
.form-group textarea{ min-height: 100px; }
.form-group input:focus,
.form-group textarea:focus,
.form-group select:focus{
  outline:none;
  border-color: var(--accent-color);
  box-shadow: 0 0 0 2px rgba(0,204,0,.18);
}

.response-area{
  background:rgba(0,0,0,.28);
  border:1px solid rgba(255,255,255,.08);
  border-radius:12px;
  padding:14px;
  font-family:'Fira Code', monospace;
  font-size:.9rem;
  white-space: pre-wrap;
  max-height: 320px;
  overflow-y:auto;
  margin-top: 14px;
}

.status-indicator{
  display:inline-block;
  width:12px;
  height:12px;
  border-radius:50%;
  margin-right:6px;
}
.status-online{ background: var(--success-color); }
.status-offline{ background: var(--error-color); }
.status-warning{ background: var(--warning-color); }

.metrics-grid{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(200px,1fr));
  gap:16px;
  margin-bottom:18px;
}
.metric-card{
  background:rgba(48,54,61,.45);
  border-radius:12px;
  padding:18px;
  text-align:center;
  border:1px solid rgba(255,255,255,.08);
}
.metric-value{
  font-size:2rem;
  font-weight:900;
  color: var(--accent-color);
  margin-bottom:4px;
}
.metric-label{ font-size:.9rem; color: var(--text-secondary); }

/* Mobile */
@media (max-width: 900px){
  .settings-row{ grid-template-columns: 1fr; }
}
@media (max-width: 768px){
  .header h1{ font-size:2rem; }
  .nav-tabs{ flex-direction: column; }
  .endpoint-grid{ grid-template-columns: 1fr; }
  .metrics-grid{ grid-template-columns: repeat(auto-fit, minmax(150px,1fr)); }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  .depth-control{ transition:none; transform:none; }
  .layer{ transform:none; }
  .endpoint-card, .test-button, .nav-tab{ transition:none; }
}

