/* assets/dsms-theme.css - Neon menu icon + slide menu + tables & inputs adjustments */

/* Tokens */
:root{
  --bg-dark: #0a0812; /* slightly lighter */
  --bg-mid: #16072b; /* more purple mid */
  --neon-mag: #d94cff; /* stronger purple/pink */
  --neon-cyan: #00f0ff; /* slightly brighter cyan */
  --neon-hot: #ff5ecf; /* pinker hot */
  --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; /* used for selected/active items */
  --accent-orange: #ff9a3d;
  --white: #ffffff;
  --card-bg: #0f1720;
  --card-text: #e6eef8;
  --input-bg: #ffffff;
  --input-text: #000000;
  --table-header-bg: #0a0a0a;
  --table-header-color: #ffffff;
  --table-row-bg: #f5f6f8;
  --container-max: 1200px;
  --card-radius: 12px;
  --shadow-soft: 0 12px 40px rgba(11,12,20,0.6);
}

/* Reset / base */
* { box-sizing: border-box; }
html,body { height:100%; }
body {
  font-family: Inter, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  margin: 0;
  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: var(--container-max);
  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 (knallig) */
/* ----------------------- */
.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 20px 70px rgba(0,240,255,0.14), 0 14px 50px rgba(217,76,255,0.08);
  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 24px 90px rgba(0,240,255,0.16), 0 20px 70px rgba(217,76,255,0.10);
  transform: translateY(-2px);
}

/* Optional pulse animation */
@keyframes dsms-neon-pulse {
  0% { box-shadow: 0 8px 18px rgba(0,240,255,0.08); }
  50% { box-shadow: 0 30px 110px rgba(0,240,255,0.16), 0 22px 80px rgba(217,76,255,0.06); }
  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 40px rgba(0,0,0,0.6);
  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: allow reveal when hovering left edge/menu */
@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 { /* fallback hover style */ background: linear-gradient(90deg, rgba(139,66,255,0.08), rgba(31,214,255,0.06)); box-shadow: 0 10px 30px rgba(139,66,255,0.06); color: var(--white); }

/* Hover neon for li items (stronger effect when hovering any li, or a) */
.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.14), rgba(0,240,255,0.06));
  color: var(--neon-contrast);
  box-shadow: 0 10px 40px rgba(217,76,255,0.12), inset 0 -2px 8px rgba(0,240,255,0.04);
  transform: translateX(2px);
}

/* Selected menu item (neon contrast) */
.dsms-menu a.dsms-menu-selected {
  background: linear-gradient(90deg, rgba(217,76,255,0.18), rgba(0,240,255,0.10));
  color: var(--neon-contrast);
  box-shadow: 0 12px 50px rgba(217,76,255,0.14);
  border-left: 4px 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: var(--card-text);
  border-radius: var(--card-radius);
  padding: 18px;
  box-shadow: var(--shadow-soft);
  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);
}

.dsms-grid {
  display: grid;
  grid-template-columns: 1fr 360px;
  gap: 28px;
  align-items: start;
}
@media (max-width: 980px) {
  .dsms-grid { grid-template-columns: 1fr; gap: 18px; }
}

/* Harmonize horizontal structure (divider) */
.dsms-grid-horz { display:flex; flex-direction:column; gap:18px; align-items:stretch; }
.dsms-neon-divider {
  height:6px;
  border-radius:6px;
  background: linear-gradient(90deg, var(--neon-hot), var(--neon-cyan));
  box-shadow: 0 10px 30px rgba(217,76,255,0.06), 0 10px 30px rgba(0,240,255,0.04);
}

/* Hero */
.dsms-half-hero { padding: 40px 0; }
.dsms-half-hero-inner {
  display:flex;
  gap:28px;
  align-items:flex-start;
  padding:28px;
  border-radius: 14px;
  background: linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01));
  box-shadow: 0 18px 60px rgba(2,6,23,0.6);
  min-height: 220px;
  background-size: cover;
  background-position: center;
}
.dsms-hero-left { flex:2; color: var(--white); }
.dsms-hero-left h1 { font-size:34px; margin:0 0 12px; color:var(--white); text-shadow: 0 10px 40px rgba(139,66,255,0.06); }
.dsms-hero-left p { color: rgba(255,255,255,0.88); }
.dsms-hero-sidebar { flex:1; min-width:280px; }

/* 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; }

/* Neon button style used for requested prominent buttons */
.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);
}

/* Other button variants */
.dsms-btn-primary {
  background: linear-gradient(90deg, rgba(31,214,255,0.12), rgba(217,76,255,0.12));
  color: var(--white);
  border: 1px solid rgba(139,66,255,0.18);
}
.dsms-btn-orange {
  background: linear-gradient(90deg, var(--accent-orange), #ff7b2b);
  color: #07101a;
  border: 0;
  box-shadow: 0 10px 40px rgba(255,122,60,0.18);
}
.dsms-btn-gray {
  background: rgba(255,255,255,0.03);
  color: var(--white);
  border: 1px solid rgba(255,255,255,0.03);
}

/* Filter controls small layout */
.dsms-filter-controls { display:flex; flex-direction:column; gap:10px; }
.dsms-filter-row { display:flex; flex-direction:column; gap:6px; }
.dsms-filter-actions { display:flex; gap:8px; margin-top:6px; }

/* Selected fields area (removed in latest markup, styles kept for backward compatibility) */
.dsms-selected-fields { display:flex; flex-direction:column; gap:8px; margin-top:8px; }
.dsms-selected-fields input[readonly] { background:#f6f6f8; color:#0b1220; border:1px solid #dcdcdc; padding:8px; border-radius:6px; }

/* ----------------------- */
/* Table styling (requested)
   - header: dark background + white text
   - body cells: light gray background
   - inputs inside cards: white bg + black text
*/
/* ----------------------- */
.card table,
.dsms-summary-wrap table,
.dsms-shortcode-block table,
.card .widefat,
.dsms-summary-wrap .widefat {
  width:100%;
  border-collapse: collapse;
  background: transparent;
}

.card table thead tr th,
.dsms-summary-wrap table thead tr th,
.dsms-shortcode-block table thead tr th,
.card .widefat thead tr th,
.dsms-summary-wrap .widefat thead tr th {
  background: var(--table-header-bg) !important;
  color: var(--table-header-color) !important;
  font-weight: 700;
  padding: 10px 12px;
  text-align: left;
  border-bottom: 1px solid rgba(255,255,255,0.04);
}

/* Body cells: light grey background and dark text for readability */
.card table tbody tr td,
.dsms-summary-wrap table tbody tr td,
.card .widefat tbody tr td {
  padding: 10px 12px;
  border-bottom: 1px solid rgba(255,255,255,0.03);
  color: #0b1220;
  background: var(--table-row-bg);
}

/* Slightly different even row */
.card table tbody tr:nth-child(even) td,
.dsms-summary-wrap table tbody tr:nth-child(even) td {
  background: #eceef0;
}

/* Inputs inside containers: white background and black text */
.card input[type="text"],
.card input[type="email"],
.card input[type="url"],
.card input[type="number"],
.card input[type="search"],
.card input[type="tel"],
.card input[type="password"],
.card textarea,
.card select,
.dsms-aside-box input[type="text"],
.dsms-aside-box textarea,
.dsms-summary-wrap input[type="text"],
.dsms-summary-wrap textarea,
.dsms-shortcode-block input[type="text"],
.dsms-shortcode-block textarea,
.dsms-shortcode-block select {
  background: var(--input-bg);
  color: var(--input-text);
  border: 1px solid rgba(0,0,0,0.12);
  padding: 8px 10px;
  border-radius: 6px;
  width: 100%;
  box-sizing: border-box;
}

/* Focus */
.card input:focus,
.card textarea:focus,
.card select:focus {
  outline: none;
  box-shadow: 0 8px 28px rgba(45,123,255,0.08);
  border-color: rgba(45,123,255,0.6);
}

/* Filled inputs keep white */
.card input.dsms-filled,
.card textarea.dsms-filled,
.card select.dsms-filled {
  background: #ffffff;
  color: #000000;
  border-color: #cfd8e3;
}

/* widefat plugin support */
.widefat thead tr th {
  background: var(--table-header-bg) !important;
  color: var(--table-header-color) !important;
}

/* Footer logos right */
.site-footer { padding:18px 0 36px; }
.site-footer .site-footer-inner { max-width: var(--container-max); margin: 0 auto; display:flex; justify-content:space-between; align-items:center; padding:0 20px; }
.site-footer .footer-left { flex:1; color: #9aa0a6; }
.site-footer .footer-right { display:flex; gap:12px; align-items:center; }
.dsms-footer-logo { height:46px; display:block; filter:drop-shadow(0 8px 28px rgba(0,0,0,0.6)); }

/* small tweaks */
.dsms-access-denied { background: rgba(255,0,0,0.02); padding:12px; border-radius:8px; color:#ffb3b3; border:1px solid rgba(255,0,0,0.04); }
.dsms-shortcode-block { margin: 16px 0; }

.dsms-msg { padding:8px 10px; border-radius:6px; font-weight:600; }
.dsms-msg-success { background: rgba(31,214,255,0.06); color: #dff7ff; border:1px solid rgba(0,240,255,0.06); }
.dsms-msg-error { background: rgba(255,50,50,0.04); color: #ffd6d6; border:1px solid rgba(255,50,50,0.06); }

/* Responsive tweaks */
@media (max-width: 700px) {
  .dsms-hero-left h1 { font-size:28px; }
  .card table thead tr th, .card table tbody tr td { padding: 8px; }
  .dsms-slide-menu { width: 88%; transform: translateX(-110%); }
}