/* Exam Seating Arrangement Manager - PDF viewer */

/* PDF.js appends a hidden measuring canvas straight to <body>. */
.hiddenCanvasElement{position:absolute;top:0;left:0;width:0;height:0;display:none}

html.esa-viewer-open,html.esa-viewer-open body{overflow:hidden}

.esa-viewer{position:fixed;top:0;left:0;width:100%;height:100vh;height:100dvh;z-index:100050;display:flex;align-items:center;justify-content:center;padding:16px;box-sizing:border-box;font-family:inherit;font-size:15px;line-height:1.4;color:#0f172a;text-align:left}
.esa-viewer *,.esa-viewer *::before,.esa-viewer *::after{box-sizing:border-box}
.esa-viewer[hidden]{display:none}
.esa-viewer__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(15,23,42,.72)}
.esa-viewer__dialog{position:relative;display:flex;flex-direction:column;width:100%;max-width:1100px;height:100%;background:#fff;border-radius:12px;box-shadow:0 20px 50px rgba(0,0,0,.4);overflow:hidden;outline:none}

/* Header */
.esa-viewer__head{display:flex;align-items:center;gap:8px;padding:8px 8px 8px 16px;border-bottom:1px solid #e2e8f0;background:#fff}
.esa-viewer__titles{flex:1 1 auto;min-width:0}
.esa-viewer__title{font-size:16px;font-weight:700;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.esa-viewer__meta{font-size:13px;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.esa-viewer__meta[hidden]{display:none}

/* Toolbar */
.esa-viewer__bar{display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px;padding:6px 8px;background:#f8fafc;border-bottom:1px solid #e2e8f0}
.esa-vgroup{display:flex;align-items:center;gap:2px}
.esa-vgroup--end{margin-left:auto}

.esa-viewer .esa-vbtn{-webkit-appearance:none;appearance:none;display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;margin:0;padding:0 8px;border:0;border-radius:8px;background:transparent;color:#0f172a;font:inherit;font-size:14px;font-weight:600;line-height:1;letter-spacing:0;text-transform:none;text-decoration:none;cursor:pointer;box-shadow:none}
.esa-viewer .esa-vbtn:visited{color:#0f172a}
.esa-viewer .esa-vbtn:hover{background:#e2e8f0;color:#0f172a}
.esa-viewer .esa-vbtn:focus-visible{outline:2px solid #2563eb;outline-offset:1px}
.esa-viewer .esa-vbtn[disabled]{opacity:.35;cursor:default;background:transparent}
.esa-viewer .esa-vbtn svg{display:block;flex:none}
.esa-viewer .esa-vbtn--text{min-width:58px}

.esa-vpage{display:inline-flex;align-items:center;gap:6px;margin:0;font-weight:400;color:#334155}
.esa-viewer input.esa-vpage__input,.esa-vpage input{width:54px;height:36px;margin:0;padding:0 4px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#0f172a;font:inherit;font-size:15px;text-align:center;box-shadow:none;-moz-appearance:textfield}
.esa-vpage input::-webkit-outer-spin-button,.esa-vpage input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.esa-vtotal{white-space:nowrap}

/* Search row */
.esa-viewer__search{display:flex;align-items:center;gap:4px;padding:6px 8px;background:#fff;border-bottom:1px solid #e2e8f0}
.esa-viewer__search[hidden]{display:none}
.esa-viewer__search input{flex:1 1 auto;min-width:0;height:38px;margin:0;padding:0 12px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#0f172a;font:inherit;font-size:15px;box-shadow:none}
.esa-viewer__search input:focus,.esa-vpage input:focus{outline:2px solid #2563eb;outline-offset:0;border-color:#2563eb}
.esa-vcount{flex:none;min-width:64px;padding:0 6px;font-size:13px;color:#475569;text-align:center;white-space:nowrap}
.esa-vcount.is-empty{color:#b91c1c}

/* Scrolling area */
.esa-viewer__main{position:relative;flex:1 1 auto;min-height:0;background:#cfd5dd}
.esa-viewer__scroll{position:absolute;top:0;right:0;bottom:0;left:0;overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-x pan-y;outline:none}
.esa-viewer__scroll:focus-visible{box-shadow:inset 0 0 0 2px #2563eb}
.esa-viewer__pages{position:relative;display:flex;flex-direction:column;align-items:center;width:max-content;min-width:100%;padding:12px;transform-origin:0 0}

.esa-page{position:relative;flex:none;margin:0 0 12px;background:#fff;box-shadow:0 1px 3px rgba(15,23,42,.3);--user-unit:1;--total-scale-factor:calc(var(--scale-factor) * var(--user-unit));--scale-round-x:1px;--scale-round-y:1px}
.esa-page:last-child{margin-bottom:0}
.esa-page canvas{display:block}

/* Loading / error overlay */
.esa-viewer__state{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px;background:#cfd5dd;text-align:center}
.esa-viewer__state[hidden]{display:none}
.esa-viewer__state p{margin:0;max-width:420px;color:#334155}
.esa-viewer .esa-vlink{display:inline-block;padding:10px 18px;border-radius:8px;background:#2563eb;color:#fff;font-weight:600;text-decoration:none}
.esa-viewer .esa-vlink:hover,.esa-viewer .esa-vlink:visited{color:#fff}
.esa-viewer .esa-vlink:hover{background:#1d4ed8}
.esa-vspinner{width:34px;height:34px;border:4px solid rgba(15,23,42,.15);border-top-color:#2563eb;border-radius:50%;animation:esa-spin .8s linear infinite}
@keyframes esa-spin{to{transform:rotate(360deg)}}

.esa-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Text layer (selectable / searchable text over the canvas), adapted from PDF.js pdf_viewer.css */
.esa-page .textLayer{position:absolute;top:0;left:0;text-align:initial;overflow:hidden;overflow:clip;opacity:1;line-height:1;-webkit-text-size-adjust:none;text-size-adjust:none;forced-color-adjust:none;transform-origin:0 0;z-index:1;--min-font-size:1;--text-scale-factor:calc(var(--total-scale-factor) * var(--min-font-size));--min-font-size-inv:calc(1 / var(--min-font-size))}
.esa-page .textLayer span,.esa-page .textLayer br{color:transparent;position:absolute;white-space:pre;cursor:text;transform-origin:0% 0%}
.esa-page .textLayer > :not(.markedContent),.esa-page .textLayer .markedContent span:not(.markedContent){z-index:1;--font-height:0;font-size:calc(var(--text-scale-factor) * var(--font-height));--scale-x:1;--rotate:0deg;transform:rotate(var(--rotate)) scaleX(var(--scale-x)) scale(var(--min-font-size-inv))}
.esa-page .textLayer .markedContent{display:contents}
.esa-page .textLayer span[role="img"]{-webkit-user-select:none;user-select:none;cursor:default}
.esa-page .textLayer ::selection{background:rgba(37,99,235,.3)}
.esa-page .textLayer br::selection{background:transparent}

/* Search highlights */
.esa-viewer .esa-page mark.esa-hit{margin:0;padding:0;border-radius:2px;background:rgba(250,204,21,.55);color:transparent}
.esa-viewer .esa-page mark.esa-hit--cur{background:rgba(249,115,22,.6);outline:2px solid #ea580c}

/* Phones: full-screen, bigger touch targets */
@media (max-width:700px){
  .esa-viewer{padding:0}
  .esa-viewer__dialog{max-width:none;border-radius:0;box-shadow:none}
  .esa-viewer__head{padding-left:12px}
  .esa-viewer__bar{gap:2px 8px}
  .esa-viewer .esa-vbtn{min-width:42px;height:42px}
  .esa-viewer__pages{padding:6px}
  .esa-viewer__search input,.esa-vpage input{font-size:16px}
}

@media print{.esa-viewer{display:none !important}}
