/* ========================================================================
   PDF Editor – DebugSpot  (PDFGuru-style app shell)
   100% client-side. pdf.js render + pdf-lib export.
   ======================================================================== */

/* Bundled metric-compatible fonts (free, OFL) so edited text keeps the
   original typeface on screen AND in the downloaded PDF.
   Carlito≈Calibri · Caladea≈Cambria/Georgia · Tinos≈Times New Roman · Cousine≈Courier New */
@font-face{font-family:'Carlito';src:url('../fonts/Carlito-Regular.ttf');font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:'Carlito';src:url('../fonts/Carlito-Bold.ttf');font-weight:700;font-style:normal;font-display:swap;}
@font-face{font-family:'Carlito';src:url('../fonts/Carlito-Italic.ttf');font-weight:400;font-style:italic;font-display:swap;}
@font-face{font-family:'Carlito';src:url('../fonts/Carlito-BoldItalic.ttf');font-weight:700;font-style:italic;font-display:swap;}
@font-face{font-family:'Caladea';src:url('../fonts/Caladea-Regular.ttf');font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:'Caladea';src:url('../fonts/Caladea-Bold.ttf');font-weight:700;font-style:normal;font-display:swap;}
@font-face{font-family:'Caladea';src:url('../fonts/Caladea-Italic.ttf');font-weight:400;font-style:italic;font-display:swap;}
@font-face{font-family:'Caladea';src:url('../fonts/Caladea-BoldItalic.ttf');font-weight:700;font-style:italic;font-display:swap;}
@font-face{font-family:'Tinos';src:url('../fonts/Tinos-Regular.ttf');font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:'Tinos';src:url('../fonts/Tinos-Bold.ttf');font-weight:700;font-style:normal;font-display:swap;}
@font-face{font-family:'Tinos';src:url('../fonts/Tinos-Italic.ttf');font-weight:400;font-style:italic;font-display:swap;}
@font-face{font-family:'Tinos';src:url('../fonts/Tinos-BoldItalic.ttf');font-weight:700;font-style:italic;font-display:swap;}
@font-face{font-family:'Cousine';src:url('../fonts/Cousine-Regular.ttf');font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:'Cousine';src:url('../fonts/Cousine-Bold.ttf');font-weight:700;font-style:normal;font-display:swap;}
@font-face{font-family:'Cousine';src:url('../fonts/Cousine-Italic.ttf');font-weight:400;font-style:italic;font-display:swap;}
@font-face{font-family:'Cousine';src:url('../fonts/Cousine-BoldItalic.ttf');font-weight:700;font-style:italic;font-display:swap;}

:root{
  --pdfe-bg:#f1f3f7;
  --pdfe-panel:#ffffff;
  --pdfe-border:#e5e7eb;
  --pdfe-ink:#1f2937;
  --pdfe-muted:#6b7280;
  --pdfe-accent:#6366f1;
  --pdfe-accent-2:#4f46e5;
  --pdfe-danger:#ef4444;
}

/* hero band (only the intro strip) */
.pdfe-hero{
  background:linear-gradient(160deg,#1e1b4b 0%,#312e81 45%,#4338ca 100%);
  padding:30px 0 26px;
}

/* ====================== APP SHELL ====================== */
.pdfe-app{
  display:none;
  flex-direction:column;
  height:94vh;
  min-height:640px;
  background:var(--pdfe-bg);
  border:1px solid var(--pdfe-border);
  border-radius:12px;
  overflow:hidden;
  box-shadow:0 20px 60px rgba(0,0,0,.25);
}
/* pull the editor up to sit just under the 64px navbar (body has pt-24/96px),
   reclaiming the empty band once the hero is hidden */
.pdfe-app.active{display:flex;margin:-30px 0 14px;}

/* ---- Top bar ---- */
.pdfe-topbar{
  display:flex;align-items:center;gap:14px;
  background:var(--pdfe-panel);
  border-bottom:1px solid var(--pdfe-border);
  padding:8px 16px;
  flex-shrink:0;
}
.pdfe-logo{display:flex;align-items:center;gap:8px;font-weight:800;color:var(--pdfe-ink);font-size:15px;}
.pdfe-logo .dot{width:22px;height:22px;border-radius:6px;background:linear-gradient(135deg,#6366f1,#4338ca);}
.pdfe-fname{
  display:flex;align-items:center;gap:6px;
  border:1px solid var(--pdfe-border);border-radius:8px;
  padding:5px 10px;color:var(--pdfe-ink);font-size:13px;font-weight:600;
  max-width:230px;
}
.pdfe-fname input{border:none;outline:none;font:inherit;color:inherit;width:160px;background:transparent;}
.pdfe-top-actions{margin-left:auto;display:flex;align-items:center;gap:6px;}
.pdfe-top-btn{
  display:inline-flex;flex-direction:column;align-items:center;gap:2px;
  background:none;border:none;cursor:pointer;color:var(--pdfe-muted);
  font-size:11px;font-weight:600;padding:4px 10px;border-radius:8px;
}
.pdfe-top-btn:hover{background:#f3f4f6;color:var(--pdfe-ink);}
.pdfe-top-btn svg{width:18px;height:18px;}
.pdfe-done{
  background:var(--pdfe-danger);color:#fff;border:none;cursor:pointer;
  font-weight:700;font-size:13px;padding:9px 18px;border-radius:9px;
  display:inline-flex;align-items:center;gap:6px;
}
.pdfe-done:hover{filter:brightness(1.05);}

/* ---- Toolbar ---- */
.pdfe-toolbar{
  display:flex;align-items:center;gap:2px;
  background:var(--pdfe-panel);
  border-bottom:1px solid var(--pdfe-border);
  padding:6px 12px;overflow-x:auto;flex-shrink:0;
}
.pdfe-tool{
  display:inline-flex;flex-direction:column;align-items:center;gap:3px;
  background:none;border:none;cursor:pointer;color:var(--pdfe-muted);
  font-size:11px;font-weight:600;padding:6px 11px;border-radius:9px;
  white-space:nowrap;min-width:54px;transition:all .12s ease;
}
.pdfe-tool:hover{background:#f3f4f6;color:var(--pdfe-ink);}
.pdfe-tool.active{background:#eef2ff;color:var(--pdfe-accent-2);}
.pdfe-tool svg{width:20px;height:20px;}
.pdfe-tbar-divider{width:1px;height:30px;background:var(--pdfe-border);margin:0 6px;flex-shrink:0;}

/* options popover (color/size shown under toolbar) */
.pdfe-optbar{
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  background:#fafafe;border-bottom:1px solid var(--pdfe-border);
  padding:7px 16px;flex-shrink:0;font-size:12px;color:var(--pdfe-muted);
}
.pdfe-optbar.hidden{display:none;}
.pdfe-optbar label{font-weight:600;display:flex;align-items:center;gap:6px;}
.pdfe-optbar input[type=color]{width:26px;height:26px;border:1px solid var(--pdfe-border);border-radius:6px;padding:0;cursor:pointer;background:none;}
.pdfe-optbar select{border:1px solid var(--pdfe-border);border-radius:7px;padding:4px 7px;font-size:12px;cursor:pointer;}
.pdfe-fmt{display:flex;gap:4px;}
.pdfe-fmt-btn{
  width:28px;height:28px;border:1px solid var(--pdfe-border);background:#fff;
  border-radius:7px;cursor:pointer;font-size:13px;color:var(--pdfe-ink);
  display:flex;align-items:center;justify-content:center;line-height:1;
}
.pdfe-fmt-btn:hover{background:#f3f4f6;}
.pdfe-fmt-btn.active{background:var(--pdfe-accent);color:#fff;border-color:var(--pdfe-accent);}
.pdfe-swatches{display:flex;gap:5px;}
.pdfe-swatch{width:20px;height:20px;border-radius:5px;cursor:pointer;border:2px solid #fff;box-shadow:0 0 0 1px var(--pdfe-border);}

/* ---- Body: sidebar + canvas ---- */
.pdfe-body{display:flex;flex:1;min-height:0;}

/* thumbnails sidebar */
.pdfe-sidebar{
  width:170px;flex-shrink:0;background:var(--pdfe-panel);
  border-right:1px solid var(--pdfe-border);
  display:flex;flex-direction:column;
}
.pdfe-sidebar-head{
  padding:10px 12px;font-size:12px;font-weight:700;color:var(--pdfe-ink);
  border-bottom:1px solid var(--pdfe-border);display:flex;align-items:center;gap:6px;
}
.pdfe-thumbs{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:14px;}
.pdfe-thumb{position:relative;cursor:pointer;border-radius:6px;}
.pdfe-thumb canvas{width:100%;display:block;border:2px solid var(--pdfe-border);border-radius:6px;background:#fff;}
.pdfe-thumb.active canvas{border-color:var(--pdfe-accent);box-shadow:0 0 0 2px rgba(99,102,241,.25);}
.pdfe-thumb.deleted{display:none;}
.pdfe-thumb-num{text-align:center;font-size:11px;color:var(--pdfe-muted);margin-top:4px;font-weight:600;}
.pdfe-thumb-actions{
  position:absolute;top:5px;right:5px;display:none;gap:3px;
}
.pdfe-thumb:hover .pdfe-thumb-actions{display:flex;}
.pdfe-thumb-actions button{
  width:22px;height:22px;border:none;border-radius:5px;cursor:pointer;
  background:rgba(31,41,55,.85);color:#fff;font-size:11px;
  display:flex;align-items:center;justify-content:center;
}
.pdfe-thumb-actions button:hover{background:#111827;}

/* canvas scroll area */
.pdfe-canvas-area{
  position:relative;
  flex:1;overflow:auto;background:var(--pdfe-bg);
  padding:30px;display:flex;flex-direction:column;align-items:center;gap:30px;
}
.pdfe-page-wrap{position:relative;background:#fff;box-shadow:0 6px 24px rgba(0,0,0,.18);border-radius:2px;flex-shrink:0;}
.pdfe-page-wrap.deleted{display:none;}
.pdfe-page-inner{position:absolute;background:#fff;}
.pdfe-page-inner canvas{display:block;position:absolute;left:0;top:0;}

/* ---- pdf.js selectable text layer ---- */
.textLayer{
  position:absolute;text-align:initial;overflow:hidden;line-height:1;opacity:1;
  forced-color-adjust:none;z-index:2;
}
.textLayer span,.textLayer br{
  color:transparent;position:absolute;white-space:pre;cursor:text;
  transform-origin:0 0;
}
.textLayer ::selection{background:rgba(99,102,241,.35);}
.textLayer span{pointer-events:auto;}
/* edit-existing-text mode: highlight hovered words so they look clickable */
.textLayer.editing span:hover{
  background:rgba(99,102,241,.18);
  outline:1px solid rgba(99,102,241,.5);
  cursor:text;
}

/* annotation layer (scaled with zoom) */
.pdfe-anno{position:absolute;top:0;left:0;transform-origin:0 0;overflow:hidden;z-index:3;}
/* annotation items stay interactive even when the anno layer is pass-through */
.pdfe-text,.pdfe-img,.pdfe-stamp{pointer-events:auto;}
.pdfe-anno.crosshair{cursor:crosshair;}
.pdfe-anno.text-mode{cursor:text;}
.pdfe-anno.eraser-mode{cursor:none;}
/* document-level overlays (watermark, page numbers) — live preview */
.pdfe-wm{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-30deg);
  font-family:Helvetica,Arial,sans-serif;font-weight:800;white-space:nowrap;pointer-events:none;z-index:4;}
.pdfe-pn{position:absolute;left:0;right:0;bottom:14px;text-align:center;pointer-events:none;z-index:4;
  font-family:Helvetica,Arial,sans-serif;font-size:11px;color:#444;}
/* round eraser brush cursor that follows the pointer — clearly coloured so it
   stays visible on white PDF backgrounds */
.pdfe-eraser-cursor{
  position:absolute;pointer-events:none;display:none;z-index:30;
  border:2px dashed #4f46e5;border-radius:50%;
  background:rgba(99,102,241,.28);
  box-shadow:0 0 0 1px rgba(255,255,255,.9), 0 1px 4px rgba(0,0,0,.35);
  transform:translate(-50%,-50%);
}
.pdfe-anno svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;}

.pdfe-text{
  position:absolute;min-width:12px;padding:0;outline:1px dashed transparent;
  cursor:move;white-space:pre-wrap;line-height:1;font-family:Helvetica,Arial,sans-serif;
}
.pdfe-text:hover,.pdfe-text.selected{outline-color:var(--pdfe-accent);}
.pdfe-img{position:absolute;cursor:move;outline:1px dashed transparent;}
.pdfe-img:hover,.pdfe-img.selected{outline-color:var(--pdfe-accent);}
.pdfe-img img{width:100%;height:100%;display:block;pointer-events:none;}
.pdfe-img .pdfe-resize{position:absolute;right:-7px;bottom:-7px;width:14px;height:14px;background:var(--pdfe-accent);border:2px solid #fff;border-radius:50%;cursor:nwse-resize;}
.pdfe-del-handle{position:absolute;top:-9px;right:-9px;width:18px;height:18px;background:var(--pdfe-danger);color:#fff;border-radius:50%;font-size:11px;line-height:18px;text-align:center;cursor:pointer;display:none;}
.pdfe-text.selected .pdfe-del-handle,.pdfe-img.selected .pdfe-del-handle{display:block;}

/* stamp glyphs (check / cross) drawn as text divs too */
.pdfe-stamp{position:absolute;cursor:move;font-weight:700;line-height:1;user-select:none;outline:1px dashed transparent;}
.pdfe-stamp:hover,.pdfe-stamp.selected{outline-color:var(--pdfe-accent);}
.pdfe-stamp.selected .pdfe-del-handle{display:block;}

/* ---- Bottom bar ---- */
.pdfe-bottombar{
  display:flex;align-items:center;justify-content:center;gap:8px;
  background:var(--pdfe-panel);border-top:1px solid var(--pdfe-border);
  padding:7px 16px;flex-shrink:0;
}
.pdfe-bb-group{display:flex;align-items:center;gap:6px;background:#f3f4f6;border-radius:9px;padding:4px 8px;}
.pdfe-bb-btn{background:none;border:none;cursor:pointer;color:var(--pdfe-ink);width:28px;height:28px;border-radius:6px;font-size:15px;display:flex;align-items:center;justify-content:center;}
.pdfe-bb-btn:hover{background:#e5e7eb;}
.pdfe-bb-label{font-size:12px;font-weight:600;color:var(--pdfe-ink);min-width:54px;text-align:center;}

/* drop zone (initial) */
.pdfe-drop{
  border:2px dashed rgba(255,255,255,.35);border-radius:18px;
  background:rgba(255,255,255,.05);padding:48px 24px;text-align:center;cursor:pointer;transition:all .2s ease;
}
.pdfe-drop:hover,.pdfe-drop.dragover{border-color:rgba(255,255,255,.8);background:rgba(255,255,255,.1);}

.pdfe-spinner{width:42px;height:42px;border:4px solid rgba(255,255,255,.2);border-top-color:#fff;border-radius:50%;animation:pdfe-spin .8s linear infinite;margin:0 auto;}
@keyframes pdfe-spin{to{transform:rotate(360deg);}}

/* touch: let the anno layer capture draws without scrolling the page; in Move
   mode the anno layer is pointer-events:none so the canvas area still scrolls */
.pdfe-anno{touch-action:none;}
.pdfe-thumb{touch-action:none;}

@media (max-width:900px){
  .pdfe-sidebar{width:120px;}
}
@media (max-width:768px){
  .pdfe-sidebar{display:none;}
  .pdfe-top-btn span{display:none;}
  .pdfe-app{min-height:0;}
  .pdfe-app.active{height:calc(100dvh - 110px);margin:6px 0;}
  /* top bar must fit one row without pushing Done off-screen */
  .pdfe-topbar{gap:8px;padding:6px 8px;}
  .pdfe-logo{font-size:0;}                 /* keep just the coloured dot */
  .pdfe-logo .dot{width:26px;height:26px;}
  .pdfe-fname{flex:1;min-width:0;max-width:none;}
  .pdfe-fname input{width:100%;min-width:0;}
  .pdfe-top-actions{flex-shrink:0;gap:4px;}
  .pdfe-top-btn{padding:4px 6px;}
  .pdfe-done{padding:8px 12px;font-size:12px;flex-shrink:0;}
  /* tools: horizontal scroll, compact */
  .pdfe-tool{min-width:40px;padding:6px 6px;font-size:10px;}
  .pdfe-tool svg{width:18px;height:18px;}
  .pdfe-optbar{gap:8px;padding:6px 10px;overflow-x:auto;flex-wrap:nowrap;}
  .pdfe-optbar label{white-space:nowrap;}
  #pdfeTextOpts{flex-wrap:nowrap !important;}
  .pdfe-canvas-area{padding:12px;}
  /* bigger tap targets for page/zoom controls */
  .pdfe-bb-btn{width:34px;height:34px;font-size:18px;}
}
@media (max-width:480px){
  .pdfe-app.active{height:calc(100dvh - 96px);}
  .pdfe-modal{max-width:100%;}
  #pdfeSigCanvas{height:150px;}
}

/* Extended bundled fonts (Roboto Serif, Roboto, Open Sans, Lato, Montserrat, Poppins, Merriweather, Lora, Nunito, Source Sans, Playfair Display, Roboto Mono) */
@font-face{font-family:"Roboto Serif";src:url("../fonts/RobotoSerif-Regular.ttf");font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:"Roboto Serif";src:url("../fonts/RobotoSerif-Bold.ttf");font-weight:700;font-style:normal;font-display:swap;}
@font-face{font-family:"Roboto Serif";src:url("../fonts/RobotoSerif-Italic.ttf");font-weight:400;font-style:italic;font-display:swap;}
@font-face{font-family:"Roboto Serif";src:url("../fonts/RobotoSerif-BoldItalic.ttf");font-weight:700;font-style:italic;font-display:swap;}
@font-face{font-family:"Roboto";src:url("../fonts/Roboto-Regular.ttf");font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:"Roboto";src:url("../fonts/Roboto-Bold.ttf");font-weight:700;font-style:normal;font-display:swap;}
@font-face{font-family:"Roboto";src:url("../fonts/Roboto-Italic.ttf");font-weight:400;font-style:italic;font-display:swap;}
@font-face{font-family:"Roboto";src:url("../fonts/Roboto-BoldItalic.ttf");font-weight:700;font-style:italic;font-display:swap;}
@font-face{font-family:"Roboto Mono";src:url("../fonts/RobotoMono-Regular.ttf");font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:"Roboto Mono";src:url("../fonts/RobotoMono-Bold.ttf");font-weight:700;font-style:normal;font-display:swap;}
@font-face{font-family:"Roboto Mono";src:url("../fonts/RobotoMono-Italic.ttf");font-weight:400;font-style:italic;font-display:swap;}
@font-face{font-family:"Roboto Mono";src:url("../fonts/RobotoMono-BoldItalic.ttf");font-weight:700;font-style:italic;font-display:swap;}
@font-face{font-family:"Open Sans";src:url("../fonts/OpenSans-Regular.ttf");font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:"Open Sans";src:url("../fonts/OpenSans-Bold.ttf");font-weight:700;font-style:normal;font-display:swap;}
@font-face{font-family:"Open Sans";src:url("../fonts/OpenSans-Italic.ttf");font-weight:400;font-style:italic;font-display:swap;}
@font-face{font-family:"Open Sans";src:url("../fonts/OpenSans-BoldItalic.ttf");font-weight:700;font-style:italic;font-display:swap;}
@font-face{font-family:"Lato";src:url("../fonts/Lato-Regular.ttf");font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:"Lato";src:url("../fonts/Lato-Bold.ttf");font-weight:700;font-style:normal;font-display:swap;}
@font-face{font-family:"Lato";src:url("../fonts/Lato-Italic.ttf");font-weight:400;font-style:italic;font-display:swap;}
@font-face{font-family:"Lato";src:url("../fonts/Lato-BoldItalic.ttf");font-weight:700;font-style:italic;font-display:swap;}
@font-face{font-family:"Montserrat";src:url("../fonts/Montserrat-Regular.ttf");font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:"Montserrat";src:url("../fonts/Montserrat-Bold.ttf");font-weight:700;font-style:normal;font-display:swap;}
@font-face{font-family:"Montserrat";src:url("../fonts/Montserrat-Italic.ttf");font-weight:400;font-style:italic;font-display:swap;}
@font-face{font-family:"Montserrat";src:url("../fonts/Montserrat-BoldItalic.ttf");font-weight:700;font-style:italic;font-display:swap;}
@font-face{font-family:"Poppins";src:url("../fonts/Poppins-Regular.ttf");font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:"Poppins";src:url("../fonts/Poppins-Bold.ttf");font-weight:700;font-style:normal;font-display:swap;}
@font-face{font-family:"Poppins";src:url("../fonts/Poppins-Italic.ttf");font-weight:400;font-style:italic;font-display:swap;}
@font-face{font-family:"Poppins";src:url("../fonts/Poppins-BoldItalic.ttf");font-weight:700;font-style:italic;font-display:swap;}
@font-face{font-family:"Merriweather";src:url("../fonts/Merriweather-Regular.ttf");font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:"Merriweather";src:url("../fonts/Merriweather-Bold.ttf");font-weight:700;font-style:normal;font-display:swap;}
@font-face{font-family:"Merriweather";src:url("../fonts/Merriweather-Italic.ttf");font-weight:400;font-style:italic;font-display:swap;}
@font-face{font-family:"Merriweather";src:url("../fonts/Merriweather-BoldItalic.ttf");font-weight:700;font-style:italic;font-display:swap;}
@font-face{font-family:"Lora";src:url("../fonts/Lora-Regular.ttf");font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:"Lora";src:url("../fonts/Lora-Bold.ttf");font-weight:700;font-style:normal;font-display:swap;}
@font-face{font-family:"Lora";src:url("../fonts/Lora-Italic.ttf");font-weight:400;font-style:italic;font-display:swap;}
@font-face{font-family:"Lora";src:url("../fonts/Lora-BoldItalic.ttf");font-weight:700;font-style:italic;font-display:swap;}
@font-face{font-family:"Nunito";src:url("../fonts/Nunito-Regular.ttf");font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:"Nunito";src:url("../fonts/Nunito-Bold.ttf");font-weight:700;font-style:normal;font-display:swap;}
@font-face{font-family:"Nunito";src:url("../fonts/Nunito-Italic.ttf");font-weight:400;font-style:italic;font-display:swap;}
@font-face{font-family:"Nunito";src:url("../fonts/Nunito-BoldItalic.ttf");font-weight:700;font-style:italic;font-display:swap;}
@font-face{font-family:"Source Sans";src:url("../fonts/SourceSans-Regular.ttf");font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:"Source Sans";src:url("../fonts/SourceSans-Bold.ttf");font-weight:700;font-style:normal;font-display:swap;}
@font-face{font-family:"Source Sans";src:url("../fonts/SourceSans-Italic.ttf");font-weight:400;font-style:italic;font-display:swap;}
@font-face{font-family:"Source Sans";src:url("../fonts/SourceSans-BoldItalic.ttf");font-weight:700;font-style:italic;font-display:swap;}
@font-face{font-family:"Playfair Display";src:url("../fonts/PlayfairDisplay-Regular.ttf");font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:"Playfair Display";src:url("../fonts/PlayfairDisplay-Bold.ttf");font-weight:700;font-style:normal;font-display:swap;}
@font-face{font-family:"Playfair Display";src:url("../fonts/PlayfairDisplay-Italic.ttf");font-weight:400;font-style:italic;font-display:swap;}
@font-face{font-family:"Playfair Display";src:url("../fonts/PlayfairDisplay-BoldItalic.ttf");font-weight:700;font-style:italic;font-display:swap;}

/* Roboto extra weights (Thin/Light/Medium/Black) so the Weight control works for thin text */
@font-face{font-family:'Roboto';src:url('../fonts/Roboto-100.ttf');font-weight:100;font-style:normal;font-display:swap;}
@font-face{font-family:'Roboto';src:url('../fonts/Roboto-300.ttf');font-weight:300;font-style:normal;font-display:swap;}
@font-face{font-family:'Roboto';src:url('../fonts/Roboto-500.ttf');font-weight:500;font-style:normal;font-display:swap;}
@font-face{font-family:'Roboto';src:url('../fonts/Roboto-900.ttf');font-weight:900;font-style:normal;font-display:swap;}

/* Signature fonts for the Sign dialog (typed signatures) */
@font-face{font-family:'Great Vibes';src:url('../fonts/GreatVibes-Regular.ttf');font-display:swap;}
@font-face{font-family:'Dancing Script';src:url('../fonts/DancingScript-Regular.ttf');font-display:swap;}
@font-face{font-family:'Pacifico';src:url('../fonts/Pacifico-Regular.ttf');font-display:swap;}
@font-face{font-family:'Allura';src:url('../fonts/Allura-Regular.ttf');font-display:swap;}
@font-face{font-family:'Sacramento';src:url('../fonts/Sacramento-Regular.ttf');font-display:swap;}

/* ===== Signature modal ===== */
.pdfe-modal-overlay{
  position:fixed;inset:0;background:rgba(15,23,42,.55);z-index:9999;
  display:none;align-items:center;justify-content:center;padding:16px;
}
.pdfe-modal-overlay.open{display:flex;}
.pdfe-modal{
  background:#fff;border-radius:16px;width:100%;max-width:560px;
  box-shadow:0 24px 70px rgba(0,0,0,.4);overflow:hidden;
}
.pdfe-modal-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--pdfe-border);}
.pdfe-modal-head h3{font-size:17px;font-weight:800;color:var(--pdfe-ink);margin:0;}
.pdfe-modal-close{background:none;border:none;font-size:22px;cursor:pointer;color:var(--pdfe-muted);line-height:1;}
.pdfe-sig-tabs{display:flex;gap:6px;padding:14px 20px 0;}
.pdfe-sig-tab{
  flex:1;padding:9px;border:1px solid var(--pdfe-border);background:#f8fafc;border-radius:9px;
  cursor:pointer;font-weight:700;font-size:13px;color:var(--pdfe-muted);
}
.pdfe-sig-tab.active{background:var(--pdfe-accent);color:#fff;border-color:var(--pdfe-accent);}
.pdfe-sig-body{padding:16px 20px;}
.pdfe-sig-pane{display:none;}
.pdfe-sig-pane.active{display:block;}
#pdfeSigCanvas{width:100%;height:180px;border:2px dashed var(--pdfe-border);border-radius:10px;background:#fff;cursor:crosshair;touch-action:none;}
.pdfe-sig-type-input{width:100%;padding:12px 14px;font-size:16px;border:1px solid var(--pdfe-border);border-radius:9px;margin-bottom:12px;}
.pdfe-sig-fonts{display:flex;flex-direction:column;gap:8px;max-height:230px;overflow-y:auto;}
.pdfe-sig-font-opt{
  border:2px solid var(--pdfe-border);border-radius:10px;padding:8px 14px;cursor:pointer;
  font-size:30px;color:#111827;line-height:1.2;background:#fff;text-align:center;
}
.pdfe-sig-font-opt.active{border-color:var(--pdfe-accent);background:#eef2ff;}
.pdfe-sig-row{display:flex;align-items:center;gap:14px;margin-top:12px;flex-wrap:wrap;}
.pdfe-sig-foot{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px;border-top:1px solid var(--pdfe-border);}
.pdfe-btn{padding:9px 18px;border-radius:9px;font-weight:700;font-size:14px;cursor:pointer;border:1px solid var(--pdfe-border);background:#fff;color:var(--pdfe-ink);}
.pdfe-btn-primary{background:var(--pdfe-accent);color:#fff;border-color:var(--pdfe-accent);}
@font-face{font-family:'Satisfy';src:url('../fonts/Satisfy-Regular.ttf');font-display:swap;}
