/* Hostel Warden Gate Pass form — scoped to #hostelGatePass only. */
.qgp-page {
  --qgp-navy:#063a59;
  --qgp-blue:#00658c;
  --qgp-green:#008a49;
  --qgp-green-dark:#006f3b;
  --qgp-ink:#101827;
  --qgp-muted:#4a556d;
  --qgp-line:#d7dce3;
  --qgp-soft:#f4faf7;
  --qgp-warn:#fff8e9;
  width:min(100%, 980px);
  margin:0 auto;
  color:var(--qgp-ink);
  background:#f7f9fa;
  font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:16px;
  line-height:1.42;
  min-height:100%;
}
.qgp-page *, .qgp-page *::before, .qgp-page *::after { box-sizing:border-box; }
.qgp-hero {
  position:relative;
  color:#fff;
  min-height:154px;
  padding:18px 28px 28px;
  background:linear-gradient(118deg,var(--qgp-navy),var(--qgp-blue));
  overflow:hidden;
}
.qgp-hero::after {
  content:"";position:absolute;inset:auto -12% -85px 28%;height:165px;border-radius:50%;
  background:rgba(255,255,255,.045);transform:rotate(-7deg);pointer-events:none;
}
.qgp-brand { display:flex;align-items:center;gap:12px;padding-bottom:11px;border-bottom:1px solid rgba(255,255,255,.14); }
.qgp-brand img { width:43px;height:43px;object-fit:contain; }
.qgp-brand strong { font-size:20px;letter-spacing:.01em; }
.qgp-back { border:0;background:transparent;color:#fff;width:40px;height:40px;border-radius:50%;font-size:22px;cursor:pointer;margin-left:-10px; }
.qgp-back:hover,.qgp-back:focus-visible { background:rgba(255,255,255,.12);outline:2px solid rgba(255,255,255,.65); }
.qgp-title-row { display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-top:11px;position:relative;z-index:1; }
.qgp-title-row h2 { color:#fff;margin:0 0 2px;font-size:30px;line-height:1.16;font-weight:760;letter-spacing:-.025em; }
.qgp-title-row p { margin:0;color:#d9f6ff;font-size:17px;display:flex;gap:9px;align-items:center; }
.qgp-draft-badge { flex:none;display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.08);color:#fff;border-radius:13px;padding:10px 14px;font-family:inherit;font-size:16px;font-weight:600;line-height:1;cursor:pointer; }
.qgp-draft-badge:hover,.qgp-draft-badge:focus-visible { background:rgba(255,255,255,.16);outline:2px solid rgba(255,255,255,.55); }
.qgp-surface { position:relative;margin-top:-1px;padding:0 22px 116px;background:#fbfcfc;border-radius:22px 22px 0 0; }
.qgp-steps { display:grid;grid-template-columns:repeat(3,1fr);gap:0;padding:18px 0 0;border-bottom:4px solid #ddd; }
.qgp-step { position:relative;display:flex;align-items:center;justify-content:center;gap:11px;padding:0 8px 15px;color:#30374c;font-weight:500;white-space:nowrap; }
.qgp-step::after { content:"";position:absolute;left:0;right:0;bottom:-4px;height:4px;border-radius:4px;background:transparent; }
.qgp-step b { display:grid;place-items:center;width:38px;height:38px;border:1px solid #cbd0d5;border-radius:50%;font-size:18px;background:#fff;color:#343b4c; }
.qgp-step.active { color:var(--qgp-green);font-weight:700; }
.qgp-step.active b { color:#fff;border-color:var(--qgp-green);background:linear-gradient(145deg,#09a25b,#00733e); }
.qgp-step.active::after { background:var(--qgp-green); }
.qgp-notice { display:none;margin:14px 0 -2px;padding:12px 14px;border-radius:10px;border:1px solid #b9ded0;background:#effaf5;color:#075f38;font-weight:600; }
.qgp-notice.show { display:flex;align-items:flex-start;gap:9px; }
.qgp-notice.error { border-color:#f2b6b6;background:#fff2f2;color:#a51212; }
.qgp-waiting { margin:15px 0 0;padding:15px;border:1px solid #f1cc80;background:var(--qgp-warn);border-radius:13px;display:flex;align-items:center;gap:12px;color:#69480a; }
.qgp-waiting i { display:grid;place-items:center;width:39px;height:39px;border-radius:50%;background:#f6a700;color:#fff; }
.qgp-waiting strong { display:block;font-size:17px;color:#3b2b0c; }
.qgp-form { padding-top:9px; }
.qgp-card { background:#fff;border:1px solid #e2e4e7;border-radius:14px;padding:11px 13px 12px;margin-bottom:8px;box-shadow:0 3px 12px rgba(19,36,45,.065); }
.qgp-card-title { display:flex;align-items:center;gap:10px;margin:0 0 9px;font-size:18px;font-weight:750;letter-spacing:-.01em; }
.qgp-card-title b { display:grid;place-items:center;width:31px;height:31px;flex:none;border-radius:50%;background:linear-gradient(145deg,#0ba35b,#007840);color:#fff;font-size:16px; }
.qgp-field { display:block;min-width:0;color:#273149;font-size:15px;font-weight:500; }
.qgp-field > span { display:block;margin:0 0 5px; }
.qgp-required { color:#c91414;margin-left:3px; }
.qgp-control, .qgp-field input, .qgp-field select, .qgp-field textarea {
  width:100%;min-height:48px;border:1px solid #cfd5dd;border-radius:8px;background:#fff;color:#111827;
  font-family:inherit;font-size:16px;font-weight:500;line-height:1.3;padding:10px 13px;outline:none;transition:border-color .16s,box-shadow .16s;
}
.qgp-field textarea { min-height:72px;resize:vertical;font-weight:400; }
.qgp-field input:focus,.qgp-field select:focus,.qgp-field textarea:focus { border-color:var(--qgp-green);box-shadow:0 0 0 3px rgba(0,138,73,.12); }
.qgp-field [aria-invalid="true"] { border-color:#d61f1f;background:#fffafa; }
.qgp-grid { display:grid;gap:10px 18px; }
.qgp-grid.two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.qgp-grid .wide { grid-column:1/-1; }
.qgp-search-wrap { position:relative; }
.qgp-search-control { position:relative; }
.qgp-search-control > i { position:absolute;left:15px;top:50%;transform:translateY(-50%);font-size:19px;color:#111;pointer-events:none; }
.qgp-search-control input { padding-left:46px;padding-right:12px; }
.qgp-search-results { position:absolute;z-index:40;top:calc(100% + 6px);left:0;right:0;max-height:285px;overflow:auto;border:1px solid #d7dde3;border-radius:12px;background:#fff;box-shadow:0 16px 35px rgba(15,40,55,.18);padding:6px; }
.qgp-search-results[hidden] { display:none; }
.qgp-student-option { width:100%;display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:10px;border:0;background:#fff;border-radius:9px;padding:9px;text-align:left;color:#172033;cursor:pointer; }
.qgp-student-option:hover,.qgp-student-option:focus-visible { background:#edf8f2;outline:2px solid rgba(0,138,73,.18); }
.qgp-student-option img,.qgp-avatar { width:42px;height:42px;border-radius:50%;object-fit:cover;background:#eaf0f2; }
.qgp-student-option strong { display:block;font-size:15px; }
.qgp-student-option small { display:block;color:#687287;font-size:13px; }
.qgp-student-option > i { color:#8792a5; }
.qgp-empty-options { padding:18px 12px;text-align:center;color:#667085; }
.qgp-student-card { display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:10px;margin-top:8px;padding:8px 10px;border:1px solid #dbe0e5;border-radius:10px;background:#fbfdfd; }
.qgp-student-card[hidden] { display:none; }
.qgp-student-card .qgp-avatar { width:48px;height:48px; }
.qgp-student-card h3 { margin:0 0 2px;font-size:17px;line-height:1.25; }
.qgp-student-card h3 small { margin-left:5px;color:#087046;font-size:13px;font-weight:750;white-space:nowrap; }
.qgp-student-card p { display:-webkit-box;margin:0;color:#46516a;font-size:14px;line-height:1.3;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2; }
.qgp-field input[type="date"],.qgp-field input[type="time"] { position:relative;z-index:1;pointer-events:auto;touch-action:manipulation;cursor:pointer;-webkit-appearance:auto;appearance:auto; }
.qgp-field input[type="date"]::-webkit-calendar-picker-indicator,.qgp-field input[type="time"]::-webkit-calendar-picker-indicator { display:block;opacity:1;pointer-events:auto;cursor:pointer; }
.qgp-active-warning { display:none;margin-top:9px;border:1px solid #efc36b;background:#fff8e6;color:#6b4700;padding:10px 12px;border-radius:9px;font-size:14px; }
.qgp-active-warning.show { display:flex;gap:8px;align-items:flex-start; }
.qgp-segmented { display:grid;grid-template-columns:1fr 1fr;border:1px solid #ced4dc;border-radius:8px;overflow:hidden; }
.qgp-segmented label { position:relative;margin:0; }
.qgp-segmented input { position:absolute;opacity:0;pointer-events:none; }
.qgp-segmented span { display:grid;place-items:center;min-height:43px;padding:8px;color:#3d465c;background:#fff;cursor:pointer;font-size:15px; }
.qgp-segmented input:checked + span { color:#007b42;background:#eff9f4;box-shadow:inset 0 0 0 1px #00894a;font-weight:700; }
.qgp-upload-box { border:1px solid #bad7cb;background:#fbfffd;border-radius:11px;padding:12px;margin-top:11px; }
.qgp-upload-actions { display:grid;grid-template-columns:1fr 1fr;gap:10px; }
.qgp-upload-actions button { min-height:46px;border:1px solid var(--qgp-green);border-radius:8px;background:#fff;color:#007a42;font-family:inherit;font-size:15px;font-weight:700;line-height:1;cursor:pointer; }
.qgp-upload-actions button:hover,.qgp-upload-actions button:focus-visible { background:#eff9f4;outline:2px solid rgba(0,138,73,.18); }
.qgp-upload-actions i { margin-right:7px; }
.qgp-upload-status { display:flex;align-items:center;gap:10px;margin-top:10px;color:#526078;font-size:14px; }
.qgp-upload-status i { color:var(--qgp-green); }
.qgp-progress { height:6px;background:#e6ece9;border-radius:99px;overflow:hidden;margin-top:9px; }
.qgp-progress b { display:block;width:var(--qgp-progress,0%);height:100%;background:var(--qgp-green);transition:width .2s; }
.qgp-check { display:flex;align-items:flex-start;gap:12px;margin-top:12px;color:#273149;cursor:pointer; }
.qgp-check input { width:22px;height:22px;flex:none;margin:0;accent-color:var(--qgp-green); }
.qgp-guardian-list { display:grid;gap:8px; }
.qgp-guardian { position:relative;display:grid;grid-template-columns:50px minmax(0,1fr) 24px;max-width:100%;align-items:center;gap:11px;border:1px solid #d9dee4;border-radius:11px;padding:10px;background:#fff;cursor:pointer; }
.qgp-guardian input { position:absolute;opacity:0; }
.qgp-guardian > span { min-width:0; }
.qgp-guardian > i:first-of-type { display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#fff5dd;color:#f49a00;font-size:23px; }
.qgp-guardian strong,.qgp-guardian small,.qgp-guardian em { display:block; }
.qgp-guardian small { color:#475269; }
.qgp-guardian em { width:max-content;max-width:100%;margin-top:3px;padding:1px 5px;border-radius:4px;background:#daf2e4;color:#076633;font-family:inherit;font-size:12px;font-weight:600;line-height:1.35;font-style:normal;overflow-wrap:anywhere; }
.qgp-guardian > i:last-child { color:#727e91; }
.qgp-guardian:has(input:checked) { border-color:var(--qgp-green);box-shadow:0 0 0 2px rgba(0,138,73,.1); }
.qgp-guardian-loading,.qgp-guardian-empty { padding:14px;border:1px dashed #ccd5db;border-radius:9px;color:#667085;text-align:center; }
.qgp-info { display:flex;gap:9px;align-items:flex-start;margin-top:9px;padding:8px 11px;border:1px solid #f0d39a;border-radius:8px;background:#fff8e9;color:#754b09;font-size:14px; }
.qgp-actions { display:grid;gap:8px;margin-top:8px; }
.qgp-btn { min-height:50px;border-radius:9px;font-family:inherit;font-size:17px;font-weight:750;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:11px; }
.qgp-btn.primary { border:1px solid var(--qgp-green);background:linear-gradient(105deg,#008743,#009f55);color:#fff; }
.qgp-btn.secondary { border:2px solid #0961c7;background:#fff;color:#0758b4; }
.qgp-btn:disabled { cursor:not-allowed;opacity:.62; }
.qgp-security-note { display:flex;justify-content:center;gap:9px;align-items:center;margin-top:8px;border:1px solid #c9e6db;border-radius:8px;background:#f2faf7;color:#15506a;padding:9px 12px;font-size:14px;text-align:center; }
.qgp-security-note i { color:var(--qgp-green);font-size:18px; }
.qgp-page.is-busy { cursor:progress; }
.qgp-page.is-waiting .qgp-actions { display:none; }
.qgp-page.is-waiting .qgp-form input,.qgp-page.is-waiting .qgp-form select,.qgp-page.is-waiting .qgp-form textarea,.qgp-page.is-waiting .qgp-form button { pointer-events:none; }

@media (max-width:1024px) {
  html:has(body[data-qcm-route="hostelGatePass"]),
  body[data-qcm-route="hostelGatePass"] {
    height:auto !important;min-height:100% !important;max-height:none !important;overflow-x:hidden !important;overflow-y:auto !important;
    overscroll-behavior-y:auto;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;touch-action:pan-y;
  }
  body[data-qcm-route="hostelGatePass"] .app,
  body[data-qcm-route="hostelGatePass"] .main,
  body[data-qcm-route="hostelGatePass"] .content,
  body[data-qcm-route="hostelGatePass"] #view {
    height:auto !important;min-height:100dvh !important;max-height:none !important;overflow:visible !important;touch-action:pan-y;
  }
  body[data-qcm-route="hostelGatePass"] .topbar { display:none !important; }
  body[data-qcm-route="hostelGatePass"] .content {
    min-height:100dvh;flex:0 0 auto;padding:0 !important;background:#f7f9fa;
    touch-action:pan-y;-webkit-overflow-scrolling:touch;
  }
  body[data-qcm-route="hostelGatePass"] .main { min-height:100dvh; }
  .qgp-page {
    width:100%;max-width:760px;min-height:100dvh;overflow:visible;
    overflow-anchor:none;touch-action:pan-y;
  }
  .qgp-hero { border-radius:0; }
  .qgp-surface { border-radius:20px 20px 0 0; }
  #mobilePrimaryNav.qgp-warden-nav [data-mobile-nav="hostelGatePass"] { position:relative;transform:translateY(-16px);width:78px;height:78px;border-radius:50%;background:linear-gradient(145deg,#007f8e,#00576d);color:#fff;box-shadow:0 8px 20px rgba(0,74,91,.28); }
  #mobilePrimaryNav.qgp-warden-nav [data-mobile-nav="hostelGatePass"] i { font-size:25px; }
  #mobilePrimaryNav.qgp-warden-nav [data-mobile-nav="hostelGatePass"] span { color:#fff;font-weight:700; }
}
@media (max-width:599px) {
  .qgp-hero { min-height:126px;padding:7px 14px 15px; }
  .qgp-brand { gap:7px;padding-bottom:4px; }
  .qgp-brand img { width:34px;height:34px; }
  .qgp-brand strong { font-size:17px; }
  .qgp-back { width:40px;height:40px;font-size:19px;margin-left:-9px; }
  .qgp-title-row { margin-top:6px; }
  .qgp-title-row h2 { font-size:23px; }
  .qgp-title-row p { font-size:16px; }
  .qgp-draft-badge { padding:8px 9px;font-size:13px; }
  .qgp-surface { padding:0 9px 106px; }
  .qgp-steps { grid-template-columns:1fr 1.35fr .85fr;padding-top:9px; }
  .qgp-step { gap:5px;padding:0 3px 8px;font-size:13px; }
  .qgp-step b { width:29px;height:29px;font-size:15px; }
  .qgp-form { padding-top:7px; }
  .qgp-card { padding:9px 10px 10px;border-radius:12px;margin-bottom:7px; }
  .qgp-card-title { font-size:17px;gap:8px;margin-bottom:7px; }
  .qgp-card-title b { width:28px;height:28px;font-size:15px; }
  .qgp-field { font-size:16px; }
  .qgp-segmented span,.qgp-upload-actions button { font-size:16px; }
  .qgp-student-card { grid-template-columns:44px minmax(0,1fr);gap:8px;margin-top:7px;padding:7px 8px; }
  .qgp-student-card .qgp-avatar { width:44px;height:44px; }
  .qgp-student-card h3 { font-size:16px; }
  .qgp-control,.qgp-field input,.qgp-field select,.qgp-field textarea { min-height:44px;padding:9px 11px; }
  .qgp-search-control input { padding-left:42px; }
  .qgp-grid { gap:8px 9px; }
  .qgp-field textarea { min-height:62px; }
}
@media (max-width:390px) {
  .qgp-grid.two { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .qgp-grid .wide { grid-column:1/-1; }
  .qgp-step { gap:3px;line-height:1.05; }
  .qgp-step span { font-size:11px;white-space:normal;text-align:center; }
  .qgp-step b { width:28px;height:28px; }
  .qgp-upload-actions { grid-template-columns:1fr 1fr; }
  .qgp-field input[type="date"],.qgp-field input[type="time"] { font-size:15px;padding-left:8px;padding-right:5px; }
}
@media (min-width:1025px) {
  .qgp-page { border-radius:22px;overflow:hidden;box-shadow:0 10px 34px rgba(19,36,45,.08); }
  .qgp-surface { padding-bottom:32px; }
}
@media (prefers-reduced-motion:reduce) {
  .qgp-page * { scroll-behavior:auto !important;transition:none !important; }
}

/* Guardian pickup approval — scoped to the secure virtual approval route. */
.gpa-page {
  --gpa-navy:#053653;
  --gpa-blue:#00668e;
  --gpa-green:#008a49;
  --gpa-green-dark:#006f3b;
  --gpa-ink:#0c1c34;
  --gpa-muted:#4b566d;
  --gpa-line:#dce1e6;
  width:min(100%, 980px);
  min-height:100%;
  margin:0 auto;
  color:var(--gpa-ink);
  background:#f9fbfb;
  font:400 16px/1.42 Inter,system-ui,-apple-system,"Segoe UI",sans-serif;
}
.gpa-page *, .gpa-page *::before, .gpa-page *::after { box-sizing:border-box; }
.gpa-hero {
  position:relative;
  min-height:198px;
  overflow:hidden;
  padding:14px 37px 22px;
  border-radius:0 0 21px 21px;
  color:#fff;
  background:linear-gradient(118deg,var(--gpa-navy),var(--gpa-blue));
}
.gpa-hero::after {
  content:"";position:absolute;inset:auto -12% -95px 32%;height:190px;border-radius:50%;
  background:rgba(255,255,255,.045);transform:rotate(-7deg);pointer-events:none;
}
.gpa-brand { position:relative;z-index:1;display:flex;align-items:center;gap:12px;width:max-content;max-width:75%;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.18); }
.gpa-brand img { width:51px;height:51px;object-fit:contain; }
.gpa-brand strong { font-size:24px;letter-spacing:-.01em;white-space:nowrap; }
.gpa-hero h2 { position:relative;z-index:1;margin:12px 0 2px;color:#fff;font-size:34px;line-height:1.15;letter-spacing:-.025em; }
.gpa-hero p { position:relative;z-index:1;display:flex;align-items:center;gap:10px;margin:0;color:#d9f6ff;font-size:20px; }
.gpa-surface { position:relative;padding:0 32px 118px;background:#fbfcfc; }
.gpa-steps { display:grid;grid-template-columns:auto 1fr auto 1fr auto;align-items:center;gap:14px;padding:28px 2px 0;border-bottom:3px solid #d9dcdf; }
.gpa-steps > i { display:block;height:3px;background:#008447;border-radius:99px; }
.gpa-step { position:relative;display:flex;align-items:center;gap:11px;padding:0 14px 17px;color:#3d4559;font-size:17px;white-space:nowrap; }
.gpa-step::after { content:"";position:absolute;left:0;right:0;bottom:-3px;height:3px;border-radius:99px;background:transparent; }
.gpa-step b { display:grid;place-items:center;width:39px;height:39px;flex:none;border:1px solid #c7cbd0;border-radius:50%;background:#fff;color:#30374a;font-size:18px; }
.gpa-step.complete,.gpa-step.active { color:var(--gpa-green);font-weight:700; }
.gpa-step.complete b { border-color:#b6ddcb;background:#f0faf5;color:var(--gpa-green); }
.gpa-step.active b { border-color:var(--gpa-green);background:linear-gradient(145deg,#0ba35b,#007740);color:#fff; }
.gpa-step.complete::after,.gpa-step.active::after { background:var(--gpa-green); }
.gpa-notice { display:none;margin:15px 0 0;padding:12px 15px;border:1px solid #b9ded0;border-radius:11px;background:#effaf5;color:#075f38;font-weight:650; }
.gpa-notice.show { display:flex;align-items:flex-start;gap:10px; }
.gpa-notice.error { border-color:#efb6b6;background:#fff3f3;color:#a51212; }
.gpa-loading,.gpa-load-error { display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:320px;text-align:center;color:#5b6678; }
.gpa-loading i,.gpa-load-error > i { color:var(--gpa-green);font-size:32px; }
.gpa-load-error strong { color:var(--gpa-ink);font-size:20px; }
.gpa-load-error p { margin:0; }
.gpa-permission,.gpa-decision { display:flex;align-items:center;gap:22px;margin:25px 0 16px;padding:22px 20px;border:1px solid #f0cf8e;border-radius:20px;background:#fff9ed;box-shadow:0 3px 12px rgba(19,36,45,.06); }
.gpa-permission > i { display:grid;place-items:center;width:60px;height:60px;flex:none;border-radius:50%;background:#ffa900;color:#fff;font-size:29px; }
.gpa-permission span,.gpa-decision span { display:flex;flex-direction:column;color:#313849;font-size:17px; }
.gpa-permission strong,.gpa-decision strong { color:#121212;font-size:24px;line-height:1.25; }
.gpa-decision { border-color:#a6d9c0;background:#effaf4; }
.gpa-decision > i { color:var(--gpa-green);font-size:39px; }
.gpa-decision.rejected { border-color:#f0b2b2;background:#fff4f4; }
.gpa-decision.rejected > i,.gpa-decision.rejected strong { color:#d91717; }
.gpa-decision small { margin-top:5px; }
.gpa-card { margin-bottom:16px;padding:19px 24px;border:1px solid #e0e2e5;border-radius:20px;background:#fff;box-shadow:0 4px 13px rgba(20,34,44,.09); }
.gpa-student { display:grid;grid-template-columns:138px 1fr;align-items:center;gap:28px; }
.gpa-student-photo { display:grid;place-items:center;width:138px;height:138px;overflow:hidden;border-radius:50%;background:linear-gradient(145deg,#edf2f4,#dce5e9);color:var(--gpa-blue);font-size:50px;font-weight:800; }
.gpa-student-photo img { width:100%;height:100%;object-fit:cover; }
.gpa-student h3 { margin:0 0 6px;color:#090c11;font-size:29px;line-height:1.2; }
.gpa-student p { margin:3px 0;color:var(--gpa-muted);font-size:18px; }
.gpa-student p strong { color:#0962b7; }
.gpa-card-title { display:flex;align-items:center;gap:15px;margin:0 0 8px;font-size:23px;letter-spacing:-.01em; }
.gpa-card-title b { display:grid;place-items:center;width:42px;height:42px;flex:none;border-radius:50%;background:linear-gradient(145deg,#0ba35b,#007840);color:#fff;font-size:20px; }
.gpa-detail-row { display:grid;grid-template-columns:55px minmax(125px,1fr) minmax(220px,auto);align-items:center;min-height:68px;margin-left:7px;border-bottom:1px solid var(--gpa-line); }
.gpa-detail-row:last-child { border-bottom:0; }
.gpa-detail-row > i { display:grid;place-items:center;width:49px;height:49px;border-radius:9px;background:#e9f8f1;color:var(--gpa-green);font-size:23px; }
.gpa-detail-row span { color:var(--gpa-muted);font-size:17px; }
.gpa-detail-row strong { justify-self:end;color:#101010;font-size:19px; }
.gpa-detail-row em { padding:0 6px;font-style:normal; }
.gpa-pickup { display:grid;grid-template-columns:120px minmax(210px,1fr) auto;align-items:center;gap:17px;padding:4px 8px 0; }
.gpa-pickup-avatar { display:grid;place-items:center;width:112px;height:112px;border-radius:50%;background:linear-gradient(160deg,#e8f1f2,#bfded0);color:var(--gpa-green);font-size:49px; }
.gpa-pickup > div:nth-child(2) > strong { display:block;color:#101010;font-size:22px; }
.gpa-pickup p { margin:3px 0;color:var(--gpa-muted);font-size:17px; }
.gpa-pickup p i { margin-right:7px;color:var(--gpa-green); }
.gpa-identity { align-self:center;display:flex;flex-direction:column;align-items:flex-end;gap:13px; }
.gpa-identity > strong { display:flex;align-items:center;gap:8px;padding:10px 13px;border:1px solid #37a56e;border-radius:11px;background:#f3fcf7;color:#087541;white-space:nowrap; }
.gpa-identity > strong.unverified { border-color:#e8a1a1;background:#fff5f5;color:#b32020; }
.gpa-identity > span { color:var(--gpa-muted);font-size:16px; }
.gpa-identity > span b { color:#191919;font-size:19px; }
.gpa-confirm { display:flex;align-items:center;gap:20px;margin:2px 0 18px;padding:16px 22px;border:1px solid #5ab585;border-radius:13px;background:#f7fcf9;color:#202633;font-size:17px;cursor:pointer; }
.gpa-confirm input { width:31px;height:31px;flex:none;margin:0;accent-color:var(--gpa-green); }
.gpa-actions { display:grid;gap:12px; }
.gpa-btn { display:flex;align-items:center;justify-content:center;gap:17px;width:100%;min-height:67px;border-radius:13px;background:#fff;font-family:inherit;font-size:22px;font-weight:750;line-height:1.2;cursor:pointer; }
.gpa-btn i { font-size:27px; }
.gpa-btn.approve { border:1px solid var(--gpa-green);background:linear-gradient(105deg,#00853f,#00a14d);color:#fff; }
.gpa-btn.reject { border:2px solid #eb1616;color:#e20d0d; }
.gpa-btn.call { border:2px solid #075cbb;color:#0758ad; }
.gpa-btn:focus-visible { outline:3px solid rgba(1,93,184,.28);outline-offset:2px; }
.gpa-btn:disabled { cursor:not-allowed;opacity:.6; }
.gpa-safety { display:flex;align-items:flex-start;gap:18px;margin-top:20px;padding:16px 20px;border:1px solid #c3d9ef;border-radius:12px;background:#f3f8fe;color:#12335d;font-size:16px; }
.gpa-safety i { color:#0860b8;font-size:27px; }
.gpa-received { margin:18px 0 0;text-align:center;color:#515a70;font-size:15px; }
.gpa-reject-field { display:block;color:#273149;font-size:15px;font-weight:600; }
.gpa-reject-field span { display:block;margin-bottom:7px; }
.gpa-reject-field textarea { width:100%;min-height:110px;padding:11px 12px;border:1px solid #ccd4dd;border-radius:9px;font-family:inherit;font-size:16px;font-weight:400;line-height:1.4;resize:vertical; }
.gpa-page.is-busy { cursor:progress; }

@media (max-width:1024px) {
  body[data-qcm-route^="gatePassApproval/"] .main { min-height:100dvh; }
  body[data-qcm-route^="gatePassApproval/"] .content { padding:0 !important;overflow-y:auto;overscroll-behavior-y:contain;background:#f9fbfb; }
  body[data-qcm-route^="gatePassApproval/"] .topbar { position:absolute !important;z-index:210;top:17px;right:max(22px,calc((100% - 760px)/2 + 22px));display:block !important;width:auto !important;height:auto !important;min-height:0 !important;padding:0 !important;border:0 !important;background:transparent !important;box-shadow:none !important; }
  body[data-qcm-route^="gatePassApproval/"] .topbar > * { display:none !important; }
  body[data-qcm-route^="gatePassApproval/"] .topbar > .dropdown:has(#notifBtn) { display:block !important; }
  body[data-qcm-route^="gatePassApproval/"] #notifBtn { display:grid;place-items:center;width:48px;height:48px;padding:0;border:0;background:transparent;color:#fff;font-size:28px;box-shadow:none; }
  body[data-qcm-route^="gatePassApproval/"] #notifBtn:hover,body[data-qcm-route^="gatePassApproval/"] #notifBtn:focus-visible { background:rgba(255,255,255,.12); }
  body[data-qcm-route^="gatePassApproval/"] #notifBtn .dot { background:#ff3131;border:2px solid var(--gpa-blue,#00668e); }
  body[data-qcm-route^="gatePassApproval/"] #notifMenu { position:fixed;z-index:220;top:67px;right:14px;width:min(390px,calc(100vw - 28px));max-height:min(540px,calc(100dvh - 90px));overflow:auto;color:#172033;text-align:left; }
  .gpa-page { width:100%;max-width:760px; }
  .gpa-surface { padding-left:29px;padding-right:29px; }
  #mobilePrimaryNav.gpa-guardian-nav [aria-current="page"] { position:relative;transform:translateY(-18px);width:82px;height:82px;border-radius:50%;background:linear-gradient(145deg,#007f8e,#00576d);color:#fff;box-shadow:0 8px 20px rgba(0,74,91,.28); }
  #mobilePrimaryNav.gpa-guardian-nav [aria-current="page"] i { font-size:25px; }
  #mobilePrimaryNav.gpa-guardian-nav [aria-current="page"] span { color:#fff;font-weight:700; }
}
@media (max-width:599px) {
  .gpa-hero { min-height:175px;padding:9px 18px 20px;border-radius:0 0 14px 14px; }
  .gpa-brand { gap:8px;max-width:calc(100% - 58px);padding-bottom:6px; }
  .gpa-brand img { width:43px;height:43px; }
  .gpa-brand strong { font-size:20px; }
  .gpa-hero h2 { margin-top:10px;font-size:28px; }
  .gpa-hero p { font-size:18px; }
  .gpa-surface { padding:0 16px 112px; }
  .gpa-steps { grid-template-columns:minmax(0,1fr) 10px minmax(0,1.35fr) 10px minmax(0,.85fr);gap:3px;padding-top:18px; }
  .gpa-step { min-width:0;gap:7px;padding:0 2px 13px;font-size:14px; }
  .gpa-step span { min-width:0;white-space:normal;text-align:center; }
  .gpa-step b { width:34px;height:34px;font-size:16px; }
  .gpa-steps > i { min-width:10px; }
  .gpa-permission,.gpa-decision { gap:15px;margin:15px 0 12px;padding:15px 13px;border-radius:14px; }
  .gpa-permission > i { width:49px;height:49px;font-size:25px; }
  .gpa-permission span,.gpa-decision span { font-size:16px; }
  .gpa-permission strong,.gpa-decision strong { font-size:20px; }
  .gpa-card { margin-bottom:11px;padding:14px 15px;border-radius:15px; }
  .gpa-student { grid-template-columns:92px 1fr;gap:15px; }
  .gpa-student-photo { width:92px;height:92px;font-size:36px; }
  .gpa-student h3 { font-size:23px; }
  .gpa-student p { font-size:16px; }
  .gpa-card-title { gap:12px;font-size:20px; }
  .gpa-card-title b { width:36px;height:36px;font-size:17px; }
  .gpa-detail-row { grid-template-columns:49px 1fr minmax(145px,auto);min-height:59px;margin-left:0; }
  .gpa-detail-row > i { width:42px;height:42px;font-size:20px; }
  .gpa-detail-row span { font-size:15px; }
  .gpa-detail-row strong { font-size:16px;text-align:right; }
  .gpa-detail-row em { padding:0 2px; }
  .gpa-pickup { grid-template-columns:74px 1fr;gap:12px;padding:2px 0 0; }
  .gpa-pickup-avatar { width:70px;height:70px;font-size:31px; }
  .gpa-pickup > div:nth-child(2) > strong { font-size:19px; }
  .gpa-pickup p { font-size:16px; }
  .gpa-identity { grid-column:1/-1;flex-direction:row;align-items:center;justify-content:space-between;gap:8px;padding-left:86px; }
  .gpa-identity > strong { padding:8px 9px;font-size:14px;white-space:normal; }
  .gpa-identity > span { font-size:14px;white-space:nowrap; }
  .gpa-identity > span b { font-size:16px; }
  .gpa-confirm { gap:13px;margin-bottom:12px;padding:12px 13px;font-size:16px; }
  .gpa-confirm input { width:27px;height:27px; }
  .gpa-btn { min-height:56px;border-radius:10px;font-size:19px;gap:12px; }
  .gpa-btn i { font-size:23px; }
  .gpa-safety { gap:12px;margin-top:13px;padding:12px 13px;font-size:15px; }
  .gpa-safety i { font-size:23px; }
  .gpa-received { margin-top:14px;font-size:14px; }
}
@media (max-width:390px) {
  .gpa-surface { padding-left:10px;padding-right:10px; }
  .gpa-step { flex-direction:column;gap:2px;line-height:1.05;text-align:center; }
  .gpa-step span { max-width:82px;white-space:normal;font-size:12px; }
  .gpa-steps > i { align-self:center;transform:translateY(-9px); }
  .gpa-student { grid-template-columns:76px 1fr;gap:11px; }
  .gpa-student-photo { width:76px;height:76px; }
  .gpa-student h3 { font-size:21px; }
  .gpa-student p { font-size:15px; }
  .gpa-detail-row { grid-template-columns:44px 1fr;gap:2px;padding:8px 0; }
  .gpa-detail-row > i { grid-row:1/3; }
  .gpa-detail-row strong { grid-column:2;justify-self:start;text-align:left; }
  .gpa-identity { padding-left:0; }
}
@media (min-width:1025px) {
  .gpa-page { overflow:hidden;border-radius:22px;box-shadow:0 10px 34px rgba(19,36,45,.08); }
  .gpa-surface { padding-bottom:36px; }
}
@media (prefers-reduced-motion:reduce) {
  .gpa-page * { scroll-behavior:auto !important;transition:none !important; }
}

/* Phase 5 — signed one-exit Gate Pass and authenticated scan result. */
.gpf-page {
  --gpf-navy:#063854;--gpf-blue:#00698f;--gpf-green:#008945;--gpf-red:#ec1717;
  --gpf-ink:#0c1b33;--gpf-muted:#4b566e;--gpf-line:#dde2e7;
  width:min(100%,980px);min-height:100%;margin:0 auto;background:#f9fbfb;color:var(--gpf-ink);
  font:400 16px/1.4 Inter,system-ui,-apple-system,"Segoe UI",sans-serif;
}
.gpf-page *,.gpf-page *::before,.gpf-page *::after { box-sizing:border-box; }
.gpf-hero { position:relative;min-height:196px;overflow:hidden;padding:13px 36px 21px;border-radius:0 0 20px 20px;color:#fff;background:linear-gradient(118deg,var(--gpf-navy),var(--gpf-blue)); }
.gpf-hero::after { content:"";position:absolute;inset:auto -12% -105px 32%;height:190px;border-radius:50%;background:rgba(255,255,255,.045);transform:rotate(-7deg); }
.gpf-brand { position:relative;z-index:1;display:flex;align-items:center;gap:11px;width:max-content;max-width:75%;padding-bottom:7px;border-bottom:1px solid rgba(255,255,255,.18); }
.gpf-brand img { width:50px;height:50px;object-fit:contain; }
.gpf-brand strong { font-size:23px;white-space:nowrap; }
.gpf-hero h2 { position:relative;z-index:1;margin:11px 0 3px;color:#fff;font-size:34px;line-height:1.15;letter-spacing:-.025em; }
.gpf-hero-meta { position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:15px;color:#d7f7e3;font-size:19px; }
.gpf-hero-meta span { display:flex;align-items:center;gap:9px; }
.gpf-surface { padding:0 31px 116px;background:#fbfcfc; }
.gpf-steps { display:grid;grid-template-columns:auto 1fr auto 1fr auto;align-items:center;gap:14px;padding:28px 2px 0;border-bottom:3px solid #d9dcdf; }
.gpf-steps > i { display:block;height:3px;border-radius:99px;background:var(--gpf-green); }
.gpf-step { position:relative;display:flex;align-items:center;gap:10px;padding:0 13px 17px;color:var(--gpf-green);font-size:17px;font-weight:700;white-space:nowrap; }
.gpf-step::after { content:"";position:absolute;left:0;right:0;bottom:-3px;height:3px;border-radius:99px;background:var(--gpf-green); }
.gpf-step b { display:grid;place-items:center;width:38px;height:38px;flex:none;border:1px solid #b6ddcb;border-radius:50%;background:#f0faf5;color:var(--gpf-green);font-size:17px; }
.gpf-step.active b { border-color:var(--gpf-green);background:linear-gradient(145deg,#0aa35a,#00753d);color:#fff; }
.gpf-notice { display:none;margin:14px 0 0;padding:11px 14px;border:1px solid #b9ded0;border-radius:10px;background:#effaf5;color:#075f38;font-weight:650; }
.gpf-notice.show { display:flex;align-items:flex-start;gap:9px; }
.gpf-notice.error { border-color:#efb6b6;background:#fff3f3;color:#a51212; }
.gpf-qr-card { position:relative;overflow:hidden;margin:20px 0 14px;padding:16px 22px 14px;border:2px solid var(--gpf-green);border-radius:20px;background:linear-gradient(145deg,#fff,#f8fffb);box-shadow:0 4px 14px rgba(10,80,47,.09);text-align:center; }
.gpf-qr-card::before { content:"";position:absolute;inset:0;background:repeating-radial-gradient(ellipse at 0 50%,transparent 0 15px,rgba(0,137,69,.035) 16px 17px);pointer-events:none; }
.gpf-status { position:relative;z-index:1;display:flex;align-items:center;justify-content:center;gap:10px;width:max-content;max-width:100%;margin:0 auto 9px;padding:9px 28px;border-radius:9px;background:linear-gradient(100deg,#007f40,#00a14f);color:#fff;font-size:22px;font-weight:800; }
.state-out .gpf-status { background:linear-gradient(100deg,#006b91,#008eae); }
.state-overdue .gpf-status { background:linear-gradient(100deg,#c86200,#ef8b00); }
.state-returned .gpf-status { background:linear-gradient(100deg,#126d4a,#269a67); }
.gpf-qr-card > p { position:relative;z-index:1;margin:0 0 9px;font-size:17px; }
.gpf-qr-card > p strong { color:var(--gpf-green);font-size:19px; }
.gpf-stamp { position:absolute;z-index:1;top:19px;right:20px;display:grid;place-items:center;width:112px;height:112px;border:2px solid var(--gpf-green);border-radius:50%;color:var(--gpf-green);font-size:10px;font-weight:800;letter-spacing:.08em;line-height:1.25;transform:rotate(7deg); }
.gpf-stamp img { width:48px;height:48px;object-fit:contain; }
.gpf-qr-wrap { position:relative;z-index:1;display:grid;place-items:center;width:240px;height:240px;margin:0 auto 3px;padding:8px;border-radius:12px;background:#fff;box-shadow:0 3px 13px rgba(0,0,0,.12); }
.gpf-qr-wrap canvas { display:block;width:224px!important;height:224px!important;image-rendering:pixelated; }
.gpf-qr-error { display:grid;place-items:center;width:100%;height:100%;padding:20px;background:#fff3f3;color:#a51212;font-weight:700; }
.gpf-qr-error[hidden] { display:none!important; }
.gpf-qr-card > small { position:relative;z-index:1;display:block;color:#43506b;font-size:16px; }
.gpf-validity { position:relative;z-index:1;display:flex;align-items:center;justify-content:center;gap:8px;width:max-content;max-width:100%;margin:11px auto 0;padding:8px 15px;border:1px solid var(--gpf-green);border-radius:10px;background:#f5fcf8;color:#087440;font-weight:750; }
.state-out .gpf-validity { border-color:#167b9e;color:#08637f; }.state-overdue .gpf-validity { border-color:#d47717;background:#fff8ed;color:#a55000; }.state-returned .gpf-validity { border-color:#3d9670;color:#166d49; }
.gpf-card { margin-bottom:12px;padding:15px 20px;border:1px solid #e0e3e6;border-radius:17px;background:#fff;box-shadow:0 4px 13px rgba(20,34,44,.08); }
.gpf-student { display:grid;grid-template-columns:106px 1fr;align-items:center;gap:23px; }
.gpf-photo { display:grid;place-items:center;width:106px;height:106px;overflow:hidden;border-radius:50%;background:#e9f0f2;color:var(--gpf-green);font-size:40px;font-weight:800; }
.gpf-photo img { width:100%;height:100%;object-fit:cover; }
.gpf-student h3 { margin:0 0 4px;color:#0b0d12;font-size:27px; }.gpf-student p { margin:3px 0;color:var(--gpf-muted);font-size:17px; }.gpf-student p strong { color:#0862b6; }
.gpf-pickup { display:grid;grid-template-columns:72px 1fr auto;align-items:center;gap:16px; }
.gpf-card-icon { display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:#eaf8f1;color:var(--gpf-green);font-size:28px; }
.gpf-pickup small,.gpf-guardian small { display:block;color:var(--gpf-green);font-weight:700; }
.gpf-pickup h3 { margin:2px 0;color:#101216;font-size:20px; }.gpf-pickup h3 span { color:var(--gpf-muted);font-size:16px;font-weight:500; }.gpf-pickup em { padding:0 5px;font-style:normal; }
.gpf-pickup p { margin:3px 0;color:var(--gpf-muted); }.gpf-pickup p i { margin-right:6px;color:var(--gpf-green); }
.gpf-verified { display:flex;align-items:center;gap:7px;padding:9px 12px;border:1px solid #3da873;border-radius:10px;background:#f4fcf8;color:#087440;white-space:nowrap; }
.gpf-visit { display:grid;grid-template-columns:72px repeat(3,1fr);align-items:center;gap:0; }
.gpf-visit > div { display:flex;flex-direction:column;min-height:70px;padding:4px 20px;border-left:1px solid #d4dbe2; }.gpf-visit small { color:var(--gpf-muted); }.gpf-visit strong { margin-top:3px;color:#111827;font-size:18px; }.gpf-visit span { color:#111827; }
.gpf-guardian { display:grid;grid-template-columns:76px 1fr;align-items:center;gap:18px; }
.gpf-guardian-check { display:grid;place-items:center;width:66px;height:66px;border:5px solid var(--gpf-green);border-radius:50%;color:var(--gpf-green);font-size:29px; }
.gpf-guardian h3 { margin:2px 0;color:#111827;font-size:21px; }.gpf-guardian p { margin:2px 0;color:var(--gpf-muted); }
.gpf-issued { margin:3px 0 11px;text-align:center;color:#4e5970; }
.gpf-actions { display:grid;gap:10px; }.gpf-btn { display:flex;align-items:center;justify-content:center;gap:14px;width:100%;min-height:62px;border-radius:12px;background:#fff;font-family:inherit;font-size:20px;font-weight:750;line-height:1.2;cursor:pointer; }
.gpf-btn i { font-size:24px; }.gpf-btn.share { border:1px solid var(--gpf-green);background:linear-gradient(105deg,#00843f,#00a14d);color:#fff; }.gpf-btn.movement.out { border:2px solid var(--gpf-red);color:var(--gpf-red); }.gpf-btn.movement.returned { border:2px solid var(--gpf-green);color:var(--gpf-green); }.gpf-btn.print { min-height:46px;border:0;color:#075db8; }.gpf-btn:disabled { cursor:not-allowed;opacity:.6; }
.gpf-safety { display:flex;align-items:flex-start;gap:15px;margin-top:10px;padding:13px 17px;border:1px solid #c3d9ef;border-radius:11px;background:#f3f8fe;color:#12335d;font-size:15px; }.gpf-safety i { color:#0860b8;font-size:23px; }
.gpf-timeline { position:relative;display:grid;grid-template-columns:repeat(4,1fr);margin:20px 0 0;padding:0 4px; }.gpf-timeline::before { content:"";position:absolute;top:15px;left:9%;right:9%;border-top:2px dotted #389a69; }
.gpf-timeline.with-principal { grid-template-columns:repeat(5,1fr); }
.gpf-time { position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:5px;text-align:center; }.gpf-time > b { display:grid;place-items:center;width:31px;height:31px;border-radius:50%;background:#fff;border:2px solid #6d94c5;color:#1763ae; }.gpf-time.done > b { border-color:var(--gpf-green);background:var(--gpf-green);color:#fff; }.gpf-time.current > b { background:#fff; }.state-overdue .gpf-time.current > b { border-color:#de780e;color:#c76300; }
.gpf-time span { display:flex;flex-direction:column; }.gpf-time strong { color:#131a2b;font-size:13px; }.gpf-time small { color:#59647a;font-size:11px; }
.gpf-confirm-field { display:flex;align-items:flex-start;gap:13px;padding:13px;border:1px solid #c9d4dd;border-radius:10px;background:#f8fafb;color:#263149;font-size:16px; }.gpf-confirm-field input { width:25px;height:25px;flex:none;margin:0;accent-color:var(--gpf-green); }
.gpf-loading,.gpf-load-error { display:flex;flex-direction:column;align-items:center;justify-content:center;gap:11px;min-height:75vh;padding:25px;text-align:center;color:#59647a; }.gpf-loading i,.gpf-load-error i { color:var(--gpf-green);font-size:35px; }.gpf-load-error strong { color:var(--gpf-ink);font-size:22px; }.gpf-load-error p { margin:0; }
.gpf-page.is-busy { cursor:progress; }

.gps-page { width:min(100%,620px);min-height:100%;margin:0 auto;padding:22px 18px 105px;background:#f7faf9;color:#102039;font:400 16px/1.42 Inter,system-ui,-apple-system,"Segoe UI",sans-serif; }
.gps-page * { box-sizing:border-box; }.gps-page > header { display:flex;align-items:center;gap:14px;margin:-22px -18px 22px;padding:24px 21px;background:linear-gradient(118deg,#063854,#00698f);color:#fff; }.gps-page > header > i { font-size:34px; }.gps-page > header span { display:flex;flex-direction:column; }.gps-page > header strong { font-size:23px; }
.gps-result { padding:24px 18px;border:2px solid #41a879;border-radius:17px;background:#f2fcf6;text-align:center;box-shadow:0 4px 13px rgba(20,34,44,.08); }.gps-result > i { color:var(--gpf-green);font-size:48px; }.gps-result h2 { margin:8px 0 3px;color:#087440;font-size:27px; }.gps-result p { margin:0;color:#46536a; }.gps-page.out .gps-result { border-color:#398baa;background:#effaff; }.gps-page.out .gps-result > i,.gps-page.out .gps-result h2 { color:#08708f; }.gps-page.overdue .gps-result { border-color:#dc861f;background:#fff8ee; }.gps-page.overdue .gps-result > i,.gps-page.overdue .gps-result h2 { color:#bd5c00; }.gps-page.invalid .gps-result { border-color:#e55353;background:#fff3f3; }.gps-page.invalid .gps-result > i,.gps-page.invalid .gps-result h2 { color:#d51e1e; }
.gps-card { margin-top:14px;padding:18px;border:1px solid #dee3e7;border-radius:15px;background:#fff;box-shadow:0 3px 11px rgba(20,34,44,.07); }.gps-card h3 { margin:0;color:#111827;font-size:23px; }.gps-card p { margin:4px 0;color:#4d596f; }.gps-card hr { border:0;border-top:1px solid #e1e5e9;margin:13px 0; }.gps-card small,.gps-card > strong { display:block; }.gps-card small { color:#087440;font-weight:700; }
.gps-open { display:flex;align-items:center;justify-content:center;gap:11px;width:100%;min-height:56px;margin-top:14px;border:1px solid var(--gpf-green,#008945);border-radius:11px;background:linear-gradient(105deg,#00843f,#00a14d);color:#fff;font-family:inherit;font-size:18px;font-weight:750;line-height:1.2;cursor:pointer; }.gps-note { display:flex;align-items:flex-start;gap:11px;margin-top:14px;padding:13px;border:1px solid #c3d9ef;border-radius:10px;background:#f2f7fd;color:#12335d; }.gps-note i { color:#0860b8;font-size:22px; }

@media (max-width:1024px) {
  body:is([data-qcm-route^="gatePass/"],[data-qcm-route^="gatePassScan/"]) .main { min-height:100dvh; }
  body:is([data-qcm-route^="gatePass/"],[data-qcm-route^="gatePassScan/"]) .content { padding:0!important;overflow-y:auto;overscroll-behavior-y:contain;background:#f9fbfb; }
  body:is([data-qcm-route^="gatePass/"],[data-qcm-route^="gatePassScan/"]) .topbar { position:absolute!important;z-index:210;top:17px;right:max(22px,calc((100% - 760px)/2 + 22px));display:block!important;width:auto!important;height:auto!important;min-height:0!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important; }
  body:is([data-qcm-route^="gatePass/"],[data-qcm-route^="gatePassScan/"]) .topbar > * { display:none!important; }
  body:is([data-qcm-route^="gatePass/"],[data-qcm-route^="gatePassScan/"]) .topbar > .dropdown:has(#notifBtn) { display:block!important; }
  body:is([data-qcm-route^="gatePass/"],[data-qcm-route^="gatePassScan/"]) #notifBtn { display:grid;place-items:center;width:48px;height:48px;padding:0;border:0;background:transparent;color:#fff;font-size:28px;box-shadow:none; }
  body:is([data-qcm-route^="gatePass/"],[data-qcm-route^="gatePassScan/"]) #notifMenu { position:fixed;z-index:220;top:67px;right:14px;width:min(390px,calc(100vw - 28px));max-height:min(540px,calc(100dvh - 90px));overflow:auto;color:#172033;text-align:left; }
  .gpf-page { width:100%;max-width:760px; }.gps-page { width:100%;max-width:620px; }
  #mobilePrimaryNav:is(.qgp-warden-nav,.gpa-guardian-nav) [aria-current="page"] { position:relative;transform:translateY(-18px);width:82px;height:82px;border-radius:50%;background:linear-gradient(145deg,#007f8e,#00576d);color:#fff;box-shadow:0 8px 20px rgba(0,74,91,.28); }
  #mobilePrimaryNav:is(.qgp-warden-nav,.gpa-guardian-nav) [aria-current="page"] span { color:#fff;font-weight:700; }
}
@media (max-width:599px) {
  .gpf-hero { min-height:175px;padding:9px 18px 19px;border-radius:0 0 14px 14px; }.gpf-brand { gap:8px;max-width:calc(100% - 58px);padding-bottom:6px; }.gpf-brand img { width:43px;height:43px; }.gpf-brand strong { font-size:20px; }.gpf-hero h2 { margin-top:9px;font-size:28px; }.gpf-hero-meta { font-size:16px; }
  .gpf-surface { padding:0 15px 110px; }.gpf-steps { grid-template-columns:minmax(0,1fr) 10px minmax(0,1.35fr) 10px minmax(0,.85fr);gap:3px;padding-top:18px; }.gpf-step { min-width:0;gap:6px;padding:0 2px 13px;font-size:14px; }.gpf-step span { min-width:0;white-space:normal;text-align:center; }.gpf-step b { width:33px;height:33px;font-size:15px; }.gpf-steps > i { min-width:10px; }
  .gpf-qr-card { margin-top:14px;padding:13px 12px 12px;border-radius:15px; }.gpf-status { padding:8px 18px;font-size:19px; }.gpf-stamp { top:54px;right:11px;width:76px;height:76px;font-size:7px; }.gpf-stamp img { width:34px;height:34px; }.gpf-qr-wrap { width:222px;height:222px;padding:7px; }.gpf-qr-wrap canvas { width:208px!important;height:208px!important; }.gpf-validity { padding:7px 11px;font-size:15px; }
  .gpf-card { padding:12px 13px;border-radius:14px; }.gpf-student { grid-template-columns:82px 1fr;gap:14px; }.gpf-photo { width:82px;height:82px;font-size:33px; }.gpf-student h3 { font-size:22px; }.gpf-student p { font-size:15px; }
  .gpf-pickup { grid-template-columns:55px 1fr;gap:10px; }.gpf-card-icon { width:50px;height:50px;font-size:22px; }.gpf-pickup h3 { font-size:18px; }.gpf-pickup h3 span { font-size:15px; }.gpf-pickup p { font-size:15px; }.gpf-verified { grid-column:2;justify-self:start;padding:7px 9px;font-size:14px; }
  .gpf-visit { grid-template-columns:55px repeat(3,1fr); }.gpf-visit > div { min-height:66px;padding:2px 9px; }.gpf-visit small { font-size:13px; }.gpf-visit strong { font-size:15px; }.gpf-visit span { font-size:14px; }
  .gpf-guardian { grid-template-columns:58px 1fr;gap:12px; }.gpf-guardian-check { width:52px;height:52px;border-width:4px;font-size:22px; }.gpf-guardian h3 { font-size:18px; }.gpf-guardian p { font-size:14px; }
  .gpf-btn { min-height:56px;font-size:18px; }.gpf-btn.print { min-height:44px; }.gpf-safety { font-size:14px; }.gpf-timeline { margin-top:17px; }.gpf-time strong { font-size:11px; }.gpf-time small { font-size:9px; }
}
@media (max-width:390px) {
  .gpf-surface { padding-left:9px;padding-right:9px; }.gpf-step { flex-direction:column;gap:2px;text-align:center;line-height:1.05; }.gpf-step span { max-width:86px;white-space:normal;font-size:12px; }.gpf-steps > i { transform:translateY(-8px); }
  .gpf-stamp { display:none; }.gpf-visit { grid-template-columns:48px 1fr 1fr; }.gpf-visit > div:last-child { grid-column:2/4;border-top:1px solid #e2e6e9;padding-top:7px; }.gpf-time span { min-width:0; }.gpf-time strong { overflow-wrap:anywhere; }
}
@media (min-width:1025px) { .gpf-page { overflow:hidden;border-radius:22px;box-shadow:0 10px 34px rgba(19,36,45,.08); }.gpf-surface { padding-bottom:36px; } }
@media print {
  body[data-qcm-route^="gatePass/"] .sidebar,body[data-qcm-route^="gatePass/"] .topbar,body[data-qcm-route^="gatePass/"] #mobilePrimaryNav,.gpf-actions,.gpf-safety { display:none!important; }
  body[data-qcm-route^="gatePass/"] .content { overflow:visible!important;padding:0!important; }.gpf-page { width:100%;max-width:none;box-shadow:none!important; }.gpf-surface { padding-bottom:0; }.gpf-qr-card,.gpf-card { break-inside:avoid;box-shadow:none; }
}
@media (prefers-reduced-motion:reduce) { .gpf-page *,.gps-page * { scroll-behavior:auto!important;transition:none!important; } }

/* Guardian pass compactness, private Warden-photo preview and route-owned scrolling. */
.gpa-page .gp-private-photo-frame,.gpf-page .gp-private-photo-frame,.gpr-page .gp-private-photo-frame { position:relative;overflow:hidden;border:1px solid #bcd9cc;background:linear-gradient(145deg,#edf4f2,#dbe9e4); }
.gpa-page .gp-private-photo-frame > img,.gpf-page .gp-private-photo-frame > img,.gpr-page .gp-private-photo-frame > img { display:block;width:100%;height:100%;object-fit:cover; }
.gpa-page .gp-private-photo-empty,.gpf-page .gp-private-photo-empty,.gpr-page .gp-private-photo-empty { display:grid;width:100%;height:100%;place-items:center;color:#087541;font-size:34px; }
.gpa-page .gp-private-photo-empty[hidden],.gpf-page .gp-private-photo-empty[hidden],.gpr-page .gp-private-photo-empty[hidden] { display:none!important; }
.gpa-photo-label { display:block;margin-top:7px;color:#087541;font-size:13px;font-weight:700;line-height:1.25; }
.gpa-photo-label i { margin-right:4px; }
.gpa-remarks-row strong { max-width:430px;overflow-wrap:anywhere;white-space:normal; }
body[data-qcm-route^="gatePassApproval/"] .content { overflow-y:auto!important;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch; }
body[data-qcm-route^="gatePassApproval/"] #view { height:auto!important;min-height:100%!important;max-height:none!important;overflow:visible!important; }

@media (min-width:1025px) {
  body[data-qcm-route^="gatePassApproval/"] .gpa-page,
  body[data-qcm-route^="gatePassApproval/"] .gpf-page { width:min(100%,760px);overflow:visible;border-radius:18px;box-shadow:0 8px 26px rgba(19,36,45,.08); }
  body[data-qcm-route^="gatePassApproval/"] :is(.gpa-hero,.gpf-hero) { min-height:150px;padding:10px 27px 16px;border-radius:0 0 17px 17px; }
  body[data-qcm-route^="gatePassApproval/"] :is(.gpa-brand,.gpf-brand) { gap:9px;padding-bottom:5px; }
  body[data-qcm-route^="gatePassApproval/"] :is(.gpa-brand,.gpf-brand) img { width:42px;height:42px; }
  body[data-qcm-route^="gatePassApproval/"] :is(.gpa-brand,.gpf-brand) strong { font-size:20px; }
  body[data-qcm-route^="gatePassApproval/"] :is(.gpa-hero,.gpf-hero) h2 { margin:8px 0 2px;font-size:28px; }
  body[data-qcm-route^="gatePassApproval/"] :is(.gpa-hero p,.gpf-hero-meta) { font-size:16px; }
  body[data-qcm-route^="gatePassApproval/"] :is(.gpa-surface,.gpf-surface) { padding-left:24px;padding-right:24px;padding-bottom:30px; }
  body[data-qcm-route^="gatePassApproval/"] :is(.gpa-steps,.gpf-steps) { gap:10px;padding-top:19px; }
  body[data-qcm-route^="gatePassApproval/"] :is(.gpa-step,.gpf-step) { gap:7px;padding:0 8px 12px;font-size:15px; }
  body[data-qcm-route^="gatePassApproval/"] :is(.gpa-step,.gpf-step) b { width:33px;height:33px;font-size:15px; }
  body[data-qcm-route^="gatePassApproval/"] :is(.gpa-permission,.gpa-decision) { gap:14px;margin:17px 0 12px;padding:14px 16px;border-radius:14px; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-permission > i { width:48px;height:48px;font-size:23px; }
  body[data-qcm-route^="gatePassApproval/"] :is(.gpa-permission,.gpa-decision) span { font-size:15px; }
  body[data-qcm-route^="gatePassApproval/"] :is(.gpa-permission,.gpa-decision) strong { font-size:20px; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-card { margin-bottom:11px;padding:13px 17px;border-radius:15px; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-student { grid-template-columns:88px 1fr;gap:18px; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-student-photo { width:88px;height:88px;font-size:34px; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-student h3 { margin-bottom:3px;font-size:22px; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-student p { font-size:15px; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-card-title { gap:10px;font-size:19px; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-card-title b { width:34px;height:34px;font-size:16px; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-detail-row { grid-template-columns:45px minmax(110px,1fr) minmax(190px,auto);min-height:52px; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-detail-row > i { width:38px;height:38px;font-size:18px; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-detail-row span { font-size:15px; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-detail-row strong { font-size:16px; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-pickup { grid-template-columns:88px minmax(175px,1fr) auto;gap:13px;padding:2px 3px 0; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-pickup-avatar { width:82px;height:82px;border-radius:13px;font-size:34px; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-pickup > div:nth-child(2) > strong { font-size:19px; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-pickup p { font-size:15px; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-identity { gap:8px; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-identity > strong { padding:7px 9px;font-size:14px; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-identity > span { font-size:14px; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-confirm { gap:13px;margin-bottom:11px;padding:11px 14px;font-size:15px; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-confirm input { width:25px;height:25px; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-actions { gap:8px; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-btn { min-height:50px;border-radius:10px;font-size:17px;gap:10px; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-btn i { font-size:20px; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-safety { gap:11px;margin-top:12px;padding:11px 13px;font-size:14px; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-safety i { font-size:21px; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-received { margin-top:12px;font-size:13px; }

  body[data-qcm-route^="gatePassApproval/"] .gpf-qr-card { margin:14px 0 10px;padding:11px 16px 10px;border-radius:15px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-status { margin-bottom:6px;padding:7px 21px;font-size:18px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-qr-card > p { margin-bottom:6px;font-size:15px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-qr-card > p strong { font-size:17px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-stamp { top:15px;right:16px;width:80px;height:80px;font-size:7px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-stamp img { width:34px;height:34px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-qr-wrap { width:190px;height:190px;padding:7px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-qr-wrap canvas { width:176px!important;height:176px!important; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-qr-card > small { font-size:14px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-validity { margin-top:7px;padding:6px 11px;font-size:14px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-card { margin-bottom:9px;padding:11px 15px;border-radius:14px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-student { grid-template-columns:76px 1fr;gap:15px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-photo { width:76px;height:76px;font-size:29px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-student h3 { font-size:21px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-student p { font-size:14px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-pickup { grid-template-columns:64px 1fr auto;gap:11px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-card-icon { width:58px;height:58px;border-radius:11px;font-size:22px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-pickup h3 { font-size:17px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-pickup h3 span,body[data-qcm-route^="gatePassApproval/"] .gpf-pickup p { font-size:14px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-verified { padding:7px 9px;font-size:13px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-visit { grid-template-columns:60px repeat(3,1fr); }
  body[data-qcm-route^="gatePassApproval/"] .gpf-visit > div { min-height:58px;padding:2px 13px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-visit strong { font-size:15px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-guardian { grid-template-columns:58px 1fr;gap:12px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-guardian-check { width:50px;height:50px;border-width:4px;font-size:21px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-guardian h3 { font-size:17px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-guardian p { font-size:14px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-issued { margin-bottom:8px;font-size:14px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-actions { gap:7px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-btn { min-height:49px;border-radius:10px;font-size:17px;gap:10px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-btn i { font-size:20px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-btn.print { min-height:40px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-safety { padding:10px 12px;font-size:13px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-timeline { margin-top:14px; }
}

@media (max-width:1024px) {
  html:has(body[data-qcm-route^="gatePassApproval/"]),body[data-qcm-route^="gatePassApproval/"] { height:auto!important;min-height:100%!important;overflow-x:hidden!important;overflow-y:auto!important;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;touch-action:pan-y; }
  body[data-qcm-route^="gatePassApproval/"] :is(.app,.main,.content,#view) { height:auto!important;min-height:100dvh!important;max-height:none!important;overflow:visible!important;overscroll-behavior-y:auto!important;-webkit-overflow-scrolling:touch;touch-action:pan-y; }
  body[data-qcm-route^="gatePassApproval/"] .content { padding:0!important;background:#f9fbfb; }
  body[data-qcm-route^="gatePassApproval/"] #mobilePrimaryNav { position:fixed!important; }
  body[data-qcm-route^="gatePassApproval/"] :is(.gpa-page,.gpf-page) { width:100%;max-width:620px;min-height:100dvh;overflow:visible;touch-action:pan-y; }
  body[data-qcm-route^="gatePassApproval/"] :is(.gpa-hero,.gpf-hero) { min-height:145px;padding:8px 16px 15px;border-radius:0 0 14px 14px; }
  body[data-qcm-route^="gatePassApproval/"] :is(.gpa-brand,.gpf-brand) { gap:7px;padding-bottom:4px; }
  body[data-qcm-route^="gatePassApproval/"] :is(.gpa-brand,.gpf-brand) img { width:38px;height:38px; }
  body[data-qcm-route^="gatePassApproval/"] :is(.gpa-brand,.gpf-brand) strong { font-size:18px; }
  body[data-qcm-route^="gatePassApproval/"] :is(.gpa-hero,.gpf-hero) h2 { margin:7px 0 2px;font-size:24px; }
  body[data-qcm-route^="gatePassApproval/"] :is(.gpa-hero p,.gpf-hero-meta) { font-size:16px; }
  body[data-qcm-route^="gatePassApproval/"] :is(.gpa-surface,.gpf-surface) { padding:0 12px calc(96px + env(safe-area-inset-bottom)); }
  body[data-qcm-route^="gatePassApproval/"] :is(.gpa-steps,.gpf-steps) { gap:3px;padding-top:14px; }
  body[data-qcm-route^="gatePassApproval/"] :is(.gpa-step,.gpf-step) { gap:5px;padding:0 1px 10px;font-size:13px; }
  body[data-qcm-route^="gatePassApproval/"] :is(.gpa-step,.gpf-step) b { width:30px;height:30px;font-size:14px; }
  body[data-qcm-route^="gatePassApproval/"] :is(.gpa-permission,.gpa-decision) { gap:11px;margin:12px 0 9px;padding:11px 10px;border-radius:12px; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-permission > i { width:42px;height:42px;font-size:21px; }
  body[data-qcm-route^="gatePassApproval/"] :is(.gpa-permission,.gpa-decision) span { font-size:15px; }
  body[data-qcm-route^="gatePassApproval/"] :is(.gpa-permission,.gpa-decision) strong { font-size:18px; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-card { margin-bottom:9px;padding:11px 12px;border-radius:13px; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-student { grid-template-columns:72px 1fr;gap:11px; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-student-photo { width:72px;height:72px;font-size:29px; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-student h3 { margin-bottom:2px;font-size:20px; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-student p { margin:2px 0;font-size:15px; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-card-title { gap:9px;margin-bottom:4px;font-size:18px; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-card-title b { width:32px;height:32px;font-size:15px; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-detail-row { grid-template-columns:41px 1fr minmax(128px,auto);min-height:48px;margin-left:0; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-detail-row > i { width:35px;height:35px;font-size:17px; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-detail-row span { font-size:14px; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-detail-row strong { max-width:190px;font-size:15px;text-align:right;overflow-wrap:anywhere; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-pickup { grid-template-columns:70px 1fr;gap:10px;padding:1px 0 0; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-pickup-avatar { width:66px;height:66px;border-radius:11px;font-size:28px; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-pickup > div:nth-child(2) > strong { font-size:18px; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-pickup p { margin:2px 0;font-size:15px; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-photo-label { margin-top:4px;font-size:12px; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-identity { grid-column:1/-1;flex-direction:row;align-items:center;justify-content:space-between;gap:7px;padding-left:80px; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-identity > strong { padding:6px 8px;font-size:13px;white-space:normal; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-identity > span { font-size:13px;white-space:normal;text-align:right; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-identity > span b { font-size:15px; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-confirm { gap:10px;margin-bottom:9px;padding:10px 11px;font-size:15px; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-confirm input { width:24px;height:24px; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-actions { gap:7px; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-btn { min-height:50px;border-radius:9px;font-size:17px;gap:9px; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-btn i { font-size:20px; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-safety { gap:9px;margin-top:10px;padding:10px 11px;font-size:14px; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-safety i { font-size:20px; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-received { margin-top:10px;font-size:13px; }

  body[data-qcm-route^="gatePassApproval/"] .gpf-qr-card { margin:11px 0 9px;padding:10px 10px 9px;border-radius:13px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-status { margin-bottom:5px;padding:6px 16px;font-size:17px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-qr-card > p { margin-bottom:5px;font-size:14px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-qr-card > p strong { font-size:16px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-stamp { top:43px;right:9px;width:62px;height:62px;font-size:6px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-stamp img { width:27px;height:27px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-qr-wrap { width:184px;height:184px;padding:6px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-qr-wrap canvas { width:172px!important;height:172px!important; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-qr-card > small { font-size:14px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-validity { margin-top:6px;padding:6px 9px;font-size:14px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-card { margin-bottom:8px;padding:10px 11px;border-radius:12px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-student { grid-template-columns:68px 1fr;gap:11px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-photo { width:68px;height:68px;font-size:27px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-student h3 { font-size:19px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-student p { margin:2px 0;font-size:14px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-pickup { grid-template-columns:58px 1fr;gap:9px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-card-icon { width:54px;height:54px;border-radius:10px;font-size:20px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-pickup h3 { font-size:17px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-pickup h3 span,body[data-qcm-route^="gatePassApproval/"] .gpf-pickup p { font-size:14px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-verified { grid-column:2;justify-self:start;padding:6px 8px;font-size:13px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-visit { grid-template-columns:52px repeat(2,1fr); }
  body[data-qcm-route^="gatePassApproval/"] .gpf-visit > div { min-height:57px;padding:2px 8px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-visit > div:last-child { grid-column:2/4;border-top:1px solid #e2e6e9;padding-top:6px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-visit small { font-size:12px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-visit strong { font-size:14px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-visit span { font-size:13px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-guardian { grid-template-columns:50px 1fr;gap:9px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-guardian-check { width:44px;height:44px;border-width:3px;font-size:19px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-guardian h3 { font-size:17px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-guardian p { font-size:13px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-issued { margin:2px 0 7px;font-size:13px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-actions { gap:7px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-btn { min-height:49px;border-radius:9px;font-size:17px;gap:9px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-btn i { font-size:20px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-btn.print { min-height:39px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-safety { gap:9px;margin-top:8px;padding:9px 10px;font-size:13px; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-timeline { margin-top:13px; }
}

@media (max-width:390px) {
  body[data-qcm-route^="gatePassApproval/"] :is(.gpa-surface,.gpf-surface) { padding-left:8px;padding-right:8px; }
  body[data-qcm-route^="gatePassApproval/"] :is(.gpa-step,.gpf-step) { flex-direction:column;gap:1px;line-height:1.05;text-align:center; }
  body[data-qcm-route^="gatePassApproval/"] :is(.gpa-step,.gpf-step) span { max-width:82px;font-size:11px;white-space:normal; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-detail-row { grid-template-columns:38px 1fr;gap:1px;padding:5px 0; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-detail-row > i { grid-row:1/3; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-detail-row strong { grid-column:2;justify-self:start;max-width:100%;text-align:left; }
  body[data-qcm-route^="gatePassApproval/"] .gpa-identity { padding-left:0; }
  body[data-qcm-route^="gatePassApproval/"] .gpf-stamp { display:none; }
}

/* Principal review queue — scoped, compact and independently scrollable. */
body:is([data-qcm-route="principalGatePass"],[data-qcm-route^="principalGatePass/"]) .content { padding:0!important;overflow-y:auto!important;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;background:#f7fafc; }
body:is([data-qcm-route="principalGatePass"],[data-qcm-route^="principalGatePass/"]) #view { min-height:100%;height:auto!important;max-height:none!important;overflow:visible!important; }
.gpr-page { width:min(100%,760px);min-height:100%;margin:0 auto;background:#f8fbfc;color:#10233a;font-family:inherit; }
.gpr-hero { min-height:154px;padding:13px 28px 18px;border-radius:0 0 18px 18px;background:linear-gradient(135deg,#062d51,#006f8b);color:#fff; }
.gpr-brand { display:flex;align-items:center;gap:10px;padding-bottom:7px;border-bottom:1px solid rgba(255,255,255,.16); }
.gpr-brand img { width:42px;height:42px;border-radius:50%;background:#fff; }
.gpr-brand strong { font-size:20px;letter-spacing:.01em; }.gpr-brand button { display:grid;width:38px;height:38px;place-items:center;border:0;border-radius:50%;background:rgba(255,255,255,.13);color:#fff;font-size:18px; }
.gpr-hero h2 { margin:10px 0 2px;font-size:28px;line-height:1.15; }.gpr-hero p { margin:0;color:#c7f3f5;font-size:16px; }
.gpr-surface { padding:18px 24px 34px; }.gpr-notice { display:none;margin-bottom:12px;padding:10px 12px;border:1px solid #a8ddc0;border-radius:10px;background:#edfbf3;color:#087541;font-size:15px;font-weight:700; }
.gpr-notice.show { display:flex;align-items:center;gap:8px; }.gpr-notice.error { border-color:#f3b7b7;background:#fff2f2;color:#b91c1c; }
.gpr-summary { display:grid;grid-template-columns:48px 1fr auto;align-items:center;gap:12px;margin-bottom:14px;padding:14px;border:1px solid #c9e4e8;border-radius:15px;background:#fff;box-shadow:0 4px 15px rgba(22,55,72,.08); }
.gpr-create { display:flex;align-items:center;justify-content:center;gap:9px;width:100%;min-height:50px;margin-bottom:10px;border:0;border-radius:12px;background:linear-gradient(135deg,#087a87,#07945d);color:#fff;font-family:inherit;font-size:17px;font-weight:800;line-height:1.2;cursor:pointer;box-shadow:0 5px 14px rgba(0,118,104,.2); }
.gpr-create:hover,.gpr-create:focus-visible { filter:brightness(1.04);outline:3px solid rgba(8,148,93,.2); }
.gpr-summary > span { display:grid;width:44px;height:44px;place-items:center;border-radius:12px;background:#e6f7f2;color:#008557;font-size:21px; }.gpr-summary strong,.gpr-summary small { display:block; }.gpr-summary strong { font-size:18px; }.gpr-summary small { margin-top:2px;color:#607086;font-size:14px;line-height:1.35; }.gpr-summary > b { min-width:38px;padding:7px 9px;border-radius:999px;background:#0b8b62;color:#fff;text-align:center;font-size:17px; }
.gpr-list { display:grid;gap:10px; }.gpr-request { display:grid;grid-template-columns:52px minmax(0,1fr) auto 14px;align-items:center;gap:12px;width:100%;padding:13px 14px;border:1px solid #dbe4e8;border-radius:15px;background:#fff;color:#13243a;text-align:left;box-shadow:0 4px 14px rgba(28,51,64,.07); }
.gpr-request:hover { border-color:#86c9be;transform:translateY(-1px); }.gpr-request .gpr-avatar { display:grid;width:48px;height:48px;place-items:center;border-radius:50%;background:#e9f4f4;color:#087b6e;font-size:19px;font-weight:800; }.gpr-request small,.gpr-request p,.gpr-request em { display:block;color:#627189;font-size:13px;font-style:normal; }.gpr-request h3 { margin:2px 0;font-size:18px; }.gpr-request p { margin:0;overflow-wrap:anywhere; }.gpr-request em { margin-top:5px; }.gpr-request > b { padding:6px 9px;border-radius:999px;background:#fff4dc;color:#9a5a00;font-size:12px;white-space:nowrap; }.gpr-request.guardian > b { background:#e8f3ff;color:#0754a6; }.gpr-request.approved > b,.gpr-request.returned > b { background:#e9f9ef;color:#087541; }.gpr-request.rejected > b { background:#fff0f0;color:#b42323; }.gpr-request > i { color:#7f93a8; }
.gpr-empty { padding:35px 18px;border:1px dashed #b9d2d7;border-radius:16px;background:#fff;text-align:center; }.gpr-empty i { color:#07905e;font-size:34px; }.gpr-empty strong { display:block;margin-top:8px;font-size:19px; }.gpr-empty p { margin:4px 0 0;color:#68788d;font-size:14px; }
.gpr-state { display:flex;align-items:center;gap:8px;margin-bottom:12px;padding:10px 12px;border-radius:11px;background:#fff4dc;color:#8c5700;font-size:15px;font-weight:800; }.gpr-state b { margin-left:auto;color:inherit; }.gpr-state.guardian { background:#e9f4ff;color:#0754a6; }.gpr-state.approved,.gpr-state.returned { background:#e9f9ef;color:#087541; }.gpr-state.rejected { background:#fff0f0;color:#b42323; }
.gpr-page .gpa-card { margin-bottom:10px;padding:13px 16px;border-radius:14px; }.gpr-page .gpa-student { grid-template-columns:82px 1fr;gap:15px; }.gpr-page .gpa-student-photo { width:82px;height:82px; }.gpr-page .gpa-pickup { grid-template-columns:82px minmax(160px,1fr) auto;gap:12px; }.gpr-page .gpa-pickup-avatar { width:76px;height:76px;border-radius:12px; }
.gpr-guardian { display:flex;align-items:center;gap:12px;margin-bottom:11px;padding:12px 14px;border:1px solid #f0d8a5;border-radius:13px;background:#fffaf0; }.gpr-guardian > i { display:grid;width:40px;height:40px;place-items:center;border-radius:50%;background:#fff0d0;color:#e78700;font-size:19px; }.gpr-guardian span { min-width:0; }.gpr-guardian small,.gpr-guardian strong,.gpr-guardian em { display:block; }.gpr-guardian small { color:#7a6644;font-size:13px; }.gpr-guardian strong { margin:2px 0;font-size:16px; }.gpr-guardian em { color:#7b6c56;font-size:13px;font-style:normal; }
.gpr-forward { display:flex;align-items:center;justify-content:center;gap:11px;width:100%;min-height:54px;margin-bottom:10px;border:0;border-radius:11px;background:linear-gradient(135deg,#00894f,#00a45f);color:#fff;font-size:18px;font-weight:800;box-shadow:0 6px 15px rgba(0,139,82,.22); }.gpr-forward:disabled { opacity:.7; }.gpr-forwarded { display:flex;align-items:center;gap:10px;margin-bottom:10px;padding:12px 14px;border:1px solid #acd9c1;border-radius:12px;background:#edf9f2;color:#087541; }.gpr-forwarded i { font-size:22px; }.gpr-forwarded strong,.gpr-forwarded span { display:block; }.gpr-forwarded.rejected { border-color:#f0b7b7;background:#fff2f2;color:#b42323; }

@media (max-width:1024px) {
  html:has(body:is([data-qcm-route="principalGatePass"],[data-qcm-route^="principalGatePass/"])),body:is([data-qcm-route="principalGatePass"],[data-qcm-route^="principalGatePass/"]) { height:auto!important;min-height:100%!important;overflow-x:hidden!important;overflow-y:auto!important;touch-action:pan-y; }
  body:is([data-qcm-route="principalGatePass"],[data-qcm-route^="principalGatePass/"]) :is(.app,.main,.content,#view) { height:auto!important;min-height:100dvh!important;max-height:none!important;overflow:visible!important;touch-action:pan-y; }
  .gpr-page { width:100%;max-width:620px;min-height:100dvh;padding-bottom:calc(84px + env(safe-area-inset-bottom)); }.gpr-hero { min-height:142px;padding:10px 15px 16px;border-radius:0 0 14px 14px; }.gpr-brand img { width:38px;height:38px; }.gpr-brand strong { font-size:18px; }.gpr-hero h2 { margin-top:8px;font-size:24px; }.gpr-surface { padding:12px 10px 24px; }
  .gpr-summary { grid-template-columns:42px 1fr auto;padding:11px; }.gpr-summary > span { width:40px;height:40px; }.gpr-summary strong { font-size:17px; }.gpr-summary small { font-size:13px; }
  .gpr-request { grid-template-columns:46px minmax(0,1fr) 14px;padding:11px 10px;gap:9px; }.gpr-request .gpr-avatar { width:44px;height:44px; }.gpr-request > b { grid-column:2;justify-self:start;margin-top:4px; }.gpr-request > i { grid-column:3;grid-row:1/3; }.gpr-request h3 { font-size:17px; }.gpr-request p,.gpr-request em { font-size:12px; }
  .gpr-page .gpa-card { padding:11px 12px; }.gpr-page .gpa-student { grid-template-columns:70px 1fr;gap:11px; }.gpr-page .gpa-student-photo { width:70px;height:70px; }.gpr-page .gpa-pickup { grid-template-columns:68px 1fr;gap:9px; }.gpr-page .gpa-pickup-avatar { width:64px;height:64px; }.gpr-page .gpa-identity { grid-column:1/-1;flex-direction:row;justify-content:space-between;padding-left:77px; }.gpr-forward { min-height:52px;font-size:17px; }
}
@media (max-width:390px) { .gpr-page .gpa-detail-row { grid-template-columns:38px 1fr; }.gpr-page .gpa-detail-row > i { grid-row:1/3; }.gpr-page .gpa-detail-row strong { grid-column:2;text-align:left; }.gpr-page .gpa-identity { padding-left:0; } }
