/* amtake-fw.css — shared framework component styles for migrated generic tools.
   Vars scoped to .amtake-adapt-inner (light values); dark handled by theme invert-adaptation.
   Component rules are .tool-card-scoped, so each tool file wraps its markup in <div class="tool-card">. */

.amtake-adapt-inner{
  /* Premium gradient stops (Adobe Express feel) */
  --g1:#7c3aed;  /* violet */
  --g2:#4f46e5;  /* indigo */
  --g3:#0ea5e9;  /* blue */
  --g4:#22d3ee;  /* cyan */

  --brand:#5b5bf0; --brand-600:#4f46e5; --brand-700:#4338ca;

  /* Category colors — friendly, slightly softened */
  --cat-pdf:#fb5b5b; --cat-image:#a855f7; --cat-calculator:#3b82f6;
  --cat-converter:#10b981; --cat-generator:#f59e0b; --cat-utility:#64748b;
  --cat-video-audio:#ec4899; --cat-seo:#14b8a6; --cat-text-dev:#6366f1;
  --cat-health:#f43f5e; --cat-datetime:#06b6d4;

  /* Surfaces — light, airy */
  --bg:#fafbff; --surface:#ffffff; --surface-2:#f4f5fb;
  --border:#ebedf5; --text:#14122b; --text-2:#5a5b78; --text-3:#9698b4;

  --font-display:"Plus Jakarta Sans",system-ui,-apple-system,sans-serif;
  --font-body:"Inter",system-ui,-apple-system,sans-serif;

  --r-sm:12px; --r:18px; --r-lg:26px; --r-xl:32px; --r-pill:999px;
  --shadow-sm:0 2px 8px rgba(20,18,43,.05);
  --shadow:0 12px 34px rgba(20,18,43,.09);
  --shadow-lg:0 26px 60px rgba(20,18,43,.16);
  --shadow-brand:0 16px 40px rgba(91,91,240,.28);
  --maxw:1200px; --gap:18px;
  --t:180ms cubic-bezier(.4,0,.2,1);
}

/* Our .amtake-tool-standalone already provides the outer card chrome — neutralize the
   framework's inner .tool-card so we don't get a card-in-card. */
.amtake-adapt-inner .tool-card{background:transparent;border:0;box-shadow:none;padding:0;}

/* ---- framework tool components (from main.css 167-776, dark rules stripped) ---- */
/* ============================ PREMIUM TOOL PAGE ============================ */
.tool-wrap{max-width:760px;margin:0 auto;}
.tool-breadcrumb{padding:18px 0 8px;color:var(--text-3);font-size:0.9rem;display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.tool-breadcrumb a{color:var(--text-2);} .tool-breadcrumb a:hover{color:var(--brand);}

.tool-head{text-align:center;padding:8px 0 4px;}
.tool-head .ic{width:58px;height:58px;border-radius:16px;display:grid;place-items:center;color:#fff;margin:0 auto 12px;background:linear-gradient(140deg,var(--accent,var(--brand)),color-mix(in srgb,var(--accent,var(--brand)) 55%,#000));box-shadow:0 12px 30px color-mix(in srgb,var(--accent,var(--brand)) 36%,transparent);}
.tool-head h1{font-size:clamp(1.7rem,3.4vw,2.4rem);margin:0 0 8px;}
.tool-head p{color:var(--text-2);max-width:560px;margin:0 auto;font-size:1.02rem;}

.trust-bar{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:16px 0 18px;}
.trust-bar span{display:inline-flex;align-items:center;gap:6px;font-size:0.9rem;font-weight:600;color:var(--text-2);background:var(--surface-2);border:1px solid var(--border);padding:6px 13px;border-radius:var(--r-pill);}
.trust-bar svg{color:var(--cat-converter);}

.tool-actions{display:flex;gap:8px;justify-content:center;margin-bottom:18px;flex-wrap:wrap;}
.tool-actions button{display:inline-flex;align-items:center;gap:7px;font-size:0.9rem;font-weight:600;color:var(--text-2);background:var(--surface);border:1px solid var(--border);padding:9px 16px;border-radius:var(--r-pill);cursor:pointer;transition:var(--t);font-family:var(--font-body);}
.tool-actions button:hover{color:var(--brand);border-color:color-mix(in srgb,var(--brand) 40%,var(--border));transform:translateY(-1px);}
.tool-actions button.on{color:#f59e0b;border-color:#f59e0b;}

.tool-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:26px;box-shadow:var(--shadow);}
.tool-card .field{margin-bottom:14px;}
.tool-card .field label{display:block;font-weight:600;font-size:.9rem;margin-bottom:7px;color:var(--text);}
.tool-card input[type=number],.tool-card input[type=text],.tool-card input[type=url],.tool-card input[type=email],.tool-card input[type=tel],.tool-card input[type=date],.tool-card input[type=datetime-local],.tool-card select,.tool-card textarea{width:100%;padding:0 15px;height:46px;border-radius:var(--r-sm);border:1px solid var(--border);background:var(--surface-2);color:var(--text);font-size:1.02rem;font-family:var(--font-body);transition:var(--t);}
.tool-card textarea{height:auto;padding:12px 15px;}
.tool-card input::placeholder,.tool-card textarea::placeholder{color:var(--text-3);opacity:1;font-size:.95rem;}
.tool-card textarea{height:auto;padding:14px 16px;line-height:1.6;}
.tool-card input:focus,.tool-card select:focus,.tool-card textarea:focus{border-color:var(--brand);background:var(--surface);outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 18%,transparent);}
.tool-card .btn{width:100%;height:52px;font-size:1.04rem;background:linear-gradient(135deg,var(--g1),var(--g3))!important;color:#fff!important;border:0;border-radius:var(--r-sm);font-family:var(--font-display);font-weight:700;cursor:pointer;box-shadow:var(--shadow-brand);transition:var(--t);}
.tool-card .btn:hover{transform:translateY(-2px);}
.tool-card .row{display:flex;gap:12px;}.tool-card .row>*{flex:1;}

.mode-tabs{display:flex;gap:5px;background:var(--surface-2);padding:5px;border-radius:var(--r-pill);margin-bottom:18px;flex-wrap:wrap;}
.mode-tabs button{flex:1;min-width:90px;border:0;background:transparent;color:var(--text-2);font-weight:600;font-size:0.9rem;padding:9px 12px;border-radius:var(--r-pill);cursor:pointer;font-family:var(--font-body);transition:var(--t);}
.mode-tabs button.active{background:var(--surface);color:var(--brand);box-shadow:var(--shadow-sm);}

.result-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-top:18px;}
.result-card{background:linear-gradient(140deg,var(--surface-2),var(--surface));border:1px solid var(--border);border-radius:var(--r);padding:16px;text-align:center;}
.result-card .label{font-size:0.9rem;color:var(--text-2);margin-bottom:6px;}
.result-card .value{font-size:1.4rem;font-weight:800;font-family:var(--font-display);color:var(--text);word-break:break-word;}

.tool-section{margin-top:26px;}
.tool-section h2{font-size:1.22rem;margin-bottom:14px;}
.howto{display:grid;gap:9px;}
.howto-step{display:flex;gap:12px;align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:12px 16px;}
.howto-step .n{width:26px;height:26px;border-radius:50%;background:linear-gradient(135deg,var(--g1),var(--g3));color:#fff;font-weight:700;display:grid;place-items:center;flex:none;font-size:.9rem;}
.howto-step p{margin:0;color:var(--text-2);font-size:.92rem;}

.faq-item{border:1px solid var(--border);border-radius:var(--r);margin-bottom:10px;background:var(--surface);overflow:hidden;}
.faq-q{padding:16px 20px;font-weight:600;cursor:pointer;display:flex;justify-content:space-between;gap:12px;align-items:center;}
.faq-q .pm{width:22px;height:22px;flex:none;position:relative;transition:var(--t);}
.faq-q .pm::before,.faq-q .pm::after{content:"";position:absolute;background:var(--brand);border-radius:2px;}
.faq-q .pm::before{top:10px;left:3px;right:3px;height:2px;}
.faq-q .pm::after{left:10px;top:3px;bottom:3px;width:2px;transition:var(--t);}
.faq-item.open .pm::after{transform:scaleY(0);}
.faq-a{max-height:0;overflow:hidden;color:var(--text-2);transition:max-height var(--t),padding var(--t);padding:0 20px;}
.faq-item.open .faq-a{max-height:500px;padding:0 20px 18px;}

.related-block{margin-top:26px;}
.related-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;}
.related-link{display:flex;gap:12px;align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:14px 16px;color:var(--text);transition:var(--t);}
.related-link:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:color-mix(in srgb,var(--accent,var(--brand)) 40%,var(--border));}
.related-link .ic{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;color:#fff;flex:none;background:linear-gradient(140deg,var(--accent,var(--brand)),color-mix(in srgb,var(--accent,var(--brand)) 55%,#000));}
.related-link b{font-size:.92rem;font-weight:600;display:block;}
.related-link small{color:var(--text-3);font-size:0.9rem;}

.copy-toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--text);color:var(--bg);padding:11px 22px;border-radius:var(--r-pill);font-weight:600;font-size:.9rem;opacity:0;pointer-events:none;transition:var(--t);z-index:100;}
.copy-toast.show{opacity:1;transform:translateX(-50%) translateY(0);}

/* ---- Colored mode tabs (each operation its own color when active) ---- */
.mode-tabs-colored button[data-c="calculator"].active{background:var(--cat-calculator);color:#fff;box-shadow:0 6px 14px color-mix(in srgb,var(--cat-calculator) 35%,transparent);}
.mode-tabs-colored button[data-c="converter"].active{background:var(--cat-converter);color:#fff;box-shadow:0 6px 14px color-mix(in srgb,var(--cat-converter) 35%,transparent);}
.mode-tabs-colored button[data-c="generator"].active{background:var(--cat-generator);color:#fff;box-shadow:0 6px 14px color-mix(in srgb,var(--cat-generator) 35%,transparent);}
.mode-tabs-colored button[data-c="image"].active{background:var(--cat-image);color:#fff;box-shadow:0 6px 14px color-mix(in srgb,var(--cat-image) 35%,transparent);}

/* ---- Bottom action buttons inside tool card ---- */
.tool-card-actions{display:flex;gap:10px;margin-top:18px;padding-top:18px;border-top:1px solid var(--border);}
.tca-btn{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:8px;height:46px;border-radius:var(--r-sm);font-weight:600;font-size:.92rem;font-family:var(--font-body);cursor:pointer;transition:var(--t);border:1px solid var(--border);}
.tca-reset{background:var(--surface-2);color:var(--text-2);}
.tca-reset:hover{background:var(--surface);color:var(--text);border-color:var(--text-3);}
.tca-download{background:linear-gradient(135deg,var(--cat-converter),#059669);color:#fff;border:0;box-shadow:0 6px 16px color-mix(in srgb,var(--cat-converter) 32%,transparent);}
.tca-download:hover{transform:translateY(-2px);}

/* ---- Tool description block (Calculator.net style) ---- */
.tool-desc{margin-top:28px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:28px 30px;}
.tool-desc h2{font-size:1.3rem;margin:0 0 14px;}
.tool-desc h3{font-size:1.05rem;margin:20px 0 8px;}
.tool-desc p{color:var(--text-2);margin:0 0 12px;line-height:1.7;}
.tool-desc ul{color:var(--text-2);margin:0 0 12px;padding-left:20px;line-height:1.7;}
.tool-desc li{margin-bottom:5px;}
.tool-desc a{font-weight:600;}

/* ===================== SCIENTIFIC CALCULATOR ===================== */
.sci-calc{max-width:520px;margin:0 auto;}
.sci-display{background:#0f172a;border-radius:var(--r-sm);padding:18px 20px;text-align:right;margin-bottom:14px;min-height:84px;display:flex;flex-direction:column;justify-content:flex-end;}
.sci-expr{color:#64748b;font-size:.95rem;font-family:'Courier New',monospace;min-height:20px;word-break:break-all;}
.sci-result{color:#fff;font-size:2rem;font-weight:700;font-family:'Courier New',monospace;word-break:break-all;line-height:1.1;margin-top:4px;}
.sci-modebar{display:flex;align-items:center;gap:16px;margin-bottom:12px;padding:0 4px;}
.sci-mode{display:inline-flex;align-items:center;gap:5px;font-size:0.9rem;font-weight:600;color:var(--text-2);cursor:pointer;}
.sci-mem{margin-left:auto;font-weight:800;color:var(--brand);font-size:.95rem;min-width:14px;}
.sci-keys{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;}
.sci-keys button{height:50px;border:0;border-radius:10px;font-size:1rem;font-weight:600;cursor:pointer;font-family:var(--font-body);transition:transform .06s,filter .15s;display:flex;align-items:center;justify-content:center;}
.sci-keys button:active{transform:scale(.94);}
.sci-keys button:hover{filter:brightness(1.08);}
.sci-keys .k-num{background:var(--surface-2);color:var(--text);border:1px solid var(--border);}
.sci-keys .k-fn{background:color-mix(in srgb,var(--brand) 12%,var(--surface-2));color:var(--brand);border:1px solid color-mix(in srgb,var(--brand) 22%,transparent);font-size:.92rem;}
.sci-keys .k-op{background:linear-gradient(135deg,var(--g1),var(--g3));color:#fff;font-size:1.15rem;}
.sci-keys .k-mem{background:color-mix(in srgb,var(--cat-image) 14%,var(--surface-2));color:var(--cat-image);border:1px solid color-mix(in srgb,var(--cat-image) 22%,transparent);font-size:.9rem;}
.sci-keys .k-act{background:color-mix(in srgb,#ef4444 12%,var(--surface-2));color:#ef4444;border:1px solid color-mix(in srgb,#ef4444 22%,transparent);font-size:.9rem;}
.sci-keys .k-eq{background:linear-gradient(135deg,var(--cat-converter),#059669);color:#fff;font-size:1.3rem;}
@media(max-width:480px){.sci-keys button{height:44px;font-size:.9rem;}.sci-result{font-size:1.6rem;}}

/* dark mode display stays dark (already dark) */

/* ===================== SCIENTIFIC CALCULATOR (v2 ported) ===================== */
.scical{max-width:520px;margin:0 auto;}
.scical-display{background:#0f172a;border-radius:var(--r-sm);padding:18px 20px 16px;text-align:right;margin-bottom:10px;min-height:96px;display:flex;flex-direction:column;justify-content:flex-end;position:relative;}
.scical-mode-ind{position:absolute;top:10px;left:16px;font-size:0.9rem;color:var(--brand);font-weight:600;}
.scical-calc{color:#94a3b8;font-size:1rem;font-family:'Courier New',monospace;min-height:22px;word-break:break-all;}
.scical-result{color:#fff;font-size:2.1rem;font-weight:700;font-family:'Courier New',monospace;word-break:break-all;line-height:1.15;margin-top:4px;}
.scical-result.error{color:#f87171;font-size:1.2rem;}
.scical-statusbar{display:flex;justify-content:space-between;padding:0 6px 12px;font-size:0.9rem;font-weight:600;color:var(--text-3);}
.scical-statusbar #sc-memind{color:var(--brand);}
.scical-buttons{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;}
.scb{height:58px;border:1px solid rgba(0,0,0,.06);border-radius:12px;font-size:1.5rem;font-weight:600;cursor:pointer;font-family:var(--font-body);transition:transform .06s ease,filter .15s ease,box-shadow .15s ease;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 10px rgba(0,0,0,.10);}
.scb:active{transform:scale(.96);}
.scb:hover{filter:brightness(1.05);box-shadow:0 6px 16px rgba(0,0,0,.16);}
.scb.num{background:var(--surface);color:var(--text);}
.scb.fn{background:color-mix(in srgb,var(--brand) 12%,var(--surface));color:var(--brand);border-color:color-mix(in srgb,var(--brand) 18%,transparent);font-size:1.35rem;}
.scb.op{background:linear-gradient(135deg,var(--g1),var(--g3));color:#fff;font-size:1.65rem;border:0;box-shadow:0 6px 14px color-mix(in srgb,var(--g3) 38%,transparent);}
.scb.mem{background:color-mix(in srgb,#d93025 10%,var(--surface));color:#d93025;border-color:color-mix(in srgb,#d93025 16%,transparent);font-size:1.05rem;}
.scb.clear{background:color-mix(in srgb,#ef4444 16%,var(--surface));color:#dc2626;border-color:color-mix(in srgb,#ef4444 30%,transparent);font-size:1.5rem;font-weight:700;}
.scb.clear:hover{background:#ef4444;color:#fff;}
.scb.eq{grid-column:span 2;background:linear-gradient(135deg,var(--cat-converter),#059669);color:#fff;font-size:1.8rem;border:0;box-shadow:0 6px 16px color-mix(in srgb,var(--cat-converter) 40%,transparent);}
@media(max-width:480px){.scb{height:50px;font-size:1.2rem;}.scb.fn{font-size:1.05rem;}.scb.mem{font-size:.9rem;}.scical-result{font-size:1.7rem;}}

/* ---- Rich per-tool how-to (e.g. scientific calculator) ---- */
.howto-rich .howto-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px;}
.howto-rich .howto-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:18px 20px;}
.howto-rich .howto-card h3{font-size:1.02rem;margin:0 0 10px;color:var(--brand);}
.howto-rich .howto-card ul{margin:0;padding-left:18px;color:var(--text-2);line-height:1.6;}
.howto-rich .howto-card li{margin-bottom:6px;font-size:.92rem;}
.howto-rich .howto-card strong{color:var(--text);}

/* ===================== BASIC / STANDARD CALCULATOR ===================== */
.bascalc{max-width:380px;margin:0 auto;}
.bascalc-display{background:#0f172a;border-radius:var(--r-sm);padding:18px 20px 16px;text-align:right;margin-bottom:8px;min-height:92px;display:flex;flex-direction:column;justify-content:flex-end;}
.bascalc-calc{color:#94a3b8;font-size:1rem;font-family:'Courier New',monospace;min-height:22px;word-break:break-all;}
.bascalc-result{color:#fff;font-size:2.4rem;font-weight:700;font-family:'Courier New',monospace;word-break:break-all;line-height:1.1;margin-top:4px;}
.bascalc-result.error{color:#f87171;font-size:1.4rem;}
.bascalc-statusbar{text-align:left;padding:0 6px 10px;min-height:16px;font-size:0.9rem;font-weight:700;color:var(--brand);}
.bascalc-buttons{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;}
.bcb{height:62px;border:1px solid rgba(0,0,0,.06);border-radius:14px;font-size:1.55rem;font-weight:600;cursor:pointer;font-family:var(--font-body);transition:transform .06s ease,filter .15s ease,box-shadow .15s ease;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 10px rgba(0,0,0,.10);}
.bcb:active{transform:scale(.96);}
.bcb:hover{filter:brightness(1.05);box-shadow:0 6px 16px rgba(0,0,0,.16);}
.bcb.num{background:var(--surface);color:var(--text);}
.bcb.fn{background:color-mix(in srgb,var(--brand) 10%,var(--surface));color:var(--brand);border-color:color-mix(in srgb,var(--brand) 16%,transparent);font-size:1.3rem;}
.bcb.op{background:linear-gradient(135deg,var(--g1),var(--g3));color:#fff;font-size:1.7rem;border:0;box-shadow:0 6px 14px color-mix(in srgb,var(--g3) 38%,transparent);}
.bcb.mem{background:color-mix(in srgb,#d93025 10%,var(--surface));color:#d93025;border-color:color-mix(in srgb,#d93025 16%,transparent);font-size:1.05rem;}
.bcb.clear{background:color-mix(in srgb,#ef4444 16%,var(--surface));color:#dc2626;border-color:color-mix(in srgb,#ef4444 30%,transparent);font-weight:700;}
.bcb.clear:hover{background:#ef4444;color:#fff;}
.bcb.eq{background:linear-gradient(135deg,var(--cat-converter),#059669);color:#fff;font-size:1.9rem;border:0;box-shadow:0 6px 16px color-mix(in srgb,var(--cat-converter) 40%,transparent);}
@media(max-width:420px){.bcb{height:56px;font-size:1.35rem;}.bascalc-result{font-size:2rem;}}

/* ===================== BACKEND TOOL UPLOADER ===================== */
.bt-options{margin-bottom:18px;}
.bt-check{display:flex;align-items:center;gap:8px;font-weight:600;font-size:.9rem;cursor:pointer;}
.bt-check input{width:auto;height:auto;}
.bt-drop{border:2px dashed var(--border);border-radius:var(--r);background:var(--surface-2);padding:34px 20px;text-align:center;cursor:pointer;transition:var(--t);color:var(--text-2);}
.bt-drop:hover,.bt-drop:focus,.bt-drop.dragover{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 6%,var(--surface-2));color:var(--brand);outline:none;}
.bt-drop svg{color:var(--brand);margin-bottom:8px;}
.bt-drop-title{font-weight:700;color:var(--text);margin:0 0 4px;}
.bt-drop-sub{font-size:0.9rem;margin:0;}
.bt-browse{color:var(--brand);font-weight:600;text-decoration:underline;}
.bt-list{margin-top:14px;display:grid;gap:10px;}
.bt-file{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);padding:10px 12px;}
.bt-thumb{width:46px;height:46px;border-radius:8px;overflow:hidden;flex:none;background:var(--surface-2);display:grid;place-items:center;}
.bt-thumb img{width:100%;height:100%;object-fit:cover;}
.bt-fileicon{font-size:0.9rem;font-weight:800;color:var(--brand);}
.bt-meta{flex:1;min-width:0;}
.bt-meta b{display:block;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.bt-meta small{color:var(--text-3);font-size:0.9rem;}
.bt-remove{width:28px;height:28px;border:0;border-radius:50%;background:var(--surface-2);color:var(--text-2);font-size:1.2rem;line-height:1;cursor:pointer;flex:none;}
.bt-remove:hover{background:#ef4444;color:#fff;}
.bt-controls{margin-top:16px;}
.bt-controls .btn{width:100%;height:52px;}
.bt-status{margin-top:14px;padding:12px 16px;border-radius:var(--r-sm);font-size:.9rem;font-weight:500;display:flex;align-items:center;gap:8px;}
.bt-status[hidden],.bt-result[hidden],.bt-controls[hidden]{display:none !important;}
.bt-loading{background:color-mix(in srgb,var(--brand) 10%,var(--surface-2));color:var(--brand);}
.bt-error{background:color-mix(in srgb,#ef4444 12%,var(--surface-2));color:#dc2626;}
.bt-spin{width:15px;height:15px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;display:inline-block;animation:bt-spin .7s linear infinite;}
@keyframes bt-spin{to{transform:rotate(360deg);}}
.bt-result{margin-top:16px;}
.bt-success{display:flex;align-items:center;gap:8px;font-weight:700;color:var(--cat-converter);margin-bottom:12px;}
.bt-download{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);padding:14px 16px;margin-bottom:10px;color:var(--text);transition:var(--t);}
.bt-download:hover{border-color:var(--brand);transform:translateY(-1px);box-shadow:var(--shadow);}
.bt-dlmeta b{display:block;font-size:.92rem;}
.bt-dlmeta small{color:var(--text-3);font-size:0.9rem;}
.bt-dlbtn{background:linear-gradient(135deg,var(--cat-converter),#059669);color:#fff;font-weight:600;font-size:0.9rem;padding:9px 18px;border-radius:var(--r-pill);flex:none;}

/* ---- Image resizer presets + ratio toggle ---- */
.ir-presets{margin-bottom:18px;}
.ir-presets-label,.bt-options label{display:block;font-weight:600;font-size:.9rem;margin-bottom:8px;color:var(--text);}
.ir-preset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:9px;}
.ir-preset{display:flex;flex-direction:column;align-items:flex-start;gap:3px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:11px 14px;cursor:pointer;font-size:1rem;font-weight:700;color:var(--text);font-family:var(--font-body);transition:var(--t);text-align:left;}
.ir-preset small{font-weight:500;color:var(--text-3);font-size:0.9rem;}
.ir-preset:hover{border-color:var(--brand);color:var(--brand);transform:translateY(-1px);}
.ir-preset.active{background:linear-gradient(135deg,var(--g1),var(--g3));border-color:transparent;color:#fff;box-shadow:0 6px 16px color-mix(in srgb,var(--g3) 38%,transparent);}
.ir-preset.active small{color:rgba(255,255,255,.85);}
.ir-hint{margin:10px 0 0;font-size:0.9rem;color:var(--text-3);font-style:italic;}
.ir-ratio-row{display:flex;gap:6px;flex-wrap:wrap;}
.ir-ratio{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-pill);padding:7px 16px;cursor:pointer;font-weight:600;font-size:0.9rem;color:var(--text-2);font-family:var(--font-body);transition:var(--t);}
.ir-ratio:hover{border-color:var(--brand);color:var(--brand);}
.ir-ratio.active{background:var(--brand);border-color:var(--brand);color:#fff;}

/* ---- Taller file preview rows ---- */
.bt-file{padding:14px;}
.bt-thumb{width:64px;height:64px;}

/* ---- Before / After compare (two columns, tall) ---- */
.bt-compare{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:16px;}
.bt-compare-col{display:flex;flex-direction:column;align-items:center;gap:8px;}
.bt-compare-label{font-size:0.9rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-3);}
.bt-compare-label.after{color:var(--cat-converter);}
.bt-compare-img{width:100%;height:220px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-2) repeating-conic-gradient(var(--surface-2) 0% 25%, var(--border) 0% 50%) 50%/18px 18px;display:grid;place-items:center;overflow:hidden;}
.bt-compare-img img{max-width:100%;max-height:100%;object-fit:contain;}
.bt-compare-col small{color:var(--text-3);font-size:0.9rem;}
@media(max-width:520px){.bt-compare-img{height:150px;}}

/* image rotator flip buttons reuse ratio styling */
.ir-flip{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-pill);padding:7px 16px;cursor:pointer;font-weight:600;font-size:0.9rem;color:var(--text-2);font-family:var(--font-body);transition:var(--t);}
.ir-flip:hover{border-color:var(--brand);color:var(--brand);}
.ir-flip.active{background:var(--brand);border-color:var(--brand);color:#fff;}
.bt-options input[type=range]{accent-color:var(--brand);}

/* file list reorder buttons */
.bt-reorder{display:flex;flex-direction:column;gap:2px;flex:none;}
.bt-reorder button{width:24px;height:20px;border:1px solid var(--border);background:var(--surface-2);border-radius:5px;cursor:pointer;font-size:0.9rem;line-height:1;color:var(--text-2);}
.bt-reorder button:hover:not(:disabled){border-color:var(--brand);color:var(--brand);}
.bt-reorder button:disabled{opacity:.35;cursor:default;}

/* pdf tool toggle buttons reuse ratio styling */
.sp-mode,.cp-level,.pj-dpi{display:inline-flex;flex-direction:column;align-items:center;gap:1px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:8px 16px;cursor:pointer;font-weight:600;font-size:0.9rem;color:var(--text-2);font-family:var(--font-body);transition:var(--t);}
.sp-mode small,.cp-level small,.pj-dpi small{font-weight:500;font-size:0.9rem;color:var(--text-3);}
.sp-mode:hover,.cp-level:hover,.pj-dpi:hover{border-color:var(--brand);color:var(--brand);}
.sp-mode.active,.cp-level.active,.pj-dpi.active{background:var(--brand);border-color:var(--brand);color:#fff;}
.sp-mode.active small,.cp-level.active small,.pj-dpi.active small{color:rgba(255,255,255,.85);}

/* batch-3 pdf tool toggles reuse the ratio/toggle styling */
.i2p-mode,.pp-dpi,.rp-deg{display:inline-flex;flex-direction:column;align-items:center;gap:1px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:8px 16px;cursor:pointer;font-weight:600;font-size:0.9rem;color:var(--text-2);font-family:var(--font-body);transition:var(--t);}
.i2p-mode small,.pp-dpi small,.rp-deg small{font-weight:500;font-size:0.9rem;color:var(--text-3);}
.i2p-mode:hover,.pp-dpi:hover,.rp-deg:hover{border-color:var(--brand);color:var(--brand);}
.i2p-mode.active,.pp-dpi.active,.rp-deg.active{background:var(--brand);border-color:var(--brand);color:#fff;}
.i2p-mode.active small,.pp-dpi.active small,.rp-deg.active small{color:rgba(255,255,255,.85);}

/* rotate-pdf "which pages" scope toggle — distinct green accent when selected */
.rp-scope{display:inline-flex;align-items:center;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-pill);padding:7px 18px;cursor:pointer;font-weight:600;font-size:0.9rem;color:var(--text-2);font-family:var(--font-body);transition:var(--t);}
.rp-scope:hover{border-color:var(--cat-converter);color:var(--cat-converter);}
.rp-scope.active{background:linear-gradient(135deg,var(--cat-converter),#059669);border-color:transparent;color:#fff;box-shadow:0 4px 12px color-mix(in srgb,var(--cat-converter) 35%,transparent);}

/* batch-4 pdf toggles */
.pn-pos{display:inline-flex;align-items:center;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-pill);padding:7px 16px;cursor:pointer;font-weight:600;font-size:0.9rem;color:var(--text-2);font-family:var(--font-body);transition:var(--t);}
.pn-pos:hover{border-color:var(--brand);color:var(--brand);}
.pn-pos.active{background:var(--brand);border-color:var(--brand);color:#fff;}

/* watermark angle toggle */
.wm-angle{display:inline-flex;align-items:center;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-pill);padding:7px 16px;cursor:pointer;font-weight:600;font-size:0.9rem;color:var(--text-2);font-family:var(--font-body);transition:var(--t);}
.wm-angle:hover{border-color:var(--brand);color:var(--brand);}
.wm-angle.active{background:var(--brand);border-color:var(--brand);color:#fff;}

/* backend tool intro/instructions block */
.bt-intro{background:color-mix(in srgb,var(--brand) 5%,var(--surface-2));border:1px solid color-mix(in srgb,var(--brand) 14%,transparent);border-radius:var(--r-sm);padding:16px 18px;margin-bottom:18px;}
.bt-intro-title{margin:0 0 8px;font-size:.95rem;color:var(--brand);font-weight:700;}
.bt-intro p{margin:0 0 8px;font-size:.9rem;line-height:1.55;color:var(--text-2);}
.bt-intro p:last-child{margin-bottom:0;}
.bt-intro a{color:var(--brand);font-weight:600;}
/* fallback / explanatory note below the result message */
.bt-note{background:color-mix(in srgb,var(--cat-generator) 12%,var(--surface-2));border:1px solid color-mix(in srgb,var(--cat-generator) 24%,transparent);color:var(--text);border-radius:var(--r-sm);padding:11px 14px;font-size:0.9rem;line-height:1.5;margin-bottom:12px;}

/* ---- image-to-base64 + color picker shared drop styling ---- */
.b64-drop{border:2px dashed var(--border);border-radius:var(--r);background:var(--surface-2);padding:30px 20px;text-align:center;cursor:pointer;transition:var(--t);color:var(--text-2);}
.b64-drop:hover,.b64-drop:focus,.b64-drop.dragover{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 6%,var(--surface-2));color:var(--brand);outline:none;}
.b64-drop svg{color:var(--brand);margin-bottom:6px;}
.b64-drop p{margin:4px 0 2px;color:var(--text);}
.b64-drop small{font-size:0.9rem;}
.b64-preview{display:flex;align-items:center;gap:14px;margin-top:16px;}
.b64-preview img{width:80px;height:80px;object-fit:contain;border:1px solid var(--border);border-radius:8px;background:var(--surface-2);}
.b64-info{font-size:0.9rem;color:var(--text-3);}
.b64-opts{font-size:0.9rem;}
.btn-ghost{background:var(--surface-2);color:var(--text);border:1px solid var(--border);}
/* color picker */
.cp-stage{margin-top:16px;}
.cp-readout{display:flex;align-items:center;gap:16px;margin-top:14px;flex-wrap:wrap;}
.cp-swatch{width:64px;height:64px;border-radius:10px;border:1px solid var(--border);flex:none;}
.cp-codes{display:flex;flex-direction:column;gap:6px;}
.cp-code{display:flex;align-items:center;gap:10px;font-size:0.9rem;}
.cp-code span{width:34px;color:var(--text-3);font-weight:600;font-size:0.9rem;}
.cp-code code{font-family:monospace;background:var(--surface-2);padding:3px 8px;border-radius:6px;min-width:150px;}
.cp-code button{border:1px solid var(--border);background:var(--surface);border-radius:6px;padding:3px 10px;cursor:pointer;font-size:0.9rem;color:var(--text-2);}
.cp-code button:hover{border-color:var(--brand);color:var(--brand);}

/* ---- color picker: collected colours + palette chips ---- */
.cp-collected{margin-top:18px;}
.cp-collected-title{margin:0 0 10px;font-size:.95rem;font-weight:700;color:var(--text);}
.cp-collected-grid{display:flex;flex-wrap:wrap;gap:10px;}
.cp-chip{display:flex;align-items:center;gap:10px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:8px 10px;}
.cp-chip-sw{width:40px;height:40px;border-radius:8px;border:1px solid var(--border);flex:none;}
.cp-chip-codes{display:flex;flex-direction:column;line-height:1.3;}
.cp-chip-codes code{font-family:monospace;font-weight:700;font-size:0.9rem;}
.cp-chip-codes small{color:var(--text-3);font-size:0.9rem;}
.cp-chip-copy{border:1px solid var(--border);background:var(--surface);border-radius:6px;padding:3px 9px;cursor:pointer;font-size:0.9rem;color:var(--text-2);align-self:center;}
.cp-chip-copy:hover{border-color:var(--brand);color:var(--brand);}
.cp-mode{display:inline-flex;align-items:center;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-pill);padding:7px 18px;cursor:pointer;font-weight:600;font-size:0.9rem;color:var(--text-2);font-family:var(--font-body);transition:var(--t);}
.cp-mode:hover{border-color:var(--brand);color:var(--brand);}
.cp-mode.active{background:var(--brand);border-color:var(--brand);color:#fff;}

/* ---- text/dev tools ---- */
.bt-check{display:inline-flex;align-items:center;gap:6px;font-size:0.9rem;color:var(--text-2);margin-right:14px;cursor:pointer;}
.hg-results{margin-top:14px;display:flex;flex-direction:column;gap:8px;}
.hg-row{display:flex;align-items:center;gap:10px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:9px 12px;}
.hg-algo-name{font-weight:700;font-size:0.9rem;color:var(--brand);width:64px;flex:none;}
.hg-hash{font-family:monospace;font-size:0.9rem;word-break:break-all;flex:1;}
.hg-copy,.td-sign{flex:none;}
.hg-copy{border:1px solid var(--border);background:var(--surface);border-radius:6px;padding:3px 9px;cursor:pointer;font-size:0.9rem;color:var(--text-2);}
.hg-copy:hover{border-color:var(--brand);color:var(--brand);}


/* ---- text diff: word-level two-pane (theme-aware) ---- */
.td-diff-inputs{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
@media(max-width:600px){.td-diff-inputs{grid-template-columns:1fr;}}
.td-summary{margin-top:14px;display:flex;gap:8px;flex-wrap:wrap;}
.td-badge{font-size:0.9rem;font-weight:600;padding:4px 10px;border-radius:999px;background:#eef0f4;border:1px solid #dfe3ea;color:#555;}
.td-badge-add{background:#dcfce7;color:#166534;border-color:#bbf7d0;}
.td-badge-del{background:#fee2e2;color:#991b1b;border-color:#fecaca;}
.dw-panes{margin-top:12px;display:grid;grid-template-columns:1fr 1fr;gap:14px;}
@media(max-width:600px){.dw-panes{grid-template-columns:1fr;}}
.dw-pane{border:1px solid var(--border);border-radius:var(--r-sm);overflow:hidden;background:var(--surface);}
.dw-head{padding:7px 12px;font-size:0.9rem;font-weight:700;font-family:var(--font-body);border-bottom:1px solid var(--border);}
.dw-head-del{background:#fee2e2;color:#991b1b;}
.dw-head-add{background:#dcfce7;color:#166534;}
.dw-body{padding:12px;font-size:0.9rem;line-height:1.6;white-space:pre-wrap;word-break:break-word;color:var(--text);max-height:520px;overflow:auto;}
.dw-del{background:#fde0e0;color:#991b1b;text-decoration:line-through;text-decoration-color:#dc2626;border-radius:3px;padding:0 1px;}
.dw-add{background:#d8f5e3;color:#166534;text-decoration:none;border-radius:3px;padding:0 1px;}
.dw-empty{color:var(--text-3);}
/* dark mode */

/* ---- timestamp / lorem / regex tools ---- */
.ts-now{display:flex;align-items:center;gap:10px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:10px 14px;margin-bottom:16px;font-size:0.9rem;}
.ts-now span{color:var(--text-3);font-weight:600;}
.ts-now code{font-family:monospace;font-weight:700;color:var(--brand);}
.ts-now button{margin-left:auto;border:1px solid var(--border);background:var(--surface);border-radius:6px;padding:3px 10px;cursor:pointer;font-size:0.9rem;color:var(--text-2);}
.ts-now button:hover{border-color:var(--brand);color:var(--brand);}
.ts-out{margin-top:10px;display:flex;flex-direction:column;gap:6px;}
.ts-line{display:flex;gap:10px;align-items:baseline;font-size:0.9rem;}
.ts-line span{width:130px;flex:none;color:var(--text-3);font-weight:600;font-size:0.9rem;}
.ts-line code{font-family:monospace;word-break:break-all;}
.ts-err{color:#dc2626;font-size:0.9rem;}
.li-out{margin-top:14px;line-height:1.6;color:var(--text);}
.li-out p{margin:0 0 12px;}
.rx-patrow{display:flex;align-items:center;gap:6px;}
.rx-slash{color:var(--text-3);font-family:monospace;font-size:1.1rem;}
.rx-flags{width:80px;flex:none;font-family:monospace;}
.rx-status{margin-top:12px;font-size:0.9rem;font-weight:600;padding:7px 12px;border-radius:var(--r-sm);}
.rx-ok{background:#dcfce7;color:#166534;}
.rx-none{background:var(--surface-2);color:var(--text-2);}
.rx-bad{background:#fee2e2;color:#991b1b;}
.rx-hl{margin-top:10px;border:1px solid var(--border);border-radius:var(--r-sm);padding:10px 12px;font-family:monospace;font-size:0.9rem;white-space:pre-wrap;word-break:break-word;background:var(--surface);}
.rx-hl mark{background:#fde68a;color:#000;border-radius:3px;padding:0 1px;}
.rx-empty{color:var(--text-3);}
.rx-groups{margin-top:12px;}
.rx-groups-title{margin:0 0 8px;font-size:0.9rem;font-weight:700;}
.rx-grow{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:6px 0;border-bottom:1px solid var(--border);font-size:0.9rem;}
.rx-gm{color:var(--text-3);font-weight:600;font-size:0.9rem;width:60px;flex:none;}
.rx-g code{font-family:monospace;background:var(--surface-2);padding:2px 6px;border-radius:5px;}

/* ---- SEO tools ---- */
.code-out{margin-top:14px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:14px 16px;overflow:auto;max-height:480px;}
.code-out code{font-family:monospace;font-size:0.9rem;white-space:pre;color:var(--text);}
.mt-warn{color:#b45309;font-weight:600;}
.ht-out{margin-top:14px;}
.ht-tags{display:flex;flex-wrap:wrap;gap:8px;}
.ht-tag{border:1px solid var(--border);background:var(--surface-2);border-radius:var(--r-pill);padding:6px 13px;font-size:0.9rem;cursor:pointer;color:var(--brand);font-weight:600;transition:all .12s;}
.ht-tag:hover{border-color:var(--brand);}
.ht-tag.copied{background:#dcfce7;color:#166534;border-color:#bbf7d0;}
.ht-tag.copied::after{content:" ✓";}
.ht-empty,.sm-msg{font-size:0.9rem;}
.sm-msg{margin-top:12px;padding:8px 12px;border-radius:var(--r-sm);font-weight:600;}
.sm-ok{background:#dcfce7;color:#166534;}
.sm-bad{background:#fee2e2;color:#991b1b;}

/* ---- SEO tools batch 2: utm / robots / serp ---- */
.req{color:#dc2626;}
.sm-warn{background:#fef3c7;color:#92400e;}
.utm-out{margin-top:12px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:12px 14px;}
.utm-link{font-family:monospace;font-size:0.9rem;word-break:break-all;color:var(--brand);}
.rb-presets-label{font-size:0.9rem;color:var(--text-3);font-weight:600;margin-right:4px;align-self:center;}
/* SERP preview */
.sp-toggle{display:flex;gap:0;margin:16px 0 0;border:1px solid var(--border);border-radius:var(--r-sm);overflow:hidden;width:fit-content;}
.sp-tab{padding:7px 18px;background:var(--surface);border:none;cursor:pointer;font-size:0.9rem;font-weight:600;color:var(--text-2);}
.sp-tab.is-active{background:var(--brand);color:#fff;}
.sp-preview{margin-top:14px;background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:18px 20px;}
.sp-preview.sp-mobile{max-width:400px;}
.sp-crumb{font-size:0.9rem;color:#202124;margin-bottom:3px;}
.sp-title{color:#1a0dab;font-size:1.25rem;line-height:1.3;font-family:arial,sans-serif;cursor:pointer;}
.sp-mobile .sp-title{font-size:1.05rem;}
.sp-title:hover{text-decoration:underline;}
.sp-desc{color:#4d5156;font-size:0.9rem;line-height:1.5;margin-top:4px;font-family:arial,sans-serif;}

/* ---- utility tools: random / password / picker ---- */
.rn-out{margin-top:14px;display:flex;flex-wrap:wrap;gap:8px;}
.rn-num{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:8px 14px;font-family:monospace;font-weight:700;font-size:1rem;color:var(--brand);}
.ps-inputrow{display:flex;gap:8px;}
.ps-toggle{flex:none;border:1px solid var(--border);background:var(--surface-2);border-radius:var(--r-sm);padding:0 16px;cursor:pointer;font-size:0.9rem;font-weight:600;color:var(--text-2);}
.ps-toggle:hover{border-color:var(--brand);color:var(--brand);}
.ps-result{margin-top:16px;}
.ps-meter{height:10px;background:var(--surface-2);border-radius:999px;overflow:hidden;border:1px solid var(--border);}
.ps-bar{height:100%;width:0;border-radius:999px;transition:width .25s,background .25s;}
.ps-row{display:flex;justify-content:space-between;align-items:baseline;margin-top:10px;}
.ps-label{font-weight:700;font-size:1.05rem;}
.ps-bits{font-size:0.9rem;color:var(--text-3);font-family:monospace;}
.ps-crack{margin-top:6px;font-size:0.9rem;color:var(--text-2);}
.ps-warn{margin:10px 0 0;padding-left:18px;color:var(--text-2);font-size:0.9rem;}
.ps-warn li{margin:3px 0;}
.rp-out{margin-top:16px;text-align:center;}
.rp-winner{font-size:0.9rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-3);font-weight:700;margin-bottom:8px;}
.rp-item{display:inline-block;background:var(--brand);color:#fff;font-weight:700;font-size:1.15rem;padding:12px 28px;border-radius:var(--r-sm);margin:4px;box-shadow:var(--shadow);}

/* ---- dev tools batch 2: jwt / base / entity ---- */
.jwt-out{margin-top:14px;}
.jwt-block{margin-bottom:12px;}
.jwt-h{font-size:0.9rem;font-weight:700;margin:0 0 6px;color:var(--text-2);}
.jwt-h-head{color:#dc2626;}
.jwt-h-pay{color:#7c3aed;}
.jwt-claims{margin-top:8px;}
.jwt-claim{display:flex;gap:10px;align-items:baseline;font-size:0.9rem;padding:3px 0;}
.jwt-claim span{width:150px;flex:none;color:var(--text-3);font-weight:600;font-size:0.9rem;}
.jwt-claim code{font-family:monospace;}
.nb-out{margin-top:14px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:14px 16px;display:flex;align-items:baseline;gap:12px;}
.nb-result-label{font-size:0.9rem;color:var(--text-3);font-weight:700;text-transform:uppercase;letter-spacing:.05em;}
.nb-result{font-family:monospace;font-size:1.3rem;font-weight:700;color:var(--brand);word-break:break-all;}
.nb-common{margin-top:12px;}
.nb-crow{display:flex;gap:10px;align-items:baseline;font-size:0.9rem;padding:3px 0;border-bottom:1px solid var(--border);}
.nb-crow span{width:80px;flex:none;color:var(--text-3);font-weight:600;font-size:0.9rem;}
.nb-crow code{font-family:monospace;word-break:break-all;}

/* ---- premium: contrast checker ---- */
.cc-inputs{display:flex;align-items:flex-end;gap:14px;}
.cc-field{flex:1;}
.cc-field label{display:block;font-size:0.9rem;font-weight:600;color:var(--text-2);margin-bottom:6px;}
.cc-row{display:flex;gap:8px;align-items:center;}
.cc-row input[type=color]{width:46px;height:46px;border:1px solid var(--border);border-radius:var(--r-sm);background:none;cursor:pointer;padding:2px;flex:none;}
.cc-row input[type=text]{flex:1;font-family:monospace;text-transform:uppercase;}
.cc-swap{flex:none;width:40px;height:40px;border:1px solid var(--border);background:var(--surface-2);border-radius:50%;cursor:pointer;font-size:1.2rem;color:var(--text-2);margin-bottom:3px;}
.cc-swap:hover{border-color:var(--brand);color:var(--brand);}
.cc-result{display:grid;grid-template-columns:auto 1fr;gap:16px;margin-top:18px;align-items:stretch;}
@media(max-width:560px){.cc-result{grid-template-columns:1fr;}.cc-inputs{flex-wrap:wrap;}}
.cc-ratio-box{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:18px 22px;text-align:center;display:flex;flex-direction:column;justify-content:center;}
.cc-ratio{font-size:2.2rem;font-weight:800;color:var(--text);font-family:var(--font-display,inherit);}
.cc-ratio-lbl{font-size:0.9rem;color:var(--text-3);text-transform:uppercase;letter-spacing:.05em;margin-top:2px;}
.cc-preview{border:1px solid var(--border);border-radius:var(--r-sm);padding:18px;display:flex;flex-direction:column;justify-content:center;gap:8px;}
.cc-sample-lg{font-size:1.5rem;font-weight:700;margin:0;}
.cc-sample-sm{font-size:.95rem;margin:0;}
.cc-grades{margin-top:16px;display:flex;flex-direction:column;gap:6px;}
.cc-grade{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;padding:8px 12px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);font-size:0.9rem;}
.cc-g-name{font-weight:600;}
.cc-g-need{font-size:0.9rem;color:var(--text-3);font-family:monospace;}
.cc-g-badge{font-size:0.9rem;font-weight:800;padding:3px 10px;border-radius:999px;min-width:48px;text-align:center;}
.cc-pass{background:#dcfce7;color:#166534;}
.cc-fail{background:#fee2e2;color:#991b1b;}

/* ---- premium: gradient generator ---- */
.gg-preview{height:200px;border-radius:var(--r-md,12px);border:1px solid var(--border);background:linear-gradient(90deg,#667eea 0%,#764ba2 100%);margin-bottom:16px;}
.gg-row{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:14px;}
.gg-row .cc-field{flex:1;min-width:140px;}
.gg-angle{width:100%;}
.gg-stops-head{display:flex;justify-content:space-between;align-items:center;font-size:0.9rem;font-weight:700;color:var(--text-2);margin-bottom:8px;}
.gg-stops{display:flex;flex-direction:column;gap:8px;margin-bottom:14px;}
.gg-stop{display:flex;align-items:center;gap:10px;}
.gg-stop input[type=color]{width:42px;height:38px;border:1px solid var(--border);border-radius:8px;background:none;cursor:pointer;padding:2px;flex:none;}
.gg-stop input[type=range]{flex:1;}
.gg-pos{font-size:0.9rem;font-family:monospace;color:var(--text-2);width:42px;flex:none;}
.gg-del{flex:none;width:28px;height:28px;border:1px solid var(--border);background:var(--surface);border-radius:6px;cursor:pointer;color:#dc2626;font-size:1rem;line-height:1;}
.gg-del:hover{background:#fee2e2;}
.gg-presets{display:flex;flex-wrap:wrap;gap:8px;align-items:center;}
.gg-preset{border:1px solid var(--border);background:var(--surface-2);border-radius:var(--r-pill);padding:5px 12px;font-size:0.9rem;cursor:pointer;color:var(--text-2);font-weight:600;}
.gg-preset:hover{border-color:var(--brand);color:var(--brand);}

/* ---- premium: markdown previewer ---- */
.md-toolbar{display:flex;gap:4px;align-items:center;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm) var(--r-sm) 0 0;padding:6px 8px;flex-wrap:wrap;}
.md-toolbar button{width:34px;height:30px;border:1px solid transparent;background:none;border-radius:6px;cursor:pointer;color:var(--text-2);font-size:.9rem;}
.md-toolbar button:hover{background:var(--surface);border-color:var(--border);color:var(--brand);}
.md-count{margin-left:auto;font-size:0.9rem;color:var(--text-3);}
.md-panes{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--border);border-top:none;border-radius:0 0 var(--r-sm) var(--r-sm);overflow:hidden;min-height:340px;}
@media(max-width:640px){.md-panes{grid-template-columns:1fr;}.md-editor{border-right:none!important;border-bottom:1px solid var(--border);}}
.md-editor{border:none;border-right:1px solid var(--border);padding:14px;font-family:monospace;font-size:0.9rem;line-height:1.6;resize:vertical;background:var(--surface);color:var(--text);outline:none;min-height:340px;}
.md-preview{padding:14px 16px;overflow:auto;background:var(--surface);max-height:520px;}
.md-preview h1,.md-preview h2,.md-preview h3{margin:.6em 0 .35em;line-height:1.25;}
.md-preview h1{font-size:1.6rem;} .md-preview h2{font-size:1.3rem;} .md-preview h3{font-size:1.1rem;}
.md-preview p{margin:.5em 0;line-height:1.65;}
.md-preview ul,.md-preview ol{margin:.5em 0;padding-left:1.5em;}
.md-preview code{background:var(--surface-2);padding:1px 5px;border-radius:4px;font-size:.85em;}
.md-preview pre{background:var(--surface-2);padding:12px 14px;border-radius:var(--r-sm);overflow:auto;}
.md-preview pre code{background:none;padding:0;}
.md-preview blockquote{border-left:3px solid var(--brand);margin:.6em 0;padding:.2em 0 .2em 14px;color:var(--text-2);}
.md-preview a{color:var(--brand);}
.md-preview img{max-width:100%;height:auto;border-radius:8px;}
.md-preview hr{border:none;border-top:1px solid var(--border);margin:1em 0;}

/* ---- box shadow generator ---- */
.bs-stage{display:flex;align-items:center;justify-content:center;background:repeating-conic-gradient(var(--surface-2) 0% 25%,var(--surface) 0% 50%) 50%/24px 24px;border:1px solid var(--border);border-radius:var(--r-sm);padding:50px;margin-bottom:16px;}
.bs-box{width:120px;height:120px;border-radius:16px;background:var(--brand);}
.bs-layers-head{display:flex;justify-content:space-between;align-items:center;font-size:0.9rem;font-weight:700;color:var(--text-2);margin-bottom:8px;}
.bs-layers{display:flex;flex-direction:column;gap:12px;margin-bottom:6px;}
.bs-layer{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:12px 14px;}
.bs-layer-top{display:flex;align-items:center;gap:10px;margin-bottom:8px;font-size:0.9rem;font-weight:700;color:var(--text-2);}
.bs-layer-top span{margin-right:auto;}
.bs-layer-top input[type=color]{width:36px;height:30px;border:1px solid var(--border);border-radius:6px;background:none;cursor:pointer;padding:2px;}
.bs-sl{display:grid;grid-template-columns:90px 1fr 48px;align-items:center;gap:10px;font-size:0.9rem;color:var(--text-2);margin:5px 0;}
.bs-sl b{font-family:monospace;font-weight:600;text-align:right;color:var(--text);}

/* ---- pomodoro timer ---- */
.pm-phases{display:flex;gap:6px;justify-content:center;margin-bottom:18px;flex-wrap:wrap;}
.pm-phase{border:1px solid var(--border);background:var(--surface-2);border-radius:var(--r-pill);padding:7px 16px;font-size:0.9rem;font-weight:600;color:var(--text-2);cursor:pointer;}
.pm-phase.is-active{background:var(--brand);color:#fff;border-color:var(--brand);}
.pm-ring-wrap{position:relative;width:240px;height:240px;margin:0 auto;}
.pm-ring{width:240px;height:240px;transform:rotate(-90deg);}
.pm-track{fill:none;stroke:var(--surface-2);stroke-width:12;}
.pm-prog{fill:none;stroke:var(--brand);stroke-width:12;stroke-linecap:round;transition:stroke-dashoffset 1s linear;}
.pm-time{position:absolute;top:50%;left:50%;transform:translate(-50%,-58%);font-size:3rem;font-weight:800;font-family:var(--font-display,inherit);color:var(--text);}
.pm-sessions{position:absolute;top:50%;left:50%;transform:translate(-50%,28px);font-size:0.9rem;color:var(--text-3);white-space:nowrap;}
.pm-settings{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px;justify-content:center;}
.pm-settings .cc-field{flex:0 0 auto;width:110px;}
.pm-settings input[type=number]{text-align:center;}

/* ---- pdf: header/footer grid + signature preview ---- */
.hf-grid{display:grid;grid-template-columns:70px 1fr 1fr 1fr;gap:8px;align-items:center;}
.hf-grid .hf-lbl{font-size:0.9rem;font-weight:700;color:var(--text-2);}
.hf-grid input[type=text]{width:100%;}
@media(max-width:560px){.hf-grid{grid-template-columns:1fr 1fr;}.hf-grid .hf-lbl{grid-column:1/-1;}}
.sig-prev{max-width:200px;max-height:90px;margin-top:8px;border:1px solid var(--border);border-radius:8px;background:repeating-conic-gradient(var(--surface-2) 0% 25%,var(--surface) 0% 50%) 50%/16px 16px;padding:4px;}

/* ---- pdf header/footer premium controls ---- */
.hf-section{font-size:0.9rem;font-weight:700;color:var(--text-2);margin:16px 0 8px;padding-top:12px;border-top:1px solid var(--border);}
.hf-mini{padding:2px 10px;font-size:0.9rem;margin-left:6px;}
.hf-logos{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
@media(max-width:560px){.hf-logos{grid-template-columns:1fr;}}
.hf-logo-col label{display:block;font-size:0.9rem;font-weight:600;color:var(--text-2);margin-bottom:6px;}
.hf-logo-row{display:flex;gap:10px;align-items:center;margin-top:8px;}
.hf-logo-row .hf-h{font-size:0.9rem;color:var(--text-2);font-weight:400;display:flex;align-items:center;gap:6px;margin:0;}
.hf-logo-row .hf-h input{width:64px;}
.hf-prev-wrap{margin-top:8px;}

/* ---- client image tools (webp / enhancer) ---- */
.iw-stage,.ie-stage{margin-top:14px;text-align:center;}
.iw-prev,.ie-canvas{max-width:100%;height:auto;border:1px solid var(--border);border-radius:var(--r-sm);background:repeating-conic-gradient(var(--surface-2) 0% 25%,var(--surface) 0% 50%) 50%/18px 18px;}
.iw-stats{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:10px;font-size:0.9rem;}
.iw-stats span{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-pill);padding:4px 12px;color:var(--text-2);}
.iw-good{color:#166534;background:#dcfce7!important;border-color:#bbf7d0!important;font-weight:700;}
.iw-bad{color:#991b1b;background:#fee2e2!important;border-color:#fecaca!important;font-weight:700;}
.ie-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 18px;margin-top:12px;}
@media(max-width:560px){.ie-grid{grid-template-columns:1fr;}}
.ie-sl{display:grid;grid-template-columns:90px 1fr 48px;align-items:center;gap:10px;font-size:0.9rem;color:var(--text-2);}
.ie-sl b{font-family:monospace;font-weight:600;text-align:right;color:var(--text);}

/* ---- health & date/time calculators ---- */
.hc-result{margin-top:16px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md,14px);padding:20px;text-align:center;}
.hc-num{font-size:2.4rem;font-weight:800;font-family:var(--font-display,inherit);color:var(--text);line-height:1.1;}
.hc-num small{font-size:1rem;font-weight:600;color:var(--text-3);}
.hc-lbl{font-size:0.9rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);margin-top:2px;}
.hc-tag{font-weight:700;margin-top:10px;font-size:1.05rem;}
.hc-bar{position:relative;height:8px;border-radius:999px;margin:16px 0 6px;background:linear-gradient(90deg,#3b82f6 0%,#16a34a 30%,#16a34a 40%,#d97706 60%,#dc2626 100%);}
.hc-bar span{position:absolute;top:-4px;width:4px;height:16px;background:var(--text);border-radius:2px;transform:translateX(-50%);box-shadow:0 0 0 2px var(--surface-2);}
.hc-note{font-size:0.9rem;color:var(--text-2);margin-top:12px;line-height:1.5;}
.hc-grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:16px;}
.hc-grid3 div{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);padding:10px 6px;}
.hc-grid3 b{display:block;font-size:1.15rem;font-weight:800;color:var(--text);}
.hc-grid3 span{font-size:0.9rem;color:var(--text-3);}
.cd-big .cd-title{font-size:1.2rem;font-weight:700;color:var(--text);margin-bottom:12px;}
.cd-units{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;}
.cd-units div{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);padding:14px 6px;}
.cd-units b{display:block;font-size:2rem;font-weight:800;font-family:var(--font-display,inherit);color:var(--brand);line-height:1;}
.cd-units span{font-size:0.9rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-3);}

