/* 9ymedia PDF Viewer — Styles v1.5 · Agencia 9ymedia */
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,600&display=swap');

.nymedia-pdf-viewer {
    --ny-bg:         #f0f2f5;
    --ny-toolbar:    #ffffff;
    --ny-toolbar-b:  #e4e7ec;
    --ny-btn:        #f7f8fa;
    --ny-btn-border: #dde1e8;
    --ny-btn-hover:  #1a56db;
    --ny-accent:     #1a56db;
    --ny-text:       #1e2532;
    --ny-text-dim:   #6b7280;
    --ny-shadow-pg:  0 4px 24px rgba(0,0,0,0.16);
    --ny-radius:     14px;
    --ny-font:       'DM Sans', system-ui, sans-serif;

    font-family: var(--ny-font);
    background: var(--ny-bg);
    border-radius: var(--ny-radius);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    position: relative;
    box-shadow: 0 4px 16px rgba(0,0,0,.10);
    box-sizing: border-box;
    border: 1px solid var(--ny-toolbar-b);
}
.nymedia-pdf-viewer *, .nymedia-pdf-viewer *::before, .nymedia-pdf-viewer *::after { box-sizing: border-box; }

/* Loader */
.nymedia-loader { position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--ny-bg);z-index:10;gap:14px; }
.nymedia-loader__spinner { width:40px;height:40px;border:3px solid #dde1e8;border-top-color:var(--ny-accent);border-radius:50%;animation:ny-spin .75s linear infinite; }
@keyframes ny-spin { to { transform:rotate(360deg); } }
.nymedia-loader__text { color:var(--ny-text-dim);font-size:13px; }

/* Toolbar — altura fija, no se encoge */
.nymedia-toolbar { display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:var(--ny-toolbar);border-bottom:1px solid var(--ny-toolbar-b);gap:10px;flex-shrink:0;height:56px; }
.nymedia-toolbar__left,.nymedia-toolbar__right { display:flex;align-items:center;gap:4px;min-width:0; }
.nymedia-toolbar__center { display:flex;align-items:center;gap:6px;flex-shrink:0; }
.nymedia-toolbar__title { color:var(--ny-text);font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px;opacity:.65;margin-left:4px; }
.nymedia-btn-sep { width:1px;height:22px;background:var(--ny-toolbar-b);margin:0 4px;flex-shrink:0; }

/* Botones */
.nymedia-btn { background:var(--ny-btn);border:1px solid var(--ny-btn-border);border-radius:8px;color:var(--ny-text);cursor:pointer;display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;transition:background .15s,color .15s,border-color .15s,box-shadow .15s,transform .1s;flex-shrink:0; }
.nymedia-btn svg { width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;pointer-events:none; }
.nymedia-btn:hover { background:var(--ny-btn-hover);border-color:var(--ny-btn-hover);color:#fff;box-shadow:0 2px 8px rgba(26,86,219,.25);transform:translateY(-1px); }
.nymedia-btn:active { transform:translateY(0);box-shadow:none; }
.nymedia-btn.active { background:var(--ny-accent);border-color:var(--ny-accent);color:#fff; }

/* Controles */
.nymedia-page-info { color:var(--ny-text);font-size:13px;font-weight:500;display:flex;align-items:center;gap:6px;white-space:nowrap; }
.nymedia-page-input { background:var(--ny-btn);border:1px solid var(--ny-btn-border);border-radius:7px;color:var(--ny-text);font-family:var(--ny-font);font-size:13px;font-weight:600;padding:5px 8px;text-align:center;width:46px;-moz-appearance:textfield; }
.nymedia-page-input::-webkit-outer-spin-button,.nymedia-page-input::-webkit-inner-spin-button { -webkit-appearance:none; }
.nymedia-page-input:focus { outline:none;border-color:var(--ny-accent);box-shadow:0 0 0 3px rgba(26,86,219,.12); }
.nymedia-total-pages { color:var(--ny-text-dim);font-weight:400; }
.nymedia-zoom-level { color:var(--ny-text-dim);font-size:12px;font-weight:500;min-width:38px;text-align:center; }

/* ── STAGE: scroll vertical si el PDF es más alto que el visor ── */
.nymedia-stage {
    flex: 1;
    
    overflow: hidden;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 20px;
    background: var(--ny-bg);
    scrollbar-width: thin;
    scrollbar-color: #cbd5e1 transparent;
}
.nymedia-stage::-webkit-scrollbar { width:6px; }
.nymedia-stage::-webkit-scrollbar-thumb { background:#cbd5e1;border-radius:3px; }

/* Vista única */
.nymedia-single-view { display:flex;justify-content:center;width:100%; }

/* El canvas recibe su tamaño desde JS */
.nymedia-canvas {
    display: block;
    border-radius: 4px;
    box-shadow: var(--ny-shadow-pg);
    background: #fff;
    /* Nunca exceder el ancho del stage */
    max-width: 100%;
}

/* Modo libro */
.nymedia-flip-view { display:flex;justify-content:center;width:100%; }
.nymedia-book { display:flex;align-items:stretch;perspective:2000px;filter:drop-shadow(0 12px 28px rgba(0,0,0,.15)); }
.nymedia-book__page { position:relative;background:#fff;overflow:hidden; }
.nymedia-book__page--left  { border-radius:4px 0 0 4px;transform-origin:right center; }
.nymedia-book__page--right { border-radius:0 4px 4px 0;transform-origin:left center; }
.nymedia-book__page--left.ny-flip-out  { animation:ny-flo .35s ease-in  forwards; }
.nymedia-book__page--left.ny-flip-in   { animation:ny-fli .35s ease-out forwards; }
.nymedia-book__page--right.ny-flip-out { animation:ny-fro .35s ease-in  forwards; }
.nymedia-book__page--right.ny-flip-in  { animation:ny-fri .35s ease-out forwards; }
@keyframes ny-flo { from{transform:rotateY(0)}    to{transform:rotateY(90deg)}  }
@keyframes ny-fli { from{transform:rotateY(-90deg)} to{transform:rotateY(0)}   }
@keyframes ny-fro { from{transform:rotateY(0)}    to{transform:rotateY(-90deg)} }
@keyframes ny-fri { from{transform:rotateY(90deg)}  to{transform:rotateY(0)}   }
.nymedia-book__spine { width:10px;background:linear-gradient(to right,#e2e8f0,#f8fafc,#e2e8f0);flex-shrink:0; }
.nymedia-page-shadow { position:absolute;inset:0;pointer-events:none; }
.nymedia-page-shadow--left  { background:linear-gradient(to left,  rgba(0,0,0,.05) 0%,transparent 25%); }
.nymedia-page-shadow--right { background:linear-gradient(to right, rgba(0,0,0,.05) 0%,transparent 25%); }
.nymedia-canvas-left,.nymedia-canvas-right { display:block;background:#fff;max-width:100%; }

/* Error */
.nymedia-error-state { position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px;text-align:center;background:var(--ny-bg); }
.nymedia-error-state svg { width:44px;height:44px;stroke:#ef4444;fill:none;stroke-width:1.5;stroke-linecap:round; }
.nymedia-error-state p { margin:0;font-size:15px;color:var(--ny-text); }
.nymedia-error-state a { color:var(--ny-accent);text-decoration:none;font-size:14px;border:1px solid var(--ny-accent);padding:7px 18px;border-radius:20px; }
.nymedia-error-state a:hover { background:var(--ny-accent);color:#fff; }
.nymedia-error { background:#fef9c3;border:1px solid #fde047;border-left:4px solid #eab308;border-radius:4px;padding:12px 16px;font-size:14px;color:#713f12; }

/* Fullscreen */
.nymedia-pdf-viewer:fullscreen,.nymedia-pdf-viewer:-webkit-full-screen { border-radius:0;height:100vh !important;width:100vw !important; }

/* Responsive */
@media (max-width:580px) {
    .nymedia-toolbar { padding:8px 10px;height:50px; }
    .nymedia-toolbar__title,.nymedia-zoom-level { display:none; }
    .nymedia-btn { width:32px;height:32px; }
    .nymedia-btn svg { width:14px;height:14px; }
    .nymedia-stage { padding:12px; }
    .nymedia-book__page--left,.nymedia-book__spine { display:none !important; }
    .nymedia-book__page--right { border-radius:4px !important; }
}

/* ── v2.2: toolbar responsive — no se corta en pantallas pequeñas ── */
@media (max-width: 480px) {
    .nymedia-toolbar {
        flex-wrap: wrap;
        height: auto !important;
        min-height: auto;
        padding: 8px;
        gap: 6px;
    }
    .nymedia-toolbar__left  { order: 1; flex: 1; }
    .nymedia-toolbar__center{ order: 2; flex: 0 0 100%; justify-content: center; }
    .nymedia-toolbar__right { order: 3; flex: 1; justify-content: flex-end; }
    .nymedia-toolbar__title, .nymedia-zoom-level { display: none; }
    .nymedia-btn { width: 30px; height: 30px; }
    .nymedia-btn svg { width: 13px; height: 13px; }
    .nymedia-btn-sep { display: none; }
}
