[data-theme="terminal"] {
  --bg:#0a0a0a; --bg2:#0e0e0e; --surface:#111; --surface2:#161616; --surface3:#1c1c1c;
  --border:#1a3a1a; --border-hi:#2a5a2a;
  --text:#b0ffb0; --text-dim:#4a8a4a; --text-muted:#2d5a2d; --heading:#e0ffe0;
  --accent:#00ff41; --accent-dim:rgba(0,255,65,0.12); --accent-glow:0 0 10px rgba(0,255,65,0.3);
  --accent2:#00cc33; --accent2-dim:rgba(0,204,51,0.1);
  --pink:#ff4081; --pink-dim:rgba(255,64,129,0.1);
  --cyan:#00ffd5; --cyan-dim:rgba(0,255,213,0.1);
  --purple:#b388ff; --purple-dim:rgba(179,136,255,0.1);
  --green:#00ff41; --green-dim:rgba(0,255,65,0.1);
  --yellow:#ffea00; --yellow-dim:rgba(255,234,0,0.1);
  --red:#ff3333; --red-dim:rgba(255,51,51,0.1);
  --gradient:linear-gradient(135deg,#00ff41,#00cc33);
  --card-shadow:0 2px 12px rgba(0,0,0,0.5);
  --input-bg:#080808; --code-bg:#050505;
  --font-body:'JetBrains Mono','Fira Code',monospace; --font-size:13px;
  --radius:3px; --radius-lg:4px;
  --scanline:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,0.06) 2px,rgba(0,0,0,0.06) 4px);
  --scanline-on:1;
}

[data-theme="cyberpunk"] {
  --bg:#0b0b1a; --bg2:#0f0f24; --surface:#13132b; --surface2:#1a1a3e; --surface3:#22224a;
  --border:#2a2a5c; --border-hi:#3a3a7c;
  --text:#e0e0ff; --text-dim:#7878aa; --text-muted:#4a4a7a; --heading:#fff;
  --accent:#ff2d95; --accent-dim:rgba(255,45,149,0.12); --accent-glow:0 0 12px rgba(255,45,149,0.35);
  --accent2:#b44dff; --accent2-dim:rgba(180,77,255,0.1);
  --pink:#ff2d95; --pink-dim:rgba(255,45,149,0.12);
  --cyan:#00f0ff; --cyan-dim:rgba(0,240,255,0.1);
  --purple:#b44dff; --purple-dim:rgba(180,77,255,0.1);
  --green:#39ff14; --green-dim:rgba(57,255,20,0.1);
  --yellow:#ffe600; --yellow-dim:rgba(255,230,0,0.1);
  --red:#ff3333; --red-dim:rgba(255,51,51,0.1);
  --gradient:linear-gradient(135deg,#ff2d95,#b44dff,#00f0ff);
  --card-shadow:0 4px 24px rgba(0,0,0,0.4),0 0 1px rgba(180,77,255,0.3);
  --input-bg:#0e0e22; --code-bg:#0a0a1a;
  --font-body:'Inter',-apple-system,sans-serif; --font-size:14px;
  --radius:10px; --radius-lg:14px;
  --scanline:none; --scanline-on:0;
}

[data-theme="frost"] {
  --bg:#f0f4f8; --bg2:#e8ecf2; --surface:#fff; --surface2:#f5f7fb; --surface3:#edf0f5;
  --border:#d0d8e4; --border-hi:#b8c4d4;
  --text:#1a2a3a; --text-dim:#5a7090; --text-muted:#8a9ab0; --heading:#0a1a2a;
  --accent:#2563eb; --accent-dim:rgba(37,99,235,0.08); --accent-glow:0 0 8px rgba(37,99,235,0.2);
  --accent2:#7c3aed; --accent2-dim:rgba(124,58,237,0.06);
  --pink:#e11d48; --pink-dim:rgba(225,29,72,0.06);
  --cyan:#0891b2; --cyan-dim:rgba(8,145,178,0.06);
  --purple:#7c3aed; --purple-dim:rgba(124,58,237,0.06);
  --green:#059669; --green-dim:rgba(5,150,105,0.06);
  --yellow:#b45309; --yellow-dim:rgba(180,83,9,0.06);
  --red:#dc2626; --red-dim:rgba(220,38,38,0.06);
  --gradient:linear-gradient(135deg,#2563eb,#7c3aed,#0891b2);
  --card-shadow:0 1px 8px rgba(0,0,0,0.06),0 0 1px rgba(37,99,235,0.1);
  --input-bg:#f8fafc; --code-bg:#f1f5f9;
  --font-body:'Inter',-apple-system,sans-serif; --font-size:14px;
  --radius:10px; --radius-lg:14px;
  --scanline:none; --scanline-on:0;
}

[data-theme="amber"] {
  --bg:#121008; --bg2:#181410; --surface:#1e1a14; --surface2:#26221a; --surface3:#302a20;
  --border:#3a3020; --border-hi:#504428;
  --text:#e8d8c0; --text-dim:#8a7a60; --text-muted:#5a4e3a; --heading:#fff0d8;
  --accent:#ff9f1c; --accent-dim:rgba(255,159,28,0.12); --accent-glow:0 0 12px rgba(255,159,28,0.3);
  --accent2:#ff6b35; --accent2-dim:rgba(255,107,53,0.1);
  --pink:#ff6b6b; --pink-dim:rgba(255,107,107,0.1);
  --cyan:#4ecdc4; --cyan-dim:rgba(78,205,196,0.1);
  --purple:#c792ea; --purple-dim:rgba(199,146,234,0.1);
  --green:#a8e06c; --green-dim:rgba(168,224,108,0.1);
  --yellow:#ff9f1c; --yellow-dim:rgba(255,159,28,0.1);
  --red:#ff4444; --red-dim:rgba(255,68,68,0.1);
  --gradient:linear-gradient(135deg,#ff9f1c,#ff6b35,#ff4444);
  --card-shadow:0 2px 16px rgba(0,0,0,0.4);
  --input-bg:#14100a; --code-bg:#100c06;
  --font-body:'JetBrains Mono','Fira Code',monospace; --font-size:13px;
  --radius:6px; --radius-lg:8px;
  --scanline:none; --scanline-on:0;
}

*{margin:0;padding:0;box-sizing:border-box}

body{
  font-family:var(--font-body);
  background:var(--bg);
  color:var(--text);
  min-height:100vh;
  overflow-x:hidden;
  font-size:var(--font-size);
  line-height:1.6;
  transition:background .35s,color .35s;
}

body::after{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:9999;
  background:var(--scanline);opacity:var(--scanline-on);
}

::-webkit-scrollbar{width:6px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--border-hi);border-radius:3px}


.layout{display:flex;min-height:100vh}


.sidebar{
  width:280px;min-width:280px;
  background:var(--surface);border-right:1px solid var(--border);
  display:flex;flex-direction:column;
  position:fixed;top:0;left:0;height:100vh;overflow-y:auto;z-index:100;
  transition:transform .35s cubic-bezier(.4,0,.2,1),opacity .3s;
  box-shadow:var(--card-shadow);
}
.sidebar.collapsed{transform:translateX(-100%);opacity:0;pointer-events:none}

.sb-head{padding:18px 18px 14px;border-bottom:1px solid var(--border)}
.sb-logo{
  font-size:12px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase;
  background:var(--gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;
}
.sb-sub{font-size:10px;color:var(--text-muted);margin-top:2px}

.sb-body{padding:14px 18px;display:flex;flex-direction:column;gap:18px;flex:1}

.sb-title{
  font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:2px;
  color:var(--accent);margin-bottom:6px;
}
.sb-group{display:flex;flex-direction:column;gap:5px}
.sb-label{font-size:11px;color:var(--text-dim);font-weight:600}

.sb-select,.sb-input{
  width:100%;background:var(--input-bg);border:1px solid var(--border);color:var(--text);
  font-family:var(--font-body);font-size:12px;padding:8px 10px;
  border-radius:var(--radius);outline:none;transition:border-color .2s,box-shadow .2s;
}
.sb-select:focus,.sb-input:focus{border-color:var(--accent);box-shadow:var(--accent-glow)}
.sb-input[type="number"]{width:80px;text-align:center}
.sb-input[type="password"]{font-size:11px;letter-spacing:1px}


.theme-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.theme-chip{
  background:var(--surface2);border:2px solid var(--border);
  border-radius:var(--radius);padding:7px 0;text-align:center;
  font-size:11px;font-weight:600;cursor:pointer;transition:all .2s;color:var(--text-dim);
}
.theme-chip:hover{border-color:var(--accent);color:var(--text)}
.theme-chip.active{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}

.file-zone{
  border:2px dashed var(--border);border-radius:var(--radius);
  padding:14px 10px;text-align:center;cursor:pointer;position:relative;
  transition:all .25s;font-size:11px;color:var(--text-dim);
}
.file-zone:hover,.file-zone.dragover{border-color:var(--cyan);background:var(--cyan-dim);color:var(--text)}
.file-zone input[type="file"]{position:absolute;inset:0;opacity:0;cursor:pointer}
.file-zone .fz-hint{font-size:9px;color:var(--text-muted);margin-top:4px}

.file-list{display:flex;flex-direction:column;gap:3px;margin-top:4px}
.file-chip{
  display:flex;justify-content:space-between;align-items:center;
  background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);
  padding:4px 8px;font-size:11px;color:var(--text-dim);
}
.file-chip .rm{cursor:pointer;color:var(--red);font-weight:700;font-size:13px}

.sb-footer{padding:14px 18px;border-top:1px solid var(--border)}
.sb-note{font-size:9px;color:var(--text-muted);line-height:1.4;text-align:center}


.sb-toggle{
  position:fixed;top:14px;left:14px;z-index:200;
  background:var(--surface);border:1px solid var(--border);color:var(--accent);
  font-family:var(--font-body);font-size:16px;width:34px;height:34px;
  border-radius:var(--radius);cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:all .3s;box-shadow:var(--card-shadow);
}
.sb-toggle:hover{border-color:var(--accent);box-shadow:var(--accent-glow)}
.sb-toggle.shifted{left:294px}


.main{
  flex:1;margin-left:280px;padding:20px 28px;max-width:100%;
  transition:margin-left .35s cubic-bezier(.4,0,.2,1);
}
.main.expanded{margin-left:0}


.hdr{
  text-align:center;padding:16px 0 20px 40px;margin-bottom:24px;
  border-bottom:1px solid var(--border);position:relative;
}
.hdr h1{
  font-size:22px;font-weight:800;
  background:var(--gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;
}
.hdr p{font-size:11px;color:var(--text-muted);margin-top:3px}
.hdr::after{
  content:"";position:absolute;bottom:-1px;left:25%;width:50%;height:2px;
  background:var(--gradient);border-radius:2px;opacity:.5;
}


.input-card{
  background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);
  padding:18px;margin-bottom:22px;box-shadow:var(--card-shadow);
  position:relative;overflow:hidden;
}
.input-card::before{
  content:"";position:absolute;top:-1px;left:-1px;right:-1px;height:3px;
  background:var(--gradient);border-radius:var(--radius-lg) var(--radius-lg) 0 0;opacity:.4;
}

.prompt-line{
  font-size:12px;margin-bottom:6px;display:flex;align-items:center;gap:4px;
}
.prompt-line .p-user{color:var(--text-dim)}
.prompt-line .p-sep{color:var(--accent)}
.prompt-line .p-cursor{
  display:inline-block;width:7px;height:14px;background:var(--accent);
  animation:blink 1s step-end infinite;
}
@keyframes blink{0%,100%{opacity:1}50%{opacity:0}}

[data-theme="cyberpunk"] .prompt-line,
[data-theme="frost"] .prompt-line{display:none}

textarea{
  width:100%;min-height:100px;background:var(--input-bg);
  border:1px solid var(--border);border-radius:var(--radius);
  color:var(--text);padding:12px;font-family:var(--font-body);font-size:var(--font-size);
  resize:vertical;outline:none;transition:border-color .2s,box-shadow .2s;line-height:1.6;
}
textarea:focus{border-color:var(--accent);box-shadow:var(--accent-glow)}
textarea::placeholder{color:var(--text-muted)}

.input-actions{margin-top:12px;display:flex;gap:10px;align-items:center}

.btn{
  font-family:var(--font-body);font-size:12px;font-weight:700;
  padding:9px 22px;border-radius:var(--radius);cursor:pointer;
  transition:all .25s;border:none;letter-spacing:.3px;text-transform:uppercase;
}
.btn:disabled{opacity:.3;cursor:not-allowed}

.btn-run{background:var(--gradient);color:#fff;box-shadow:0 2px 10px rgba(0,0,0,.2)}
.btn-run:hover:not(:disabled){box-shadow:var(--accent-glow);transform:translateY(-1px)}

.btn-clear{background:var(--surface2);color:var(--text-dim);border:1px solid var(--border)}
.btn-clear:hover{border-color:var(--red);color:var(--red)}

.progress-section{display:none;margin-bottom:22px}
.progress-section.active{display:block}
.timeline{display:flex;flex-direction:column;gap:4px}

.tl-item{
  display:flex;align-items:flex-start;gap:8px;padding:7px 12px;
  border-radius:var(--radius);font-size:12px;animation:tlIn .3s ease;
  background:transparent;border:1px solid transparent;transition:background .15s;
}
.tl-item:hover{background:var(--surface2)}

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

.tl-icon{
  flex-shrink:0;width:26px;height:26px;border-radius:var(--radius);
  display:flex;align-items:center;justify-content:center;
  font-size:11px;font-weight:700;font-family:'JetBrains Mono',monospace;
}
.tl-body{flex:1;min-width:0}
.tl-label{font-weight:600;font-size:12px}
.tl-ts{font-size:10px;color:var(--text-muted);margin-left:6px}

.tl-item.iter .tl-icon{background:var(--purple-dim);color:var(--purple)}
.tl-item.iter{border-color:var(--purple-dim)}
.tl-item.claude .tl-icon{background:var(--cyan-dim);color:var(--cyan)}
.tl-item.gpt .tl-icon{background:var(--pink-dim);color:var(--pink)}
.tl-item.ok .tl-icon{background:var(--green-dim);color:var(--green)}
.tl-item.ok{border-color:var(--green-dim)}
.tl-item.warn .tl-icon{background:var(--yellow-dim);color:var(--yellow)}
.tl-item.warn{border-color:var(--yellow-dim)}
.tl-item.err .tl-icon{background:var(--red-dim);color:var(--red)}
.tl-item.err{border-color:var(--red-dim)}
.tl-item.info .tl-icon{background:var(--surface2);color:var(--text-dim)}

.tl-item.active-step .tl-icon{position:relative;color:transparent}
.tl-item.active-step .tl-icon::after{
  content:"";position:absolute;width:12px;height:12px;
  border:2px solid var(--border);border-top-color:var(--accent);
  border-radius:50%;animation:spin .7s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg)}}

.tl-item details{margin-top:5px}
.tl-item details summary{cursor:pointer;color:var(--purple);font-size:11px;font-weight:600;outline:none}
.tl-item details pre{
  background:var(--code-bg);border:1px solid var(--border);border-radius:var(--radius);
  padding:8px;margin-top:4px;white-space:pre-wrap;word-break:break-word;
  max-height:200px;overflow-y:auto;font-family:'JetBrains Mono',monospace;
  font-size:11px;line-height:1.5;color:var(--text-dim);
}

.final-section{
  display:none;margin-top:22px;border-radius:var(--radius-lg);
  background:var(--surface);box-shadow:var(--card-shadow);
  overflow:hidden;animation:tlIn .4s ease;position:relative;
}
.final-section.active{display:block}

.final-section::before{
  content:"";position:absolute;top:0;left:15%;width:70%;height:2px;border-radius:2px;
  opacity:0;transition:opacity .3s;
}
.final-section.glow-ok::before{background:var(--green);box-shadow:0 0 10px var(--green);opacity:1}
.final-section.glow-warn::before{background:var(--yellow);box-shadow:0 0 10px var(--yellow);opacity:1}

.final-bar{
  display:flex;justify-content:space-between;align-items:center;
  padding:12px 18px;border-bottom:1px solid var(--border);
}
.final-bar.ok{background:var(--green-dim)}
.final-bar.warn{background:var(--yellow-dim)}

.final-tag{
  font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:1.5px;
  display:flex;align-items:center;gap:8px;
}
.final-bar.ok .final-tag{color:var(--green)}
.final-bar.warn .final-tag{color:var(--yellow)}

.final-tag .dot{width:8px;height:8px;border-radius:50%;display:inline-block}
.final-bar.ok .dot{background:var(--green);box-shadow:0 0 6px var(--green)}
.final-bar.warn .dot{background:var(--yellow);box-shadow:0 0 6px var(--yellow)}

.copy-btn{
  background:transparent;border:1px solid var(--border);color:var(--text-dim);
  font-family:var(--font-body);font-size:11px;font-weight:600;
  padding:4px 12px;border-radius:var(--radius);cursor:pointer;transition:all .2s;
}
.copy-btn:hover{border-color:var(--cyan);color:var(--cyan)}

.final-body{padding:18px;font-size:var(--font-size);line-height:1.75;overflow-x:auto}

.final-body h1,.final-body h2,.final-body h3{color:var(--heading);margin:16px 0 8px;font-weight:700}
.final-body h1{font-size:18px}
.final-body h2{font-size:16px;padding-bottom:4px;border-bottom:1px solid var(--border)}
.final-body h3{font-size:14px}
.final-body p{margin:8px 0}
.final-body strong{color:var(--accent);font-weight:700}
.final-body em{color:var(--cyan);font-style:italic}
.final-body a{color:var(--cyan);text-decoration:underline}
.final-body code{
  background:var(--code-bg);border:1px solid var(--border);padding:1px 5px;
  border-radius:var(--radius);font-family:'JetBrains Mono',monospace;
  font-size:12px;color:var(--purple);
}
.final-body pre{
  background:var(--code-bg);border:1px solid var(--border);border-radius:var(--radius);
  padding:12px;margin:10px 0;overflow-x:auto;
  font-family:'JetBrains Mono',monospace;font-size:12px;line-height:1.6;
}
.final-body pre code{background:none;border:none;padding:0;color:var(--text)}
.final-body ul,.final-body ol{margin:8px 0 8px 20px}
.final-body li{margin:4px 0}
.final-body li::marker{color:var(--accent)}
.final-body blockquote{
  border-left:3px solid var(--purple);padding-left:12px;margin:10px 0;
  color:var(--text-dim);font-style:italic;
}
.final-body hr{border:none;border-top:1px solid var(--border);margin:16px 0}
.final-body table{border-collapse:collapse;width:100%;margin:10px 0;font-size:12px}
.final-body th,.final-body td{border:1px solid var(--border);padding:6px 10px;text-align:left}
.final-body th{background:var(--surface2);color:var(--accent);font-weight:700}

.final-stats{
  padding:10px 18px;border-top:1px solid var(--border);
  font-size:11px;color:var(--text-muted);display:flex;gap:18px;flex-wrap:wrap;
}

@media(max-width:768px){
  .sidebar{width:100%;min-width:100%}
  .sidebar.collapsed{transform:translateX(-100%)}
  .sb-toggle{left:10px;top:10px}
  .sb-toggle.shifted{left:10px}
  .sb-head{padding-top:52px}
  .main{margin-left:0!important;padding:14px 12px;padding-top:52px}
  .hdr{padding-left:44px}
  .hdr h1{font-size:18px}
  textarea{min-height:80px;font-size:12px}
  .final-body{font-size:12px;padding:14px}
  .theme-grid{grid-template-columns:1fr 1fr}
}