:root{--navy:#08285c;--blue:#0a78e8;--cyan:#16c7e8;--bg:#f4f7fb;--text:#17233b;--muted:#6b778d;--border:#dce5f0;--danger:#bd2d32;--success:#087f5b;--warning:#9c6500;--shadow:0 6px 24px rgba(15,38,80,.08)}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Tahoma,sans-serif;background:var(--bg);color:var(--text)}a{color:var(--blue);text-decoration:none}.topbar{position:fixed;left:0;right:0;top:0;height:68px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;z-index:30;padding:0 20px;box-shadow:0 2px 10px rgba(0,0,0,.03)}.brand{display:flex;align-items:center;gap:10px;font-weight:800;color:var(--navy);font-size:20px}.brand img{width:48px;height:48px;object-fit:cover;border-radius:50%}.userbox{margin-left:auto;text-align:right}.userbox small{display:block;color:var(--muted)}.nav-toggle{display:none;margin-left:auto;border:0;background:none;font-size:26px}.sidebar{position:fixed;top:68px;bottom:0;left:0;width:240px;background:linear-gradient(180deg,#092b66,#061a40);z-index:20;padding:16px 10px;overflow:auto}.sidebar a{display:block;color:#d8e7ff;padding:12px 14px;border-radius:10px;margin:3px 0}.sidebar a:hover{background:rgba(255,255,255,.1);color:#fff}.content{margin-left:240px;padding:92px 24px 40px;max-width:1500px}.login-shell{min-height:100vh;display:grid;place-items:center;padding:20px;background:linear-gradient(135deg,#061b43,#0b78e8)}.login-card{width:min(440px,100%);background:#fff;border-radius:18px;padding:30px;box-shadow:0 20px 60px rgba(0,0,0,.25)}.login-card img{width:110px;height:110px;object-fit:cover;border-radius:50%;display:block;margin:0 auto 12px}.page-head{display:flex;align-items:center;gap:12px;justify-content:space-between;margin-bottom:18px}.page-head h1{margin:0;font-size:26px;color:var(--navy)}.grid{display:grid;gap:16px}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.card{background:#fff;border:1px solid var(--border);border-radius:14px;padding:18px;box-shadow:var(--shadow)}.stat{font-size:30px;font-weight:800;color:var(--navy)}.muted{color:var(--muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;border-radius:9px;padding:10px 14px;background:var(--blue);color:#fff;font-weight:700;cursor:pointer}.btn.secondary{background:#e8eef7;color:var(--navy)}.btn.success{background:var(--success)}.btn.danger{background:var(--danger)}.btn.small{padding:6px 9px;font-size:13px}.btn:disabled{opacity:.5}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.field label{display:block;font-weight:700;margin-bottom:6px}.field input,.field select,.field textarea{width:100%;border:1px solid #cbd7e6;border-radius:9px;padding:10px 11px;background:#fff;color:var(--text);font:inherit}.field textarea{min-height:90px;resize:vertical}.field.full{grid-column:1/-1}.table-wrap{overflow:auto;border-radius:12px;border:1px solid var(--border);background:#fff}table{border-collapse:collapse;width:100%;min-width:760px}th,td{padding:11px 12px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}th{background:#f5f8fc;color:#40516c;font-size:13px}.badge{display:inline-block;padding:4px 8px;border-radius:999px;font-size:12px;background:#e9eef6}.badge-approved,.badge-paid,.badge-completed,.badge-closed,.badge-delivered{background:#d8f5e9;color:#096445}.badge-cancelled{background:#ffe0e1;color:#9f1d24}.badge-installation,.badge-working,.badge-onsite{background:#dff1ff;color:#075d9f}.badge-draft,.badge-planned,.badge-lead{background:#edf0f5;color:#526174}.badge-sent,.badge-proposal,.badge-scheduled,.badge-assigned{background:#fff0c7;color:#7a5200}.alert{padding:12px 14px;border-radius:10px;margin-bottom:14px;background:#e7f0ff;color:#164d8e}.alert.success{background:#d8f5e9;color:#096445}.alert.error{background:#ffe0e1;color:#9f1d24}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.tabs a{padding:8px 11px;background:#eaf0f8;border-radius:8px;color:var(--navy)}.timeline{border-left:3px solid #d8e6f6;margin-left:8px;padding-left:20px}.timeline-item{margin:0 0 18px;position:relative}.timeline-item:before{content:"";position:absolute;left:-27px;top:5px;width:11px;height:11px;border-radius:50%;background:var(--blue)}.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.media-card{background:#fff;border:1px solid var(--border);border-radius:10px;overflow:hidden}.media-card img,.media-card video{width:100%;height:150px;object-fit:cover;background:#000}.media-card .meta{padding:8px;font-size:13px}.gps-box{padding:14px;border:1px dashed #9db9da;background:#f7fbff;border-radius:10px}.doc-paper{background:#fff;color:#111;max-width:900px;margin:auto;padding:28px;box-shadow:var(--shadow)}.doc-head{display:flex;gap:18px;align-items:flex-start;border-bottom:2px solid #0b4e9b;padding-bottom:15px}.doc-head img{width:105px;height:105px;object-fit:cover;border-radius:50%}.doc-title{text-align:right;margin-left:auto}.doc-title h1{margin:0;color:#092b66}.doc-company{font-size:13px;line-height:1.55}.doc-totals{margin-left:auto;width:380px}.doc-totals td:first-child{text-align:right}.print-only{display:none}.nowrap{white-space:nowrap}.kpi-title{font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.progress{height:9px;background:#e8eef5;border-radius:999px;overflow:hidden}.progress>span{display:block;height:100%;background:linear-gradient(90deg,var(--blue),var(--cyan))}.actions{display:flex;gap:8px;flex-wrap:wrap}.help{font-size:12px;color:var(--muted);margin-top:5px}.section-title{margin:24px 0 10px;color:var(--navy)}@media(max-width:980px){.grid-4,.grid-3{grid-template-columns:repeat(2,1fr)}.sidebar{transform:translateX(-100%);transition:.2s}.content{margin-left:0;padding:84px 14px 30px}.nav-toggle{display:block}.userbox{display:none}.nav-open .sidebar{transform:none}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}}@media(max-width:600px){.grid-4,.grid-3,.grid-2{grid-template-columns:1fr}.page-head{align-items:flex-start;flex-direction:column}.doc-head{flex-direction:column}.doc-title{text-align:left;margin-left:0}.doc-paper{padding:15px}.topbar{height:60px;padding:0 12px}.sidebar{top:60px}.brand span{font-size:16px}.brand img{width:42px;height:42px}}@media print{body{background:#fff}.topbar,.sidebar,.no-print,.alert{display:none!important}.content{margin:0;padding:0;max-width:none}.doc-paper{box-shadow:none;max-width:none;padding:0}.print-only{display:block}@page{size:A4;margin:12mm}}
.nav-label{padding:14px 14px 5px;color:#7fa8df;font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:800}
.stock-low{color:var(--danger);font-weight:800}.stock-ok{color:var(--success);font-weight:800}.due-over{color:var(--danger);font-weight:800}.due-soon{color:var(--warning);font-weight:800}.mini{font-size:12px}.pill{display:inline-block;padding:3px 8px;border-radius:999px;background:#edf3fb;color:#23466f;font-size:12px}.stack{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.split{display:flex;justify-content:space-between;gap:12px;align-items:center}.danger-box{border:1px solid #ffccd0;background:#fff6f6;border-radius:10px;padding:12px}.success-box{border:1px solid #bde7d5;background:#f1fff9;border-radius:10px;padding:12px}.warning-box{border:1px solid #f2d48c;background:#fffbef;border-radius:10px;padding:12px}

.badge-certified{background:#d8f5e9;color:#096445}.meeting-paper{position:relative;background:#fff;color:#111;max-width:900px;margin:auto;padding:26px 32px;box-shadow:var(--shadow);font-size:14px;line-height:1.55}.draft-banner{position:absolute;right:24px;top:20px;border:2px solid #d19a00;color:#8a6100;background:#fff9dc;padding:5px 12px;border-radius:8px;font-weight:800;transform:rotate(2deg)}.meeting-letterhead{display:flex;align-items:center;gap:18px;border-bottom:2px solid #0a5cb8;padding-bottom:12px}.meeting-letterhead img{width:82px;height:82px;object-fit:cover;border-radius:50%}.meeting-company-th{font-size:20px;font-weight:800;color:#08285c}.meeting-company-en{font-weight:800;color:#0f4987}.meeting-company-meta{font-size:12px;color:#59677a;margin-top:4px}.meeting-title{text-align:center;padding:18px 0 10px}.meeting-title h1{font-size:22px;margin:0}.meeting-title h2{font-size:17px;color:#08285c;margin:6px 0 0}.meeting-no{font-weight:800;margin-top:2px}.meeting-meta{min-width:0;border:0;margin:0 0 14px}.meeting-meta th,.meeting-meta td{border-bottom:0;padding:4px 8px}.meeting-meta th{background:none;width:120px;color:#17233b}.meeting-section-title{color:#08285c;margin:14px 0 8px}.meeting-attendees{min-width:0}.meeting-attendees th,.meeting-attendees td{padding:7px 9px}.meeting-intro{text-indent:2em}.meeting-agenda{margin:17px 0;break-inside:avoid;page-break-inside:avoid}.meeting-agenda h3{font-size:15px;color:#08285c;margin:0 0 5px}.meeting-proposal{padding-left:18px;text-indent:1.5em}.meeting-resolution{margin:7px 0 0 18px;padding:8px 11px;border-left:4px solid #0a78e8;background:#f5f9ff}.meeting-notes{margin-top:18px;padding:10px;border:1px solid #dce5f0;border-radius:8px}.meeting-close{margin-top:20px;font-weight:700}.meeting-signatures{display:grid;grid-template-columns:1fr 1fr;gap:45px;margin-top:18px;text-align:center}.sig-space{height:42px}.meeting-seal{text-align:center;color:#778398;font-size:12px;margin-top:26px}.meeting-certified{text-align:center;margin-top:12px;color:#096445;font-weight:700;font-size:12px}.agenda-editor textarea{min-height:80px}@media(max-width:600px){.meeting-paper{padding:15px}.meeting-letterhead{align-items:flex-start}.meeting-company-th{font-size:17px}.meeting-signatures{grid-template-columns:1fr;gap:18px}.draft-banner{position:static;display:inline-block;margin-bottom:10px}.meeting-attendees{min-width:600px}}@media print{.meeting-paper{box-shadow:none;max-width:none;padding:0;font-size:12.5px}.draft-banner{right:0;top:0}.meeting-letterhead img{width:70px;height:70px}.meeting-title{padding:12px 0 8px}.meeting-title h1{font-size:19px}.meeting-title h2{font-size:15px}.meeting-agenda{margin:12px 0}.meeting-signatures{margin-top:12px}.sig-space{height:32px}}

/* Billing document, project-site evidence */
.billing-paper{position:relative;background:#fff;color:#111;max-width:930px;margin:0 auto 18px;padding:28px 32px;box-shadow:var(--shadow);font-size:13px;line-height:1.55}
.billing-head{display:flex;gap:18px;align-items:center;border-bottom:3px solid #0b5fa9;padding-bottom:12px}.billing-head img{width:94px;height:94px;border-radius:50%;object-fit:contain}.billing-company-name{font-size:20px;font-weight:800;color:#08285c}.billing-head .smallprint{font-size:11px;margin-top:5px;color:#47566c}.billing-main-title{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 0}.billing-main-title h1{font-size:25px;color:#08285c;margin:0}.billing-main-title .english{font-weight:800;color:#2473c3}.billing-doc-id{text-align:right}.billing-draft{background:#fff7db;color:#865500;border:1px solid #f2d48c;padding:6px 10px;display:inline-block;border-radius:5px;margin-bottom:8px}.billing-info{display:grid;grid-template-columns:1.1fr .9fr;gap:12px;margin-bottom:14px}.billing-info>div{background:#f5f8fc;padding:12px;border:1px solid #dce5f0;border-radius:6px}.billing-items{min-width:0;width:100%;font-size:12px}.billing-items th,.billing-items td{padding:9px 7px}.billing-items td{word-break:break-word}.billing-items .num,.billing-totals .num{text-align:right;white-space:nowrap}.billing-totals{display:flex;justify-content:flex-end;padding:12px 0}.billing-totals table{min-width:0;width:min(400px,100%)}.billing-totals td{padding:5px 9px}.billing-net{font-size:16px;font-weight:800;color:#08285c;background:#edf5ff}.billing-note{border:1px solid #dce5f0;padding:12px;white-space:normal}.billing-note>div{margin-top:5px}.billing-note small{display:block;margin-top:12px;color:#536174}.billing-bank{border-top:1px dotted #ccd7e8;padding-top:8px}.billing-signatures{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:34px;text-align:center;font-size:11px}.billing-photos{break-before:page;page-break-before:always}.billing-photos h2{font-size:20px;color:#08285c;margin:0 0 8px}.billing-photos h3{background:#edf5ff;color:#08285c;padding:9px 12px;border-left:4px solid #0a78e8}.billing-photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.billing-photo-grid figure{border:1px solid #dee6f1;margin:0;break-inside:avoid;page-break-inside:avoid}.billing-photo-frame{height:190px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#f5f8fc}.billing-photo-frame img{max-height:100%;max-width:100%;width:100%;height:100%;object-fit:contain}.billing-photo-grid figcaption{padding:7px 9px;font-size:11px}.billing-video-placeholder{text-align:center;color:#59677a}
@media(max-width:700px){.billing-paper{padding:14px}.billing-info{grid-template-columns:1fr}.billing-head img{width:65px;height:65px}.billing-company-name{font-size:17px}.billing-main-title{align-items:flex-start;flex-direction:column}.billing-doc-id{text-align:left}.billing-photo-grid{grid-template-columns:1fr}.billing-signatures{grid-template-columns:1fr}}
@media print{.billing-paper{max-width:none;box-shadow:none;margin:0;padding:0;font-size:11px}.billing-head img{width:70px;height:70px}.billing-company-name{font-size:16px}.billing-main-title h1{font-size:19px}.billing-info{grid-template-columns:1.1fr .9fr}.billing-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7mm}.billing-photo-frame{height:66mm}.billing-photo-grid figure{break-inside:avoid;page-break-inside:avoid}.billing-photos{break-before:page;page-break-before:always}.billing-signatures{grid-template-columns:repeat(3,1fr);margin-top:18px}.billing-totals td{padding:3px 6px}}

/* LPR 17 checkpoints: appendix retained with each installment document. */
.billing-sites{break-before:page;page-break-before:always}.billing-sites h2{font-size:20px;color:#08285c;margin:0 0 3px}.billing-site-subtitle{font-weight:700;color:#33629d}.billing-sites p{margin:8px 0}.billing-site-table{min-width:0;width:100%;table-layout:fixed;font-size:10px}.billing-site-table th,.billing-site-table td{padding:6px 5px;word-break:break-word;overflow-wrap:anywhere}.billing-site-table th{background:#eaf2ff;color:#08285c}.billing-site-table th:nth-child(1){width:8%}.billing-site-table th:nth-child(2){width:16%}.billing-site-table th:nth-child(3){width:25%}.billing-site-table th:nth-child(4){width:17%}.billing-site-table th:nth-child(5){width:16%}.billing-site-table th:nth-child(6){width:7%}.billing-site-table th:nth-child(7){width:11%}.billing-site-foot{font-weight:700;color:#08285c}.lpr-sites-table{min-width:720px}
@media print{.billing-sites{padding:0;box-shadow:none;break-before:page;page-break-before:always}.billing-site-table{font-size:9px}.billing-site-table th,.billing-site-table td{padding:5px 4px}.billing-site-table thead{display:table-header-group}.billing-site-table tr{break-inside:avoid;page-break-inside:avoid}.billing-site-foot{break-inside:avoid}}

/* v2.6: independent printable original and duplicate tax documents. */
.receipt-view-copy{text-align:right;margin:0 0 10px;color:#163969;border-bottom:1px solid #ccd9e9;padding-bottom:7px}
.receipt-view-copy strong{display:block;font-size:16px}.receipt-view-copy span{font-size:12px}
.receipt-print-stack{max-width:950px;margin:0 auto}
.receipt-print-sheet{background:#fff;color:#151c2c;max-width:900px;margin:0 auto 22px;padding:28px 32px;box-shadow:var(--shadow);font-size:12.5px;line-height:1.52}
.receipt-print-topline{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;border-bottom:1px solid #d4e0ec;padding-bottom:10px;margin-bottom:12px}
.receipt-copy-badge{text-align:left;color:#093c78}
.receipt-copy-label{font-size:18px;font-weight:800}.receipt-copy-label span{font-size:12px;color:#4e6481}
.receipt-copy-recipient{font-size:12px;font-weight:700}
.receipt-copy-kind{text-align:right;max-width:50%;font-size:12px;color:#50627c}
.receipt-print-header{display:flex;align-items:flex-start;gap:16px;border-bottom:2px solid #0d5ba0;padding-bottom:12px}
.receipt-print-header img{width:82px;height:82px;object-fit:contain;border-radius:50%}
.receipt-print-company{font-size:12px}.receipt-print-company>strong{display:block;font-size:17px;color:#08285c}
.receipt-dot{color:#8496ac;padding:0 5px}
.receipt-print-title-row{display:flex;justify-content:space-between;gap:24px;margin:18px 0 14px}
.receipt-print-document-title h1{font-size:22px;line-height:1.25;margin:0;color:#08285c}
.receipt-print-document-title p{color:#3670ae;font-weight:800;margin:2px 0 0}
.receipt-print-identifiers{text-align:right;min-width:190px;line-height:1.65}
.receipt-print-buyer{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}
.receipt-print-buyer>div{background:#f4f8fc;border:1px solid #d9e4ef;padding:11px 12px;overflow-wrap:anywhere}
.receipt-section-label{font-size:11px;font-weight:800;color:#506a91;margin-bottom:5px}
.receipt-print-project-title{font-size:14px;margin:0 0 9px}
.receipt-print-items{min-width:0;width:100%;font-size:12px}
.receipt-print-items th,.receipt-print-items td{padding:7px 6px;border:1px solid #dfe6ef;overflow-wrap:anywhere}
.receipt-print-items th{background:#e8f0f9;color:#1e4872}
.receipt-print-items th:nth-child(1){width:6%}.receipt-print-items th:nth-child(2){width:45%}
.receipt-number{text-align:right!important;white-space:nowrap}
.receipt-print-totals{display:flex;justify-content:flex-end;margin:14px 0 10px;break-inside:avoid;page-break-inside:avoid}
.receipt-print-totals table{min-width:0;width:min(410px,100%)}
.receipt-print-totals td{padding:5px 8px}
.receipt-print-net td{background:#ecf4ff;color:#08285c;font-size:15px}
.receipt-print-notes{margin-top:13px;padding:10px;border:1px solid #e3e8f0;overflow-wrap:anywhere}
.receipt-print-signatures{display:grid;grid-template-columns:1fr 1fr;gap:16px;text-align:center;margin:38px 0 20px;font-size:11px;break-inside:avoid;page-break-inside:avoid}
.receipt-print-footer{border-top:1px solid #c7d7e8;text-align:right;color:#6b7d94;font-size:10px;padding-top:6px}
.receipt-status-watermark{border:2px dashed #ad1f1f;color:#ad1f1f;background:#fff9f7;padding:8px 10px;margin:10px 0;font-weight:800;text-align:center}
@media(max-width:650px){.receipt-print-sheet{padding:15px}.receipt-print-buyer{grid-template-columns:1fr}.receipt-print-title-row{display:block}.receipt-print-identifiers{text-align:left}.receipt-copy-kind{font-size:10px}}
@media print{
  .receipt-print-stack{max-width:none;margin:0}
  .receipt-print-sheet{width:100%;max-width:none;box-shadow:none;margin:0;padding:0;font-size:11px;line-height:1.42;break-after:page;page-break-after:always}
  .receipt-print-sheet:last-child{break-after:auto;page-break-after:auto}
  .receipt-print-header img{width:68px;height:68px}
  .receipt-print-company>strong{font-size:15px}
  .receipt-copy-label{font-size:15px}
  .receipt-print-document-title h1{font-size:18px}
  .receipt-print-buyer{grid-template-columns:1fr 1fr}
  .receipt-print-buyer>div{padding:7px 8px}
  .receipt-print-items{font-size:10px}
  .receipt-print-items th,.receipt-print-items td{padding:5px 4px}
  .receipt-print-items thead{display:table-header-group}
  .receipt-print-items tr{break-inside:avoid;page-break-inside:avoid}
  .receipt-print-title-row,.receipt-print-buyer,.receipt-print-header{break-inside:avoid;page-break-inside:avoid}
  .receipt-print-signatures{margin-top:22px}
}
