/* mesh-theme.css — dark green "Overberg Mesh" skin layered over Bootstrap 4.
   Override-only: colours / backgrounds / borders / radius. No layout changes. */
:root{
  --mesh-bg:#0c1411; --mesh-bg2:#0f1a16; --mesh-card:#13211c; --mesh-card2:#16271f;
  --mesh-line:#234035; --mesh-txt:#e7f1ec; --mesh-muted:#9bb3a8;
  --mesh-accent:#3ddc84; --mesh-accent2:#2bb56b;
}
html,body{background:var(--mesh-bg) !important;}
body{
  background:
    radial-gradient(1200px 600px at 50% -10%, rgba(61,220,132,.10), transparent 60%),
    radial-gradient(800px 500px at 90% 10%, rgba(43,181,107,.08), transparent 55%),
    var(--mesh-bg) !important;
  color:var(--mesh-txt) !important;
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif !important;
  min-height:100vh;
}
h1,h2,h3,h4,h5,h6{color:var(--mesh-txt) !important;}
p,span,td,li,dd,dt,label,small,div{color:inherit;}
a{color:var(--mesh-accent) !important;}
a:hover{color:var(--mesh-accent2) !important;}
hr{border-color:var(--mesh-line) !important;}
code,kbd{color:var(--mesh-accent) !important; background:rgba(61,220,132,.08) !important;}
pre{color:var(--mesh-txt) !important; background:var(--mesh-bg2) !important; border:1px solid var(--mesh-line); border-radius:8px; padding:10px;}

/* ---- navbar ---- */
nav,.navbar{
  background:linear-gradient(180deg,var(--mesh-card2),var(--mesh-card)) !important;
  border-bottom:1px solid var(--mesh-line) !important;
}
.navbar-brand,.navbar .navbar-brand{color:var(--mesh-txt) !important; font-weight:700;}
.navbar-nav .nav-link,.navbar .nav-link,nav a{color:var(--mesh-muted) !important;}
.navbar-nav .nav-link:hover,.navbar .nav-link:hover,nav a:hover{color:var(--mesh-accent) !important;}
.navbar-text,.navbar-nav .nav-link.active{color:var(--mesh-txt) !important;}
.navbar-toggler{border-color:var(--mesh-line) !important;}

/* ---- buttons ---- */
.btn-primary,.btn-info,.btn-success{
  background:var(--mesh-accent) !important; border-color:var(--mesh-accent) !important;
  color:#06231a !important; font-weight:700;
}
.btn-primary:hover,.btn-info:hover,.btn-success:hover{
  background:var(--mesh-accent2) !important; border-color:var(--mesh-accent2) !important; color:#06231a !important;
}
.btn-secondary,.btn-outline-secondary,.btn-light{
  background:var(--mesh-card2) !important; color:var(--mesh-txt) !important; border-color:var(--mesh-line) !important;
}

/* ---- cards / panels ---- */
.card{
  background:linear-gradient(180deg,var(--mesh-card2),var(--mesh-card)) !important;
  border:1px solid var(--mesh-line) !important; color:var(--mesh-txt) !important;
  border-radius:14px !important; box-shadow:0 8px 30px rgba(0,0,0,.35);
}
.card-header,.card-footer{background:rgba(0,0,0,.15) !important; border-color:var(--mesh-line) !important; color:var(--mesh-txt) !important;}
.jumbotron,.bg-light,.bg-white{background:var(--mesh-card) !important; color:var(--mesh-txt) !important;}

/* ---- tables ---- */
.table,table{color:var(--mesh-txt) !important; border-color:var(--mesh-line) !important;}
.table th,table th,th{
  background-color:var(--mesh-card2) !important; color:var(--mesh-accent) !important;
  border-color:var(--mesh-line) !important; text-align:center;
}
.table td,.table th,table td,table th,td{border-color:var(--mesh-line) !important;}
.table-striped>tbody>tr:nth-child(2n+1)>td,
.table-striped>tbody>tr:nth-child(2n+1)>th,
.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.035) !important; color:var(--mesh-txt) !important;}
.table-striped>tbody>tr:nth-child(2n)>td{background-color:transparent !important;}
.table-hover tbody tr:hover,.table-hover tbody tr:hover>td{background-color:rgba(61,220,132,.09) !important; color:var(--mesh-txt) !important;}
.table-bordered,.table-bordered td,.table-bordered th{border-color:var(--mesh-line) !important;}
.thead-light th,.thead-dark th{background-color:var(--mesh-card2) !important; color:var(--mesh-accent) !important;}

/* ---- alerts (join banner) ---- */
.alert{border-radius:12px !important;}
.alert-info,.alert-primary,.alert-secondary{
  background:linear-gradient(180deg,var(--mesh-card2),var(--mesh-card)) !important;
  border:1px solid var(--mesh-line) !important; color:var(--mesh-txt) !important;
}

/* ---- forms ---- */
.form-control,input,select,textarea{
  background:var(--mesh-bg2) !important; color:var(--mesh-txt) !important; border:1px solid var(--mesh-line) !important;
}
.form-control:focus{border-color:var(--mesh-accent) !important; box-shadow:0 0 0 .15rem rgba(61,220,132,.25) !important;}
::placeholder{color:var(--mesh-muted) !important;}

/* ---- misc surfaces ---- */
.text-muted{color:var(--mesh-muted) !important;}
.text-dark,.text-black{color:var(--mesh-txt) !important;}
.list-group-item{background:var(--mesh-card) !important; color:var(--mesh-txt) !important; border-color:var(--mesh-line) !important;}
.dropdown-menu{background:var(--mesh-card) !important; border:1px solid var(--mesh-line) !important;}
.dropdown-item{color:var(--mesh-txt) !important;}
.dropdown-item:hover{background:rgba(61,220,132,.10) !important; color:var(--mesh-accent) !important;}
.modal-content,.popover{background:var(--mesh-card) !important; color:var(--mesh-txt) !important; border:1px solid var(--mesh-line) !important;}
.border,.border-top,.border-bottom,.border-left,.border-right{border-color:var(--mesh-line) !important;}
.badge-secondary{background:var(--mesh-card2) !important; color:var(--mesh-txt) !important;}
.badge-info,.badge-primary{background:var(--mesh-accent) !important; color:#06231a !important;}

/* ---- leaflet map readability ---- */
.leaflet-container{background:#0a0f0d !important;}
.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:var(--mesh-card) !important; color:var(--mesh-txt) !important;}
.leaflet-bar a{background:var(--mesh-card) !important; color:var(--mesh-txt) !important; border-color:var(--mesh-line) !important;}

/* ===== iteration 2 fixes ===== */
/* legacy LIGHT colours set via inline style="" attributes (need !important to beat inline) */
[style*="F9F9D7"],[style*="f9f9d7"]{
  background:linear-gradient(180deg,var(--mesh-card2),var(--mesh-card)) !important;
  color:var(--mesh-txt) !important; border:1px solid var(--mesh-line) !important; border-radius:12px;
}
[style*="D7F9FF"],[style*="d7f9ff"]{background:var(--mesh-card2) !important; color:var(--mesh-accent) !important;}
[style*="9fdef9"]{background:linear-gradient(180deg,var(--mesh-card2),var(--mesh-card)) !important;}
[style*="F2F6F9"],[style*="f2f6f9"]{background:var(--mesh-card) !important; color:var(--mesh-txt) !important;}
[style*="F2F2F2"],[style*="f2f2f2"]{background:var(--mesh-card) !important; color:var(--mesh-txt) !important;}
[style*="C3E0DC"],[style*="c3e0dc"]{background:linear-gradient(180deg,var(--mesh-card2),var(--mesh-card)) !important; color:var(--mesh-txt) !important; border:1px solid var(--mesh-line) !important; border-radius:10px;}
[style*="505050"]{color:var(--mesh-muted) !important;}
/* all alert variants -> dark card (catches the "newest node" welcome banner if it's an alert) */
.alert,.alert-success,.alert-warning,.alert-danger,.alert-light,.alert-dark{
  background:linear-gradient(180deg,var(--mesh-card2),var(--mesh-card)) !important;
  border:1px solid var(--mesh-line) !important; color:var(--mesh-txt) !important;
}
/* graph page render surface */
#container{background:var(--mesh-bg) !important;}
#container canvas,#container svg,#mynetwork,#network{background:var(--mesh-bg) !important; background-color:var(--mesh-bg) !important;}
/* black SVG UI icons -> visible on dark (telemetry / nodes headers). Only /icons/, not node photos/logo. */
img[src*="/icons/"]{filter:invert(1) brightness(1.05);}
