:root {
  --bg: #090D15; --surface: #141C2B; --border: #1E2D45;
  --text: #E6EDF3; --muted: #94A0B2;
  --accent: #59DDF7; --green: #3FB950; --amber: #D2991D; --red: #FF4D4D;
  --radius: 10px; --font: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --mono: 'SF Mono', 'Fira Code', Menlo, monospace;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{font-family:var(--font);background:var(--bg);color:var(--text);line-height:1.6;min-height:100vh}
a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}

#app{max-width:800px;margin:0 auto;padding:20px 16px 60px}

/* Header */
.app-header{text-align:center;padding:32px 0 16px}
.logo-row{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:6px}
.logo-icon{font-size:2rem}
.app-header h1{font-size:1.8rem;font-weight:800;background:linear-gradient(135deg,var(--accent),#3fb950);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.tagline{color:var(--muted);font-size:.92rem}

/* Cards */
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-bottom:16px}
.card-error{border-color:var(--red);background:rgba(255,77,77,.08)}

/* Form */
.form-row{display:flex;gap:10px;align-items:center}
.form-row input{flex:1}
input[type="url"],input[type="password"]{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:12px 14px;color:var(--text);font-size:.95rem;font-family:var(--font);outline:none;transition:border-color .2s}
input:focus{border-color:var(--accent)}
select{background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:6px 10px;color:var(--text);font-size:.85rem;font-family:var(--font)}
button{cursor:pointer;font-family:var(--font);font-size:.92rem;font-weight:600;border:none;border-radius:8px;padding:12px 22px;transition:all .15s}
.btn-primary{background:var(--green);color:#fff}
.btn-primary:hover{filter:brightness(1.1);transform:translateY(-1px)}
.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}
.btn-secondary{background:transparent;border:1px solid var(--border);color:var(--text)}
.btn-secondary:hover{background:rgba(255,255,255,.05)}
.btn-ghost{background:transparent;color:var(--muted);padding:6px 12px;font-size:.8rem}

.options-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:12px 0 0}
.opt{display:flex;align-items:center;gap:5px;font-size:.82rem;color:var(--muted);cursor:pointer}
.opt input[type="checkbox"]{accent-color:var(--accent)}
.key-row{display:flex;gap:10px;align-items:center;margin:10px 0 0}
.key-row input{flex:1}
.key-hint{font-size:.75rem;color:var(--muted);white-space:nowrap}
#form-status{font-size:.82rem;color:var(--amber);margin-top:8px;min-height:20px}

/* Progress */
.progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font-size:.9rem}
.progress-bar-track{height:6px;background:var(--bg);border-radius:3px;overflow:hidden;margin-bottom:8px}
.progress-bar-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--green));border-radius:3px;transition:width .3s ease;width:0%}
.progress-msg{color:var(--muted);font-size:.85rem}

/* Report */
.report-actions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--border)}
#report-meta{font-size:.82rem;color:var(--muted);margin-bottom:16px}
.report-content{line-height:1.8;font-size:.95rem}
.report-content h1{font-size:1.6rem;margin:24px 0 12px;padding-bottom:8px;border-bottom:1px solid var(--border)}
.report-content h2{font-size:1.25rem;margin:22px 0 10px;color:var(--accent)}
.report-content h3{font-size:1.05rem;margin:16px 0 8px}
.report-content p{margin:10px 0}
.report-content ul,.report-content ol{padding-left:20px;margin:8px 0}
.report-content li{margin:4px 0}
.report-content code{background:var(--bg);padding:2px 6px;border-radius:4px;font-family:var(--mono);font-size:.85em}
.report-content pre{background:var(--bg);padding:14px 16px;border-radius:8px;overflow-x:auto;font-family:var(--mono);font-size:.82rem;line-height:1.5;margin:12px 0}
.report-content blockquote{border-left:3px solid var(--accent);padding:8px 16px;margin:12px 0;color:var(--muted);font-style:italic}
.report-content table{width:100%;border-collapse:collapse;margin:12px 0}
.report-content th,.report-content td{padding:8px 12px;border:1px solid var(--border);text-align:left}
.report-content th{font-weight:600;background:var(--bg)}
.report-content a{color:var(--accent)}
.report-content em{color:var(--amber)}
.report-content strong{color:var(--text)}
.report-content img{max-width:100%;border-radius:6px}

/* Recent list */
#recent-list{display:flex;flex-direction:column;gap:8px}
.recent-item{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;background:var(--bg);border-radius:8px;font-size:.85rem}
.recent-item .status-dot{width:8px;height:8px;border-radius:50%;margin-right:8px;flex-shrink:0}
.status-complete{background:var(--green)}
.status-running{background:var(--amber);animation:pulse 1s infinite}
.status-failed{background:var(--red)}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}

/* Error */
#error-section h3{margin-bottom:8px;color:var(--red)}
#error-msg{color:var(--muted);margin-bottom:12px;font-family:var(--mono);font-size:.85rem}

/* Footer */
.app-footer{text-align:center;padding:24px 0;color:var(--muted);font-size:.8rem}
.app-footer a{color:var(--muted)}

/* Spinner */
.spinner{display:inline-block;width:16px;height:16px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .6s linear infinite;margin-right:8px;vertical-align:middle}
@keyframes spin{to{transform:rotate(360deg)}}

/* Mobile */
@media(max-width:600px){
  #app{padding:12px 12px 40px}
  .app-header{padding:20px 0 12px}
  .app-header h1{font-size:1.4rem}
  .form-row{flex-direction:column}
  .form-row button{width:100%}
  .options-row{flex-direction:column;align-items:flex-start}
  .key-row{flex-direction:column}
  .card{padding:16px}
  .report-content h1{font-size:1.3rem}
  .report-content h2{font-size:1.1rem}
  .report-actions button{flex:1;font-size:.78rem;padding:10px 12px}
}
