*{box-sizing:border-box}body{margin:0;background:#f4f6f8;color:#222;font-family:Arial,Helvetica,sans-serif}.topbar{display:flex;align-items:center;justify-content:space-between;padding:18px 28px;background:#fff;border-bottom:1px solid #e5e7eb;position:sticky;top:0;z-index:5}.eyebrow{font-size:12px;font-weight:700;color:#64748b;letter-spacing:.12em}h1{margin:4px 0 0;font-size:24px}.status-pill{padding:10px 16px;border-radius:999px;background:#f59e0b;color:#111;font-weight:800}.status-pill.live{background:#10b981;color:white}.status-pill.stale{background:#ef4444;color:white}.layout{max-width:1160px;margin:24px auto;padding:0 16px;display:grid;grid-template-columns:1fr 1fr;gap:18px}.panel{background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:18px;box-shadow:0 8px 24px rgba(15,23,42,.06)}.wide{grid-column:1/-1}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field-group{margin-bottom:14px}.field-group label{display:block;font-size:12px;text-transform:uppercase;font-weight:700;color:#64748b;margin-bottom:6px}.readonly{border:1px solid #e5e7eb;background:#f8fafc;border-radius:10px;padding:12px;font-weight:700}.auto-row{margin-top:12px;padding:14px;border:1px solid #e5e7eb;border-radius:12px;display:flex;justify-content:space-between;align-items:center;gap:12px}.auto-row p{margin:4px 0 0;color:#64748b;font-size:13px}.switch input{display:none}.switch span{display:block;width:58px;height:32px;background:#cbd5e1;border-radius:99px;position:relative;cursor:pointer}.switch span:before{content:"";position:absolute;top:4px;left:4px;width:24px;height:24px;background:white;border-radius:50%;transition:.2s}.switch input:checked+span{background:#10b981}.switch input:checked+span:before{left:30px}.manual{width:100%;margin-top:14px;padding:13px;border:0;border-radius:12px;background:#cbd5e1;color:#475569;font-weight:800}.price-line{display:flex;justify-content:space-between;align-items:center}.price-line span{color:#64748b}.price-line strong{font-size:30px}.decision-mode{font-size:30px;font-weight:900;margin:18px 0 8px;color:#0f172a}.decision-mode.sideways{color:#ef4444}.decision-mode.allowed{color:#10b981}.decision-mode.building{color:#f59e0b}.decision-mode.blocked{color:#475569}.reason{color:#475569;background:#f8fafc;border-radius:10px;padding:12px}.decision-strip{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.decision-strip div{background:#f8fafc;border:1px solid #e5e7eb;border-radius:10px;padding:12px}.decision-strip span{display:block;color:#64748b;font-size:12px}.decision-strip strong{font-size:16px}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:16px}.metrics div{background:#f8fafc;border:1px solid #e5e7eb;border-radius:10px;padding:12px}.metrics span{display:block;color:#64748b;font-size:12px}.metrics strong{font-size:16px}.chart-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.chart-head h2{font-size:18px;margin:0}.chart-head span{font-weight:700;color:#64748b}canvas{width:100%;border-radius:12px;background:#fff;border:1px solid #eef2f7}.trades{max-height:260px;overflow:auto}.trade{border-bottom:1px solid #e5e7eb;padding:10px 0;font-size:13px}.trade strong{display:block}@media(max-width:800px){.layout{grid-template-columns:1fr}.metrics{grid-template-columns:1fr 1fr}.topbar{align-items:flex-start;gap:12px;flex-direction:column}.price-line strong{font-size:24px}}

.mini-pill{display:inline-flex;align-items:center;justify-content:center;padding:7px 10px;border-radius:999px;font-size:12px;font-weight:900;letter-spacing:.02em}.mini-pill.ok{background:#10b981;color:#fff}.mini-pill.bad{background:#ef4444;color:#fff}.mini-pill.warn{background:#f59e0b;color:#111}.connection-panel .chart-head span{font-size:13px}.connection-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:10px}.connection-card{background:#f8fafc;border:1px solid #e5e7eb;border-radius:12px;padding:12px;min-height:76px}.connection-card span{display:block;color:#64748b;font-size:12px;text-transform:uppercase;font-weight:800;margin-bottom:8px}.connection-card strong{font-size:18px}.connection-error{display:none;margin-top:12px;padding:12px;border-radius:12px;background:#fff1f2;color:#991b1b;font-weight:700;border:1px solid #fecdd3;word-break:break-word}
@media(max-width:1000px){.connection-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:520px){.connection-grid,.decision-strip{grid-template-columns:1fr}}
.refresh-btn{border:0;border-radius:10px;background:#0f172a;color:#fff;font-weight:800;padding:9px 12px;cursor:pointer}.refresh-btn:disabled{opacity:.55;cursor:not-allowed}.trade-grid .connection-card strong{word-break:break-word}.trade-status-open{background:#2563eb!important;color:#fff!important}.trade-status-won{background:#10b981!important;color:#fff!important}.trade-status-lost{background:#ef4444!important;color:#fff!important}.trade-status-unknown{background:#f59e0b!important;color:#111!important}.trade .status-line{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0}.trade .muted{color:#64748b}.trade .profit-positive{color:#059669;font-weight:900}.trade .profit-negative{color:#dc2626;font-weight:900}.trade .contract-id{font-family:monospace}
.barrier-editor{margin-bottom:0}.barrier-inputs{display:grid;grid-template-columns:1fr 1fr;gap:8px}.barrier-inputs input{width:100%;border:1px solid #e5e7eb;background:#f8fafc;border-radius:10px;padding:12px;font-weight:800;color:#0f172a}.barrier-inputs input:focus{outline:2px solid #93c5fd;border-color:#60a5fa}.save-barriers{margin-top:8px;width:100%;border:0;border-radius:10px;background:#0f172a;color:#fff;font-weight:900;padding:10px 12px;cursor:pointer}.save-barriers:disabled{opacity:.55;cursor:not-allowed}.settings-msg{display:none;margin-top:8px;border-radius:10px;padding:8px;font-size:12px;font-weight:800}.settings-msg.ok{display:block;background:#ecfdf5;color:#065f46;border:1px solid #a7f3d0}.settings-msg.bad{display:block;background:#fff1f2;color:#991b1b;border:1px solid #fecdd3}

.stake-inputs{display:flex;gap:8px;align-items:center}
.stake-inputs input{width:120px;padding:10px 12px;border-radius:12px;border:1px solid rgba(15,118,110,.25);background:#fff;font-weight:800}
.currency-label{padding:10px 12px}

select{width:100%;padding:12px 12px;border:1px solid #cbd5e1;border-radius:12px;background:#fff;font-weight:800;color:#0f172a}.small-note{font-size:12px;color:#64748b;margin-top:6px;line-height:1.35}
.allowance-inputs{display:flex;align-items:center;gap:12px}
.allowance-inputs input[type=range]{width:100%;min-width:140px}
.allowance-inputs strong{min-width:44px;text-align:right}
.stake-progression-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:12px}
.stake-progression-strip div{background:#f8fafc;border:1px solid #e5e7eb;border-radius:12px;padding:10px}
.stake-progression-strip span{display:block;color:#64748b;font-size:11px;text-transform:uppercase;font-weight:800;margin-bottom:5px}
.stake-progression-strip strong{font-size:14px;font-weight:900;color:#0f172a}
@media(max-width:800px){.stake-progression-strip{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.stake-progression-strip{grid-template-columns:1fr}.stake-inputs input{width:100%}}


/* Login / PWA / protected shell */
.top-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}
.logout-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 34px;
  padding: 0 14px;
  border-radius: 999px;
  background: #111827;
  color: #fff;
  font-weight: 800;
  text-decoration: none;
  border: 1px solid rgba(255,255,255,.10);
}
.logout-link:hover { background: #0f172a; }

.login-body {
  min-height: 100vh;
  margin: 0;
  display: grid;
  place-items: center;
  padding: 20px;
  color: #e8edf2;
  background:
    radial-gradient(circle at top, rgba(245, 188, 74, .16), transparent 32%),
    linear-gradient(180deg, #0b0f14, #05070a);
  font-family: Arial, sans-serif;
}
.login-shell {
  width: 100%;
  max-width: 440px;
}
.login-logo-wrap {
  display: flex;
  justify-content: center;
  margin-bottom: 18px;
}
.login-logo {
  width: min(70vw, 260px);
  height: min(70vw, 260px);
  object-fit: cover;
  border-radius: 999px;
  box-shadow: 0 18px 52px rgba(0,0,0,.44);
  border: 1px solid rgba(245, 188, 74, .40);
  background: #090b0f;
}
.login-card {
  width: 100%;
  background: linear-gradient(180deg, #111827, #0b1118);
  border: 1px solid rgba(245, 188, 74, .25);
  border-radius: 22px;
  box-shadow: 0 20px 60px rgba(0,0,0,.38);
  padding: 24px;
}
.login-card h1 {
  margin: 0 0 8px;
  font-size: 28px;
  text-align: center;
  color: #fff;
}
.login-card p {
  margin: 0 0 20px;
  color: #9aa7b5;
  text-align: center;
  line-height: 1.5;
}
.login-card label {
  display: block;
  font-size: 13px;
  color: #9aa7b5;
  margin-bottom: 8px;
}
.login-card input,
.login-card button {
  width: 100%;
  border-radius: 14px;
  border: 1px solid #243140;
  background: #060a0f;
  color: #e8edf2;
  padding: 14px 15px;
  font: inherit;
}
.login-card input:focus,
.login-card button:focus {
  outline: none;
  border-color: rgba(245,188,74,.75);
  box-shadow: 0 0 0 3px rgba(245,188,74,.14);
}
.login-card button {
  margin-top: 14px;
  background: linear-gradient(135deg, #d9a441, #f5d27b);
  color: #0b0f14;
  cursor: pointer;
  font-weight: 900;
  border: 0;
}
.login-alert {
  margin: 0 0 14px;
  padding: 12px 14px;
  border-radius: 14px;
  background: rgba(239,68,68,.14);
  border: 1px solid rgba(239,68,68,.3);
  color: #fecaca;
  text-align: center;
}
.install-note {
  margin-top: 14px;
  color: #9aa7b5;
  font-size: 12px;
  line-height: 1.45;
  text-align: center;
}

@media (max-width: 720px) {
  .topbar {
    align-items: flex-start;
    gap: 14px;
  }
  .top-actions {
    width: 100%;
    justify-content: space-between;
  }
}
