/* ===== Shared Tool Pages Styling ===== */
.tool-section{ max-width: 780px; margin: 0 auto; }
.tool-intro{ color: var(--ink-soft); max-width: 560px; margin: 0 auto 24px; }
.tool-disclaimer{
  background: rgba(201,164,92,0.14);
  border: 1px solid rgba(201,164,92,0.4);
  border-radius: var(--radius);
  padding: 12px 16px;
  font-size: 0.85rem;
  color: var(--navy-deep);
  margin-bottom: 26px;
}
.tool-search-input{
  width: 100%;
  padding: 14px 18px;
  border: 1px solid rgba(27,42,65,0.2);
  border-radius: var(--radius);
  font-size: 1rem;
  margin-bottom: 26px;
}

/* IPC/BNS result cards */
.ipc-results{ display:flex; flex-direction:column; gap: 14px; }
.ipc-card{
  background: var(--paper);
  border: 1px solid rgba(27,42,65,0.12);
  border-left: 4px solid var(--brass);
  border-radius: var(--radius);
  padding: 16px 20px;
}
.ipc-card-nums{ display:flex; align-items:center; gap:10px; margin-bottom: 8px; font-family: var(--mono); }
.ipc-old{ background: rgba(139,30,43,0.1); color: var(--seal-red); padding: 3px 10px; border-radius: 999px; font-size: 0.85rem; font-weight:700; }
.ipc-arrow{ color: var(--ink-soft); }
.ipc-new{ background: rgba(201,164,92,0.2); color: var(--navy-deep); padding: 3px 10px; border-radius: 999px; font-size: 0.85rem; font-weight:700; }
.ipc-offence{ font-weight:700; color: var(--navy); margin: 0 0 6px; }
.ipc-hindi{ font-weight:400; color: var(--ink-soft); }
.ipc-desc{ margin:0; color: var(--ink-soft); font-size: 0.92rem; }

.tool-cta-section{
  text-align:center;
  padding: 40px 20px;
  background: var(--paper);
}
.tool-cta-section p{ margin-bottom: 16px; font-weight:600; color: var(--navy); }

/* ===== Generator Forms (RTI / Legal Notice) ===== */
.generator-form{
  display:flex;
  flex-direction:column;
  gap: 6px;
  background: var(--paper);
  border: 1px solid rgba(27,42,65,0.12);
  border-top: 3px solid var(--brass);
  border-radius: var(--radius);
  padding: 28px 26px;
  margin-bottom: 30px;
}
.generator-form label{ font-size: 0.85rem; font-weight:600; color: var(--navy); margin-top: 14px; }
.generator-form input[type="text"],
.generator-form input[type="number"],
.generator-form input[type="date"],
.generator-form textarea,
.generator-form select{
  padding: 11px 14px;
  border: 1px solid rgba(27,42,65,0.2);
  border-radius: var(--radius);
  font-family: var(--sans);
  font-size: 0.92rem;
}
.generator-form textarea{ resize: vertical; }
.generator-form-actions{ display:flex; gap:12px; margin-top: 22px; flex-wrap:wrap; }
.generator-form-actions button{
  padding: 12px 22px;
  border-radius: var(--radius);
  border:none;
  font-weight:700;
  font-size: 0.92rem;
  cursor:pointer;
  background: var(--navy);
  color: var(--brass);
}
.generator-form-actions button.secondary{ background: #fff; color: var(--navy); border: 1px solid rgba(27,42,65,0.25); }
.generator-form-actions button:hover{ opacity: 0.92; }

.generator-preview{
  background: #fff;
  border: 1px solid rgba(27,42,65,0.15);
  border-radius: var(--radius);
  padding: 30px 34px;
  font-family: 'Space Mono', monospace;
  font-size: 0.88rem;
  line-height: 1.8;
  white-space: pre-wrap;
  color: var(--ink);
  margin-bottom: 20px;
}
.checkbox-row{ display:flex; align-items:center; gap:8px; margin-top:14px; font-weight:600; cursor:pointer; }
.field-hint{ font-size: 0.78rem; color: var(--ink-soft); margin: 2px 0 0; font-weight:400; }

/* ===== Print handling for RTI / Legal Notice generators ===== */
#printArea{ display: none; }
@media print{
  .app-shell{ display: none !important; }
  #printArea{
    display: block !important;
    white-space: pre-wrap;
    padding: 30px;
    font-size: 13px;
    font-family: 'Space Mono', monospace;
    line-height: 1.8;
  }
}

/* ===== Checklists Accordion ===== */
.checklist-accordion{ display:flex; flex-direction:column; gap: 14px; }
.checklist-item-group{
  background: var(--paper);
  border: 1px solid rgba(27,42,65,0.15);
  border-radius: var(--radius);
  overflow:hidden;
}
.checklist-header{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding: 16px 20px;
  background: none;
  border: none;
  cursor:pointer;
  font-family: var(--serif);
  font-size: 1.05rem;
  font-weight:600;
  color: var(--navy);
  text-align:left;
}
.checklist-toggle-icon{ transition: transform 0.25s ease; color: var(--brass); }
.checklist-item-group.open .checklist-toggle-icon{ transform: rotate(180deg); }
.checklist-body{
  max-height: 0;
  overflow:hidden;
  transition: max-height 0.3s ease;
  padding: 0 20px;
}
.checklist-item-group.open .checklist-body{
  max-height: 900px;
  padding: 0 20px 20px;
}
.checklist-list{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:10px; }
.checklist-list li label{
  display:flex;
  align-items:flex-start;
  gap: 10px;
  cursor:pointer;
  font-size: 0.92rem;
  color: var(--ink);
}
.checklist-list li input{ margin-top: 3px; width:17px; height:17px; accent-color: var(--brass); flex-shrink:0; }
.checklist-list li.checked span{ text-decoration: line-through; color: var(--ink-soft); }
.checklist-actions{
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  gap:10px;
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px solid rgba(27,42,65,0.1);
}
.checklist-print-btn{
  padding: 8px 16px;
  border-radius: var(--radius);
  border: 1px solid rgba(27,42,65,0.25);
  background: #fff;
  color: var(--navy);
  font-size: 0.82rem;
  font-weight:600;
  cursor:pointer;
}
.checklist-link{ font-size: 0.85rem; color: var(--seal-red); font-weight:600; }

/* ===== FAQ Page ===== */
.faq-category-title{
  font-family: var(--serif);
  font-size: 1rem;
  font-weight:600;
  color: var(--brass);
  margin: 22px 0 4px;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
.faq-category-title:first-child{ margin-top: 0; }
.faq-answer{ margin:0 0 20px; color: var(--ink-soft); font-size:0.92rem; line-height:1.7; }
.faq-answer a{ color: var(--seal-red); text-decoration:underline; }
