.category-nav{position:relative}.category-nav-trigger{background:var(--color-primary-light);color:var(--color-primary);border-radius:var(--radius-small);transition:background .2s, transform .15s var(--ease-out);align-items:center;gap:4px;padding:8px 14px;font-size:14px;font-weight:500;display:flex}.category-nav-trigger:hover{background:var(--color-bg-hover);transform:translateY(-1px)}.category-nav-dropdown{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-small);min-width:160px;box-shadow:var(--shadow-lg);z-index:200;max-height:400px;padding:6px 0;animation:.15s ease-out catnav-in;position:absolute;top:calc(100% + 8px);right:0;overflow-y:auto}@keyframes catnav-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.category-nav-item{color:var(--color-text);padding:8px 16px;font-size:14px;transition:background .15s;display:block}.category-nav-item:hover{background:var(--color-primary-light);color:var(--color-primary)}.app-header{background:color-mix(in srgb, var(--color-bg-card) 85%, transparent);-webkit-backdrop-filter:blur(20px)saturate(180%);border-bottom:1px solid var(--color-border-light,#f1efe9);z-index:100;position:sticky;top:0}.header-inner{align-items:center;gap:20px;height:60px;display:flex}.header-logo{font-size:18px;font-weight:var(--font-weight-bold);color:var(--color-text,#2d2a32);white-space:nowrap;letter-spacing:-.02em;transition:color var(--duration-fast) var(--ease-out);align-items:center;gap:8px;display:flex}.header-logo:hover{color:var(--color-primary,#8b5cf6)}.logo-icon{font-size:22px}.header-search-wrapper{flex:1;max-width:480px;position:relative}.header-search{border:1px solid var(--color-border,#e8e6e1);border-radius:var(--radius-small,10px);transition:border-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out);background:var(--color-bg-subtle,#f4f3f0);display:flex;overflow:hidden}.header-search:focus-within{border-color:var(--color-primary,#8b5cf6);box-shadow:0 0 0 3px var(--color-ring,#8b5cf640);background:var(--color-bg-card,#fff)}.search-dropdown{background:var(--color-bg-card,#fff);border:1px solid var(--color-border,#e8e6e1);border-radius:var(--radius-small,10px);box-shadow:var(--shadow-lg,0 20px 48px #2d2a321a);z-index:200;animation:.15s ease-out dropdown-in;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow:hidden}@keyframes dropdown-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.search-dropdown-item{cursor:pointer;transition:background var(--duration-fast) var(--ease-out);flex-direction:column;gap:2px;padding:10px 14px;display:flex}.search-dropdown-item:hover{background:var(--color-bg-hover,#f0edf8)}.search-dropdown-name{font-size:13px;font-weight:var(--font-weight-medium);color:var(--color-text,#2d2a32);line-height:1.4}.search-dropdown-desc{color:var(--color-text-tertiary,#a09daa);text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:1.3;overflow:hidden}.search-dropdown-more{border-top:1px solid var(--color-border-light,#f1efe9);color:var(--color-primary,#8b5cf6);font-size:12px;font-weight:var(--font-weight-medium);padding:9px 14px}.search-dropdown-more:hover{background:var(--color-bg-hover,#f0edf8)}.search-input{height:38px;color:var(--color-text,#2d2a32);background:0 0;border:none;flex:1;padding:0 14px;font-size:14px}.search-input::placeholder{color:var(--color-text-tertiary,#a09daa)}.search-btn{background:var(--color-primary,#8b5cf6);color:#fff;font-size:13px;font-weight:var(--font-weight-medium);transition:background var(--duration-fast) var(--ease-out);padding:0 18px}.search-btn:hover{background:var(--color-primary-dark,#7c3aed)}@media (width<=768px){.header-inner{flex-wrap:wrap;gap:10px;height:auto;padding:10px 16px}.header-search-wrapper{order:3;width:100%;max-width:100%}}@media (width<=480px){.header-inner{gap:8px;padding:8px 12px}.header-logo{font-size:16px}.logo-icon{font-size:18px}.logo-text{display:none}.search-input{height:34px;padding:0 10px;font-size:13px}.search-btn{padding:0 12px;font-size:12px}}@media (width>=1201px){.header-inner{gap:28px;height:64px}.header-search-wrapper{max-width:540px}.search-input{height:40px;font-size:14px}}.app-footer{color:#a09daa;background:#1e1b2e;border-top:1px solid #ffffff0d;margin-top:56px;padding:36px 0}.footer-inner{text-align:center}.footer-text{color:#a09daa;letter-spacing:.01em;margin:4px 0;font-size:13px}.footer-sub{color:#767382;font-size:12px}.pwa-install-banner{z-index:9999;border-top:1px solid var(--color-border-light);animation:pwa-slide-up .35s var(--ease-out) both;background:#fff;justify-content:space-between;align-items:center;gap:16px;padding:14px 20px;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 20px #00000014}@keyframes pwa-slide-up{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.pwa-install-banner__content{align-items:center;gap:12px;min-width:0;display:flex}.pwa-install-banner__icon{background:linear-gradient(135deg, var(--color-primary), var(--color-accent));color:#fff;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.pwa-install-banner__text{flex-direction:column;gap:2px;min-width:0;display:flex}.pwa-install-banner__text strong{color:var(--color-text);font-size:14px;font-weight:600}.pwa-install-banner__text span{color:var(--color-text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.pwa-install-banner__actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.pwa-install-banner__btn{border-radius:8px;padding:8px 16px;font-size:13px;font-weight:600;transition:all .15s}.pwa-install-banner__btn--primary{background:var(--color-primary);color:#fff}.pwa-install-banner__btn--primary:hover{background:var(--color-primary-dark);color:#fff}.pwa-install-banner__btn--ghost{color:var(--color-text-tertiary);padding:8px}.pwa-install-banner__btn--ghost:hover{background:var(--color-border-light);color:var(--color-text-secondary)}@media (width<=480px){.pwa-install-banner{gap:10px;padding:12px 14px}.pwa-install-banner__text span{display:none}}.pwa-offline-banner{z-index:10000;color:#fff;animation:pwa-slide-down .3s var(--ease-out) both;background:linear-gradient(135deg,#ef4444,#dc2626);justify-content:center;align-items:center;gap:8px;padding:8px 16px;font-size:13px;font-weight:500;display:flex;position:fixed;top:0;left:0;right:0}@keyframes pwa-slide-down{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}.pwa-offline-banner__retry{color:#fff;background:#fff3;border-radius:6px;justify-content:center;align-items:center;width:24px;height:24px;margin-left:4px;transition:background .15s;display:inline-flex}.pwa-offline-banner__retry:hover{background:#ffffff59}.pwa-update-banner{z-index:10000;background:linear-gradient(135deg, var(--color-primary), var(--color-accent));color:#fff;animation:pwa-slide-down .3s var(--ease-out) both;justify-content:center;align-items:center;gap:10px;padding:10px 16px;font-size:13px;font-weight:500;display:flex;position:fixed;top:0;left:0;right:0}.pwa-update-banner__btn{color:var(--color-primary-dark);background:#fffffff2;border-radius:7px;padding:5px 14px;font-size:12px;font-weight:700;transition:background .15s}.pwa-update-banner__btn:hover{background:#fff}.pwa-update-banner__close{color:#ffffffbf;padding:4px;transition:color .15s}.pwa-update-banner__close:hover{color:#fff}.app-layout{flex-direction:column;min-height:100vh;display:flex}.app-main{flex:1;padding:28px 0 52px}.tool-card{background:var(--color-bg-card);border-radius:var(--radius-card);border:1px solid var(--color-border);transition:transform var(--duration-normal) var(--ease-out), box-shadow var(--duration-normal) var(--ease-out), border-color var(--duration-normal) var(--ease-out);color:var(--color-text);flex-direction:column;padding:20px;display:flex;position:relative}.tool-card:hover{box-shadow:var(--shadow-card-hover);border-color:color-mix(in srgb, var(--color-primary) 25%, transparent);color:var(--color-text);transform:translateY(-3px)}.tool-card-icon{background:var(--color-primary-light);width:46px;height:46px;color:var(--color-primary);transition:background var(--duration-normal) var(--ease-out), color var(--duration-normal) var(--ease-out), transform var(--duration-normal) var(--ease-out);border-radius:12px;justify-content:center;align-items:center;margin-bottom:14px;font-size:22px;display:flex}.tool-card:hover .tool-card-icon{background:var(--color-primary);color:#fff;transform:scale(1.05)}.tool-card-title{font-size:14px;font-weight:var(--font-weight-semibold);color:var(--color-text);letter-spacing:-.01em;margin:0 0 4px}.tool-card-desc{color:var(--color-text-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:1;margin:0 0 14px;font-size:12.5px;line-height:1.6;display:-webkit-box;overflow:hidden}.tool-card-tag{background:var(--color-primary-light);color:var(--color-primary);border-radius:var(--radius-pill);font-size:11px;font-weight:var(--font-weight-medium);letter-spacing:.02em;transition:background var(--duration-normal) var(--ease-out), color var(--duration-normal) var(--ease-out);align-self:flex-start;padding:3px 10px}.tool-card:hover .tool-card-tag{background:color-mix(in srgb, var(--color-primary) 10%, transparent)}.home-page{flex-direction:column;gap:48px;display:flex}.home-hero{background:radial-gradient(ellipse 80% 50% at 80% 10%, color-mix(in srgb, var(--color-primary) 14%, transparent) 0%, transparent 55%), radial-gradient(ellipse 60% 40% at 10% 90%, color-mix(in srgb, var(--color-accent) 10%, transparent) 0%, transparent 50%), linear-gradient(160deg, var(--hero-bg-1,#1a1533) 0%, var(--hero-bg-2,#251952) 45%, var(--hero-bg-3,#1e1638) 100%);color:#fff;border-radius:20px;padding:64px 48px;transition:background .4s;position:relative;overflow:hidden}:root{--hero-bg-1:#1a1533;--hero-bg-2:#251952;--hero-bg-3:#1e1638}[data-theme=dark]{--hero-bg-1:#16141e;--hero-bg-2:#1e1a2e;--hero-bg-3:#1c1a22}[data-theme=dark-pro]{--hero-bg-1:#0c1220;--hero-bg-2:#121e38;--hero-bg-3:#141c30}[data-theme=glassmorphism]{--hero-bg-1:#0e1220;--hero-bg-2:#141a32;--hero-bg-3:#101828}[data-theme=colorful]{--hero-bg-1:#1a1022;--hero-bg-2:#201438;--hero-bg-3:#181228}[data-theme=tech-blue]{--hero-bg-1:#0c1828;--hero-bg-2:#102444;--hero-bg-3:#0e1e34}[data-theme=emerald]{--hero-bg-1:#052e2c;--hero-bg-2:#084e3a;--hero-bg-3:#043028}[data-theme=violet-ai]{--hero-bg-1:#1e0836;--hero-bg-3:#20103a;--hero-bg-2:#301468}[data-theme=warm-orange]{--hero-bg-1:#1e0e02;--hero-bg-2:#3a1808;--hero-bg-3:#281206}.home-hero-grid{background-image:linear-gradient(color-mix(in srgb, var(--color-primary) 4%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--color-primary) 4%, transparent) 1px, transparent 1px);pointer-events:none;background-size:44px 44px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(70% 70% at 50% 30%,#000 10%,#0000 60%);mask-image:radial-gradient(70% 70% at 50% 30%,#000 10%,#0000 60%)}.home-hero:after{content:"";background:radial-gradient(circle, color-mix(in srgb, var(--color-accent) 20%, transparent) 0%, transparent 70%);filter:blur(60px);pointer-events:none;z-index:0;border-radius:50%;width:320px;height:320px;position:absolute;top:-80px;right:-40px}.home-hero-content{z-index:1;max-width:600px;position:relative}.home-hero-settings{z-index:2;position:absolute;top:20px;right:20px}.home-hero-settings .tool-settings-trigger{color:#ffffffa6;-webkit-backdrop-filter:blur(12px);background:#ffffff14;border-color:#ffffff1f}.home-hero-settings .tool-settings-trigger:hover{color:#fff;background:#ffffff26;border-color:#ffffff40}@media (width<=600px){.home-hero-settings .tool-settings-bar{display:flex}.home-hero-settings{top:14px;right:14px}}.home-hero-settings .tool-settings-dropdown{-webkit-backdrop-filter:blur(20px);background:#16141eeb;border-color:#ffffff1a;box-shadow:0 12px 40px #00000059}.home-hero-settings .tool-settings-option{color:#ffffffbf}.home-hero-settings .tool-settings-option:hover{color:#fff;background:#ffffff14}.home-hero-settings .tool-settings-option.active{color:#ddd6fe;background:#8b5cf62e}.home-hero-eyebrow{font-family:var(--font-mono,monospace);letter-spacing:2.5px;text-transform:uppercase;color:var(--color-accent);align-items:center;gap:6px;margin:0 0 16px;font-size:11px;font-weight:500;display:flex}.home-hero-cursor{color:var(--color-accent);-webkit-user-select:none;user-select:none;font-size:16px;font-weight:400;line-height:1;transition:opacity 80ms}.home-hero-title{letter-spacing:-.03em;background:linear-gradient(135deg, #fff 20%, color-mix(in srgb, var(--color-accent) 50%, white) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:0 0 16px;font-size:42px;font-weight:700;line-height:1.12}.home-hero-subtitle{color:#ffffff8c;letter-spacing:.01em;max-width:480px;margin:0 0 40px;font-size:15px;line-height:1.8}.home-hero-stats{align-items:stretch;gap:0;display:flex}.home-hero-stat{flex-direction:column;padding:0 28px;display:flex}.home-hero-stat:first-child{padding-left:0}.home-hero-stat-value{font-family:var(--font-mono,monospace);letter-spacing:-.04em;color:#fff;font-variant-numeric:tabular-nums;font-size:34px;font-weight:700;line-height:1}.home-hero-stat-plus{color:var(--color-accent);margin-left:1px;font-size:20px;font-weight:600}.home-hero-stat-pct{color:#ffffff59;font-size:18px;font-weight:600}.home-hero-stat-label{color:#ffffff59;letter-spacing:.5px;text-transform:uppercase;margin-top:8px;font-size:11px}.home-hero-stat-divider{background:color-mix(in srgb, var(--color-accent) 16%, transparent);flex-shrink:0;align-self:stretch;width:1px;margin:4px 0}.home-section{flex-direction:column;gap:18px;display:flex}.category-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;display:grid}.category-card{background:var(--color-bg-card,#fff);border-radius:var(--radius-card,16px);border:1px solid var(--color-border,#e8e6e1);transition:transform var(--duration-normal,.25s) var(--ease-out,cubic-bezier(.16, 1, .3, 1)), box-shadow var(--duration-normal,.25s) var(--ease-out), border-color var(--duration-normal,.25s) var(--ease-out);color:var(--color-text,#2d2a32);align-items:center;gap:14px;padding:18px 20px;display:flex}.category-card:hover{box-shadow:var(--shadow-card-hover);border-color:var(--cat-hover-color,color-mix(in srgb, var(--color-primary) 25%, transparent));color:var(--color-text,#2d2a32);transform:translateY(-2px)}.category-card-marker{background:var(--cat-bg,var(--color-primary-light,#f3f0ff));width:42px;height:42px;color:var(--cat-color,var(--color-primary,#8b5cf6));transition:background var(--duration-normal,.25s) var(--ease-out), color var(--duration-normal,.25s) var(--ease-out), transform var(--duration-normal,.25s) var(--ease-out);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;font-size:20px;line-height:1;display:flex}.category-card:hover .category-card-marker{transform:scale(1.08)}.category-card-body{flex:1;min-width:0}.category-card-name{font-size:14px;font-weight:var(--font-weight-semibold);color:var(--color-text,#2d2a32);letter-spacing:-.01em;margin:0 0 3px;line-height:1.3}.category-card-desc{color:var(--color-text-secondary,#6b6779);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:12px;line-height:1.5;display:-webkit-box;overflow:hidden}.category-card-arrow{color:var(--color-text-tertiary,#a09daa);transition:transform var(--duration-normal,.25s) var(--ease-out), color var(--duration-normal,.25s) var(--ease-out);flex-shrink:0;font-size:14px}.category-card:hover .category-card-arrow{color:var(--cat-color,var(--color-primary,#8b5cf6));transform:translate(4px)}.category-card[data-class="1"]{--cat-color:#6366f1;--cat-bg:#eef2ff;--cat-hover-color:#6366f140}.category-card[data-class="2"]{--cat-color:#0ea5e9;--cat-bg:#f0f9ff;--cat-hover-color:#0ea5e940}.category-card[data-class="3"]{--cat-color:#f43f5e;--cat-bg:#fff1f2;--cat-hover-color:#f43f5e40}.category-card[data-class="4"]{--cat-color:#8b5cf6;--cat-bg:#f5f3ff;--cat-hover-color:#8b5cf640}.category-card[data-class="5"]{--cat-color:#f97316;--cat-bg:#fff7ed;--cat-hover-color:#f9731640}.category-card[data-class="6"]{--cat-color:#14b8a6;--cat-bg:#f0fdfa;--cat-hover-color:#14b8a640}.category-card[data-class="7"]{--cat-color:#eab308;--cat-bg:#fefce8;--cat-hover-color:#eab30840}.category-card[data-class="8"]{--cat-color:#22c55e;--cat-bg:#f0fdf4;--cat-hover-color:#22c55e40}.category-card[data-class="9"]{--cat-color:#ec4899;--cat-bg:#fdf2f8;--cat-hover-color:#ec489940}.category-card[data-class="10"]{--cat-color:#64748b;--cat-bg:#f8fafc;--cat-hover-color:#64748b40}.category-card[data-class="11"]{--cat-color:#a855f7;--cat-bg:#faf5ff;--cat-hover-color:#a855f740}@media (width<=768px){.home-hero{border-radius:16px;padding:44px 28px}.home-hero-title{font-size:30px}.home-hero-subtitle{margin-bottom:32px;font-size:14px}.home-hero-stat-value{font-size:26px}.home-hero-stat{padding:0 18px}.category-grid{grid-template-columns:1fr}}@media (width<=480px){.home-hero{border-radius:14px;padding:36px 22px}.home-hero-title{font-size:26px}.home-hero-eyebrow{letter-spacing:2px;font-size:10px}.home-hero-stats{flex-wrap:wrap;gap:14px 0}.home-hero-stat{padding:0 16px}.home-hero-stat-value{font-size:24px}.home-hero-stat-divider{display:none}.home-page{gap:36px}}@media (prefers-reduced-motion:reduce){.home-hero-cursor{transition:none;opacity:1!important}.category-card,.category-card-marker,.category-card-arrow{transition:none}}.category-page{flex-direction:column;display:flex}.category-header{background:var(--color-bg-card);border-radius:var(--radius-card);box-shadow:var(--shadow-card);border:1px solid var(--color-border-light);margin-bottom:24px;padding:28px}.category-title{color:var(--color-text);margin:0 0 8px;font-size:24px;font-weight:700}.category-desc{color:var(--color-text-secondary);margin:0 0 8px;font-size:14px;line-height:1.6}.category-meta{color:var(--color-text-tertiary);font-size:13px}.back-home{color:var(--color-primary);margin-top:12px;font-size:14px;display:inline-block}.cat-tag-row{background:var(--color-bg-card);border-radius:var(--radius-card);border:1px solid var(--color-border-light);box-shadow:var(--shadow-card);flex-wrap:wrap;gap:8px;margin-bottom:20px;padding:16px 20px;display:flex}.cat-tag{cursor:pointer;border:1.5px solid var(--color-border);background:var(--color-bg);color:var(--color-text-secondary);white-space:nowrap;-webkit-user-select:none;user-select:none;border-radius:20px;align-items:center;gap:6px;padding:7px 14px;font-size:13.5px;font-weight:500;transition:all .18s;display:inline-flex}.cat-tag:hover{border-color:var(--color-primary);color:var(--color-primary);background:color-mix(in srgb, var(--color-primary) 6%, transparent)}.cat-tag--active{background:var(--color-primary);color:#fff;border-color:var(--color-primary);box-shadow:0 2px 8px color-mix(in srgb, var(--color-primary) 35%, transparent)}.cat-tag--active:hover{background:var(--color-primary);color:#fff;opacity:.9}.cat-tag-count{background:color-mix(in srgb, currentColor 15%, transparent);border-radius:9px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:11.5px;font-weight:600;line-height:18px;display:inline-flex}.cat-tag--active .cat-tag-count{background:#ffffff40}.tool-detail{flex-direction:column;gap:24px;display:flex}.tool-breadcrumb{color:var(--color-text-secondary,#666);align-items:center;gap:6px;padding:0;font-size:13px;display:flex}.breadcrumb-link{color:var(--color-text-secondary,#666);align-items:center;gap:4px;transition:color .15s;display:inline-flex}.breadcrumb-link:hover{color:var(--color-primary,#8b5cf6)}.breadcrumb-sep{color:var(--color-text-tertiary,#a09daa);flex-shrink:0;font-size:12px}.breadcrumb-current{color:var(--color-text,#2d2a32);font-weight:500}.tool-detail-main{background:var(--color-bg-card);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:24px}.tool-detail-related{flex-direction:column;display:flex}.tool-detail-back{text-align:center;padding:16px 0}.back-home{color:var(--color-primary);font-size:14px}.back-home:hover{text-decoration:underline}.tool-loading{color:var(--color-text-secondary,#666);flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:80px 20px;display:flex}.tool-loading-spinner{border:3px solid #00000014;border-top-color:var(--color-primary,#8b5cf6);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite tool-spin}@keyframes tool-spin{to{transform:rotate(360deg)}}.search-page{flex-direction:column;display:flex}.search-header{background:var(--color-bg-card);border-radius:var(--radius-card);box-shadow:var(--shadow-card);border:1px solid var(--color-border-light);margin-bottom:24px;padding:24px}.search-title{color:var(--color-text);align-items:center;gap:8px;margin:0 0 8px;font-size:20px;font-weight:600;display:flex}.search-meta{color:var(--color-text-secondary);margin:0;font-size:14px}.not-found{background:var(--color-bg-card);border-radius:var(--radius-card);box-shadow:var(--shadow-card);text-align:center;border:1px solid var(--color-border-light);padding:80px 24px}.not-found-code{color:var(--color-primary);opacity:.85;font-size:96px;font-weight:700;line-height:1}.not-found-title{color:var(--color-text);margin:16px 0 8px;font-size:24px}.not-found-desc{color:var(--color-text-secondary);margin:0 0 24px;font-size:14px}.not-found-home{background:var(--color-primary);color:#fff;border-radius:var(--radius-pill);font-size:14px;font-weight:var(--font-weight-medium);transition:background .2s, transform .2s var(--ease-out);align-items:center;gap:6px;padding:10px 28px;display:inline-flex}.not-found-home:hover{background:var(--color-primary-dark);color:#fff;transform:translateY(-1px)}.tool-container{background:var(--color-bg-card);border-radius:var(--radius-card);box-shadow:var(--shadow-card);margin-bottom:24px;padding:24px}.tool-container-header{border-bottom:1px solid var(--color-border-light);margin-bottom:16px;padding-bottom:12px}.tool-container-title{color:var(--color-text);letter-spacing:-.01em;margin:0 0 6px;font-size:22px}.tool-container-desc{color:var(--color-text-secondary);margin:0;font-size:14px;line-height:1.6}.tool-container-body{flex-wrap:wrap;align-items:stretch;gap:20px;display:flex}.tool-container-main{flex:480px;min-width:0}.tool-container-side{flex:0 0 320px}.tool-container-side .tool-side{flex-direction:column;gap:12px;display:flex}.form-field{margin-bottom:14px}.form-label{font-size:13px;font-weight:var(--font-weight-medium);color:var(--color-text-secondary);margin-bottom:6px;display:block}.form-input,.form-textarea,.form-select{border:1px solid var(--color-border);border-radius:var(--radius-small);background:var(--color-bg-card);width:100%;color:var(--color-text);font-size:14px;font-family:var(--font-mono);transition:border-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out);padding:10px 14px;line-height:1.5}.form-input:hover,.form-textarea:hover,.form-select:hover{border-color:color-mix(in srgb, var(--color-primary) 40%, var(--color-border))}.form-input:focus,.form-textarea:focus,.form-select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-ring);outline:none}.form-textarea{resize:vertical;min-height:120px}.form-select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%239a9aa3' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:36px}.form-checkbox{cursor:pointer;color:var(--color-text-secondary);align-items:center;gap:6px;margin-right:16px;font-size:13px;display:inline-flex}.form-checkbox input{cursor:pointer;width:16px;height:16px;accent-color:var(--color-primary)}.form-row{flex-wrap:wrap;align-items:flex-end;gap:14px;display:flex}.form-row>*{flex:140px}.tool-buttons{flex-wrap:wrap;gap:10px;display:flex}.btn{font-size:13px;font-weight:var(--font-weight-medium);border:1px solid var(--color-border);background:var(--color-bg-card);color:var(--color-text);border-radius:var(--radius-small);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;gap:6px;padding:9px 18px;display:inline-flex}.btn:hover{border-color:var(--color-primary);color:var(--color-primary);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.btn-primary{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.btn-primary:hover{background:var(--color-primary-dark);color:#fff;border-color:var(--color-primary-dark);box-shadow:var(--shadow-card-hover)}.btn-small{padding:6px 12px;font-size:12px}.output-box{background:var(--color-bg-subtle);border:1px solid var(--color-border-light);border-radius:var(--radius-small);min-height:80px;font-family:var(--font-mono);white-space:pre-wrap;word-break:break-all;color:var(--color-text);max-height:360px;padding:14px;font-size:13px;line-height:1.6;overflow:auto}.output-empty{color:var(--color-text-tertiary);font-style:italic}.output-error{color:var(--color-error-text);background:var(--color-error-bg)}.alert{border-radius:var(--radius-small);border:1px solid #0000;margin-bottom:14px;padding:11px 14px;font-size:13px;line-height:1.5}.alert-info{background:var(--color-info-bg);color:var(--color-info-text);border-color:color-mix(in srgb, var(--color-info) 20%, transparent)}.alert-success{background:var(--color-success-bg);color:var(--color-success-text);border-color:color-mix(in srgb, var(--color-success) 20%, transparent)}.alert-error{background:var(--color-error-bg);color:var(--color-error-text);border-color:color-mix(in srgb, var(--color-error) 20%, transparent)}.data-table{border-collapse:collapse;border:1px solid var(--color-border-light);border-radius:var(--radius-small);width:100%;font-size:13px;overflow:hidden}.data-table th,.data-table td{border-bottom:1px solid var(--color-border-light);text-align:left;padding:9px 12px}.data-table tr:last-child td{border-bottom:none}.data-table th{background:var(--color-bg-subtle);color:var(--color-text-secondary);font-weight:var(--font-weight-semibold)}.toast{border-radius:var(--radius-small);font-size:13px;font-weight:var(--font-weight-medium);z-index:9999;box-shadow:var(--shadow-lg);padding:10px 18px;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.toast-info{background:var(--color-primary);color:#fff}.toast-error{background:var(--color-error);color:#fff}.toast-success{background:var(--color-success);color:#fff}@media (width<=768px){.tool-container{padding:16px}.tool-container-body{flex-direction:column}.tool-container-side{flex:100%}}.tabs-container{flex-direction:column;display:flex}.tabs-nav{border-bottom:1px solid var(--color-border-light);gap:4px;display:flex;overflow-x:auto}.tabs-tab{font-size:13px;font-weight:var(--font-weight-medium);color:var(--color-text-secondary);cursor:pointer;transition:color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out);white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;padding:10px 16px}.tabs-tab:hover{color:var(--color-text)}.tabs-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.tabs-content{padding:16px 0}.progress-wrapper{align-items:center;gap:10px;display:flex}.progress-label{color:var(--color-text-secondary);flex-shrink:0;min-width:60px;font-size:13px}.progress-track{background:var(--color-border-light);border-radius:var(--radius-pill);flex:1;height:8px;overflow:hidden}.progress-bar{border-radius:var(--radius-pill);height:100%;transition:width .3s var(--ease-out)}.progress-bar-primary{background:var(--color-primary)}.progress-bar-success{background:var(--color-success)}.progress-bar-error{background:var(--color-error)}.progress-value{font-size:12px;font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-align:right;min-width:36px;font-family:var(--font-mono)}.tooltip-wrapper{display:inline-flex;position:relative}.tooltip-wrapper:after{content:attr(data-tooltip);color:#fff;border-radius:var(--radius-small);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity var(--duration-fast) var(--ease-out);z-index:200;box-shadow:var(--shadow-lg);background:#1e293b;padding:5px 9px;font-size:12px;line-height:1.4;position:absolute}.tooltip-wrapper:hover:after{opacity:1}.tooltip-top:after{bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.tooltip-bottom:after{top:calc(100% + 6px);left:50%;transform:translate(-50%)}.tooltip-left:after{top:50%;right:calc(100% + 6px);transform:translateY(-50%)}.tooltip-right:after{top:50%;left:calc(100% + 6px);transform:translateY(-50%)}.collapsible-section{border:1px solid var(--color-border-light);border-radius:var(--radius-small);overflow:hidden}.collapsible-header{width:100%;font-size:14px;font-weight:var(--font-weight-semibold);color:var(--color-text);background:var(--color-bg-subtle);cursor:pointer;transition:background var(--duration-fast) var(--ease-out);border:none;align-items:center;gap:8px;padding:11px 14px;display:flex}.collapsible-header:hover{background:var(--color-bg-hover)}.collapsible-icon{transition:transform var(--duration-fast) var(--ease-out)}.collapsible-section:not(.open) .collapsible-icon{transform:rotate(-90deg)}.collapsible-body{border-top:1px solid var(--color-border-light);padding:14px}.stack{gap:var(--space-3);flex-direction:column;display:flex}.stack-sm{gap:var(--space-2);flex-direction:column;display:flex}.row{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.row-sm{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.center-y{align-items:center;gap:var(--space-2);display:flex}.center-text{text-align:center}.center-x{justify-content:center;display:flex}.mt-2{margin-top:var(--space-2)}.mt-3{margin-top:var(--space-3)}.mt-4{margin-top:var(--space-4)}.mb-2{margin-bottom:var(--space-2)}.mb-3{margin-bottom:var(--space-3)}.mb-4{margin-bottom:var(--space-4)}.text-sm{font-size:13px}.text-xs{font-size:12px}.text-lg{font-size:18px}.text-muted{color:var(--color-text-secondary)}.text-mono{font-family:var(--font-mono)}.panel{background:var(--color-bg-subtle);border:1px solid var(--color-border-light);border-radius:var(--radius-small);padding:var(--space-3)}.code-box{background:var(--color-bg-subtle);border:1px solid var(--color-border-light);border-radius:var(--radius-small);padding:var(--space-3);font-family:var(--font-mono);white-space:pre-wrap;word-break:break-all;max-height:420px;color:var(--color-text);font-size:13px;line-height:1.6;overflow:auto}.badge{font-size:12px;font-weight:var(--font-weight-medium);border-radius:var(--radius-pill);background:var(--color-bg-subtle);color:var(--color-text-secondary);border:1px solid var(--color-border-light);align-items:center;padding:2px 10px;display:inline-flex}.badge-primary{background:var(--color-primary-light);color:var(--color-primary-dark);border-color:color-mix(in srgb, var(--color-primary) 25%, transparent)}.badge-success{background:var(--color-success-bg);color:var(--color-success-text);border-color:color-mix(in srgb, var(--color-success) 25%, transparent)}.badge-error{background:var(--color-error-bg);color:var(--color-error-text);border-color:color-mix(in srgb, var(--color-error) 25%, transparent)}.badge-warning{background:var(--color-warning-bg);color:var(--color-warning-text);border-color:color-mix(in srgb, var(--color-warning) 25%, transparent)}.divider{background:var(--color-border-light);height:1px;margin:var(--space-3) 0;border:none}.btn-secondary{background:var(--color-bg-subtle);color:var(--color-text);border:1px solid var(--color-border)}.btn-secondary:hover{background:var(--color-bg-hover)}.btn-success{background:var(--color-success);color:#fff}.btn-success:hover{filter:brightness(.94)}.btn-danger{background:var(--color-error);color:#fff}.btn-danger:hover{filter:brightness(.94)}.btn-warning{background:var(--color-warning);color:#fff}.btn-warning:hover{filter:brightness(.94)}.file-picker{border:1px dashed var(--color-border-light);border-radius:var(--radius-small);background:var(--color-bg-subtle);flex-wrap:wrap;align-items:center;gap:10px;padding:10px 12px;transition:border-color .15s,background .15s;display:flex}.file-picker.is-dragover{border-color:var(--color-primary);background:var(--color-primary-light)}.file-picker-input{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.file-picker-btn{cursor:pointer;align-items:center;gap:6px;display:inline-flex}.file-picker-name{color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;max-width:260px;font-size:13px;overflow:hidden}.file-picker-hint{color:var(--color-text-secondary);font-size:12px}:root{--color-primary:#8b5cf6;--color-primary-dark:#7c3aed;--color-primary-light:#f3f0ff;--color-accent:#a78bfa;--color-accent-light:#faf8ff;--color-bg:#faf9f7;--color-bg-card:#fff;--color-bg-subtle:#f4f3f0;--color-bg-hover:#f0edf8;--color-text:#2d2a32;--color-text-secondary:#6b6779;--color-text-tertiary:#a09daa;--color-border:#e8e6e1;--color-border-light:#f1efe9;--color-success:#22c55e;--color-success-bg:#f0fdf4;--color-success-text:#15803d;--color-warning:#f59e0b;--color-warning-bg:#fffbeb;--color-warning-text:#b45309;--color-error:#ef4444;--color-error-bg:#fef2f2;--color-error-text:#dc2626;--color-info:var(--color-primary);--color-info-bg:var(--color-primary-light);--color-info-text:var(--color-primary-dark);--shadow-sm:0 1px 3px #2d2a3208;--shadow-card:0 2px 8px #2d2a320a, 0 1px 3px #2d2a3208;--shadow-card-hover:0 12px 32px #8b5cf614, 0 4px 12px #2d2a320d;--shadow-lg:0 20px 48px #2d2a321a;--radius-card:16px;--radius-small:10px;--radius-pill:999px;--font-family:"Inter", "PingFang SC", "Microsoft YaHei", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", "SF Mono", "Fira Code", "Cascadia Code", monospace;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--color-ring:#8b5cf640;--max-width:1200px;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in-out:cubic-bezier(.45, 0, .55, 1);--duration-fast:.15s;--duration-normal:.25s}[data-theme=dark]{--color-bg:#1c1a22;--color-bg-card:#252330;--color-bg-subtle:#2d2b39;--color-bg-hover:#353240;--color-text:#e8e5f0;--color-text-secondary:#a8a4b4;--color-text-tertiary:#767382;--color-border:#3d3a4a;--color-border-light:#2d2b38;--color-primary:#c4b5fd;--color-primary-dark:#a78bfa;--color-primary-light:#2e1a5e;--color-accent:#d8b4fe;--color-accent-light:#1e103a;--color-ring:#c4b5fd4d;--shadow-card:0 2px 8px #0003, 0 1px 3px #0000004d;--shadow-card-hover:0 10px 28px #8b5cf61f, 0 2px 8px #0000004d;--shadow-lg:0 20px 48px #00000059}[data-theme=high-contrast]{--color-bg:#000;--color-bg-card:#0a0a0a;--color-bg-subtle:#141414;--color-bg-hover:#1c1917;--color-text:#fff;--color-text-secondary:#fbbf24;--color-text-tertiary:#d1d5db;--color-border:#fff;--color-border-light:#6b7280;--color-primary:#ffeb3b;--color-primary-dark:#f59e0b;--color-primary-light:#1c1917;--color-accent:#22d3ee;--color-accent-light:#0c4a6e;--color-ring:#ffeb3b;--shadow-card:0 0 0 1px #fff;--shadow-card-hover:0 0 0 2px #ffeb3b}[data-theme=colorful]{--color-bg:#0f172a;--color-bg-card:#1e293b;--color-bg-subtle:#243049;--color-bg-hover:#2c3a57;--color-text:#f1f5f9;--color-text-secondary:#cbd5e1;--color-text-tertiary:#94a3b8;--color-border:#ffffff26;--color-border-light:#ffffff14;--color-primary:#f472b6;--color-primary-dark:#ec4899;--color-primary-light:#500724;--color-accent:#34d399;--color-accent-light:#022c22;--color-ring:#f472b659;--shadow-card:0 4px 20px #f472b61a, 0 1px 3px #0000004d;--shadow-card-hover:0 8px 32px #f472b633, 0 2px 8px #0000004d}[data-theme=tech-blue]{--color-primary:#2563eb;--color-primary-dark:#1d4ed8;--color-primary-light:#dbeafe;--color-accent:#0ea5e9;--color-accent-light:#e0f2fe;--color-bg:#f8fafc;--color-bg-card:#fff;--color-bg-subtle:#f1f5f9;--color-bg-hover:#eef4ff;--color-text:#0f172a;--color-text-secondary:#64748b;--color-text-tertiary:#94a3b8;--color-border:#e2e8f0;--color-border-light:#f1f5f9;--color-ring:#2563eb4d;--shadow-card:0 1px 3px #2563eb0f, 0 1px 2px #0000000a;--shadow-card-hover:0 8px 24px #2563eb1f, 0 2px 8px #0000000f}[data-theme=emerald]{--color-primary:#059669;--color-primary-dark:#047857;--color-primary-light:#d1fae5;--color-accent:#0891b2;--color-accent-light:#cffafe;--color-bg:#f0fdf4;--color-bg-card:#fff;--color-bg-subtle:#ecfdf5;--color-bg-hover:#e6f9ee;--color-text:#064e3b;--color-text-secondary:#527c68;--color-text-tertiary:#6b9080;--color-border:#d1fae5;--color-border-light:#ecfdf5;--color-ring:#0596694d;--shadow-card:0 1px 3px #0596690f, 0 1px 2px #0000000a;--shadow-card-hover:0 8px 24px #0596691f, 0 2px 8px #0000000f}[data-theme=violet-ai]{--color-primary:#7c3aed;--color-primary-dark:#6d28d9;--color-primary-light:#ede9fe;--color-accent:#ec4899;--color-accent-light:#fce7f3;--color-bg:#faf5ff;--color-bg-card:#fff;--color-bg-subtle:#f3eefc;--color-bg-hover:#efe7fd;--color-text:#2e1065;--color-text-secondary:#7c7c8a;--color-text-tertiary:#a1a1aa;--color-border:#e9d5ff;--color-border-light:#f3e8ff;--color-ring:#7c3aed4d;--shadow-card:0 1px 3px #7c3aed0f, 0 1px 2px #0000000a;--shadow-card-hover:0 8px 24px #7c3aed1f, 0 2px 8px #0000000f}[data-theme=glassmorphism]{--color-primary:#a78bfa;--color-primary-dark:#7c3aed;--color-primary-light:#a78bfa26;--color-accent:#f093fb;--color-accent-light:#f093fb1a;--color-bg:#0f172a;--color-bg-card:#ffffff14;--color-bg-subtle:#ffffff0d;--color-bg-hover:#ffffff1f;--color-text:#fff;--color-text-secondary:#ffffffb3;--color-text-tertiary:#fff6;--color-border:#ffffff2e;--color-border-light:#ffffff14;--color-ring:#a78bfa66;--shadow-card:0 8px 32px #0000004d;--shadow-card-hover:0 16px 48px #667eea33}[data-theme=dark-pro]{--color-primary:#60a5fa;--color-primary-dark:#3b82f6;--color-primary-light:#60a5fa1f;--color-accent:#a78bfa;--color-accent-light:#a78bfa1a;--color-bg:#0f172a;--color-bg-card:#1e293b;--color-bg-subtle:#243049;--color-bg-hover:#2c3a57;--color-text:#f1f5f9;--color-text-secondary:#94a3b8;--color-text-tertiary:#64748b;--color-border:#334155;--color-border-light:#1e293b;--color-ring:#60a5fa59;--shadow-card:0 1px 3px #0000004d, 0 1px 2px #0006;--shadow-card-hover:0 8px 24px #60a5fa26, 0 2px 8px #0006}[data-theme=warm-orange]{--color-primary:#f97316;--color-primary-dark:#ea580c;--color-primary-light:#ffedd5;--color-accent:#fbbf24;--color-accent-light:#fef3c7;--color-bg:#fff7ed;--color-bg-card:#fff;--color-bg-subtle:#fff4e8;--color-bg-hover:#ffeedb;--color-text:#431407;--color-text-secondary:#9a3412;--color-text-tertiary:#c2410c;--color-border:#fed7aa;--color-border-light:#ffedd5;--color-ring:#f973164d;--shadow-card:0 1px 3px #f973160f, 0 1px 2px #0000000a;--shadow-card-hover:0 8px 24px #f973161f, 0 2px 8px #0000000f}*{box-sizing:border-box}html,body{font-family:var(--font-family);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv02", "cv03", "cv04", "cv11";margin:0;padding:0;font-size:15px;line-height:1.6}a{color:inherit;text-decoration:none}a:hover{color:var(--color-primary)}button{cursor:pointer;background:0 0;border:none;font-family:inherit}input,textarea,select{outline:none;font-family:inherit}img{max-width:100%;display:block}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,:root{--json-key:#2c3e50;--json-string:#1e8e3e;--json-number:#1a73e8;--json-boolean:#8e44ad;--json-null:#d93025;--json-punct:var(--color-text-secondary)}[data-theme=dark]{--json-key:#c8c3d4;--json-string:#4ade80;--json-number:#60a5fa;--json-boolean:#c084fc;--json-null:#f87171;--json-punct:var(--color-text-secondary)}[data-theme=high-contrast]{--json-key:#fff;--json-string:#22d3ee;--json-number:#60a5fa;--json-boolean:#f472b6;--json-null:#ff6b6b;--json-punct:#fbbf24}[tabindex]:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-small)}.container{max-width:var(--max-width);margin:0 auto;padding:0 20px}.page{min-height:calc(100vh - 200px);padding:28px 0}.section-title{font-size:18px;font-weight:var(--font-weight-semibold);color:var(--color-text);letter-spacing:-.01em;align-items:center;gap:10px;margin:0 0 18px;display:flex}.section-title:before{content:"";background:linear-gradient(180deg, var(--color-primary), var(--color-accent));border-radius:var(--radius-pill);width:3px;height:18px;display:inline-block}.tool-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin-bottom:32px;display:grid}.empty-tip{text-align:center;color:var(--color-text-secondary);background:var(--color-bg-card);border-radius:var(--radius-card);border:1px solid var(--color-border);padding:60px 20px}@media (width<=480px){:root{--max-width:100%}.container{padding:0 14px}.page{padding:16px 0}.tool-grid{grid-template-columns:1fr;gap:12px;margin-bottom:24px}.section-title{margin:0 0 12px;font-size:16px}.empty-tip{padding:40px 16px;font-size:14px}}@media (width>=481px) and (width<=768px){.tool-grid{grid-template-columns:repeat(2,1fr)}}@media (width>=769px) and (width<=1200px){.tool-grid{grid-template-columns:repeat(3,1fr)}}@media (width>=1201px){:root{--max-width:1320px}.tool-grid{grid-template-columns:repeat(4,1fr);gap:18px}.section-title{font-size:19px}.empty-tip{padding:80px 32px;font-size:16px}}
