/*
 * Cloud GST design tokens, layered over the Limitless theme.
 * Colours from the UI/UX standard: navy #172554, action blue #2563EB,
 * success teal #0D9488, background #F1F5F9. Radius 8-12px, flat cards.
 */
:root {
  --cg-navy: #172554;
  --cg-navy-2: #1e3a8a;
  --cg-blue: #2563eb;
  --cg-blue-hover: #1d4ed8;
  --cg-teal: #0d9488;
  --cg-bg: #f1f5f9;
  --cg-border: #e2e8f0;
  --cg-radius: 10px;

  --primary: var(--cg-blue);
  --primary-rgb: 37, 99, 235;
  --link-color: var(--cg-blue);
  --link-hover-color: var(--cg-blue-hover);
  --success: var(--cg-teal);
  --success-rgb: 13, 148, 136;
  --border-radius: 8px;
  --border-radius-lg: var(--cg-radius);
  --card-border-radius: var(--cg-radius);
}

:root:not([data-color-theme="dark"]) {
  --body-bg: var(--cg-bg);
}

body { background-color: var(--body-bg); }

/* Buttons */
.btn-primary {
  --btn-bg: var(--cg-blue);
  --btn-border-color: var(--cg-blue);
  --btn-hover-bg: var(--cg-blue-hover);
  --btn-hover-border-color: var(--cg-blue-hover);
  --btn-active-bg: var(--cg-blue-hover);
  --btn-active-border-color: var(--cg-blue-hover);
  --btn-disabled-bg: var(--cg-blue);
  --btn-disabled-border-color: var(--cg-blue);
  --btn-focus-shadow-rgb: 37, 99, 235;
}
.btn-success {
  --btn-bg: var(--cg-teal);
  --btn-border-color: var(--cg-teal);
  --btn-hover-bg: #0f766e;
  --btn-hover-border-color: #0f766e;
  --btn-active-bg: #0f766e;
  --btn-active-border-color: #0f766e;
}

/* Cards: white, subtle border, no shadow */
.card {
  --card-border-color: var(--cg-border);
  --card-box-shadow: none;
  box-shadow: none;
}

/* Top bar */
.cg-topbar {
  background: var(--cg-navy);
  color: #fff;
  --navbar-color: rgba(255, 255, 255, 0.85);
  --navbar-hover-color: #fff;
  --navbar-active-color: #fff;
}
.cg-topbar .navbar-nav-link,
.cg-topbar .navbar-brand a { color: #fff; }
.cg-brand-name { font-weight: 700; font-size: 1.15rem; letter-spacing: 0.01em; }

/* Sidebar */
.cg-sidebar {
  --sidebar-bg: #fff;
  --sidebar-border-color: var(--cg-border);
  --sidebar-box-shadow: none;
}
.cg-sidebar .nav-sidebar .nav-link { border-radius: 8px; margin: 1px 0.5rem; }
.cg-sidebar .nav-sidebar .nav-link.active {
  background: rgba(37, 99, 235, 0.10);
  color: var(--cg-blue);
  font-weight: 600;
}
.cg-sidebar .nav-group-sub .nav-link { padding-left: 3.25rem; }

/* Breadcrumb and page messages */
.cg-breadcrumb { font-size: 0.8125rem; margin-bottom: 0.75rem; }
.cg-breadcrumb .breadcrumb { margin-bottom: 0; }
.cg-messages .alert { border-radius: var(--cg-radius); }

/* Tables: money right-aligned when marked */
.text-money { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }

/* 16px side gutter on phones */
@media (max-width: 767.98px) {
  .content { padding-left: 1rem; padding-right: 1rem; }
}

/* Forms: inline errors, required marks */
.invalid-feedback:empty { display: none !important; }
.cg-form-section { border: 1px solid var(--cg-border); border-radius: var(--cg-radius); padding: 1rem 1.25rem 0.25rem; margin-bottom: 1rem; background: var(--card-bg, #fff); }
.cg-form-section > h6 { font-weight: 600; margin-bottom: 0.75rem; }
.cg-form-actions { display: flex; gap: 0.5rem; justify-content: flex-end; align-items: center; flex-wrap: wrap; }

/* List page header */
.cg-page-header { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: flex-start; justify-content: space-between; margin-bottom: 1rem; }
.cg-page-header h1 { font-size: 1.375rem; font-weight: 600; margin: 0; }
.cg-page-header .cg-hint { color: var(--body-color-secondary, #64748b); margin: 0.125rem 0 0; font-size: 0.875rem; }

/* Dashboard: stat tiles */
.cg-stat { transition: border-color .15s; }
.cg-stat:hover { border-color: var(--cg-blue); }
.cg-stat-label { font-size: 0.8125rem; font-weight: 600; color: var(--body-color-secondary, #64748b); text-transform: uppercase; letter-spacing: .03em; }
.cg-stat-value { font-size: 1.5rem; font-weight: 700; margin: 0.25rem 0; font-variant-numeric: tabular-nums; }
.cg-stat-note { font-size: 0.8125rem; color: var(--body-color-secondary, #64748b); }

/* Dashboard: grouped bar chart (sales blue, purchases teal) */
.cg-legend { display: flex; gap: 1rem; font-size: 0.8125rem; color: var(--body-color-secondary, #64748b); }
.cg-swatch { display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin-right: 0.375rem; vertical-align: -1px; }
.cg-swatch-sales, .cg-bar-sales { background: var(--cg-blue); }
.cg-swatch-purchases, .cg-bar-purchases { background: var(--cg-teal); }
.cg-chart { display: flex; gap: 0.5rem; height: 220px; }
.cg-chart-scale { display: flex; flex-direction: column; justify-content: space-between; font-size: 0.75rem; color: var(--body-color-secondary, #64748b); padding-bottom: 1.5rem; white-space: nowrap; }
.cg-chart-plot { flex: 1; display: flex; gap: 0.25rem; min-width: 0; }
.cg-chart-month { flex: 1; display: flex; flex-direction: column; min-width: 0; }
.cg-chart-bars { flex: 1; display: flex; align-items: flex-end; justify-content: center; gap: 2px; border-bottom: 1px solid var(--cg-border); }
.cg-bar { width: min(18px, 40%); border-radius: 4px 4px 0 0; min-height: 0; }
.cg-bar:hover { opacity: .8; }
.cg-chart-label { font-size: 0.75rem; text-align: center; color: var(--body-color-secondary, #64748b); padding-top: 0.375rem; height: 1.5rem; white-space: nowrap; overflow: hidden; }

/* Dashboard: GST summary */
.cg-gst-list > div { display: flex; justify-content: space-between; padding: 0.5rem 0; border-bottom: 1px solid var(--cg-border); }
.cg-gst-list dt { font-weight: 400; }
.cg-gst-list dd { margin: 0; }
.cg-gst-total { border-bottom: 0 !important; font-weight: 700; }
.cg-gst-total dt { font-weight: 700; }

/* Document forms (invoice): customer card, item grid, sticky action bar */
.cg-party-card { border: 1px solid var(--cg-border); border-radius: 0.5rem; padding: 0.75rem 1rem; background: var(--cg-surface, #fff); }
.cg-items td, .cg-items th { vertical-align: top; }
.cg-items .js-amount, .cg-items .js-gst, .cg-items .js-hsn { padding-top: 0.6rem; }
.cg-action-bar { position: sticky; bottom: 0; z-index: 5; display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center;
  padding: 0.75rem 1rem; margin: 0 -1rem; background: var(--cg-bg, #F1F5F9); border-top: 1px solid var(--cg-border); }
.cg-gst-list .cg-gst-total { font-weight: 600; font-size: 1.05rem; border-bottom: 0; }
@media (max-width: 767.98px) {
  .cg-items thead { display: none; }
  .cg-items tr.item-row { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 0.25rem 0.5rem; padding: 0.75rem 0; border-bottom: 1px solid var(--cg-border); }
  .cg-items tr.item-row td { border: 0; padding: 0 0.75rem; }
  .cg-items tr.item-row td:first-child { grid-column: 1 / -1; }
}

/* Site footer: powered by and support contacts */
.cg-site-footer { display: flex; flex-wrap: wrap; gap: 0.25rem 1rem; justify-content: space-between; font-size: 0.8125rem; color: var(--body-color-secondary, #64748b); padding: 0.75rem 0; }
.cg-site-footer a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.cg-site-footer a:hover { color: var(--cg-blue, #2563eb); }
.cg-site-footer-dark { justify-content: center; flex-direction: column; align-items: center; text-align: center; color: rgba(255,255,255,0.75); }
.cg-site-footer-dark a:hover { color: #fff; }
