.vpcrm-invoice-page,
.vpcrm-invoice-page * { box-sizing:border-box; }

.vpcrm-invoice-page {
  --vpcrm-accent:#1769e8;
  --vpcrm-accent-dark:#0c56c8;
  --vpcrm-soft:#f4f8ff;
  --vpcrm-border:#d9e4f3;
  background:#f7f9fc;
  color:#10264a;
}

.vpcrm-invoice-container { width:min(calc(100% - 40px),1040px); margin:auto; padding:28px 0 60px; }
.vpcrm-invoice-hero { padding:30px; border:1px solid var(--vpcrm-border); border-radius:14px; background:#fff; margin-bottom:22px; box-shadow:0 8px 24px rgba(7,28,74,.04); }
.vpcrm-invoice-hero>span { color:#0b9b5f; font-size:12px; font-weight:800; letter-spacing:.07em; }
.vpcrm-invoice-hero h1 { margin:8px 0 10px; font-size:clamp(30px,5vw,44px); line-height:1.1; color:#071c4a; }
.vpcrm-invoice-hero p { max-width:850px; margin:0; color:#66758d; line-height:1.6; }
.vpcrm-invoice-form { display:grid; gap:18px; }
.vpcrm-invoice-card { padding:24px; border:1px solid var(--vpcrm-border); border-radius:14px; background:#fff; box-shadow:0 8px 24px rgba(7,28,74,.035); }
.vpcrm-invoice-card h2 { margin:0 0 18px; padding-bottom:13px; border-bottom:1px solid #e6ecf4; color:#071c4a; font-size:20px; }
.vpcrm-invoice-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.vpcrm-invoice-card label { display:grid; gap:8px; color:#172440; font-size:14px; font-weight:700; }
.vpcrm-invoice-card input,.vpcrm-invoice-card select,.vpcrm-invoice-card textarea { width:100%; min-height:46px; padding:11px 13px; border:1px solid #cfdbea; border-radius:9px; background:#fff; color:#172440; font:inherit; outline:none; }
.vpcrm-invoice-card textarea { min-height:115px; resize:vertical; }
.vpcrm-invoice-card input:focus,.vpcrm-invoice-card select:focus,.vpcrm-invoice-card textarea:focus { border-color:var(--vpcrm-accent); box-shadow:0 0 0 3px rgba(23,105,232,.10); }
.vpcrm-span-2 { grid-column:1/-1; }
.vpcrm-invoice-section-heading { display:flex; align-items:center; justify-content:space-between; gap:15px; margin-bottom:18px; }
.vpcrm-invoice-section-heading h2 { margin:0; padding:0; border:0; }
.vpcrm-add-row { min-height:40px; padding:8px 14px; border:1px solid #b9c9df; border-radius:8px; color:#17355e; background:#fff; font-weight:700; cursor:pointer; }
.vpcrm-add-row:hover { border-color:var(--vpcrm-accent); color:var(--vpcrm-accent-dark); background:var(--vpcrm-soft); }
.vpcrm-items { display:grid; gap:12px; }
.vpcrm-item-row { position:relative; display:grid; grid-template-columns:minmax(220px,2fr) .8fr .7fr .9fr .7fr 1fr; gap:12px; align-items:end; padding:16px 48px 16px 16px; border:1px solid #dfe7f1; border-radius:10px; background:#fafbfd; }
.vpcrm-item-description { min-width:0; }
.vpcrm-item-amount { display:grid; gap:9px; }
.vpcrm-item-amount span { font-size:14px; font-weight:700; }
.vpcrm-item-amount strong { min-height:46px; display:flex; align-items:center; padding:11px; border:1px solid #e0e7f0; border-radius:8px; background:#fff; color:#17355e; }
.vpcrm-remove-row { position:absolute; right:12px; top:12px; width:30px; height:30px; border:0; border-radius:50%; background:#fff0f0; color:#b62d2d; font-size:21px; cursor:pointer; }
.vpcrm-totals { display:flex; justify-content:flex-end; gap:24px; flex-wrap:wrap; margin-top:18px; padding:15px; border:1px solid #e0e7f0; border-radius:10px; background:#f8fafc; }
.vpcrm-totals strong { color:#0c56c8; }
.vpcrm-consent { display:flex!important; grid-template-columns:none!important; align-items:flex-start; gap:10px; margin-top:16px; color:#40516d!important; font-size:13px!important; font-weight:500!important; }
.vpcrm-consent input { width:auto; min-height:0; margin-top:3px; }
.vpcrm-invoice-actions { display:flex; justify-content:flex-end; gap:12px; margin-top:22px; padding-top:20px; border-top:1px solid #e6ecf4; }
.vpcrm-button-primary,.vpcrm-button-secondary { display:inline-flex; align-items:center; justify-content:center; min-width:210px; min-height:48px; padding:11px 18px; border-radius:9px; font-size:14px; font-weight:800; text-decoration:none; cursor:pointer; }
.vpcrm-button-primary { border:1px solid var(--vpcrm-accent); color:#fff!important; background:var(--vpcrm-accent); }
.vpcrm-button-primary:hover { background:var(--vpcrm-accent-dark); }
.vpcrm-button-secondary { border:1px solid #c8d7ea; color:#17355e; background:#fff; }
.vpcrm-form-message.is-error,.vpcrm-invoice-alert { margin-top:16px; padding:13px 15px; border:1px solid #f2b8b8; border-radius:9px; color:#8f2525; background:#fff3f3; }
.vpcrm-honeypot { position:absolute!important; left:-10000px!important; opacity:0!important; }
html.vpcrm-modal-open { overflow:hidden; }
.vpcrm-modal[hidden] { display:none!important; }
.vpcrm-modal { position:fixed; inset:0; z-index:999999; display:grid; place-items:center; padding:24px; }
.vpcrm-modal-backdrop { position:absolute; inset:0; background:rgba(8,27,60,.66); backdrop-filter:blur(4px); }
.vpcrm-success-dialog { position:relative; z-index:1; width:min(500px,100%); padding:32px; border:1px solid var(--vpcrm-border); border-radius:16px; background:#fff; text-align:center; box-shadow:0 30px 90px rgba(7,28,74,.28); }
.vpcrm-success-icon { display:grid; place-items:center; width:62px; height:62px; margin:0 auto 18px; border-radius:50%; color:#0a9b5e; background:#e8f8ef; font-size:34px; }
.vpcrm-success-dialog h2 { margin:0 0 10px; color:#071c4a; }
.vpcrm-success-dialog p { color:#66758d; }
.vpcrm-success-actions { display:flex; justify-content:center; gap:12px; margin-top:24px; }
.vpcrm-success-dialog strong { display:block; margin-top:10px; }
.vpcrm-success-actions .vpcrm-button-primary,.vpcrm-success-actions .vpcrm-button-secondary { min-width:180px; }
@media(max-width:980px){.vpcrm-item-row{grid-template-columns:repeat(2,minmax(0,1fr))}.vpcrm-item-description{grid-column:1/-1}}
@media(max-width:700px){.vpcrm-invoice-container{width:min(calc(100% - 22px),1040px)}.vpcrm-invoice-hero,.vpcrm-invoice-card{padding:20px}.vpcrm-invoice-grid,.vpcrm-item-row{grid-template-columns:1fr}.vpcrm-span-2,.vpcrm-item-description{grid-column:auto}.vpcrm-invoice-actions,.vpcrm-success-actions{flex-direction:column}.vpcrm-button-primary,.vpcrm-button-secondary{width:100%}.vpcrm-totals{justify-content:flex-start;gap:12px}}
