/* Minimal theme approximating the original React UI (glass, dark theme, spacing) */
:root{
  --bg:#0b0f14;
  --panel:#0f1720;
  --muted:#94a3b8;
  --accent:#60a5fa;
  --glass-bg: rgba(255,255,255,0.03);
  --glass-border: rgba(255,255,255,0.04);
  --radius:10px;
  --gap:12px;
}
html,body{height:100%;margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:linear-gradient(180deg,var(--bg),#071019);color:#e6eef6}
.app-shell{display:flex;min-height:100vh}
.sidebar{width:220px;padding:18px;box-sizing:border-box;border-radius:var(--radius);background:linear-gradient(180deg,rgba(255,255,255,0.02),rgba(255,255,255,0.01));border:1px solid var(--glass-border)}
.logo{display:flex;align-items:center;gap:10px;font-weight:600}
.nav-links{list-style:none;padding:12px 0;margin:0}
.nav-links li{margin:8px 0}
.nav-btn{background:none;border:0;color:inherit;padding:8px 10px;border-radius:8px;display:flex;align-items:center;gap:8px;cursor:pointer}
.nav-links li.active .nav-btn{background:rgba(96,165,250,0.12)}
main#main-content{flex:1;padding:18px}
.top-bar{display:flex;justify-content:space-between;align-items:center;padding:12px;border-radius:10px;margin-bottom:12px}
.dashboard-grid{display:grid;grid-template-columns:300px 1fr 320px;gap:12px}
.widget{padding:12px;border-radius:10px;background:var(--panel);border:1px solid var(--glass-border);min-height:120px}
.glass-panel{background:linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01));box-shadow:0 6px 16px rgba(2,6,23,0.6)}
.market-row{padding:8px;border-radius:8px;display:flex;justify-content:space-between;align-items:center;cursor:pointer}
.market-row:hover{background:rgba(255,255,255,0.02)}
.placeholder-chart{height:340px}
#price-chart{width:100%;height:100%}
.news-item{padding:8px;border-bottom:1px dashed rgba(255,255,255,0.02)}
.modal-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(2,6,23,0.6);z-index:60}
.modal-content{width:420px;padding:18px;border-radius:12px;background:linear-gradient(180deg, #0b1220, #07101a);border:1px solid rgba(255,255,255,0.04)}
.input-group input{width:100%;padding:10px;border-radius:8px;border:1px solid rgba(255,255,255,0.04);background:transparent;color:inherit}
.btn{padding:8px 12px;border-radius:8px;border:0;cursor:pointer}
.btn-primary{background:var(--accent);color:#02203b}
.btn-secondary{background:transparent;border:1px solid rgba(255,255,255,0.04);color:inherit}
.btn-sm{padding:6px 8px;font-size:13px}
.full-width{width:100%}
.error-text{color:#ff6b6b}
.hidden{display:none}
.watchlist-controls{display:flex;gap:8px;margin:8px 0}
.watchlist-controls input{flex:1}
.ea-item{padding:8px;border-radius:8px}
@media (max-width:1000px){.dashboard-grid{grid-template-columns:1fr;}.sidebar{display:none}}

/* Utilities and notification styles copied/adapted from the React theme */
.muted{color:var(--muted);font-size:13px}
.icon-btn{background:transparent;border:0;color:inherit;padding:6px;border-radius:8px;cursor:pointer}
.status-indicator{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:13px}
.status-indicator .dot{width:10px;height:10px;border-radius:50%;background:#34d399;display:inline-block}

/* Toast notifications */
#toasts{position:fixed;right:18px;top:18px;z-index:9999;display:flex;flex-direction:column;gap:10px}
.toast{min-width:220px;max-width:360px;padding:10px 12px;border-radius:10px;background:rgba(6,10,16,0.9);color:#e6eef6;border:1px solid rgba(255,255,255,0.04);box-shadow:0 6px 18px rgba(2,6,23,0.6);opacity:0;transform:translateY(-8px);animation:toast-in .18s ease forwards}
.toast.info{border-left:4px solid #60a5fa}
.toast.success{border-left:4px solid #34d399}
.toast.error{border-left:4px solid #ff6b6b}
 .toast .toast-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;margin-right:8px;background:rgba(255,255,255,0.03)}
 .toast .toast-text{display:inline-block;vertical-align:middle}
@keyframes toast-in{to{opacity:1;transform:none}}

/* Global loader overlay */
#global-loader{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(2,6,23,0.45);z-index:9998}
#global-loader .loader-box{padding:18px;border-radius:12px;background:linear-gradient(180deg,#071019,#061017);border:1px solid rgba(255,255,255,0.04);display:flex;align-items:center;gap:12px}
.spinner{width:30px;height:30px;border-radius:50%;border:4px solid rgba(255,255,255,0.06);border-top-color:var(--accent);animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.hidden{display:none}

/* Market grid styles */
.market-grid{display:flex;flex-direction:column;gap:8px}
.market-grid-row{display:flex;justify-content:space-between;align-items:center;padding:8px;border-radius:8px;background:linear-gradient(180deg,rgba(255,255,255,0.01),transparent);cursor:pointer}
.market-grid-row:hover{background:rgba(255,255,255,0.02)}
.market-grid-row .mg-symbol{font-weight:600}
.market-grid-row .mg-price{color:var(--muted)}
.market-grid-row .mg-chg.pos{color:#34d399}
.market-grid-row .mg-chg.neg{color:#ff6b6b}

/* Skeletons */
.skeleton{background:linear-gradient(90deg, rgba(255,255,255,0.02), rgba(255,255,255,0.04), rgba(255,255,255,0.02));border-radius:6px;height:14px}
.skeleton-row{display:flex;gap:8px;margin:8px 0}
.skeleton-symbol{width:90px}
.skeleton-price{flex:1}
.skeleton-chg{width:60px}



