:root{--bg:#0d1117;--bg-soft:#161b22;--bg-card:#1c2330;--border:#2c3547;--text:#e8edf4;--text-dim:#9aa7b8;--accent:#4ade9e;--accent-dim:#2a7a58;--accent-ink:#06110c;--danger:#f0707f;--radius:12px;--font:"Inter", -apple-system, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;--mono:"JetBrains Mono", "SFMono-Regular", Consolas, monospace}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;line-height:1.6}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.container{max-width:1080px;margin:0 auto;padding:0 20px}.site-header{z-index:50;backdrop-filter:blur(12px);border-bottom:1px solid var(--border);background:#0d1117d9;position:sticky;top:0}.site-header .container{justify-content:space-between;align-items:center;height:60px;display:flex}.brand{color:var(--text);align-items:center;gap:10px;font-size:1.2rem;font-weight:700;display:flex}.brand:hover{text-decoration:none}.brand .logo-mark{background:linear-gradient(135deg, var(--accent), #22c1c3);width:30px;height:30px;color:var(--accent-ink);border-radius:8px;place-items:center;font-size:15px;font-weight:800;display:grid}.header-nav{align-items:center;gap:18px;font-size:.92rem;display:flex}.header-nav a{color:var(--text-dim)}.header-nav a:hover{color:var(--text);text-decoration:none}.lang-switch{border:1px solid var(--border);border-radius:999px;font-size:.82rem;display:flex;overflow:hidden}.lang-switch a{color:var(--text-dim);padding:4px 12px}.lang-switch a.active{background:var(--accent);color:var(--accent-ink);font-weight:600}.lang-switch a:not(.active):hover{background:var(--bg-card)}.hero{text-align:center;padding:72px 0 40px}.hero h1{letter-spacing:-.02em;margin:0 0 16px;font-size:clamp(1.9rem,4.5vw,3rem);line-height:1.2}.hero h1 .grad{background:linear-gradient(90deg, var(--accent), #22c1c3);color:#0000;-webkit-background-clip:text;background-clip:text}.hero p{color:var(--text-dim);max-width:620px;margin:0 auto 24px;font-size:1.08rem}.privacy-badges{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.badge{border:1px solid var(--border);background:var(--bg-soft);color:var(--text-dim);border-radius:999px;align-items:center;gap:6px;padding:6px 14px;font-size:.85rem;display:inline-flex}.badge svg{color:var(--accent)}.tool-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;padding:32px 0 64px;display:grid}.tool-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);padding:20px;transition:transform .15s,border-color .15s;display:block}.tool-card:hover{border-color:var(--accent-dim);text-decoration:none;transform:translateY(-3px)}.tool-card .icon{background:var(--bg-soft);border-radius:10px;place-items:center;width:42px;height:42px;margin-bottom:12px;font-size:20px;display:grid}.tool-card h3{margin:0 0 6px;font-size:1.02rem}.tool-card p{color:var(--text-dim);margin:0;font-size:.88rem}.category-filter{flex-wrap:wrap;justify-content:center;gap:8px;padding-top:8px;display:flex}.category-filter button{border:1px solid var(--border);background:var(--bg-soft);color:var(--text-dim);cursor:pointer;font-size:.88rem;font-family:var(--font);border-radius:999px;padding:6px 16px}.category-filter button.active,.category-filter button:hover{border-color:var(--accent);color:var(--accent)}.tool-shell{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);margin:32px 0;padding:28px}.tool-page-title{letter-spacing:-.01em;margin:28px 0 6px;font-size:clamp(1.5rem,3vw,2.1rem)}.tool-page-desc{color:var(--text-dim);margin:0}.tool-content h2{margin:40px 0 12px;font-size:1.3rem}.tool-content p,.tool-content li{color:var(--text-dim)}.tool-content ol,.tool-content ul{padding-left:22px}.faq-item{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-soft);margin-bottom:10px;overflow:hidden}.faq-item summary{cursor:pointer;padding:14px 18px;font-weight:600;list-style:none}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary:after{content:"+";float:right;color:var(--accent);font-weight:700}.faq-item[open] summary:after{content:"−"}.faq-item .faq-body{color:var(--text-dim);padding:0 18px 16px;font-size:.95rem}.related-tools{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin:12px 0 56px;display:grid}.related-tools a{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-soft);color:var(--text);padding:14px 16px;font-size:.92rem;display:block}.related-tools a:hover{border-color:var(--accent-dim);text-decoration:none}.tv-dropzone{border:2px dashed var(--border);border-radius:var(--radius);text-align:center;color:var(--text-dim);cursor:pointer;padding:40px 20px;transition:border-color .15s,background .15s}.tv-dropzone:hover,.tv-dropzone.dragover{border-color:var(--accent);background:#4ade9e0f}.tv-btn{background:var(--accent);color:var(--accent-ink);cursor:pointer;font-size:.95rem;font-weight:700;font-family:var(--font);border:none;border-radius:10px;align-items:center;gap:8px;padding:11px 22px;display:inline-flex}.tv-btn:hover{filter:brightness(1.08)}.tv-btn:disabled{opacity:.45;cursor:not-allowed}.tv-btn.secondary{background:var(--bg-soft);color:var(--text);border:1px solid var(--border)}.tv-input,.tv-select,.tv-textarea{background:var(--bg-soft);border:1px solid var(--border);color:var(--text);font-size:.95rem;font-family:var(--font);border-radius:10px;padding:10px 14px}.tv-textarea{resize:vertical;width:100%;min-height:160px;font-family:var(--mono);font-size:.88rem}.tv-input:focus,.tv-select:focus,.tv-textarea:focus{border-color:var(--accent);outline:none}.tv-label{color:var(--text-dim);margin-bottom:6px;font-size:.85rem;display:block}.tv-row{flex-wrap:wrap;align-items:flex-end;gap:14px;display:flex}.tv-field{flex-direction:column;display:flex}.tv-note{color:var(--text-dim);font-size:.82rem}.tv-error{color:var(--danger);font-size:.88rem}.tv-success{color:var(--accent);font-size:.88rem}.tv-progress{background:var(--bg-soft);border-radius:999px;height:8px;overflow:hidden}.tv-progress>div{background:var(--accent);width:0%;height:100%;transition:width .2s}.tv-result-list{flex-direction:column;gap:10px;margin-top:18px;display:flex}.tv-result-item{border:1px solid var(--border);background:var(--bg-soft);border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;font-size:.9rem;display:flex}.tv-result-item .meta{color:var(--text-dim);font-size:.82rem}.wall-item{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);margin-bottom:12px;padding:16px 20px}.wall-meta{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;font-size:.78rem;display:flex}.wall-kind{border-radius:999px;padding:2px 10px;font-weight:600}.wall-kind.request{color:var(--accent);background:#4ade9e24}.wall-kind.feedback{color:var(--danger);background:#f0707f24}.wall-tool{color:var(--text-dim);border:1px solid var(--border);border-radius:999px;padding:2px 10px}.wall-status{background:var(--bg-soft);color:var(--text-dim);border-radius:999px;padding:2px 10px}.wall-status.building{color:#f5b342;background:#f5b34224}.wall-status.live{color:var(--accent);background:#4ade9e24}a.wall-status.live:hover{filter:brightness(1.15);text-decoration:none}.wall-date{color:var(--text-dim);margin-left:auto}.wall-desc{color:var(--text);margin:0;font-size:.95rem}.request-cta{text-align:center;border:1px solid var(--border);border-radius:var(--radius);background:linear-gradient(180deg, var(--bg-card), var(--bg-soft));margin:0 0 64px;padding:40px 24px}.request-cta h2{margin:0 0 10px;font-size:1.4rem}.request-cta p{color:var(--text-dim);max-width:560px;margin:0 auto 20px}.request-cta .tv-btn:hover{text-decoration:none}.site-footer{border-top:1px solid var(--border);color:var(--text-dim);padding:36px 0;font-size:.88rem}.site-footer .container{flex-wrap:wrap;justify-content:space-between;gap:16px;display:flex}.site-footer a{color:var(--text-dim)}.site-footer a:hover{color:var(--text)}@media (width<=640px){.hero{padding:48px 0 28px}.tool-shell{padding:18px}.header-nav .nav-tools-link{display:none}}
