/* ============================================================
   EW VISUAL LAB — WordPress Plugin Stylesheet
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Share+Tech+Mono&family=Orbitron:wght@400;700;900&family=Exo+2:wght@300;400;600;700&display=swap');

/* ── ROOT ── */
#ewlab-root {
  --ew-bg:       #040d14;
  --ew-surface:  #071824;
  --ew-panel:    #0a2030;
  --ew-border:   #0e4060;
  --ew-accent:   #00ffe7;
  --ew-orange:   #ff6b35;
  --ew-purple:   #9b59b6;
  --ew-text:     #c8e8f0;
  --ew-dim:      #4a7a90;
  --ew-warn:     #ffcc00;
  --ew-danger:   #ff3344;
  --ew-green:    #00ff88;
  font-family: 'Exo 2', sans-serif;
  background: var(--ew-bg);
  color: var(--ew-text);
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 0 60px rgba(0,255,231,0.1);
  position: relative;
}

/* scanlines */
#ewlab-root::before {
  content:'';
  position:absolute; inset:0;
  background: repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,255,231,0.012) 2px,rgba(0,255,231,0.012) 4px);
  pointer-events:none; z-index:9998;
}

/* ── HEADER ── */
.ewlab-header {
  display:flex; align-items:center; gap:16px;
  background:linear-gradient(135deg,#020a12,#071824);
  border-bottom:2px solid var(--ew-accent);
  padding:14px 24px;
  box-shadow:0 0 30px rgba(0,255,231,0.2);
  flex-wrap:wrap; gap:12px;
}

.ewlab-logo { display:flex; align-items:center; gap:14px; }

.ewlab-logo-icon {
  width:44px; height:44px;
  border:2px solid var(--ew-accent);
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:20px;
  animation:ewlab-pulse 2s ease-in-out infinite;
  box-shadow:0 0 16px rgba(0,255,231,0.4);
  flex-shrink:0;
}

@keyframes ewlab-pulse {
  0%,100%{box-shadow:0 0 10px rgba(0,255,231,0.3);}
  50%{box-shadow:0 0 28px rgba(0,255,231,0.8);}
}

.ewlab-logo-title {
  font-family:'Orbitron',monospace;
  font-size:18px; font-weight:900;
  color:var(--ew-accent);
  letter-spacing:3px;
  text-shadow:0 0 16px rgba(0,255,231,0.5);
}

.ewlab-logo-sub {
  font-family:'Share Tech Mono',monospace;
  font-size:10px; color:var(--ew-dim); letter-spacing:2px; margin-top:2px;
}

.ewlab-header-right { display:flex; align-items:center; gap:12px; margin-left:auto; flex-wrap:wrap; }

/* Search */
.ewlab-search-wrap { position:relative; }

#ewlab-search {
  background:rgba(0,0,0,0.4);
  border:1px solid var(--ew-border);
  border-radius:6px;
  color:var(--ew-text);
  font-family:'Share Tech Mono',monospace;
  font-size:12px;
  padding:8px 14px;
  outline:none;
  width:200px;
  transition:border-color 0.2s;
}

#ewlab-search:focus { border-color:var(--ew-accent); box-shadow:0 0 10px rgba(0,255,231,0.2); }
#ewlab-search::placeholder { color:var(--ew-dim); }

#ewlab-search-results {
  display:none;
  position:absolute; top:100%; left:0; right:0; z-index:999;
  background:var(--ew-panel);
  border:1px solid var(--ew-border);
  border-radius:0 0 8px 8px;
  max-height:280px; overflow-y:auto;
  box-shadow:0 8px 30px rgba(0,0,0,0.5);
}

.ewlab-sr-item {
  display:flex; align-items:flex-start; gap:10px;
  padding:10px 14px; cursor:pointer;
  border-bottom:1px solid rgba(14,64,96,0.4);
  transition:background 0.15s;
}
.ewlab-sr-item:hover { background:rgba(0,255,231,0.05); }
.ewlab-sr-icon { font-size:16px; }
.ewlab-sr-ch { font-family:'Share Tech Mono',monospace; font-size:10px; color:var(--ew-accent); letter-spacing:1px; }
.ewlab-sr-snip { font-size:11px; color:var(--ew-dim); margin-top:2px; }
.ewlab-sr-none { padding:12px 14px; font-size:12px; color:var(--ew-dim); font-family:'Share Tech Mono',monospace; }

.ewlab-status {
  display:flex; align-items:center; gap:6px;
  font-family:'Share Tech Mono',monospace; font-size:10px; color:var(--ew-green);
  letter-spacing:1px;
}

.ewlab-dot {
  width:7px; height:7px; border-radius:50%;
  background:var(--ew-green);
  box-shadow:0 0 8px var(--ew-green);
  animation:ewlab-blink 1.2s ease-in-out infinite;
}
@keyframes ewlab-blink{0%,100%{opacity:1}50%{opacity:0.3}}

/* ── PROGRESS ── */
.ewlab-progress-wrap {
  display:flex; align-items:center; gap:12px;
  padding:8px 24px;
  background:var(--ew-surface);
  border-bottom:1px solid var(--ew-border);
}

.ewlab-progress-bar {
  flex:1; height:4px; background:var(--ew-border); border-radius:2px; overflow:hidden;
}

.ewlab-progress-fill {
  height:100%;
  background:linear-gradient(90deg,var(--ew-accent),var(--ew-purple));
  border-radius:2px;
  transition:width 0.5s ease;
  box-shadow:0 0 8px rgba(0,255,231,0.4);
}

.ewlab-progress-label {
  font-family:'Share Tech Mono',monospace; font-size:10px; color:var(--ew-dim);
  letter-spacing:1px; white-space:nowrap;
}

/* ── BODY ── */
.ewlab-body { display:flex; min-height:600px; }

/* ── SIDEBAR ── */
.ewlab-sidebar {
  width:220px; flex-shrink:0;
  background:var(--ew-surface);
  border-right:1px solid var(--ew-border);
  display:flex; flex-direction:column;
  overflow-y:auto;
}

.ewlab-sidebar-title {
  font-family:'Share Tech Mono',monospace; font-size:10px;
  color:var(--ew-dim); letter-spacing:2px;
  padding:16px 20px 8px;
}

#ewlab-chapter-list { list-style:none; padding:0; margin:0; flex:1; }

.ewlab-nav-item {
  display:flex; align-items:center; gap:10px;
  padding:11px 20px; cursor:pointer;
  border-left:3px solid transparent;
  transition:all 0.2s;
  font-size:13px; color:var(--ew-dim);
}
.ewlab-nav-item:hover { color:var(--ew-text); background:rgba(0,255,231,0.04); }
.ewlab-nav-item.active {
  color:var(--ch-color,var(--ew-accent));
  border-left-color:var(--ch-color,var(--ew-accent));
  background:rgba(0,255,231,0.06);
  font-weight:600;
}

.ewlab-nav-icon { font-size:16px; }
.ewlab-nav-text { font-size:12px; letter-spacing:0.5px; }

.ewlab-sidebar-footer { padding:16px; border-top:1px solid var(--ew-border); }

.ewlab-score-box { text-align:center; }
.ewlab-score-num {
  font-family:'Orbitron',monospace; font-size:28px; font-weight:700;
  color:var(--ew-accent); text-shadow:0 0 12px rgba(0,255,231,0.5);
}
.ewlab-score-lbl {
  font-family:'Share Tech Mono',monospace; font-size:9px; color:var(--ew-dim); letter-spacing:1px; margin-top:2px;
}

/* ── MOBILE MENU ── */
.ewlab-menu-toggle {
  display:none;
  background:none; border:1px solid var(--ew-border);
  color:var(--ew-accent); font-family:'Share Tech Mono',monospace;
  font-size:11px; letter-spacing:1px;
  padding:8px 16px; cursor:pointer; border-radius:4px;
  margin:12px;
}

/* ── CONTENT ── */
.ewlab-content {
  flex:1; overflow-y:auto;
  padding:28px 32px;
  max-width:800px;
}

/* ── CHAPTER HEADER ── */
.ewlab-ch-header {
  display:flex; align-items:flex-start; gap:20px;
  margin-bottom:32px;
  padding-bottom:20px;
  border-bottom:1px solid var(--ew-border);
}

.ewlab-ch-icon {
  font-size:44px; line-height:1;
  filter:drop-shadow(0 0 10px var(--ch-color,var(--ew-accent)));
}

.ewlab-ch-num {
  font-family:'Share Tech Mono',monospace; font-size:10px;
  color:var(--ew-dim); letter-spacing:2px; margin-bottom:4px;
}

.ewlab-ch-title {
  font-family:'Orbitron',monospace; font-size:22px; font-weight:700;
  color:var(--ch-color,var(--ew-accent));
  text-shadow:0 0 12px rgba(0,255,231,0.25);
  letter-spacing:1px; margin:0 0 6px;
}

.ewlab-ch-sub { font-size:14px; color:var(--ew-dim); margin:0; }

/* ── SECTIONS ── */
.ewlab-section { margin-bottom:28px; }

.ewlab-section-heading {
  font-family:'Orbitron',monospace; font-size:15px; font-weight:700;
  letter-spacing:1px; margin:0 0 14px;
}

.ewlab-body-text {
  font-size:14px; line-height:1.85; color:var(--ew-text); margin:0;
}

/* DEFINITION */
.ewlab-def-block {
  background:rgba(0,255,231,0.04);
  border-left:3px solid var(--ew-accent);
  border-radius:0 8px 8px 0;
  padding:16px 20px; margin:0;
}
.ewlab-def-term {
  font-family:'Orbitron',monospace; font-size:12px; letter-spacing:1px;
  margin-bottom:8px; font-weight:700;
}
.ewlab-def-text { font-size:13px; line-height:1.8; color:var(--ew-text); }

/* LIST */
.ewlab-list-block { background:var(--ew-panel); border:1px solid var(--ew-border); border-radius:8px; padding:20px; }
.ewlab-list-item { padding:12px 0; border-bottom:1px solid rgba(14,64,96,0.5); }
.ewlab-list-item:last-child { border-bottom:none; padding-bottom:0; }
.ewlab-list-term { font-size:13px; font-weight:700; margin-bottom:5px; }
.ewlab-list-detail { font-size:13px; color:var(--ew-dim); line-height:1.7; }

/* FORMULA */
.ewlab-formula-block { background:var(--ew-panel); border:1px solid var(--ew-border); border-radius:8px; padding:20px; }
.ewlab-formula-box {
  font-family:'Share Tech Mono',monospace;
  font-size:26px; font-weight:700;
  text-align:center; padding:20px;
  background:rgba(0,0,0,0.4);
  border:1px solid; border-radius:6px;
  margin:12px 0;
  text-shadow:0 0 20px currentColor;
}
.ewlab-formula-explain { font-size:13px; line-height:1.8; color:var(--ew-dim); margin:0; }

/* STATS */
.ewlab-stats-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(120px,1fr)); gap:12px; }
.ewlab-stat-card { background:var(--ew-panel); border:1px solid var(--ew-border); border-radius:8px; padding:16px; text-align:center; }
.ewlab-stat-val {
  font-family:'Orbitron',monospace; font-size:20px; font-weight:700;
  text-shadow:0 0 12px currentColor;
}
.ewlab-stat-lbl { font-family:'Share Tech Mono',monospace; font-size:9px; color:var(--ew-dim); letter-spacing:1px; margin-top:6px; }

/* VISUAL */
.ewlab-visual-block { background:var(--ew-panel); border:1px solid var(--ew-border); border-radius:8px; padding:16px; }
.ewlab-canvas { width:100%!important; border-radius:4px; display:block; background:#020d18; }
.ewlab-canvas-caption { font-family:'Share Tech Mono',monospace; font-size:10px; color:var(--ew-dim); text-align:center; margin-top:8px; letter-spacing:0.5px; }

/* CONTROLS */
.ewlab-controls { margin-bottom:12px; }
.ewlab-ctrl-row { display:flex; align-items:center; gap:10px; margin:8px 0; }
.ewlab-ctrl-lbl { font-family:'Share Tech Mono',monospace; font-size:10px; color:var(--ew-dim); min-width:120px; letter-spacing:1px; }
.ewlab-ctrl-row input[type=range] { flex:1; -webkit-appearance:none; height:4px; background:var(--ew-border); border-radius:2px; outline:none; }
.ewlab-ctrl-row input[type=range]::-webkit-slider-thumb { -webkit-appearance:none; width:14px; height:14px; border-radius:50%; background:var(--ew-accent); cursor:pointer; box-shadow:0 0 8px rgba(0,255,231,0.6); }
.ewlab-ctrl-val { font-family:'Orbitron',monospace; font-size:11px; color:var(--ew-accent); min-width:55px; text-align:right; }
.ewlab-select { background:rgba(0,0,0,0.4); border:1px solid var(--ew-border); color:var(--ew-text); font-family:'Share Tech Mono',monospace; font-size:11px; padding:5px 8px; border-radius:4px; outline:none; }

/* BAND GRID */
.ewlab-band-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(90px,1fr)); gap:8px; }
.ewlab-band-card { padding:10px; border-radius:6px; border:1px solid; text-align:center; }
.ewlab-band-name { font-family:'Orbitron',monospace; font-size:13px; font-weight:700; margin-bottom:3px; }
.ewlab-band-freq { font-family:'Share Tech Mono',monospace; font-size:9px; color:var(--ew-dim); }

/* INTERFERENCE NOTE */
.ewlab-interf-note { font-family:'Share Tech Mono',monospace; font-size:11px; color:var(--ew-dim); text-align:center; margin-top:8px; min-height:18px; }

/* ── QUIZ ── */
.ewlab-quiz-block { background:var(--ew-panel); border:1px solid var(--ew-border); border-radius:8px; padding:20px; }
.ewlab-quiz-header { margin-bottom:12px; }
.ewlab-quiz-badge {
  font-family:'Share Tech Mono',monospace; font-size:10px;
  padding:4px 10px; border:1px solid; border-radius:3px; letter-spacing:1px;
}
.ewlab-quiz-q { font-size:14px; line-height:1.7; margin-bottom:14px; font-weight:600; }
.ewlab-quiz-opts { display:flex; flex-direction:column; gap:8px; }
.ewlab-quiz-opt {
  display:flex; align-items:center; gap:12px;
  background:rgba(0,0,0,0.3); border:1px solid var(--ew-border); border-radius:6px;
  padding:12px 16px; cursor:pointer; font-size:13px;
  transition:all 0.2s;
}
.ewlab-quiz-opt:hover { border-color:var(--ew-accent); background:rgba(0,255,231,0.05); }
.ewlab-quiz-opt.ewlab-correct { border-color:var(--ew-green)!important; background:rgba(0,255,136,0.1)!important; color:var(--ew-green); }
.ewlab-quiz-opt.ewlab-wrong { border-color:var(--ew-danger)!important; background:rgba(255,51,68,0.1)!important; color:var(--ew-danger); }
.ewlab-quiz-letter { font-family:'Orbitron',monospace; font-size:11px; min-width:18px; }
.ewlab-quiz-explain { display:none; margin-top:14px; font-size:13px; line-height:1.7; padding:12px; background:rgba(0,0,0,0.3); border-radius:6px; }
.ewlab-right { color:var(--ew-green); font-weight:700; }
.ewlab-wrong-txt { color:var(--ew-danger); font-weight:700; }

/* ── CHAPTER NAV ── */
.ewlab-ch-nav {
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px;
  margin-top:32px; padding-top:20px; border-top:1px solid var(--ew-border);
}
.ewlab-btn {
  background:transparent; border:1px solid var(--ew-border); color:var(--ew-dim);
  font-family:'Share Tech Mono',monospace; font-size:11px; letter-spacing:1px;
  padding:10px 18px; border-radius:4px; cursor:pointer; transition:all 0.2s;
}
.ewlab-btn:hover { border-color:var(--ew-accent); color:var(--ew-accent); background:rgba(0,255,231,0.05); }
.ewlab-btn-next { margin-left:auto; }

/* INTRO BLOCK */
.ewlab-intro-block { margin:0; }
.ewlab-intro-block .ewlab-body-text {
  background:rgba(0,0,0,0.2); border-radius:8px; padding:16px 18px;
  border-left:3px solid rgba(0,255,231,0.3);
}

/* ── RESPONSIVE ── */
@media(max-width:700px){
  .ewlab-sidebar {
    position:absolute; left:-100%; top:0; bottom:0; z-index:500;
    transition:left 0.3s; box-shadow:4px 0 30px rgba(0,0,0,0.5);
  }
  .ewlab-sidebar.ewlab-sidebar-open { left:0; }
  .ewlab-menu-toggle { display:block; }
  .ewlab-content { padding:16px; }
  .ewlab-header { padding:10px 14px; }
  .ewlab-logo-title { font-size:14px; }
  .ewlab-ch-title { font-size:17px; }
  #ewlab-search { width:150px; }
  .ewlab-body { position:relative; }
}

@media(max-width:480px){
  .ewlab-stats-grid { grid-template-columns:1fr 1fr; }
  .ewlab-band-grid { grid-template-columns:repeat(3,1fr); }
  #ewlab-search { width:120px; }
}
