@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=IBM+Plex+Sans:wght@400;500;600&display=swap";@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=IBM+Plex+Sans:wght@400;500;600&display=swap";*{box-sizing:border-box}html{scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#e2e8f0;background:#0f1117;margin:0;font-family:IBM Plex Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:IBM Plex Mono,source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}input,button,textarea,select{font:inherit}button{cursor:pointer}a{color:#60a5fa;text-decoration:none}a:hover{text-decoration:underline}.sidebar{z-index:100;background:linear-gradient(135deg,#0f1117 0%,#090c14 100%);border-right:1px solid #1e293b;flex-direction:column;width:260px;transition:all .3s;display:flex;position:relative;overflow:hidden}@media (width<=768px){.sidebar{height:100vh;transition:transform .3s;position:fixed;top:0;left:0;transform:translate(-100%)}.sidebar.open{transform:translate(0);box-shadow:2px 0 15px #0000004d}}.sidebar-header{border-bottom:1px solid #1e293b;justify-content:space-between;align-items:center;padding:18px 16px;display:flex}.logo{align-items:center;gap:12px;display:flex}.logo-icon{color:#60a5fa;background:linear-gradient(135deg,#1d3461 0%,#0d1b2a 100%);border-radius:8px;justify-content:center;align-items:center;width:40px;height:40px;font-size:24px;font-weight:700;display:flex}.logo-text{flex:1}.logo-name{color:#e2e8f0;letter-spacing:-.3px;font-family:IBM Plex Sans,sans-serif;font-size:15px;font-weight:600}.logo-tagline{color:#4a5568;margin-top:2px;font-family:IBM Plex Sans,sans-serif;font-size:11px}.close-btn{color:#94a3b8;cursor:pointer;background:0 0;border:none;padding:4px;font-size:18px;display:none}@media (width<=768px){.close-btn{display:block}}.tools-nav{flex-direction:column;flex:1;padding:12px 8px;display:flex;overflow-y:auto}.nav-label{text-transform:uppercase;letter-spacing:.1em;color:#4a5568;padding:8px 12px;font-family:IBM Plex Sans,sans-serif;font-size:10px;font-weight:600}.tools-list{flex-direction:column;gap:4px;display:flex}.tool-item{color:#94a3b8;border-radius:8px;align-items:center;gap:12px;padding:10px 12px;text-decoration:none;transition:all .15s;display:flex;position:relative}.tool-item:hover{color:#e2e8f0;background:#1e293b80}.tool-item.active{color:#60a5fa;background:linear-gradient(135deg,#1d3461cc 0%,#0d1b2a99 100%);border-left:3px solid #60a5fa;padding-left:9px}.tool-icon{color:#64748b;letter-spacing:-.5px;background:#1e293b99;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-family:IBM Plex Mono,monospace;font-size:12px;font-weight:600;display:flex}.tool-item.active .tool-icon{color:#60a5fa;background:#1d3461}.tool-info{flex:1;min-width:0}.tool-name{color:inherit;font-family:IBM Plex Sans,sans-serif;font-size:13px;font-weight:500}.tool-desc{color:#4a5568;text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:2px;font-size:10px;line-height:1.3;display:-webkit-box;overflow:hidden}.active-dot{background:#60a5fa;border-radius:50%;flex-shrink:0;width:6px;height:6px}.sidebar-footer{background:#0f111780;border-top:1px solid #1e293b;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.footer-stat{align-items:center;gap:4px;font-family:IBM Plex Sans,sans-serif;display:flex}.stat-number{color:#60a5fa;font-size:13px;font-weight:600}.stat-label{color:#4a5568;font-size:11px}.footer-link{color:#4a5568;font-family:IBM Plex Sans,sans-serif;font-size:11px;text-decoration:none;transition:color .15s}.footer-link:hover{color:#60a5fa}.tools-nav::-webkit-scrollbar{width:5px}.tools-nav::-webkit-scrollbar-track{background:0 0}.tools-nav::-webkit-scrollbar-thumb{background:#2d3748;border-radius:3px}.tools-nav::-webkit-scrollbar-thumb:hover{background:#4a5568}.topbar{background:linear-gradient(135deg,#0d1117 0%,#090c14 100%);border-bottom:1px solid #1e293b;flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:20px;padding:12px 16px;display:flex;position:relative}.topbar-left{flex:0 auto;align-items:center;gap:12px;min-width:0;display:flex}.menu-btn{color:#94a3b8;cursor:pointer;background:0 0;border:1px solid #2d3748;border-radius:5px;padding:6px 8px;font-size:16px;transition:all .15s;display:none}.menu-btn:hover{color:#e2e8f0;background:#1e293b}@media (width<=768px){.menu-btn{display:block}}.topbar-title{flex-direction:column;gap:0;display:flex}.tool-title{color:#e2e8f0;margin:0;font-family:IBM Plex Sans,sans-serif;font-size:15px;font-weight:600}.tool-subtitle{color:#4a5568;margin:0;font-family:IBM Plex Sans,sans-serif;font-size:11px}.topbar-center{flex:1 0 auto;justify-content:center;align-items:center;gap:20px;display:flex}.setting-group{align-items:center;gap:8px;display:flex}.setting-label{color:#4a5568;text-transform:uppercase;letter-spacing:.05em;font-family:IBM Plex Sans,sans-serif;font-size:12px;font-weight:500}.indent-buttons{background:#1e293b80;border:1px solid #2d3748;border-radius:6px;gap:4px;padding:3px;display:flex}.indent-btn{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 10px;font-family:IBM Plex Mono,monospace;font-size:12px;font-weight:500;transition:all .15s}.indent-btn:hover{color:#e2e8f0}.indent-btn.active{color:#60a5fa;background:#1d3461}.mode-toggle{background:#1e293b80;border:1px solid #2d3748;border-radius:6px;gap:2px;padding:3px;display:flex}.mode-btn{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 12px;font-family:IBM Plex Sans,sans-serif;font-size:12px;font-weight:500;transition:all .15s}.mode-btn:hover{color:#e2e8f0}.mode-btn.active{color:#60a5fa;background:#1d3461}.topbar-right{flex:0 auto;align-items:center;gap:8px;display:flex}.action-btn{color:#94a3b8;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #2d3748;border-radius:6px;align-items:center;gap:6px;padding:6px 12px;font-family:IBM Plex Sans,sans-serif;font-size:12px;font-weight:500;transition:all .15s;display:inline-flex}.action-btn:hover:not(:disabled){color:#e2e8f0;background:#1e293b;border-color:#4a5568}.action-btn:disabled{opacity:.5;cursor:not-allowed}.action-btn.primary{color:#60a5fa;background:linear-gradient(135deg,#1d3461 0%,#0d1b2a 100%);border-color:#2d5299}.action-btn.primary:hover:not(:disabled){background:linear-gradient(135deg,#2d4a7a 0%,#1a2638 100%);border-color:#3d63b8}.action-btn.primary.success{color:#4ade80;background:linear-gradient(135deg,#14532d 0%,#0a2e17 100%);border-color:#166534}.btn-icon{font-size:13px}@media (width<=640px){.btn-text{display:none}}.menu-wrapper{position:relative}.menu-toggle{padding:6px 8px}.dropdown-menu{z-index:1000;background:#1e293b;border:1px solid #2d3748;border-radius:8px;min-width:140px;margin-top:4px;position:absolute;top:100%;right:0;overflow:hidden;box-shadow:0 4px 12px #0000004d}.menu-item{color:#94a3b8;cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:8px;width:100%;padding:8px 12px;font-family:IBM Plex Sans,sans-serif;font-size:12px;text-decoration:none;transition:all .15s;display:flex}.menu-item:hover{color:#e2e8f0;background:#2d3748}@media (width<=1024px){.topbar{flex-wrap:wrap;gap:12px}.topbar-center{flex:100%;justify-content:flex-start}.topbar-title{flex:1;min-width:0}}@media (width<=640px){.topbar{gap:8px;padding:10px 12px}.action-btn{padding:5px 8px;font-size:11px}.tool-title{font-size:13px}.tool-subtitle{display:none}.topbar-center{flex:100%;justify-content:flex-start;gap:12px}.setting-label{font-size:10px}.indent-btn,.mode-btn{padding:3px 8px;font-size:11px}}.editor{background:#1e293b;flex:1;grid-template-columns:1fr 1fr;gap:1px;display:grid;overflow:hidden}.editor-panel{background:#0f1117;flex-direction:column;display:flex;overflow:hidden}.panel-header{background:#090c14;border-bottom:1px solid #1e293b;flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:8px 14px;display:flex}.panel-label{text-transform:uppercase;letter-spacing:.1em;color:#4a5568;font-family:IBM Plex Sans,sans-serif;font-size:11px;font-weight:600}.panel-meta{align-items:center;gap:8px;margin-left:auto;display:flex}.char-count,.line-count{color:#2d3748;font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:500}.status-badge{text-transform:uppercase;letter-spacing:.05em;border-radius:10px;padding:2px 6px;font-family:IBM Plex Sans,sans-serif;font-size:9px;font-weight:600}.status-badge.valid{color:#4ade80;background:#14532d99;border:.5px solid #166534}.status-badge.error{color:#f87171;background:#450a0a99;border:.5px solid #7f1d1d}.input-panel{border-right:1px solid #1e293b}.editor-input{resize:none;color:#e2e8f0;background:0 0;border:none;outline:none;flex:1;padding:14px;font-family:IBM Plex Mono,monospace;font-size:13px;line-height:1.7;overflow:auto}.editor-input::placeholder{color:#4a5568}.editor-output{background:0 0;flex-direction:column;flex:1;display:flex;overflow:auto}.output-content{white-space:pre-wrap;word-break:break-word;color:#e2e8f0;min-height:100%;margin:0;padding:14px;font-family:IBM Plex Mono,monospace;font-size:13px;line-height:1.7}.hl-key{color:#60a5fa;font-weight:500}.hl-str{color:#4ade80}.hl-num{color:#fb923c}.hl-bool{color:#f472b6}.hl-null{color:#94a3b8}.hl-tag{color:#60a5fa}.hl-attr{color:#f472b6}.hl-sel{color:#facc15}.hl-prop{color:#60a5fa}.hl-val{color:#4ade80}.hl-kw{color:#c084fc;font-weight:600}.hl-comment{color:#6b7280}.loading-state,.empty-state,.error-state{color:#4a5568;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:10px;font-family:IBM Plex Sans,sans-serif;display:flex}.empty-icon,.error-icon{font-size:32px}.loading-state p,.empty-state p{margin:0;font-size:13px}.spinner{border:2px solid #2d3748;border-top-color:#60a5fa;border-radius:50%;width:20px;height:20px;animation:.8s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.error-state{gap:12px;padding:20px}.error-content{text-align:center}.error-title{color:#f87171;margin-bottom:4px;font-size:13px;font-weight:600}.error-message{color:#94a3b8;max-width:280px;font-size:12px;line-height:1.5}.editor-input::-webkit-scrollbar{width:6px;height:6px}.editor-output::-webkit-scrollbar{width:6px;height:6px}.editor-input::-webkit-scrollbar-track{background:0 0}.editor-output::-webkit-scrollbar-track{background:0 0}.editor-input::-webkit-scrollbar-thumb{background:#2d3748;border-radius:3px}.editor-output::-webkit-scrollbar-thumb{background:#2d3748;border-radius:3px}.editor-input::-webkit-scrollbar-thumb:hover{background:#4a5568}.editor-output::-webkit-scrollbar-thumb:hover{background:#4a5568}@media (width<=768px){.editor{grid-template-columns:1fr}.input-panel{border-bottom:1px solid #1e293b;border-right:none;min-height:200px}.output-panel{min-height:200px}.output-content,.editor-input{padding:12px;font-size:12px}.panel-header{padding:6px 12px}.panel-label{font-size:10px}.char-count,.line-count{font-size:9px}}.statusbar{color:#64748b;background:linear-gradient(135deg,#090c14 0%,#0d1117 100%);border-top:1px solid #1e293b;flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;padding:8px 16px;font-family:IBM Plex Sans,sans-serif;font-size:11px;display:flex}.status-left{flex:none;align-items:center;gap:8px;display:flex}.status-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px;animation:2s ease-in-out infinite pulse}.status-dot.default{background:#4a5568;animation:none}.status-dot.success{background:#4ade80}.status-dot.error{background:#f87171;animation:none}.status-dot.info{background:#60a5fa}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.status-text{color:#e2e8f0;font-weight:500}.status-center{flex-wrap:wrap;flex:auto;align-items:center;gap:10px;min-width:0;display:flex;overflow:hidden}.stat-group{white-space:nowrap;align-items:center;gap:4px;display:flex}.stat-label{color:#4a5568;font-weight:500}.stat-value{color:#94a3b8;font-family:IBM Plex Mono,monospace;font-weight:500}.stat-separator{color:#2d3748;font-weight:300}.status-right{color:#2d3748;flex:none;align-items:center;gap:4px;font-family:IBM Plex Mono,monospace;font-weight:500;display:flex}.app-name{color:#60a5fa}.app-version{color:#2d3748}@media (width<=768px){.statusbar{gap:12px;padding:6px 12px;font-size:10px}.status-center{gap:6px}.stat-group{gap:3px}.status-right{display:none}.status-dot{width:5px;height:5px}}@media (width<=480px){.statusbar{padding:6px 10px;font-size:9px}.stat-separator{display:none}.status-center{gap:8px}}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%}body{color:#e2e8f0;background:#0f1117;font-family:IBM Plex Sans,Segoe UI,sans-serif;line-height:1.5}.app-layout{height:100vh;display:flex;overflow:hidden}.app-main{flex-direction:column;flex:1;display:flex;overflow:hidden}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#2d3748;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#4a5568}::selection{color:#60a5fa;background:#1d3461}::selection{color:#60a5fa;background:#1d3461}button:focus-visible,a:focus-visible,input:focus-visible{outline-offset:2px;outline:2px solid #60a5fa}@media (width<=768px){.app-layout{flex-direction:column}.app-main{flex:1}}
