/*
Theme Name: Sourcemapper - Manage Datasources (Custom Tools) - Neon (Compiled Style)
Version: 2.2
*/

:root{
  --bg-dark: #0a0812;
  --bg-mid: #16072b;
  --neon-mag: #d94cff;
  --neon-cyan: #00f0ff;
  --neon-hot: #ff5ecf;
  --neon-button-gradient: linear-gradient(90deg, #00f0ff, #d94cff);
  --neon-btn-glow: 0 12px 60px rgba(217,76,255,0.12), 0 12px 50px rgba(0,240,255,0.06);
  --neon-contrast: #d94cff;
  --accent-orange: #ff9a3d;
  --white: #ffffff;
  --card-radius: 12px;
}

/* Reset / base */
* { box-sizing:border-box; }
html,body { height:100%; }
body {
  margin:0;
  font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  color:var(--white);
  background:
    radial-gradient(900px 380px at 12% 8%, rgba(217,76,255,0.08), transparent 12%),
    radial-gradient(750px 360px at 88% 82%, rgba(0,240,255,0.05), transparent 10%),
    linear-gradient(180deg, var(--bg-dark), var(--bg-mid));
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  font-size:16px;
  line-height:1.6;
}

/* Accessible hidden text */
.sr-only { position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); border:0; }

/* Container */
.container {
  max-width: 1200px;
  margin: 28px auto;
  padding: 0 20px;
}

/* Header */
.site-header { position:relative; z-index:60; padding:14px 0; }
.site-header-inner { display:flex; align-items:center; gap:18px; justify-content:space-between; }
.site-branding .site-title { color:var(--white); font-weight:700; font-size:18px; text-decoration:none; }
.header-partner-logo img.partner-logo { height:46px; display:block; filter:drop-shadow(0 6px 18px rgba(139,66,255,0.12)); }

/* Neon menu icon */
.dsms-menu-opener {
  --stroke-color: #00f0ff;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:46px;
  height:46px;
  border-radius:10px;
  background: linear-gradient(135deg, rgba(0,240,255,0.14), rgba(217,76,255,0.14));
  border: 1px solid rgba(255,255,255,0.06);
  color: #ffffff;
  position: relative;
  transition: transform .14s ease, box-shadow .14s ease, background .14s ease;
  box-shadow: 0 8px 28px rgba(0,240,255,0.09), 0 4px 18px rgba(217,76,255,0.06);
}

/* SVG rectangles fallback color */
.dsms-menu-opener svg { display:block; width:22px; height:16px; }
.dsms-menu-opener svg rect { fill: url(#dsms-menu-gradient); }

/* Hover / focus states */
.dsms-menu-opener:hover,
.dsms-menu-opener:focus {
  transform: translateY(-3px);
  box-shadow: 0 30px 110px rgba(0,240,255,0.24), 0 22px 80px rgba(217,76,255,0.18);
  outline: none;
}

/* Menu open state */
body.dsms-menu-open .dsms-menu-opener {
  background: linear-gradient(135deg, rgba(0,240,255,0.20), rgba(217,76,255,0.18));
  box-shadow: 0 32px 110px rgba(0,240,255,0.22), 0 28px 90px rgba(217,76,255,0.16);
  transform: translateY(-2px);
}

/* Pulse animation */
@keyframes dsms-neon-pulse {
  0% { box-shadow: 0 8px 18px rgba(0,240,255,0.08); }
  50% { box-shadow: 0 40px 140px rgba(0,240,255,0.20), 0 30px 100px rgba(217,76,255,0.10); }
  100% { box-shadow: 0 8px 18px rgba(0,240,255,0.08); }
}
.dsms-menu-opener.pulse { animation: dsms-neon-pulse 2.6s ease-in-out infinite; }

.dsms-menu-section {
  padding: 8px 0 4px;
  font-weight:700;
  color: rgba(255,255,255,0.9);
  margin-top: 8px;
}

/* Slide-in Menu (left) */
.dsms-menu-button, .dsms-menu-opener { background:transparent; border:0; color:var(--white); cursor:pointer; padding:8px 10px; border-radius:8px; }
.dsms-slide-menu {
  position:fixed; left:0; top:0; bottom:0; width:320px;
  transform:translateX(-110%);
  background: linear-gradient(180deg, rgba(14,6,28,0.96), rgba(24,8,48,0.98));
  box-shadow: 6px 0 60px rgba(0,0,0,0.7);
  z-index:70; transition: transform .28s cubic-bezier(.2,.9,.2,1);
  overflow:auto;
}
body.dsms-menu-open .dsms-slide-menu { transform:translateX(0); }

/* Hover open on desktop */
@media (min-width:981px) {
  .dsms-slide-menu:hover, .dsms-menu-opener:hover ~ .dsms-slide-menu { transform:translateX(0); }
  body::before {
    content: "";
    position: fixed;
    left: 0;
    top: 0;
    height: 100%;
    width: 10px;
    z-index: 69;
  }
}

.dsms-slide-menu-inner { padding:22px; }
.dsms-menu-close { background:transparent; border:0; color:var(--white); font-size:28px; line-height:1; float:right; cursor:pointer; }

/* Menu list */
.dsms-menu { list-style:none; margin:18px 0 0; padding:0; display:flex; flex-direction:column; gap:8px; }
.dsms-menu li a { display:block; padding:12px 14px; border-radius:10px; color:var(--white); text-decoration:none; font-weight:600; background:transparent; transition: background .12s ease, box-shadow .12s ease, transform .12s ease; }
.dsms-menu li a:hover { background: linear-gradient(90deg, rgba(139,66,255,0.10), rgba(31,214,255,0.08)); color: var(--neon-contrast); }

/* Intensified hover/active visual */
.dsms-menu li.dsms-menu-hover > a,
.dsms-menu li a:hover,
.dsms-menu li a:focus,
.dsms-menu-item:hover > a,
.dsms-menu-item:focus > a {
  background: linear-gradient(90deg, rgba(217,76,255,0.22), rgba(0,240,255,0.14));
  color: var(--white);
  box-shadow: 0 18px 60px rgba(217,76,255,0.18), 0 8px 40px rgba(0,240,255,0.12);
  transform: translateX(4px);
  border-left: 4px solid var(--neon-contrast);
}

/* Selected menu item */
.dsms-menu a.dsms-menu-selected {
  background: linear-gradient(90deg, rgba(217,76,255,0.26), rgba(0,240,255,0.14));
  color: var(--neon-contrast);
  box-shadow: 0 16px 60px rgba(217,76,255,0.16);
  border-left: 6px solid var(--neon-contrast);
}

/* Cards / hero / grid */
.card,
.dsms-aside-box,
.dsms-aside-box-dark,
.dsms-feature-panel,
.dsms-summary-wrap,
.dsms-shortcode-block {
  background: linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01));
  color: #e6eef8;
  border-radius: var(--card-radius);
  padding: 18px;
  box-shadow: 0 12px 40px rgba(11,12,20,0.6);
  border: 1px solid rgba(255,255,255,0.03);
}

.dsms-aside-box-dark,
.dsms-warning-box-dark {
  background: linear-gradient(180deg, rgba(10,15,24,0.84), rgba(15,19,48,0.9));
  color: var(--white);
  border-radius: 10px;
  padding: 16px;
  box-shadow: 0 12px 36px rgba(217,76,255,0.03), 0 8px 30px rgba(31,214,255,0.02);
}

/* Buttons */
.dsms-outside-actions { margin-top:18px; display:flex; gap:12px; align-items:center; flex-wrap:wrap; justify-content:flex-start; z-index:50; position:relative; }
.dsms-btn {
  display:inline-flex; align-items:center; gap:10px;
  padding:12px 16px; border-radius:12px; font-weight:700; cursor:pointer;
  transition: transform .12s ease, box-shadow .12s ease;
  text-decoration: none;
  position:relative;
  box-shadow: 0 8px 30px rgba(0,0,0,0.4);
}
.dsms-btn:focus { outline:3px solid rgba(31,214,255,0.12); outline-offset:2px; }

.dsms-btn-neon {
  background: var(--neon-button-gradient);
  color: #021018;
  border: 1px solid rgba(255,255,255,0.06);
  box-shadow: var(--neon-btn-glow);
  text-shadow: 0 2px 8px rgba(0,0,0,0.25);
}

/* Footer - Logos & Manuals grid */
.site-footer {
  padding:18px 0 36px;
}
.site-footer .site-footer-inner {
  max-width:1200px;
  margin:0 auto;
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:0 20px;
  gap:12px;
}
.site-footer .footer-left {
  flex:1;
  color:#9aa0a6;
}
.site-footer .footer-right {
  display:flex;
  gap:12px;
  align-items:center;
  justify-content:flex-end;
  flex-shrink:0;
}
.dsms-footer-logo {
  display:block;
  height:auto;
  max-height:46px;
  width:auto;
  object-fit:contain;
  filter:drop-shadow(0 8px 28px rgba(0,0,0,0.6));
}
.dsms-footer-logo-bigid { max-height:46px; }
.dsms-footer-logo-defendeer { max-height:28px; }

/* Manuals page grid: 3 placeholders per row on desktop */
.dsms-manuals-grid {
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap:12px;
  margin-top:12px;
}
@media (max-width:1100px) {
  .dsms-manuals-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width:640px) {
  .dsms-manuals-grid { grid-template-columns: repeat(1, 1fr); }
}
.dsms-video-placeholder {
  height:160px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:700;
  background:linear-gradient(180deg, rgba(10,6,20,0.6), rgba(24,8,48,0.6));
  color:#fff;
  border-radius:8px;
  padding:8px;
  text-align:center;
  box-shadow: 0 8px 30px rgba(0,0,0,0.45);
}

/* Force-show for plugin shortcodes */
.smd-shortcode-wrap,
.smd-shortcode-wrap * {
  visibility: visible !important;
  opacity: 1 !important;
  display: revert !important;
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
  transform: none !important;
  position: static !important;
}

/* small responsive tweaks */
@media (max-width:780px) {
  .dsms-hero-inner { flex-direction:column; gap:18px; }
  .dsms-hero-sidebar { width:100%; }
  .dsms-slide-menu { width:100%; }
}