/* ── Invoicing module chrome (navy portal theme) ────────────────────────────── */
.fin-wrap { padding:26px 30px 60px; max-width:1080px; }
.fin-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:22px; }
.fin-head .section-title { margin:0; }
.fin-head .section-sub { margin:4px 0 0; color:var(--text-dim); font-size:13.5px; }
.fin-actions { display:flex; gap:10px; flex-wrap:wrap; align-items:center; }
.fin-back { background:none; border:none; color:var(--gold); font-weight:700; font-size:13px; cursor:pointer; padding:0; }
.fin-back:hover { color:var(--gold-light); }

.fin-btn-primary, .fin-btn { font:inherit; font-size:13px; font-weight:700; letter-spacing:.02em; cursor:pointer;
  border-radius:5px; padding:9px 16px; transition:filter 140ms ease, background 140ms ease; white-space:nowrap; }
.fin-btn-primary { background:var(--gold); color:var(--navy); border:1px solid var(--gold); }
.fin-btn-primary:hover { background:var(--gold-light); }
.fin-btn { background:var(--navy-light); color:var(--text); border:1px solid var(--border-bright); }
.fin-btn:hover { border-color:var(--gold); }
.fin-btn.fin-danger { color:#e6a2a2; }
.fin-btn.fin-danger:hover { border-color:#c46b6b; color:#f0c0c0; }

.fin-strip { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-bottom:20px; }
.fin-stat { background:var(--navy-card); border:1px solid var(--border); border-radius:6px; padding:16px 18px; }
.fin-stat-l { font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--text-dim); }
.fin-stat-v { font-family:'Cormorant Garamond',Georgia,serif; font-size:26px; color:var(--text); margin-top:3px; font-variant-numeric:tabular-nums; }
.fin-stat-v.gold { color:var(--gold-light); }

.fin-card { background:var(--navy-card); border:1px solid var(--border); border-radius:8px; padding:18px 20px; margin-bottom:16px; }
.fin-card-title { font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--text-dim); margin-bottom:14px; }

.fin-table { width:100%; border-collapse:collapse; }
.fin-table thead th { text-align:left; font-size:10.5px; letter-spacing:.09em; text-transform:uppercase; color:var(--text-dim);
  font-weight:700; padding:6px 12px 12px; border-bottom:1px solid var(--border); }
.fin-table th.fin-r, .fin-table td.fin-r { text-align:right; }
.fin-row { cursor:pointer; transition:background 120ms ease; }
.fin-row:hover { background:var(--navy-light); }
.fin-row td { padding:13px 12px; border-bottom:1px solid var(--border); font-size:13.5px; color:var(--text); }
.fin-num { font-weight:700; color:var(--gold-light); font-variant-numeric:tabular-nums; }
.fin-amt { font-variant-numeric:tabular-nums; font-weight:600; }
.fin-muted { color:var(--text-dim); }
.fin-open { color:var(--gold); font-size:12px; font-weight:700; }
.fin-empty { text-align:center; color:var(--text-dim); padding:26px; font-size:13.5px; }

.fin-badge { display:inline-block; font-size:10.5px; font-weight:800; letter-spacing:.06em; padding:3px 9px; border-radius:999px; }
.st-draft { background:rgba(147,160,189,.18); color:var(--text-muted); }
.st-sent { background:rgba(212,162,74,.16); color:var(--gold-light); }
.st-paid { background:rgba(127,198,166,.18); color:#8fd6b3; }
.st-overdue { background:rgba(214,138,138,.2); color:#e6a2a2; }
.st-void { background:rgba(147,160,189,.12); color:var(--text-dim); text-decoration:line-through; }
.st-pending { background:rgba(212,162,74,.22); color:var(--gold-light); }

/* payment: proof-upload modal + admin approvals + pending banner */
.fin-modal-wrap { position:fixed; inset:0; background:rgba(6,10,25,.62); display:flex; align-items:center; justify-content:center; z-index:9999; padding:16px; }
.fin-modal { background:var(--navy-card); border:1px solid var(--border-bright); border-radius:10px; padding:22px 24px; width:min(460px,94vw); box-shadow:0 24px 70px rgba(0,0,0,.45); }
.fin-modal-h { font-size:16px; font-weight:700; color:var(--text); margin-bottom:16px; }
.fin-modal .fin-field { margin-bottom:14px; }
.fin-modal input[type=file] { padding:8px; background:var(--navy-light); }
.fin-pending { background:rgba(212,162,74,.14); border:1px solid var(--gold-dark); border-radius:6px; padding:11px 15px; margin-bottom:16px; color:var(--gold-light); font-size:13px; }
.fin-approvals { border-color:var(--gold-dark); }
.fin-approve-row { display:flex; align-items:center; gap:12px; padding:11px 0; border-bottom:1px solid var(--border); flex-wrap:wrap; }
.fin-approve-row:last-child { border-bottom:none; }
.fin-approve-main { flex:1; min-width:200px; color:var(--text); font-size:13.5px; }

.fin-two { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.fin-field { margin-bottom:14px; }
.fin-field:last-child { margin-bottom:0; }
.fin-field label { display:block; font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--text-dim); margin-bottom:5px; }

/* line items */
.fin-line { display:grid; grid-template-columns:1fr 90px 130px 130px 34px; gap:10px; align-items:center; padding:6px 0; }
.fin-line-head { font-size:10px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--text-dim); padding-bottom:8px; border-bottom:1px solid var(--border); }
.fin-line-head .fin-r { text-align:right; }
.fin-in { width:100%; }
.fin-in.fin-r { text-align:right; }
.fin-line-amt { font-variant-numeric:tabular-nums; font-weight:600; color:var(--text); }
.fin-x { background:none; border:none; color:var(--text-dim); cursor:pointer; font-size:14px; }
.fin-x:hover { color:var(--gold); }
.fin-add { margin-top:10px; font-size:12.5px; font-weight:700; color:var(--gold); background:none; border:1px dashed var(--border-bright); border-radius:4px; padding:7px 12px; cursor:pointer; }
.fin-add:hover { border-color:var(--gold); }
.fin-totals { margin-top:16px; margin-left:auto; width:280px; }
.fin-trow { display:flex; justify-content:space-between; padding:5px 0; font-size:13.5px; color:var(--text-muted); font-variant-numeric:tabular-nums; }
.fin-trow.fin-total { border-top:2px solid var(--gold-dark); margin-top:4px; padding-top:10px;
  font-family:'Cormorant Garamond',Georgia,serif; font-size:20px; color:var(--text); }

/* invoice preview — a light "paper" on the dark chrome */
.fin-paper-wrap { background:#e9e6df; border-radius:8px; padding:26px; display:flex; justify-content:center; overflow-x:auto; }
.inv-paper { width:100%; max-width:760px; background:#fff; padding:40px 44px; border-radius:2px; box-shadow:0 8px 30px rgba(0,0,0,.25); }

@media (max-width:820px){ .fin-two{ grid-template-columns:1fr; } .fin-strip{ grid-template-columns:1fr; } .fin-line{ grid-template-columns:1fr 60px 90px 90px 28px; } }
