/**
 * PDF Viewer — Static structural CSS
 *
 * All rules use .pv-root as the top-level selector. Per-instance CSS
 * custom property values are set inline via render-css.php using #vskpvN.
 *
 * @package Voska
 * @subpackage Modules\PdfViewer
 */

/* --- Reset --- */
.pv-root *{box-sizing:border-box;margin:0;padding:0}

/* --- Root container --- */
.pv-root{
  font-family:var(--pv-font);
  background:var(--pv-bg);
  color:var(--pv-text);
  display:flex;
  flex-direction:column;
  border-radius:var(--pv-radius);
  overflow:hidden;
  position:relative;
  border:1px solid var(--pv-border);
}

/* --- Header --- */
.pv-root .pv-header{padding:24px 28px 0;background:var(--pv-surface)}
.pv-root .pv-header-brand{font-family:var(--pv-font-display);font-style:italic;font-size:13px;color:var(--pv-accent);letter-spacing:.05em;text-transform:uppercase;margin-bottom:8px}
.pv-root .pv-header-title{font-size:22px;font-weight:700;letter-spacing:-.02em;line-height:1.25;margin-bottom:6px}
.pv-root .pv-header-sub{font-size:13px;color:var(--pv-text-muted);line-height:1.55;max-width:640px;padding-bottom:18px}

/* --- Toolbar --- */
.pv-root .pv-toolbar{
  height:var(--pv-toolbar-h, 52px);
  background:var(--pv-surface);
  border-top:1px solid var(--pv-border);
  border-bottom:1px solid var(--pv-border);
  display:flex;align-items:center;padding:0 12px;gap:4px;
  flex-shrink:0;z-index:10;
  overflow-x:auto;overflow-y:hidden;
  scrollbar-width:none;-webkit-overflow-scrolling:touch;
}
.pv-root .pv-toolbar::-webkit-scrollbar{display:none}
.pv-root .pv-btn{width:34px;height:34px;border-radius:8px;border:none;background:0 0;color:var(--pv-text-muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0}
.pv-root .pv-btn:hover{background:var(--pv-surface-2);color:var(--pv-text)}
.pv-root .pv-btn.active{background:var(--pv-accent);color:#fff;box-shadow:0 2px 12px var(--pv-accent-glow)}
.pv-root .pv-btn svg{width:17px;height:17px;stroke-width:1.8}
.pv-root .pv-sep{width:1px;height:22px;background:var(--pv-border);margin:0 6px;flex-shrink:0;flex-grow:0}
.pv-root .pv-spacer{flex:1;min-width:4px}

/* --- Page navigation --- */
.pv-root .pv-page-nav{display:flex;align-items:center;gap:2px;background:var(--pv-surface-2);border-radius:8px;padding:2px;flex-shrink:0}
.pv-root .pv-page-input{width:38px;text-align:center;background:0 0;border:none;color:var(--pv-text);font-family:var(--pv-font);font-size:13px;font-weight:500;outline:none}
.pv-root .pv-page-input:focus{color:var(--pv-accent)}
.pv-root .pv-page-total{font-size:12px;color:var(--pv-text-muted);margin-right:4px;white-space:nowrap}

/* --- Zoom --- */
.pv-root .pv-zoom-display{font-size:11px;font-weight:600;color:var(--pv-text-muted);min-width:42px;text-align:center;user-select:none;flex-shrink:0}

/* --- Search bar --- */
.pv-root .pv-search-bar{position:absolute;top:0;right:16px;z-index:20;background:var(--pv-surface);border:1px solid var(--pv-border);border-radius:0 0 10px 10px;padding:8px 12px;display:none;align-items:center;gap:6px;box-shadow:0 8px 30px rgba(0,0,0,0.4)}
.pv-root .pv-search-bar.open{display:flex}
.pv-root .pv-search-input{background:var(--pv-surface-2);border:1px solid var(--pv-border);border-radius:6px;padding:6px 10px;color:var(--pv-text);font-family:var(--pv-font);font-size:13px;width:180px;outline:none}
.pv-root .pv-search-input:focus{border-color:var(--pv-accent)}
.pv-root .pv-search-info{font-size:11px;color:var(--pv-text-muted);white-space:nowrap;min-width:50px;text-align:center}
.pv-root .pv-search-nav{display:flex;gap:2px}
.pv-root .pv-search-nav .pv-btn{width:26px;height:26px}
.pv-root .pv-search-nav .pv-btn svg{width:13px;height:13px}

/* --- Body / sidebar / canvas --- */
.pv-root .pv-body{flex:1;display:flex;overflow:hidden;position:relative}
.pv-root .pv-sidebar{width:0;overflow-y:auto;overflow-x:hidden;background:var(--pv-surface);border-right:1px solid var(--pv-border);transition:width .35s cubic-bezier(.4,0,.2,1);flex-shrink:0;scrollbar-width:thin;scrollbar-color:var(--pv-surface-2) transparent}
.pv-root .pv-sidebar.open{width:var(--pv-sidebar-w, 210px)}
.pv-root .pv-sidebar-inner{width:var(--pv-sidebar-w, 210px);padding:12px;display:flex;flex-direction:column;gap:8px}
.pv-root .pv-thumb-item{cursor:pointer;border-radius:6px;overflow:hidden;border:2px solid transparent;transition:all .2s;position:relative;background:var(--pv-surface-2)}
.pv-root .pv-thumb-item:hover{border-color:rgba(255,255,255,0.1)}
.pv-root .pv-thumb-item.active{border-color:var(--pv-accent);box-shadow:0 0 14px var(--pv-accent-glow)}
.pv-root .pv-thumb-item canvas{width:100%;display:block}
.pv-root .pv-thumb-label{position:absolute;bottom:4px;left:50%;transform:translateX(-50%);font-size:10px;font-weight:600;color:#fff;background:rgba(0,0,0,0.6);padding:2px 8px;border-radius:4px}
.pv-root .pv-canvas-wrap{flex:1;overflow:auto;display:block;padding:24px;position:relative;background:radial-gradient(circle at 30% 20%,color-mix(in srgb,var(--pv-accent) 4%,transparent) 0%,transparent 50%),radial-gradient(circle at 70% 80%,color-mix(in srgb,var(--pv-accent) 3%,transparent) 0%,transparent 50%),var(--pv-bg);scrollbar-width:thin;scrollbar-color:var(--pv-surface-2) transparent}
.pv-root .pv-canvas-wrap canvas{display:block;border-radius:3px;box-shadow:0 4px 40px rgba(0,0,0,0.4),0 0 0 1px rgba(255,255,255,0.04);flex-shrink:0;margin:0 auto}

/* --- Cover --- */
.pv-root .pv-cover{display:none;position:relative;flex:1;min-height:260px;background:linear-gradient(180deg,color-mix(in srgb,var(--pv-bg) 70%,transparent) 0%,var(--pv-bg) 100%);overflow:hidden}
.pv-root .pv-cover-image{display:block;width:auto;max-width:100%;height:var(--pv-cover-h);max-height:none;object-fit:contain}
.pv-root.pv-has-cover{background:transparent;border:none;box-shadow:none;border-radius:0;height:auto;overflow:visible;display:block}
.pv-root.pv-has-cover .pv-header,
.pv-root.pv-has-cover .pv-toolbar,
.pv-root.pv-has-cover .pv-search-bar,
.pv-root.pv-has-cover .pv-body,
.pv-root.pv-has-cover .pv-status{display:none}
.pv-root.pv-has-cover .pv-cover{display:block;padding:0;min-height:0;background:transparent;overflow:visible}
.pv-root.pv-has-cover .pv-cover-inner{position:relative;width:fit-content;max-width:100%;height:auto;display:flex;flex-direction:column;gap:14px;align-items:flex-start;padding:0;border:none;border-radius:0;background:none}
.pv-root.pv-has-cover .pv-cover-art{display:block;min-height:0;cursor:pointer;position:relative;width:fit-content;max-width:100%}
.pv-root.pv-has-cover .pv-cover-canvas{display:block;width:auto;max-width:100%;height:var(--pv-cover-h);max-height:none;border-radius:0;box-shadow:none}
.pv-root.pv-has-cover .pv-cover-image{display:block;width:auto;max-width:100%;height:var(--pv-cover-h);max-height:none;border-radius:0;box-shadow:none}
.pv-root .pv-cover-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:var(--pv-cover-overlay-padding);background:var(--pv-cover-overlay-bg);color:var(--pv-cover-overlay-color);font-size:var(--pv-cover-overlay-font-size);font-weight:var(--pv-cover-overlay-font-weight);border-radius:var(--pv-cover-overlay-radius);text-align:center;opacity:0;pointer-events:none;transition:opacity .2s ease}
.pv-root .pv-cover-art:hover .pv-cover-overlay,
.pv-root .pv-cover-art:focus .pv-cover-overlay,
.pv-root .pv-cover-art:focus-within .pv-cover-overlay{opacity:1}
.pv-root.pv-has-cover .pv-cover-copy{display:flex;flex-direction:column;gap:0;align-items:flex-start;width:100%}
.pv-root.pv-has-cover .pv-cover-eyebrow,
.pv-root.pv-has-cover .pv-cover-title,
.pv-root.pv-has-cover .pv-cover-text,
.pv-root.pv-has-cover .pv-cover-meta{display:none}
.pv-root .pv-cover-canvas{display:block;max-width:100%;max-height:100%;border-radius:8px;box-shadow:0 18px 45px rgba(0,0,0,0.35),0 0 0 1px rgba(255,255,255,0.06)}
.pv-root .pv-cover-copy{display:flex;flex-direction:column;gap:12px;align-items:flex-start}
.pv-root .pv-cover-btn-wrap{width:100%;display:flex;justify-content:var(--pv-cover-btn-justify)}
.pv-root .pv-cover-eyebrow{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--pv-accent);font-weight:700}
.pv-root .pv-cover-title{font-size:clamp(22px,3vw,34px);line-height:1.1;font-weight:700;letter-spacing:-.03em}
.pv-root .pv-cover-text{font-size:14px;line-height:1.6;color:var(--pv-text-muted);max-width:44ch}
.pv-root .pv-cover-btn{display:block;width:var(--pv-cover-btn-width);box-sizing:border-box;padding:var(--pv-cover-btn-padding);border:none;border-radius:var(--pv-cover-btn-radius);background:var(--pv-accent);color:#fff;font-family:var(--pv-font);font-size:14px;font-weight:700;cursor:pointer;box-shadow:0 10px 30px var(--pv-accent-glow);transition:transform .2s,filter .2s}
.pv-root.pv-has-cover .pv-cover-btn{box-shadow:none}
.pv-root .pv-cover-btn:hover{transform:translateY(-1px);filter:brightness(1.05)}
.pv-root .pv-cover-meta{font-size:12px;color:var(--pv-text-muted)}

/* --- Loader --- */
.pv-root .pv-loader{display:none;position:absolute;inset:0;background:color-mix(in srgb,var(--pv-bg) 85%,transparent);backdrop-filter:blur(8px);z-index:30;align-items:center;justify-content:center;flex-direction:column;gap:14px}
.pv-root .pv-loader.active{display:flex}
.pv-root .pv-spinner{width:32px;height:32px;border:3px solid var(--pv-surface-2);border-top-color:var(--pv-accent);border-radius:50%;animation:pvSpin .7s linear infinite}
@keyframes pvSpin{to{transform:rotate(360deg)}}
.pv-root .pv-loader-text{font-size:13px;color:var(--pv-text-muted)}

/* --- Error --- */
.pv-root .pv-error{display:none;flex:1;align-items:center;justify-content:center;flex-direction:column;gap:12px;padding:40px;text-align:center}
.pv-root .pv-error.active{display:flex}
.pv-root .pv-error-icon{width:56px;height:56px;border-radius:16px;background:var(--pv-surface-2);display:flex;align-items:center;justify-content:center;color:#f87171}
.pv-root .pv-error-icon svg{width:26px;height:26px;stroke-width:1.6}
.pv-root .pv-error-title{font-size:16px;font-weight:600}
.pv-root .pv-error-msg{font-size:13px;color:var(--pv-text-muted);max-width:400px;line-height:1.5}
.pv-root .pv-retry-btn{margin-top:4px;padding:8px 22px;border-radius:8px;border:none;background:var(--pv-accent);color:#fff;font-family:var(--pv-font);font-size:13px;font-weight:600;cursor:pointer}
.pv-root .pv-retry-btn:hover{filter:brightness(1.15)}

/* --- Status bar --- */
.pv-root .pv-status{height:26px;background:var(--pv-surface);border-top:1px solid var(--pv-border);display:flex;align-items:center;padding:0 16px;font-size:10.5px;color:var(--pv-text-muted);gap:12px;flex-shrink:0}
.pv-root .pv-status-dot{width:5px;height:5px;border-radius:50%;background:#34d399;box-shadow:0 0 6px rgba(52,211,153,0.4)}

/* --- Fullscreen --- */
.pv-root.fullscreen{position:fixed!important;inset:0!important;width:100vw!important;height:100vh!important;max-width:100vw!important;border-radius:0!important;z-index:999999!important}

/* --- Theme toggle (default palette, no custom colors) --- */
.pv-root.pv-light{--pv-bg:#f4f5f7;--pv-surface:#fff;--pv-surface-2:#edeef1;--pv-border:rgba(0,0,0,0.07);--pv-text:#1a1c24;--pv-text-muted:#6b6f7e}
.pv-root.pv-dark{--pv-bg:#0f1117;--pv-surface:#181a22;--pv-surface-2:#22252f;--pv-border:rgba(255,255,255,0.06);--pv-text:#e8e9ed;--pv-text-muted:#8a8d9b}

/* --- Tablet --- */
@media(min-width:641px) and (max-width:1024px){
  .pv-root .pv-canvas-wrap{padding:16px}
}

/* --- Mobile: bottom thumbnails, compact --- */
@media(max-width:640px){
  .pv-root .pv-header{padding:16px 16px 0}
  .pv-root .pv-header-title{font-size:18px}
  .pv-root .pv-header-sub{font-size:12px;padding-bottom:12px}
  .pv-root .pv-canvas-wrap{padding:10px}
  .pv-root .pv-toolbar{padding:0 8px;gap:2px}
  .pv-root .pv-sep{margin:0 3px}
  .pv-root .pv-body{flex-direction:column}
  .pv-root .pv-sidebar{width:100%!important;height:0;max-height:0;border-right:none;border-top:1px solid var(--pv-border);overflow-x:auto;overflow-y:hidden;order:2;transition:max-height .35s cubic-bezier(.4,0,.2,1);scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .pv-root .pv-sidebar::-webkit-scrollbar{display:none}
  .pv-root .pv-sidebar.open{height:auto;max-height:90px}
  .pv-root .pv-sidebar-inner{width:auto!important;flex-direction:row;padding:8px;gap:6px;flex-wrap:nowrap}
  .pv-root .pv-thumb-item{flex-shrink:0;width:60px;height:auto}
  .pv-root .pv-thumb-item canvas{width:60px;height:auto}
  .pv-root .pv-thumb-label{font-size:9px;padding:1px 5px;bottom:2px}
  .pv-root .pv-canvas-wrap{order:1;min-height:0}
  .pv-root .pv-cover-inner{grid-template-columns:1fr;gap:0;padding:0}
  .pv-root .pv-cover-art{min-height:160px}
  .pv-root .pv-cover-copy{left:16px;right:16px;bottom:16px;align-items:center;text-align:center}
  .pv-root.pv-has-cover .pv-cover-copy{left:auto;right:auto;bottom:auto;align-items:flex-start;text-align:left;width:100%}
}

/* --- 3-device visibility: pv-hd=hide desktop, pv-ht=hide tablet, pv-hm=hide mobile --- */
@media(min-width:1025px){
  .pv-root .pv-hd{display:none!important}
  .pv-root .pv-hd-sb,.pv-root .pv-hd-sb.open{width:0!important;overflow:hidden;border:none}
}
@media(min-width:641px) and (max-width:1024px){
  .pv-root .pv-ht{display:none!important}
  .pv-root .pv-ht-sb,.pv-root .pv-ht-sb.open{width:0!important;overflow:hidden;border:none}
}
@media(max-width:640px){
  .pv-root .pv-hm{display:none!important}
  .pv-root .pv-hm-sb,.pv-root .pv-hm-sb.open{max-height:0!important;height:0!important;overflow:hidden;border:none}
}
