/* === EFD palette overrides + fireflies for RATR explorer === */
:root{
  --efd-bg-deep:#0a1a0e;
  --efd-bg-mid:#0f2317;
  --efd-fg:#d8e8dc;
  --efd-fg-dim:#7fb88f;
  --efd-green:#86efac;
  --efd-green-soft:#a7f3d0;
  --efd-amber:#f0b67f;
  --efd-glow:rgba(134,239,172,.6);
  --efd-glow-soft:rgba(134,239,172,.08);
  --efd-border:rgba(134,239,172,.2);
}

/* Replace Bootstrap primary blue everywhere */
.bg-primary{background-color:var(--efd-bg-deep) !important;border-bottom:1px solid var(--efd-border)}
.btn-primary,.bg-info{background-color:var(--efd-fg-dim) !important;border-color:var(--efd-fg-dim) !important;color:var(--efd-bg-deep) !important}
.btn-primary:hover{background-color:var(--efd-green) !important;border-color:var(--efd-green) !important}
.text-primary{color:var(--efd-green) !important}
a{color:var(--efd-green-soft)}
a:hover{color:var(--efd-green);text-decoration-color:var(--efd-green)}
.text-info,.text-warning{color:var(--efd-amber) !important}
.alert-info{background-color:rgba(134,239,172,.06);border-color:var(--efd-border);color:var(--efd-fg)}

/* Body backdrop with subtle radial gradient (matches countdown landing) */
body{
  background-color:var(--efd-bg-deep) !important;
  color:var(--efd-fg);
  position:relative;
}
body::before{
  content:'';position:fixed;inset:0;
  background-image:
    radial-gradient(circle at 20% 30%,rgba(127,184,143,.06) 0%,transparent 40%),
    radial-gradient(circle at 80% 70%,rgba(240,182,127,.05) 0%,transparent 45%),
    radial-gradient(ellipse 70% 60% at 15% 100%,rgba(10,26,14,.85) 0%,transparent 55%),
    radial-gradient(ellipse 70% 60% at 85% 100%,rgba(10,26,14,.85) 0%,transparent 55%);
  pointer-events:none;z-index:0;
}

/* Cards / panels — dark + green border instead of default white-on-blue */
.card,.dropdown-menu{
  background-color:var(--efd-bg-mid) !important;
  border:1px solid var(--efd-border) !important;
  color:var(--efd-fg);
}
.card-header{
  background-color:rgba(134,239,172,.05) !important;
  border-bottom:1px solid var(--efd-border) !important;
  color:var(--efd-green-soft);
}
.card-body{color:var(--efd-fg)}
.dropdown-item{color:var(--efd-fg)}
.dropdown-item:hover{background-color:rgba(134,239,172,.1);color:var(--efd-green-soft)}

/* Tables */
.table,table.dataTable{color:var(--efd-fg) !important;background-color:transparent !important}
.table thead,table.dataTable thead{color:var(--efd-green-soft);background-color:rgba(134,239,172,.05)}
.table tbody tr:hover,table.dataTable tbody tr:hover{background-color:rgba(134,239,172,.04) !important}
.table-bordered,.table-bordered td,.table-bordered th{border-color:var(--efd-border) !important}
.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.015) !important}

/* Form controls */
.form-control,.form-select{
  background-color:rgba(255,255,255,.04) !important;
  border-color:var(--efd-border) !important;
  color:var(--efd-fg) !important;
}
.form-control:focus,.form-select:focus{
  background-color:rgba(255,255,255,.06) !important;
  border-color:var(--efd-green) !important;
  box-shadow:0 0 0 .2rem rgba(134,239,172,.15) !important;
}
.input-group-text{background-color:rgba(134,239,172,.05);border-color:var(--efd-border);color:var(--efd-green-soft)}

/* Pagination + DataTables controls */
.page-link{background-color:var(--efd-bg-mid);border-color:var(--efd-border);color:var(--efd-green-soft)}
.page-link:hover{background-color:rgba(134,239,172,.1);color:var(--efd-green)}
.page-item.active .page-link{background-color:var(--efd-fg-dim);border-color:var(--efd-fg-dim);color:var(--efd-bg-deep)}
.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_filter,
.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_paginate{color:var(--efd-fg) !important}

/* Footer */
.footer{background-color:var(--efd-bg-deep) !important;border-top:1px solid var(--efd-border) !important;color:var(--efd-fg-dim)}
.footer a{color:var(--efd-green-soft)}

/* Code / monospace */
code,pre{background-color:rgba(134,239,172,.06);color:var(--efd-amber);border:1px solid var(--efd-border);border-radius:4px;padding:2px 6px}

/* Headings */
h1,h2,h3,h4,h5,h6{color:var(--efd-green-soft)}

/* Make page content sit above the firefly layer */
#main-header,#body-container,.footer,nav,main,header{position:relative;z-index:2}

/* === FIREFLIES === */
.ff-wrap{
  position:fixed;inset:0;pointer-events:none;z-index:1;overflow:hidden;
}
.ff{
  position:absolute;border-radius:50%;
  background:radial-gradient(circle,#fef9c3 0%,#fef9c3 30%,rgba(254,249,195,.5) 60%,transparent 100%);
  box-shadow:0 0 6px rgba(254,249,195,.6),0 0 12px rgba(134,239,172,.3);
  animation:ffloat var(--d) ease-in-out infinite var(--dl);
  opacity:0;
}
@keyframes ffloat{
  0%,100%{opacity:0;transform:translateY(0) scale(1)}
  25%,75%{opacity:var(--mo)}
  50%{transform:translateY(-40px) translateX(8px) scale(1.6)}
}

/* Chart canvases — kill the hardcoded white bg */
canvas#nethashChart,canvas#difficultyChart{background-color:transparent !important}

/* Bootstrap navbar-light/dark text contrast */
.bg-primary .nav-link{color:var(--efd-fg) !important}
.bg-primary .nav-link:hover,.bg-primary .nav-link.active{color:var(--efd-green-soft) !important;background-color:rgba(134,239,172,.08)}
.bg-primary .nav-icon{color:var(--efd-green-soft)}

/* Search input in header */
.search-for input.form-control{background-color:rgba(255,255,255,.08) !important;color:#fff !important}
.search-for input.form-control::placeholder{color:rgba(255,255,255,.5) !important}
.btn-success{background-color:var(--efd-fg-dim) !important;border-color:var(--efd-fg-dim) !important;color:var(--efd-bg-deep) !important}
.btn-success:hover{background-color:var(--efd-green) !important;border-color:var(--efd-green) !important}

/* Logo glow on hover */
.logo-main,#logo-panel{transition:filter .3s ease}
.logo-main:hover,#logo-panel:hover{filter:drop-shadow(0 0 8px var(--efd-glow))}

/* === Top-bar polish === */
/* Push content down so stat panels aren't squished against navbar */
.marginTop80{margin-top:120px !important}
@media(max-width: 992px){.marginTop80{margin-top:140px !important}}

/* Bigger header logo so the rope-frame squirrel is recognizable, not just a green dot */
.logo-main{max-height:72px !important;padding:4px 12px !important}
.side-header{padding:6px 12px !important}

/* Side-nav top spacing — keeps icons aligned with new taller header */
div#side-nav-bar{margin-top:80px !important}

/* Stat panel cards — a touch of internal padding so headers don't kiss the top edge */
#pnlOne,#pnlTwo,#pnlThree,#pnlFour,#pnlFive{padding-top:8px}
.card .card-header{padding:.6rem 1rem}

/* Side-nav top alignment (was 80px which pushed it too far down) */
div#side-nav-bar{margin-top:0 !important;padding-top:90px !important}

/* === PARCHMENT MODE (light theme) === */
body[data-theme='light']{background-color:#f5efe1 !important;color:#2a3530 !important}
body[data-theme='light']::before{display:none}
body[data-theme='light'] .ff-wrap{display:none}
body[data-theme='light'] h1,body[data-theme='light'] h2,body[data-theme='light'] h3,
body[data-theme='light'] h4,body[data-theme='light'] h5,body[data-theme='light'] h6{color:#1a4731}
body[data-theme='light'] a{color:#1a4731}
body[data-theme='light'] a:hover{color:#2c6a47}
body[data-theme='light'] .bg-primary{background-color:#1a4731 !important;border-bottom:1px solid #d4cfc0}
body[data-theme='light'] .bg-primary .nav-link,body[data-theme='light'] .bg-primary .nav-icon,
body[data-theme='light'] .navbar-dark .nav-link{color:#f5efe1 !important}
body[data-theme='light'] .bg-primary .nav-link:hover{background-color:rgba(245,239,225,.1) !important}
body[data-theme='light'] .card,body[data-theme='light'] .dropdown-menu{background-color:#fdfaf2 !important;border:1px solid #d4cfc0 !important;color:#2a3530 !important}
body[data-theme='light'] .card-header{background-color:#ebe4d2 !important;border-bottom:1px solid #d4cfc0 !important;color:#1a4731 !important}
body[data-theme='light'] .card-body{color:#2a3530}
body[data-theme='light'] .table,body[data-theme='light'] table.dataTable{color:#2a3530 !important;background-color:transparent !important}
body[data-theme='light'] .table thead,body[data-theme='light'] table.dataTable thead{color:#1a4731;background-color:#ebe4d2}
body[data-theme='light'] .table tbody tr:hover{background-color:rgba(26,71,49,.06) !important}
body[data-theme='light'] .table-bordered,body[data-theme='light'] .table-bordered td,body[data-theme='light'] .table-bordered th{border-color:#d4cfc0 !important}
body[data-theme='light'] .form-control,body[data-theme='light'] .form-select{background-color:#fdfaf2 !important;color:#2a3530 !important;border-color:#d4cfc0 !important}
body[data-theme='light'] .form-control:focus{border-color:#1a4731 !important;box-shadow:0 0 0 .2rem rgba(26,71,49,.15) !important}
body[data-theme='light'] .footer{background-color:#1a4731 !important;border-top:1px solid #d4cfc0 !important;color:#f5efe1}
body[data-theme='light'] .footer a{color:#a7d4b8}
body[data-theme='light'] code,body[data-theme='light'] pre{background-color:#ebe4d2;color:#7a3a1a;border:1px solid #d4cfc0}
body[data-theme='light'] .page-link{background-color:#fdfaf2;border-color:#d4cfc0;color:#1a4731}
body[data-theme='light'] .page-item.active .page-link{background-color:#1a4731;border-color:#1a4731;color:#f5efe1}
body[data-theme='light'] canvas#nethashChart,body[data-theme='light'] canvas#difficultyChart{background-color:transparent !important}
body[data-theme='light'] .btn-primary{background-color:#1a4731 !important;border-color:#1a4731 !important;color:#f5efe1 !important}
body[data-theme='light'] .btn-success{background-color:#1a4731 !important;border-color:#1a4731 !important;color:#f5efe1 !important}
body[data-theme='light'] .input-group-text{background-color:#ebe4d2;border-color:#d4cfc0;color:#1a4731}
body[data-theme='light'] #side-nav-bar{background-color:#1a4731 !important}

/* === PARCHMENT MODE — aged paper texture === */
body[data-theme='light']{
  background-color:#f5efe1 !important;
  background-image:
    /* foxing spots — random brown age stains */
    radial-gradient(ellipse 180px 140px at 12% 18%,rgba(135,90,50,.12) 0%,transparent 65%),
    radial-gradient(ellipse 280px 200px at 78% 65%,rgba(150,100,60,.10) 0%,transparent 60%),
    radial-gradient(ellipse 140px 110px at 38% 82%,rgba(110,75,40,.09) 0%,transparent 65%),
    radial-gradient(ellipse 200px 150px at 88% 22%,rgba(140,95,55,.11) 0%,transparent 60%),
    radial-gradient(ellipse 160px 120px at 25% 55%,rgba(125,85,50,.08) 0%,transparent 65%),
    radial-gradient(ellipse 220px 170px at 65% 88%,rgba(135,90,55,.10) 0%,transparent 60%),
    radial-gradient(ellipse 100px 80px at 92% 92%,rgba(120,80,45,.13) 0%,transparent 60%),
    radial-gradient(ellipse 130px 100px at 5% 75%,rgba(120,80,45,.10) 0%,transparent 65%),
    /* horizontal fold creases */
    linear-gradient(180deg,transparent 32.8%,rgba(110,75,40,.05) 33.1%,rgba(110,75,40,.05) 33.4%,transparent 33.7%,transparent 65.8%,rgba(110,75,40,.05) 66.1%,rgba(110,75,40,.05) 66.4%,transparent 66.7%),
    /* paper grain noise (SVG turbulence, sepia-tinted) */
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160' viewBox='0 0 160 160'%3E%3Cfilter id='a'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.2' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .35 0 0 0 0 .25 0 0 0 0 .12 0 0 0 .14 0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23a)'/%3E%3C/svg%3E"),
    /* edge vignette — darker corners like aged paper edges */
    radial-gradient(ellipse 90% 80% at 50% 50%,transparent 55%,rgba(80,50,20,.22) 100%);
  background-attachment:fixed;
  background-size:100% 100%,100% 100%,100% 100%,100% 100%,100% 100%,100% 100%,100% 100%,100% 100%,100% 100%,160px 160px,100% 100%;
  background-repeat:no-repeat,no-repeat,no-repeat,no-repeat,no-repeat,no-repeat,no-repeat,no-repeat,no-repeat,repeat,no-repeat;
}

/* Cards in parchment mode — like fresh paper sheets laid on aged scroll, slight grain */
body[data-theme='light'] .card,
body[data-theme='light'] .dropdown-menu{
  background-color:#fbf5e6 !important;
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='b'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.5' numOctaves='1' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .3 0 0 0 0 .2 0 0 0 0 .1 0 0 0 .08 0'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23b)'/%3E%3C/svg%3E"),
    radial-gradient(ellipse 80% 70% at 30% 30%,transparent 70%,rgba(120,80,40,.06) 100%);
  background-size:120px 120px,100% 100%;
  background-repeat:repeat,no-repeat;
  box-shadow:0 1px 3px rgba(80,50,20,.12),inset 0 0 30px rgba(120,80,40,.04) !important;
}

/* Card headers slightly more aged than body */
body[data-theme='light'] .card-header{
  background-color:#ede4cc !important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100'%3E%3Cfilter id='c'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.8' numOctaves='1' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .25 0 0 0 0 .15 0 0 0 0 .05 0 0 0 .12 0'/%3E%3C/filter%3E%3Crect width='100' height='100' filter='url(%23c)'/%3E%3C/svg%3E");
  background-size:100px 100px;
  background-repeat:repeat;
  border-bottom:1px solid #c9b88a !important;
  text-shadow:0 1px 0 rgba(255,250,235,.4);
}

/* Tables get a subtle aged look */
body[data-theme='light'] .table tbody tr{background-color:rgba(251,245,230,.4)}
body[data-theme='light'] .table tbody tr:hover{background-color:rgba(120,80,40,.08) !important}

/* Search bar matches aged paper */
body[data-theme='light'] .form-control,
body[data-theme='light'] .form-select{
  background-color:#fbf5e6 !important;
  border-color:#c9b88a !important;
}

/* Slight sepia desaturation on the squirrel logo so it looks like a stamped/inked seal on parchment */
body[data-theme='light'] .logo-main,
body[data-theme='light'] #logo-panel,
body[data-theme='light'] #header-img{
  filter:sepia(.15) brightness(.95);
}

/* === PARCHMENT MODE — real photographic parchment override === */
/* This rule comes after the gradient version, so it wins (CSS cascade — last rule for same selector) */
body[data-theme='light']{
  background-color:#e8d9b8 !important;
  background-image:
    radial-gradient(ellipse 90% 80% at 50% 50%,transparent 60%,rgba(60,40,15,.25) 100%),
    url('/img/bg-parchment.png');
  background-size:100% 100%,cover;
  background-position:center center,center center;
  background-repeat:no-repeat,no-repeat;
  background-attachment:fixed,fixed;
}

/* Cards in parchment mode now use a more transparent overlay so the real parchment shows through subtly */
body[data-theme='light'] .card,
body[data-theme='light'] .dropdown-menu{
  background-color:rgba(251,245,230,.92) !important;
  background-image:none !important;
  backdrop-filter:blur(2px);
  box-shadow:0 2px 8px rgba(60,40,15,.18),inset 0 0 30px rgba(120,80,40,.04) !important;
  border:1px solid rgba(140,100,60,.35) !important;
}

body[data-theme='light'] .card-header{
  background-color:rgba(237,228,204,.95) !important;
  background-image:none !important;
  border-bottom:1px solid rgba(140,100,60,.4) !important;
}
