/* ============================================================
   VOW core stylesheet — design tokens + auth/admin shells.
   Canonical theme: dark "sci-fi green" (see vow-design skill).
   Public-site components are added in Phase 2.
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;900&display=swap');

:root{
  --vow-bg:#091a0d; --vow-bg-2:#071209; --vow-card:#0c1e10;
  --vow-green:#22c55e; --vow-green-600:#16a34a; --vow-green-700:#15803d;
  --vow-white:#fff; --vow-text:rgba(255,255,255,.88); --vow-text-dim:rgba(255,255,255,.42);
  --vow-line:rgba(34,197,94,.14);
}
*{margin:0;padding:0;box-sizing:border-box;}
body{font-family:'Inter',sans-serif;background:var(--vow-bg);color:var(--vow-text);-webkit-font-smoothing:antialiased;}
a{color:var(--vow-green);text-decoration:none;}

/* logo wordmark */
.vow-logo{display:flex;align-items:center;gap:8px;font-weight:900;letter-spacing:-1px;color:#fff;}
.vow-logo .lv,.vow-logo .lw{font-size:34px;line-height:1;}
.vow-logo .dot{width:12px;height:12px;border-radius:50%;background:var(--vow-green);box-shadow:0 0 14px var(--vow-green);}
.vow-logo small{font-size:10px;letter-spacing:.2em;color:var(--vow-green);text-transform:uppercase;font-weight:700;}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;font-family:inherit;font-weight:700;
  font-size:13px;padding:10px 16px;border-radius:6px;border:1px solid transparent;cursor:pointer;transition:.15s;}
.btn-primary{background:var(--vow-green);color:var(--vow-bg);}
.btn-primary:hover{background:var(--vow-green-600);}
.btn-ghost{background:transparent;border-color:rgba(34,197,94,.4);color:var(--vow-green);}
.btn-block{width:100%;}

/* form fields */
.field{margin-bottom:14px;}
.field label{display:block;font-size:12px;font-weight:600;color:var(--vow-text-dim);margin-bottom:6px;}
.field input[type=text],.field input[type=email],.field input[type=password],.field input[type=number]{
  width:100%;background:var(--vow-bg-2);border:1px solid var(--vow-line);border-radius:6px;
  padding:10px 12px;color:#fff;font-family:inherit;font-size:14px;outline:none;transition:.15s;}
.field input:focus{border-color:var(--vow-green);box-shadow:0 0 0 3px rgba(34,197,94,.12);}
.field .err{color:#f87171;font-size:11px;margin-top:5px;}
.checkrow{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--vow-text-dim);}

/* alerts */
.alert{padding:10px 14px;border-radius:6px;font-size:13px;margin-bottom:14px;border:1px solid;}
.alert-warn{background:rgba(234,179,8,.1);border-color:rgba(234,179,8,.3);color:#fbbf24;}
.alert-ok{background:rgba(34,197,94,.1);border-color:rgba(34,197,94,.3);color:#4ade80;}

/* ── AUTH layout ── */
.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem;
  background:radial-gradient(900px 500px at 50% -10%,rgba(34,197,94,.08),transparent),var(--vow-bg);}
.auth-card{width:100%;max-width:400px;background:var(--vow-bg-2);border:1px solid var(--vow-line);
  border-radius:12px;padding:2rem;}
.auth-card h1{font-size:20px;color:#fff;margin:18px 0 4px;}
.auth-card .sub{font-size:13px;color:var(--vow-text-dim);margin-bottom:20px;}
.auth-card .foot{text-align:center;font-size:12px;color:var(--vow-text-dim);margin-top:16px;}

/* ── ADMIN shell ── */
.admin{display:grid;grid-template-columns:240px 1fr;min-height:100vh;}
.admin-side{background:var(--vow-bg-2);border-right:1px solid var(--vow-line);padding:1rem .75rem;position:sticky;top:0;height:100vh;overflow:auto;}
.admin-side .brand{padding:6px 8px 16px;border-bottom:1px solid var(--vow-line);margin-bottom:10px;}
.admin-nav a{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:7px;font-size:13px;
  color:var(--vow-text-dim);margin-bottom:2px;transition:.12s;}
.admin-nav a:hover{background:rgba(34,197,94,.06);color:#fff;}
.admin-nav a.active{background:rgba(34,197,94,.12);color:var(--vow-green);font-weight:600;}
.admin-nav .grouplbl{font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.25);
  padding:14px 10px 6px;font-weight:700;}
.admin-main{display:flex;flex-direction:column;}
.admin-top{height:60px;border-bottom:1px solid var(--vow-line);display:flex;align-items:center;
  justify-content:space-between;padding:0 1.5rem;background:var(--vow-bg);position:sticky;top:0;z-index:10;}
.admin-top .who{font-size:13px;color:var(--vow-text-dim);}
.admin-content{padding:1.5rem;}
.admin-content h1{font-size:20px;color:#fff;margin-bottom:4px;}
.admin-content .lead{font-size:13px;color:var(--vow-text-dim);margin-bottom:20px;}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;}
.kpi{background:var(--vow-card);border:1px solid var(--vow-line);border-radius:10px;padding:16px 18px;}
.kpi .n{font-size:26px;font-weight:800;color:#fff;}
.kpi .l{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--vow-text-dim);margin-top:4px;}

@media (max-width:768px){
  .admin{grid-template-columns:1fr;}
  .admin-side{position:fixed;left:-260px;width:240px;z-index:50;transition:left .2s;}
  .admin-side.open{left:0;}
  .admin-burger{display:inline-flex!important;}
}
.admin-burger{display:none;background:transparent;border:1px solid rgba(34,197,94,.4);color:var(--vow-green);
  border-radius:6px;padding:6px 10px;cursor:pointer;}

/* ============================================================
   PUBLIC SITE  (homepage + shared public components)
   Ported from design/homepage.reference.html — mobile-first.
   ============================================================ */
.vp{font-family:'Inter',sans-serif;background:#091a0d;color:#fff;width:100%;overflow-x:hidden;}

/* NAV */
.vnav{display:flex;align-items:center;justify-content:space-between;padding:0 1.5rem;height:64px;background:#091a0d;border-bottom:1px solid rgba(34,197,94,.18);position:sticky;top:0;z-index:100;}
.vnav .logo{display:flex;align-items:center;}
.lv,.lw{font-family:'Inter',sans-serif;font-size:34px;font-weight:900;color:#fff;line-height:1;letter-spacing:-1px;}
.logo .dot{width:11px;height:11px;border-radius:50%;background:#22c55e;margin:0 3px;box-shadow:0 0 12px #22c55e;}
.logo-name{font-size:11px;font-weight:700;color:#22c55e;letter-spacing:.2em;text-transform:uppercase;white-space:nowrap;margin-left:10px;}
.nav-links{display:flex;gap:1.4rem;}
.nav-links a{font-size:12px;color:rgba(255,255,255,.58);text-decoration:none;transition:color .2s;}
.nav-links a:hover{color:#22c55e;}
.nav-r{display:flex;gap:8px;align-items:center;}
.btn-o{border:1px solid rgba(34,197,94,.4);color:#22c55e;background:transparent;font-size:12px;padding:6px 14px;border-radius:5px;cursor:pointer;font-weight:600;font-family:inherit;}
.btn-s{background:#22c55e;color:#091a0d;font-size:12px;padding:6px 14px;border-radius:5px;border:none;cursor:pointer;font-weight:700;font-family:inherit;}
.vnav-burger{display:none;background:transparent;border:1px solid rgba(34,197,94,.4);border-radius:5px;width:34px;height:30px;cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:3px;}
.vnav-burger span{display:block;width:16px;height:2px;background:#22c55e;border-radius:2px;}

/* TICKER */
.vticker{background:#22c55e;color:#091a0d;height:30px;display:flex;align-items:center;overflow:hidden;}
.vtlbl{font-size:10px;font-weight:800;letter-spacing:.15em;text-transform:uppercase;padding:0 14px;background:#15803d;height:100%;display:flex;align-items:center;white-space:nowrap;flex-shrink:0;color:#fff;}
.vtscroll{overflow:hidden;flex:1;}
.vttrack{display:flex;gap:2.5rem;animation:tick 35s linear infinite;white-space:nowrap;padding-left:2.5rem;}
.vttrack span{font-size:11px;font-weight:500;}
@keyframes tick{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}

/* YT FACADE */
.yt-player{position:relative;width:100%;background:#000;cursor:pointer;overflow:hidden;}
.yt-player img{width:100%;height:100%;object-fit:cover;display:block;}
.yt-player .yt-overlay{position:absolute;inset:0;background:rgba(0,0,0,.35);display:flex;align-items:center;justify-content:center;transition:background .2s;}
.yt-player:hover .yt-overlay{background:rgba(0,0,0,.2);}
.yt-btn{width:56px;height:40px;background:#ff0000;border-radius:10px;display:flex;align-items:center;justify-content:center;transition:transform .2s;}
.yt-player:hover .yt-btn{transform:scale(1.1);}
.yt-btn svg{width:20px;height:20px;fill:#fff;margin-left:3px;}
.yt-player iframe{position:absolute;inset:0;width:100%;height:100%;border:none;display:none;}
.yt-player.playing img,.yt-player.playing .yt-overlay{display:none;}
.yt-player.playing iframe{display:block;}
.yt-hero,.yt-reg,.yt-card,.yt-mcard{aspect-ratio:16/9;}
.yt-mini{width:80px;height:52px;flex-shrink:0;border-radius:4px;}
.yt-mini .yt-btn{width:28px;height:20px;border-radius:5px;}
.yt-mini .yt-btn svg{width:10px;height:10px;margin-left:2px;}

/* HERO */
.vhero{display:grid;grid-template-columns:1fr 300px;border-bottom:1px solid rgba(34,197,94,.12);}
.hmain{background:#000;display:flex;flex-direction:column;}
.hinfo{padding:14px 16px 16px;background:linear-gradient(to bottom,#0a1a0a,#091a0d);flex:1;}
.hbadge{display:inline-block;font-size:9px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:#22c55e;background:rgba(34,197,94,.1);border:1px solid rgba(34,197,94,.22);padding:3px 9px;border-radius:3px;margin-bottom:8px;}
.htitle{font-size:17px;font-weight:700;line-height:1.38;color:#fff;margin-bottom:8px;}
.htitle a{color:#fff;}
.hmeta{display:flex;gap:10px;font-size:11px;color:rgba(255,255,255,.38);flex-wrap:wrap;align-items:center;}
.hdot{width:3px;height:3px;border-radius:50%;background:rgba(255,255,255,.2);flex-shrink:0;}
.hside{background:#071209;border-left:1px solid rgba(34,197,94,.12);display:flex;flex-direction:column;}
.hside-hdr{padding:10px 12px;border-bottom:1px solid rgba(34,197,94,.1);font-size:9px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#22c55e;flex-shrink:0;}
.hside-list{display:flex;flex-direction:column;}
.sitem{display:flex;gap:9px;padding:6px 10px;border-bottom:1px solid rgba(255,255,255,.04);cursor:pointer;transition:background .15s;align-items:flex-start;}
.sitem:hover{background:rgba(34,197,94,.05);}
.sitem:last-child{border-bottom:none;}
.sinfo{flex:1;min-width:0;}
.stitle{font-size:11px;font-weight:500;color:rgba(255,255,255,.85);line-height:1.4;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.ssub{font-size:10px;color:rgba(255,255,255,.3);margin-top:4px;}

/* REGION BAR */
.vregbar{padding:9px 1.5rem;background:#071209;border-bottom:1px solid rgba(34,197,94,.1);display:flex;align-items:center;gap:12px;}
.rlbl{font-size:9px;color:rgba(255,255,255,.35);font-weight:700;text-transform:uppercase;letter-spacing:.12em;white-space:nowrap;}
.rflags{display:flex;gap:4px;flex-wrap:wrap;}
.rflag{font-size:18px;cursor:pointer;padding:3px 6px;border-radius:4px;border:1px solid transparent;line-height:1;transition:all .15s;background:none;}
.rflag:hover,.rflag.active{background:rgba(34,197,94,.1);border-color:rgba(34,197,94,.28);}
.rdetect{font-size:10px;color:rgba(255,255,255,.22);margin-left:auto;white-space:nowrap;}
.rdetect b{color:rgba(34,197,94,.6);font-weight:500;}

/* REGIONAL */
.vregional{display:grid;grid-template-columns:1fr 268px;border-bottom:1px solid rgba(34,197,94,.1);}
.regmain{padding:1.2rem;}
.eyebrow{font-size:9px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#22c55e;margin-bottom:12px;display:flex;align-items:center;gap:8px;}
.eyebrow::after{content:'';flex:1;height:1px;background:rgba(34,197,94,.15);}
.regcard{border-radius:7px;overflow:hidden;border:1px solid rgba(34,197,94,.12);}
.regcard-info{padding:10px 12px;background:#0c1e10;}
.regcard-title{font-size:14px;font-weight:600;color:#fff;margin-bottom:4px;line-height:1.38;}
.regcard-title a{color:#fff;}
.regcard-sub{font-size:11px;color:rgba(255,255,255,.32);}
.regside{border-left:1px solid rgba(34,197,94,.1);background:#071209;padding:12px;display:flex;flex-direction:column;gap:8px;}
.regside-lbl{font-size:9px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#22c55e;margin-bottom:2px;}
.mcard{background:#0c1e10;border:1px solid rgba(34,197,94,.08);border-radius:5px;overflow:hidden;cursor:pointer;transition:border-color .15s;}
.mcard:hover{border-color:rgba(34,197,94,.28);}
.mcard-info{padding:6px 8px;}
.mcard-title{font-size:10px;font-weight:500;color:rgba(255,255,255,.82);line-height:1.38;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.mcard-sub{font-size:9px;color:rgba(255,255,255,.28);margin-top:2px;}

/* NEWS */
.vnews{padding:1.4rem 1.5rem 1rem;}
.ctabs{display:flex;gap:5px;margin-top:12px;flex-wrap:wrap;}
.ctab{font-size:10px;font-weight:500;padding:4px 12px;border-radius:20px;border:1px solid rgba(255,255,255,.09);color:rgba(255,255,255,.42);cursor:pointer;background:transparent;font-family:inherit;transition:all .15s;}
.ctab.active,.ctab:hover{background:rgba(34,197,94,.1);border-color:rgba(34,197,94,.28);color:#22c55e;}
.ngrid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:14px;}
.ncard{background:#0c1e10;border:1px solid rgba(34,197,94,.09);border-radius:7px;overflow:hidden;transition:border-color .2s,transform .18s;}
.ncard:hover{border-color:rgba(34,197,94,.3);transform:translateY(-2px);}
.ncard-body{padding:10px;}
.nbadge{display:inline-block;font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:2px 7px;border-radius:3px;margin-bottom:6px;color:#091a0d;}
.ntitle{font-size:12px;font-weight:600;color:rgba(255,255,255,.88);line-height:1.42;margin-bottom:8px;}
.ntitle a{color:rgba(255,255,255,.88);}
.nmeta{display:flex;justify-content:space-between;font-size:10px;}
.nauthor{color:rgba(255,255,255,.28);}
.nviews{color:rgba(34,197,94,.55);}

/* PODCASTS */
.vpod{padding:0 1.5rem 1.4rem;}
.pod-row{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:12px;}
.pod-card{background:#0c1e10;border:1px solid rgba(34,197,94,.09);border-radius:7px;padding:12px;display:flex;gap:10px;align-items:center;cursor:pointer;transition:border-color .15s;}
.pod-card:hover{border-color:rgba(34,197,94,.28);}
.pod-art{width:48px;height:48px;border-radius:6px;background:#1a3a1a;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:20px;}
.pod-info h4{font-size:12px;font-weight:600;color:rgba(255,255,255,.88);margin-bottom:2px;}
.pod-info p{font-size:10px;color:rgba(255,255,255,.3);}

/* DONATE / JOIN */
.vdonate{margin:0 1.5rem 1.4rem;background:#0c2014;border:1px solid rgba(34,197,94,.18);border-radius:9px;padding:1.4rem 1.8rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;}
.vdonate h3{font-size:17px;font-weight:700;color:#fff;margin-bottom:4px;}
.vdonate p{font-size:12px;color:rgba(255,255,255,.42);max-width:340px;line-height:1.6;}
.dbtns{display:flex;gap:8px;flex-shrink:0;}
.btn-dp{background:#22c55e;color:#091a0d;font-size:12px;font-weight:700;padding:10px 18px;border-radius:6px;border:none;cursor:pointer;font-family:inherit;text-decoration:none;}
.btn-do{background:transparent;color:#22c55e;font-size:12px;font-weight:600;padding:10px 18px;border-radius:6px;border:1px solid rgba(34,197,94,.3);cursor:pointer;font-family:inherit;text-decoration:none;}
.vjoin{margin:0 1.5rem 1.4rem;background:#071209;border:1px solid rgba(34,197,94,.1);border-radius:9px;padding:1.1rem 1.8rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;}
.vjoin-l{display:flex;align-items:center;gap:14px;}
.jicon{width:42px;height:42px;border-radius:50%;background:rgba(34,197,94,.09);border:1px solid rgba(34,197,94,.18);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.vjoin h3{font-size:14px;font-weight:700;color:#fff;margin-bottom:3px;}
.vjoin p{font-size:11px;color:rgba(255,255,255,.35);line-height:1.5;}

/* FOOTER */
.vfoot{background:#050e07;border-top:1px solid rgba(34,197,94,.1);padding:2rem 1.5rem 1.2rem;}
.fgrid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:2rem;margin-bottom:1.6rem;}
.fcol h4{font-size:9px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:#22c55e;margin-bottom:10px;}
.fcol a{display:block;font-size:11px;color:rgba(255,255,255,.32);text-decoration:none;margin-bottom:7px;transition:color .15s;}
.fcol a:hover{color:rgba(255,255,255,.72);}
.fabout{font-size:11px;color:rgba(255,255,255,.28);line-height:1.65;margin-top:6px;max-width:220px;}
.fsocial{display:flex;gap:6px;margin-top:12px;}
.fsoc{width:28px;height:28px;border-radius:5px;background:rgba(34,197,94,.06);border:1px solid rgba(34,197,94,.13);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:11px;font-weight:700;color:rgba(255,255,255,.32);}
.fsoc:hover{background:rgba(34,197,94,.14);color:#22c55e;}
.fbot{border-top:1px solid rgba(255,255,255,.05);padding-top:.9rem;display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;}
.fbot p{font-size:10px;color:rgba(255,255,255,.2);}
.flinks{display:flex;gap:14px;}
.flinks a{font-size:10px;color:rgba(255,255,255,.2);text-decoration:none;}
.flinks a:hover{color:rgba(255,255,255,.5);}

/* RESPONSIVE (mobile-first requirement) */
@media (max-width:1024px){
  .vhero{grid-template-columns:1fr 260px;}.vregional{grid-template-columns:1fr 230px;}
  .ngrid{grid-template-columns:repeat(2,1fr);}.pod-row{grid-template-columns:repeat(2,1fr);}
  .fgrid{grid-template-columns:1fr 1fr;gap:1.4rem;}
}
@media (max-width:768px){
  .nav-links{display:none;}.vnav{padding:0 1rem;}.logo-name{display:none;}.vnav-burger{display:flex;}
  .nav-links.open{display:flex;flex-direction:column;position:absolute;top:64px;left:0;right:0;background:#091a0d;border-bottom:1px solid rgba(34,197,94,.18);padding:1rem 1.5rem;gap:1rem;z-index:99;}
  .vhero{grid-template-columns:1fr;}.hside{border-left:none;border-top:1px solid rgba(34,197,94,.12);}
  .vregional{grid-template-columns:1fr;}.regside{border-left:none;border-top:1px solid rgba(34,197,94,.1);}
  .vdonate,.vjoin{flex-direction:column;align-items:flex-start;}.vjoin-l{flex-direction:row;}
  .fgrid{grid-template-columns:1fr 1fr;}.fbot{flex-direction:column;align-items:flex-start;}.vregbar{flex-wrap:wrap;}.rdetect{margin-left:0;}
}
@media (max-width:480px){
  .ngrid{grid-template-columns:1fr;}.pod-row{grid-template-columns:1fr;}.fgrid{grid-template-columns:1fr;}
}

/* ── FORUM (Section 07) ── */
.forum-wrap{max-width:880px;margin:0 auto;padding:1.4rem 1.5rem;}
.fcat{display:block;background:var(--vow-card);border:1px solid var(--vow-line);border-radius:9px;padding:14px 16px;margin-bottom:10px;transition:border-color .15s;}
.fcat:hover{border-color:rgba(34,197,94,.32);}
.fcat h3{color:#fff;font-size:14px;margin-bottom:3px;}
.fcat p{color:var(--vow-text-dim);font-size:12px;}
.fcat .cnt{float:right;color:#22c55e;font-size:12px;font-weight:700;}
.fthread-row{display:flex;gap:12px;align-items:flex-start;background:var(--vow-card);border:1px solid var(--vow-line);border-radius:9px;padding:12px 14px;margin-bottom:8px;}
.fthread-row:hover{border-color:rgba(34,197,94,.3);}
.fthread-row .tt{color:#fff;font-size:14px;font-weight:600;}
.fthread-row .tm{color:var(--vow-text-dim);font-size:11px;margin-top:3px;}
.fthread-row .rc{margin-left:auto;color:#22c55e;font-size:12px;font-weight:700;white-space:nowrap;}
.fbody{background:var(--vow-card);border:1px solid var(--vow-line);border-radius:10px;padding:16px 18px;margin-bottom:16px;color:rgba(255,255,255,.82);font-size:14px;line-height:1.7;}
.freply{display:flex;gap:10px;padding:10px 0;border-top:1px solid var(--vow-line);}
.freply .votes{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:34px;}
.freply .vbtn{background:transparent;border:1px solid var(--vow-line);color:var(--vow-text-dim);border-radius:5px;width:26px;height:22px;cursor:pointer;font-size:12px;line-height:1;}
.freply .vbtn:hover{border-color:#22c55e;color:#22c55e;}
.freply .score{font-size:12px;font-weight:700;color:#fff;}
.freply .rbody{flex:1;}
.freply .rmeta{font-size:11px;color:var(--vow-text-dim);margin-bottom:3px;}
.freply .rtext{font-size:13px;color:rgba(255,255,255,.82);line-height:1.6;}
.freply.solution{background:rgba(34,197,94,.05);border-left:2px solid #22c55e;padding-left:8px;border-radius:6px;}
.fsolved{display:inline-block;font-size:10px;font-weight:700;color:#091a0d;background:#22c55e;border-radius:4px;padding:2px 7px;margin-bottom:6px;}
.freply-children{margin-left:22px;border-left:1px solid var(--vow-line);padding-left:10px;}
.freply .rlink{font-size:11px;color:#22c55e;cursor:pointer;background:none;border:none;padding:0;margin-top:4px;}

/* ── CRM Kanban (Section 12) ── */
.kanban{display:flex;gap:12px;overflow-x:auto;padding-bottom:10px;}
.kcol{flex:0 0 240px;background:var(--vow-bg-2);border:1px solid var(--vow-line);border-radius:10px;padding:10px;min-height:120px;}
.kcol h4{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:#22c55e;margin-bottom:8px;display:flex;justify-content:space-between;}
.kcard{background:var(--vow-card);border:1px solid var(--vow-line);border-radius:8px;padding:10px;margin-bottom:8px;cursor:grab;}
.kcard:hover{border-color:rgba(34,197,94,.32);}
.kcard .kn{color:#fff;font-size:13px;font-weight:600;}
.kcard .ko{color:var(--vow-text-dim);font-size:11px;margin-top:2px;}
.kcard .kv{color:#22c55e;font-size:11px;font-weight:700;margin-top:4px;}
.kcol.dragover{border-color:#22c55e;background:rgba(34,197,94,.05);}
.crm-tab{display:inline-block;font-size:12px;padding:7px 14px;border-radius:7px;color:var(--vow-text-dim);cursor:pointer;}
.crm-tab.active{background:rgba(34,197,94,.12);color:#22c55e;}

/* ── GDPR cookie consent (Section 30) ── */
.cookie-banner{position:fixed;left:0;right:0;bottom:0;z-index:200;background:var(--vow-bg-2);border-top:1px solid var(--vow-line);padding:16px 1.5rem;display:none;}
.cookie-banner.show{display:flex;gap:16px;align-items:center;justify-content:center;flex-wrap:wrap;}
.cookie-banner p{font-size:12px;color:var(--vow-text-dim);max-width:560px;line-height:1.6;margin:0;}
.cookie-banner p a{color:#22c55e;}
.cookie-banner .cbtns{display:flex;gap:8px;flex-wrap:wrap;}
.cookie-banner button{font-family:inherit;font-size:12px;font-weight:600;padding:8px 14px;border-radius:6px;cursor:pointer;border:1px solid rgba(34,197,94,.4);}
.cookie-banner .c-accept{background:#22c55e;color:#091a0d;border:none;font-weight:700;}
.cookie-banner .c-ess{background:transparent;color:#22c55e;}
