/* =========================================================
   KeySafe – Checklist Tool UI (match keysafe.tn)
   File: keysafe-checklist.css
   ========================================================= */

/* Theme tokens (approx from your site screenshot) */
:root{
  --ks-purple-900:#302888; /* main hero */
  --ks-purple-850:#342a8c;
  --ks-purple-800:#382890; /* gradient second tone */
  --ks-purple-200:#e9e8f6; /* light border tint */
  --ks-green:#207838;      /* CTA green */
  --ks-green-700:#1b6731;
  --ks-text:#0f172a;
  --ks-muted:#4b5563;
  --ks-border:#e5e7eb;
  --ks-bg:#ffffff;
  --ks-soft:#f7f7fb;
  --ks-radius:14px;
  --ks-shadow: 0 10px 26px rgba(16, 24, 40, 0.10);
  --ks-shadow-soft: 0 6px 16px rgba(16, 24, 40, 0.08);
}

/* Wrapper */
.keysafe-checklist-wrap{
  max-width: 980px;
  margin: 24px auto;
  border-radius: var(--ks-radius);
  overflow: hidden;
  background: var(--ks-bg);
  box-shadow: var(--ks-shadow);
  border: 1px solid rgba(48,40,136,0.10);
}

/* Tool Header (hero-like) */
.keysafe-checklist-wrap > h2{
  margin: 0;
  padding: 26px 22px;
  color: #fff;
  font-size: 22px;
  font-weight: 800;
  letter-spacing: .2px;
  background: linear-gradient(135deg, var(--ks-purple-900), var(--ks-purple-800));
  position: relative;
}
.keysafe-checklist-wrap > h2::after{
  content:"";
  position:absolute;
  left:0; right:0; bottom:0;
  height: 4px;
  background: linear-gradient(90deg, var(--ks-green), rgba(255,255,255,0));
  opacity: .85;
}

/* Form */
.keysafe-form{
  padding: 18px 22px 20px;
  background: var(--ks-bg);
  display: grid;
  gap: 14px;
}

/* Section titles inside form */
.keysafe-form h3{
  margin: 10px 0 4px;
  font-size: 14px;
  font-weight: 800;
  color: var(--ks-purple-900);
  letter-spacing: .2px;
}

/* Grid */
.keysafe-grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

/* Labels */
.keysafe-form label{
  display: block;
  margin: 0 0 6px;
  color: var(--ks-text);
  font-size: 13px;
  font-weight: 700;
}

/* Inputs */
.keysafe-form input,
.keysafe-form select{
  width: 100%;
  padding: 11px 12px;
  border-radius: 12px;
  border: 1px solid var(--ks-border);
  background: #fff;
  color: var(--ks-text);
  outline: none;
  box-shadow: 0 1px 0 rgba(16,24,40,0.02);
  transition: border-color .15s ease, box-shadow .15s ease, transform .05s ease;
}
.keysafe-form input::placeholder{
  color: #9ca3af;
}

/* Focus */
.keysafe-form input:focus,
.keysafe-form select:focus{
  border-color: rgba(48,40,136,0.45);
  box-shadow: 0 0 0 4px rgba(48,40,136,0.10);
}

/* Buttons */
.keysafe-form button,
.keysafe-actions button{
  appearance: none;
  border: none;
  border-radius: 999px;
  padding: 11px 16px;
  font-weight: 800;
  cursor: pointer;
  transition: transform .05s ease, box-shadow .15s ease, background .15s ease;
  box-shadow: 0 10px 18px rgba(32,120,56,0.18);
  background: var(--ks-green);
  color: #fff;
}
.keysafe-form button:hover,
.keysafe-actions button:hover{
  background: var(--ks-green-700);
}
.keysafe-form button:active,
.keysafe-actions button:active{
  transform: translateY(1px);
}

/* Result block */
.keysafe-result{
  padding: 0 22px 22px;
  background: var(--ks-bg);
}
.keysafe-actions{
  display: flex;
  justify-content: flex-end;
  padding: 8px 0 12px;
}

/* Preview card */
.keysafe-preview{
  background: var(--ks-soft);
  border: 1px solid rgba(48,40,136,0.10);
  border-radius: var(--ks-radius);
  padding: 18px 18px 14px;
  box-shadow: var(--ks-shadow-soft);
}

/* Preview typography */
.keysafe-preview h1{
  font-size: 18px;
  margin: 0 0 6px;
  color: var(--ks-purple-900);
  font-weight: 900;
}
.keysafe-preview h2{
  font-size: 13px;
  margin: 0 0 10px;
  color: var(--ks-muted);
  font-weight: 600;
}
.keysafe-preview h3{
  font-size: 14px;
  margin: 14px 0 8px;
  color: var(--ks-purple-900);
  font-weight: 900;
}
.keysafe-preview ul{
  margin: 0 0 10px 18px;
  padding: 0;
}
.keysafe-preview li{
  margin: 0 0 6px;
  color: var(--ks-text);
  line-height: 1.35;
}
.keysafe-preview p{
  margin: 8px 0;
  color: var(--ks-text);
}
.keysafe-preview .ctx{
  font-size: 12px;
  color: var(--ks-muted);
  margin-top: 4px;
}

/* Error */
.keysafe-error{
  margin: 10px 0 0;
  padding: 10px 12px;
  border-radius: 12px;
  background: #fff1f2;
  border: 1px solid #fecdd3;
  color: #9f1239;
  font-weight: 700;
}

/* Mobile */
@media (max-width: 860px){
  .keysafe-grid{ grid-template-columns: 1fr; }
  .keysafe-checklist-wrap > h2{ font-size: 18px; padding: 22px 18px; }
  .keysafe-form{ padding: 16px 18px 18px; }
  .keysafe-result{ padding: 0 18px 18px; }
}
