:root{font-family:Inter,Segoe UI,Arial,sans-serif;color:#e8edf5;background:#0d1117;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:linear-gradient(135deg,#0d1117,#111827)}header{height:92px;padding:18px 28px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #283142;background:#111827dd;backdrop-filter:blur(12px)}h1,h2,p{margin:0}header h1{font-size:25px}header p{color:#98a6ba;margin-top:5px}.pills{display:flex;gap:8px}.pill{padding:6px 10px;border-radius:999px;background:#243047;font-size:12px}.pill.ok{background:#123b2c;color:#9ef2c6}.pill.bad{background:#4a2026;color:#ffafb8}main{display:grid;grid-template-columns:340px 1fr;min-height:calc(100vh - 92px)}.panel{background:#151c28;border:1px solid #283142;border-radius:14px}.controls{border-radius:0;padding:18px;overflow:auto;max-height:calc(100vh - 92px)}section+section{margin-top:20px;padding-top:18px;border-top:1px solid #283142}.controls h2,.result-card h2,.attempts-card h2{font-size:15px;margin-bottom:12px}.controls label{display:block;font-size:13px;color:#aeb9c9;margin-top:11px}.controls select,.controls input[type=text],.controls input:not([type]){width:100%;margin-top:6px;padding:10px;border:1px solid #35415a;border-radius:8px;background:#0f1520;color:#eef3fb}.controls input[type=range]{width:100%;margin-top:7px}.checkbox{display:flex!important;gap:8px;align-items:center}.dropzone{height:112px;border:1px dashed #52617a;border-radius:12px;display:flex!important;align-items:center;justify-content:center;flex-direction:column;cursor:pointer;background:#101722}.dropzone.drag{border-color:#54a8ff;background:#12243a}.dropzone span,.muted{color:#7f8ca1;font-size:12px}.button-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}button{border:1px solid #35415a;background:#1c2635;color:#e8edf5;border-radius:8px;padding:9px 12px;cursor:pointer}button:hover{background:#26344a}button:disabled{opacity:.45;cursor:not-allowed}.primary{width:100%;margin-top:20px;padding:13px;background:#1677ff;border-color:#4094ff;font-weight:700}.workspace{padding:18px;min-width:0}.tabs{display:flex;gap:6px;margin-bottom:10px}.tab.active{background:#1677ff;border-color:#4094ff}.viewer{height:52vh;min-height:380px;background:#070a0f;border:1px solid #283142;border-radius:14px;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}#imageCanvas{max-width:100%;max-height:100%;cursor:crosshair}#emptyState{color:#657087}.results-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:14px;margin-top:14px}.result-card,.attempts-card{padding:14px;height:250px}.result-title{display:flex;align-items:center;justify-content:space-between}textarea{width:100%;height:135px;resize:none;border:1px solid #35415a;border-radius:8px;background:#0d131d;color:#f3f6fb;padding:12px;font:15px Consolas,monospace}.summary{font-size:12px;color:#9aa8bb;margin-top:8px}.attempt{padding:9px;border-bottom:1px solid #283142;font-size:12px}.attempt strong{display:block}.attempt span{color:#8f9db1}.busy{position:fixed;inset:0;background:#05080dcc;display:flex;align-items:center;justify-content:center;flex-direction:column;z-index:20}.hidden{display:none}.spinner{width:42px;height:42px;border:4px solid #283142;border-top-color:#3c95ff;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:1000px){main{grid-template-columns:1fr}.controls{max-height:none}.viewer{height:55vh}.results-grid{grid-template-columns:1fr}}

.feature-toggle{font-weight:700;color:#e8edf5!important}.sub-options{margin-top:10px;padding:10px;border:1px solid #2e3b50;border-radius:10px;background:#101722}.disabled-options{opacity:.45}.warning-text{margin-top:9px;line-height:1.45}.restoration-notice{margin-top:8px;padding:8px 10px;border:1px solid #7d6421;border-radius:8px;background:#332a12;color:#f4d77e;font-size:12px;line-height:1.4}.attempts-card{overflow:auto}.attempt span{display:block;word-break:break-word}


.two-column-controls {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.two-column-controls input { width: 100%; }
.attempt { cursor: pointer; }
.attempt:hover { background: rgba(47,128,255,.08); }
.attempt.selected-attempt {
  border-left: 3px solid #2f80ff;
  background: rgba(47,128,255,.12);
}
.attempt-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 5px;
  opacity: .75;
  font-size: .78rem;
}
.attempt-meta .warning { color: #f5c451; }
.attempt-help {
  margin: 0 0 10px;
  opacity: .72;
  font-size: .83rem;
}
