.app-layout[data-v-2188186e]{height:100vh;display:flex;overflow:hidden}.main-content[data-v-2188186e]{background:var(--bg-primary);flex:1;padding:28px 36px;overflow-y:auto}.sidebar[data-v-2188186e]{flex-direction:column;display:flex;overflow:hidden}.sidebar-nav[data-v-2188186e]{flex:1;overflow:hidden auto}.sidebar-nav[data-v-2188186e]::-webkit-scrollbar{width:4px}.sidebar-nav[data-v-2188186e]::-webkit-scrollbar-track{background:0 0}.sidebar-nav[data-v-2188186e]::-webkit-scrollbar-thumb{background:#0000001f;border-radius:4px}.sidebar-nav[data-v-2188186e]::-webkit-scrollbar-thumb:hover{background:#00000038}.nav-group-title[data-v-2188186e]{cursor:pointer;-webkit-user-select:none;user-select:none;letter-spacing:.3px;color:#374151;border-radius:6px;justify-content:space-between;align-items:center;font-size:14px;font-weight:700;transition:background .15s;display:flex}.nav-group-title[data-v-2188186e]:hover{color:#1f2937;background:#6366f10f}.group-icon[data-v-2188186e]{margin-right:6px;font-size:16px}.group-arrow[data-v-2188186e]{color:#9ca3af;margin-right:4px;font-size:11px;transition:transform .2s}.group-arrow.open[data-v-2188186e]{transform:rotate(90deg)}.nav-group-items[data-v-2188186e]{overflow:hidden}.page-fade-enter-active[data-v-2188186e],.page-fade-leave-active[data-v-2188186e]{transition:opacity .2s,transform .2s}.page-fade-enter-from[data-v-2188186e]{opacity:0;transform:translateY(8px)}.page-fade-leave-to[data-v-2188186e]{opacity:0;transform:translateY(-6px)}:root{--bg-primary:#f5f6fa;--bg-secondary:#fff;--bg-card:#fff;--bg-card-hover:#fafbff;--bg-input:#f8f9fc;--border-color:#e2e5f1;--border-hover:#c5cbe0;--text-primary:#1a1d2e;--text-secondary:#6b7280;--text-muted:#9ca3af;--accent:#2563eb;--accent-light:#3b82f6;--accent-gradient:linear-gradient(135deg, #2563eb, #0ea5e9);--success:#059669;--warning:#d97706;--error:#dc2626;--radius:8px;--radius-sm:6px;--radius-lg:10px;--shadow-sm:0 1px 3px #0000000f;--shadow:0 2px 8px #00000014;--shadow-lg:0 4px 16px #0000001a;--font-mono:"JetBrains Mono", "Fira Code", "Cascadia Code", "Consolas", monospace;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--transition:all .2s ease}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{font-family:var(--font-sans);background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;line-height:1.6;overflow-x:hidden}::selection{background:var(--accent);color:#fff}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#9ca3af}.sidebar{background:var(--bg-secondary);border-right:1px solid var(--border-color);z-index:10;flex-direction:column;width:220px;min-height:100vh;transition:width .3s;display:flex;position:sticky;top:0;box-shadow:1px 0 4px #00000008}.sidebar.collapsed{width:56px}.sidebar-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:16px 14px;display:flex}.logo{cursor:pointer;align-items:center;gap:8px;text-decoration:none;display:flex}.logo-icon{font-size:22px}.logo-text{color:var(--accent);letter-spacing:-.3px;font-size:16px;font-weight:700}.sidebar-footer{border-top:1px solid var(--border-color);flex-shrink:0;justify-content:center;padding:8px 10px;display:flex}.logo-mini{justify-content:center;align-items:center;text-decoration:none;display:flex}.toggle-btn{border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm);transition:var(--transition);background:0 0;justify-content:center;align-items:center;width:100%;min-height:32px;padding:6px;display:flex}.toggle-btn:hover{color:var(--accent);border-color:var(--accent);background:#f0f1f5}.toggle-arrow{flex-shrink:0;transition:transform .3s;display:block}.toggle-arrow.collapsed{transform:rotate(180deg)}.sidebar-nav{flex:1;padding:10px 8px;overflow-y:auto}.nav-group{margin-bottom:4px}.nav-group+.nav-group{border-top:1px solid #f0f0f0;padding-top:4px}.nav-group-title{color:var(--text-secondary);letter-spacing:.5px;padding:10px 12px 6px;font-size:13px;font-weight:700}.nav-item{border-radius:var(--radius);color:var(--text-secondary);transition:var(--transition);align-items:center;gap:8px;margin:1px 0;padding:7px 12px 7px 24px;font-size:13px;font-weight:500;text-decoration:none;display:flex;position:relative;overflow:hidden}.nav-item:before{content:"";background:var(--accent-gradient);opacity:0;width:3px;transition:var(--transition);border-radius:0 3px 3px 0;position:absolute;top:0;bottom:0;left:0;transform:scaleY(0)}.nav-item:hover{color:var(--text-primary);background:#f0f4ff}.nav-item.active{color:var(--accent);background:#eff3ff;font-weight:600}.nav-item.active:before{opacity:1;transform:scaleY(1)}.nav-icon{flex-shrink:0;font-size:15px}.nav-label{white-space:nowrap}.tool-page{max-width:1100px;margin:0 auto}.tool-page-full{flex-direction:column;height:calc(100vh - 40px);display:flex}.tool-page-full>.glass-card{flex-shrink:0}.tool-page-full>.glass-card.flex-fill,.tool-page-full>.flex-fill{flex-direction:column;flex:1;min-height:0;display:flex}.tool-page-full .flex-fill .excel-textarea,.tool-page-full .flex-fill textarea{flex:1;min-height:0}.tool-header{margin-bottom:24px}.tool-header h1{color:var(--text-primary);margin-bottom:4px;font-size:24px;font-weight:700}.tool-header p{color:var(--text-secondary);font-size:14px}.glass-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:var(--transition);padding:20px}.glass-card:hover{border-color:var(--border-hover);box-shadow:var(--shadow)}.action-bar{flex-wrap:wrap;gap:8px;margin:14px 0;display:flex}.btn{border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition);font-size:13px;font-weight:600;font-family:var(--font-sans);border:none;align-items:center;gap:5px;padding:8px 18px;display:inline-flex}.btn-primary{background:var(--accent);color:#fff;box-shadow:0 2px 8px #2563eb33}.btn-primary:hover{background:#1d4ed8;transform:translateY(-1px);box-shadow:0 3px 12px #2563eb40}.btn-primary:active{transform:translateY(0)}.btn-secondary{color:var(--accent);background:#f0f4ff;border:1px solid #dce3f5}.btn-secondary:hover{background:#e0e7ff;border-color:#c7d2fe}.tool-textarea{background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius);width:100%;min-height:200px;color:var(--text-primary);font-family:var(--font-mono);resize:vertical;transition:var(--transition);outline:none;padding:14px;font-size:13px;line-height:1.7}.tool-textarea:focus{border-color:var(--accent);background:#fff;box-shadow:0 0 0 3px #2563eb14}.tool-textarea::placeholder{color:var(--text-muted)}.tool-input{background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius);width:100%;color:var(--text-primary);font-family:var(--font-mono);transition:var(--transition);outline:none;padding:10px 14px;font-size:13px}.tool-input:focus{border-color:var(--accent);background:#fff;box-shadow:0 0 0 3px #2563eb14}.result-block{margin-top:16px}.result-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.8px;margin-bottom:6px;font-size:12px;font-weight:600}.result-value{background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius);font-family:var(--font-mono);word-break:break-all;white-space:pre-wrap;color:var(--success);padding:14px;font-size:13px;line-height:1.7;position:relative}.result-value .copy-btn{color:var(--accent);cursor:pointer;transition:var(--transition);background:#f0f4ff;border:1px solid #dce3f5;border-radius:5px;padding:3px 10px;font-size:12px;position:absolute;top:8px;right:8px}.result-value .copy-btn:hover{background:#e0e7ff}.error-msg{color:var(--error);border-radius:var(--radius-sm);background:#fef2f2;border:1px solid #fecaca;margin-top:8px;padding:8px 12px;font-size:13px}.home-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin-top:24px;display:grid}.tool-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);color:var(--text-primary);transition:var(--transition);cursor:pointer;box-shadow:var(--shadow-sm);padding:24px 20px;text-decoration:none;position:relative;overflow:hidden}.tool-card:after{content:"";background:var(--accent-gradient);opacity:0;height:3px;transition:var(--transition);position:absolute;top:0;left:0;right:0}.tool-card:hover{border-color:var(--border-hover);box-shadow:var(--shadow-lg);background:var(--bg-card-hover);transform:translateY(-4px)}.tool-card:hover:after{opacity:1}.tool-card-icon{margin-bottom:12px;font-size:32px;display:block}.tool-card-title{margin-bottom:4px;font-size:15px;font-weight:600}.tool-card-desc{color:var(--text-secondary);font-size:13px;line-height:1.5}.two-col{grid-template-columns:1fr 1fr;gap:16px;display:grid}@media (width<=768px){.two-col{grid-template-columns:1fr}.sidebar{transition:left .3s;position:fixed;left:-220px}.sidebar.collapsed{left:-56px}}.hash-table{border-collapse:collapse;width:100%;margin-top:12px}.hash-table th,.hash-table td{text-align:left;border-bottom:1px solid var(--border-color);padding:10px 14px;font-size:13px}.hash-table th{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.8px;background:#fafbfc;width:100px;font-size:12px;font-weight:600}.hash-table td{font-family:var(--font-mono);color:var(--success);word-break:break-all}.color-preview{border-radius:var(--radius);border:1px solid var(--border-color);width:100%;height:80px;transition:var(--transition);margin-top:12px}.field-label{color:var(--text-secondary);margin-bottom:6px;font-size:13px;font-weight:600;display:block}.tool-select{background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;transition:var(--transition);outline:none;padding:8px 12px;font-size:13px}.tool-select:focus{border-color:var(--accent)}.tool-number{background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-sm);width:100px;color:var(--text-primary);transition:var(--transition);outline:none;padding:8px 12px;font-size:13px}.tool-number:focus{border-color:var(--accent)}.checkbox-group{flex-wrap:wrap;gap:14px;display:flex}.checkbox-label{cursor:pointer;color:var(--text-secondary);align-items:center;gap:5px;font-size:13px;display:flex}.checkbox-label input[type=checkbox]{accent-color:var(--accent);width:15px;height:15px}.loading{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:14px;height:14px;animation:.6s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.inline-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}
