:root{--bg: #f4f5fb;--bg-grad-top: #eef0fb;--surface: #ffffff;--surface-2: #f8f9fd;--border: #e6e8f0;--border-strong: #d7dae6;--text: #1a1c24;--text-2: #565b6b;--text-3: #8b90a0;--primary: #4f46e5;--primary-600: #4338ca;--primary-700: #3730a3;--primary-50: #eef0fe;--primary-100: #e0e3fd;--success: #16a34a;--success-50: #ecfdf3;--warning: #d97706;--warning-50: #fff7ed;--danger: #dc2626;--danger-50: #fef2f2;--radius-sm: 8px;--radius: 12px;--radius-lg: 18px;--radius-xl: 24px;--shadow-sm: 0 1px 2px rgba(20, 24, 40, .05), 0 1px 3px rgba(20, 24, 40, .06);--shadow: 0 4px 14px rgba(20, 24, 40, .07), 0 2px 6px rgba(20, 24, 40, .05);--shadow-lg: 0 18px 40px rgba(20, 24, 40, .12), 0 6px 14px rgba(20, 24, 40, .06);--shadow-primary: 0 8px 22px rgba(79, 70, 229, .32);--font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", sans-serif;--mono: "SF Mono", "JetBrains Mono", "Fira Code", Consolas, monospace}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font);color:var(--text);background:radial-gradient(1200px 600px at 50% -10%,var(--bg-grad-top),transparent 60%),var(--bg);background-attachment:fixed;min-height:100vh;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;line-height:1.5}#app{max-width:1080px;margin:0 auto;padding:0 20px 80px}::selection{background:var(--primary-100)}.ic{display:inline-flex}.ic svg{width:1em;height:1em;display:block}.topbar{display:flex;align-items:center;justify-content:space-between;padding:22px 0 8px}.brand{display:flex;align-items:center;gap:12px}.brand-logo{width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,#6366f1,#4f46e5 55%,#4338ca);display:grid;place-items:center;color:#fff;box-shadow:var(--shadow-primary);font-weight:800;font-size:20px}.brand-name{font-size:18px;font-weight:700;letter-spacing:-.01em}.brand-name small{display:block;font-size:12px;font-weight:500;color:var(--text-3);letter-spacing:0}.privacy-pill{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;font-size:13px;font-weight:600;color:var(--success);background:var(--success-50);border:1px solid #c8f0d6;padding:7px 13px;border-radius:999px}.privacy-pill svg{width:15px;height:15px}.topbar-right{display:inline-flex;align-items:center;gap:10px}.lang-select{font-family:inherit;font-size:13px;font-weight:600;color:var(--text-2);background:var(--surface);border:1px solid var(--border-strong);border-radius:999px;padding:7px 11px;cursor:pointer;transition:border-color .14s ease,color .14s ease}.lang-select:hover{border-color:var(--primary);color:var(--primary)}.lang-select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-100)}.hero{text-align:center;padding:40px 0 34px}.hero h1{font-size:clamp(28px,4.5vw,42px);font-weight:800;letter-spacing:-.02em;margin:0 0 14px}.hero h1 .accent{background:linear-gradient(120deg,#6366f1,#4f46e5);-webkit-background-clip:text;background-clip:text;color:transparent}.hero p{font-size:17px;color:var(--text-2);margin:0 auto;max-width:560px}.hero .trust{display:flex;gap:18px;justify-content:center;flex-wrap:wrap;margin-top:22px;font-size:13.5px;color:var(--text-3);font-weight:500}.hero .trust span{display:inline-flex;align-items:center;gap:6px}.hero .trust svg{width:16px;height:16px;color:var(--primary)}.tool-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(238px,1fr));gap:16px;margin-top:8px}.tool-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:22px;cursor:pointer;display:flex;flex-direction:column;gap:12px;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;box-shadow:var(--shadow-sm);position:relative;overflow:hidden}.tool-card:after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,transparent 60%,rgba(79,70,229,.05));opacity:0;transition:opacity .18s ease}.tool-card:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:var(--primary-100)}.tool-card:hover:after{opacity:1}.tool-card:active{transform:translateY(-1px)}.tool-icon{width:50px;height:50px;border-radius:14px;display:grid;place-items:center;background:var(--tint, var(--primary-50));color:var(--tint-ink, var(--primary))}.tool-icon svg{width:26px;height:26px}.tool-card h3{margin:2px 0 0;font-size:17px;font-weight:700}.tool-card p{margin:0;font-size:13.5px;color:var(--text-2);line-height:1.55}.tool-card .go{margin-top:auto;display:inline-flex;align-items:center;gap:5px;font-size:13.5px;font-weight:600;color:var(--primary);opacity:0;transform:translate(-4px);transition:all .18s ease}.tool-card:hover .go{opacity:1;transform:translate(0)}.section-title{text-align:center;font-size:23px;font-weight:800;letter-spacing:-.01em;margin:52px 0 20px}.feature-trio{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-top:0}.feature{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:22px;box-shadow:var(--shadow-sm)}.feature h3{margin:0 0 8px;font-size:16.5px;font-weight:700}.feature p{margin:0;color:var(--text-2);font-size:14.5px;line-height:1.6}.panel{animation:fadeUp .3s ease}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.panel-head{display:flex;align-items:center;gap:14px;padding:18px 0 4px}.back-btn{display:inline-flex;align-items:center;gap:6px;cursor:pointer;flex-shrink:0;white-space:nowrap;background:var(--surface);border:1px solid var(--border);color:var(--text-2);font-size:14px;font-weight:600;padding:9px 14px;border-radius:10px;transition:all .15s ease;box-shadow:var(--shadow-sm)}.back-btn:hover{border-color:var(--border-strong);color:var(--text)}.panel-title{display:flex;align-items:center;gap:12px;flex:1;min-width:0}.panel-title .tool-icon{width:46px;height:46px}.panel-title h2{margin:0;font-size:21px;font-weight:750}.panel-title p{margin:2px 0 0;font-size:13.5px;color:var(--text-2)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:22px;margin-top:16px}.card+.card{margin-top:14px}.card-title{display:flex;align-items:center;gap:9px;font-size:15px;font-weight:700;margin:0 0 16px}.card-title .step{width:22px;height:22px;border-radius:7px;background:var(--primary-50);color:var(--primary);display:grid;place-items:center;font-size:12.5px;font-weight:800}.dropzone{display:flex;flex-direction:column;align-items:center;border:2px dashed var(--border-strong);border-radius:var(--radius);background:var(--surface-2);padding:34px 20px;text-align:center;cursor:pointer;transition:all .16s ease;position:relative}.dropzone:hover{border-color:var(--primary);background:var(--primary-50)}.dropzone.dragging{border-color:var(--primary);background:var(--primary-50);transform:scale(1.005)}.dropzone .dz-icon{width:46px;height:46px;margin:0 0 12px;color:var(--primary);opacity:.8}.dropzone .dz-icon svg{width:100%;height:100%;display:block}.dropzone .dz-main{font-size:15.5px;font-weight:600;color:var(--text)}.dropzone .dz-main b{color:var(--primary)}.dropzone .dz-sub{font-size:13px;color:var(--text-3);margin-top:5px}.dropzone input[type=file]{display:none}.file-list{display:flex;flex-direction:column;gap:10px;margin-top:16px}.file-item{display:flex;align-items:center;gap:12px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);padding:11px 12px;animation:fadeUp .2s ease}.file-thumb{width:52px;height:52px;border-radius:9px;flex-shrink:0;background:#fff center/cover no-repeat;border:1px solid var(--border);display:grid;place-items:center;color:var(--text-3);overflow:hidden}.file-thumb svg{width:24px;height:24px}.file-thumb .pdf-badge{font-size:11px;font-weight:800;color:var(--danger);letter-spacing:.02em}.file-meta{flex:1;min-width:0}.file-name{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-sub{font-size:12.5px;color:var(--text-3);margin-top:2px}.file-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.icon-btn{width:32px;height:32px;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--text-3);cursor:pointer;display:grid;place-items:center;transition:all .14s ease}.icon-btn:hover{background:#fff;border-color:var(--border);color:var(--text)}.icon-btn:disabled{opacity:.35;cursor:not-allowed}.icon-btn.danger:hover{background:var(--danger-50);color:var(--danger);border-color:#f4c9c9}.icon-btn svg{width:17px;height:17px}.list-foot{display:flex;align-items:center;justify-content:center;gap:12px;padding-top:2px;font-size:13px;color:var(--text-3)}.list-foot b{color:var(--text-2)}.add-more{font-family:inherit;font-size:13px;font-weight:600;color:var(--primary);background:var(--surface);border:1px dashed var(--border-strong);border-radius:999px;padding:7px 15px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:all .14s ease;box-shadow:var(--shadow-sm)}.add-more:hover{border-color:var(--primary);background:var(--primary-50)}.add-more svg{width:14px;height:14px}.settings{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:16px 20px}.field{display:flex;flex-direction:column;gap:7px}.field>label{font-size:13px;font-weight:600;color:var(--text-2)}.field .hint{font-size:11.5px;color:var(--text-3);font-weight:400}input[type=text],input[type=password],input[type=number],select{font-family:inherit;font-size:14px;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:10px;padding:10px 12px;width:100%;transition:border-color .14s ease,box-shadow .14s ease}input:focus,select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-100)}input[type=number]{font-variant-numeric:tabular-nums}input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:999px;background:var(--border);outline:none;margin:8px 0}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:var(--primary);cursor:pointer;border:3px solid #fff;box-shadow:var(--shadow-sm)}input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--primary);cursor:pointer;border:3px solid #fff;box-shadow:var(--shadow-sm)}.range-row{display:flex;align-items:center;gap:12px}.range-row output{font-size:13px;font-weight:700;color:var(--primary);min-width:42px;text-align:right;font-variant-numeric:tabular-nums}input[type=color]{-webkit-appearance:none;appearance:none;width:42px;height:34px;padding:0;border:1px solid var(--border-strong);border-radius:9px;background:none;cursor:pointer}input[type=color]::-webkit-color-swatch-wrapper{padding:3px}input[type=color]::-webkit-color-swatch{border:none;border-radius:6px}input[type=color]::-moz-color-swatch{border:none;border-radius:6px}.color-row{display:flex;align-items:center;gap:10px}.color-row .hex{font-family:var(--mono);font-size:13px;color:var(--text-2)}.seg{display:inline-flex;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:3px;gap:3px}.seg button{font-family:inherit;font-size:13px;font-weight:600;color:var(--text-2);background:transparent;border:none;border-radius:7px;padding:7px 13px;cursor:pointer;transition:all .14s ease;white-space:nowrap}.seg button:hover{color:var(--text)}.seg button.active{background:#fff;color:var(--primary);box-shadow:var(--shadow-sm)}.check{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:14px;color:var(--text);user-select:none}.check input{position:absolute;opacity:0;width:0;height:0}.check .box{width:20px;height:20px;border-radius:6px;border:1.5px solid var(--border-strong);background:#fff;display:grid;place-items:center;transition:all .14s ease;flex-shrink:0}.check .box svg{width:13px;height:13px;color:#fff;opacity:0;transform:scale(.6);transition:all .14s ease}.check input:checked+.box{background:var(--primary);border-color:var(--primary)}.check input:checked+.box svg{opacity:1;transform:scale(1)}.btn{font-family:inherit;font-size:15px;font-weight:650;cursor:pointer;border-radius:12px;padding:13px 22px;border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;gap:9px;transition:all .16s ease}.btn svg{width:18px;height:18px}.btn-primary{background:linear-gradient(135deg,#6366f1,#4f46e5);color:#fff;box-shadow:var(--shadow-primary)}.btn-primary:hover{filter:brightness(1.05);transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-primary:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none;filter:none}.btn-ghost{background:var(--surface);border-color:var(--border-strong);color:var(--text)}.btn-ghost:hover{border-color:var(--primary);color:var(--primary)}.btn-block{width:100%}.action-row{display:flex;gap:12px;margin-top:20px;align-items:center}.action-row .btn{flex:1}.spinner{width:17px;height:17px;border:2.5px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}.spinner.dark{border-color:#4f46e540;border-top-color:var(--primary)}@keyframes spin{to{transform:rotate(360deg)}}.result{display:flex;align-items:center;gap:16px;margin-top:18px;background:var(--success-50);border:1px solid #c8f0d6;border-radius:var(--radius);padding:16px 18px;animation:fadeUp .3s ease}.result .r-icon{width:44px;height:44px;border-radius:12px;background:#fff;display:grid;place-items:center;color:var(--success);box-shadow:var(--shadow-sm);flex-shrink:0}.result .r-icon svg{width:24px;height:24px}.result .r-text{flex:1;min-width:0}.result .r-title{font-size:15px;font-weight:700;color:#15803d}.result .r-sub{font-size:13px;color:#16a34a;margin-top:2px}.result .r-btn{font-family:inherit;font-size:14px;font-weight:700;cursor:pointer;background:var(--success);color:#fff;border:none;border-radius:10px;padding:11px 18px;display:inline-flex;align-items:center;gap:8px;transition:filter .14s ease}.result .r-btn:hover{filter:brightness(1.06)}.result .r-btn svg{width:17px;height:17px}.error-box{margin-top:16px;background:var(--danger-50);border:1px solid #f4c9c9;border-radius:var(--radius);padding:14px 16px;color:var(--danger);font-size:14px;font-weight:500;display:flex;gap:10px;align-items:flex-start;animation:fadeUp .25s ease}.error-box svg{width:19px;height:19px;flex-shrink:0;margin-top:1px}.empty-note{font-size:13px;color:var(--text-3);text-align:center;padding:6px 0}.tool-doc{max-width:760px;margin:44px auto 0}.tool-doc>p{color:var(--text-2);font-size:15.5px;line-height:1.7;margin:0 0 8px}.tool-doc h2{font-size:21px;font-weight:750;letter-spacing:-.01em;margin:30px 0 12px}.tool-doc ol,.tool-doc ul{padding-left:22px;margin:0;counter-reset:none}.tool-doc li{color:var(--text-2);font-size:15px;line-height:1.65;margin-bottom:8px}.tool-doc li::marker{color:var(--primary);font-weight:700}.doc-note{display:flex;align-items:flex-start;gap:10px;margin-top:26px;padding:13px 16px;background:var(--primary-50);border:1px solid var(--primary-100);border-radius:var(--radius);color:var(--primary-700);font-size:13.5px;font-weight:500;line-height:1.6}.doc-note svg{width:17px;height:17px;flex-shrink:0;margin-top:2px;color:var(--primary)}.perm-row{border-top:1px solid var(--border);padding-top:16px}.perm-title{font-size:13px;font-weight:700;color:var(--text-2);margin-bottom:12px}.perm-list{display:flex;flex-direction:column;gap:12px}#toast-root{position:fixed;bottom:24px;left:50%;transform:translate(-50%);z-index:100;display:flex;flex-direction:column;gap:10px;align-items:center;pointer-events:none}.toast{background:#1a1c24;color:#fff;font-size:14px;font-weight:500;padding:12px 20px;border-radius:12px;box-shadow:var(--shadow-lg);display:flex;align-items:center;gap:9px;animation:toastIn .28s cubic-bezier(.2,.9,.3,1.2)}.toast svg{width:17px;height:17px}.toast.success{background:#15803d}.toast.error{background:#dc2626}@keyframes toastIn{0%{opacity:0;transform:translateY(14px) scale(.96)}to{opacity:1;transform:none}}.toast.out{animation:toastOut .25s ease forwards}@keyframes toastOut{to{opacity:0;transform:translateY(10px) scale(.96)}}.footer{text-align:center;margin-top:56px;color:var(--text-3);font-size:13px;line-height:1.7}.footer a{color:var(--text-2);text-decoration:none}@media (max-width: 700px){.panel-lang{display:none}}@media (max-width: 560px){#app{padding:0 14px 60px}.topbar{flex-direction:column;gap:12px;align-items:flex-start}.topbar-right{flex-wrap:wrap}.settings{grid-template-columns:1fr}.action-row{flex-direction:column}.action-row .btn{width:100%}.result{flex-wrap:wrap}.result .r-btn{width:100%;justify-content:center}}
