@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@500;600;700&family=Nunito:wght@300;400;600&display=swap");

/* --------------------------------------------------
   Global Reset & Base Styles
-------------------------------------------------- */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html,
body {
  height: 100%;
  font-size: 16px;
  background-color: #f8f9fa;
  color: #212529;
  font-family: "Nunito", sans-serif;
  line-height: 1.6;
}

/* Simple helpers */
.flex {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.text-center {
  text-align: center;
}

/* --------------------------------------------------
   Typography – Montserrat headings & key UI text
-------------------------------------------------- */
h1,
h2,
h3,
h4,
h5,
h6,
.btn,
.navbar-brand,
.card-title,
.modal-title {
  font-family: "Montserrat", sans-serif;
  font-weight: 600;
}

/* --------------------------------------------------
   Header & Footer
-------------------------------------------------- */
header {
  background-color: #343a40;
  color: #ffffff;
  padding: 1rem 0;
}

header h1 {
  margin: 0;
  font-size: 1.75rem;
  text-align: center;
}

footer {
  background-color: #343a40;
  color: #ffffff;
  text-align: center;
  padding: 1rem;
  position: fixed;
  width: 100%;
  bottom: 0;
}

/* --------------------------------------------------
   Forms – light card style (overrides only plain HTML,
   Bootstrap .form-control/.form-select still apply)
-------------------------------------------------- */
form {
  background-color: #ffffff;
  padding: 2rem;
  border-radius: 6px;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}

input,
select,
textarea {
  width: 100%;
  margin-bottom: 1rem;
  padding: 0.75rem;
  border: 1px solid #ccc;
  border-radius: 4px;
  font-size: 1rem;
  font-family: "Nunito", sans-serif;
}

/* --------------------------------------------------
   Alerts
-------------------------------------------------- */
.alert {
  padding: 1rem;
  margin-bottom: 1rem;
  border-radius: 4px;
  font-weight: 500;
  font-family: "Nunito", sans-serif;
}

.alert-success {
  background-color: #d4edda;
  color: #155724;
}

.alert-error,
.alert-danger {
  background-color: #f8d7da;
  color: #721c24;
}

.alert-info {
  background-color: #d1ecf1;
  color: #0c5460;
}

.alert-warning {
  background-color: #fff3cd;
  color: #856404;
}

/* --------------------------------------------------
   Custom Help / Brand Accent
-------------------------------------------------- */
.help-text,
.text-custom {
  color: cornflowerblue !important;
}

.border-help,
.border-custom {
  border: 2px solid cornflowerblue !important;
}

.btn-help,
.btn-custom {
  background-color: cornflowerblue !important;
  border: 1px solid cornflowerblue !important;
  color: #ffffff !important;
  font-family: "Montserrat", sans-serif;
}

.btn-help:hover,
.btn-custom:hover {
  background-color: #4169e1 !important;
  border-color: #4169e1 !important;
  color: #ffffff !important;
}

/* --------------------------------------------------
   GLOBAL MOBILE LAYOUT
   Make main content sections full width on phones
   WITHOUT using transforms (keeps <select> popups
   positioned correctly).
-------------------------------------------------- */
@media (max-width: 576.98px) {
  /* Let Bootstrap containers breathe but use full width */
  .container,
  .container-fluid {
    max-width: 100% !important;
    width: 100% !important;
    padding-left: 0.75rem !important;
    padding-right: 0.75rem !important;
  }

  /*
    Any main content wrapper using one of these classes
    will break out to 100vw and go edge-to-edge on mobile.
    Use on the primary card/shell for each view, e.g.:

      <div class="bg-light p-3 transactions-shell">…</div>
  */
  .full-width-mobile,
  .content-shell,
  .dashboard-shell,
  .invoice-shell,
  .invoices-shell,
  .transactions-shell,
  .help-shell,
  .mobile-shell,
  .mobile-edge {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(-50vw + 50%) !important;
    border-radius: 0 !important;
    border-left: none !important;
    border-right: none !important;
  }
}


/* Hide DELETE checkboxes in invoice item rows; we use a trash button instead */
#invoice-items-table input[type="checkbox"][name$="-DELETE"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

