/* assets/style.css
   THEME SYSTEM: Light mode is DEFAULT. Dark mode is available via [data-theme="dark"] on <html>.
   All colors derive from CSS variables. */

:root{
  /* LIGHT THEME (default) */
  --bg: #f7f8fb;
  --bg-grad-top: #ffffff;
  --bg-grad-mid: #f7f8fb;
  --bg-grad-bot: #eef1f7;

  --card: #ffffff;
  --field: #ffffff;
  --text: #0f172a;
  --muted: #5b6b8a;

  --primary: #2563eb;
  --primary-2: #3b82f6;
  --accent: #b45309;
  --danger: #e11d48;
  --ok: #16a34a;

  --border: #e5e7eb;
  --th: #f2f4f8;

  --shadow: 0 10px 30px rgba(2,6,23,.08);
  --radius: 14px;
}

html[data-theme="dark"]{
  /* DARK THEME OVERRIDE */
  --bg: #0b1020;
  --bg-grad-top: #0b1020;
  --bg-grad-mid: #0c1328;
  --bg-grad-bot: #0e1632;

  --card: #0f1530;
  --field: #0b112a;
  --text: #e7ebff;
  --muted: #92a2cf;

  --primary: #6ea8fe;
  --primary-2: #8ec5ff;
  --accent: #ffd36e;
  --danger: #ff6b6b;
  --ok: #46d39a;

  --border: #1f2a5a;
  --th: #0b112a;

  --shadow: 0 10px 30px rgba(1,10,50,.35);
  --radius: 14px;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  background:
    radial-gradient(1200px 300px at 40% -10%, rgba(37,99,235,.08), transparent 40%),
    linear-gradient(180deg, var(--bg-grad-top), var(--bg-grad-mid) 50%, var(--bg-grad-bot));
  color:var(--text);
  font:14px/1.5 system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial
}
a{color:var(--primary);text-decoration:none}
a:hover{text-decoration:underline}
.container{max-width:1100px;margin:24px auto;padding:0 16px}

.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;margin:20px 0}
.card-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.card-header h2{margin:0}

.topbar{position:sticky;top:0;background:rgba(255,255,255,.85);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:10px 16px}
html[data-theme="dark"] .topbar{background:rgba(11,16,32,.8)}
.brand{display:flex;align-items:center;gap:10px;font-weight:700}
.nav a{margin:0 8px;color:var(--text);opacity:.9}
.nav a.active{color:var(--primary)}

.bg{
  display:flex;align-items:center;justify-content:center;min-height:100vh;
  background:
    radial-gradient(800px 300px at 20% -10%, rgba(37,99,235,.10), transparent),
    linear-gradient(180deg, var(--bg-grad-top), var(--bg-grad-mid) 50%, var(--bg-grad-bot));
}

.auth-wrap{width:100%;max-width:420px;padding:20px}
.auth-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px}
.auth-brand{display:flex;align-items:center;gap:10px;margin-bottom:8px;color:var(--muted)}

h1,h2,h3{font-weight:800}
.muted{color:var(--muted)}
.tiny{font-size:12px}

.grid{display:grid;gap:12px}
.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid.two .full{grid-column:1 / -1}
.panel h3{margin:0 0 6px}
.form label{display:flex;flex-direction:column;gap:6px}

input,select,textarea{
  background:var(--field);
  color:var(--text);
  border:1px solid var(--border);
  border-radius:10px;
  padding:10px 12px;
  outline:none;
}
input:focus,select:focus,textarea:focus{
  border-color:var(--primary);
  box-shadow:0 0 0 3px rgba(37,99,235,.15)
}
html[data-theme="dark"] input:focus, html[data-theme="dark"] select:focus, html[data-theme="dark"] textarea:focus{
  box-shadow:0 0 0 3px rgba(110,168,254,.15)
}

.btn{
  appearance:none;border:none;border-radius:999px;padding:10px 16px;font-weight:800;
  background:linear-gradient(90deg, var(--primary), var(--primary-2));color:#fff;cursor:pointer
}
.btn.subtle{background:#e5e7eb;color:#111}
html[data-theme="dark"] .btn.subtle{background:#1b244f;color:#fff}
.btn.primary{background:linear-gradient(90deg, var(--primary), var(--primary-2))}
.actions{display:flex;align-items:center;gap:10px}

.switch{display:flex;align-items:center;gap:8px}
.switch input{accent-color:var(--primary)}

.table-wrap{overflow:auto;border:1px solid var(--border);border-radius:10px}
.table{width:100%;border-collapse:collapse}
.table th,.table td{padding:10px 12px;border-bottom:1px solid var(--border)}
.table th{position:sticky;top:0;background:var(--th);text-align:left}

.mono{font-family:ui-monospace,Menlo,Consolas,monospace}
.badge{padding:2px 8px;border-radius:999px;border:1px solid var(--border);background:var(--th)}
.badge.queued{border-color:#cbd5e1}
.badge.running{border-color:#f59e0b;color:#b45309}
.badge.done{border-color:#86efac;color:#166534}
.badge.error{border-color:#fecaca;color:#b91c1c}

.logs{max-height:380px;overflow:auto;border:1px solid var(--border);border-radius:10px;padding:10px;background:var(--th)}
.logline{padding:6px 4px;border-bottom:1px dashed var(--border)}
.logline:last-child{border-bottom:none}
.logline .tag{display:inline-block;margin:0 6px;color:var(--primary)}
.level{display:inline-block;padding:0 6px;border:1px solid var(--border);border-radius:6px;margin-right:6px}
.level.info{color:var(--primary);border-color:var(--border)}
.level.error{color:var(--danger);border-color:#f5c2c7}

.alert{padding:10px 12px;border-radius:8px;margin:8px 0}
.alert-error{background:#fee2e2;border:1px solid #fecaca;color:#7f1d1d}
html[data-theme="dark"] .alert-error{background:#2a0f1b;border:1px solid #7a2d42;color:#ffb5c0}

/* Floating theme toggle on login */
.theme-toggle{
  position:fixed;top:10px;right:10px;
  background:linear-gradient(90deg,var(--primary),var(--primary-2));color:#fff;
  padding:8px 12px;border-radius:999px;border:none;cursor:pointer;box-shadow:var(--shadow)
}
.theme-label{font-weight:700}
