.kcf_wrap{
  --kcf-bg:#eef4eb;
  --kcf-wrap-grad:linear-gradient(135deg,#f8fbf6 0%,#dfeadb 55%,#f2f7ef 100%);
  --kcf-card:#ffffff;
  --kcf-ink:#172015;
  --kcf-muted:#5a6356;
  --kcf-accent:#2f6d56;
  --kcf-accent-soft:#b2ddc8;
  --kcf-border:rgba(23,32,21,.16);
  --kcf-shadow:0 35px 80px rgba(13,20,12,.18);
  --kcf-radius:24px;
  --kcf-input-bg:rgba(255,255,255,.85);
  --kcf-input-border:rgba(47,109,86,.18);
  --kcf-field-bg:rgba(255,255,255,.7);
  --kcf-btn-grad:linear-gradient(125deg,#2f6d56,#4fa57c);
  --kcf-btn-color:#f7fff8;
  --kcf-btn-shadow:rgba(47,109,86,.35);
  --kcf-blob1:radial-gradient(circle,#cdebd8,#8bc5a4);
  --kcf-blob2:radial-gradient(circle,#b1cbb4,#eaf3e2);

  font-family:'DM Sans','Helvetica Neue',sans-serif;
  position:relative;
  padding:1.6rem clamp(1rem,2vw,2rem);
  border-radius:24px;
  border:1px solid rgba(255,255,255,.55);
  background:var(--kcf-wrap-grad);
  box-shadow:var(--kcf-shadow);
  overflow:hidden;
  max-width:860px;
  margin:1.5rem auto;
}

.kcf_wrap::before,
.kcf_wrap::after{
  content:"";
  position:absolute;
  inset:auto;
  width:160px;
  height:160px;
  border-radius:40%;
  background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.8),rgba(255,255,255,0));
  filter:blur(0px);
  opacity:.55;
  pointer-events:none;
}

.kcf_wrap::before{top:-60px;right:-10px;background:var(--kcf-blob1);}
.kcf_wrap::after{bottom:-90px;left:-40px;background:var(--kcf-blob2);}

.kcf_wrap *{box-sizing:border-box;}

.kcf_header{
  position:relative;
  z-index:1;
  display:flex;
  flex-direction:column;
  gap:.3rem;
  margin-bottom:1rem;
}

.kcf_title{
  margin:0;
  font-size:1.4rem;
  font-weight:600;
  letter-spacing:-0.01em;
  color:var(--kcf-ink);
}

.kcf_subtitle{
  margin:0;
  color:var(--kcf-muted);
  font-size:0.875rem;
  max-width:44ch;
}

.kcf_notice{
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  gap:.5rem;
  border-radius:12px;
  padding:0.6rem 0.9rem;
  border:1px solid var(--kcf-border);
  margin:0 0 1rem;
  font-size:0.8rem;
  background:var(--kcf-card);
  box-shadow:0 20px 40px rgba(16,23,15,.08);
}

.kcf_notice::before{
  content:"";
  width:10px;
  height:10px;
  border-radius:50%;
}

.kcf_ok::before{background:#33a46d;}
.kcf_err::before{background:#c94141;}

.kcf_grid{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:0.65rem;
}

.kcf_field{
  display:flex;
  flex-direction:column;
  gap:.45rem;
  background:var(--kcf-field-bg);
  border-radius:14px;
  padding:0.6rem 0.75rem 0.7rem;
  border:1px solid rgba(255,255,255,.5);
  box-shadow:0 15px 35px rgba(24,32,28,.05);
}

.kcf_label{
  font-size:0.7rem;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.07em;
  color:var(--kcf-muted);
}

.kcf_req{color:#c94141;}

.kcf_input,
.kcf_textarea{
  width:100%;
  border:1px solid var(--kcf-input-border);
  border-radius:10px;
  padding:0.6rem 0.75rem;
  background:var(--kcf-input-bg);
  color:var(--kcf-ink);
  font-family:'DM Sans',sans-serif;
  font-size:0.875rem;
  transition:border-color .2s ease, box-shadow .2s ease;
  outline:none;
}

.kcf_input:focus,
.kcf_textarea:focus{
  border-color:var(--kcf-accent);
  box-shadow:0 0 0 2px rgba(47,109,86,.2);
}

.kcf_textarea{min-height:6rem;resize:vertical;}

.kcf_input[type="date"]{
  color-scheme:light;
  cursor:pointer;
}

.kcf_select{
  width:100%;
  border:1px solid var(--kcf-input-border);
  border-radius:10px;
  padding:0.6rem 0.75rem;
  background:var(--kcf-input-bg);
  color:var(--kcf-ink);
  font-family:'DM Sans',sans-serif;
  font-size:0.875rem;
  appearance:none;
  -webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%235a6356' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 0.75rem center;
  background-size:0.85rem;
  cursor:pointer;
  outline:none;
  transition:border-color .2s ease, box-shadow .2s ease;
}

.kcf_select:focus{
  border-color:var(--kcf-accent);
  box-shadow:0 0 0 2px rgba(47,109,86,.2);
}

.kcf_span2{grid-column:span 2;}

.kcf_check{
  grid-column:1 / -1;
  display:flex;
  align-items:flex-start;
  gap:.75rem;
  padding:0.6rem 0.9rem;
  border-radius:12px;
  border:1px solid var(--kcf-input-border);
  background:var(--kcf-input-bg);
  font-size:0.8rem;
  color:var(--kcf-muted);
  box-shadow:0 20px 45px rgba(25,34,28,.08);
}

.kcf_check input{
  margin-top:.3rem;
  width:1.1rem;
  height:1.1rem;
  accent-color:var(--kcf-accent);
}

.kcf_actions{
  grid-column:1 / -1;
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:1rem;
  padding:1.1rem 0 0;
}

.kcf_button{
  position:relative;
  appearance:none;
  border:0;
  border-radius:999px;
  padding:0.65rem 1.4rem;
  background:var(--kcf-btn-grad);
  color:var(--kcf-btn-color);
  font-family:'DM Sans',sans-serif;
  font-weight:600;
  font-size:0.875rem;
  cursor:pointer;
  box-shadow:0 25px 50px var(--kcf-btn-shadow);
  transition:transform .2s ease, box-shadow .2s ease;
}

.kcf_button::after{
  content:"";
  position:absolute;
  inset:8px;
  border-radius:inherit;
  border:1px solid rgba(255,255,255,.25);
  opacity:.75;
  pointer-events:none;
}

.kcf_button:hover{transform:translateY(-2px);box-shadow:0 30px 60px var(--kcf-btn-shadow);}
.kcf_button:active{transform:translateY(1px);}
.kcf_button:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;}

.kcf_hint{
  font-size:0.75rem;
  color:var(--kcf-muted);
  letter-spacing:.02em;
}

.kcf_result{
  grid-column:1 / -1;
  min-height:1rem;
  font-size:0.8rem;
  color:var(--kcf-muted);
  padding:0.55rem 0.85rem;
  border-radius:10px;
  transition:all .3s ease;
}

.kcf_result.kcf_success{
  background:rgba(51,164,109,.15);
  border:1px solid rgba(51,164,109,.3);
  color:#1d6e47;
  font-weight:500;
}

.kcf_result.kcf_error{
  background:rgba(201,65,65,.15);
  border:1px solid rgba(201,65,65,.3);
  color:#a03535;
  font-weight:500;
}

.kcf_hp{
  position:absolute;
  left:-9999px;
  top:-9999px;
  height:1px;
  width:1px;
  overflow:hidden;
}

@media (max-width:720px){
  .kcf_wrap{padding:2rem 1.4rem;}
  .kcf_span2{grid-column:1 / -1;}
}

@media (prefers-reduced-motion:no-preference){
  .kcf_field,
  .kcf_button,
  .kcf_notice{
    transition:transform .3s ease, box-shadow .3s ease;
  }

  .kcf_field:hover{transform:translateY(-2px);}
}
