:root{
  --brand:#6d5ef8;
  --brand-2:#22d3ee;
  --brand-dark:#4c3fd6;
  --ink:#12142b;
  --muted:#6b7180;
  --bg-soft:#f6f6fc;
  --grad: linear-gradient(135deg, #6d5ef8 0%, #8b7bfb 45%, #22d3ee 100%);
  --shadow-sm: 0 1px 2px rgba(16,20,40,.04), 0 2px 8px rgba(16,20,40,.04);
  --shadow-md: 0 8px 24px rgba(30,25,90,.10);
  --shadow-lg: 0 20px 48px rgba(30,25,90,.16);
}
*{ scroll-behavior:smooth; }
body{ font-family:'Inter', system-ui, sans-serif; color:var(--ink); background:#fff; overflow-x:hidden; opacity:0; }
body.loaded{ opacity:1; transition:opacity .5s ease; }
h1,h2,h3,h4,h5,h6,.navbar-brand{ font-family:'Poppins', 'Inter', sans-serif; }
::-webkit-scrollbar{ width:10px; }
::-webkit-scrollbar-track{ background:#f1f1f8; }
::-webkit-scrollbar-thumb{ background:var(--grad); border-radius:10px; }

/* scaleX on the compositor instead of width, which re-laid out the page on
   every scroll event (ganeshediting21: phones stuttered while scrolling) */
#scroll-progress{ position:fixed; top:0; left:0; height:3px; background:var(--grad); z-index:2000; width:100%; transform:scaleX(0); transform-origin:0 50%; will-change:transform; }

.navbar{ background:rgba(255,255,255,.75); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); transition:.25s; border-bottom:1px solid rgba(20,20,50,.06); }
.navbar.scrolled{ box-shadow:var(--shadow-sm); }
.navbar-brand{ font-weight:700; letter-spacing:.2px; }
.navbar-brand .ti{ display:inline-block; transition:.4s; }
.navbar-brand:hover .ti{ transform:rotate(-25deg) scale(1.15); }
.navbar-brand .grad-text{ background:none; -webkit-background-clip:initial; background-clip:initial; color:var(--brand); }
.nav-link{ font-weight:500; color:var(--ink); position:relative; }
.nav-link::after{ content:''; position:absolute; left:0; bottom:2px; width:0; height:2px; background:var(--grad); transition:.25s; border-radius:2px; }
.nav-link:hover::after{ width:100%; }

.btn{ border-radius:12px; font-weight:600; transition:.2s cubic-bezier(.2,.8,.2,1); position:relative; overflow:hidden; }
.btn-grad{ background:var(--grad); border:none; color:#fff; box-shadow:0 6px 18px rgba(109,94,248,.35); }
.btn-grad:hover{ transform:translateY(-2px); box-shadow:0 10px 26px rgba(109,94,248,.45); color:#fff; }
.btn-outline-light:hover{ transform:translateY(-2px); }
.btn-outline-primary{ border-color:var(--brand); color:var(--brand); }
.btn-outline-primary:hover{ background:var(--brand); border-color:var(--brand); transform:translateY(-2px); }
.btn-pulse{ animation:ctaPulse 2.4s ease-in-out infinite; }
@keyframes ctaPulse{ 0%,100%{ box-shadow:0 6px 18px rgba(109,94,248,.35), 0 0 0 0 rgba(109,94,248,.4); } 50%{ box-shadow:0 6px 22px rgba(109,94,248,.5), 0 0 0 10px rgba(109,94,248,0); } }
.ripple-el{ position:absolute; border-radius:50%; background:rgba(255,255,255,.55); transform:scale(0); animation:rippleAnim .6s linear; pointer-events:none; }
@keyframes rippleAnim{ to{ transform:scale(2.6); opacity:0; } }

.hero{ position:relative; background:radial-gradient(120% 120% at 15% 10%, #1c2160 0%, #0c0e29 55%, #0a0c22 100%); color:#fff; padding:120px 0 70px; overflow:hidden; }
.hero::before, .hero::after{ content:''; position:absolute; border-radius:50%; filter:blur(70px); opacity:.55; z-index:0; }
.hero::before{ width:420px; height:420px; background:var(--brand); top:-140px; right:-100px; animation:floaty 9s ease-in-out infinite; }
.hero::after{ width:340px; height:340px; background:var(--brand-2); bottom:-120px; left:10%; animation:floaty 11s ease-in-out infinite reverse; }
@keyframes floaty{ 0%,100%{ transform:translateY(0) translateX(0); } 50%{ transform:translateY(-30px) translateX(20px); } }
.hero .container{ position:relative; z-index:1; }
#heroParallax{ transition:transform .15s ease-out; }
.badge-soft{ background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.18); color:#e9edff; font-weight:500; backdrop-filter:blur(6px); }
.hero p.lead{ color:#c7cdf5; }
.scroll-cue{ position:relative; z-index:1; display:flex; justify-content:center; margin-top:40px; }
.scroll-cue a{ color:#aeb6d6; animation:bounceArrow 1.8s ease-in-out infinite; display:inline-block; }
@keyframes bounceArrow{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(8px); } }

.page-header{ background:radial-gradient(120% 120% at 15% 10%, #1c2160 0%, #0c0e29 55%, #0a0c22 100%); color:#fff; padding:70px 0 50px; }
.breadcrumb-light a{ color:#c7cdf5; text-decoration:none; }
.breadcrumb-light .active{ color:#fff; }

.section-title{ font-weight:700; margin-bottom:.4rem; letter-spacing:-.3px; }
.section-sub{ color:var(--muted); margin-bottom:2.4rem; }
.section-tag{ font-size:.72rem; font-weight:700; letter-spacing:.8px; text-transform:uppercase; background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent; margin-bottom:.5rem; display:inline-block; }

.card-tool{ border:1px solid rgba(18,20,43,.07); border-radius:18px; transition:.25s cubic-bezier(.2,.8,.2,1); height:100%; background:#fff; box-shadow:var(--shadow-sm); }
.card-tool:hover{ box-shadow:var(--shadow-md); transform:translateY(-6px) scale(1.015); border-color:rgba(109,94,248,.25); }
.card-tool:hover i:first-child{ transform:scale(1.15) rotate(-4deg); }
.card-tool .ti{ transition:.25s; }
.card-tool a.stretched-link{ color:inherit; text-decoration:none; }
.icon-wrap{ width:46px; height:46px; border-radius:12px; display:flex; align-items:center; justify-content:center; font-size:22px; margin-bottom:14px; transition:.25s; }
.card-tool:hover .icon-wrap{ transform:scale(1.1) rotate(-4deg); }
.icon-free{ background:#e8f9f1; color:#0ea968; }
.icon-paid{ background:#fff0e8; color:#e5622a; }
.icon-ai{ background:#f0ecfe; color:#6d5ef8; }
.icon-biz{ background:#e8f2ff; color:#1f6fe0; }
.price-tag{ font-weight:700; font-size:.78rem; padding:4px 12px; border-radius:20px; white-space:nowrap; }
.price-free{ background:#e8f9f1; color:#0ea968; }
.price-paid{ background:#fff0e8; color:#e5622a; }
.bg-soft{ background:var(--bg-soft); }

.ad-slot{ border:1.5px dashed #c9cdf0; border-radius:16px; background:#fbfbff; color:#9aa0c4; font-size:.85rem; display:flex; align-items:center; justify-content:center; text-align:center; padding:14px; transition:.2s; }
.ad-slot:hover{ border-color:var(--brand); color:var(--brand); }

.upload-box{ border:2px dashed #cfd2f5; border-radius:18px; background:linear-gradient(180deg,#fff, #f8f8ff); padding:42px 22px; text-align:center; transition:.25s; }
.upload-box:hover{ border-color:var(--brand); box-shadow:var(--shadow-md); }
.upload-box .ti{ font-size:38px; color:var(--brand); stroke-width:1.6; display:inline-block; animation:floatIcon 2.6s ease-in-out infinite; }
@keyframes floatIcon{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-6px); } }
.upload-box.drag-active{ border-color:var(--brand); box-shadow:var(--shadow-md); background:linear-gradient(180deg,#f3f1ff,#fff); transform:scale(1.01); }

.pricing-card{ border:1px solid rgba(18,20,43,.08); border-radius:20px; background:#fff; box-shadow:var(--shadow-sm); transition:.25s; }
.pricing-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-md); }
.pricing-card.featured{ border:2px solid transparent; background:linear-gradient(#fff,#fff) padding-box, var(--grad) border-box; box-shadow:var(--shadow-lg); position:relative; }
.pricing-card .price{ font-size:2.3rem; font-weight:700; }

.step-num{ width:36px; height:36px; border-radius:50%; background:var(--grad); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:.9rem; flex:none; box-shadow:0 6px 14px rgba(109,94,248,.35); }

.dev-chip{ border:1px solid rgba(18,20,43,.08); border-radius:12px; padding:11px 16px; font-size:.85rem; font-family:'Consolas', monospace; background:#fbfbff; display:flex; align-items:center; gap:8px; transition:.2s; }
.dev-chip:hover{ border-color:var(--brand); box-shadow:var(--shadow-sm); transform:translateY(-3px) scale(1.03); }

.learn-card{ border:1px solid rgba(18,20,43,.07); border-radius:16px; padding:1.4rem; height:100%; transition:.25s; background:#fff; box-shadow:var(--shadow-sm); }
.learn-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow-md); }

.testimonial{ border:1px solid rgba(18,20,43,.07); border-radius:16px; padding:1.4rem; height:100%; background:#fff; box-shadow:var(--shadow-sm); transition:.25s; }
.testimonial:hover{ transform:translateY(-4px); box-shadow:var(--shadow-md); }
.avatar-circle{ width:38px; height:38px; border-radius:50%; background:var(--grad); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:.85rem; }

.account-card{ background:#fff; border:1px solid rgba(18,20,43,.08); border-radius:20px; padding:1.6rem; box-shadow:var(--shadow-md); }
.account-card .border{ transition:.2s; }
.account-card .border:hover{ border-color:var(--brand) !important; transform:translateY(-3px); box-shadow:var(--shadow-sm); }
.badge-phase{ font-size:.68rem; font-weight:700; padding:3px 10px; border-radius:20px; margin-left:8px; vertical-align:middle; }

footer{ background:#0a0c22; color:#aab0d6; position:relative; }
footer::before{ content:''; position:absolute; top:0; left:0; right:0; height:3px; background:var(--grad); }
footer a{ color:#aab0d6; text-decoration:none; transition:.2s; }
footer a:hover{ color:#fff; padding-left:4px; }

.grad-text{ background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent; }
#typedWord::after{ content:''; display:inline-block; width:2px; height:1em; background:var(--brand); margin-left:3px; vertical-align:-2px; animation:blink 1s step-end infinite; }
@keyframes blink{ 50%{ opacity:0; } }

.theme-toggle{ width:38px; height:38px; border-radius:50%; border:1px solid rgba(18,20,43,.12); background:#fff; display:flex; align-items:center; justify-content:center; cursor:pointer; transition:.3s; }
.theme-toggle:hover{ transform:rotate(50deg) scale(1.1); box-shadow:var(--shadow-sm); }

.stat-num{ font-size:2.2rem; font-weight:700; display:inline-block; }

.form-range::-webkit-slider-thumb{ background:var(--brand); }
.form-range::-moz-range-thumb{ background:var(--brand); }
.form-range::-webkit-slider-runnable-track{ background:linear-gradient(90deg, var(--brand), var(--brand-2)); }

#demoSteps span{ transition:.3s; width:70px; }
#demoSteps span.active .ti{ color:var(--brand); animation:popIn .35s ease; }
#demoSteps span.active{ color:var(--ink); font-weight:600; }
#demoSteps .ti{ font-size:20px; }
@keyframes popIn{ 0%{ transform:scale(.6); } 60%{ transform:scale(1.25); } 100%{ transform:scale(1); } }

body[data-theme="dark"]{ background:#0a0c1f; color:#e7e9ff; }
body[data-theme="dark"] .bg-soft{ background:#12142b; }
body[data-theme="dark"] .navbar{ background:rgba(15,16,40,.8); border-bottom-color:rgba(255,255,255,.08); }
body[data-theme="dark"] .nav-link{ color:#e7e9ff; }
body[data-theme="dark"] .card-tool, body[data-theme="dark"] .pricing-card, body[data-theme="dark"] .learn-card, body[data-theme="dark"] .testimonial, body[data-theme="dark"] .account-card, body[data-theme="dark"] .dev-chip{ background:#171933; border-color:rgba(255,255,255,.08); color:#e7e9ff; }
body[data-theme="dark"] .text-secondary{ color:#9498c2 !important; }
body[data-theme="dark"] .ad-slot{ background:#12142b; border-color:rgba(255,255,255,.15); color:#7f85ad; }
body[data-theme="dark"] .upload-box{ background:linear-gradient(180deg,#171933,#12142b); border-color:rgba(255,255,255,.18); }
body[data-theme="dark"] .theme-toggle{ background:#171933; border-color:rgba(255,255,255,.15); color:#e7e9ff; }
body[data-theme="dark"] h1,body[data-theme="dark"] h2,body[data-theme="dark"] h3,body[data-theme="dark"] h5,body[data-theme="dark"] h6{ color:#f2f3ff; }

/* ---- File input: style the browser's own "Choose file" button ----
   The button inside <input type="file"> is not a separate element we can
   render; ::file-selector-button is the only handle on it. Left unstyled
   it renders in the browser's default grey, which reads as disabled next
   to the site's own buttons. */
input[type="file"]::file-selector-button{
  background:#000; color:#fff; border:none; border-radius:8px;
  padding:8px 16px; margin-right:12px; font-weight:500; cursor:pointer;
  transition:background .2s;
}
input[type="file"]::file-selector-button:hover{ background:#222; }
/* Dark theme keeps the same button: on a dark card a pure-black button
   would disappear, so it lightens rather than inverting (inverting would
   put a white button next to white text). */
body[data-theme="dark"] input[type="file"]::file-selector-button{ background:#2b2b3d; }
body[data-theme="dark"] input[type="file"]::file-selector-button:hover{ background:#3a3a52; }

/* Drop zone rejecting a file whose type this tool does not accept. */
.upload-box.is-dragreject{ border-color:#dc3545; background:linear-gradient(180deg,#fff5f5,#fff); }
body[data-theme="dark"] .upload-box.is-dragreject{ background:linear-gradient(180deg,#2b1618,#12142b); border-color:#dc3545; }

/* The whole box is clickable now (dropzone.js), so show that. */
.upload-box{ cursor:pointer; }
.upload-box input[type="file"]{ cursor:auto; }

/* ---- Icons ----
   Icons are inline <svg class="ti"><use href="#ti-name"></use></svg> from
   the sprite in _icon_sprite.html, replacing the icon webfont this site
   used to pull from a CDN. currentColor keeps every place that coloured
   the old <i> by setting `color` working unchanged, and 1em sizing keeps
   the font-size-based sizing those call sites already use. */
.ti{
  width:1em; height:1em; vertical-align:-0.125em;
  fill:none; stroke:currentColor; stroke-width:2;
  stroke-linecap:round; stroke-linejoin:round;
  flex-shrink:0;
}

/* ---- Page previews (page-preview.js) ----
   Sits inside the upload box under the file input. The box itself opens
   the file picker on click, so the preview opts out of that in dropzone.js
   and resets the pointer. */
.page-preview{ margin:16px auto 0; text-align:left; cursor:default; }
.pp-head{ font-size:.875rem; margin:0 0 10px; overflow-wrap:anywhere; text-align:center; }
.pp-meta{ color:var(--muted); }
.pp-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(96px,1fr)); gap:12px; max-height:360px; overflow:auto; padding:4px; }
.pp-thumb{ border:0; background:none; padding:0; display:flex; flex-direction:column; align-items:center; gap:4px; cursor:zoom-in; color:inherit; }
.pp-sheet{ width:100%; height:140px; display:flex; align-items:center; justify-content:center; border-radius:8px; border:1px solid #e3e5f5; background:var(--bg-soft); overflow:hidden; transition:border-color .15s, box-shadow .15s; }
.pp-sheet canvas{ background:#fff; box-shadow:0 1px 3px rgba(0,0,0,.18); max-width:100%; max-height:100%; }
.pp-sheet.pp-failed{ background:repeating-linear-gradient(45deg,#f1f1f6,#f1f1f6 6px,#e6e6ef 6px,#e6e6ef 12px); }
.pp-thumb:hover .pp-sheet, .pp-thumb:focus-visible .pp-sheet{ border-color:var(--brand); box-shadow:var(--shadow-md); }
.pp-thumb:focus-visible{ outline:none; }
.pp-num{ font-size:.75rem; color:var(--muted); }
.pp-note{ font-size:.8rem; color:var(--muted); margin:10px 0 0; text-align:center; }
.pp-docx{ display:block; width:100%; height:420px; border:1px solid #e3e5f5; border-radius:8px; background:#e9eaf3; }

.pp-viewer{ position:fixed; inset:0; z-index:2100; background:rgba(10,12,31,.94); display:flex; flex-direction:column; cursor:default; }
.pp-viewer[hidden]{ display:none !important; }
.pp-viewer-bar{ display:flex; align-items:center; gap:12px; padding:10px 14px; color:#e7e9ff; font-size:.9rem; }
.pp-viewer-title{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pp-viewer-close, .pp-viewer-nav{ border:0; border-radius:10px; background:rgba(255,255,255,.12); color:#fff; font-size:1.25rem; line-height:1; cursor:pointer; }
.pp-viewer-close{ width:40px; height:40px; }
.pp-viewer-nav{ width:44px; height:64px; font-size:2rem; flex:none; }
.pp-viewer-close:hover, .pp-viewer-nav:hover:not(:disabled){ background:rgba(255,255,255,.24); }
.pp-viewer-nav:disabled{ opacity:.3; cursor:default; }
.pp-viewer-stage{ flex:1; min-height:0; display:flex; align-items:center; gap:8px; padding:0 8px 12px; }
.pp-viewer-frame{ flex:1; min-width:0; height:100%; display:flex; position:relative; overflow:auto; overscroll-behavior:contain; scroll-behavior:auto; }
/* margin:auto centres the page while it fits and still lets every edge of
   a zoomed page scroll into view (flex centring would cut the top and left off) */
.pp-viewer-frame > *{ margin:auto; flex:none; }
.pp-viewer-frame.is-zoomed{ cursor:grab; }
.pp-viewer-frame.is-dragging{ cursor:grabbing; user-select:none; }
.pp-turned{ display:flex; align-items:center; justify-content:center; }
.pp-turned > *{ flex:none; }
.pp-zoom{ display:flex; align-items:center; gap:4px; flex:none; }
.pp-zoom-btn, .pp-zoom-level{ border:0; border-radius:10px; background:rgba(255,255,255,.12); color:#fff; height:40px; cursor:pointer; }
.pp-zoom-btn{ width:40px; display:inline-flex; align-items:center; justify-content:center; }
.pp-zoom-btn .ti{ font-size:20px; }
.pp-zoom-level{ min-width:58px; padding:0 8px; font-size:.85rem; font-variant-numeric:tabular-nums; }
.pp-zoom-btn:hover:not(:disabled), .pp-zoom-level:hover{ background:rgba(255,255,255,.24); }
.pp-zoom-btn:disabled{ opacity:.35; cursor:default; }
@media (max-width:575.98px){
  .pp-viewer-bar{ flex-wrap:wrap; row-gap:8px; }
  .pp-viewer-title{ flex-basis:100%; order:-1; }
  .pp-zoom{ margin-right:auto; }
}
.pp-viewer-frame canvas, .pp-viewer-frame img{ background:#fff; box-shadow:0 6px 30px rgba(0,0,0,.5); }
.pp-viewer-error{ color:#e7e9ff; }
html.pp-viewer-open, html.pp-viewer-open body{ overflow:hidden; }
@media (max-width:576px){
  .pp-grid{ grid-template-columns:repeat(auto-fill,minmax(80px,1fr)); gap:8px; }
  .pp-sheet{ height:116px; }
  .pp-viewer-nav{ width:34px; height:56px; }
  .pp-viewer-stage{ padding:0 4px 10px; gap:4px; }
}

/* File lists (Merge PDF, Image to PDF): a small preview before each name. */
.pp-list-thumb{ flex:none; width:40px; height:52px; border:1px solid #e3e5f5; border-radius:6px; background:var(--bg-soft); padding:0; display:flex; align-items:center; justify-content:center; overflow:hidden; cursor:zoom-in; }
.pp-list-thumb img{ max-width:100%; max-height:100%; background:#fff; object-fit:contain; }
.pp-list-thumb:hover, .pp-list-thumb:focus-visible{ border-color:var(--brand); }

body[data-theme="dark"] .pp-sheet, body[data-theme="dark"] .pp-list-thumb{ background:#0f1128; border-color:rgba(255,255,255,.14); }
body[data-theme="dark"] .pp-meta, body[data-theme="dark"] .pp-num, body[data-theme="dark"] .pp-note{ color:#9498c2; }
body[data-theme="dark"] .pp-docx{ border-color:rgba(255,255,255,.14); }

/* A .card-tool used as a plain content box rather than a grid card.
   .card-tool is height:100% so cards in a row line up; inside a single
   text column that stretches the box to the whole column's height and
   pushes everything after it far down the page. Nor should a box of text
   lift on hover like a clickable card. */
.card-tool.card-static{ height:auto; }
.card-tool.card-static:hover{ transform:none; box-shadow:var(--shadow-sm); border-color:rgba(18,20,43,.07); }
body[data-theme="dark"] .card-tool.card-static:hover{ border-color:rgba(255,255,255,.08); }

/* ---- Video & audio tools ---------------------------------------------- */
.mk-panel{ border:1px solid rgba(18,20,43,.08); border-radius:16px; background:#fff; padding:18px; box-shadow:var(--shadow-sm); }
body[data-theme="dark"] .mk-panel{ background:#171933; border-color:rgba(255,255,255,.08); color:#e7e9ff; }
.mk-filebar .ti{ font-size:28px; color:var(--brand); flex:none; }
.mk-preview{ width:100%; max-height:380px; border-radius:12px; background:#000; display:block; }
.mk-col-title{ font-size:1rem; font-weight:700; display:flex; align-items:center; gap:8px; margin-bottom:12px; }
.mk-col-title .ti{ color:var(--brand); font-size:20px; }
.mk-choices{ display:grid; gap:8px; }
.mk-choices-row{ grid-template-columns:repeat(auto-fit, minmax(120px, 1fr)); }
.mk-choice{ position:relative; display:flex; align-items:center; justify-content:space-between; gap:10px; border:1.5px solid #e3e5f5; border-radius:12px; padding:9px 13px; margin:0; cursor:pointer; transition:border-color .15s, background-color .15s; }
.mk-choice[hidden]{ display:none; }
.mk-choice input{ position:absolute; opacity:0; pointer-events:none; }
.mk-choice:hover{ border-color:rgba(109,94,248,.5); }
.mk-choice:has(input:checked){ border-color:var(--brand); background:rgba(109,94,248,.08); }
.mk-choice:has(input:focus-visible){ outline:2px solid var(--brand); outline-offset:2px; }
.mk-sub{ font-size:.8rem; color:#6c7086; white-space:nowrap; }
body[data-theme="dark"] .mk-choice{ border-color:rgba(255,255,255,.14); }
body[data-theme="dark"] .mk-sub{ color:#a9adcb; }
/* Two range inputs stacked on one track: only their thumbs take pointer
   input, so each handle can be dragged even where the tracks overlap. */
.mk-range{ position:relative; height:28px; }
.mk-range::before{ content:""; position:absolute; left:0; right:0; top:12px; height:6px; border-radius:3px; background:#e3e5f5; }
body[data-theme="dark"] .mk-range::before{ background:rgba(255,255,255,.14); }
.mk-range-fill{ position:absolute; top:12px; height:6px; border-radius:3px; background:var(--grad); }
.mk-range input[type="range"]{ position:absolute; left:0; top:0; width:100%; height:28px; margin:0; background:none; pointer-events:none; -webkit-appearance:none; appearance:none; }
.mk-range input[type="range"]::-webkit-slider-runnable-track{ background:none; }
.mk-range input[type="range"]::-moz-range-track{ background:none; }
.mk-range input[type="range"]::-webkit-slider-thumb{ -webkit-appearance:none; pointer-events:auto; width:20px; height:20px; border-radius:50%; background:#fff; border:3px solid var(--brand); cursor:grab; margin-top:0; box-shadow:0 2px 6px rgba(0,0,0,.2); }
.mk-range input[type="range"]::-moz-range-thumb{ pointer-events:auto; width:16px; height:16px; border-radius:50%; background:#fff; border:3px solid var(--brand); cursor:grab; }

/* ---- Photos to video ---------------------------------------------------- */
.pv-list{ display:grid; gap:8px; max-height:430px; overflow-y:auto; padding-right:2px; }
.pv-item{ display:flex; align-items:center; gap:8px; border:1px solid #e3e5f5; border-radius:12px; padding:6px 8px; background:var(--bg-soft); }
body[data-theme="dark"] .pv-item{ border-color:rgba(255,255,255,.12); background:#12142b; }
.pv-item.is-broken{ border-color:#dc3545; }
.pv-thumb{ width:56px; height:42px; object-fit:cover; border-radius:8px; background:#dfe1f0; flex:none; }
.pv-num{ font-weight:700; font-size:.8rem; min-width:20px; text-align:center; color:var(--brand); flex:none; }
.pv-item .btn{ padding:.2rem .4rem; line-height:1; flex:none; }
.pv-item .btn .ti{ font-size:15px; }
.upload-box.upload-box-sm{ padding:18px 14px; }
.upload-box.upload-box-sm .ti{ font-size:26px; animation:none; }
fieldset:disabled .mk-choice, fieldset:disabled .upload-box{ opacity:.65; cursor:not-allowed; }

/* With seven items the expanded nav is wider than a 992-1199px screen and
   wrapped onto a second line; tighten the links only in that range. */
@media (min-width:992px) and (max-width:1199.98px){
  #mainNav .navbar-nav{ gap:.1rem !important; }
  #mainNav .nav-link{ padding-left:.4rem; padding-right:.4rem; font-size:.9rem; }
  #mainNav .btn-sm{ padding-left:.6rem !important; padding-right:.6rem !important; }
}

/* ---- Paste into a tool -------------------------------------------------- */
.paste-hint kbd{ font-size:.72rem; padding:.05rem .35rem; background:#eef0fb; color:var(--ink); border:1px solid #d9dcf3; border-radius:4px; box-shadow:none; font-family:inherit; }
body[data-theme="dark"] .paste-hint kbd{ background:#23264a; color:#e7e9ff; border-color:rgba(255,255,255,.15); }
.paste-btn{ padding:.1rem .55rem; font-size:.78rem; vertical-align:baseline; }
.paste-toast{ position:fixed; left:50%; bottom:24px; transform:translate(-50%, 16px); background:#12142b; color:#fff; padding:10px 16px; border-radius:12px; font-size:.9rem; box-shadow:0 10px 30px rgba(0,0,0,.25); opacity:0; pointer-events:none; transition:opacity .2s, transform .2s; z-index:2000; max-width:calc(100% - 32px); text-align:center; }
.paste-toast.show{ opacity:1; transform:translate(-50%, 0); }
.paste-toast.is-error{ background:#b42335; }
body[data-theme="dark"] .paste-toast:not(.is-error){ background:#e7e9ff; color:#12142b; }

/* ---- Page cards: the one page preview every tool uses ------------------- */
.pb-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(172px,1fr)); gap:22px 26px; padding:16px 14px 8px; }
.pb-grid.pb-scroll{ max-height:620px; overflow:auto; }
.pb-card{ position:relative; display:flex; flex-direction:column; align-items:center; gap:6px; padding:10px 8px 8px; border-radius:14px; background:#fff; border:1px solid #e3e5f5; box-shadow:var(--shadow-sm); transition:border-color .15s, box-shadow .15s; }
.pb-card:hover{ border-color:rgba(109,94,248,.45); box-shadow:var(--shadow-md); }
.pb-sheet{ position:relative; width:150px; height:196px; border:0; padding:0; background:transparent; display:flex; align-items:center; justify-content:center; cursor:zoom-in; border-radius:6px; color:inherit; }
.pb-sheet.is-pick{ cursor:pointer; }
.pb-sheet:focus-visible{ outline:2px solid var(--brand); outline-offset:3px; }
.pb-holder{ display:flex; align-items:center; justify-content:center; transition:transform .2s; }
.pb-holder canvas, .pb-holder img{ display:block; background:#fff; box-shadow:0 1px 4px rgba(0,0,0,.22); max-width:140px; max-height:186px; }
.pb-loading{ display:block; width:132px; height:176px; border-radius:4px; background:linear-gradient(90deg,#eceef8 25%,#f7f8fc 50%,#eceef8 75%); background-size:200% 100%; animation:pbShimmer 1.2s linear infinite; }
@keyframes pbShimmer{ to{ background-position:-200% 0; } }
.pb-failtext{ font-size:.72rem; color:#b42335; text-align:center; padding:0 6px; }
.pb-foot{ display:flex; align-items:center; justify-content:center; gap:4px; min-height:26px; }
.pb-num{ font-size:.8rem; color:var(--muted); min-width:18px; text-align:center; font-weight:600; max-width:100%; }
.pb-btn{ width:26px; height:26px; border-radius:8px; border:1px solid #e3e5f5; background:#fff; color:var(--ink); display:inline-flex; align-items:center; justify-content:center; padding:0; }
.pb-btn:hover:not(:disabled){ border-color:var(--brand); color:var(--brand); }
.pb-btn:disabled{ opacity:.35; }
/* rotate button beside the page number: brand-tinted so it's easy to spot,
   the arrow leans on hover and makes a full turn on each click while the
   page itself swings round to its new angle */
.pb-turn{ border-radius:50%; border-color:rgba(109,94,248,.35); color:var(--brand); background:rgba(109,94,248,.07); }
.pb-turn:hover:not(:disabled){ background:var(--brand); border-color:var(--brand); color:#fff; box-shadow:0 2px 8px rgba(109,94,248,.35); }
.pb .pb-turn .ti{ transition:transform .3s ease; }
.pb .pb-turn:hover:not(:disabled) .ti{ transform:rotate(90deg); }
.pb .pb-turn.is-spun .ti{ animation:pbSpin .5s cubic-bezier(.3,1.4,.5,1); }
@keyframes pbSpin{ from{ transform:rotate(-360deg); } to{ transform:rotate(0); } }
.pb-holder.is-turning{ animation:pbTurn .35s ease-out; }
@keyframes pbTurn{ from{ transform:var(--turn-from); } to{ transform:var(--turn-to); } }
@media (prefers-reduced-motion: reduce){
  .pb .pb-turn .ti, .pb .pb-turn.is-spun .ti, .pb-holder.is-turning{ animation:none; transition:none; }
}
.pb-corner{ position:absolute; top:-10px; right:-10px; width:30px; height:30px; border-radius:50%; border:2px solid #fff; display:flex; align-items:center; justify-content:center; padding:0; color:#fff; box-shadow:0 2px 6px rgba(0,0,0,.22); z-index:2; }
.pb-corner:focus-visible{ outline:2px solid var(--brand); outline-offset:2px; }
/* Upload boxes style every icon inside them as a large floating hero icon;
   the page cards sit inside some upload boxes and need ordinary icons. */
.pb .ti, .upload-box .pb .ti{ font-size:15px; stroke-width:2; color:inherit; animation:none; display:inline-block; }
.pb-reject{ background:#dc3545; }
.pb-reject:hover{ background:#b42335; }
.pb-reject.is-on{ background:#198754; }
.pb-zoom{ background:#343a40; }
.pb-card.is-rejected{ border-style:dashed; border-color:#dc3545; box-shadow:none; }
.pb-card.is-rejected .pb-holder{ opacity:.3; filter:grayscale(1); }
.pb-badge{ position:absolute; top:44%; left:50%; transform:translate(-50%,-50%); background:#6b708a; color:#fff; font-size:.68rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; padding:2px 8px; border-radius:6px; pointer-events:none; }
.pb-card.is-failed{ border-color:#f1b0b7; }
.pb-check{ position:absolute; top:-10px; left:-10px; width:30px; height:30px; padding:0; border-radius:8px; background:#22b573; color:#fff; font-weight:700; font-size:1rem; line-height:1; display:flex; align-items:center; justify-content:center; border:2px solid #fff; box-shadow:0 2px 6px rgba(0,0,0,.22); z-index:2; cursor:pointer; }
.pb-check:disabled{ cursor:default; }
.pb-check:focus-visible{ outline:2px solid var(--brand); outline-offset:2px; }
.pb-card.is-selected{ border-color:#22b573; }
.pb-card.is-unselected .pb-check{ background:#fff; color:transparent; border-color:#cfd2e6; }
.pb-card.is-unselected{ border-style:dashed; border-color:#b8bcd6; box-shadow:none; }
.pb-card.is-unselected .pb-holder{ opacity:.35; filter:grayscale(1); }
.pp-warn{ color:#b42335 !important; font-weight:600; }
.pp-viewer-reject{ border:0; border-radius:10px; background:#dc3545; color:#fff; padding:0 14px; height:40px; font-size:.9rem; display:inline-flex; align-items:center; gap:6px; flex:none; cursor:pointer; }
.pp-viewer-reject .ti{ font-size:17px; }
.pp-viewer-reject:hover{ background:#b42335; }
.pp-viewer-reject.is-on{ background:#198754; }
.pp-viewer-reject[hidden]{ display:none; }
.pp-viewer-frame.is-rejected canvas, .pp-viewer-frame.is-rejected img{ opacity:.35; filter:grayscale(1); }
body[data-theme="dark"] .pb-card{ background:#171933; border-color:rgba(255,255,255,.1); }
body[data-theme="dark"] .pb-card.is-rejected{ border-color:#e0505f; }
body[data-theme="dark"] .pb-card.is-selected{ border-color:#22b573; }
body[data-theme="dark"] .pb-btn{ background:#12142b; border-color:rgba(255,255,255,.14); color:#e7e9ff; }
body[data-theme="dark"] .pb-turn{ background:rgba(139,123,251,.14); border-color:rgba(139,123,251,.45); color:#b3a9ff; }
body[data-theme="dark"] .pb-turn:hover:not(:disabled){ background:var(--brand); color:#fff; }
body[data-theme="dark"] .pb-corner, body[data-theme="dark"] .pb-check{ border-color:#171933; }
body[data-theme="dark"] .pb-card.is-unselected .pb-check{ background:#12142b; border-color:rgba(255,255,255,.25); }
body[data-theme="dark"] .pb-loading{ background:linear-gradient(90deg,#20234a 25%,#2a2e5c 50%,#20234a 75%); background-size:200% 100%; }
body[data-theme="dark"] .pb-num{ color:#9498c2; }

/* A file in Merge PDF: its row, then its page cards. */
.pf-file{ border:1px solid #e3e5f5; border-radius:16px; background:var(--bg-soft); margin-bottom:14px; overflow:hidden; }
.pf-head{ display:flex; align-items:center; gap:10px; padding:10px 12px; background:#fff; border-bottom:1px solid #e3e5f5; }
.pf-order{ width:28px; height:28px; border-radius:50%; background:var(--grad); color:#fff; font-weight:700; font-size:.85rem; display:flex; align-items:center; justify-content:center; flex:none; }
.pf-name{ font-weight:600; font-size:.92rem; }
.pf-meta{ font-size:.8rem; color:var(--muted); }
.pf-meta.is-error{ color:#b42335; font-weight:600; }
.pf-body .pb-grid.pb-scroll{ max-height:330px; }
.pf-body .pp-note{ margin:0; padding:10px 14px; }
body[data-theme="dark"] .pf-file{ background:#12142b; border-color:rgba(255,255,255,.1); }
body[data-theme="dark"] .pf-head{ background:#171933; border-color:rgba(255,255,255,.1); }

/* ---- Split PDF workspace ------------------------------------------------ */
.split-work{ display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:24px; align-items:start; }
.split-work[hidden]{ display:none; }
@media (max-width:991.98px){ .split-work{ grid-template-columns:1fr; } }
.split-stage{ background:var(--bg-soft); border:1px solid #e3e5f5; border-radius:18px; padding:16px; min-height:420px; min-width:0; }
.split-filebar{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:8px; }
.split-groups{ display:flex; flex-wrap:wrap; justify-content:center; gap:26px 22px; padding:10px 4px; }
.split-group{ display:flex; flex-direction:column; align-items:center; gap:8px; }
.split-group-title{ font-size:.9rem; color:var(--ink); font-weight:500; }
.split-group-box{ display:flex; align-items:center; gap:10px; padding:14px 14px 10px; border:1.5px solid #dcd7ff; background:#f7f6ff; border-radius:14px; }
.split-group-box .pb-card, .split-groups > .pb-card{ width:132px; }
.split-dots{ font-size:1.4rem; letter-spacing:2px; color:var(--ink); font-weight:700; }
.split-file-card{ width:210px !important; }
.split-side{ position:sticky; top:84px; background:#fff; border:1px solid #e3e5f5; border-radius:18px; box-shadow:var(--shadow-sm); overflow:hidden; }
@media (max-width:991.98px){ .split-side{ position:static; } }
.split-title{ font-size:1.05rem; font-weight:700; margin:0; padding:16px 16px 10px; }
/* GaneshEdit pill switch (Built in the GaneshEdit (ganeshediting21) session) */
.split-tabs{ display:flex; gap:6px; padding:0 16px 14px; border-bottom:1px solid #eceef6; }
.split-tab{ flex:1 1 0; min-width:0; border:1.5px solid #e3e5f5; background:#fff; border-radius:999px; padding:7px 6px; display:flex; align-items:center; justify-content:center; gap:5px; color:#5b6071; font-size:.82rem; font-weight:600; white-space:nowrap; }
.split-tab:hover{ border-color:#c9c3ff; }
.split-tab .ti{ font-size:17px; stroke-width:2; }
.split-tab.is-active{ color:#fff; border-color:transparent; background:linear-gradient(135deg,var(--brand),#22c1ee); }
.split-tab:focus-visible{ outline:2px solid var(--brand); outline-offset:-2px; }
.split-body{ padding:16px; }
.split-label{ font-weight:600; font-size:.95rem; margin:0 0 8px; }
.split-seg{ display:grid; grid-auto-flow:column; grid-auto-columns:1fr; gap:8px; margin-bottom:14px; }
.split-seg button{ border:1.5px solid transparent; background:#f0f1f7; color:#6b708a; border-radius:10px; padding:9px 6px; font-size:.92rem; font-weight:500; }
.split-seg button.is-active{ border-color:var(--brand); color:var(--brand); background:#fff; }
.split-range{ border-top:1px solid #eceef6; padding:10px 0 4px; }
.split-range-head{ display:flex; align-items:center; justify-content:space-between; font-weight:500; margin-bottom:8px; }
.split-range-num{ display:inline-block; min-width:22px; text-align:center; background:#eef0fb; border-radius:6px; font-weight:600; margin-left:4px; }
.split-field{ display:flex; align-items:stretch; border:1px solid #cfd2e3; border-radius:8px; overflow:hidden; margin-bottom:8px; background:#fff; }
.split-field label{ background:#f7f8fc; padding:8px 10px; font-size:.82rem; border-right:1px solid #cfd2e3; margin:0; display:flex; align-items:center; white-space:nowrap; }
.split-field input{ border:0; padding:6px 10px; min-width:0; width:100%; flex:1; text-align:right; font-size:1rem; background:transparent; color:inherit; }
.split-field input:focus{ outline:2px solid var(--brand); outline-offset:-2px; }
.split-field.is-invalid{ border-color:#dc3545; }
.split-info{ display:flex; gap:8px; align-items:flex-start; background:#f2f0ff; color:#3b2fa8; border-radius:10px; padding:10px 12px; font-size:.88rem; margin-top:14px; }
.split-info .ti{ font-size:18px; flex:none; margin-top:1px; }
.split-info.is-error{ background:#fdecee; color:#8a1d2b; }
.split-go-wrap{ padding:16px; background:#fff; border-top:1px solid #eceef6; }
.split-go{ width:100%; padding:12px; font-size:1.1rem; font-weight:700; border-radius:12px; }
.split-remove{ border:0; background:none; color:#b42335; font-size:.82rem; padding:0; }
body[data-theme="dark"] .split-stage{ background:#12142b; border-color:rgba(255,255,255,.1); }
body[data-theme="dark"] .split-side, body[data-theme="dark"] .split-tab{ background:#171933; border-color:rgba(255,255,255,.14); color:#b8bce0; }
body[data-theme="dark"] .split-tab.is-active{ background:linear-gradient(135deg,#6d5ef8,#22c1ee); color:#fff; border-color:transparent; }
body[data-theme="dark"] .split-tabs, body[data-theme="dark"] .split-range{ border-color:rgba(255,255,255,.1); }
body[data-theme="dark"] .split-seg button{ background:#12142b; color:#9498c2; }
body[data-theme="dark"] .split-seg button.is-active{ background:#171933; color:#b3a9ff; border-color:#8b7dff; }
body[data-theme="dark"] .split-field{ border-color:rgba(255,255,255,.18); background:#171933; }
body[data-theme="dark"] .split-field label{ background:#12142b; color:#c9ccea; border-color:rgba(255,255,255,.18); }
body[data-theme="dark"] .split-range-num{ background:#23264a; }
body[data-theme="dark"] .split-info{ background:#221f4a; color:#d6d0ff; }
body[data-theme="dark"] .split-info.is-error{ background:#3a1a22; color:#f5c4cb; }
body[data-theme="dark"] .split-go-wrap{ background:#171933; border-color:rgba(255,255,255,.08); }
body[data-theme="dark"] .split-group-box{ border-color:rgba(139,125,255,.35); background:#1b1d40; }
body[data-theme="dark"] .split-group-title, body[data-theme="dark"] .split-dots{ color:#e7e9ff; }

/* ---- Image tools: crop box ------------------------------------------------ */
.ic-host{ width:100%; display:flex; justify-content:center; padding:14px; }
.ic-stage{ position:relative; touch-action:none; user-select:none; -webkit-user-select:none; border-radius:8px; background:repeating-conic-gradient(#e9eaf3 0% 25%, #fff 0% 50%) 50%/16px 16px; }
.ic-stage canvas{ display:block; width:100%; height:100%; }
.ic-clip{ position:absolute; inset:0; overflow:hidden; border-radius:8px; pointer-events:none; }
.ic-shade{ position:absolute; box-shadow:0 0 0 9999px rgba(10,12,31,.55); }
.ic-box{ position:absolute; outline:2px solid #fff; cursor:move; touch-action:none; background-image:linear-gradient(rgba(255,255,255,.45),rgba(255,255,255,.45)),linear-gradient(rgba(255,255,255,.45),rgba(255,255,255,.45)),linear-gradient(rgba(255,255,255,.45),rgba(255,255,255,.45)),linear-gradient(rgba(255,255,255,.45),rgba(255,255,255,.45)); background-size:1px 100%,1px 100%,100% 1px,100% 1px; background-position:33.33% 0,66.66% 0,0 33.33%,0 66.66%; background-repeat:no-repeat; }
.ic-box:focus-visible{ outline:3px solid var(--brand); }
.ic-h{ position:absolute; width:16px; height:16px; margin:-8px 0 0 -8px; border-radius:50%; background:#fff; border:2px solid var(--brand); box-shadow:0 1px 4px rgba(0,0,0,.35); }
@media (pointer:coarse){ .ic-h{ width:26px; height:26px; margin:-13px 0 0 -13px; } }
.ic-h[data-h="nw"]{ left:0; top:0; cursor:nwse-resize; }
.ic-h[data-h="n"]{ left:50%; top:0; cursor:ns-resize; }
.ic-h[data-h="ne"]{ left:100%; top:0; cursor:nesw-resize; }
.ic-h[data-h="e"]{ left:100%; top:50%; cursor:ew-resize; }
.ic-h[data-h="se"]{ left:100%; top:100%; cursor:nwse-resize; }
.ic-h[data-h="s"]{ left:50%; top:100%; cursor:ns-resize; }
.ic-h[data-h="sw"]{ left:0; top:100%; cursor:nesw-resize; }
.ic-h[data-h="w"]{ left:0; top:50%; cursor:ew-resize; }
.ic-ratios{ grid-auto-flow:row; grid-template-columns:repeat(auto-fill,minmax(64px,1fr)); }
.ic-ratios button{ padding:6px 4px; font-size:.84rem; }
#rotLeft .ti{ transform:scaleX(-1); }
#flipBtn .ti{ transform:rotate(90deg); }
.ic-lock{ padding:.375rem .5rem; line-height:1.2; opacity:.5; }
.ic-lock.is-on{ opacity:1; border-color:var(--brand); }
.ic-out-frame{ display:flex; align-items:center; justify-content:center; min-height:120px; padding:12px; border-radius:10px; background:var(--bg-soft); border:1px solid #e3e5f5; }
.ic-out-frame canvas{ box-shadow:0 1px 4px rgba(0,0,0,.25); image-rendering:auto; max-width:100%; }
body[data-theme="dark"] .ic-out-frame{ background:#12142b; border-color:rgba(255,255,255,.1); }
body[data-theme="dark"] .ic-stage{ background:repeating-conic-gradient(#20234a 0% 25%, #171933 0% 50%) 50%/16px 16px; }

/* Page card extras: hover magnifier and the select bar. */
.pb-mag{ position:absolute; left:50%; top:50%; width:52px; height:52px; margin:-26px 0 0 -26px; border-radius:50%; background:rgba(18,20,43,.72); color:#fff; display:flex; align-items:center; justify-content:center; opacity:0; transform:scale(.8); transition:opacity .15s, transform .15s; pointer-events:none; }
.pb .pb-mag .ti{ font-size:26px; color:#fff; }
.pb-sheet:hover .pb-mag, .pb-sheet:focus-visible .pb-mag{ opacity:1; transform:scale(1); }
.pb-sheet:hover .pb-holder{ filter:brightness(.92); }
@media (hover:none){
  .pb-mag{ left:auto; top:auto; right:4px; bottom:4px; margin:0; width:30px; height:30px; opacity:.85; transform:none; }
  .pb .pb-mag .ti{ font-size:16px; }
}
.pb-bar{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px; padding:8px 12px 0; }
.pb-count{ font-size:.85rem; font-weight:600; }
.pb-actions{ display:flex; flex-wrap:wrap; gap:6px; }
.pb-actions .btn[hidden]{ display:none; }
.split-group-box .pb-card, .split-groups > .pb-card{ width:176px; }
.split-file-card{ width:240px !important; }
body[data-theme="dark"] .pb-card.is-unselected{ border-color:rgba(255,255,255,.22); }

/* Watermark position picker: a 3 x 3 grid of dots. */
.wm-grid{ display:grid; grid-template-columns:repeat(3, 34px); gap:6px; }
.wm-grid button{ width:34px; height:26px; border-radius:6px; border:1.5px solid #cfd2e3; background:#f7f8fc; padding:0; position:relative; }
.wm-grid button::after{ content:""; position:absolute; left:50%; top:50%; width:8px; height:8px; margin:-4px 0 0 -4px; border-radius:50%; background:#9aa0bd; }
.wm-grid button.is-active{ border-color:var(--brand); background:#fff; }
.wm-grid button.is-active::after{ background:var(--brand); }
body[data-theme="dark"] .wm-grid button{ background:#12142b; border-color:rgba(255,255,255,.18); }
#wmPreview{ max-width:100%; height:auto; }

/* Home hero: the three sections of the site. */
.hero-sections{ display:grid; gap:12px; }
.hero-section-link{ display:flex; align-items:center; gap:14px; padding:16px 18px; border-radius:16px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14); color:#fff; text-decoration:none; transition:background .2s, transform .2s, border-color .2s; }
.hero-section-link:hover{ background:rgba(255,255,255,.12); border-color:rgba(255,255,255,.3); color:#fff; transform:translateX(4px); }
.hero-section-link small{ color:#c7cdf5; }
.hero-section-icon{ width:46px; height:46px; border-radius:12px; background:var(--grad); display:flex; align-items:center; justify-content:center; flex:none; }
.hero-section-icon .ti{ font-size:22px; color:#fff; }

/* Site-wide tool search: navbar button, overlay dialog, landing-page bars. */
.nav-search-btn{ display:flex; align-items:center; gap:8px; height:38px; padding:0 10px 0 12px; border-radius:19px; border:1px solid rgba(18,20,43,.12); background:#fff; color:#5b6080; font-size:.9rem; cursor:pointer; transition:.2s; }
.nav-search-btn:hover{ border-color:var(--brand); color:var(--brand); }
.nav-search-btn .ti{ font-size:18px; }
.nav-search-btn kbd{ background:rgba(18,20,43,.07); color:inherit; border-radius:5px; padding:1px 6px; font-size:.75rem; box-shadow:none; }
.nav-search-icon{ width:38px; padding:0; justify-content:center; }
@media (max-width:1199.98px){ .nav-search-btn{ width:38px; padding:0; justify-content:center; } }
#mainNav .nav-link, #mainNav .btn, .nav-search-btn{ white-space:nowrap; }
.search-overlay{ position:fixed; inset:0; z-index:2000; background:rgba(10,12,31,.55); backdrop-filter:blur(3px); -webkit-backdrop-filter:blur(3px); display:flex; justify-content:center; align-items:flex-start; padding:10vh 16px 16px; }
.search-overlay[hidden]{ display:none; }
body.search-open{ overflow:hidden; }
.search-dialog{ width:100%; max-width:620px; background:#fff; color:#12142b; border-radius:18px; box-shadow:0 24px 60px rgba(10,12,31,.35); overflow:hidden; }
.site-search{ position:relative; }
.site-search-field{ display:flex; align-items:center; gap:10px; padding:0 14px; }
.site-search-field > .ti{ font-size:20px; color:#8a8fad; flex:none; }
.site-search-input{ flex:1; min-width:0; border:0; outline:0; background:transparent; color:inherit; font-size:1.05rem; padding:16px 0; }
.site-search-input::-webkit-search-cancel-button{ display:none; }
.search-close{ border:0; background:none; color:#8a8fad; padding:6px; border-radius:8px; cursor:pointer; display:flex; }
.search-close:hover{ background:rgba(18,20,43,.06); }
.site-search-results{ list-style:none; margin:0; padding:6px; border-top:1px solid rgba(18,20,43,.08); max-height:min(60vh, 460px); overflow-y:auto; }
.site-search-results[hidden]{ display:none; }
.site-search-heading{ font-size:.75rem; text-transform:uppercase; letter-spacing:.06em; color:#8a8fad; padding:8px 10px 4px; }
.site-search-empty{ padding:14px 10px; color:#5b6080; font-size:.95rem; }
.site-search-item a{ display:grid; grid-template-columns:1fr auto; gap:2px 10px; padding:9px 10px; border-radius:10px; color:inherit; text-decoration:none; }
.site-search-item.active a{ background:rgba(109,94,248,.1); }
.site-search-name{ font-weight:600; }
.site-search-section{ font-size:.72rem; color:var(--brand); background:rgba(109,94,248,.1); border-radius:10px; padding:2px 8px; align-self:center; }
.site-search-blurb{ grid-column:1 / -1; font-size:.85rem; color:#6b7090; }
/* the bars on the landing pages: a solid field with the results dropping over the page */
.site-search-hero{ max-width:620px; }
.site-search-hero .site-search-field{ background:#fff; border-radius:14px; box-shadow:0 10px 30px rgba(10,12,31,.25); color:#12142b; }
.site-search-hero .site-search-results{ position:absolute; left:0; right:0; top:calc(100% + 6px); z-index:1030; background:#fff; color:#12142b; border:0; border-radius:14px; box-shadow:0 18px 44px rgba(10,12,31,.3); text-align:left; }
body[data-theme="dark"] .nav-search-btn{ background:#171933; border-color:rgba(255,255,255,.12); color:#c7cdf5; }
body[data-theme="dark"] .nav-search-btn kbd{ background:rgba(255,255,255,.1); }
body[data-theme="dark"] .search-dialog,
body[data-theme="dark"] .site-search-hero .site-search-field,
body[data-theme="dark"] .site-search-hero .site-search-results{ background:#171933; color:#e7e9ff; }
body[data-theme="dark"] .site-search-results{ border-top-color:rgba(255,255,255,.08); }
body[data-theme="dark"] .site-search-blurb, body[data-theme="dark"] .site-search-empty{ color:#a9aed0; }
body[data-theme="dark"] .site-search-item.active a{ background:rgba(109,94,248,.25); }
body[data-theme="dark"] .search-close:hover{ background:rgba(255,255,255,.08); }

/* Merge Images: two single-photo boxes and the joined result. */
.merge-slot{ position:relative; padding:34px 18px 22px; min-height:230px; display:flex; flex-direction:column; justify-content:center; }
.merge-slot-label{ position:absolute; top:10px; left:14px; margin:0; font-size:.78rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--brand); }
.merge-slot.is-filled{ border-style:solid; }
.merge-slot .btn .ti{ font-size:16px; animation:none; vertical-align:-3px; }
.merge-slot.is-filled .paste-hint{ display:none; }
.merge-thumb{ display:block; max-width:100%; max-height:180px; margin:0 auto 10px; border-radius:8px; box-shadow:var(--shadow-sm); }
.merge-name{ overflow-wrap:anywhere; color:#5b6080; }
.merge-result img{ display:block; max-width:100%; max-height:560px; margin:0 auto; border-radius:8px; box-shadow:var(--shadow-sm); background:repeating-conic-gradient(#eef0f6 0 25%, #fff 0 50%) 0 0/16px 16px; }
body[data-theme="dark"] .merge-name{ color:#a9aed0; }

/* Remove Background: the photo, a checkerboard behind transparency, swatches. */
.rb-stage{ border-radius:10px; overflow:hidden; display:flex; justify-content:center; }
.rb-stage img{ display:block; max-width:100%; max-height:520px; }
.rb-checker{ background:repeating-conic-gradient(#e6e8f0 0 25%, #fff 0 50%) 0 0/18px 18px; }
.rb-swatches{ display:flex; flex-wrap:wrap; gap:8px; }
.rb-swatch{ display:flex; flex-direction:column; align-items:center; gap:4px; border:0; background:none; padding:0; font-size:.75rem; color:#5b6080; cursor:pointer; }
.rb-swatch::before{ content:""; width:40px; height:40px; border-radius:10px; background:var(--sw, #fff); border:1px solid rgba(18,20,43,.15); box-shadow:inset 0 0 0 3px #fff; }
.rb-swatch.rb-none::before{ background:repeating-conic-gradient(#d9dce6 0 25%, #fff 0 50%) 0 0/10px 10px; }
.rb-swatch.is-active::before{ border:2px solid var(--brand); }
.rb-swatch.is-active{ color:var(--brand); font-weight:600; }
.rb-custom{ position:relative; }
.rb-custom input{ position:absolute; top:0; left:0; width:40px; height:40px; opacity:0; cursor:pointer; }
body[data-theme="dark"] .rb-swatch{ color:#a9aed0; }
body[data-theme="dark"] .rb-swatch::before{ box-shadow:inset 0 0 0 3px #171933; border-color:rgba(255,255,255,.2); }

/* ===== Stamp workspace (Add Watermark, Add Page Numbers) =====
   Built in the GaneshEdit (ganeshediting21) session. Pages full-width on the
   left with a live overlay, controls in a sticky panel on the right. */
.sw{ width:94vw; max-width:1240px; position:relative; left:50%; transform:translateX(-50%); display:flex; gap:22px; align-items:flex-start; }
.sw[hidden]{ display:none; }
.sw-main{ flex:1 1 auto; min-width:0; max-height:calc(100vh - 120px); overflow-y:auto; background:#eef0f7; border-radius:14px; padding:20px 16px; overscroll-behavior:contain; }
.sw-list{ display:flex; flex-direction:column; align-items:center; gap:26px; }
.sw-loading{ text-align:center; color:#6b7180; margin:2rem 0; }
.sw-page{ display:flex; flex-direction:column; align-items:center; }
.sw-stage{ position:relative; line-height:0; background:#fff; box-shadow:0 1px 6px rgba(0,0,0,.18); border-radius:4px; overflow:hidden; max-width:100%; }
.sw-stage canvas{ display:block; width:100% !important; height:100% !important; border-radius:4px; }
.sw-ph{ position:absolute; inset:0; background:linear-gradient(90deg,#f1f2f8 25%,#f8f8fc 50%,#f1f2f8 75%); background-size:200% 100%; animation:pbShimmer 1.2s linear infinite; }
.sw-fail{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; padding:12px; line-height:1.4; font-size:.8rem; color:#b42335; text-align:center; }
.sw-ov{ position:absolute; inset:0; pointer-events:none; line-height:1; }
.sw-ov > *{ position:absolute; white-space:nowrap; line-height:1; font-family:Helvetica, Arial, sans-serif; }
.sw-page.is-off .sw-stage{ opacity:.45; }
.sw-lab{ display:flex; align-items:center; gap:6px; font-size:.82rem; margin-top:8px; color:#5a5f73; cursor:pointer; }
.sw-lab input{ width:16px; height:16px; accent-color:#6a4cff; }
.sw-page.is-off .sw-lab{ text-decoration:line-through; }
.sw-side{ flex:0 0 290px; position:sticky; top:84px; }
.sw-side-inner{ background:#f6f5ff; border:1px solid #e5e2fb; border-radius:14px; padding:18px; }
.sw-file{ display:flex; align-items:center; justify-content:space-between; gap:8px; font-size:.8rem; color:#5a5f73; margin-bottom:12px; }
.sw-file-name{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; min-width:0; }
.sw-link{ border:0; background:none; color:#6a4cff; font-size:.8rem; padding:0; text-decoration:underline; flex:none; cursor:pointer; }
.sw-sub{ display:block; font-size:.8rem; font-weight:600; color:#5a5f73; margin:0 0 6px; }
.sw-row{ margin-bottom:14px; }
.sw-input{ width:100%; border:1px solid #d9d6f5; border-radius:8px; padding:6px 9px; font-size:.9rem; background:#fff; color:inherit; }
.sw-input:focus{ outline:2px solid #6a4cff; outline-offset:0; border-color:#6a4cff; }
.sw-seg{ display:flex; border:1px solid #d9d6f5; border-radius:9px; overflow:hidden; }
.sw-seg button{ flex:1; border:0; background:#fff; padding:6px 0; font-size:.82rem; cursor:pointer; color:#3b3f55; }
.sw-seg button + button{ border-left:1px solid #d9d6f5; }
.sw-seg button.is-on{ background:#6a4cff; color:#fff; font-weight:600; }
.sw-swatches{ display:flex; gap:8px; }
.sw-swatch{ width:30px; height:30px; border-radius:50%; border:2px solid #fff; box-shadow:0 0 0 1px #d9d6f5; cursor:pointer; padding:0; }
.sw-swatch.is-on{ box-shadow:0 0 0 2px #6a4cff; }
.sw-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:6px; }
.sw-grid button{ border:1px solid #d9d6f5; background:#fff; border-radius:8px; padding:6px 0; font-size:.75rem; cursor:pointer; color:#3b3f55; }
.sw-grid button.is-on{ background:#6a4cff; border-color:#6a4cff; color:#fff; font-weight:600; }
.sw-grid .sw-gap{ grid-column:1 / -1; height:14px; border:1px dashed #d9d6f5; border-radius:6px; background:repeating-linear-gradient(0deg,transparent 0 3px,rgba(106,76,255,.06) 3px 4px); }
.sw-range{ width:100%; accent-color:#6a4cff; }
.sw-pages{ display:flex; flex-wrap:wrap; gap:6px; }
.sw-pages button{ flex:1 1 auto; }
.sw-count{ font-size:.85rem; font-weight:600; color:#6a4cff; margin:0 0 8px; text-align:center; }
.sw-warn{ font-size:.8rem; color:#b42335; margin:0 0 8px; text-align:center; }
.sw-help{ font-size:.75rem; color:#6b7180; margin:6px 0 0; line-height:1.4; }
@media (max-width:860px){
  .sw{ flex-direction:column; }
  .sw-main{ max-height:62vh; width:100%; }
  .sw-side{ position:static; flex-basis:auto; width:100%; }
}
body[data-theme="dark"] .sw-main{ background:#12142b; }
body[data-theme="dark"] .sw-side-inner{ background:#171933; border-color:rgba(255,255,255,.1); }
body[data-theme="dark"] .sw-input, body[data-theme="dark"] .sw-seg, body[data-theme="dark"] .sw-grid button{ border-color:rgba(255,255,255,.18); }
body[data-theme="dark"] .sw-input, body[data-theme="dark"] .sw-seg button, body[data-theme="dark"] .sw-grid button{ background:#12142b; color:#e7e9ff; }
body[data-theme="dark"] .sw-seg button.is-on, body[data-theme="dark"] .sw-grid button.is-on{ background:#6a4cff; color:#fff; }
body[data-theme="dark"] .sw-lab, body[data-theme="dark"] .sw-file, body[data-theme="dark"] .sw-sub, body[data-theme="dark"] .sw-help{ color:#a9adcf; }
body[data-theme="dark"] .sw-swatch{ border-color:#171933; }
/* stamp colour picker: 12 swatches + custom (ganeshediting21) */
.sw-swatches{ flex-wrap:wrap; }
.sw-swatch{ flex:none; }
.sw-custom{ position:relative; display:inline-block; margin:0; background:conic-gradient(#f33,#fc3,#3c6,#3cf,#36f,#c3f,#f33); }
.sw-custom input{ position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer; border:0; padding:0; }
.sw-swatches{ gap:7px; }
.sw-swatches .sw-swatch{ width:27px; height:27px; }
/* a tall control panel scrolls inside itself so its last button is always reachable (ganeshediting21) */
.sw-side-inner{ max-height:calc(100vh - 100px); overflow-y:auto; overscroll-behavior:contain; }
@media (max-width:860px){ .sw-side-inner{ max-height:none; } }

/* footer trust marks (Built in the GaneshEdit (ganeshediting21) session) */
.footer-trust li{ display:flex; align-items:flex-start; gap:6px; margin-bottom:4px; }
.footer-trust .ti{ flex:none; margin-top:3px; color:#8b7dff; }
.footer-udyam{ font-size:.75rem; opacity:.75; letter-spacing:.02em; }
/* privacy promise under every tool (Built in the GaneshEdit (ganeshediting21) session) */
.privacy-note{ display:flex; gap:12px; align-items:flex-start; background:#f2f0ff; border:1px solid #dcd7ff; border-radius:14px; padding:14px 16px; font-size:.93rem; color:#2c2f45; }
.privacy-note .ti{ flex:none; font-size:22px; color:#6d5ef8; margin-top:1px; }
.privacy-note a{ color:#5b4ce0; white-space:nowrap; }
body[data-theme="dark"] .privacy-note{ background:#1b1d40; border-color:rgba(139,125,255,.35); color:#d6d8f5; }
body[data-theme="dark"] .privacy-note a{ color:#b3a9ff; }

/* Phones and tablets (Built in the GaneshEdit (ganeshediting21) session):
   pages froze while scrolling. The sticky navbar's backdrop blur is redrawn
   every frame anything under or inside it moves - and the Repair PDF button
   in it pulsed forever, so the GPU re-blurred the bar 60 times a second on
   every page. On touch / narrow screens the bar gets a solid background and
   the endless decorative animations stop; desktop keeps the full look. */
@media (max-width: 991.98px), (hover: none) {
  .navbar{ backdrop-filter:none; -webkit-backdrop-filter:none; background:rgba(255,255,255,.97); }
  body[data-theme="dark"] .navbar{ background:rgba(15,16,40,.97); }
  .btn-pulse, .hero::before, .hero::after, .upload-box .ti, .scroll-cue a{ animation:none; }
  .badge-soft{ backdrop-filter:none; }
}
