:root{
  --navy:#0b2e4f; --navy-2:#123f68; --gold:#c8a24a; --gold-dark:#a8842f;
  --ink:#1c2530; --muted:#5b6875; --line:#e2e7ec; --bg:#f4f6f8; --card:#ffffff;
  --ok:#1f7a4d; --ok-bg:#e6f4ec; --err:#a12a2a; --err-bg:#fbeaea; --warn:#8a6d1a; --warn-bg:#fbf4df;
  --radius:10px; --shadow:0 1px 3px rgba(16,32,48,.08),0 4px 16px rgba(16,32,48,.06);
}
*{box-sizing:border-box}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:var(--ink);background:var(--bg);line-height:1.5}
a{color:var(--navy-2)}
.skip-link{position:absolute;left:-999px}
.skip-link:focus{left:8px;top:8px;background:#fff;padding:8px;border-radius:6px;z-index:10}

.site-header{display:flex;align-items:center;justify-content:space-between;gap:16px;
  background:var(--navy);color:#fff;padding:12px 24px;border-bottom:4px solid var(--gold)}
.brand{display:flex;align-items:center;gap:14px}
.brand-logo{height:52px;width:auto;background:#fff;border-radius:8px;padding:4px}
.brand-text{display:flex;flex-direction:column}
.brand-city{font-weight:700;font-size:1.05rem;letter-spacing:.2px}
.brand-sub{font-size:.8rem;color:#cdd8e4}
.site-nav{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.site-nav a{color:#e7eef5;text-decoration:none;font-size:.92rem;padding:4px 2px;border-bottom:2px solid transparent}
.site-nav a:hover{color:#fff}
.site-nav a.active{color:#fff;border-bottom-color:var(--gold)}
.nav-user{color:#a9bccf;font-size:.82rem;border-left:1px solid #2b4d70;padding-left:14px}
.btn-link{background:none;border:none;color:var(--gold);cursor:pointer;font-size:.92rem;padding:0}
.inline{display:inline}

.container{max-width:1040px;margin:28px auto;padding:0 24px}
.site-footer{max-width:1040px;margin:32px auto;padding:16px 24px;color:var(--muted);
  font-size:.82rem;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}

h1{font-size:1.5rem;margin:0 0 4px} h2{font-size:1.15rem;margin:24px 0 10px}
.subtitle{color:var(--muted);margin:0 0 20px}

.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow);padding:22px;margin-bottom:20px}
.card-narrow{max-width:440px;margin-left:auto;margin-right:auto}

.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:8px}
.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow)}
.stat .label{color:var(--muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.4px}
.stat .value{font-size:1.6rem;font-weight:700;color:var(--navy);margin-top:4px}
.stat .value.gold{color:var(--gold-dark)}

label{display:block;font-weight:600;font-size:.9rem;margin:14px 0 6px}
input,select,textarea{width:100%;padding:10px 12px;border:1px solid #c7d0d9;border-radius:8px;
  font-size:1rem;font-family:inherit;background:#fff}
input:focus,select:focus,textarea:focus{outline:2px solid var(--navy-2);outline-offset:1px;border-color:var(--navy-2)}
.help{color:var(--muted);font-size:.82rem;margin-top:4px}

.btn{display:inline-block;background:var(--navy);color:#fff;border:none;border-radius:8px;
  padding:11px 18px;font-size:.95rem;font-weight:600;cursor:pointer;text-decoration:none}
.btn:hover{background:var(--navy-2)}
.btn-gold{background:var(--gold-dark)}.btn-gold:hover{background:var(--gold)}
.btn-ghost{background:#fff;color:var(--navy);border:1px solid #c7d0d9}
.btn-ghost:hover{background:#f0f3f6}
.btn-sm{padding:6px 12px;font-size:.85rem}
.btn-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}

table{width:100%;border-collapse:collapse;font-size:.92rem}
th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line)}
th{color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.3px}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}
tr:hover td{background:#fafbfc}

.badge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:.75rem;font-weight:600}
.badge.submitted{background:var(--warn-bg);color:var(--warn)}
.badge.verified{background:#e7effb;color:#28527a}
.badge.paid{background:var(--ok-bg);color:var(--ok)}
.badge.disputed{background:var(--err-bg);color:var(--err)}

.flash{padding:12px 16px;border-radius:8px;margin-bottom:18px;font-size:.92rem}
.flash-success{background:var(--ok-bg);color:var(--ok);border:1px solid #bfe3cd}
.flash-error{background:var(--err-bg);color:var(--err);border:1px solid #f0c9c9}

.bar{height:10px;background:#e9edf1;border-radius:6px;overflow:hidden}
.bar > span{display:block;height:100%;background:var(--gold)}

/* Invoice */
.invoice{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:36px}
.invoice-head{display:flex;justify-content:space-between;gap:24px;border-bottom:3px solid var(--navy);padding-bottom:18px}
.invoice-head .logo{height:64px;background:#fff}
.invoice-title{text-align:right}
.invoice-title h1{color:var(--navy);font-size:1.35rem}
.invoice-meta{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:22px 0}
.invoice-meta .block h3{margin:0 0 4px;font-size:.78rem;text-transform:uppercase;color:var(--muted)}
.total-due{font-size:1.5rem;font-weight:800;color:var(--navy)}
.remit{background:#f7f9fb;border:1px solid var(--line);border-radius:8px;padding:16px;margin-top:18px}
.disclaimer{color:var(--muted);font-size:.8rem;margin-top:16px}

@media (max-width:640px){.invoice-meta{grid-template-columns:1fr}.site-header{flex-direction:column;align-items:flex-start}}

/* Print: only the invoice, clean */
@media print{
  .no-print{display:none !important}
  body{background:#fff}
  .container{margin:0;max-width:none;padding:0}
  .invoice{border:none;box-shadow:none;padding:0}
  a{color:#000;text-decoration:none}
}

/* Utilities replacing inline style attributes (blocked by CSP style-src 'self') */
.mt-0{margin-top:0}
.mt-12{margin-top:12px}
.mt-20{margin-top:20px}
.ml-0{margin-left:0}
.qr-wrap{text-align:center;margin:12px 0}
.form-payment{margin-top:14px;max-width:520px}
.btn-row-end{margin:0;justify-content:flex-end}
.col-bar{width:40%}
.bar > span{width:0}

/* v1.2 */
.choice{display:flex;gap:10px;flex-wrap:wrap;margin:6px 0 4px}
.choice label{display:flex;align-items:flex-start;gap:8px;font-weight:500;margin:0;flex:1 1 180px;
  border:1px solid #c7d0d9;border-radius:8px;padding:10px 12px;cursor:pointer;background:#fff}
.choice input{width:auto;margin-top:4px}
.choice small{display:block;color:var(--muted);font-weight:400}
.badge.active{background:var(--ok-bg);color:var(--ok)}
.badge.pending_approval,.badge.pending_email,.badge.unconfirmed,.badge.queued{background:var(--warn-bg);color:var(--warn)}
.badge.disabled,.badge.rejected,.badge.failed{background:var(--err-bg);color:var(--err)}
.badge.sent,.badge.confirmed{background:var(--ok-bg);color:var(--ok)}
.badge.dry_run{background:#eef1f4;color:var(--muted)}
.actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.note{background:#f7f9fb;border:1px solid var(--line);border-radius:8px;padding:12px 14px;margin:14px 0;font-size:.9rem}
.note-warn{background:var(--warn-bg);border-color:#ecdca8;color:#5f4a0f}
.table-wrap{overflow-x:auto}
.links{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:14px;font-size:.88rem}
