/* ToolForge Design System — Swiss Precision Utility — ui-ux-pro-max */
:root{
  --slate-0:#ffffff;--slate-50:#f8fafc;--slate-100:#f1f5f9;--slate-200:#e2e8f0;--slate-300:#cbd5e1;--slate-400:#94a3b8;--slate-500:#64748b;--slate-600:#475569;--slate-700:#334155;--slate-800:#1e293b;--slate-900:#0f172a;--slate-950:#020617;
  --blue-50:#eff6ff;--blue-100:#dbeafe;--blue-200:#bfdbfe;--blue-500:#2563eb;--blue-600:#1d4ed8;--blue-700:#1e40af;--blue-800:#1e3a8a;--amber-50:#fffbeb;--amber-500:#d97706;--amber-600:#b45309;
  --bg:var(--slate-50);--bg-subtle:var(--slate-100);--card:var(--slate-0);--card-elevated:var(--slate-0);--text:var(--slate-900);--text-soft:var(--slate-600);--muted:var(--slate-600);--muted-2:var(--slate-500);--border:var(--slate-200);--border-strong:var(--slate-300);
  --primary:var(--blue-600);--primary-hover:var(--blue-700);--primary-soft:var(--blue-50);--primary-ring:var(--blue-500);--accent:var(--amber-500);--success:#059669;--warning:#b45309;--danger:#dc2626;--ring:var(--blue-500);
  --shadow-xs:0 1px 2px rgba(15,23,42,.06);--shadow-sm:0 1px 3px rgba(15,23,42,.08),0 1px 2px rgba(15,23,42,.06);--shadow-md:0 4px 12px -4px rgba(15,23,42,.12),0 2px 6px -2px rgba(15,23,42,.08);--shadow-lg:0 12px 32px -16px rgba(15,23,42,.18),0 4px 16px -8px rgba(15,23,42,.10);--shadow-tool:0 20px 40px -20px rgba(15,23,42,.20),0 8px 16px -8px rgba(15,23,42,.10);
  --radius-xs:8px;--radius-sm:10px;--radius:14px;--radius-md:16px;--radius-lg:20px;--radius-pill:999px;
  --dur-fast:160ms;--dur:220ms;--dur-slow:340ms;--ease:cubic-bezier(.16,1,.3,1);--ease-in-out:cubic-bezier(.4,0,.2,1);
  --container:1160px;--header-h:64px;--font-sans:system-ui,-apple-system,"Segoe UI",Roboto,"PingFang SC","Hiragino Sans","Noto Sans","Microsoft YaHei",sans-serif;--font-mono:ui-monospace,SFMono-Regular,"SF Mono",Consolas,"Liberation Mono",monospace;
}
[data-theme="dark"]{--bg:#080e1e;--bg-subtle:#0f1a2e;--card:#111d36;--card-elevated:#152040;--text:#e6eaf2;--text-soft:#b8c2d6;--muted:#94a4c0;--muted-2:#8492b0;--border:#1e2d4d;--border-strong:#24365e;--primary:#60a5fa;--primary-hover:#93c5fd;--primary-soft:rgba(96,165,250,.14);--ring:#60a5fa;--shadow-xs:0 1px 2px rgba(0,0,0,.4);--shadow-sm:0 2px 8px rgba(0,0,0,.35);--shadow-md:0 8px 24px rgba(0,0,0,.45);--shadow-lg:0 16px 40px rgba(0,0,0,.55);--shadow-tool:0 20px 48px rgba(0,0,0,.6)}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scrollbar-gutter:stable}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
body{margin:0;font-family:var(--font-sans);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;background:var(--bg);color:var(--text);transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}
.container{max-width:var(--container);margin:0 auto;padding:0 20px}@media (max-width:640px){.container{padding:0 16px}}
a{color:var(--primary);text-decoration:none;text-underline-offset:3px}a:hover{text-decoration:underline;text-decoration-thickness:1.5px}h1,h2,h3{line-height:1.22;letter-spacing:-.015em;margin:.35em 0 .5em;font-weight:700}h1{font-weight:800;letter-spacing:-.025em}p{margin:.5em 0}button{font:inherit}::selection{background:var(--primary-soft);color:var(--text)}img{max-width:100%;height:auto}
.skip-link{position:absolute;left:12px;top:8px;z-index:100;min-height:44px;padding:10px 16px;border-radius:var(--radius-sm);background:var(--text);color:var(--bg);font-weight:600;font-size:.9rem;transform:translateY(-160%);transition:transform var(--dur-fast) var(--ease)}
.skip-link:focus{transform:translateY(0);outline:2px solid var(--ring);outline-offset:2px}
:where(a,button,[role="button"],[tabindex],summary,label):focus-visible{outline:2px solid var(--ring);outline-offset:2px;border-radius:6px}
:where(input:not([type="checkbox"]):not([type="radio"]):not([type="color"]),select,textarea):focus-visible{border-color:var(--primary)!important;box-shadow:0 0 0 3px var(--primary-soft)!important;outline:none}
:where(input[type="checkbox"],input[type="radio"],input[type="color"]):focus-visible{outline:2px solid var(--ring);outline-offset:2px}
.site-header{position:sticky;top:0;z-index:50;background:color-mix(in srgb, var(--bg) 92%, transparent);backdrop-filter:saturate(1.2) blur(12px);-webkit-backdrop-filter:saturate(1.2) blur(12px);border-bottom:1px solid var(--border);transition:background var(--dur) var(--ease), border-color var(--dur) var(--ease)}
.header-inner{display:flex;align-items:center;gap:14px;min-height:64px;padding:10px 0}
.brand{display:flex;align-items:center;min-height:44px;gap:10px;font-weight:800;font-size:1.1rem;letter-spacing:-.02em;color:var(--text);flex:0 0 auto}
.brand:hover{text-decoration:none}
.brand-logo{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--primary);color:#fff;box-shadow:0 4px 12px -6px color-mix(in srgb, var(--primary) 60%, transparent);flex:0 0 auto}
.brand-logo svg{width:18px;height:18px;display:block}
.brand-name{line-height:1}
.main-nav{display:flex;align-items:center;gap:2px;margin-left:6px;flex:1;min-height:44px;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.main-nav::-webkit-scrollbar{display:none}
.main-nav a{padding:8px 14px;border-radius:var(--radius-pill);color:var(--muted);font-weight:600;font-size:.92rem;transition:background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);min-height:44px;display:inline-flex;align-items:center;flex:0 0 auto;white-space:nowrap}
.main-nav a:hover{background:var(--primary-soft);color:var(--primary);text-decoration:none}
.header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}
.icon-btn{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;border:1px solid var(--border);background:var(--card);color:var(--text);transition:border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease)}
.icon-btn svg{width:20px;height:20px;display:block}
.icon-btn:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-soft);transform:translateY(-1px)}
.icon-btn:active{transform:translateY(0)}
.lang-select{min-height:44px;width:168px;min-width:168px;max-width:168px;padding:8px 32px 8px 12px;border-radius:12px;border:1px solid var(--border);background:var(--card) url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2716%27 height=%2716%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27%2364748b%27 stroke-width=%272%27%3E%3Cpath d=%27m6 9 6 6 6-6%27/%3E%3C/svg%3E") no-repeat right 10px center;background-size:16px;appearance:none;-webkit-appearance:none;color:var(--text);font-size:.88rem;font-weight:500;cursor:pointer;transition:border-color var(--dur-fast) var(--ease)}
.lang-select:hover{border-color:var(--border-strong)}
@media (max-width:720px){.main-nav{gap:0}.main-nav a{padding:8px 10px;font-size:.84rem}.header-inner{gap:8px}.brand{font-size:1rem}.lang-select{width:132px;min-width:132px;max-width:132px;font-size:.82rem}}
@media (max-width:560px){
  #cmdk-trigger{display:none}
}
@media (max-width:560px){
  .header-inner{flex-wrap:wrap;padding-top:8px;padding-bottom:12px}
  .brand{flex:0 1 auto;min-width:0;max-width:calc(100% - 162px)}
  .main-nav{order:3;flex:0 0 auto;width:calc(100% + 20px);margin:2px -10px -8px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .main-nav::-webkit-scrollbar{display:none}
  .header-actions{margin-left:auto;gap:6px}
  .lang-select{width:104px;min-width:104px;max-width:104px;font-size:.76rem;padding-right:28px;background-position:right 8px center}
  .main-nav a{min-width:44px;justify-content:center;text-align:center}
}
.hero{text-align:center;padding:44px 0 28px;position:relative}
.hero::before{content:"";position:absolute;inset:-10px 0 0;z-index:-1;background:radial-gradient(600px 280px at 20% 0%, color-mix(in srgb, var(--primary) 7%, transparent), transparent 60%), radial-gradient(700px 320px at 80% 10%, color-mix(in srgb, var(--amber-500) 5%, transparent), transparent 60%);pointer-events:none}
.hero-badge{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow-xs);font-size:.78rem;font-weight:600;color:var(--muted);letter-spacing:.02em;margin-bottom:14px}
.hero-badge-dot{width:7px;height:7px;border-radius:50%;background:var(--success);box-shadow:0 0 0 4px color-mix(in srgb, var(--success) 18%, transparent);flex:0 0 auto}
.hero h1{margin:0 0 10px;font-size:clamp(1.9rem, 4vw, 2.75rem);line-height:1.08;letter-spacing:-.03em}
.hero-tagline{color:var(--muted);font-size:clamp(1rem, 2vw, 1.12rem);max-width:640px;margin:0 auto 28px;line-height:1.6}
.search-box{position:relative;max-width:640px;margin:0 auto}
.search-box .search-icon{position:absolute;left:18px;top:50%;transform:translateY(-50%);color:var(--muted);display:inline-flex;pointer-events:none}
.search-box .search-icon svg{width:20px;height:20px;display:block}
.tool-search-input{width:100%;padding:16px 52px 16px 50px;border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--card);color:var(--text);font-size:1rem;font-weight:500;outline:none;box-shadow:var(--shadow-sm);transition:border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease)}
.tool-search-input::placeholder{color:var(--muted-2)}
.tool-search-input:hover{border-color:var(--border-strong)}
.tool-search-input:focus{border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-soft), var(--shadow-md)}
.search-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:44px;height:44px;border:none;border-radius:50%;background:transparent;color:var(--muted);font-size:20px;line-height:1;display:grid;place-items:center;cursor:pointer;transition:background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease)}
.search-clear[hidden]{display:none!important}
.search-clear:hover{background:var(--bg-subtle);color:var(--danger)}
.search-count{color:var(--muted);font-size:.88rem;margin-top:10px}
.home-browser{min-height:320px;padding-bottom:12px}
html.home-modern .home-static-fallback{display:none!important}
.home-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:28px;align-items:start}
.home-sidebar{position:sticky;top:calc(var(--header-h) + 16px);max-height:none;overflow:visible;overscroll-behavior:auto;padding:4px 6px 12px 2px}
.home-sidebar::-webkit-scrollbar{width:6px}
.home-sidebar::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:999px}
.home-sidebar::-webkit-scrollbar-track{background:transparent}
.home-mode-switch{display:flex;gap:6px;padding:0 0 12px;margin:0 0 14px;border-bottom:1px solid var(--border)}
.home-mode-btn{flex:1;min-height:44px;padding:8px 10px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--card);color:var(--muted);font-size:.88rem;font-weight:600;white-space:nowrap;transition:border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease)}
.home-mode-btn:hover{border-color:var(--border-strong);color:var(--text);background:var(--bg-subtle)}
.home-mode-btn.active{background:var(--text);border-color:var(--text);color:var(--bg);box-shadow:var(--shadow-sm)}
.home-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:0;margin:0;overflow:visible}
.home-tab{display:flex;align-items:center;gap:8px;width:100%;min-width:0;min-height:44px;padding:10px 11px;border-radius:10px;border:1px solid transparent;background:transparent;color:var(--muted);font-size:.84rem;font-weight:550;white-space:nowrap;text-align:left;transition:border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease)}
.home-tab-all{grid-column:1 / -1}
.home-tab .tab-label{min-width:0;overflow:hidden;text-overflow:ellipsis;flex:1}
.home-tab .tab-count{font-size:.72rem;font-weight:600;opacity:.65;background:var(--bg-subtle);padding:2px 6px;border-radius:999px;margin-left:auto;flex:0 0 auto;min-width:22px;text-align:center;transition:background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease)}
.home-tab:hover{border-color:var(--border);background:var(--card);color:var(--text);transform:translateY(-1px);box-shadow:var(--shadow-xs)}
.home-tab.active{background:var(--text);border-color:var(--text);color:var(--bg);font-weight:600;box-shadow:var(--shadow-sm)}
.home-tab.active .tab-count{background:rgba(255,255,255,.18);color:var(--bg);opacity:1}
.home-main{min-width:0}
.home-searchbar{position:sticky;top:calc(var(--header-h) + 12px);z-index:40;padding:0 0 14px;margin:0 0 6px;background:color-mix(in srgb, var(--bg) 96%, transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}
.home-searchbar[hidden]{display:none!important}
.home-searchbar .search-box{max-width:720px;margin:0}
.home-searchbar .tool-search-input{padding:14px 44px 14px 46px;box-shadow:var(--shadow-xs)}
.home-summary{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin:18px 0 12px;padding:0 2px;flex-wrap:wrap}
.home-summary h2{margin:0;font-size:1.18rem;letter-spacing:-.02em}
.home-section-desc{color:var(--muted);font-size:.88rem;margin:4px 0 0;line-height:1.5}
.search-count{color:var(--muted);font-size:.86rem;margin:0}
.home-more{display:flex;justify-content:center;padding:20px 0 8px}
.load-more{min-height:44px;padding:10px 22px;border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--card);color:var(--text);font-size:.92rem;font-weight:600;transition:border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease)}
.load-more:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-soft);transform:translateY(-1px);box-shadow:var(--shadow-xs)}
.load-more:active{transform:translateY(0)}
.tool-directory{display:flex;flex-direction:column;gap:8px}
.tool-grid{display:flex;flex-direction:column;gap:8px;border-top:none;padding-top:4px}
.tool-card,.tool-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px 14px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);box-shadow:var(--shadow-xs);transition:border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease);content-visibility:auto;contain-intrinsic-size:auto 84px}
.tool-card:hover,.tool-row:hover{border-color:color-mix(in srgb, var(--primary) 18%, var(--border));background:var(--card);box-shadow:var(--shadow-md);transform:translateY(-1px);text-decoration:none}
.tool-card:hover .tool-card-name,.tool-row:hover .tool-card-name{color:var(--primary)}
.tool-card-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--primary-soft);border:1px solid color-mix(in srgb, var(--primary) 12%, var(--border));font-size:1.3rem;line-height:1;flex:0 0 auto}
.tool-card-text{display:flex;flex-direction:column;gap:2px;min-width:0}
.tool-card-name{font-weight:650;font-size:.96rem;letter-spacing:-.01em;line-height:1.3}
.tool-card-desc{color:var(--muted);font-size:.84rem;line-height:1.45;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.tool-card-cat{color:var(--muted);font-size:.74rem;font-weight:600;letter-spacing:.02em;white-space:nowrap;padding:6px 10px;border:1px solid var(--border);border-radius:999px;background:var(--bg-subtle);align-self:center}
.search-empty{padding:40px 12px;color:var(--muted);text-align:center;font-size:.95rem;background:var(--card);border:1px dashed var(--border);border-radius:var(--radius);margin-top:8px}
@media (max-width:960px){.home-layout{grid-template-columns:1fr;gap:18px}.home-sidebar{position:static;max-height:none;overflow:visible;padding:0;border-bottom:1px solid var(--border);padding-bottom:16px}.home-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.home-searchbar{top:calc(var(--header-h) + 8px)}}
@media (max-width:640px){.tool-card,.tool-row{gap:12px;padding:12px 12px;grid-template-columns:auto minmax(0,1fr)}.tool-card-cat{display:none}.tool-card-icon{width:40px;height:40px;border-radius:10px;font-size:1.2rem}}
.cat-chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;padding:10px 0}
.chip{padding:8px 14px;border-radius:999px;border:1px solid var(--border);background:var(--card);color:var(--text);font-size:.88rem;font-weight:500;transition:border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease);min-height:44px;display:inline-flex;align-items:center}
.chip:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-soft);transform:translateY(-1px)}
.chip.active{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:0 4px 12px -6px var(--primary)}
.cat-section{margin:32px 0;scroll-margin-top:calc(var(--header-h) + 32px)}
.cat-head{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.cat-icon{font-size:1.6rem;line-height:1}
.cat-head h2{margin:0;font-size:1.35rem}
.cat-head p{margin:2px 0 0;color:var(--muted);font-size:.88rem}
.tool-page{max-width:var(--container);margin:0 auto;padding-bottom:8px}
.breadcrumb{font-size:.84rem;color:var(--muted);margin:18px 0 10px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.breadcrumb a{color:var(--muted);min-height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center;padding:8px 10px;border-radius:6px;transition:color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease)}
.breadcrumb a:hover{color:var(--primary);background:var(--primary-soft);text-decoration:none}
.crumb-sep{opacity:.4}
.tool-title{font-size:clamp(1.65rem, 3.2vw, 2.35rem);line-height:1.15;margin:6px 0 8px;letter-spacing:-.03em;overflow-wrap:anywhere}
.tool-desc{color:var(--muted);max-width:720px;margin:0 0 18px;font-size:1.02rem;line-height:1.65}
.tool-shell{position:relative;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-tool);padding:clamp(18px,3vw,28px);margin:16px 0 20px;overflow:hidden}
.tool-shell::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--primary) 14%, transparent), transparent)}
.tool-form{display:flex;flex-direction:column;gap:18px}
.tool-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:16px 18px;align-items:start}
.tool-field{display:flex;flex-direction:column;gap:7px;min-width:0}
.tool-label{font-weight:600;font-size:.88rem;line-height:1.35;letter-spacing:-.01em}
.tool-field input[type=text],.tool-field input[type=number],.tool-field input[type=search],.tool-field input[type=date],.tool-field input[type=time],.tool-field input[type=datetime-local],.tool-field select,.tool-field textarea{width:100%;min-height:44px;padding:11px 12px;border-radius:10px;border:1px solid var(--border);background:var(--card);color:var(--text);font:inherit;font-size:.95rem;outline:none;transition:border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease)}
.tool-field input:hover,.tool-field select:hover,.tool-field textarea:hover{border-color:var(--border-strong)}
.tool-field input:focus,.tool-field select:focus,.tool-field textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}
.tool-field input::placeholder,.tool-field textarea::placeholder{color:var(--muted-2);opacity:1}
.tool-field input[type=color]{width:72px;height:44px;padding:4px;border-radius:10px;border:1px solid var(--border);background:var(--card);cursor:pointer}
.tool-hint{color:var(--muted);font-size:.8rem;line-height:1.5}
.tool-panel-title{font-size:.82rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0;padding-bottom:12px;border-bottom:1px solid var(--border)}
.btn-primary{padding:12px 20px;min-height:44px;border:none;border-radius:10px;background:var(--primary);color:#fff;font-weight:650;font-size:.95rem;letter-spacing:-.01em;align-self:flex-start;box-shadow:0 8px 18px -10px color-mix(in srgb, var(--primary) 70%, transparent);transition:background var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease)}
.btn-primary:hover{background:var(--primary-hover);box-shadow:0 12px 24px -12px color-mix(in srgb, var(--primary) 75%, transparent);transform:translateY(-1px)}
.btn-primary:active{transform:translateY(0);box-shadow:var(--shadow-xs)}
.tool-results{min-width:0}
.tool-results-body{min-width:0}
.tool-outputs{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));gap:12px}
.tool-outputs:not(:has(.tool-output, .tool-stat)){display:flex;flex-direction:column;gap:10px}
.tool-output{display:flex;flex-direction:column;gap:8px;min-width:0;padding:16px;background:var(--bg-subtle);border:1px solid var(--border);border-radius:12px}
.tool-output-wide{grid-column:1 / -1}
.tool-output-label{font-size:.78rem;font-weight:650;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.tool-output-value{font-size:1.08rem;font-weight:650;letter-spacing:-.01em;word-break:break-word}
.tool-output-textarea{width:100%;min-height:110px;padding:12px;border-radius:10px;border:1px solid var(--border);background:var(--card);color:var(--text);font-family:var(--font-mono);font-size:.88rem;resize:vertical}
.tool-output-table{overflow:auto;border-radius:10px;border:1px solid var(--border);background:var(--card)}
.tool-howto{margin:28px 0 8px;padding:20px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-xs)}
.tool-howto h2{font-size:1.12rem;margin:0 0 8px}
.tool-howto p{color:var(--muted);line-height:1.7;margin:0}
.related-tools{margin:28px 0}
.related-tools h2{font-size:1.12rem;margin:0 0 14px}
.tool-note{margin:20px 0 28px;color:var(--muted);font-size:.84rem;line-height:1.6;border-left:3px solid var(--border);padding-left:12px}
.copy-btn{align-self:flex-start;min-height:44px;padding:10px 12px;border-radius:8px;border:1px solid var(--border);background:var(--card);color:var(--muted);font-size:.84rem;font-weight:600;transition:border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease)}
.copy-btn:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-soft)}
.btn-ghost{padding:10px 14px;min-width:44px;min-height:44px;border-radius:10px;border:1px solid var(--border);background:var(--card);color:var(--text);font-size:.88rem;font-weight:550;transition:border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease)}
.btn-ghost:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-soft);transform:translateY(-1px)}
.btn-ghost:active{transform:translateY(0)}
.btn-ghost.active{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 6px 16px -8px var(--primary)}
.tool-quick-actions{display:flex;flex-wrap:wrap;gap:8px}
.tool-quick-actions .btn-ghost.active{background:var(--primary);border-color:var(--primary);color:#fff}
.tool-segmented{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.tool-segmented .btn-ghost.active{background:var(--primary);border-color:var(--primary);color:#fff}
.tool-input-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr));gap:12px;align-items:start}
.tool-input-grid-3{display:grid;grid-template-columns:1fr 48px 1fr;gap:8px;align-items:start}
.tool-check-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));gap:8px}
.tool-check-card{display:flex;align-items:center;gap:10px;min-height:44px;padding:8px 11px;border:1px solid var(--border);border-radius:10px;background:var(--card);cursor:pointer;color:var(--text);font:inherit;word-break:break-word;transition:border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease)}
.tool-check-card:hover{border-color:var(--primary);background:var(--primary-soft)}
.tool-check-card input[type=checkbox]{width:18px;height:18px;flex:0 0 auto;accent-color:var(--primary);cursor:pointer}
.tool-chart-box{width:100%;overflow:hidden;border:1px solid var(--border);border-radius:12px;background:var(--bg-subtle)}
.tool-swap-btn{width:48px;height:44px;min-width:48px;padding:0;border-radius:10px;font-size:1.15rem;align-self:end}
.tool-bar{height:16px;border-radius:999px;background:var(--border);overflow:hidden}
.tool-bar-fill{height:100%;width:100%;border-radius:999px;transition:background .2s ease}
.tool-scale{position:relative;height:18px;border-radius:999px;overflow:hidden;background:var(--border)}
.tool-scale-marker{position:absolute;top:-3px;width:4px;height:24px;background:var(--text);border-radius:2px;left:50%;transform:translateX(-50%)}
.tool-scale-caption{display:flex;justify-content:space-between;font-size:.75rem;color:var(--muted)}
.tool-table-wrap{border:1px solid var(--border);border-radius:12px;overflow:hidden;background:var(--card);box-shadow:var(--shadow-xs)}
.tool-table-wrap th{background:var(--primary-soft)}
.tool-table-head{display:grid;grid-template-columns:48px minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);gap:8px;align-items:center;padding:10px 12px;font-size:.78rem;font-weight:600;color:var(--muted);border-bottom:1px solid var(--border);background:var(--bg-subtle)}
.tool-table-body{max-height:260px;overflow-y:auto}
.tool-table-row{display:grid;grid-template-columns:48px minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);gap:8px;align-items:center;padding:8px 12px;border-bottom:1px solid var(--border);font-size:.88rem;transition:background var(--dur-fast) var(--ease)}
.tool-table-row:hover{background:var(--primary-soft)}
.tool-upload-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.tool-file-input{min-height:44px;display:inline-flex;align-items:center;padding:8px 12px;border:1px dashed var(--border);border-radius:10px;background:var(--card);color:var(--muted);font-size:.9rem;flex:1 1 200px;min-width:0;max-width:100%}
.tool-canvas-preview{max-width:100%;max-height:360px;border:1px solid var(--border);border-radius:10px;display:none}
.tool-select{width:100%;min-height:44px;padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:var(--card);color:var(--text);font:inherit}
.tool-input{width:150px;min-height:44px;padding:8px 10px;border-radius:10px;border:1px solid var(--border);background:var(--bg-subtle);color:var(--text);font:inherit}
@media (min-width:900px){#tool{display:grid;grid-template-columns:minmax(320px,420px) minmax(0,1fr);gap:24px;align-items:start}#tool > .tool-form:only-child{grid-column:1 / -1}#tool > .tool-outputs:only-child{grid-column:1 / -1}#tool > .tool-form:not(:only-child){position:sticky;top:calc(var(--header-h) + 16px)}.tool-results{min-width:0}}
.site-footer{margin-top:40px;padding:32px 0 36px;border-top:1px solid var(--border);background:var(--card)}
.footer-inner{display:grid;gap:18px}
.footer-top{display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between}
.footer-brand{font-weight:700;letter-spacing:-.01em}
.footer-tagline{color:var(--muted);font-weight:400;margin-left:6px}
.footer-nav{display:flex;flex-wrap:wrap;gap:6px}
.footer-nav a{padding:6px 10px;border-radius:999px;color:var(--muted);font-size:.88rem;font-weight:500;transition:background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);min-height:32px;min-width:32px;display:inline-flex;align-items:center;justify-content:center}
.footer-nav a:hover{background:var(--bg-subtle);color:var(--text);text-decoration:none}
.footer-note{color:var(--muted);font-size:.82rem;line-height:1.6;margin:0;border-top:1px solid var(--border);padding-top:16px}
@media (min-width:720px){.footer-inner{gap:20px}.footer-note{padding-top:18px}}
.ad-slot{min-height:280px;margin:16px 0;border:1px dashed var(--border);border-radius:12px;background:var(--bg-subtle);display:grid;place-items:center;color:var(--muted);font-size:.82rem}
.ad-leaderboard{min-height:280px}
.ad-after-tool{margin-top:18px}
.ad-page-bottom{margin-bottom:8px}
.tool-list{display:flex;flex-direction:column;gap:8px}
.tool-empty{color:var(--muted);text-align:center;padding:20px;background:var(--card);border:1px dashed var(--border);border-radius:12px}
.tool-status-error{font-size:.85rem;color:var(--danger);min-height:1.2rem}
.tool-input-sm{width:72px;min-height:44px;padding:6px 8px;border-radius:8px;border:1px solid var(--border);background:var(--bg-subtle);color:var(--text);font:inherit}
.tool-display-lg{font-size:clamp(2rem, 6vw, 3rem);text-align:center;letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-weight:800}
.tool-hint-center{text-align:center}
.tool-quick-actions-center{justify-content:center}
.diff-table{width:100%;border-collapse:collapse;font-family:var(--font-mono);font-size:.84rem}
.diff-table td{border:1px solid var(--border);padding:6px 10px;text-align:left;white-space:pre-wrap;word-break:break-all}
.diff-table .diff-mark{width:28px;text-align:center;font-weight:700;color:var(--muted);user-select:none}
.diff-add{background:color-mix(in srgb, var(--success) 10%, transparent)}
.diff-del{background:color-mix(in srgb, var(--danger) 10%, transparent)}
[dir="rtl"] .search-box .search-icon{left:auto;right:18px}
[dir="rtl"] .search-clear{right:auto;left:8px}
[dir="rtl"] .tool-search-input{padding:16px 50px 16px 52px}
@media (max-width:640px){.hero{padding:32px 0 20px}.hero h1{font-size:1.85rem}.tool-shell{padding:16px;border-radius:16px}.tool-desc{font-size:.96rem}.site-footer{margin-top:24px;padding:24px 0 28px}}
@media (max-width:640px){
  .footer-nav a{min-height:44px;min-width:44px;padding:10px 12px}
}
@media (max-width:719px){
  .ad-slot{min-height:250px}
}
.tool-color-layout{display:flex;gap:12px;flex-wrap:wrap}
.tool-color-left{flex:1 1 240px;display:flex;flex-direction:column;gap:10px}
.tool-color-vals{display:flex;flex-direction:column;gap:6px;flex:1 1 200px}
.tool-color-val-row{display:flex;align-items:center;gap:8px}
.tool-color-code{flex:1;background:var(--card);padding:8px 10px;border-radius:10px;font-size:.88rem;border:1px solid var(--border);word-break:break-all;font-family:var(--font-mono)}
.tool-slider-row{display:flex;align-items:center;gap:8px;min-height:44px}
.tool-range-flex{flex:1;min-height:44px}
.tool-habit-wrap{display:grid;gap:10px;max-width:620px}
.tool-habit-input-row{display:flex;gap:8px;flex-wrap:wrap}
.tool-habit-list{display:grid;gap:8px}
.tool-habit-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;padding:10px;border:1px solid var(--border);border-radius:10px;background:var(--card)}
.tool-game-col{display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:4px;min-height:220px;background:var(--bg-subtle);border:1px solid var(--border);border-radius:12px;padding:10px;cursor:pointer}
.tool-word-grid{display:grid;gap:2px;justify-content:center;font-family:var(--font-mono);font-weight:700}
.tool-whack-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.tool-whack-hole{aspect-ratio:1;min-height:44px;border-radius:14px;border:1px solid var(--border);background:var(--card);font-size:2rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform var(--dur-fast) var(--ease)}
.tool-whack-hole:active{transform:scale(.96)}
.tool-stack{display:flex;flex-direction:column;gap:16px;width:100%;max-width:720px;margin:0 auto}
.tool-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.tool-status{min-height:1.3rem;color:var(--muted);font-size:.9rem}
.choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:12px}
.choice-card{position:relative;display:flex;align-items:center;gap:12px;width:100%;min-height:88px;padding:16px;border:1px solid var(--border);border-radius:12px;background:var(--bg-subtle);color:var(--text);font:inherit;text-align:start;line-height:1.6;transition:border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease)}
.choice-card:hover{border-color:var(--primary);box-shadow:var(--shadow-md);transform:translateY(-1px)}
.choice-card.selected{border-color:var(--primary);background:var(--primary-soft)}
.country-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,170px),1fr));gap:10px;margin:0;padding:0;list-style:none}
.country-card{display:flex;align-items:center;gap:10px;min-height:58px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--bg-subtle);color:var(--text)}
.country-code{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:42px;height:32px;border:1px solid var(--border);border-radius:8px;background:var(--card);font-family:var(--font-mono);font-size:.82rem;font-weight:750}
.country-name{display:flex;flex-direction:column;gap:2px;min-width:0}
.country-name strong{overflow-wrap:anywhere;line-height:1.35}
.country-region{color:var(--muted);font-size:.78rem;line-height:1.3}
.tool-textarea-xs{min-height:96px}
.tool-monitor-overlay{position:fixed;inset:0;z-index:99999}
.tool-2048-cell{display:flex;align-items:center;justify-content:center;aspect-ratio:1;border-radius:8px;font-weight:700;font-size:1.5rem;background:#1f2937;color:#4b5563}
.tool-2048-cell[data-v="1024"],.tool-2048-cell[data-v="2048"]{font-size:1.1rem}
.tool-2048-cell[data-v="2"]{background:#eef2ff;color:#1e293b}
.tool-2048-cell[data-v="4"]{background:#e0e7ff;color:#1e293b}
.tool-2048-cell[data-v="8"]{background:#c7d2fe;color:#1e293b}
.tool-2048-cell[data-v="16"]{background:#a5b4fc;color:#fff}
.tool-2048-cell[data-v="32"]{background:#818cf8;color:#fff}
.tool-2048-cell[data-v="64"]{background:#6366f1;color:#fff}
.tool-2048-cell[data-v="128"]{background:#4f46e5;color:#fff}
.tool-2048-cell[data-v="256"]{background:#7c3aed;color:#fff}
.tool-2048-cell[data-v="512"]{background:#9333ea;color:#fff}
.tool-2048-cell[data-v="1024"]{background:#a21caf;color:#fff}
.tool-2048-cell[data-v="2048"]{background:#db2777;color:#fff}
.tool-hanoi-disk{width:calc(30px + var(--w) * 26px);height:22px;border-radius:6px;background:var(--disk,#6366f1);box-shadow:0 2px 4px rgba(0,0,0,.2)}
.tool-mood-day{display:flex;flex-direction:column;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:1px solid var(--border);border-radius:10px;background:var(--card);color:var(--text);cursor:pointer;font-size:1.05rem}
.tool-mood-day.today{outline:2px solid var(--primary);outline-offset:-2px}
.tool-mood-emoji{font-size:1.1rem}
.tool-word-cell{display:flex;align-items:center;justify-content:center;aspect-ratio:1;min-width:0;overflow:hidden;border:1px solid var(--border);border-radius:4px;background:var(--card);color:var(--text);font-size:14px}
@media (min-width:1025px){#tool > .tool-stack:only-child{grid-column:1 / -1}}
.tool-field .inline{display:flex;gap:12px;flex-wrap:wrap}
.tool-output-textarea-sm{font-size:.9rem}
.tool-code-textarea{font-family:var(--font-mono)}
.tool-note-live{color:var(--muted);font-size:.88rem;min-height:1.2rem}
.tool-segmented-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.mtg-header{width:44px;height:44px;min-height:44px;margin:0}
@media (min-width: 769px){.mtg-header{width:20px;height:20px;min-height:20px}}
.tool-field .tool-range{flex:1;width:100%;margin:0}
.tool-stack > .tool-outputs:last-child{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.tool-outputs:has(.tool-field){display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:12px}
.tool-habit-cells{display:grid;grid-template-columns:repeat(7,44px);gap:2px;grid-column:1 / span 2;min-width:0;max-width:100%;overflow-x:auto}
.tool-habit-cell{width:44px;height:44px;flex:0 0 auto;border-radius:6px;border:1px solid var(--border);background:var(--bg-subtle);cursor:pointer;font-size:.7rem;color:var(--muted);display:flex;align-items:center;justify-content:center}
.tool-habit-cell.active{background:var(--primary);color:#fff;border-color:var(--primary)}
.tool-habit-stat{grid-column:2;font-size:.85rem;text-align:right;color:var(--muted);white-space:nowrap}
.tool-habit-del{grid-column:1 / span 2;justify-self:start;min-width:44px;min-height:44px;padding:4px 14px;border-radius:6px;border:1px solid var(--border);background:var(--bg-subtle);cursor:pointer;color:var(--muted)}
.tool-og-wrap{display:flex;flex-direction:column;gap:12px}
.tool-og-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.tool-world-card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:12px;text-align:center}
.tool-world-name{font-weight:600;margin-bottom:4px}
.tool-world-time{font-size:1.2rem;font-variant-numeric:tabular-nums}
.tool-world-date{color:var(--muted);font-size:.8rem;margin-top:2px}
.tool-aim-wrap{display:grid;gap:10px;max-width:560px}
.tool-aim-canvas{width:100%;max-width:540px;height:auto;background:var(--bg-subtle);border:1px solid var(--border);border-radius:12px;cursor:crosshair;touch-action:none;display:block}
.tool-binary-wrap{display:flex;flex-direction:column;gap:12px;max-width:340px;margin:0 auto;align-items:center}
.tool-binary-canvas{background:#0f172a;border-radius:12px;max-width:100%;display:block}
.tool-connect-wrap{display:grid;gap:10px;max-width:480px}
.tool-connect-canvas{width:100%;max-width:420px;height:auto;background:var(--card);border:1px solid var(--border);border-radius:12px;cursor:pointer;touch-action:none;display:block}
.tool-countdown-display{font-size:2.6rem;text-align:center;letter-spacing:2px;margin-top:8px;font-variant-numeric:tabular-nums}
.tool-mouse-area{text-align:center;padding:24px 12px;border:2px dashed var(--border);border-radius:14px;background:var(--card);font-size:1.1rem;min-height:4rem;display:flex;align-items:center;justify-content:center;cursor:crosshair}
.tool-pixel-canvas{max-width:100%;max-height:400px;border:1px solid var(--border);border-radius:10px;margin-top:12px;display:none;width:100%;height:auto}
.tool-rps-result{font-size:1.3rem;min-height:2rem;text-align:center;margin-bottom:10px}
.tool-sudoku-actions{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
.tool-sudoku-msg{text-align:center;margin-top:8px}
.tool-tod-wrap{display:flex;flex-direction:column;gap:14px;margin:0 auto;max-width:480px}
.tool-tod-box{min-height:4rem;padding:18px 16px;border-radius:12px;background:var(--card);border:1px solid var(--border);font-size:1.05rem;display:flex;align-items:center;justify-content:center;text-align:center}

/* --- Legacy widget styles preserved for compatibility (auto-appended) --- */

.tool-canvas-preview{max-width:100%;max-height:360px;border:1px solid var(--border);border-radius:10px;display:none}

.tool-canvas-resizer{max-width:100%;max-height:420px;border-radius:10px;background:repeating-conic-gradient(#e5e7eb 0 25%, #fff 0 50%) 0 0/20px 20px}

.tool-canvas-flipper{width:100%;max-width:520px;border:1px solid var(--border);border-radius:12px;background:var(--bg);display:none}

.tool-color-input{width:44px;height:44px;padding:2px;border:1px solid var(--border);border-radius:8px;background:var(--bg);cursor:pointer;box-sizing:border-box}

.tool-canvas{max-width:100%;max-height:420px;border:1px solid var(--border);border-radius:10px;margin-top:12px}

.tool-canvas-award{max-width:100%;max-height:440px;border:1px solid var(--border);border-radius:10px;margin-top:12px;display:none}

.tool-result{margin-top:12px;display:flex;flex-direction:column;gap:10px;align-items:flex-start}

.tool-display-card{text-align:center;padding:32px 16px;background:var(--card);border:1px solid var(--border);border-radius:14px}

.tool-display-key{font-size:2.6rem;font-weight:800;word-break:break-all;min-height:3rem}

.tool-display-code{font-size:.95rem;color:var(--muted);margin-top:8px;font-family:monospace}

.tool-status-badge{display:inline-block;margin-top:12px;padding:4px 12px;border-radius:20px;background:var(--bg);border:1px solid var(--border);font-size:.85rem}

.tool-key-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:6px}

.tool-tile-btn{display:block;padding:0;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--card);cursor:pointer;min-height:44px}

.tool-tile-canvas{display:block;width:100%;height:auto;border-radius:8px}

.tool-display-sm{font-family:monospace;font-size:.9rem;text-align:center}

.tool-color-swatch{width:56px;height:56px;border-radius:10px;border:2px solid var(--border);cursor:pointer}

.tool-settings{display:flex;flex-direction:column;gap:8px}

.tool-seat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;margin-top:12px}

.tool-seat-cell{padding:8px;border:1px solid var(--border);border-radius:8px;background:var(--card);text-align:center;min-height:44px;display:flex;align-items:center;justify-content:center}

.tool-timetable{width:100%;border-collapse:collapse}

.tool-timetable th,.tool-timetable td{border:1px solid var(--border);padding:8px 10px;text-align:center;min-height:44px}

.tool-timetable th{background:var(--bg);font-weight:600}

.tool-game-top{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}

.tool-game-score{font-size:1.05rem;font-weight:600}

.tool-game-status{min-height:1.5rem;font-weight:600;text-align:center}

.tool-game-board{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;background:#374151;border-radius:12px;padding:8px;touch-action:none}

.tool-wordle-grid{display:grid;gap:6px;grid-template-columns:repeat(5,52px)}

.tool-wordle-cell{width:50px;height:50px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:1.3rem;font-weight:800;border:1px solid var(--border);text-transform:uppercase}

.tool-pulse{width:56px;height:56px;border-radius:50%;background:var(--card);border:2px solid var(--border);margin:14px auto;transition:transform .08s,background .08s}

.tool-slot-reels{display:flex;gap:10px;font-size:3rem;background:#0f172a;padding:18px 22px;border-radius:14px}

.tool-slot-cell{width:64px;height:64px;display:flex;align-items:center;justify-content:center;background:#1e293b;border-radius:10px}

.tool-breath-circle{width:180px;height:180px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--primary-2));display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.3rem;font-weight:700;transition:transform 4s ease-in-out,border-radius .3s;box-shadow:0 10px 40px color-mix(in srgb,var(--primary) 45%,transparent)}

.tool-breath-phase{font-size:1.5rem;font-weight:700;min-height:2rem}

.tool-info-grid{display:grid;gap:8px}

.tool-info-row{display:flex;justify-content:space-between;gap:10px;padding:8px 10px;border-radius:8px;background:var(--card);border:1px solid var(--border);font-size:.9rem}

.tool-info-key{color:var(--muted);flex-shrink:0}

.tool-info-value{font-weight:600;word-break:break-all}

.tool-memory-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}

.tool-memory-cell{aspect-ratio:1;border-radius:10px;display:flex;align-items:center;justify-content:center;min-width:0;font-size:2rem}

.tool-memory-cell-open{background:var(--primary-soft);border:1px solid var(--border)}

.tool-memory-cell-closed{background:var(--primary);cursor:pointer}

.tool-mine-board{display:grid;gap:2px;justify-content:start;max-width:100%;overflow-x:auto;padding-bottom:4px;touch-action:manipulation}

.tool-mine-cell{display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:1px solid var(--border);border-radius:6px;background:var(--card);color:var(--text);font-weight:700;font-size:.95rem;cursor:pointer}

.tool-mine-cell.flagged{background:color-mix(in srgb,var(--warning) 22%,transparent)}

.tool-mine-cell.mine{background:color-mix(in srgb,var(--danger) 18%,transparent)}

.tool-mine-cell.open{background:var(--bg);cursor:default}

.tool-go-board{display:grid;grid-template-columns:repeat(15,1fr);gap:1px;background:var(--border);border:1px solid var(--border);border-radius:8px;overflow:hidden;touch-action:manipulation}

.tool-go-cell{aspect-ratio:1;border-radius:50%;margin:1px;cursor:pointer}

.tool-display-word{font-size:1.5rem;font-weight:800;letter-spacing:.12em;min-height:3rem;max-width:100%;overflow-wrap:anywhere;text-align:center;line-height:1.5}

.tool-hang{font-size:1.2rem;min-height:2rem}

.tool-canvas-avatar{max-width:256px;border-radius:12px;margin-top:12px;border:1px solid var(--border)}

.tool-svg-box{margin-top:12px;max-width:100%;overflow:hidden}

.tool-score-row{display:flex;gap:14px;font-size:.9rem}

.tool-game-canvas{width:100%;border:1px solid var(--border);border-radius:12px;background:var(--bg)}

.tool-tic-board{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;width:100%;max-width:300px;margin:0 auto}

.tool-tic-cell{font-size:2.2rem;font-weight:700;border-radius:12px;border:1px solid var(--border);background:var(--card);cursor:pointer;aspect-ratio:1;min-width:0}

.tool-value-sm{min-width:70px;font-family:monospace}

.tool-canvas-sig{width:100%;max-width:720px;border:1px dashed var(--border);border-radius:10px;margin-top:12px;touch-action:none;background:#fff}

.tool-slide-board{display:grid;gap:6px;justify-content:center;max-width:340px;margin:0 auto}

.tool-slide-cell{width:72px;height:72px;padding:0;border:1px solid var(--border);border-radius:10px;background:var(--card);color:var(--text);font-size:1.4rem;font-weight:700;display:flex;align-items:center;justify-content:center;cursor:pointer}

.tool-slide-cell.empty{border-color:transparent;background:transparent;color:transparent;cursor:default}

.tool-question-sm{font-weight:700;min-height:1.5rem}

.tool-options{display:flex;flex-direction:column;gap:8px}

.tool-option-btn{min-height:44px;padding:10px 12px;border-radius:8px;border:1px solid var(--border);background:var(--card);cursor:pointer;text-align:left}

.tool-compare-wrap{display:flex;gap:14px;flex-wrap:wrap;margin-top:12px}

.tool-compare-panel{flex:1 1 260px;min-width:0}

.tool-title-sm{font-weight:700;min-width:140px;text-align:center}

.tool-mood-grid{display:grid;grid-template-columns:repeat(7,44px);gap:2px;max-width:100%;overflow-x:auto}

.tool-legend{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;font-size:.9rem}

.tool-legend-item{font-size:.8rem}

.tool-week-head{text-align:center;font-size:.8rem;color:var(--muted);font-weight:600}

.tool-title-center{font-size:1.1rem;font-weight:700;text-align:center}

.tool-key-btn{min-height:44px;padding:8px 4px;border-radius:8px;border:1px solid var(--border);background:var(--card);font-size:.72rem;color:var(--muted);cursor:default;transition:background .15s,color .15s,transform .1s}

.tool-key-btn.active{background:var(--accent);color:#fff;transform:translateY(-2px)}

.tool-output-log{font-family:monospace;font-size:.8rem;max-height:140px;overflow:auto;white-space:pre-wrap}

.tool-video{width:100%;max-width:480px;border-radius:12px;border:1px solid var(--border);background:#000;aspect-ratio:16/9;object-fit:cover}

.tool-shot{max-width:240px;border-radius:10px;border:1px solid var(--border);display:none}

.tool-action-row{display:none;gap:8px;flex-wrap:wrap;margin-top:10px}

.tool-input-textarea{width:100%;min-height:140px;padding:10px 12px;border-radius:8px;border:1px solid var(--border);background:var(--card);color:var(--text);font:inherit;resize:vertical;box-sizing:border-box}

.tool-input-textarea-sm{min-height:120px}

.tool-input-textarea-md{min-height:200px}

.tool-input-textarea-lg{min-height:170px}

.tool-input-textarea-xl{min-height:180px}

.tool-result-hero{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:14px;border:1px solid var(--border);border-radius:8px;background:var(--bg)}

.tool-result-cell{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}

.tool-stat-value{font-weight:700;font-size:1.05rem;word-break:break-word;min-width:0}

.tool-rate-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}

.tool-preview-box{border:1px solid var(--border);border-radius:8px;padding:12px;overflow:auto;background:var(--bg)}

.tool-preview-box .md-preview{line-height:1.6}

.tool-preview-box .md-preview pre{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:10px;overflow:auto}

.tool-preview-box .md-preview code{background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:1px 5px}

.tool-preview-box .md-preview table{border-collapse:collapse;width:100%}

.tool-preview-box .md-preview th,.tool-preview-box .md-preview td{border:1px solid var(--border);padding:6px 8px;text-align:left}

.tool-emoji-search{min-height:44px;padding:10px 12px;margin-bottom:10px;width:100%;box-sizing:border-box;border:1px solid var(--border);border-radius:10px;background:var(--card);color:var(--text);font:inherit}

.tool-emoji-grid{display:flex;flex-wrap:wrap;gap:6px}

.tool-emoji-btn{font-size:1.5rem;width:48px;height:48px;border:1px solid var(--border);border-radius:10px;background:var(--card);cursor:pointer;transition:border-color .15s,background .15s}

.tool-emoji-btn:hover{border-color:var(--primary);background:var(--primary-soft)}

.tool-inline-field{display:inline-flex;align-items:center;gap:6px;min-height:44px;margin-inline-end:12px}

.tool-inline-input{width:80px;min-height:44px;padding:6px 8px;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text);font:inherit;box-sizing:border-box}

.tool-crop-controls{display:none;flex-direction:column;gap:10px;margin-top:12px}

.tool-swatch-grid{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}

.tool-swatch{width:72px;height:72px;border-radius:10px;border:1px solid var(--border);display:flex;align-items:flex-end;justify-content:center;padding:4px;font-size:11px;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.6);cursor:pointer}

.tool-drop-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:150px;padding:22px 14px;border:2px dashed var(--border);border-radius:8px;background:var(--bg);cursor:pointer;text-align:center;outline:none}

.tool-drop-title{font-weight:700;font-size:1.05rem;word-break:break-word}

.tool-drop-hint{font-size:13px;opacity:.75;word-break:break-word}

.tool-file-name{display:none;font-size:13px;word-break:break-all;padding:8px 10px;border-radius:8px;border:1px solid var(--border);background:var(--card)}

.tool-compare-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}

.tool-preview-img{display:none;max-width:100%;max-height:280px;object-fit:contain;border-radius:8px;border:1px solid var(--border);background:var(--bg)}

.tool-preview-meta{font-size:13px;opacity:.85;word-break:break-word;min-height:1.2em}

.tool-control-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}

.tool-color-input{width:44px;height:44px;padding:2px;border:1px solid var(--border);border-radius:8px;background:var(--card);box-sizing:border-box;cursor:pointer}

.tool-qr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;margin-top:14px;min-width:0}

.tool-qr-card{display:flex;flex-direction:column;gap:6px;align-items:center;cursor:pointer;min-width:0;max-width:100%}

.tool-qr-card .tool-hint{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}

.tool-qr-canvas{max-width:min(320px,100%);width:min(320px,100%);height:auto;aspect-ratio:1/1;max-height:none;border:1px solid var(--border);border-radius:12px;background:#fff;display:block;margin:16px auto;image-rendering:pixelated}
.tool-canvas-preview.tool-qr-canvas{max-height:none;aspect-ratio:1/1}

.tool-swatch-btn{width:56px;height:56px;border-radius:8px;border:1px solid var(--border);cursor:pointer;padding:0}

.tool-swatch-btn-wide{min-width:120px;min-height:56px;border-radius:8px;border:1px solid var(--border);cursor:pointer;padding:8px;font-weight:700}

.tool-results{min-width:0}

.tool-results-body{min-width:0}

.tool-output-active{border-color:var(--primary);background:var(--primary-soft)}

.tool-output-textarea-md{min-height:200px}

.tool-output-textarea-lg{min-height:170px}

.tool-output-textarea-xl{min-height:240px}

.tool-color-preview{height:64px;border-radius:10px;border:1px solid var(--border)}

.tool-output-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}

.tool-output-card{display:flex;flex-direction:column;gap:6px;min-width:0;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--bg)}

.tool-question{font-size:1.8rem;font-weight:800;text-align:center;min-height:3rem}

.tool-input-center{text-align:center}

.tool-feedback{font-weight:600;min-height:1.5rem;text-align:center}

.tool-progress{height:8px;background:var(--border);border-radius:4px;overflow:hidden}

.tool-progress-bar{height:100%;background:var(--primary);transition:width .3s}

.tool-output-mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}

.tool-control-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;width:100%}

.tool-grow{flex:1 1 auto;min-width:0}

.tool-password-input{width:100%;min-height:44px;padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:var(--card);color:var(--text);font:inherit;outline:none;transition:border-color .15s,box-shadow .15s}

.tool-password-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}

.tool-eye-btn{width:48px;height:48px;min-width:48px;padding:0;display:grid;place-items:center;border-radius:10px;font-size:20px}

.tool-strength-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}

.tool-meter{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}

.tool-meter-seg{height:10px;border-radius:6px;background:var(--border);tran

.tool-criterion-mark{flex:0 0 auto;font-weight:700}

.tool-tip-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}

.tool-tip-item{display:flex;align-items:flex-start;gap:8px;font-size:.92rem;color:var(--muted);word-break:break-word}

.tool-tip-dot{flex:0 0 auto}

.tool-preview-stack{display:flex;flex-direction:column;gap:10px}

.tool-preview-photo{max-width:100%;max-height:300px;border-radius:10px;border:1px solid var(--border);display:block}

.tool-download-btn{align-self:flex-start;min-height:44px;display:inline-flex;align-items:center;justify-content:center;padding:0 16px}

.tool-editor-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:12px;align-items:start}

.tool-editor-pane{min-width:0;display:flex;flex-direction:column;gap:8px}

.tool-diff-box{max-height:520px}

.tool-regex-preview{min-height:110px;white-space:pre-wrap;word-break:break-word;overflow:auto}

.tool-section{display:flex;flex-direction:column;gap:10px}

.tool-section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}

.tool-section-title{display:flex;align-items:center;gap:8px;min-width:0}

.tool-dot{display:inline-block;width:10px;height:10px;border-radius:50%;flex:none}

.tool-subtotal{font-size:13px;color:var(--muted);font-weight:600}

.tool-balance-wrap{display:flex;flex-direction:column;gap:8px}

.tool-bar-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}

.tool-bar-label{font-size:13px;color:var(--muted);flex:0 0 auto;min-width:0}

.tool-bar-track-wrap{flex:1 1 160px;min-width:0}

.tool-bar-track{position:relative;height:20px;border-radius:8px;background:var(--bg);border:1px solid var(--border);overflow:hidden;direction:ltr}

.tool-bar-fill-absolute{position:absolute;top:0;left:0;height:100%;width:0;transition:width .2s ease}

.tool-bar-value{font-size:13px;font-weight:700;min-width:76px;text-align:right}


.tool-net-delta{font-size:14px;font-weight:700;padding:2px 0}

.tool-advice-box{border:1px solid var(--border);border-left:4px solid var(--success);border-radius:8px;background:var(--card);padding:12px 14px;font-size:14px;line-height:1.5}

.tool-table-head-3{display:grid;grid-template-columns:56px minmax(0,1fr) 72px;gap:8px;align-items:center;padding:8px 10px;font-size:.8rem;color:var(--muted);border-bottom:1px solid var(--border)}

.tool-table-row-3{display:grid;grid-template-columns:56px minmax(0,1fr) 72px;gap:8px;align-items:center;padding:6px 10px;border-bottom:1px solid var(--border);font-size:.88rem}

.tool-table-value{text-align:right;font-weight:600;word-break:break-word}


.tool-table-head-3-44{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 44px;gap:6px;align-items:center;padding:8px 10px;font-size:.8rem;color:var(--muted);border-bottom:1px solid var(--border)}

.tool-table-row-3-44{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 44px;gap:6px;align-items:center;padding:6px 10px;border-bottom:1px solid var(--border)}

.tool-table-name{word-break:break-word;font-size:.9rem}

.tool-table-value-plain{text-align:right;word-break:break-word}

.tool-controls-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:10px}

.tool-field-label{display:flex;align-items:center;gap:8px;min-height:44px;font-weight:600;font-size:.9rem;color:var(--muted)}

.tool-grid-wrap{overflow-x:auto;margin:12px 0}

.tool-editor-grid-table{border-collapse:collapse;min-width:320px}

.tool-table-cell-input{border:1px solid var(--border);padding:2px}

.tool-table-input{width:120px;max-width:100%;min-height:44px;padding:8px;border:1px solid transparent;border-radius:6px;background:var(--bg);color:var(--text);font:inherit}

.tool-inline-input-wide{width:140px}

}

.tool-error{color:var(--danger);font-weight:600;padding:10px 12px;border:1px solid color-mix(in srgb,var(--danger) 30%,transparent);border-radius:8px;background:color-mix(in srgb,var(--danger) 7%,transparent)}

.tool-output-html{overflow-x:auto;border:1px solid var(--border);border-radius:8px;background:var(--card)}

.tool-split-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:10px;min-height:380px}

.tool-split-pane{width:100%;height:100%;min-width:0;min-height:380px;padding:10px;border-radius:10px;border:1px solid var(--border);background:var(--card);font-size:.85rem;resize:vertical}

.tool-split-frame{width:100%;height:100%;min-width:0;min-height:380px;border:1px solid var(--border);border-radius:10px;background:#fff}

.tool-json-tree{border-radius:10px;padding:12px;font-family:ui-monospace,Consolas,monospace;font-size:.9rem;line-height:1.7}

.tool-icon-btn{width:44px;height:44px;flex:0 0 44px;display:grid;place-items:center;padding:0;font-size:14px}

.tool-editor-textarea{min-height:340px}

.tool-editor-panes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start}

.tool-editor-pane{min-width:0;display:flex;flex-direction:column;gap:8px}

.tool-editor-preview{padding:14px;min-height:340px;background:var(--bg);color:var(--text);word-break:break-word}

.tool-status-bar{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;font-size:.85rem;color:var(--muted)}

.tool-status-chip{display:flex;gap:6px;align-items:center;min-height:24px}

.tool-status-value{font-weight:600;color:var(--text)}

.tool-status-saved{margin-left:auto;color:var(--success)}

.tool-card-date{font-size:.8rem;color:var(--muted)}

.tool-habit-name{min-width:0;grid-column:1;font-size:.9rem;font-weight:600;word-break:break-all}

.tool-og-field{display:flex;flex-direction:column;gap:4px;font-size:.9rem}

.tool-og-colors{display:flex;gap:14px;align-items:center;flex-wrap:wrap}

.tool-og-color{display:flex;align-items:center;gap:6px;font-size:.9rem;min-height:44px}

.tool-og-canvas{max-width:100%;border-radius:12px;border:1px solid var(--border);width:100%;height:auto;display:block}

.tool-og-info{font-size:.85rem;color:var(--muted)}

.tool-todo-wrap{display:flex;flex-direction:column;gap:12px;max-width:440px;margin:0 auto;min-width:0;width:100%}

.tool-todo-row{display:flex;gap:8px;min-width:0}

.tool-todo-counter{font-size:.9rem;color:var(--muted)}

.tool-todo-status{font-size:.85rem;color:var(--danger);min-height:1.2rem}

.tool-todo-list{display:flex;flex-direction:column;gap:6px}

.tool-todo-item{display:flex;gap:8px;align-items:center;padding:8px 10px;border-radius:8px;background:var(--card);border:1px solid var(--border);min-width:0}

.tool-todo-check{display:flex;align-items:center;justify-content:center;width:44px;height:44px;flex:0 0 auto;cursor:pointer}

.tool-todo-check input{width:20px;height:20px;flex:0 0 auto;accent-color:var(--primary)}

.tool-todo-text{flex:1;min-width:0;word-break:break-all;cursor:pointer}

.tool-todo-text.done{text-decoration:line-through;color:var(--muted)}

.tool-todo-del{flex:0 0 auto;width:44px;height:44px;border:none;background:transparent;color:var(--danger);cursor:pointer;font-size:1rem;border-radius:8px}

.tool-todo-del:hover{background:color-mix(in srgb,var(--danger) 10%,transparent)}

.tool-todo-clear{min-height:44px;background:transparent!important;color:var(--muted)!important;border:1px solid var(--border)!important}

.tool-ruler-wrap{display:flex;flex-direction:column;gap:10px;max-width:420px}

.tool-ruler-row{display:flex;gap:10px;flex-wrap:wrap}

.tool-ruler-info{font-size:.9rem;color:var(--muted)}

.tool-ruler{position:fixed;z-index:99999;background:rgba(99,102,241,.9);color:#fff;cursor:move;user-select:none;touch-action:none}

.tool-ruler.h{left:0;top:0;height:34px}

.tool-ruler.v{left:0;top:0;width:34px}

.tool-ruler-mark{position:absolute;font-size:9px;line-height:1}

.tool-simon-wrap{display:flex;flex-direction:column;gap:12px;max-width:340px;margin:0 auto;align-items:center}

.tool-simon-status{font-weight:700;min-height:1.5rem;text-align:center}

.tool-simon-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:280px;height:280px}

.tool-simon-btn{border-radius:16px;border:none;cursor:pointer;min-height:44px}

.tool-simon-info{color:var(--muted);font-size:.9rem;min-height:1.2rem;text-align:center}

.tool-snake-wrap{display:flex;flex-direction:column;gap:12px;max-width:340px;margin:0 auto}

.tool-snake-top{display:flex;justify-content:space-between;align-items:center;gap:10px}

.tool-snake-score{font-weight:700}

.tool-snake-canvas{width:100%;max-width:400px;aspect-ratio:1;margin:0 auto;background:#0f172a;border-radius:12px;display:block}

.tool-snake-status{text-align:center;font-weight:600;min-height:1.4rem}

.tool-world-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(136px,1fr));gap:12px}

.tool-aim-stats{display:flex;flex-wrap:wrap;gap:14px;font-size:.9rem}

.tool-binary-labels{display:flex;justify-content:space-between;width:220px;max-width:100%;font-size:.85rem;color:var(--muted)}

.tool-binary-text{font-size:1.4rem;font-weight:700;font-family:ui-monospace,Consolas,monospace}

.tool-connect-status{font-size:.95rem;font-weight:600;min-height:1.4rem}

.tool-countdown-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}

.tool-mouse-wrap{display:flex;flex-direction:column;gap:12px;max-width:420px}

.tool-mouse-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;font-size:.9rem}

.tool-mouse-row{display:flex;justify-content:space-between;gap:8px;padding:8px 10px;border-radius:8px;background:var(--card);border:1px solid var(--border)}

.tool-mouse-key{color:var(--muted)}

.tool-mouse-val{font-weight:600}

.tool-pixel-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}

.tool-rsentence-note{font-size:13px;line-height:1.6;color:var(--muted);word-break:break-word}

.tool-rps-btns{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}

.tool-rps-btn{font-size:1.5rem;padding:14px 18px;min-height:52px}

.tool-rps-score{text-align:center;margin-top:12px}

.tool-sudoku-grid{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:2px;max-width:420px;margin:10px auto;width:100%}

.tool-sudoku-cell{width:100%;min-width:0;height:38px;text-align:center;font-size:1rem;border:1px solid var(--border);background:var(--bg);color:var(--text);font:inherit;border-radius:6px}

.tool-sudoku-cell.bt{border-top:2px solid var(--text)}

.tool-sudoku-cell.bl{border-left:2px solid var(--text)}

.tool-sudoku-cell.bb{border-bottom:2px solid var(--text)}

.tool-sudoku-cell.br{border-right:2px solid var(--text)}

.tool-tod-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:center}

.tool-wheel-row{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap;justify-content:center}

.tool-wheel-left{flex:1 1 260px;display:flex;flex-direction:column;gap:10px;max-width:340px}

.tool-wheel-result{font-size:1.25rem;min-height:2rem;text-align:center}

.tool-wheel-canvas{flex:0 0 320px;max-width:100%;height:auto;display:block}

.tool-border-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}

.tool-border-label{display:flex;align-items:center;gap:6px}

.tool-border-preview{width:100%;height:160px;background:linear-gradient(135deg,#6366f1,#a855f7);border-radius:20px;margin-top:14px}

.tool-bpm-btn{min-height:44px;padding:18px 28px;font-size:1.1rem}

.tool-bpm-value{font-size:2.4rem;margin-top:12px;font-variant-numeric:tabular-nums}

.tool-bpm-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}

.tool-click-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}

.tool-click-btn{padding:18px 26px;font-size:1.1rem;min-width:220px;min-height:120px}

.tool-click-stats{font-size:1.6rem;text-align:center;margin-top:12px;min-height:2.2rem}

.tool-sci-display{text-align:right;font-size:1.6rem;min-height:3rem;padding:10px 14px;word-break:break-all}

.tool-sci-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-top:10px}

.tool-sci-btn{min-height:44px;padding:12px 6px;border-radius:10px;border:1px solid var(--border);background:var(--card);color:var(--text);font:inherit;font-size:1rem}

.tool-screen-wrap{display:flex;flex-direction:column;gap:10px;max-width:420px}

.tool-screen-hint{font-size:.9rem;color:var(--muted)}

.tool-screen-overlay{position:fixed;inset:0;z-index:99999;cursor:pointer;display:flex;align-items:flex-end;justify-content:center;padding:24px;color:rgba(0,0,0,.5);font-weight:700}

.tool-stopwatch-display{font-size:2.6rem;text-align:center;letter-spacing:2px;font-variant-numeric:tabular-nums}

.tool-stopwatch-actions{display:flex;gap:10px;margin-top:16px;justify-content:center;flex-wrap:wrap}

.tool-stopwatch-laps{margin-top:12px;max-height:180px;overflow:auto;font-family:monospace;font-size:.9rem;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:10px;white-space:pre-line}

.tool-typing-top{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:10px}

.tool-typing-sample{border:1px solid var(--border);border-radius:10px;padding:14px;line-height:1.9;font-size:1.05rem}

.tool-typing-char.correct{color:var(--success)}

.tool-typing-char.incorrect{color:var(--danger);font-weight:700}

.tool-typing-stats{margin-top:10px;font-size:1.1rem}

.tool-reaction-area{width:100%;min-height:240px;border-radius:12px;font-size:1.4rem;color:#fff;background:#64748b}

.tool-reaction-area.waiting{background:var(--danger)}

.tool-reaction-area.go{background:var(--success)}

.tool-reaction-area.done{background:var(--success)}

.tool-reaction-stats{text-align:center;margin-top:10px;font-size:1.05rem;min-height:1.4rem}

.tool-error-inline{margin:0;font-size:.9rem}

.tool-qr-textarea{flex:1 1 260px;min-width:0;max-width:100%;min-height:88px}

.tool-label-fixed{min-width:90px}

.tool-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}

.tool-inline-row{display:flex;align-items:center;gap:8px;font-size:.9rem}

.tool-select-sm{padding:8px;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text)}

.tool-game-label{margin-top:auto;font-weight:700;color:var(--muted)}

.tool-field-label{color:var(--muted);font-size:.82rem;font-weight:650}
/* ---------- Phosphor icons (migrated from emoji) ---------- */
.tool-card-icon .ph{
  font-size:22px;
  color:var(--primary);
  line-height:1;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.tool-card-icon svg{width:22px;height:22px;display:block}
.tool-card-icon .ph::before{vertical-align:middle}
.tool-card-icon--emoji{font-size:1.25rem}
@media (max-width:640px){
  .tool-card-icon .ph{font-size:19px}
}

/* ---------- Skeleton screens (for high-frequency tools) ---------- */
.skeleton{
  background:linear-gradient(90deg, var(--bg-subtle) 25%, var(--border) 37%, var(--bg-subtle) 63%);
  background-size:400% 100%;
  animation:skeleton-shimmer 1.4s ease infinite;
  border-radius:8px;
  color:transparent;
  user-select:none;
}
@keyframes skeleton-shimmer{0%{background-position:100% 0}100%{background-position:-100% 0}}
@media (prefers-reduced-motion:reduce){ .skeleton{animation:none; background:var(--bg-subtle)} }
.skeleton-text{height:14px; margin:6px 0; border-radius:6px}
.skeleton-title{height:20px; width:60%; margin:8px 0}
.skeleton-input{height:44px; border-radius:10px; border:1px solid var(--border)}
.skeleton-card{height:72px; border-radius:14px; border:1px solid var(--border)}
.tool-skeleton{padding:8px 0; display:grid; gap:14px}
.tool-skeleton-row{display:grid; grid-template-columns:44px 1fr; gap:12px; align-items:center}
.tool-skeleton .skeleton{animation-delay:.1s}

/* ---------- Cmd+K Command Palette ---------- */
.cmdk-overlay{
  position:fixed; inset:0; z-index:100;
  background:rgba(15,23,42,.32);
  backdrop-filter:blur(8px) saturate(1.1);
  -webkit-backdrop-filter:blur(8px) saturate(1.1);
  display:grid; place-items:start center;
  padding:10vh 16px 16px;
  opacity:0; visibility:hidden;
  transition:opacity 160ms var(--ease), visibility 160ms var(--ease);
}
.cmdk-overlay.open{opacity:1; visibility:visible}
.cmdk{
  width:min(640px, 92vw);
  max-height:min(68vh, 560px);
  background:var(--card);
  border:1px solid var(--border);
  border-radius:16px;
  box-shadow:var(--shadow-lg);
  overflow:hidden;
  display:flex; flex-direction:column;
  transform:translateY(8px) scale(.98);
  transition:transform 220ms var(--ease);
}
.cmdk-overlay.open .cmdk{transform:translateY(0) scale(1)}
.cmdk-header{
  display:flex; align-items:center; gap:10px;
  padding:12px 14px;
  border-bottom:1px solid var(--border);
  background:var(--card);
}
.cmdk-header .ph{font-size:18px; color:var(--muted); flex:0 0 auto}
.cmdk-input{
  flex:1; min-width:0;
  border:none; outline:none;
  background:transparent; color:var(--text);
  font:inherit; font-size:1rem; font-weight:500;
}
.cmdk-input::placeholder{color:var(--muted-2)}
.cmdk-kbd{
  flex:0 0 auto;
  padding:4px 7px;
  border:1px solid var(--border);
  border-bottom-width:2px;
  border-radius:6px;
  background:var(--bg-subtle);
  color:var(--muted);
  font-size:.72rem; font-weight:600; letter-spacing:.04em;
}
.cmdk-list{
  overflow:auto; overscroll-behavior:contain;
  padding:8px;
  display:flex; flex-direction:column; gap:4px;
  scrollbar-width:thin;
}
.cmdk-item{
  display:grid; grid-template-columns:40px 1fr auto;
  gap:10px; align-items:center;
  padding:10px 10px;
  border-radius:10px;
  border:1px solid transparent;
  background:transparent;
  color:var(--text);
  text-align:left;
  cursor:pointer;
  transition:background 120ms var(--ease), border-color 120ms var(--ease);
}
.cmdk-item:hover{ background:var(--bg-subtle); border-color:var(--border) }
.cmdk-item[aria-selected="true"]{ background:var(--text); color:var(--bg); border-color:var(--text) }
.cmdk-item[aria-selected="true"] .cmdk-item-desc,
.cmdk-item[aria-selected="true"] .cmdk-item-cat{ color:color-mix(in srgb, var(--bg) 72%, transparent) }
.cmdk-item[aria-selected="true"] .cmdk-icon{ background:rgba(255,255,255,.14); border-color:rgba(255,255,255,.18); color:var(--bg) }
.cmdk-icon{
  display:grid; place-items:center;
  width:40px; height:40px;
  border-radius:10px;
  background:var(--primary-soft);
  border:1px solid color-mix(in srgb, var(--primary) 12%, var(--border));
  color:var(--primary);
  font-size:1.15rem;
  flex:0 0 auto;
}
.cmdk-icon .ph{font-size:18px}
.cmdk-item-main{min-width:0; display:flex; flex-direction:column; gap:1px}
.cmdk-item-name{font-weight:650; font-size:.92rem; letter-spacing:-.01em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.cmdk-item-desc{color:var(--muted); font-size:.80rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.cmdk-item-cat{
  color:var(--muted); font-size:.72rem; font-weight:600;
  padding:4px 8px; border-radius:999px;
  background:var(--bg-subtle); border:1px solid var(--border);
  white-space:nowrap;
}
.cmdk-empty{padding:28px 12px; text-align:center; color:var(--muted); font-size:.9rem}
.cmdk-footer{
  padding:8px 12px;
  border-top:1px solid var(--border);
  background:var(--bg-subtle);
  display:flex; gap:10px; align-items:center; flex-wrap:wrap;
  color:var(--muted); font-size:.74rem;
}
.cmdk-footer kbd{
  padding:2px 6px; border-radius:5px;
  border:1px solid var(--border); border-bottom-width:2px;
  background:var(--card); font-family:inherit; font-weight:600;
}

/* PDF Toolkit - Swiss + Trust theme enhancements */
.pdf-hero{padding:36px 0 8px; text-align:center}
.pdf-hero .hero-badge{background:var(--primary-soft); border:1px solid var(--border); color:var(--primary); font-weight:600; font-size:.82rem; letter-spacing:.02em}
.pdf-hero h1{font-size:clamp(1.9rem, 4vw, 2.7rem); margin:.2em 0 .3em; line-height:1.15}
.hero-accent{font-weight:600; color:var(--muted); font-size:.9em; display:block; margin-top:6px}
.hero-trust{display:flex; flex-wrap:wrap; gap:8px; justify-content:center; margin:18px 0 16px}
.trust-chip{display:inline-flex; align-items:center; gap:6px; padding:6px 10px; border-radius:999px; background:var(--card); border:1px solid var(--border); font-size:.78rem; font-weight:600; color:var(--muted); box-shadow:var(--shadow-xs)}
.hero-actions{display:flex; gap:12px; align-items:center; justify-content:center; flex-wrap:wrap; margin-top:18px}
.btn-primary{background:var(--primary); color:#fff; border:none; padding:12px 20px; border-radius:999px; font-weight:700; font-size:.92rem; min-height:44px; display:inline-grid; place-items:center; box-shadow:var(--shadow-md); transition:transform var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease)}
.btn-primary:hover{background:var(--primary-hover); transform:translateY(-1px); text-decoration:none}
.hero-hint{font-size:.82rem; color:var(--muted)}
.pdf-highlights{padding:8px 0 28px}
.highlight-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px}
@media(max-width:820px){.highlight-grid{grid-template-columns:1fr}}
.highlight-card{background:var(--card); border:1px solid var(--border); border-radius:16px; padding:18px; box-shadow:var(--shadow-sm)}
.highlight-card .hl-icon{width:36px; height:36px; display:grid; place-items:center; border-radius:10px; background:var(--primary-soft); margin-bottom:10px; font-size:18px}
.highlight-card h3{margin:0 0 6px; font-size:1rem}
.highlight-card p{margin:0; font-size:.88rem; color:var(--muted); line-height:1.5}
.pdf-logo{background:linear-gradient(135deg, var(--primary), #0ea5e9); color:#fff}

/* Tool shell drag-drop polish */
.tool-shell{max-width:780px; margin:0 auto}
.tool-page .tool-header{text-align:center; max-width:720px; margin:0 auto 18px}
.tool-page .tool-header h1{font-size:1.8rem}
.tool-page .tool-desc{color:var(--muted); font-size:.95rem}

/* Ad slots refined */
.ad-slot{margin:22px 0; min-height:90px; border:1px dashed var(--border); border-radius:12px; display:grid; place-items:center; background:var(--bg-subtle); color:var(--muted); font-size:.82rem}
.ad-slot::before{content:'Advertisement'; letter-spacing:.08em; text-transform:uppercase; font-size:.7rem; opacity:.7}
.ad-slot[data-ad-slot]:not([data-ad-status="filled"])::before{content:'Advertisement — ad will appear here'}
/* ── PDF Tools — Own Layout (iLovePDF / Smallpdf inspired, not copied) ── */
/* Hero: centered Swiss, subtle mesh */
.pdf-hero{
  padding: 56px 0 28px;
  text-align:center;
  position:relative;
  overflow:hidden;
}
.pdf-hero::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(600px 320px at 20% 0%, color-mix(in srgb, var(--primary) 8%, transparent) 0%, transparent 60%),
    radial-gradient(520px 300px at 85% 10%, color-mix(in srgb, #0ea5e9 7%, transparent) 0%, transparent 60%);
  pointer-events:none;
}
.pdf-hero .hero-inner{position:relative; max-width:760px; margin:0 auto; padding:0 8px}
.pdf-hero .hero-badge{
  display:inline-flex; align-items:center; gap:7px;
  background:var(--card); border:1px solid var(--border);
  color:var(--muted); font-weight:600; font-size:.80rem; letter-spacing:.02em;
  padding:7px 12px; border-radius:999px; box-shadow:var(--shadow-xs)
}
.hero-badge-dot{width:8px;height:8px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 4px rgba(34,197,94,.14);display:inline-block}
.pdf-hero h1{font-size:clamp(2rem, 4.2vw, 2.9rem); margin:.55em 0 .28em; line-height:1.08; letter-spacing:-.03em}
.hero-accent{font-weight:500; color:var(--muted); font-size:.62em; display:block; margin-top:8px; letter-spacing:-.01em}
.hero-tagline{color:var(--muted); font-size:1.02rem; line-height:1.6; max-width:640px; margin:0 auto 18px}
.hero-search{max-width:560px; margin:22px auto 0; position:relative}
.hero-search .tool-search-input{width:100%; height:52px; padding:0 44px 0 44px; border-radius:999px; border:1.5px solid var(--border-strong); background:var(--card); font-size:1rem; box-shadow:var(--shadow-sm)}
.hero-search .tool-search-input:focus{border-color:var(--primary); box-shadow:0 0 0 4px var(--primary-soft)}
.hero-search .search-icon{position:absolute; left:16px; top:50%; transform:translateY(-50%); color:var(--muted); display:grid; place-items:center}
.hero-search .search-icon svg{width:20px;height:20px}
.hero-search .search-clear{position:absolute; right:8px; top:50%; transform:translateY(-50%); width:36px;height:36px; border-radius:50%; border:none; background:var(--bg-subtle); color:var(--muted); cursor:pointer; font-size:18px; line-height:1}
.hero-search .search-clear:hover{background:var(--border)}
.hero-trust{display:flex; flex-wrap:wrap; gap:8px; justify-content:center; margin:16px 0 10px}
.trust-chip{display:inline-flex; align-items:center; gap:6px; padding:7px 11px; border-radius:999px; background:var(--card); border:1px solid var(--border); font-size:.78rem; font-weight:600; color:var(--muted); box-shadow:var(--shadow-xs)}
.hero-quicklinks{display:flex; gap:8px; justify-content:center; flex-wrap:wrap; margin-top:14px; font-size:.84rem; color:var(--muted)}
.hero-quicklinks a{color:var(--muted); font-weight:600; padding:4px 8px; border-radius:999px}
.hero-quicklinks a:hover{color:var(--primary); background:var(--primary-soft); text-decoration:none}

/* Legacy hero fallback (old template) — neutralize */
.hero-trust .trust-chip svg{flex:0 0 auto}

/* Section head — Swiss */
.section-head{max-width:760px; margin:0 auto 18px; text-align:center}
.section-head h2{font-size:1.45rem; margin:0 0 8px; letter-spacing:-.02em}
.section-head .section-desc{color:var(--muted); font-size:.92rem; margin:0}

/* Featured grid — iLovePDF style large cards, but Swiss */
.section-featured{padding:28px 0 10px}
.featured-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:14px}
@media(max-width:1020px){.featured-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.featured-grid{grid-template-columns:1fr}}
.featured-card{
  display:grid; grid-template-columns:48px 1fr auto; gap:12px; align-items:center;
  padding:16px 14px; background:var(--card); border:1px solid var(--border); border-radius:16px;
  box-shadow:var(--shadow-xs); color:var(--text); transition:transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease)
}
.featured-card:hover{transform:translateY(-2px); box-shadow:var(--shadow-md); border-color:color-mix(in srgb, var(--primary) 16%, var(--border)); text-decoration:none}
.featured-icon{width:48px;height:48px; border-radius:12px; display:grid; place-items:center; font-size:1.35rem; background:var(--primary-soft); border:1px solid color-mix(in srgb, var(--primary) 10%, var(--border)); flex:0 0 auto}
.featured-text{min-width:0; display:flex; flex-direction:column; gap:2px}
.featured-name{font-weight:700; font-size:.95rem; line-height:1.3; letter-spacing:-.01em}
.featured-desc{color:var(--muted); font-size:.82rem; line-height:1.4; display:-webkit-box; -webkit-line-clamp:1; -webkit-box-orient:vertical; overflow:hidden}
.featured-arrow{width:32px;height:32px; border-radius:50%; display:grid; place-items:center; background:var(--bg-subtle); border:1px solid var(--border); color:var(--muted); font-size:14px; flex:0 0 auto}
.featured-card:hover .featured-arrow{background:var(--primary); color:#fff; border-color:var(--primary)}

/* Filter bar — pills replacing old sidebar */
.home-filterbar{margin:22px 0 10px; padding:14px; background:var(--card); border:1px solid var(--border); border-radius:16px; box-shadow:var(--shadow-xs); display:flex; gap:12px; align-items:center; flex-wrap:wrap; justify-content:space-between}
.filter-pills{display:flex; gap:8px; flex-wrap:wrap; flex:1}
.filter-pill{
  padding:8px 14px; border-radius:999px; border:1px solid var(--border); background:var(--bg-subtle); color:var(--muted);
  font-weight:600; font-size:.84rem; cursor:pointer; transition:all var(--dur-fast) var(--ease); min-height:36px; white-space:nowrap
}
.filter-pill:hover{border-color:var(--primary); color:var(--primary); background:var(--card)}
.filter-pill.active{background:var(--text); color:var(--bg); border-color:var(--text); box-shadow:var(--shadow-sm)}
[data-theme="dark"] .filter-pill.active{background:var(--card-elevated); color:var(--text); border-color:var(--border-strong)}
.filter-count{color:var(--muted); font-size:.84rem; font-weight:600}
.filter-reset{padding:8px 12px; border-radius:999px; border:1px solid var(--border); background:var(--card); color:var(--text); font-size:.84rem; font-weight:600; cursor:pointer}
.filter-reset:hover{border-color:var(--danger); color:var(--danger)}
.home-filterbar .filter-meta{display:flex; gap:10px; align-items:center}

/* Tool grid (catalog) — clean Swiss cards */
.catalog{display:flex; flex-direction:column; gap:30px; margin-top:18px}
.cat-section{scroll-margin-top:calc(var(--header-h) + 16px)}
.cat-showcase{padding:0}
.cat-head{display:flex; align-items:center; gap:12px; margin-bottom:12px; flex-wrap:wrap}
.cat-head .cat-icon{width:40px;height:40px; border-radius:12px; display:grid; place-items:center; background:var(--primary-soft); border:1px solid color-mix(in srgb, var(--primary) 10%, var(--border)); font-size:1.2rem; flex:0 0 auto}
.cat-head h2{margin:0; font-size:1.12rem; letter-spacing:-.015em}
.cat-head p{margin:2px 0 0; color:var(--muted); font-size:.86rem}
.cat-head > div{flex:1; min-width:0}
.cat-more{margin-left:auto; font-weight:700; font-size:.84rem; white-space:nowrap; padding:8px 12px; border-radius:999px; border:1px solid var(--border); background:var(--card); color:var(--primary)}
.cat-more:hover{background:var(--primary); color:#fff; border-color:var(--primary); text-decoration:none}
.tool-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:12px}
@media(max-width:980px){.tool-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.tool-grid{grid-template-columns:1fr}}

/* Tool cards — refined */
.tool-card{display:flex; gap:12px; align-items:center; padding:14px 14px; background:var(--card); border:1px solid var(--border); border-radius:14px; box-shadow:var(--shadow-xs); transition:border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease); color:var(--text); min-height:72px}
.tool-card:hover{border-color:color-mix(in srgb, var(--primary) 16%, var(--border)); box-shadow:var(--shadow-md); transform:translateY(-1px); text-decoration:none}
.tool-card:hover .tool-card-name{color:var(--primary)}
.tool-card-icon{width:42px;height:42px; border-radius:11px; display:grid; place-items:center; background:var(--primary-soft); border:1px solid color-mix(in srgb, var(--primary) 10%, var(--border)); font-size:1.25rem; flex:0 0 auto}
.tool-card-text{flex:1; min-width:0; display:flex; flex-direction:column; gap:1px}
.tool-card-name{font-weight:680; font-size:.93rem; letter-spacing:-.01em; line-height:1.3}
.tool-card-desc{color:var(--muted); font-size:.82rem; line-height:1.4; display:-webkit-box; -webkit-line-clamp:1; -webkit-box-orient:vertical; overflow:hidden}
.tool-grid-search .tool-card{content-visibility:auto; contain-intrinsic-size:auto 84px}

/* Search section */
.section-search{margin:18px 0 24px; padding:18px; background:var(--card); border:1px solid var(--border); border-radius:16px; box-shadow:var(--shadow-sm)}
.section-search .section-head{margin-bottom:12px; text-align:left}
.section-search .section-head h2{font-size:1.15rem}
.search-empty{padding:28px 12px; text-align:center; color:var(--muted); font-size:.92rem; grid-column:1/-1}

/* How it works */
.section-how{margin:34px 0 20px; padding:24px; background:var(--card); border:1px solid var(--border); border-radius:20px; box-shadow:var(--shadow-xs)}
.how-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:18px}
@media(max-width:820px){.how-grid{grid-template-columns:1fr}}
.how-step{position:relative; padding:18px; background:var(--bg-subtle); border:1px solid var(--border); border-radius:16px; text-align:left}
.how-num{position:absolute; top:12px; right:14px; font-size:.78rem; font-weight:800; color:var(--primary); background:var(--primary-soft); border:1px solid color-mix(in srgb, var(--primary) 12%, var(--border)); padding:4px 8px; border-radius:999px}
.how-icon{width:42px;height:42px; border-radius:12px; display:grid; place-items:center; background:var(--card); border:1px solid var(--border); color:var(--primary); margin-bottom:10px}
.how-icon svg{width:22px;height:22px}
.how-step h3{margin:0 0 6px; font-size:1rem}
.how-step p{margin:0; color:var(--muted); font-size:.88rem; line-height:1.5}

/* Trust / FAQ */
.section-trust{margin:20px 0 28px}
.trust-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-bottom:18px}
@media(max-width:980px){.trust-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.trust-grid{grid-template-columns:1fr}}
.trust-card{background:var(--card); border:1px solid var(--border); border-radius:16px; padding:18px; box-shadow:var(--shadow-xs)}
.trust-icon{width:36px;height:36px; display:grid; place-items:center; border-radius:10px; background:var(--primary-soft); margin-bottom:10px; font-size:18px}
.trust-card h3{margin:0 0 6px; font-size:.96rem}
.trust-card p{margin:0; color:var(--muted); font-size:.86rem; line-height:1.5}
.home-faq{background:var(--card); border:1px solid var(--border); border-radius:12px; padding:14px 16px; margin-bottom:10px}
.home-faq summary{font-weight:700; cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:center}
.home-faq summary::after{content:"+" ; color:var(--muted); font-size:18px; font-weight:400}
.home-faq[open] summary::after{content:"−"}
.home-faq p{margin:10px 0 0; color:var(--muted); font-size:.9rem; line-height:1.6}

/* Deprecate old home-browser layout — hide if accidentally rendered */
.home-browser, .home-layout, .home-sidebar, .home-tabs, .home-mode-switch, .home-main .home-searchbar, .home-summary, .tool-directory, .home-more, .highlight-grid{display:none !important}
.pdf-highlights{display:none !important}
.home-static-fallback[hidden]{display:none !important}

/* Restore skeletons inside search */
.tool-skeleton .skeleton{animation:skel 1.2s ease-in-out infinite alternate}
@keyframes skel{from{opacity:.6} to{opacity:1}}

/* Category hub refinement */
.cat-section .tool-grid .tool-card-cat{display:none}

/* Ensure container breathing */
@media(max-width:640px){
  .pdf-hero{padding:32px 0 18px}
  .home-filterbar{padding:12px}
  .section-how{padding:16px}
}

/* File drop — ui-ux-pro-max polished, 44px min, keyboard, drag states */
.tool-file-drop{
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px;
  min-height:118px; padding:18px 16px; border:2px dashed var(--border);
  border-radius:14px; background:color-mix(in srgb, var(--bg-subtle) 70%, var(--card));
  color:var(--text); cursor:pointer; transition: border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease);
  text-align:center; position:relative; outline:none;
}
.tool-file-drop:hover{ border-color:var(--primary); background:var(--primary-soft); transform: translateY(-1px); box-shadow:var(--shadow-sm); }
.tool-file-drop:focus-visible{ border-color:var(--primary); box-shadow:0 0 0 3px var(--primary-soft); }
.tool-file-drop.drag-over{ border-color:var(--primary); background:var(--primary-soft); border-style:solid; box-shadow:var(--shadow-md); }
.tool-file-drop.has-files{ border-style:solid; border-color:var(--success); background:color-mix(in srgb, var(--success) 6%, var(--card)); }
.tool-file-drop-icon{ display:grid; place-items:center; width:44px; height:44px; border-radius:12px; background:var(--card); border:1px solid var(--border); color:var(--primary); box-shadow:var(--shadow-xs); flex:0 0 auto; }
.tool-file-drop.has-files .tool-file-drop-icon{ background:var(--success); color:#fff; border-color:var(--success); }
.tool-file-drop-text{ font-weight:700; font-size:.92rem; letter-spacing:-.01em; line-height:1.2; }
.tool-file-drop-hint{ font-size:.78rem; color:var(--muted); font-weight:500; letter-spacing:.02em; text-transform:uppercase; }
.tool-file-drop-meta{ display:inline-flex; align-items:center; gap:6px; margin-top:4px; padding:6px 10px; border-radius:999px; background:var(--card); border:1px solid var(--border); color:var(--muted); font-size:.82rem; font-weight:600; max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; box-shadow:var(--shadow-xs); }
.tool-file-drop.has-files .tool-file-drop-meta{ color:var(--text); border-color:color-mix(in srgb, var(--success) 20%, var(--border)); background:var(--card); }
.tool-file-input-real{ /* hidden but accessible */ }


/* Hero compact — reduced from large pdf-hero per user request */
.hero-compact{ padding:28px 0 14px; text-align:center; border-bottom:1px solid var(--border); margin-bottom:10px; background:color-mix(in srgb, var(--bg) 96%, var(--primary-soft)); }
.hero-compact-inner{ max-width:720px; margin:0 auto; }
.hero-compact h1{ font-size:clamp(1.5rem, 3.2vw, 2rem); margin:0 0 6px; letter-spacing:-.02em; font-weight:800; }
.hero-compact-accent{ font-weight:500; color:var(--muted); font-size:.7em; }
.hero-compact-sub{ color:var(--muted); font-size:.92rem; margin:4px auto 4px; max-width:600px; line-height:1.5; }
.hero-compact-meta{ display:inline-flex; gap:8px; align-items:center; justify-content:center; flex-wrap:wrap; color:var(--muted-2); font-size:.78rem; font-weight:600; letter-spacing:.02em; }

/* Old pdf-hero fallback hidden if not used */
.pdf-hero{ display:none !important; }

/* Search removed — hide search elements if present */
.hero-search, .tool-search-input, #tool-search, #search-clear, .search-box, .section-search, #search-results, .home-searchbar{ display:none !important; }

/* Tool icons — category colored SVG, per-tool distinct */
.tool-card-icon, .featured-icon{
  display:grid; place-items:center; width:42px; height:42px; border-radius:11px; flex:0 0 auto;
  background:var(--primary-soft); border:1px solid color-mix(in srgb, var(--primary) 10%, var(--border));
  color:var(--primary); box-shadow:var(--shadow-xs); transition: transform var(--dur-fast) var(--ease);
}
.tool-card-icon svg, .featured-icon svg{ width:22px; height:22px; display:block; }
.tool-card-icon.cat-organize, .featured-icon.cat-organize{ background:color-mix(in srgb, #2563eb 12%, var(--card)); border-color:color-mix(in srgb, #2563eb 16%, var(--border)); color:#2563eb; }
.tool-card-icon.cat-convert, .featured-icon.cat-convert{ background:color-mix(in srgb, #7c3aed 12%, var(--card)); border-color:color-mix(in srgb, #7c3aed 16%, var(--border)); color:#7c3aed; }
.tool-card-icon.cat-edit, .featured-icon.cat-edit{ background:color-mix(in srgb, #059669 12%, var(--card)); border-color:color-mix(in srgb, #059669 16%, var(--border)); color:#059669; }
.tool-card-icon.cat-security, .featured-icon.cat-security{ background:color-mix(in srgb, #d97706 12%, var(--card)); border-color:color-mix(in srgb, #d97706 16%, var(--border)); color:#b45309; }
.tool-card-icon.cat-compress, .featured-icon.cat-compress{ background:color-mix(in srgb, #0891b2 12%, var(--card)); border-color:color-mix(in srgb, #0891b2 16%, var(--border)); color:#0e7490; }
.tool-card-icon.cat-image, .featured-icon.cat-image{ background:color-mix(in srgb, #e11d48 12%, var(--card)); border-color:color-mix(in srgb, #e11d48 16%, var(--border)); color:#be123c; }
.tool-card-icon.cat-sign, .featured-icon.cat-sign{ background:color-mix(in srgb, #8b5cf6 12%, var(--card)); border-color:color-mix(in srgb, #8b5cf6 16%, var(--border)); color:#7c3aed; }
.tool-card-icon.cat-ocr, .featured-icon.cat-ocr{ background:color-mix(in srgb, #ea580c 12%, var(--card)); border-color:color-mix(in srgb, #ea580c 16%, var(--border)); color:#c2410c; }
.tool-card:hover .tool-card-icon, .featured-card:hover .featured-icon{ transform: scale(1.05); }


/* About page — world-class editorial (ui-ux-pro-max) */
.about-hero{ padding:28px 24px; border:1px solid var(--border); border-radius:20px; background:color-mix(in srgb, var(--primary-soft) 45%, var(--card)); margin:12px 0 18px; }
.about-hero h1{ margin:0 0 10px; font-size:clamp(1.6rem, 3vw, 2.2rem); letter-spacing:-.02em; }
.about-lead{ color:var(--muted); font-size:1.02rem; line-height:1.7; margin:8px 0 0; }
.about-stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin:16px 0 22px; }
@media(max-width:640px){ .about-stats{ grid-template-columns:repeat(2,1fr); } }
.about-stat{ display:flex; flex-direction:column; align-items:center; justify-content:center; padding:18px 12px; border:1px solid var(--border); border-radius:16px; background:var(--card); box-shadow:var(--shadow-xs); }
.about-stat-num{ font-size:1.6rem; font-weight:800; letter-spacing:-.02em; line-height:1; }
.about-stat-label{ margin-top:6px; font-size:.78rem; font-weight:600; color:var(--muted); letter-spacing:.04em; text-transform:uppercase; }
.about-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:12px; margin:12px 0 18px; }
@media(max-width:720px){ .about-grid{ grid-template-columns:1fr; } }
.about-card{ padding:16px; border:1px solid var(--border); border-radius:14px; background:var(--card); box-shadow:var(--shadow-xs); }
.about-card h3{ margin:0 0 6px; font-size:1rem; }
.about-card p{ margin:0; color:var(--muted); font-size:.9rem; line-height:1.6; }
.about-principles{ display:grid; gap:10px; padding-left:18px; margin:10px 0 18px; }
.about-principles li{ line-height:1.7; color:var(--text); }
.about-principles li strong{ color:var(--text); }
.about-note{ margin-top:18px; padding:12px 14px; border:1px solid var(--border); border-radius:12px; background:var(--bg-subtle); color:var(--muted); font-size:.88rem; }
.static-page{ max-width:860px; margin:0 auto; padding:8px 0 24px; }
.static-page h1{ font-size:clamp(1.5rem, 3vw, 2rem); letter-spacing:-.02em; }
.static-page h2{ margin-top:28px; font-size:1.18rem; letter-spacing:-.015em; }
.static-page p{ line-height:1.75; color:var(--text); }
.static-page ul{ line-height:1.75; }
