/* Base */
:root{
  --brand:#6022A6;
  --card-bg:#f3f3f8;
}
body{
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji";
  margin:0; padding:16px; background:#fff; color:#222;
}
.page-title{ text-align:center; color:var(--brand); margin: 4px 0 16px; }

.section{
  margin-bottom: 30px;
  padding: 20px;
  border: 1px solid #ccc;
  border-radius: 8px;
  box-shadow: 0 0 10px rgba(0,0,0,.1);
  background-color: var(--card-bg) !important;
}
.section-title{ text-align:center; margin:0 0 20px; color:var(--brand); }

/* Tables and inputs */
table{ width:100%; border-collapse:collapse; }
th, td{ padding:10px; text-align:center; }
th{ background:#f4f4f4; }

input[type="number"], input[type="text"]{
  width:100%; padding:8px; box-sizing:border-box; text-align:center;
}

/* Layout for cost cards */
.responsive-grid{ display:grid; grid-template-columns: 1fr 1fr; gap:20px; }
.grid-col{ padding: 8px; min-width: 0; background:#fff; border:1px solid #e6e6e6; border-radius:8px; }
.grid-col h3{ margin:0 0 10px; color:#000; text-align:center; }
.row{ display:flex; flex-direction:column; gap:6px; padding:8px 0; text-align:left; }
.row label{ font-size:.95rem; }

/* Narrow tables */
.narrow{ margin-left:auto; margin-right:auto; width:25%; }

/* Responsive */
@media (max-width: 1024px){ .narrow{ width:40%; } }
@media (max-width: 768px){
  .responsive-grid{ grid-template-columns: 1fr; }
  .section{ padding:10px; }
  th, td{ padding:5px; }
  input[type="number"], input[type="text"]{ padding:6px; }
  .narrow{ width:60%; }
}
@media (max-width: 480px){
  .section-title{ font-size:1.1em; }
  th, td{ padding:3px; }
  input[type="number"], input[type="text"]{ padding:4px; }
  .narrow{ width:90%; }
}
