/* === NCD GEO CONSOLE v2.1 (Light + Neural theme) === */
/* Namespace: .ncd-geo-console (keeps theme-safe inside WordPress) */

:root{
  --ncd-bg:#f9fafc;
  --ncd-card:#ffffff;
  --ncd-border:rgba(0,0,0,.08);
  --ncd-border-strong:rgba(0,0,0,.12);
  --ncd-shadow:0 6px 18px rgba(0,0,0,.04);

  --ncd-blue:#2070f8;
  --ncd-blue-2:#165bd1;
  --ncd-blue-soft:rgba(32,112,248,.10);

  --ncd-text:#111;
  --ncd-muted:rgba(17,17,17,.70);

  --ncd-ok:#0ea765;
  --ncd-ok-soft:rgba(14,167,101,.12);

  --ncd-warn:#f0a202;
  --ncd-warn-soft:rgba(240,162,2,.14);

  --ncd-danger:#e5484d;
  --ncd-danger-soft:rgba(229,72,77,.14);

  --ncd-radius:16px;
  --ncd-radius-sm:12px;
  --ncd-radius-xs:10px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--ncd-bg)}

.ncd-geo-console{
  max-width:1200px;
  margin:0 auto;
  padding:20px;
  color:var(--ncd-text);
  font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
}
.ncd-geo-console *{font-family:inherit}
.ncd-geo-console code{
  font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace;
  font-size:.92em;
  background:rgba(0,0,0,.04);
  border:1px solid var(--ncd-border);
  padding:2px 6px;
  border-radius:8px;
}

/* Header */
.ncd-geo-header{
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:16px;
}
.ncd-geo-logo{
  width:42px;height:42px;
  border-radius:12px;
  box-shadow:0 0 10px rgba(0,0,0,.08);
}
.ncd-geo-title{
  margin:0;
  font-weight:900;
  font-size:22px;
  letter-spacing:.3px;
}

/* Form wrap */
.ncd-geo-formwrap{
  background:var(--ncd-card);
  border:1px solid var(--ncd-border);
  border-radius:var(--ncd-radius);
  padding:20px;
  box-shadow:var(--ncd-shadow);
  margin-bottom:18px;
}

#ncd-geo-form label{
  display:block;
  font-weight:800;
  margin:10px 0 6px;
  font-size:13px;
  letter-spacing:.2px;
}
#ncd-geo-form input{
  width:100%;
  padding:11px 12px;
  border:1px solid var(--ncd-border);
  border-radius:var(--ncd-radius-xs);
  outline:none;
  transition:box-shadow .2s,border-color .2s,background .2s;
  background:#fff;
}
#ncd-geo-form input:focus{
  border-color:var(--ncd-blue);
  box-shadow:0 0 0 3px var(--ncd-blue-soft);
}
#ncd-geo-form input:invalid{
  box-shadow:none;
}

.ncd-geo-btn{
  margin-top:14px;
  padding:10px 18px;
  border:0;
  border-radius:999px;
  background:var(--ncd-blue);
  color:#fff;
  font-weight:900;
  cursor:pointer;
  transition:transform .12s ease, background .2s ease, box-shadow .2s ease, opacity .2s ease;
  box-shadow:0 10px 22px rgba(32,112,248,.20);
}
.ncd-geo-btn:hover{background:var(--ncd-blue-2)}
.ncd-geo-btn:active{transform:translateY(1px); box-shadow:0 6px 14px rgba(32,112,248,.18)}
.ncd-geo-btn:disabled{opacity:.6; cursor:not-allowed; box-shadow:none}

.ncd-geo-btn--tiny{
  margin-top:0;
  padding:6px 12px;
  font-size:12px;
  font-weight:900;
  box-shadow:none;
}

.ncd-geo-status{
  margin-top:10px;
  color:var(--ncd-muted);
  font-weight:700;
  font-size:13px;
}

/* Preloader (optional) */
.ncd-geo-preloader{
  position:fixed;
  inset:0;
  background:radial-gradient(circle at center,#f9fafc 0%,#e8eef9 100%);
  z-index:9999;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
.neural-wave{
  position:relative;
  width:min(560px,82vw);
  height:2px;
  background:linear-gradient(90deg,transparent,var(--ncd-blue),transparent);
  animation:neuralFlow 2.8s linear infinite;
}
@keyframes neuralFlow{
  0%{transform:translateX(-100%); opacity:.6}
  50%{opacity:1}
  100%{transform:translateX(100%); opacity:.6}
}
.boot-text{
  margin-top:20px;
  font-size:20px;
  font-weight:900;
  color:var(--ncd-blue);
}
.dots::after{
  content:"";
  display:inline-block;
  animation:dotsAnim 1.5s infinite steps(4,end);
}
@keyframes dotsAnim{
  0%,100%{content:""}
  25%{content:"."}
  50%{content:".."}
  75%{content:"..."}
}

/* Results container */
#ncd-geo-results,
.ncd-geo-results{display:block}

/* Cards & grid */
.ncd-geo-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:14px;
  align-items:start;
}

@media (min-width: 860px){
  .ncd-geo-grid{
    grid-template-columns:repeat(1, minmax(0, 1fr)); /* i changed the columns from 3 to 1, since the cards was shuffled up */
  }
}

.ncd-geo-card{
  background:var(--ncd-card);
  border:1px solid var(--ncd-border);
  border-radius:14px;
  padding:16px;
  box-shadow:var(--ncd-shadow);
  display:flex;
  flex-direction:column;
  gap:10px;
  min-height:0;
  transition:transform .15s ease, box-shadow .15s ease;
}
.ncd-geo-card:hover{transform:translateY(-2px)}
.ncd-geo-card--wide{grid-column:1 / -1}
.ncd-geo-card--span-3{grid-column:1 / -1}
@media (min-width: 860px){
  .ncd-geo-card--span-3{grid-column:1 / -1}
  .ncd-geo-card--span-1{grid-column:auto}
}

/* Card head */
.ncd-geo-cardhead{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}
.ncd-geo-cardtitle{
  font-weight:bold;
  font-size:15px;
  line-height:1.2;
}
.ncd-geo-cardbody{min-width:0}

/* Header card (job meta) */
.ncd-geo-top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
}
.ncd-geo-topright{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.ncd-geo-h3{
  margin:0 0 6px 0;
  font-weight:950;
  font-size:18px;
}
.ncd-geo-muted{
  color:var(--ncd-muted);
  font-weight:700;
  font-size:13px;
  line-height:1.35;
}

/* Badges */
.ncd-geo-badges{display:flex; gap:8px; flex-wrap:wrap; align-items:center}
.ncd-geo-badge{
  display:inline-flex;
  align-items:center;
  gap:6px;
  border-radius:999px;
  padding:5px 10px;
  font-size:12px;
  font-weight:900;
  letter-spacing:.2px;
  border:1px solid var(--ncd-border);
  background:#fff;
  color:var(--ncd-text);
  white-space:nowrap;
}
.ncd-geo-badge--neutral{background:#fff}
.ncd-geo-badge--ok{border-color:rgba(14,167,101,.25); background:var(--ncd-ok-soft); color:#065f3b}
.ncd-geo-badge--warn{border-color:rgba(240,162,2,.30); background:var(--ncd-warn-soft); color:#7a4e00}
.ncd-geo-badge--danger{border-color:rgba(229,72,77,.30); background:var(--ncd-danger-soft); color:#7a1f23}

/* Score card */
.ncd-geo-scoregrid{
  display:grid;
  grid-template-columns:1fr;
  gap:14px;
}
@media (min-width: 700px){
  .ncd-geo-scoregrid{grid-template-columns:1fr 1.35fr}
}
.ncd-geo-scoreleft{
  display:flex;
  gap:14px;
  align-items:center;
}
.ncd-geo-scorebig-num{
  font-size:40px;
  line-height:1;
  font-weight:950;
}
.ncd-geo-subtitle{
  font-weight:bold;
  margin-bottom:8px;
}
.ncd-geo-bars{display:flex; flex-direction:column; gap:10px}

.ncd-geo-barrow{
  display:grid;
  grid-template-columns:120px 1fr 44px;
  gap:10px;
  align-items:center;
}
@media (max-width: 520px){
  .ncd-geo-barrow{grid-template-columns:1fr}
}
.ncd-geo-barlabel{font-weight:850; font-size:12px; color:var(--ncd-muted)}
.ncd-geo-bar{
  width:100%;
  height:10px;
  border-radius:999px;
  background:rgba(0,0,0,.06);
  overflow:hidden;
}
.ncd-geo-barfill{
  height:100%;
  border-radius:999px;
  background:linear-gradient(90deg, var(--ncd-blue), rgba(32,112,248,.55));
}
.ncd-geo-barval{
  text-align:right;
  font-weight:900;
  font-size:12px;
  color:var(--ncd-muted);
}
@media (max-width: 520px){
  .ncd-geo-barval{text-align:left}
}

/* Donut */
.ncd-geo-donutwrap{width:52px; height:52px}
.ncd-geo-donut{width:52px; height:52px}
.ncd-geo-donut-bg{
  fill:none;
  stroke:rgba(0,0,0,.08);
  stroke-width:6;
}
.ncd-geo-donut-fg{
  fill:none;
  stroke:var(--ncd-blue);
  stroke-width:6;
  stroke-linecap:round;
  transform:rotate(-90deg);
  transform-origin:22px 22px;
}

/* Lists / items */
.ncd-geo-list{display:flex; flex-direction:column; gap:12px}
.ncd-geo-item{
  border:1px solid var(--ncd-border);
  border-radius:14px;
  padding:12px;
  background:#fff;
}
.ncd-geo-itembody{margin-top:10px; display:flex; flex-direction:column; gap:10px}
.ncd-geo-itemline{
  display:grid;
  grid-template-columns:120px 1fr;
  gap:10px;
  align-items:start;
}
@media (max-width: 640px){
  .ncd-geo-itemline{grid-template-columns:1fr}
}
.ncd-geo-label{
  font-weight:bold;
  font-size:12px;
  color:var(--ncd-muted);
  text-transform:uppercase;
  letter-spacing:.6px;
}
.ncd-geo-text{font-weight:500; font-size:13px; line-height:1.45}
.ncd-geo-ul{
  margin:0;
  padding-left:18px;
}
.ncd-geo-ul li{margin:6px 0; font-weight:750; font-size:13px; line-height:1.4}
.ncd-geo-empty{color:var(--ncd-muted); font-weight:750; font-size:13px}

/* Details / pre */
.ncd-geo-details{
  border:1px solid var(--ncd-border);
  border-radius:14px;
  background:#fff;
  overflow:hidden;
}
.ncd-geo-summary{
  cursor:pointer;
  padding:12px 12px;
  font-weight:bold;
  list-style:none;
}
.ncd-geo-details summary::-webkit-details-marker{display:none}
.ncd-geo-detailsbody{padding:12px}
.ncd-geo-pre{
  margin:0;
  white-space:pre-wrap;
  word-break:break-word;
  background:rgba(0,0,0,.04);
  border:1px solid var(--ncd-border);
  border-radius:12px;
  padding:12px;
  font-size:12px;
  line-height:1.45;
  max-height:420px;
  overflow:auto;
}

/* Table */
.ncd-geo-table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  overflow:hidden;
  border:1px solid var(--ncd-border);
  border-radius:14px;
  background:#fff;
}
.ncd-geo-table th,
.ncd-geo-table td{
  padding:10px 12px;
  border-bottom:1px solid var(--ncd-border);
  font-size:13px;
}
.ncd-geo-table th{
  text-align:left;
  font-weight:950;
  background:rgba(0,0,0,.03);
}
.ncd-geo-table tr:last-child td{border-bottom:0}

/* Overlay */
.ncd-geo-overlay{
  position:relative;
  padding:12px;
}
.ncd-geo-overlaybox{
  border:1px solid var(--ncd-border);
  border-radius:16px;
  background:rgba(255,255,255,.86);
  backdrop-filter:blur(6px);
  box-shadow:var(--ncd-shadow);
  padding:16px;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.ncd-geo-spinner{
  width:18px;height:18px;
  border-radius:999px;
  border:3px solid rgba(32,112,248,.18);
  border-top-color:var(--ncd-blue);
  animation:spin .8s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg)}}
.ncd-geo-overlaytitle{font-weight:950}
.ncd-geo-overlaystage{font-weight:850; color:var(--ncd-muted)}
.ncd-geo-overlaymini{font-size:12px; color:var(--ncd-muted); font-weight:700}

/* Copy button micro-state */
.ncd-geo-btn.is-copied{background:var(--ncd-ok); box-shadow:none}

/* Sticky navigation (optional future use) */
.ncd-geo-nav{
  position:sticky;
  top:10px;
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(6px);
  border:1px solid var(--ncd-border);
  border-radius:999px;
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  justify-content:center;
  padding:8px 10px;
  z-index:10;
}
.ncd-geo-navbtn{
  border:1px solid var(--ncd-border-strong);
  background:#fff;
  border-radius:999px;
  padding:6px 12px;
  cursor:pointer;
  font-weight:900;
  font-size:12px;
  color:var(--ncd-blue);
}
.ncd-geo-navbtn:hover{
  border-color:var(--ncd-blue);
  background:var(--ncd-blue-soft);
}
/* appended css */
/* === Impact vs Effort Matrix (SAFE add-on) === */
.ncd-geo-matrix{
border:1px solid var(--ncd-border);
border-radius:14px;
padding:12px;
background:rgba(255,255,255,.80);
backdrop-filter:blur(6px);
}


.ncd-geo-matrixHead{
display:flex;
align-items:flex-start;
justify-content:space-between;
gap:12px;
margin-bottom:10px;
}


.ncd-geo-matrixSvg{
width:100%;
height:auto;
border-radius:12px;
overflow:hidden;
}


.ncd-geo-matrixBg{ fill: rgba(32,112,248,.06); }
.ncd-geo-matrixLine{ stroke: rgba(0,0,0,.12); stroke-width:1; }
.ncd-geo-matrixAxis{ fill: rgba(17,17,17,.65); font-size:12px; font-weight:900; }
.ncd-geo-matrixQuad{ fill: rgba(17,17,17,.55); font-size:11px; font-weight:900; }


.ncd-geo-matrixPt{ cursor:pointer; }
.ncd-geo-matrixHalo{ fill: rgba(32,112,248,.12); }
.ncd-geo-matrixDot{ fill: var(--ncd-blue); }


.ncd-geo-item.is-flash{
outline:2px solid rgba(32,112,248,.45);
box-shadow:0 0 0 4px rgba(32,112,248,.12);
}
/* === SAFE ADD: Top nav active state === */
.ncd-geo-navbtn.is-active{
  border-color: var(--ncd-blue);
  background: var(--ncd-blue-soft);
  box-shadow: 0 6px 14px rgba(32,112,248,.18);
}
