/* ================================================================
   style.css
   Shared stylesheet for the GRACE Document Manager.
   Covers: auth screens, dashboard, forms, document UI,
   and A4 print layout (3 copies: Office / Factory / Customer).
   ================================================================ */

/* ---------- Base ---------- */
:root {
  --brand:        #1f3864;
  --brand-dark:   #15284a;
  --brand-light:  #e8eefa;
  --accent:       #0d6efd;
  --success:      #198754;
  --warning:      #f0ad4e;
  --danger:       #dc3545;
  --ink:          #222;
  --muted:        #6c757d;
  --border:       #b9b9b9;
  --paper:        #ffffff;
}

body {
  font-family: "Segoe UI", Tahoma, Arial, sans-serif;
  color: var(--ink);
  background: #f4f6fa;
}

a { text-decoration: none; }
a:hover { text-decoration: underline; }

/* ---------- Auth screens (login / register) ---------- */
.auth-body {
  min-height: 100vh;
  background: linear-gradient(135deg, var(--brand) 0%, var(--brand-dark) 100%);
}
.auth-card {
  border: none;
  border-radius: 12px;
}
.auth-card h3 { color: var(--brand); }

/* ---------- App navbar ---------- */
.app-navbar {
  background: var(--brand);
  box-shadow: 0 2px 4px rgba(0,0,0,0.08);
}
.app-navbar .navbar-brand,
.app-navbar .nav-link { color: #fff !important; }
.app-navbar .nav-link:hover { color: #ffd866 !important; }

.app-body { background: #f4f6fa; min-height: 100vh; }

/* ---------- Dashboard summary cards ---------- */
.summary-card {
  border: none;
  border-left: 5px solid var(--accent);
  border-radius: 10px;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
  position: relative;
}
.summary-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(0,0,0,0.08);
}
.summary-primary { border-left-color: var(--accent); }
.summary-success { border-left-color: var(--success); }
.summary-warning { border-left-color: var(--warning); }
.summary-info    { border-left-color: #0dcaf0; }

/* ---------- Forms / Section headers ---------- */
.form-section {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  padding: 1.25rem 1.5rem;
  margin-bottom: 1rem;
}
.form-section h6 {
  text-transform: uppercase;
  color: var(--brand);
  font-weight: 600;
  letter-spacing: 0.5px;
  border-bottom: 2px solid var(--brand-light);
  padding-bottom: 0.4rem;
  margin-bottom: 1rem;
}

.required::after {
  content: " *";
  color: var(--danger);
}

/* ---------- Line items table ---------- */
.items-table {
  width: 100%;
  border-collapse: collapse;
}
.items-table th,
.items-table td {
  border: 1px solid #dee2e6;
  padding: 6px 8px;
  vertical-align: middle;
  font-size: 0.9rem;
}
.items-table th {
  background: var(--brand-light);
  color: var(--brand);
  font-weight: 600;
  text-transform: uppercase;
  font-size: 0.78rem;
}
.items-table input,
.items-table textarea {
  border: none;
  background: transparent;
  width: 100%;
  padding: 2px 4px;
}
.items-table input:focus,
.items-table textarea:focus {
  outline: 1px solid var(--accent);
  background: #fffbe6;
}
.items-table .row-total { background: #f8f9fa; font-weight: 600; }

/* ---------- Totals panel ---------- */
.totals-panel {
  max-width: 360px;
  margin-left: auto;
}
.totals-panel .row {
  padding: 4px 0;
  border-bottom: 1px dashed #dee2e6;
}
.totals-panel .row.grand {
  border-top: 2px solid var(--brand);
  border-bottom: 2px solid var(--brand);
  font-weight: 700;
  color: var(--brand);
  font-size: 1.1rem;
  margin-top: 6px;
}

/* ================================================================
   DOCUMENT / PRINT LAYOUT
   Shared by challan.php, invoice.php, quotation.php
   ================================================================ */

.doc-copy {
  background: var(--paper);
  color: var(--ink);
  width: 210mm;
  min-height: 297mm;
  padding: 12mm 12mm 14mm 12mm;
  margin: 10mm auto;
  box-shadow: 0 0 6px rgba(0,0,0,0.12);
  font-size: 12px;
  line-height: 1.35;
  position: relative;
  page-break-after: always;
}
.doc-copy:last-child { page-break-after: auto; }

/* Copy label ribbon */
.copy-label {
  position: absolute;
  top: 8mm;
  right: 12mm;
  border: 2px solid var(--brand);
  color: var(--brand);
  font-weight: 700;
  letter-spacing: 1px;
  padding: 4px 12px;
  font-size: 11px;
  text-transform: uppercase;
  border-radius: 4px;
}

/* Letterhead */
.doc-header {
  text-align: center;
  border-bottom: 2px solid var(--brand);
  padding-bottom: 6px;
  margin-bottom: 8px;
}
.doc-header .company-name {
  font-size: 20px;
  font-weight: 700;
  color: var(--brand);
  letter-spacing: 0.5px;
}
.doc-header .company-addr { font-size: 11px; color: #444; }
.doc-title {
  text-align: center;
  font-size: 16px;
  font-weight: 700;
  margin: 8px 0;
  text-transform: uppercase;
  letter-spacing: 2px;
  background: var(--brand-light);
  padding: 4px 0;
  border: 1px solid var(--brand);
}

/* Info / reference grid */
.info-grid {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 6px;
}
.info-grid td {
  border: 1px solid var(--border);
  padding: 4px 6px;
  vertical-align: top;
}
.info-grid .label {
  background: #f3f3f3;
  font-weight: 600;
  width: 22%;
  white-space: nowrap;
}

/* Print line-items table */
.print-items {
  width: 100%;
  border-collapse: collapse;
  margin-top: 6px;
}
.print-items th,
.print-items td {
  border: 1px solid var(--border);
  padding: 5px 6px;
  vertical-align: top;
}
.print-items th {
  background: var(--brand-light);
  color: var(--brand);
  text-align: center;
  font-size: 11px;
  text-transform: uppercase;
}
.print-items td.num { text-align: right; font-variant-numeric: tabular-nums; }
.print-items td.center { text-align: center; }

/* Totals block inside print */
.print-totals {
  width: 50%;
  margin-left: auto;
  border-collapse: collapse;
  margin-top: 4px;
}
.print-totals td {
  border: 1px solid var(--border);
  padding: 4px 8px;
}
.print-totals .label { background: #f3f3f3; font-weight: 600; width: 60%; }
.print-totals .num   { text-align: right; font-variant-numeric: tabular-nums; }
.print-totals .grand td {
  background: var(--brand-light);
  font-weight: 700;
  color: var(--brand);
}

/* Amount in words */
.amount-words {
  margin-top: 4px;
  padding: 4px 8px;
  border: 1px solid var(--border);
  background: #fafafa;
  font-style: italic;
}

/* Signature zones */
.signatures {
  display: flex;
  justify-content: space-between;
  margin-top: 18mm;
  gap: 8px;
}
.signatures .sig-box {
  flex: 1;
  text-align: center;
  border-top: 1px solid #333;
  padding-top: 4px;
  font-size: 11px;
}
.signatures .sig-box .role {
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.received-box {
  border: 1px solid var(--border);
  padding: 8px;
  margin-top: 10mm;
}
.received-box .row-line {
  display: flex;
  gap: 16px;
  padding: 4px 0;
}
.received-box .row-line label {
  min-width: 80px;
  font-weight: 600;
}
.received-box .row-line .line {
  flex: 1;
  border-bottom: 1px dotted #888;
}

/* Notes / terms */
.notes-box {
  margin-top: 6px;
  padding: 6px 8px;
  border: 1px solid var(--border);
  font-size: 11px;
  background: #fbfbfb;
}
.notes-box .title {
  font-weight: 700;
  color: var(--brand);
  text-transform: uppercase;
  font-size: 10px;
  margin-bottom: 2px;
}

/* Document footer / page marker */
.doc-footer {
  position: absolute;
  bottom: 6mm;
  left: 12mm;
  right: 12mm;
  font-size: 10px;
  color: #666;
  border-top: 1px solid #ddd;
  padding-top: 3px;
  display: flex;
  justify-content: space-between;
}

/* Print toolbar (on screen only) */
.print-toolbar {
  position: sticky;
  top: 0;
  background: #fff;
  padding: 10px;
  border-bottom: 1px solid #dee2e6;
  z-index: 100;
  display: flex;
  gap: 8px;
  justify-content: center;
  box-shadow: 0 2px 6px rgba(0,0,0,0.04);
}

/* ================================================================
   PRINT MEDIA
   ================================================================ */
@media print {
  @page { size: A4 portrait; margin: 0; }

  html, body {
    background: #fff !important;
    margin: 0 !important;
    padding: 0 !important;
    font-size: 12px;
  }

  /* Hide all screen-only UI */
  .no-print,
  .app-navbar,
  .print-toolbar,
  .navbar,
  .btn,
  form.search-form,
  footer { display: none !important; }

  .doc-copy {
    width: 210mm;
    min-height: 297mm;
    margin: 0;
    padding: 12mm 12mm 14mm 12mm;
    box-shadow: none;
    page-break-after: always;
    break-after: page;
  }
  .doc-copy:last-child {
    page-break-after: auto;
    break-after: auto;
  }

  /* Ensure borders and backgrounds print */
  * {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  a { color: inherit; text-decoration: none; }
}
