/* =====================================================================
   DWARG printable documents — A4 tax invoices, estimates, job cards,
   gate passes, receipts, payslips and inspection reports.
   ===================================================================== */
.print-body { background: var(--n-200); min-height: 100vh; }
@page { size: A4; margin: 10mm 10mm 14mm; }
.print-bar {
    position: sticky; top: 0; z-index: 20;
    display: flex; align-items: center; justify-content: space-between; gap: 1rem;
    padding: .85rem 1.25rem; background: rgba(255,255,255,.92);
    backdrop-filter: blur(12px); border-bottom: 1px solid var(--line);
}
.print-bar img { height: 26px; }
.print-bar small { color: var(--muted); font-weight: 600; }

.print-doc {
    --doc-ink: var(--text-primary);
    --doc-muted: var(--text-secondary);
    --doc-line: var(--n-200);
    --doc-soft: var(--background);
    --doc-brand: var(--primary);
    position: relative;
    max-width: 920px;
    margin: 1.25rem auto 2.5rem;
    background: #fff;
    color: var(--doc-ink);
    font-size: 12.5px;
    line-height: 1.45;
    padding: 0 0 1.4rem;
    border-radius: 18px;
    box-shadow: 0 24px 60px -28px rgba(var(--shadow-rgb),.28);
    overflow: hidden;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}
.print-doc.print-narrow { max-width: 720px; }
.print-doc * { box-sizing: border-box; }
.print-doc table { width: 100%; border-collapse: collapse; }
.print-doc a { color: inherit; }

.doc-strip { height: 5px; background: var(--brand-strip); }
.doc-head { display: grid; grid-template-columns: 1fr auto; gap: 1.5rem; align-items: start; padding: 1.35rem 1.6rem 1.15rem; }
.doc-brand { display: flex; gap: .9rem; align-items: flex-start; min-width: 0; }
.doc-logo { height: 52px; max-width: 148px; object-fit: contain; flex-shrink: 0; }
.doc-mark { width: 52px; height: 52px; border-radius: 14px; background: var(--doc-ink); color: #fff; display: grid; place-items: center; font-weight: 800; font-size: 1.05rem; flex-shrink: 0; }
.doc-garage { font-weight: 800; font-size: 1.15rem; letter-spacing: -.02em; line-height: 1.2; }
.doc-addr { color: var(--doc-muted); font-size: .78rem; max-width: 340px; margin-top: .2rem; }
.doc-addr strong { color: var(--doc-ink); font-weight: 700; }

.doc-id { text-align: right; }
.doc-kicker { font-size: .64rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--doc-brand); }
.doc-title { font-size: 1.55rem; font-weight: 800; letter-spacing: -.03em; line-height: 1.1; margin: .15rem 0 .35rem; }
.doc-no { font-size: .95rem; font-weight: 800; font-variant-numeric: tabular-nums; }
.doc-pill { display: inline-flex; align-items: center; margin-top: .45rem; padding: .18rem .55rem; border-radius: 99px; font-size: .68rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; background: var(--doc-soft); color: var(--doc-muted); border: 1px solid var(--doc-line); }
.doc-pill.ok { background: var(--leaf-50); color: var(--leaf-600); border-color: var(--success-light); }
.doc-pill.due { background: var(--flame-50); color: var(--flame); border-color: var(--danger-light); }
.doc-pill.warn { background: var(--warning-soft); color: var(--warning); border-color: rgba(var(--warning-rgb), .25); }
.doc-pill.ink { background: var(--doc-ink); color: #fff; border-color: var(--doc-ink); }

.doc-meta { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 0; margin: 0 1.6rem 1.15rem; border: 1px solid var(--doc-line); border-radius: 14px; overflow: hidden; }
.doc-meta div { padding: .65rem .85rem; border-right: 1px solid var(--doc-line); background: var(--doc-soft); min-width: 0; }
.doc-meta div:last-child { border-right: 0; }
.doc-meta span { display: block; font-size: .62rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--doc-muted); }
.doc-meta b { display: block; margin-top: .15rem; font-size: .82rem; font-weight: 800; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.doc-body { padding: 0 1.6rem; }
.doc-parties { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-bottom: 1.15rem; }
.doc-box { border: 1px solid var(--doc-line); border-radius: 14px; padding: .85rem 1rem; min-width: 0; background: #fff; }
.doc-box .lbl { font-size: .62rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--doc-muted); margin-bottom: .3rem; }
.doc-box .who { font-weight: 800; font-size: .95rem; }
.doc-box p { margin: .15rem 0 0; color: var(--doc-muted); font-size: .8rem; }
.doc-plate { display: inline-block; font-family: ui-monospace, 'SF Mono', Menlo, Consolas, monospace; font-weight: 800; letter-spacing: .06em; background: #fff; color: var(--secondary); border: 1.5px solid var(--secondary); border-radius: 5px; padding: .12rem .45rem; color: var(--doc-ink); font-size: .82rem; }

.doc-table { margin-bottom: .9rem; border: 1px solid var(--doc-line); border-radius: 12px; overflow: hidden; }
.doc-table thead th { background: var(--doc-ink); color: #fff; font-size: .64rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; padding: .55rem .55rem; white-space: nowrap; }
.doc-table tbody td { padding: .48rem .55rem; border-bottom: 1px solid var(--doc-line); vertical-align: top; }
.doc-table tbody tr:last-child td { border-bottom: 0; }
.doc-table tbody tr:nth-child(even) td { background: var(--surface-soft); }
.doc-table .grp td { background: var(--doc-soft) !important; font-size: .62rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--doc-muted); padding: .4rem .55rem; }
.doc-table .num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.doc-table .muted { color: var(--doc-muted); }
.doc-table .strike td { color: var(--n-400); text-decoration: line-through; }
.doc-table .ok-row td { background: var(--success-soft); }

.doc-split { display: grid; grid-template-columns: 1.15fr .85fr; gap: 1.1rem; align-items: start; }
.doc-gst { font-size: .75rem; }
.doc-gst th, .doc-gst td { padding: .35rem .5rem; border-bottom: 1px solid var(--doc-line); }
.doc-gst thead th { background: var(--doc-soft); font-size: .62rem; letter-spacing: .06em; text-transform: uppercase; }
.doc-words { margin-top: .75rem; padding: .7rem .85rem; border-radius: 12px; background: var(--doc-soft); font-size: .78rem; }
.doc-words b { display: block; font-size: .62rem; letter-spacing: .08em; text-transform: uppercase; color: var(--doc-muted); margin-bottom: .15rem; }
.doc-notes { margin-top: .7rem; color: var(--doc-muted); font-size: .75rem; }
.doc-notes strong { color: var(--doc-ink); }

.doc-totals { border: 1px solid var(--doc-line); border-radius: 14px; overflow: hidden; }
.doc-totals table td { padding: .42rem .8rem; }
.doc-totals .grand td { background: var(--doc-ink); color: #fff; font-size: .95rem; font-weight: 800; padding: .7rem .8rem; }
.doc-totals .bal td { font-weight: 800; background: var(--doc-soft); }
.doc-totals .paid td { color: var(--leaf-600); }

.doc-qr { display: flex; align-items: center; gap: .7rem; margin-top: .85rem; padding: .65rem .75rem; border: 1px dashed var(--doc-line); border-radius: 12px; }
.doc-qr svg { flex-shrink: 0; border-radius: 6px; }
.doc-qr small { display: block; font-size: .62rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--doc-muted); }
.doc-qr span { font-size: .72rem; color: var(--doc-muted); word-break: break-all; }

.doc-signs { display: grid; grid-template-columns: repeat(var(--cols, 2), 1fr); gap: 1.5rem; margin-top: 1.8rem; text-align: center; }
.doc-signs div { padding-top: 2.1rem; border-top: 1px solid var(--doc-ink); font-size: .72rem; font-weight: 700; color: var(--doc-muted); }
.doc-foot { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin: 1.3rem 1.6rem 0; padding-top: .85rem; border-top: 1px solid var(--doc-line); color: var(--doc-muted); font-size: .68rem; }
.doc-foot img { height: 14px; }
.doc-foot .end { display: flex; align-items: center; gap: .4rem; font-weight: 700; }

.doc-watermark { position: absolute; top: 48%; left: 0; right: 0; text-align: center; font-size: 5rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: rgba(var(--danger-rgb),.09); transform: rotate(-18deg); pointer-events: none; z-index: 2; }
.doc-watermark.paid { color: rgba(var(--success-rgb),.14); }
.doc-watermark.copy { color: rgba(var(--shadow-rgb),.06); }

/* Gate pass */
.doc-pass { text-align: center; padding: .4rem 0 1rem; }
.doc-pass .doc-plate { font-size: 1.45rem; padding: .35rem 1rem; }
.doc-pass h3 { font-size: 1rem; margin: .55rem 0 0; }
.doc-kv { width: 100%; }
.doc-kv td { padding: .45rem 0; border-bottom: 1px solid var(--doc-line); }
.doc-kv td:first-child { color: var(--doc-muted); width: 38%; font-size: .72rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }

/* Receipt hero */
.doc-hero { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1rem 1.1rem; border-radius: 16px; background: var(--doc-ink); color: #fff; margin-bottom: 1rem; }
.doc-hero small { color: var(--n-400); font-size: .68rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.doc-hero b { display: block; font-size: 1.7rem; letter-spacing: -.03em; }
.doc-hero span { display: block; color: var(--n-300); font-size: .8rem; max-width: 22rem; margin-top: .25rem; }

/* Inspection */
.doc-legend { display: grid; grid-template-columns: repeat(4, 1fr); gap: .5rem; margin-bottom: 1rem; }
.doc-legend div { text-align: center; padding: .55rem .3rem; border-radius: 12px; border: 1px solid var(--doc-line); }
.doc-legend b { display: block; font-size: 1.15rem; }
.doc-insp { margin-bottom: .85rem; }
.doc-insp h4 { font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--doc-muted); margin: 0 0 .4rem; }
.doc-insp-row { display: grid; grid-template-columns: 1fr auto; gap: .75rem; padding: .4rem 0; border-bottom: 1px solid var(--doc-line); align-items: start; }
.doc-insp-row .cond { font-size: .68rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.doc-photos { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .35rem; }
.doc-photos img { width: 72px; height: 72px; object-fit: cover; border-radius: 8px; border: 1px solid var(--doc-line); }

.doc-alert { padding: .7rem 1rem; border-radius: 12px; font-weight: 700; text-align: center; margin: 0 1.6rem 1rem; }
.doc-alert.danger { background: var(--flame-50); color: var(--flame); }

@media (max-width: 700px) {
    .print-doc { margin: .6rem; border-radius: 14px; }
    .doc-head, .doc-parties, .doc-split, .doc-meta, .doc-legend { grid-template-columns: 1fr 1fr; }
    .doc-meta { margin: 0 .9rem 1rem; }
    .doc-head, .doc-body { padding-left: .9rem; padding-right: .9rem; }
    .doc-foot { margin-left: .9rem; margin-right: .9rem; }
    .doc-table { display: block; overflow-x: auto; }
}
@media print {
    body { background: #fff !important; }
    .no-print, .print-bar, .powered-by, .pd-brand, .sidebar, .topbar, .mobile-tabbar { display: none !important; }
    .print-doc { box-shadow: none; margin: 0; max-width: none; border-radius: 0; }
    .pd-wrap, .pd-card { background: transparent; box-shadow: none; border: 0; padding: 0; max-width: none; }
    .pd-card:not(.p-0) { display: none; }
    a { text-decoration: none !important; }
    .doc-table thead { display: table-header-group; }
    .doc-signs { break-inside: avoid; }
}
