:root{

  --font: "Geist", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;

  --brand: #0f6e3e;
  --brand-hover: #0a5a32;
  --brand-soft: #ebf5ef;
  --brand-border: #c8e2d2;

  --bg: transparent;
  --surface: #ffffff;
  --surface-muted: #f7f8f7;

  --ink: #0a1f12;
  --ink-2: #4a5a51;
  --muted: #7a8a81;

  --line: #e6eae7;
  --line-strong: #cfd6d1;

  --success: #117a3d;
  --success-bg: #ebf5ef;
  --success-border: #b9dbc4;
  --error: #c0322a;
  --error-bg: #fbf0ee;
  --error-border: #f0c4bf;
  --warn-bg: #fdf6e7;
  --warn-border: #f0dba7;
  --warn-ink: #6d4a09;

  --radius: 10px;
  --radius-sm: 6px;
  --shadow-sm: 0 1px 2px rgba(10,31,18,.04);
  --shadow-md: 0 1px 3px rgba(10,31,18,.05), 0 4px 12px rgba(10,31,18,.04);
  --focus: 0 0 0 3px rgba(15,110,62,.18);
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:var(--font);
  color:var(--ink);
  background:var(--bg);
  line-height:1.55;
  font-size:15px;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
}
input,button,select,textarea{font-family:inherit;font-size:inherit;color:inherit}
a{color:var(--brand)}
a:hover{color:var(--brand-hover)}

.rs-app{max-width:680px;margin:0 auto;padding:24px 20px 40px}

h2.rs-title{
  font-size:22px;
  font-weight:600;
  margin:0 0 6px;
  letter-spacing:-.015em;
  color:var(--ink);
}
h3.rs-section-title{
  font-size:13px;
  font-weight:600;
  margin:28px 0 14px;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--muted);
}

.rs-field{position:relative;margin-bottom:10px}

.rs-field input,
.rs-field select{
  width:100%;
  height:54px;
  padding:22px 14px 8px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--surface);
  color:var(--ink);
  outline:none;
  transition:border-color .15s, box-shadow .15s, background-color .15s;
  -webkit-appearance:none;
  appearance:none;
  font-size:15px;
}

.rs-field select{
  padding-top:14px;
  padding-bottom:0;
  padding-right:38px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%237a8a81' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' d='M1 1.5l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 14px center;
  cursor:pointer;
}

.rs-field input:hover,
.rs-field select:hover{border-color:var(--line-strong)}

.rs-field input:focus,
.rs-field select:focus{
  border-color:var(--brand);
  box-shadow:var(--focus);
}

.rs-field input[readonly]{
  background:var(--surface-muted);
  color:var(--ink-2);
  cursor:not-allowed;
  border-color:var(--line);
}

.rs-field label{
  position:absolute;
  left:14px;
  top:50%;
  transform:translateY(-50%);
  color:var(--muted);
  pointer-events:none;
  transition:.15s;
  font-size:15px;
  background:transparent;
  font-weight:400;
}
.rs-field.has-value label,
.rs-field input:focus + label,
.rs-field select + label,
.rs-field input[readonly] + label{
  top:9px;
  transform:none;
  font-size:11px;
  color:var(--muted);
  font-weight:500;
  letter-spacing:.05em;
  text-transform:uppercase;
}
.rs-field input:focus + label{color:var(--brand)}

.rs-field.is-error input,
.rs-field.is-error select{
  border-color:var(--error);
  background:var(--error-bg);
}
.rs-field.is-error input:focus,
.rs-field.is-error select:focus{
  box-shadow:0 0 0 3px rgba(192,50,42,.15);
}
.rs-field-error{
  display:none;
  color:var(--error);
  font-size:12.5px;
  margin-top:5px;
  padding-left:2px;
  font-weight:500;
}
.rs-field.is-error .rs-field-error{display:block}

.rs-field.is-valid input,
.rs-field.is-valid select{
  border-color:var(--brand-border);
  padding-right:40px;
}
.rs-field.is-valid input{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18'%3E%3Cpath fill='none' stroke='%230f6e3e' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='M3.5 9.5l3.5 3.5 7.5-8'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 13px center;
}
.rs-field.is-valid input[readonly]{
  background-color:var(--brand-soft);
}

.rs-field-with-btn input{padding-right:128px}
.rs-field-with-btn .rs-lookup-btn{
  position:absolute;
  top:7px;
  right:7px;
  height:40px;
  padding:0 18px;
  border:0;
  border-radius:var(--radius-sm);
  background:var(--brand);
  color:#fff;
  cursor:pointer;
  font-weight:500;
  font-size:14px;
  transition:background .15s, transform .05s;
  letter-spacing:.01em;
}
.rs-field-with-btn .rs-lookup-btn:hover{background:var(--brand-hover)}
.rs-field-with-btn .rs-lookup-btn:active{transform:scale(.98)}
.rs-field-with-btn .rs-lookup-btn:disabled{opacity:.65;cursor:wait}

.rs-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.rs-row-30-70{display:grid;grid-template-columns:32% 1fr;gap:10px}
@media (max-width:520px){
  .rs-row,.rs-row-30-70{grid-template-columns:1fr}
}

.rs-lookup{
  padding:24px 22px;
  border:1px solid var(--line);
  border-radius:14px;
  background:var(--surface-muted);
  margin-bottom:24px;
}
.rs-lookup h2.rs-title{text-align:center;margin-bottom:14px}

.rs-manual-link{
  display:block;
  text-align:center;
  margin-top:14px;
  color:var(--brand);
  text-decoration:underline;
  text-underline-offset:3px;
  cursor:pointer;
  background:none;
  border:0;
  font:inherit;
  font-size:13.5px;
  padding:4px 8px;
  width:100%;
}
.rs-manual-link:hover{color:var(--brand-hover)}

.rs-lookup-error{
  margin:10px 0 0;
  padding:11px 14px;
  background:var(--error-bg);
  color:var(--error);
  border:1px solid var(--error-border);
  border-radius:var(--radius-sm);
  font-size:13px;
  font-weight:500;
}
.rs-lookup-error[hidden]{display:none}

.rs-check{
  display:flex;
  gap:11px;
  align-items:flex-start;
  margin:18px 0 8px;
  padding:14px 14px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--surface);
  cursor:pointer;
  font-size:13.5px;
  line-height:1.55;
  color:var(--ink-2);
  transition:border-color .15s, background .15s;
}
.rs-check:hover{border-color:var(--line-strong)}
.rs-check input[type=checkbox]{
  margin-top:2px;
  width:17px;
  height:17px;
  flex-shrink:0;
  cursor:pointer;
  accent-color:var(--brand);
}
.rs-check a{color:var(--brand);text-decoration:underline;text-underline-offset:2px}
.rs-check.is-valid{border-color:var(--brand-border);background:var(--brand-soft)}
.rs-check.is-error{border-color:var(--error);background:var(--error-bg)}

.rs-status{
  display:flex;
  align-items:center;
  gap:10px;
  padding:13px 15px;
  border-radius:var(--radius);
  margin:18px 0 12px;
  font-size:13.5px;
  font-weight:500;
  background:var(--warn-bg);
  border:1px solid var(--warn-border);
  color:var(--warn-ink);
}
.rs-status.is-ok{
  background:var(--brand-soft);
  border-color:var(--brand-border);
  color:var(--brand-hover);
}
.rs-status-icon{
  flex-shrink:0;
  width:22px;
  height:22px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(0,0,0,.06);
  font-weight:700;
  font-size:12px;
  line-height:1;
}
.rs-status.is-ok .rs-status-icon{
  background:var(--brand);
  color:#fff;
}

.rs-submit{
  display:block;
  width:100%;
  padding:16px 24px;
  margin-top:14px;
  border:0;
  border-radius:var(--radius);
  background:var(--brand);
  color:#fff;
  font-size:15px;
  font-weight:600;
  cursor:pointer;
  transition:background .15s, opacity .15s, transform .05s;
  letter-spacing:.01em;
  box-shadow:var(--shadow-sm);
}
.rs-submit:hover{background:var(--brand-hover)}
.rs-submit:active{transform:scale(.995)}
.rs-submit:disabled{opacity:.6;cursor:wait}

.rs-section{margin-top:6px}
.rs-section:first-of-type .rs-section-title{margin-top:8px}

.rs-honeypot{position:absolute;left:-5000px;height:0;width:0;overflow:hidden}

.rs-success,.rs-submit-error{
  padding:28px 24px;
  border-radius:14px;
  text-align:center;
  margin:24px 0;
}
.rs-success{
  background:var(--success-bg);
  border:1px solid var(--success-border);
  color:var(--success);
}
.rs-submit-error{
  background:var(--error-bg);
  border:1px solid var(--error-border);
  color:var(--error);
}
.rs-success h2,.rs-submit-error h2{
  margin:0 0 8px;
  font-size:19px;
  font-weight:600;
  letter-spacing:-.01em;
}
.rs-success p,.rs-submit-error p{
  margin:0;
  font-size:14px;
  line-height:1.55;
}

[hidden]{display:none!important}

.rs-spinner{
  display:inline-block;
  width:14px;
  height:14px;
  border:2px solid currentColor;
  border-right-color:transparent;
  border-radius:50%;
  animation:rs-spin .8s linear infinite;
  vertical-align:-2px;
  margin-right:6px;
}
@keyframes rs-spin{to{transform:rotate(360deg)}}

@media (max-width:520px){
  .rs-app{padding:18px 14px 32px}
  .rs-lookup{padding:18px 16px}
  h2.rs-title{font-size:20px}
}