:root{
  --gcav4-green:#a7c42d;
  --gcav4-green-dark:#0b8b49;
  --gcav4-green-pill:#2dad43;
  --gcav4-orange:#f7a116;
  --gcav4-blue:#1976d2;
  --gcav4-bg:#f1f1f1;
  --gcav4-card:#f6f6f6;
  --gcav4-text:#172b4d;
  --gcav4-border:#d9d9d9;
}
body{background:var(--gcav4-bg)!important;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--gcav4-text)}
.gcav4-app{min-height:100vh;padding-bottom:120px}
.gcav4-header{background:#fff;border-bottom:1px solid #d6d6d6;position:sticky;top:0;z-index:20}
.admin-bar .gcav4-header{top:32px}
.gcav4-header-inner{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:80px 1fr 180px;align-items:center;padding:10px 20px}
.gcav4-home,.gcav4-logout{color:#0972d3;text-decoration:none;font-size:14px}
.gcav4-home .dashicons,.gcav4-logout .dashicons{vertical-align:middle}
.gcav4-brand{text-align:center}
.gcav4-brand img{max-width:280px;height:auto;display:block;margin:0 auto}
.gcav4-brand h1{margin:2px 0 8px;font-size:22px;font-weight:700;color:#122949}
.gcav4-main{max-width:1180px;margin:0 auto;padding:26px 20px 40px}
.gcav4-screen{padding:4px 0 24px}
.gcav4-title-dark,.gcav4-title-green{font-size:28px;text-align:center;margin:14px 0 18px;font-weight:700}
.gcav4-title-dark{color:#122949}
.gcav4-title-green{color:var(--gcav4-green-dark)}
.gcav4-subdate{text-align:center;margin-top:-8px;margin-bottom:16px;color:#444;font-weight:600}
.gcav4-card-grid{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:18px;max-width:760px;margin:0 auto}
.gcav4-card{background:#fff;border-radius:14px;box-shadow:0 2px 10px rgba(0,0,0,.08);min-height:112px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:18px;color:#223;text-decoration:none;border:1px solid #ededed}
.gcav4-card .dashicons{font-size:28px;width:28px;height:28px;margin-bottom:14px;color:#8aaa25}
.gcav4-card:nth-child(10n), .gcav4-icon-qr{color:var(--gcav4-orange)}
.gcav4-card:nth-child(10n) .dashicons{color:var(--gcav4-orange)}
.gcav4-route-grid{display:grid;grid-template-columns:repeat(2,minmax(280px,1fr));gap:34px;max-width:1040px;margin:0 auto}
.gcav4-route-card{width:100%;background:#f7f7f7;border:1px solid #d9d9d9;border-radius:12px;padding:34px 20px;cursor:pointer;box-shadow:0 1px 5px rgba(0,0,0,.05);display:flex;flex-direction:column;align-items:center;gap:16px;font-size:20px;font-weight:700;color:#1f2434}
.gcav4-route-mapicon .dashicons{font-size:92px;width:92px;height:92px;color:#7ea62d}
.gcav4-profile-card-wrap{display:flex;justify-content:center}
.gcav4-profile-card{width:360px;background:#f5f5f5;border-radius:16px;box-shadow:0 2px 12px rgba(0,0,0,.08);padding:20px;border:1px solid #e5e5e5}
.gcav4-profile-top{display:grid;grid-template-columns:130px 1fr;gap:20px;margin-bottom:18px}
.gcav4-profile-photo{width:130px;height:160px;object-fit:cover;border-radius:8px;border:4px solid #eee;box-shadow:0 1px 4px rgba(0,0,0,.12)}
.gcav4-profile-head h2{margin:10px 0 12px;font-size:24px}
.gcav4-profile-head p{margin:10px 0;font-size:16px}
.gcav4-stat-pill{background:var(--gcav4-green-pill);color:#fff;padding:14px 16px;border-radius:4px;margin:10px 0;font-size:18px;font-weight:700}
.gcav4-stat-pill.is-orange{background:var(--gcav4-orange)}
.gcav4-cta-group{display:flex;flex-direction:column;gap:18px;align-items:center;padding-top:12px}
.gcav4-gray-btn{display:inline-block;background:#ddd;padding:16px 34px;border-radius:6px;text-decoration:none;color:#17a33f;font-weight:700;font-size:18px}
.gcav4-form-screen .gcav4-title-green{margin-bottom:8px}
.gcav4-form,.gcav4-filter-bar{display:flex;flex-direction:column;gap:16px}
.gcav4-narrow{max-width:420px;margin:0 auto}
.gcav4-form label,.gcav4-filter-bar label{font-weight:700;color:var(--gcav4-green-dark);display:flex;flex-direction:column;gap:8px}
.gcav4-form input,.gcav4-form select,.gcav4-form textarea,.gcav4-filter-bar input,.gcav4-filter-bar select{border:1px solid #cfd6dc;border-radius:4px;padding:12px 14px;font-size:16px;background:#fff;color:#223}
.gcav4-blue-btn,.gcav4-green-btn,.gcav4-red-btn,.gcav4-dark-btn,.gcav4-light-btn,.gcav4-back-btn{display:inline-block;border:none;border-radius:5px;padding:12px 18px;text-decoration:none;font-weight:700;cursor:pointer}
.gcav4-blue-btn{background:var(--gcav4-blue);color:#fff;align-self:flex-start}
.gcav4-green-btn{background:#87af34;color:#fff}
.gcav4-red-btn{background:#e53b38;color:#fff}
.gcav4-dark-btn{background:#111;color:#fff;padding:14px 24px}
.gcav4-light-btn{background:#fff;border:1px solid #cfd6dc;color:#222;padding:10px 14px}
.gcav4-back-btn{background:#86b43c;color:#fff;margin:0 auto 18px;display:block;width:max-content}
.gcav4-process-state{text-align:center;font-size:20px;font-weight:700;color:#1b2b51;margin:20px 0}
.gcav4-check-grid{display:grid;grid-template-columns:repeat(2,minmax(140px,1fr));gap:18px 32px;padding-top:4px}
.gcav4-check-grid label{font-weight:700;color:var(--gcav4-green-dark);display:flex;align-items:center;gap:8px}
.gcav4-table-wrap{overflow:auto;background:#fff;border:1px solid #ddd;border-radius:10px;box-shadow:0 2px 8px rgba(0,0,0,.05)}
.gcav4-table{width:100%;border-collapse:collapse;background:#fff}
.gcav4-table th{background:#90af37;color:#fff;font-weight:700;text-align:center;padding:16px;border-right:1px solid rgba(255,255,255,.35)}
.gcav4-table td{padding:16px;border-top:1px solid #e4e4e4;border-right:1px solid #efefef;text-align:center;vertical-align:top}
.gcav4-table tbody tr:nth-child(even){background:#fafafa}
.gcav4-status{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:999px;font-size:22px;font-weight:800}
.gcav4-status-no{background:#ffd6da;color:#222}
.gcav4-status-ok{background:#d3f0d8;color:#157e2e}
.gcav4-actions .gcav4-action-link{display:inline-flex;align-items:center;justify-content:center;margin:0 4px;color:#90af37;text-decoration:none}
.gcav4-bottom-center{text-align:center;margin-top:18px}
.gcav4-info-card{background:#fff;border:1px solid #ececec;border-radius:14px;box-shadow:0 2px 10px rgba(0,0,0,.06);padding:20px 22px}
.gcav4-info-card h3{font-size:22px;color:#8baa2e;margin:0 0 18px}
.gcav4-stack-cards{display:flex;flex-direction:column;gap:28px}
.gcav4-stat-grid{display:grid;grid-template-columns:repeat(2,minmax(280px,1fr));gap:20px;max-width:740px;margin:0 auto}
.gcav4-empty,.gcav4-denied{text-align:center;font-size:22px;margin:12px auto;color:#384050}
.gcav4-chip-red{display:inline-block;background:#ef4f5e;color:#fff;font-size:12px;padding:5px 8px;border-radius:999px;margin:2px}
.gcav4-square-btn{display:inline-flex;align-items:center;justify-content:center;background:#8eb03b;color:#fff;width:34px;height:34px;border-radius:4px;text-decoration:none}
.gcav4-tags{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;max-width:980px;margin:18px auto}
.gcav4-tag{background:#1b6fd0;color:#fff;padding:8px 14px;border-radius:4px;font-weight:700}
.gcav4-box-note{background:#f7f7f7;border-left:4px solid #2f8de4;padding:14px 16px;max-width:280px;margin:28px auto 12px}
.gcav4-center{text-align:center}.gcav4-space-top{margin-top:52px}.gcav4-space-bottom{margin-bottom:16px}
.gcav4-pdf-preview{max-width:980px;margin:20px auto;background:#2b2b2b;border-radius:6px;padding-top:1px;box-shadow:0 10px 30px rgba(0,0,0,.15)}
.gcav4-pdf-toolbar{color:#fff;padding:14px 18px;background:#3a3a3a;border-radius:6px 6px 0 0;font-weight:700}
.gcav4-pdf-page{background:#fff;margin:0 56px 32px;padding:34px 30px 44px;min-height:540px}
.gcav4-pdf-page h3{text-align:center;font-size:26px}
.gcav4-qr-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.gcav4-qr-card{border:2px solid #ff4db2;border-radius:16px;padding:18px;text-align:center}
.gcav4-qr-fake{width:88px;height:88px;margin:0 auto 12px;background:repeating-linear-gradient(0deg,#000 0,#000 4px,#fff 4px,#fff 8px),repeating-linear-gradient(90deg,#000 0,#000 4px,#fff 4px,#fff 8px);mix-blend-mode:multiply}
.gcav4-bottomnav{position:fixed;left:0;right:0;bottom:0;background:var(--gcav4-green);z-index:30;box-shadow:0 -2px 8px rgba(0,0,0,.08)}
.gcav4-bottom-top{height:18px;text-align:center;color:#fff;font-size:12px}
.gcav4-bottom-icons{display:flex;justify-content:center;gap:10px;padding:18px 0 20px}
.gcav4-icon-btn{width:52px;height:52px;border-radius:999px;background:#6ca625;color:#fff;display:flex;align-items:center;justify-content:center;text-decoration:none}
.gcav4-icon-btn .dashicons{font-size:24px;width:24px;height:24px}
.gcav4-icon-btn.is-active{transform:translateY(-2px);box-shadow:0 5px 10px rgba(0,0,0,.12)}
.gcav4-icon-qr{background:#ec9c36}
.gcav4-filter-bar{display:grid;grid-template-columns:repeat(4,1fr) auto;gap:12px;align-items:end;margin-bottom:16px}
.gcav4-label{font-weight:700;color:var(--gcav4-green-dark);margin:0 0 8px}
@media (max-width:1024px){
  .gcav4-card-grid{grid-template-columns:repeat(3,minmax(150px,1fr))}
  .gcav4-route-grid,.gcav4-stat-grid{grid-template-columns:1fr}
  .gcav4-header-inner{grid-template-columns:60px 1fr 120px}
  .gcav4-qr-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:782px){
  .admin-bar .gcav4-header{top:46px}
  .gcav4-main{padding:20px 14px 40px}
  .gcav4-header-inner{grid-template-columns:48px 1fr 90px;padding:8px 10px}
  .gcav4-brand img{max-width:200px}
  .gcav4-brand h1{font-size:16px}
  .gcav4-card-grid{grid-template-columns:repeat(2,minmax(135px,1fr));max-width:none}
  .gcav4-profile-card{width:100%}
  .gcav4-profile-top{grid-template-columns:1fr;text-align:center}
  .gcav4-profile-photo{margin:0 auto}
  .gcav4-filter-bar{grid-template-columns:1fr}
  .gcav4-check-grid{grid-template-columns:1fr}
  .gcav4-pdf-page{margin:0 12px 16px;padding:18px}
}
