.rvp-tool{
  /* Palette (exact colours you provided) */
  --c1:#234423; /* primary green */
  --c2:#1E3B1E; /* darker green */
  --c3:#739E6F; /* soft green */
  --c4:#E6CDAA; /* warm accent */
  --c5:#234423; /* keep consistent */

  /* Defaults (Light) */
  --bg:#F8EFE4;
  --panel:#FFFFFF;
  --panel2:#F1E2CF;

  --text:#000000;
  --text2:rgba(0,0,0,.72);
  --ph:rgba(0,0,0,.45);

  --border:#E8CFC0;
  --border2:#E6CDAA;

  --inputbg:#F1E2CF;
  --inputbg-focus:#FFFFFF;

  --shadow:0 6px 18px rgba(0,0,0,.10);
  --focus:0 0 0 3px rgba(35,68,35,.22);

  --btnText:#FFFFFF;
  --linkHover:#000000;

  background:transparent;
  color:var(--text);

  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Registration field display CAPS */
.rvp-tool #plateInput{
  text-transform: uppercase !important;
  letter-spacing: 0.08em;
}

@media (prefers-color-scheme: dark){
  .rvp-tool{
    --bg:#1E3B1E;
    --panel:#234423;
    --panel2:rgba(115,158,111,.18);

    --text:#FFFFFF;
    --text2:rgba(255,255,255,.82);
    --ph:rgba(255,255,255,.55);

    --border:rgba(232,207,192,.35);
    --border2:rgba(230,205,170,.45);

    --inputbg:rgba(255,255,255,.08);
    --inputbg-focus:rgba(255,255,255,.12);

    --shadow:0 6px 18px rgba(0,0,0,.45);
    --focus:0 0 0 3px rgba(230,205,170,.28);

    --btnText:#FFFFFF;
    --linkHover:#FFFFFF;
  }
}

.rvp-tool .card{
  width:360px;
  max-width:100%;
  background:var(--panel);
  border-radius:10px;
  box-shadow:var(--shadow);
  padding:25px;
  margin-left:60px;
  color:var(--text);
  border:1px solid var(--border);
}

/* Headings (solid, modern) */
.rvp-tool h2,
.rvp-tool h3{
  text-align:center;
  color:var(--c1);
}

/* Text */
.rvp-tool p{
  color:var(--text2);
  font-size:.95em;
}

.rvp-tool label{
  color:var(--text2);
}

/* Form controls */
.rvp-tool input,
.rvp-tool textarea,
.rvp-tool select,
.rvp-tool button{
  width:100%;
  padding:10px;
  margin-top:10px;
  font-size:1em;
  border-radius:5px;
  box-sizing:border-box;
  color:var(--text);
}

.rvp-tool input,
.rvp-tool textarea,
.rvp-tool select{
  background:var(--inputbg);
  border:1px solid var(--border);
}

.rvp-tool input::placeholder,
.rvp-tool textarea::placeholder{
  color:var(--ph);
}

/* Hover */
.rvp-tool input:hover,
.rvp-tool textarea:hover,
.rvp-tool select:hover{
  border-color:var(--c3);
}

/* Focus */
.rvp-tool input:focus,
.rvp-tool textarea:focus,
.rvp-tool select:focus{
  outline:none;
  background:var(--inputbg-focus);
  border-color:var(--c1);
  box-shadow:var(--focus);
  color:var(--text);
}

/* Autofill fix */
.rvp-tool input:-webkit-autofill,
.rvp-tool textarea:-webkit-autofill,
.rvp-tool select:-webkit-autofill{
  -webkit-text-fill-color: var(--text) !important;
  transition: background-color 9999s ease-in-out 0s;
  box-shadow: 0 0 0px 1000px var(--inputbg) inset !important;
  border: 1px solid var(--border) !important;
}

/* Buttons (solid, modern) */
.rvp-tool button{
  background:var(--c1);
  color:var(--btnText);
  border:none;
  cursor:pointer;
}

.rvp-tool button:hover{
  background:var(--c2);
}

.rvp-tool button:focus{
  outline:none;
  box-shadow:var(--focus);
}

.rvp-tool button:active{
  background:var(--c1);
  filter:brightness(.95);
}

/* Link + ghost button */
.rvp-tool .link-btn{
  background:none;
  color:var(--text);
  margin-top:15px;
  text-decoration:underline;
  cursor:pointer;
}

.rvp-tool .link-btn:hover{
  color:var(--linkHover) !important;
}

.rvp-tool .ghost-btn{
  background:transparent;
  color:var(--c1);
  border:1px solid var(--border2);
}

.rvp-tool .ghost-btn:hover{
  background:#F1E2CF;
}

/* Utility */
.rvp-tool .hidden{ display:none; }

.rvp-tool .success{
  color:var(--c1);
  margin-top:10px;
}

.rvp-tool .warning{
  color:#D97777;
  font-size:.9em;
  margin-top:10px;
}

.rvp-tool .small-note{
  font-size:.85em;
  color:var(--text2);
  margin-top:10px;
  opacity:.9;
}

/* Layout helpers */
.rvp-tool .row{
  display:flex;
  gap:10px;
  align-items:center;
  margin-top:10px;
}

.rvp-tool .row .link-btn{
  width:auto;
  padding:0;
  margin-top:0;
}

/* Value / plate display */
.rvp-tool .plate-used{
  margin-top:10px;
  font-size:1.05em;
  color:var(--text);
}

.rvp-tool .value-line{
  text-align:center;
  font-size:1.1em;
  color:var(--text);
}

.rvp-tool .value-sep{
  margin:0 8px;
  opacity:.7;
}

.rvp-tool .plate-inline{
  font-weight:900;
}

/* Auth box */
.rvp-tool .auth-box{
  background:var(--panel2);
  padding:15px;
  border-radius:10px;
  margin-top:10px;
  color:var(--text2);
  border:1px solid var(--border);
}

/* Google button */
.rvp-tool .google-btn{
  display:block;
  text-align:center;
  padding:12px 14px;
  border-radius:8px;
  text-decoration:none;
  background:var(--c1);
  border:1px solid var(--c2);
  color:#FFFFFF;
}

.rvp-tool .google-btn:hover{
  opacity:.92;
}

/* =================================
   FORCE TYPOGRAPHY
================================= */
.rvp-tool,
.rvp-tool p,
.rvp-tool span,
.rvp-tool div,
.rvp-tool label{
  font-weight:600 !important;
}

.rvp-tool h1,
.rvp-tool h2,
.rvp-tool h3,
.rvp-tool h4,
.rvp-tool h5,
.rvp-tool h6{
  font-weight:700 !important;
  letter-spacing:.02em;
}

.rvp-tool input,
.rvp-tool textarea,
.rvp-tool select,
.rvp-tool button{
  font-weight:700 !important;
}

/* prevent weird Elementor glow */
.rvp-tool *{
  text-shadow:none !important;
}
