/* Global styles for Trading Monitor */
@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700&display=swap');

:root{
  --bg:#030816;
  --panel:#0c1428;
  --panel-2:#0b1022;
  --border:#1c2740;
  --fg:#e8f2ff;
  --muted:#8fa4c3;
  --accent:#1fe4b1;
  --accent-2:#5865f2;
  --success:#1fe4b1;
  --danger:#ff4d67;
  --warning:#f6ad55;
  --shadow:0 14px 34px rgba(0,0,0,0.38);
}
html,body{margin:0;padding:0}
body{
  background:radial-gradient(circle at 20% 10%, rgba(88,101,242,0.16), transparent 26%), radial-gradient(circle at 80% 20%, rgba(31,228,177,0.16), transparent 24%), linear-gradient(180deg,#050b1a 0%,#050a16 60%,#040814 100%);
  color:var(--fg);
  font-family:'Manrope', system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,Helvetica Neue,Arial;
  letter-spacing:0.01em;
  padding-left:240px;
}
body.auth-body{
  padding-left:0;
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
}
.auth-shell{width:100%;max-width:460px;padding:18px}
.auth-card{
  background:var(--panel);
  border:1px solid var(--border);
  border-radius:18px;
  padding:28px 26px;
  box-shadow:0 18px 34px rgba(0,0,0,0.35);
}
.auth-brand{font-weight:800;font-size:18px;margin-bottom:10px;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted)}
.auth-brand span{color:var(--accent);margin-right:6px}
.auth-card h1{margin:4px 0 8px;font-size:26px}
.auth-subtitle{color:var(--muted);font-size:14px;margin-bottom:16px}
.auth-card form{display:flex;flex-direction:column;gap:12px;margin-bottom:12px}
.auth-card label{margin-bottom:4px}
.auth-card input{width:100%}
.auth-alert{padding:10px 12px;border-radius:10px;margin-bottom:12px;font-size:14px}
.auth-alert.error{background:rgba(239,68,68,0.12);border:1px solid rgba(239,68,68,0.4);color:#fecaca}
.auth-alert.success{background:rgba(34,197,94,0.12);border:1px solid rgba(34,197,94,0.4);color:#bbf7d0}
.auth-alt{font-size:14px;margin-top:4px}
.auth-alt a{color:var(--accent);text-decoration:none;font-weight:600}
.auth-footnote{margin-top:12px;font-size:12px;color:var(--muted)}
.auth-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:6px}
.w-100{width:100%}
.theme-toggle{display:flex;align-items:center;gap:8px;margin-top:8px}
.container{max-width:1280px;margin:0 auto;padding:16px 18px 26px;}
.container.narrow{max-width:980px;}
.card{
  background:var(--panel);
  border:1px solid rgba(255,255,255,0.05);
  border-radius:16px;
  padding:16px;
  box-shadow:0 16px 40px rgba(0,0,0,0.35);
}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.grid{display:grid;gap:14px}
.section-title{margin:8px 0 12px 0;font-size:18px;font-weight:700;color:var(--fg);letter-spacing:0.01em}
.btn{
  display:inline-flex;align-items:center;gap:8px;
  background:linear-gradient(135deg,#1fe4b1,#16a1ff);
  color:#041022;text-decoration:none;padding:10px 15px;border-radius:14px;
  border:1px solid transparent;font-weight:700;letter-spacing:0.01em;box-shadow:0 10px 26px rgba(22,161,255,0.35);
  transition:transform .12s ease, box-shadow .12s ease, filter .12s ease;
}
.btn:hover{transform:translateY(-1px);filter:brightness(1.05);box-shadow:0 14px 30px rgba(22,161,255,0.45);}
.btn.secondary{
  background:rgba(255,255,255,0.04);
  color:var(--fg);
  border:1px solid var(--border);
  box-shadow:none;
}
.btn.danger{background:linear-gradient(135deg,#ff7b8a,#ff4d67);color:#fff;border-color:rgba(255,77,103,0.5)}
.btn.text{background:transparent;border:1px solid transparent;color:var(--muted);box-shadow:none;padding:6px 8px}
.icon-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:36px;
  height:36px;
  border-radius:12px;
  border:1px solid var(--border);
  background:rgba(255,255,255,0.04);
  color:var(--muted);
  cursor:pointer;
  transition:transform .12s ease, background .12s ease, color .12s ease;
}
.icon-btn:hover{background:rgba(255,255,255,0.09);transform:translateY(-1px);}
.icon-btn.danger{border-color:rgba(255,77,103,0.4);color:#ff9aa8;}
.icon-btn.danger:hover{background:rgba(255,77,103,0.18);color:#fff;}
input[type=text],input[type=number],select{
  background:#0e162c;color:var(--fg);border:1px solid #1f2c4a;border-radius:12px;padding:10px 12px;
  width:100%;box-sizing:border-box;min-height:40px;font-size:14px;
}
label{display:block;margin-bottom:6px;font-weight:600;color:var(--muted);letter-spacing:0.01em}
/* Form grid: prevents overlap and keeps fields readable */
.form-grid{display:grid;gap:12px;grid-template-columns:repeat(12,1fr)}
.field{display:flex;flex-direction:column;gap:6px}
.col-3{grid-column:span 3}
.col-4{grid-column:span 4}
.col-6{grid-column:span 6}
.col-12{grid-column:span 12}
@media (max-width: 1200px){ .col-3{grid-column:span 4} }
@media (max-width: 992px){ .col-3{grid-column:span 6} .col-4{grid-column:span 6} }
@media (max-width: 720px){ .col-3,.col-4,.col-6{grid-column:span 12} }

table{width:100%;border-collapse:collapse;font-size:14px;border-radius:10px;overflow:hidden}
th,td{padding:8px 10px;border-bottom:1px solid var(--border)}
thead th{color:var(--muted);text-align:left;position:sticky;top:0;background:var(--panel);backdrop-filter:blur(6px)}
.table-wrap{overflow:auto;border:1px solid var(--border);border-radius:12px;}
.table-wrap{overflow:auto;border:1px solid var(--border);border-radius:12px;}

/* Hover & interaction for clickable recent rows */
.recent-row{transition:background .15s ease, box-shadow .15s ease; cursor:pointer}
.recent-row:hover{box-shadow:inset 0 0 0 999px rgba(79,209,197,0.08)}
html[data-theme='light'] .recent-row:hover{box-shadow:inset 0 0 0 999px rgba(0,0,0,0.04)}

/* Recent actions row highlights */
.row-buy{background:rgba(34,197,94,0.12)} /* green tint */
.row-buy td{border-bottom-color:var(--border)}
.row-exit{background:rgba(239,68,68,0.12)} /* red tint */
.row-exit td{border-bottom-color:var(--border)}

.action-tag{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:2px 8px;
  border-radius:999px;
  font-size:12px;
  font-weight:600;
  letter-spacing:0.02em;
  text-transform:uppercase;
  background:#1d2133;
  border:1px solid var(--border);
}
.action-tag.action-symbol{background:rgba(148,163,184,0.18);border-color:rgba(148,163,184,0.5);color:#e2e8f0}
.action-tag.action-buy{background:rgba(34,197,94,0.14);border-color:rgba(34,197,94,0.4);color:#4ade80}
.action-tag.action-exit{background:rgba(239,68,68,0.14);border-color:rgba(239,68,68,0.4);color:#f87171}

/* Plots */
.plots{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}
.plot-card{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:8px}
.plots img{width:100%;height:260px;object-fit:contain;background:var(--panel-2);border:1px solid var(--border);border-radius:8px}

/* Pills, muted, log */
.pill{display:inline-block;padding:2px 8px;border-radius:999px;background:#1d2133;border:1px solid var(--border)}
.muted{color:var(--muted)}
.log{white-space:pre-wrap;background:var(--panel-2);color:#b7ffc8;border:1px solid var(--border);border-radius:12px;padding:12px;overflow:auto;box-shadow:var(--shadow)}
/* Status dot */
.dot{display:inline-block;width:10px;height:10px;border-radius:999px;background:#ef4444}
.dot.ok{background:#22c55e}
.dot.bad{background:#ef4444}

/* Loading spinner */
.loading{display:flex;align-items:center;gap:8px;color:var(--muted)}
.hidden{display:none !important}
.spinner{width:16px;height:16px;border:2px solid #64748b;border-top-color:#4f7cff;border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* Shimmer skeleton for recent actions */
.skeleton-row .skeleton-box{position:relative;display:inline-block;height:14px;border-radius:6px;background:linear-gradient(90deg,#1d2133 0px,#252b3d 40px,#1d2133 80px);background-size:400px 100%;animation:shimmer 1.2s ease-in-out infinite}
/* Align numeric columns in skeleton to the right (PRICE, AVG PRICE) */
#recentTable tbody#recentSkeleton td:nth-child(6),
#recentTable tbody#recentSkeleton td:nth-child(7){ text-align:right }
@keyframes shimmer{0%{background-position:-160px 0}100%{background-position:160px 0}}
html[data-theme='light'] .skeleton-row .skeleton-box{background:linear-gradient(90deg,#f2f5fb 0px,#e6ebf5 40px,#f2f5fb 80px)}

/* Sym grid used in selection pages */
.sym-grid{column-width:260px;column-gap:12px;max-height:360px;overflow:auto;border:1px solid var(--border);padding:10px;border-radius:10px;background:#1d2133}
.sym-grid label{display:block;break-inside:avoid;margin:4px 0}

/* Top navigation bar */
.topnav{position:fixed;top:0;left:0;bottom:0;width:230px;z-index:1000;background:linear-gradient(180deg,#0c1327,#0a1020);border-right:1px solid var(--border);box-shadow:8px 0 24px rgba(0,0,0,0.35)}
.topnav .wrap{height:100%;display:flex;flex-direction:column;justify-content:space-between;gap:18px;padding:18px 14px;}
.nav-main{display:flex;flex-direction:column;gap:16px;width:100%}
.topnav .brand{font-weight:800;letter-spacing:0.06em;font-family:'Space Grotesk', system-ui;font-size:18px;}
.topnav .links{display:flex;flex-direction:column;gap:6px;width:100%;}
.topnav .lnk{color:var(--fg);text-decoration:none;padding:9px 12px;border-radius:12px;border:1px solid transparent;font-weight:600;letter-spacing:0.01em;position:relative;display:flex;justify-content:space-between;align-items:center;}
.topnav .lnk.active{border-color:rgba(31,228,177,0.5);color:var(--accent);background:rgba(31,228,177,0.06);}
.topnav .lnk:hover{background:rgba(255,255,255,0.04);border-color:var(--border);color:var(--accent)}
.topnav .lnk.lnk-disabled{opacity:0.3;pointer-events:none;filter:grayscale(0.5);}
.nav-footer{display:flex;flex-direction:column;gap:10px;width:100%}
.tenant-control label{font-size:12px;text-transform:uppercase;letter-spacing:0.08em;font-weight:700;color:var(--muted);margin-bottom:4px}
.tenant-control select{width:100%;background:#0e162c;color:var(--fg);border:1px solid var(--border);border-radius:10px;padding:8px 10px;min-height:38px}
.nav-user{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:14px;background:var(--panel-2)}
.nav-avatar{width:36px;height:36px;border-radius:50%;background:var(--accent);color:#041022;font-weight:800;display:flex;align-items:center;justify-content:center;letter-spacing:0.02em}
.nav-user-name{font-weight:700}
.nav-user-role{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:0.08em}
.nav-footer .btn.text{justify-content:center;padding:6px 10px}
.lnk[aria-disabled="true"]{cursor:not-allowed}
.switch{position:relative;display:inline-block;width:42px;height:22px}
.switch input{opacity:0;width:0;height:0}
.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background:#2a2f45;transition:.2s;border-radius:999px}
.slider:before{position:absolute;content:"";height:16px;width:16px;left:3px;bottom:3px;background:#ffffff;transition:.2s;border-radius:50%}
.switch input:checked + .slider{background:#4f7cff}
.switch input:checked + .slider:before{transform:translateX(20px)}

/* Light theme (higher contrast) */
html[data-theme='light']{
	/* Override tokens for light mode */
	--bg:#f7f8fc;
	--panel:#ffffff;
	--panel-2:#ffffff;
	--border:#c5cee0;
	--fg:#0b1320;
	--muted:#4c5568;
	--accent:#2f8d83;
	--accent-2:#d57a1c;
	--shadow:0 8px 20px rgba(16,24,40,0.08);
}
html[data-theme='light'] body{background:#f7f8fc;color:var(--fg);padding-left:230px;}
html[data-theme='light'] body.auth-body{padding-left:0;}
html[data-theme='light'] .card{background:var(--panel);border-color:var(--border);box-shadow:var(--shadow)}
html[data-theme='light'] .btn.secondary{background:#f2f5fb;color:var(--fg);border:1px solid var(--border)}
html[data-theme='light'] .icon-btn{background:#f5f7ff;color:#4c5568;border-color:var(--border);}
html[data-theme='light'] .icon-btn:hover{background:#e9effa;}
html[data-theme='light'] .icon-btn.danger{color:#b42318;border-color:#f2b0ad;}
html[data-theme='light'] .icon-btn.danger:hover{background:#fdecec;color:#b42318;}
html[data-theme='light'] input[type=text], html[data-theme='light'] input[type=number], html[data-theme='light'] select{background:#ffffff;color:var(--fg);border-color:var(--border)}
html[data-theme='light'] .plots img{background:#ffffff;border-color:var(--border)}
/* Navbar contrast: keep white but add stronger separator and shadow */
html[data-theme='light'] .topnav{background:rgba(255,255,255,0.95);border-right-color:var(--border);box-shadow:8px 0 20px rgba(16,24,40,.08)}
html[data-theme='light'] .topnav .lnk{color:#0b1320}
html[data-theme='light'] .topnav .lnk:hover{background:#e9effa;border-color:var(--border)}
html[data-theme='light'] .nav-user{background:#f8f9ff}
/* Symbols grid on Backtest page */
html[data-theme='light'] .sym-grid{background:#ffffff;border-color:var(--border);box-shadow:inset 0 0 0 1px rgba(16,24,40,.03)}
html[data-theme='light'] .sym-grid label{color:var(--fg)}
html[data-theme='light'] .auth-card{background:#ffffff;border-color:var(--border);box-shadow:var(--shadow)}
html[data-theme='light'] .auth-alert.error{color:#b42318}
html[data-theme='light'] .auth-alert.success{color:#0f7833}
/* Pills, headings, tables */
html[data-theme='light'] .pill{background:#f2f5fb;color:#0b1320;border:1px solid var(--border)}
html[data-theme='light'] thead th{background:#ffffff;color:#394155}
html[data-theme='light'] th, html[data-theme='light'] td{border-bottom-color:var(--border)}
html[data-theme='light'] .muted{color:var(--muted)}
/* Log panel readability on light */
html[data-theme='light'] .log{background:#f6f8fe;color:#0b1320;border-color:var(--border)}

.toast-container{position:fixed;right:16px;bottom:16px;display:flex;flex-direction:column;gap:10px;z-index:3000;max-width:320px}
.toast{background:var(--panel);border:1px solid var(--border);border-left:4px solid var(--danger);color:var(--fg);padding:10px 12px;border-radius:12px;box-shadow:var(--shadow);font-size:14px;line-height:1.4}
.toast .title{font-weight:700;margin-bottom:4px}
.toast .ts{color:var(--muted);font-size:12px}
.toast.ok{border-left-color:var(--success)}

/* Logs page helpers */
.log-view { background: var(--panel-2); border: 1px solid var(--border); border-radius: 10px; }
.hl-buy { color:#22c55e; font-weight:600; }
.hl-exit { color:#f59e0b; font-weight:600; }
.hl-stop { color:#ef4444; font-weight:600; }
.hl-take { color:#8b5cf6; font-weight:600; }
.hl-err { color:#ef4444; font-weight:600; text-decoration:underline; }
.ts { color: var(--muted); }
/* Light theme row highlights */
html[data-theme='light'] .row-buy{background:#e9f8ef}
html[data-theme='light'] .row-exit{background:#fdecec}
html[data-theme='light'] .action-tag{background:#f2f5fb;border-color:var(--border);color:var(--fg)}
html[data-theme='light'] .action-tag.action-symbol{background:#eef2ff;border-color:#c7d2fe;color:#312e81}
html[data-theme='light'] .action-tag.action-buy{background:#d9f7e6;border-color:#9adeb8;color:#178147}
html[data-theme='light'] .action-tag.action-exit{background:#fde1e0;border-color:#f2b0ad;color:#b42318}
/* Light theme spinner contrast */
html[data-theme='light'] .spinner{border-color:#b3c0d9;border-top-color:#3c66d9}
html[data-theme='light'] .recent-row:hover{box-shadow:inset 0 0 0 999px rgba(0,0,0,0.05)}

/* Modal dialog */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.5);display:flex;align-items:center;justify-content:center;padding:16px}
.modal{background:var(--panel);border:1px solid var(--border);border-radius:12px;max-width:520px;width:100%;box-shadow:0 10px 24px rgba(0,0,0,0.35)}
.modal-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--border)}
.modal-header #modalTitle{font-weight:700}
.modal-close{background:transparent;border:1px solid transparent;color:var(--fg);font-size:20px;line-height:1;border-radius:8px;cursor:pointer}
.modal-close:hover{border-color:var(--border);background:#1d2133}
.modal-body{padding:12px 14px}
.modal-body ul{margin:0;padding-left:18px}
.modal-footer{padding:12px 14px;border-top:1px solid var(--border);display:flex;justify-content:flex-end}
html[data-theme='light'] .modal{background:#ffffff;border-color:var(--border)}
html[data-theme='light'] .modal-close:hover{background:#f2f5fb}

/* Page loader overlay */
.page-loader{position:fixed;inset:0;background:rgba(5,8,18,0.6);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;z-index:4000;transition:opacity .2s ease;opacity:1;pointer-events:auto}
.page-loader.hidden{opacity:0;pointer-events:none}
.loader-ring{width:40px;height:40px;border-radius:50%;border:4px solid rgba(255,255,255,0.15);border-top-color:var(--accent);animation:spin .9s linear infinite}
.loader-text{color:var(--fg);font-weight:700;letter-spacing:0.04em}

/* Mobile-first tweaks */
@media (max-width: 768px){
  body{padding-left:0 !important;}
  .topnav{position:sticky;width:100%;height:auto;flex-shrink:0;}
  .topnav .wrap{flex-direction:row;flex-wrap:wrap;align-items:center;}
  .topnav .links{flex-direction:row;flex-wrap:wrap;}
  .topnav .lnk{padding:6px 8px;font-size:14px;}
  .nav-main,.nav-footer{width:100%;}
  .nav-footer{flex-direction:row;flex-wrap:wrap}
  .nav-user,.tenant-control,.theme-toggle{width:100%;}
  .row{flex-direction:column;align-items:flex-start;}
  .btn{width:100%;justify-content:center;}
  .btn.secondary,.btn.danger{width:100%;}
  .card{padding:14px;}
  table{font-size:13px;}
  .log-view{max-height:50vh;}
}
