
:root{
  --primary:#07552d;
  --primary-dark:#043b20;
  --primary-soft:#eaf5ef;
  --accent:#d4a72c;
  --bg:#f3f7f5;
  --card:#ffffff;
  --text:#17221c;
  --muted:#6c7a72;
  --border:#dce6e0;
  --danger:#b42318;
  --success:#087a3d;
  --shadow:0 10px 35px rgba(22,61,40,.08);
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;font-family:Inter,Segoe UI,Arial,sans-serif;color:var(--text);background:var(--bg)}
a{color:var(--primary);text-decoration:none}
button,input,select,textarea{font:inherit}
.app-shell{min-height:100vh;display:grid;grid-template-columns:260px 1fr}
.sidebar{background:linear-gradient(180deg,var(--primary-dark),var(--primary));color:#fff;padding:26px 20px;position:sticky;top:0;height:100vh}
.brand{display:flex;gap:13px;align-items:center;padding:4px 6px 25px;border-bottom:1px solid rgba(255,255,255,.16)}
.brand-mark{width:46px;height:46px;border-radius:14px;background:#fff;color:var(--primary);display:grid;place-items:center;font-weight:800;font-size:20px}
.brand h1{font-size:16px;line-height:1.25;margin:0}.brand small{opacity:.72}
.side-nav{margin-top:24px;display:grid;gap:8px}
.side-nav a{color:#fff;padding:13px 14px;border-radius:10px;display:flex;gap:11px;align-items:center}
.side-nav a:hover,.side-nav a.active{background:rgba(255,255,255,.14)}
.side-footer{position:absolute;left:20px;right:20px;bottom:22px}
.side-footer a{display:block;text-align:center;color:#fff;border:1px solid rgba(255,255,255,.28);padding:11px;border-radius:10px}
.content{min-width:0}
.topbar{height:76px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 34px}
.topbar h2{font-size:21px;margin:0}.topbar p{margin:4px 0 0;color:var(--muted);font-size:13px}
.user-pill{background:var(--primary-soft);color:var(--primary);padding:10px 14px;border-radius:999px;font-weight:700;font-size:13px}
.page{padding:30px 34px 45px;max-width:1450px;margin:auto}
.card{background:var(--card);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow)}
.form-card{overflow:hidden}
.card-header{padding:24px 28px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}
.card-header h3{margin:0;font-size:18px}.card-header p{margin:6px 0 0;color:var(--muted);font-size:13px}
.section{padding:26px 28px}
.section+.section{border-top:1px solid var(--border)}
.section-title{font-size:14px;text-transform:uppercase;letter-spacing:.08em;color:var(--primary);font-weight:800;margin:0 0 18px}
.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:19px}
.form-group{display:flex;flex-direction:column;gap:8px}
.form-group.full{grid-column:1/-1}
.form-group.span-2{grid-column:span 2}
label{font-weight:700;font-size:13px;color:#314138}
.req{color:var(--danger)}
input,select,textarea{width:100%;border:1px solid #cfdad4;border-radius:10px;background:#fff;padding:12px 13px;outline:none;transition:.2s}
input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 4px rgba(7,85,45,.10)}
textarea{min-height:100px;resize:vertical}
.input-hint{font-size:11px;color:var(--muted)}
.form-actions{padding:20px 28px;background:#f9fbfa;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:12px}
.btn{border:0;border-radius:10px;padding:12px 18px;font-weight:800;cursor:pointer;display:inline-flex;align-items:center;gap:8px}
.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark)}
.btn-secondary{background:#fff;color:var(--text);border:1px solid var(--border)}
.alert{background:#fff0ef;color:var(--danger);border:1px solid #ffd2cf;padding:13px 15px;border-radius:10px;margin-bottom:18px}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:24px}
.stat{padding:21px}.stat b{font-size:30px;display:block}.stat span{color:var(--muted);font-size:13px}
.toolbar{display:flex;gap:15px;justify-content:space-between;margin-bottom:18px}.toolbar form{display:flex;gap:10px;flex:1}
.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse}.data-table th,.data-table td{padding:14px 16px;border-bottom:1px solid var(--border);text-align:left;white-space:nowrap}.data-table th{font-size:12px;text-transform:uppercase;color:var(--muted);background:#f8faf9}
.status{font-weight:800;padding:5px 10px;border-radius:999px;font-size:12px}.pass{background:#def5e7;color:var(--success)}.fail{background:#ffe3e0;color:var(--danger)}
.login-body,.verify-body{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#eef7f1,#f8faf9)}
.login-card,.verify-card{width:min(92%,720px);padding:34px}
.receipt-actions{max-width:850px;margin:18px auto;display:flex;gap:10px}.receipt{background:#fff;max-width:850px;margin:0 auto 30px;padding:50px;box-shadow:var(--shadow)}
.receipt-head{display:flex;align-items:center;gap:25px;text-align:center}.receipt-head h1{font-size:28px;margin:0}.receipt-head h2{font-size:22px}.logo-placeholder{border:2px solid var(--primary);color:var(--primary);border-radius:50%;width:110px;height:110px;display:grid;place-items:center;font-weight:bold}
.receipt-grid{display:flex;justify-content:space-between;align-items:center}.receipt p{font-size:17px;border-bottom:1px solid #ddd;padding-bottom:9px}.signature{margin:55px 0 15px auto;border-top:1px solid #000;width:230px;text-align:center;padding-top:8px}.copy-label{background:var(--primary);color:#fff;border-radius:12px;padding:12px;text-align:center;font-weight:bold;width:300px;margin:25px auto}.receipt h3{text-align:center}.receipt table,.receipt th,.receipt td{border:1px solid #333;border-collapse:collapse;padding:10px}.receipt th{background:var(--primary);color:#fff}
.verified{background:#e4f7e9;color:var(--success);padding:12px;border-radius:8px;font-weight:bold}.invalid{background:#ffe3e3;color:var(--danger);padding:12px;border-radius:8px}.verify-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.verify-grid p{background:#f5f7f5;padding:14px;border-radius:8px}.verify-grid span{display:block;color:var(--muted);font-size:13px;margin-bottom:5px}
.mobile-nav{display:none}
@media(max-width:1000px){.app-shell{grid-template-columns:1fr}.sidebar{display:none}.mobile-nav{display:flex}.form-grid{grid-template-columns:repeat(2,1fr)}.stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:650px){.topbar{padding:0 18px}.page{padding:20px 14px}.form-grid{grid-template-columns:1fr}.form-group.span-2{grid-column:auto}.stats{grid-template-columns:1fr}.card-header,.section,.form-actions{padding-left:18px;padding-right:18px}.toolbar{flex-direction:column}.verify-grid{grid-template-columns:1fr}.receipt{padding:22px}.receipt-head{flex-direction:column}.receipt-head h1{font-size:22px}}
@media print{body{background:#fff}.no-print{display:none}.receipt{box-shadow:none;margin:0;max-width:none;padding:20px}@page{size:A4;margin:10mm}}

/* V3 branding and invoice */
.top-branding{display:flex;align-items:center;gap:14px}
.top-branding img{object-fit:contain;display:block}
.top-gov-logo{width:58px;height:58px}
.top-transport-logo{width:92px;height:58px}
.top-branding-text h2{margin:0;font-size:20px}
.top-branding-text p{margin:4px 0 0;font-size:12px;color:var(--muted)}
.header-actions{display:flex;align-items:center;gap:10px}
.btn-danger-outline{background:#fff;color:#c62828;border:1px solid #ef5350}
.btn-danger-outline:hover{background:#fff3f3}
.invoice-page{position:relative;overflow:hidden}
.invoice-watermark{position:absolute;inset:24% 8% auto 28%;width:58%;opacity:.075;z-index:0;pointer-events:none}
.invoice-content{position:relative;z-index:1}
.invoice-header{display:grid;grid-template-columns:120px 1fr 120px;align-items:center;gap:18px;border-bottom:2px solid #123c25;padding-bottom:18px;margin-bottom:24px}
.invoice-header img{width:105px;height:105px;object-fit:contain}
.invoice-heading{text-align:center}
.invoice-heading h1{font-size:25px;margin:0;color:#083d22}
.invoice-heading h2{font-size:20px;margin:8px 0 0}
.invoice-heading p{font-size:12px;color:#657168;margin:7px 0 0}
.invoice-spacer{width:105px}
.invoice-meta{display:grid;grid-template-columns:1fr 155px;gap:24px;align-items:start}
.invoice-details{display:grid;grid-template-columns:190px 1fr;row-gap:11px;font-size:14px}
.invoice-details .label{color:#5d6a62}
.invoice-details .value{font-weight:700;border-bottom:1px solid #dfe6e1;padding-bottom:7px}
.qr-panel{text-align:center;border:1px solid #dce6e0;border-radius:12px;padding:13px;background:#fff}
.qr-panel small{display:block;color:#68756c;margin-top:8px}
.invoice-status{display:inline-block}
.invoice-bottom{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:36px}
.invoice-box{border:1px solid #cfd9d3;border-radius:10px;overflow:hidden}
.invoice-box h3{background:#07552d;color:#fff;margin:0;padding:10px 13px;font-size:13px}
.invoice-box ul{margin:13px 18px;padding-left:17px;font-size:12px;line-height:1.7}
.invoice-box table{font-size:11px}
.invoice-box th,.invoice-box td{padding:7px;border:1px solid #d7dfda}
.signature-line{width:230px;margin:55px 0 10px auto;border-top:1px solid #222;text-align:center;padding-top:8px;font-size:12px}
.invoice-footer{margin:24px -50px -50px;background:#07552d;color:#fff;text-align:center;padding:13px;font-size:12px}
.login-brand{display:flex;align-items:center;justify-content:center;gap:14px;margin-bottom:18px}
.login-brand img{width:82px;height:82px;object-fit:contain}
.login-brand h1{margin:0;font-size:22px;color:#07552d}
.login-brand p{margin:5px 0 0;color:#6c7a72}
@media(max-width:800px){
  .top-transport-logo{display:none}
  .invoice-header{grid-template-columns:90px 1fr}
  .invoice-spacer{display:none}
  .invoice-header img{width:82px;height:82px}
  .invoice-meta,.invoice-bottom{grid-template-columns:1fr}
  .invoice-details{grid-template-columns:140px 1fr}
}
@media print{
  .invoice-footer{margin-left:-20px;margin-right:-20px;margin-bottom:-20px}
}

/* V4 admin header fix */
.topbar{
  min-height:84px;
  height:auto;
  overflow:hidden;
  gap:20px;
  flex-wrap:wrap;
}
.top-branding{
  min-width:0;
  flex:1;
  display:flex;
  align-items:center;
  gap:12px;
  overflow:hidden;
}
.top-branding img{
  position:static !important;
  inset:auto !important;
  max-width:none !important;
  object-fit:contain !important;
  flex:0 0 auto;
}
.top-gov-logo{
  width:58px !important;
  height:58px !important;
}
.top-transport-logo{
  width:78px !important;
  height:52px !important;
}
.top-branding-text{
  min-width:0;
}
.top-branding-text h2{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.content{
  overflow:hidden;
}
.page{
  position:relative;
  z-index:1;
}
.card,.table-wrap,.stats,.toolbar{
  position:relative;
  z-index:2;
}
.data-table{
  background:#fff;
}
@media(max-width:1100px){
  .top-transport-logo{display:none !important}
}
@media(max-width:760px){
  .topbar{padding:14px 18px}
  .top-branding-text h2{font-size:16px}
  .top-branding-text p{display:none}
  .header-actions{width:100%;justify-content:flex-end}
}
