/* ==========================================================================
   Neyra Calculators — Modern Redesign
   Drop-in replacement for calc-style.css
   ========================================================================== */

/* ---------- Foundations ---------- */
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&family=JetBrains+Mono:wght@400;500&display=swap');

:root {
  --neyra-red: #D72638;
  --neyra-red-dark: #B01E2E;
  --neyra-red-light: #FDEAEC;
  --blue: #1B7FBF;
  --blue-dark: #145F8F;
  --blue-light: #E8F4FC;
  --surface: #FFFFFF;
  --surface-raised: #FAFBFC;
  --surface-muted: #F3F4F6;
  --border: #E2E5EA;
  --border-light: #EEF0F3;
  --text-primary: #1A1D23;
  --text-secondary: #5A6170;
  --text-muted: #8C92A0;
  --shadow-sm: 0 1px 2px rgba(0,0,0,.04), 0 1px 3px rgba(0,0,0,.06);
  --shadow-md: 0 2px 4px rgba(0,0,0,.04), 0 4px 12px rgba(0,0,0,.06);
  --shadow-lg: 0 4px 8px rgba(0,0,0,.04), 0 8px 24px rgba(0,0,0,.08);
  --shadow-focus: 0 0 0 3px rgba(27,127,191,.25);
  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 14px;
  --radius-xl: 18px;
  --transition: 180ms cubic-bezier(.4,0,.2,1);
  --font: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-mono: 'JetBrains Mono', 'SF Mono', 'Fira Code', monospace;
}

*, *::before, *::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  font-family: var(--font);
  font-size: 15px;
  line-height: 1.6;
  color: var(--text-primary);
  background: var(--surface-muted);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

img { border: none; outline: none; max-width: 100%; }
a { color: var(--blue); text-decoration: none; transition: color var(--transition); }
a:hover { color: var(--blue-dark); }


/* ---------- Layout Containers ---------- */
#content-container-custom {
  max-width: 960px;
  margin: 0 auto;
  padding: 32px 20px 60px;
}

#content-custom {
  min-height: 200px;
  position: relative;
}

.clearfix::after {
  content: '';
  display: table;
  clear: both;
}


/* ---------- Tab Navigation ---------- */
#tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  list-style: none;
  padding: 0 !important;
  margin: 0 0 28px 0 !important;
  background: none !important;
  height: auto !important;
  width: 100% !important;
  border-bottom: 2px solid var(--border);
  padding-bottom: 0 !important;
}

#tabs .tab {
  display: block;
  float: none;
  position: relative;
}

#tabs .tab a {
  display: inline-block;
  padding: 10px 18px;
  font-family: var(--font);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: .02em;
  color: var(--text-secondary);
  text-decoration: none;
  border: none;
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  border-radius: var(--radius-sm) var(--radius-sm) 0 0;
  transition: all var(--transition);
  line-height: 1.4;
}

#tabs .tab a:hover {
  color: var(--text-primary);
  background: var(--surface-muted);
}

#tabs .tab a:active,
#tabs .tabselected a {
  color: var(--neyra-red);
  border-bottom-color: var(--neyra-red);
  background: transparent;
}

/* Sub-level tab dropdowns */
#tabs > li { position: relative; float: none; display: inline-block; }
#tabs ul {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 50;
  min-width: 200px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-lg);
  padding: 6px !important;
  margin: 6px 0 0 0 !important;
}
#tabs > li:hover ul { display: block; }
#tabs ul li { display: block; width: 100%; }
#tabs ul li a {
  display: block !important;
  padding: 8px 14px !important;
  font-size: 13px !important;
  color: var(--text-primary) !important;
  border: none !important;
  border-bottom: none !important;
  border-radius: var(--radius-sm) !important;
  margin-bottom: 0 !important;
  background: transparent !important;
  line-height: 1.4 !important;
}
#tabs ul li a:hover {
  background: var(--surface-muted) !important;
  color: var(--neyra-red) !important;
}


/* ---------- Calculator Area ---------- */
#calculators {
  clear: both;
  padding: 0;
  font-family: var(--font);
  font-size: 14px;
  color: var(--text-primary);
}

#calculators h1 {
  font-size: 24px;
  font-weight: 700;
  letter-spacing: -.02em;
  margin-bottom: 24px;
  color: var(--text-primary);
}

#calculators h2 {
  font-size: 16px;
  font-weight: 600;
  padding: 12px 0;
}

#calculators h2 a {
  color: var(--text-primary);
  padding: 14px 20px;
  display: block;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  transition: all var(--transition);
  box-shadow: var(--shadow-sm);
}

#calculators h2 a:hover {
  border-color: var(--neyra-red);
  color: var(--neyra-red);
  box-shadow: var(--shadow-md);
  transform: translateY(-1px);
}


/* ---------- Two-Column Layout ---------- */
#calculators .half {
  width: 47% !important;
}
#calculators .half.left { float: left !important; margin-right: 3% !important; }
#calculators .half.last { float: right !important; margin-right: 0; }


/* ---------- Tables as Cards ---------- */
#calculators table {
  width: 100%;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg) !important;
  overflow: hidden;
  margin-bottom: 24px;
  box-shadow: var(--shadow-sm);
  border-collapse: separate;
  border-spacing: 0;
  background: var(--surface);
}

#calculators thead td {
  background: var(--text-primary) !important;
  color: #fff;
  font-family: var(--font);
  font-weight: 600;
  font-size: 13px;
  letter-spacing: .04em;
  text-transform: uppercase;
  padding: 14px 18px;
  border: none !important;
  text-shadow: none;
  text-align: left;
}

#calculators thead:first-child td {
  border-radius: var(--radius-lg) var(--radius-lg) 0 0 !important;
}

#calculators tr.secondary-heading td {
  background: var(--text-secondary) !important;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: .03em;
  text-transform: uppercase;
  padding: 10px 12px;
}

#calculators .red thead td {
  background: var(--neyra-red) !important;
}

#calculators tbody td {
  padding: 12px 18px;
  border-left: none;
  border-right: none;
  border-bottom: 1px solid var(--border-light);
  background: var(--surface);
  height: auto;
  vertical-align: middle;
}

#calculators tbody tr:last-child td {
  border-bottom: none;
}

#calculators .red tbody td {
  background: var(--surface);
}

#calculators td.grey {
  background: var(--surface-muted) !important;
}
#calculators td.grey2 {
  background: var(--surface-raised) !important;
}
#calculators td.black {
  background: var(--text-primary) !important;
  color: #fff !important;
}
#calculators td.black label {
  color: #fff !important;
}
#calculators td.black strong {
  color: #fff !important;
}
#calculators td.last {
  border-radius: 0 0 var(--radius-lg) var(--radius-lg) !important;
}


/* ---------- Labels ---------- */
#calculators label {
  display: block;
  float: left;
  width: 160px;
  margin-right: 8px;
  font-size: 13px;
  font-weight: 500;
  color: var(--text-secondary);
  line-height: 36px;
}

#calculators label strong {
  color: var(--text-primary);
  font-weight: 600;
}

#calculators span strong {
  font-family: var(--font-mono);
  font-size: 14px;
  font-weight: 500;
  color: var(--text-primary);
}


/* ---------- Form Inputs ---------- */
#calculators input[type="text"],
#calculators .text-input {
  font-family: var(--font);
  font-size: 14px;
  color: var(--text-primary);
  background: var(--surface);
  border: 1.5px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 7px 12px;
  width: 80px !important;
  height: 36px;
  transition: all var(--transition);
  outline: none;
  -webkit-appearance: none;
}

#calculators input[type="text"]:hover {
  border-color: #C5CAD3;
}

#calculators input[type="text"]:focus {
  border-color: var(--blue);
  box-shadow: var(--shadow-focus);
}

#calculators select {
  font-family: var(--font);
  font-size: 14px;
  color: var(--text-primary);
  background: var(--surface);
  border: 1.5px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 7px 32px 7px 12px;
  height: 36px;
  width: auto !important;
  min-width: 80px;
  outline: none;
  cursor: pointer;
  transition: all var(--transition);
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L5 5L9 1' stroke='%235A6170' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
}

#calculators select:hover {
  border-color: #C5CAD3;
}

#calculators select:focus {
  border-color: var(--blue);
  box-shadow: var(--shadow-focus);
}

#calculators select.select-big {
  min-width: 160px;
  width: auto !important;
}

/* Project name input — wider */
#calculators input[type="text"][style*="width: 250px"] {
  width: 260px !important;
}


/* ---------- Buttons ---------- */
#calculators input[type="button"],
#calculators .print {
  font-family: var(--font);
  font-size: 14px;
  font-weight: 600;
  color: #fff;
  background: var(--blue);
  border: none;
  border-radius: var(--radius-sm);
  padding: 9px 28px;
  cursor: pointer;
  transition: all var(--transition);
  letter-spacing: .01em;
}

#calculators input[type="button"]:hover,
#calculators .print:hover {
  background: var(--blue-dark);
  box-shadow: var(--shadow-md);
  transform: translateY(-1px);
}

#calculators input[type="button"]:active,
#calculators .print:active {
  transform: translateY(0);
  box-shadow: none;
}


/* ---------- Result values — monospace for numbers ---------- */
#calculators span span[id] {
  font-family: var(--font-mono);
  font-weight: 500;
  font-size: 14px;
}


/* ---------- Cost breakdown rows ---------- */
#calculators td label[style*="text-align: center"] {
  text-align: center !important;
  font-variant-numeric: tabular-nums;
}


/* ---------- Popup / Terms of Service ---------- */
#popup_box, #popup_box2, #popup_box3,
#popup_box4, #popup_box5, #popup_box6, #popup_box7 {
  display: none;
  position: fixed !important;
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -50%);
  width: 540px !important;
  max-width: 92vw;
  max-height: 85vh;
  overflow-y: auto;
  background: var(--surface);
  z-index: 1000;
  border: none !important;
  border-radius: var(--radius-xl);
  padding: 32px !important;
  font-size: 14px !important;
  line-height: 1.65;
  color: var(--text-secondary);
  box-shadow: 0 20px 60px rgba(0,0,0,.15), 0 0 0 1px rgba(0,0,0,.05) !important;
  -moz-box-shadow: none;
  -webkit-box-shadow: none;
}

#popup_box h1, #popup_box2 h1, #popup_box3 h1,
#popup_box4 h1, #popup_box5 h1, #popup_box6 h1, #popup_box7 h1 {
  font-family: var(--font);
  font-size: 20px;
  font-weight: 700;
  color: var(--text-primary);
  margin-bottom: 16px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--border);
}

#popup_box a[style*="font-size: 16px"],
#popup_box2 a[style*="font-size: 16px"],
#popup_box3 a[style*="font-size: 16px"],
#popup_box4 a[style*="font-size: 16px"],
#popup_box5 a[style*="font-size: 16px"],
#popup_box6 a[style*="font-size: 16px"] {
  color: var(--blue) !important;
  font-size: 14px !important;
  font-weight: 500;
  text-decoration: underline;
}

/* Close link */
#popupBoxClose, #popupBoxClose2, #popupBoxClose3,
#popupBoxClose4, #popupBoxClose5, #popupBoxClose6, #popupBoxClose7 {
  position: absolute;
  top: 16px;
  right: 18px;
  font-size: 13px !important;
  font-weight: 600;
  color: var(--text-muted);
  cursor: pointer;
  padding: 4px 8px;
  border-radius: var(--radius-sm);
  transition: all var(--transition);
  line-height: 1;
}

#popupBoxClose:hover, #popupBoxClose2:hover, #popupBoxClose3:hover,
#popupBoxClose4:hover, #popupBoxClose5:hover, #popupBoxClose6:hover, #popupBoxClose7:hover {
  background: var(--surface-muted);
  color: var(--text-primary);
}

/* Popup buttons — Accept / Decline */
#popup_box input[type="button"],
#popup_box2 input[type="button"],
#popup_box3 input[type="button"],
#popup_box4 input[type="button"],
#popup_box5 input[type="button"],
#popup_box6 input[type="button"],
#popup_box7 input[type="button"] {
  font-family: var(--font) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  border: none !important;
  border-radius: var(--radius-sm) !important;
  padding: 10px 24px !important;
  cursor: pointer;
  transition: all var(--transition);
  margin-left: 8px;
}

#popup_box input[value="Accept"],
#popup_box2 input[value="Accept"],
#popup_box3 input[value="Accept"],
#popup_box4 input[value="Accept"],
#popup_box5 input[value="Accept"],
#popup_box6 input[value="Accept"] {
  background: var(--neyra-red) !important;
  color: #fff !important;
}

#popup_box input[value="Accept"]:hover,
#popup_box2 input[value="Accept"]:hover,
#popup_box3 input[value="Accept"]:hover,
#popup_box4 input[value="Accept"]:hover,
#popup_box5 input[value="Accept"]:hover,
#popup_box6 input[value="Accept"]:hover {
  background: var(--neyra-red-dark) !important;
  box-shadow: var(--shadow-md);
}

#popup_box input[value="Decline"],
#popup_box2 input[value="Decline"],
#popup_box3 input[value="Decline"],
#popup_box4 input[value="Decline"],
#popup_box5 input[value="Decline"],
#popup_box6 input[value="Decline"] {
  background: var(--surface-muted) !important;
  color: var(--text-secondary) !important;
}

#popup_box input[value="Decline"]:hover,
#popup_box2 input[value="Decline"]:hover,
#popup_box3 input[value="Decline"]:hover,
#popup_box4 input[value="Decline"]:hover,
#popup_box5 input[value="Decline"]:hover,
#popup_box6 input[value="Decline"]:hover {
  background: var(--border) !important;
  color: var(--text-primary) !important;
}

/* Backdrop for popups — add via JS or use this overlay trick */
#popup_box::backdrop,
#popup_box2::backdrop,
#popup_box3::backdrop {
  background: rgba(0,0,0,.4);
}


/* ---------- Diagram / Tank Tables ---------- */
#vertical-graph,
#horizontal-graph {
  font-size: 13px;
}

#vertical-graph td,
#horizontal-graph td {
  text-align: center;
  padding: 6px 8px;
  font-family: var(--font-mono);
  font-size: 12px;
  font-variant-numeric: tabular-nums;
}

#vertical-graph thead td,
#horizontal-graph thead td {
  font-family: var(--font);
}

#vertical-graph tbody tr:hover td,
#horizontal-graph tbody tr:hover td {
  background: var(--blue-light);
}


/* ---------- Login Box (if re-enabled) ---------- */
#login {
  float: right;
  width: 200px;
  position: relative;
  font-family: var(--font);
}

#login-button {
  display: block;
  font-size: 13px;
  font-weight: 600;
  padding: 8px 14px;
  color: var(--text-primary);
  background: var(--surface);
  border: 1.5px solid var(--border);
  border-radius: var(--radius-sm);
  text-decoration: none;
  transition: all var(--transition);
}

#login-button:hover {
  border-color: var(--blue);
}

#login-box {
  display: none;
  position: absolute;
  top: 100%;
  right: 0;
  width: 280px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-lg);
  padding: 16px;
  z-index: 100;
}

#login-box h3 {
  font-size: 16px;
  font-weight: 600;
  text-align: center;
  margin-bottom: 12px;
}

#login-box label {
  display: block;
  font-size: 12px;
  font-weight: 500;
  color: var(--text-secondary);
  margin-bottom: 4px;
  padding-left: 2px;
}

#login-box input[type="text"],
#login-box input[type="password"] {
  width: 100%;
  padding: 8px 12px;
  border: 1.5px solid var(--border);
  border-radius: var(--radius-sm);
  font-size: 14px;
  margin-bottom: 10px;
  transition: border-color var(--transition);
}

#login-box input[type="text"]:focus,
#login-box input[type="password"]:focus {
  border-color: var(--blue);
  outline: none;
  box-shadow: var(--shadow-focus);
}

#login-box input[type="submit"] {
  width: 100%;
  padding: 10px;
  background: var(--neyra-red);
  color: #fff;
  border: none;
  border-radius: var(--radius-sm);
  font-family: var(--font);
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: background var(--transition);
}

#login-box input[type="submit"]:hover {
  background: var(--neyra-red-dark);
}


/* ---------- Print area styling ---------- */
@media print {
  #tabs, .print, #login { display: none !important; }
  #calculators table { box-shadow: none; border: 1px solid #ccc; }
  body { background: #fff; }
}


/* ---------- Responsive ---------- */
@media (max-width: 860px) {
  #content-container-custom {
    padding: 20px 16px 40px;
  }

  #calculators .half,
  #calculators .half.left,
  #calculators .half.last {
    width: 100% !important;
    float: none !important;
    margin-right: 0;
  }

  #calculators label {
    width: 140px;
  }

  #tabs {
    flex-direction: column;
    border-bottom: none;
    gap: 2px;
  }

  #tabs .tab a {
    display: block;
    border-bottom: none;
    border-left: 2px solid transparent;
    border-radius: var(--radius-sm);
    margin-bottom: 0;
  }

  #tabs .tab a:hover {
    border-left-color: var(--neyra-red);
  }

  #popup_box, #popup_box2, #popup_box3,
  #popup_box4, #popup_box5, #popup_box6 {
    width: 92vw !important;
    padding: 24px !important;
  }
}

@media (max-width: 520px) {
  #calculators label {
    float: none;
    width: 100%;
    margin-bottom: 4px;
    line-height: 1.4;
  }

  #calculators input[type="text"],
  #calculators select {
    width: 100% !important;
  }

  #calculators tbody td {
    padding: 10px 14px;
  }
}


/* ---------- Subtle entrance animation ---------- */
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(12px); }
  to   { opacity: 1; transform: translateY(0); }
}

#calculators > .clearfix {
  animation: fadeUp .4s ease-out both;
}

#calculators table {
  animation: fadeUp .45s ease-out both;
}

#calculators .half.left table  { animation-delay: .05s; }
#calculators .half.last table  { animation-delay: .12s; }