:root{--accent:#6366f1;--accent-glow:#6366f166;--bg:#f8fafc;--surface:#fff;--surface-2:#f1f5f9;--border:#00000014;--text:#0f172a;--text-sub:#475569;--text-muted:#94a3b8;--toolbar-glass:#ffffffd9;--glass-border:#00000014;--glass-blur:blur(16px);--tb-icon:#475569;--tb-btn-bg:#0000000a;--tb-btn-hover:#00000014;--grad-primary:linear-gradient(135deg,#6366f1 0%,#8b5cf6 100%);--grad-surface:linear-gradient(180deg,#fffc 0%,#fff0 100%);--font-ui:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--font-code:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--radius:8px;--radius-sm:4px;--radius-pill:999px;--toolbar-h:50px}[data-theme=dark]{--bg:#0b0f1a;--surface:#121826;--surface-2:#1e293b;--border:#ffffff14;--toolbar-glass:#0f172acc;--glass-border:#ffffff1a;--grad-surface:linear-gradient(180deg,#ffffff08 0%,#fff0 100%);--tb-icon:#ffffffd9;--tb-btn-bg:#ffffff0f;--tb-btn-hover:#ffffff1f;--text:#f1f5f9;--text-sub:#cbd5e1;--text-muted:#64748b}*,:before,:after{box-sizing:border-box;margin:0;padding:0}::placeholder{font-style:normal}html,body,#root{height:100%;font-family:var(--font-ui);background:var(--bg);color:var(--text)}.app-toolbar{height:var(--toolbar-h);background:var(--toolbar-glass);-webkit-backdrop-filter:var(--glass-blur);border-bottom:1px solid var(--border);z-index:100;flex-shrink:0;align-items:center;gap:8px;padding:0 16px;display:flex;position:relative}.toolbar-left{flex-shrink:0;align-items:center;display:flex}.toolbar-center{flex-wrap:nowrap;flex:1;justify-content:center;align-items:center;gap:6px;display:flex}.toolbar-right{flex-shrink:0;align-items:center;display:flex}.app-logo{color:var(--text);white-space:nowrap;letter-spacing:-.01em;align-items:center;gap:6px;margin-right:12px;font-size:14px;font-weight:700;display:flex}.app-logo-img{border-radius:4px;width:auto;height:22px}.tb-divider{background:var(--border);flex-shrink:0;width:1px;height:20px;margin:0 4px}.tb-group{box-shadow:none;background:0 0;border:none;border-radius:0;align-items:center;gap:2px;padding:0;display:flex}[data-theme=dark] .tb-group{background:var(--tb-btn-bg)}.tb-btn{border-radius:var(--radius-sm);cursor:pointer;min-width:32px;height:32px;color:var(--tb-icon);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:6px;transition:all .25s cubic-bezier(.23,1,.32,1);display:inline-flex;position:relative;overflow:hidden}.tb-btn:before{content:"";background:var(--grad-surface);opacity:0;transition:opacity .25s;position:absolute;inset:0}.tb-btn svg{z-index:1;width:16px;height:16px;transition:transform .2s;position:relative}.tb-btn:hover:not(:disabled){background:var(--tb-btn-hover);color:var(--text);transform:translateY(-1px);box-shadow:0 4px 12px #0003}.tb-btn:hover:not(:disabled):before{opacity:1}.tb-btn:active:not(:disabled){transform:translateY(0)scale(.95)}.tb-btn:disabled{opacity:.3;cursor:not-allowed}.tb-btn--primary{background:var(--grad-primary)!important;color:#fff!important}.tb-btn--primary:hover:not(:disabled){box-shadow:0 6px 20px var(--accent-glow);filter:brightness(1.1)}.tb-btn--secondary{background:var(--surface-2);color:var(--text);border:1px solid var(--border)}.tb-btn--danger{color:#fff;background:#e53e3ebf;border-color:#0000}.tb-btn--danger:hover:not(:disabled){color:#ef4444;background:#ef44441a;border-color:#ef444440}.tb-btn--ghost{background:var(--tb-btn-bg);color:var(--tb-icon)}.tb-btn--save{color:#22c55e;background:#22c55e1a;border:1px solid #22c55e33}.tb-btn--save:hover:not(:disabled){color:#fff;background:#22c55e;box-shadow:0 4px 12px #22c55e4d}.tb-btn--snippets{background:var(--surface-2);color:var(--text);border:1px solid var(--border)}.tb-btn--undo{color:#f59e0b;background:#f59e0b1a;border:1px solid #f59e0b33;animation:.3s cubic-bezier(.175,.885,.32,1.275) both undoPop}.tb-btn--undo:hover:not(:disabled){background:#dd6b20}@keyframes undoPop{0%{opacity:0;transform:scale(.8)}60%{transform:scale(1.08)}to{opacity:1;transform:scale(1)}}.tb-badge{color:#fff;border:2px solid var(--surface);background:#ef4444;border-radius:999px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 4px;font-size:10px;font-weight:800;display:flex;position:absolute;top:-4px;right:-4px;box-shadow:0 2px 4px #0003}.url-bar{background:var(--surface-2);border-bottom:1px solid var(--border);flex-shrink:0;padding:10px 16px}.url-bar form{align-items:center;gap:8px;display:flex}.url-bar__input{border:1px solid var(--border);border-radius:var(--radius-sm);font-size:13px;font-family:var(--font-ui);background:var(--surface);color:var(--text);outline:none;flex:1;padding:8px 12px;transition:border-color .2s,box-shadow .2s}.url-bar__input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #667eea26}.url-bar .tb-btn{color:var(--text);background:var(--surface-2);border:1px solid var(--border)}.url-bar .tb-btn--primary{background:var(--accent);color:#fff;border-color:#0000}.url-bar .tb-btn--primary:hover{background:var(--accent-hover)}.error-bar{background:var(--error-bg);border-bottom:1px solid var(--error-border);color:var(--error-text);flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 16px;font-size:13px;font-weight:500;display:flex}.error-bar button{color:var(--error-text);cursor:pointer;opacity:.7;background:0 0;border:none;padding:0 4px;font-size:14px}.error-bar button:hover{opacity:1}.workspace{flex:1;min-height:0;display:flex;overflow:hidden}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:140px;transition:width .22s cubic-bezier(.4,0,.2,1);display:flex;overflow:hidden}.sidebar-header{background:linear-gradient(120deg,#667eea 0%,#764ba2 100%);flex-shrink:0;justify-content:space-between;align-items:center;gap:6px;padding:8px 10px 7px;display:flex}.sidebar-title{color:#ffffffd9;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:10px;font-weight:700;overflow:hidden}.sidebar-new-btn{color:#fff;font-size:11px;font-weight:700;font-family:var(--font-ui);cursor:pointer;white-space:nowrap;background:#ffffff26;border:1px solid #ffffff80;border-radius:4px;flex-shrink:0;padding:2px 8px;transition:background .15s}.sidebar-new-btn:hover{background:#ffffff4d}.sidebar-empty{text-align:center;color:var(--text-muted);flex-direction:column;align-items:center;gap:5px;padding:28px 10px;display:flex}.sidebar-empty-icon{font-size:1.8rem}.sidebar-empty p{font-size:11px;line-height:1.5}.sidebar-empty strong{color:var(--text-sub)}.sidebar-list{scrollbar-width:thin;scrollbar-color:var(--border)transparent;flex:1;padding:4px;list-style:none;overflow-y:auto}.sidebar-list::-webkit-scrollbar{width:3px}.sidebar-list::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.sidebar-item{cursor:pointer;border-left:2px solid #0000;border-radius:6px;align-items:center;gap:0;margin-bottom:1px;padding:0;transition:background .12s;display:flex;position:relative;overflow:hidden}.sidebar-item:hover{background:var(--surface-2)}.sidebar-item:hover .sidebar-item-del{opacity:1}.sidebar-item--active{border-left-color:var(--accent);background:#667eea14!important}.sidebar-item--active .sidebar-item-name{color:var(--accent);font-weight:700}.sidebar-item-icon{display:none}.sidebar-item-info{flex-direction:column;flex:1;gap:1px;min-width:0;padding:7px 6px 7px 8px;display:flex}.sidebar-item-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:600;line-height:1.3;overflow:hidden}.sidebar-item-date{color:var(--text-muted);font-size:10px;line-height:1.2}.sidebar-item-del{color:var(--text-muted);cursor:pointer;opacity:0;background:0 0;border:none;border-radius:0;flex-shrink:0;align-self:stretch;align-items:center;height:100%;padding:0 7px;font-size:10px;transition:opacity .15s,background .15s,color .15s;display:flex}.sidebar-item-del:hover{color:#c53030;background:#fee2e2}.sidebar-toggle-btn{border:1px solid var(--glass-border);border-radius:var(--radius-sm);color:var(--text-sub);background:#ffffff0d;background:var(--tb-btn-bg);margin-right:8px;transition:all .2s;padding:8px!important}.sidebar-toggle-btn:hover{background:var(--tb-btn-hover);color:var(--text);transform:translateY(-1px)}.sidebar-toggle-btn.active{color:var(--accent);background:#6366f126;border-color:#6366f14d}.seo-content{background:var(--surface);border-top:1px solid var(--border);color:var(--text);flex-shrink:0;margin-top:0;padding:4rem 1.5rem;line-height:1.6;overflow-y:auto}.seo-container{max-width:900px;margin:0 auto}.seo-header h1{background:linear-gradient(135deg,#667eea,#764ba2);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:.5rem;font-size:2.2rem}[data-theme=dark] .seo-header h1{background:linear-gradient(135deg,#60a5fa,#a855f7);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.seo-subtitle{color:var(--text-sub);margin-bottom:2rem;font-size:1.4rem;font-weight:500}.seo-description p{margin-bottom:1.2rem;font-size:1.05rem}.seo-faq{text-align:left;margin-top:3rem}.seo-faq h3{border-bottom:2px solid var(--accent);margin-bottom:1.5rem;font-size:1.8rem;display:inline-block}.faq-item{background:var(--surface-2);border-radius:var(--radius);border:1px solid var(--border);margin-bottom:1.5rem;padding:1.2rem}.faq-item h4{color:var(--accent);margin-bottom:.5rem;font-size:1.15rem}.faq-item p{color:var(--text-sub);font-size:.95rem}.seo-content{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app-shell{flex-direction:column;height:100vh;display:flex;overflow:hidden}.workspace{flex:1;min-height:0;display:flex}.editor-wrap{flex-direction:column;flex:1;min-height:0;padding:8px 10px;display:flex;position:relative}.editor{width:100%;font-family:var(--font-code);color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);resize:none;tab-size:2;outline:none;flex:1;padding:16px;font-size:14px;line-height:1.8;transition:all .25s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 20px #00000008}.editor:focus{border-color:var(--accent);box-shadow:0 0 0 3px #667eea1f,var(--shadow-sm)}.editor::placeholder{color:var(--text-muted);font-style:normal;font-family:var(--font-ui)}.editor-hint{text-align:center;color:var(--text-muted);pointer-events:none;width:100%;margin-top:14px;font-size:13px;position:absolute;bottom:30px;left:0}.toast{background:var(--text);color:var(--surface);box-shadow:var(--shadow-md);z-index:9999;white-space:nowrap;border-radius:999px;padding:10px 22px;font-size:13px;font-weight:600;animation:.22s toastIn;position:fixed;bottom:28px;left:50%;transform:translate(-50%)}@keyframes toastIn{0%{opacity:0;transform:translate(-50%)translateY(10px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.modal-overlay,.snippets-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#00000073;justify-content:center;align-items:center;animation:.18s fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-card{background:var(--surface);box-shadow:var(--shadow-lg);border-radius:14px;width:min(380px,92vw);padding:28px 28px 22px;animation:.2s slideUp}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-card h3{margin-bottom:6px;font-size:17px}.modal-hint{color:var(--text-sub);margin-bottom:16px;font-size:13px}.modal-input{border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;font-size:14px;font-family:var(--font-ui);background:var(--surface-2);color:var(--text);outline:none;padding:10px 12px;transition:border-color .2s,box-shadow .2s}.modal-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #667eea26}.modal-actions{justify-content:flex-end;gap:10px;margin-top:18px;display:flex}.modal-actions .tb-btn{color:var(--text);background:var(--surface-2);border:1px solid var(--border)}.modal-actions .tb-btn--primary{background:var(--accent);color:#fff;border-color:#0000}.modal-actions .tb-btn--primary:hover{background:var(--accent-hover)}.snippets-panel{background:var(--surface);box-shadow:var(--shadow-lg);border-radius:14px;flex-direction:column;width:min(520px,94vw);max-height:72vh;animation:.22s slideUp;display:flex;overflow:hidden}.snippets-header{background:var(--grad-primary);color:#fff;flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 18px;display:flex;box-shadow:0 2px 8px #0000001a}.snippets-header h3{margin:0;font-size:15px;font-weight:700}.btn-close-snippets{color:#fff;cursor:pointer;background:#ffffff26;border:none;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;transition:background .2s;display:flex}.btn-close-snippets:hover{background:#ffffff4d}.snippets-empty{color:var(--text-muted);text-align:center;flex-direction:column;align-items:center;padding:48px 24px;display:flex}.snippets-empty-icon{margin-bottom:12px;font-size:3rem}.snippets-empty p{margin:4px 0;font-size:14px}.snippets-empty-hint{opacity:.75;font-size:12px!important}.snippets-list{flex:1;margin:0;padding:8px;list-style:none;overflow-y:auto}.snippet-item{border-radius:8px;justify-content:space-between;align-items:flex-start;gap:10px;padding:12px 14px;transition:background .15s;display:flex}.snippet-item+.snippet-item{border-top:1px solid var(--border)}.snippet-item--hovered{background:var(--surface-2)}.snippet-info{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.snippet-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:700;line-height:1.4;overflow:hidden}.snippet-date{color:var(--text-muted);font-size:11px}.snippet-preview{color:var(--text-sub);font-size:12px;font-family:var(--font-code);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.snippet-actions{flex-shrink:0;align-items:center;gap:6px;display:flex}.btn-restore{background:var(--accent);color:#fff;border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;border:none;padding:5px 10px;font-size:12px;font-weight:600;transition:background .15s}.btn-restore:hover{background:var(--accent-hover)}.btn-delete-snippet{cursor:pointer;color:var(--text-muted);background:0 0;padding:5px 8px;font-size:13px;transition:background .15s,color .15s}.btn-delete-snippet:hover{color:#c53030;background:#fff5f5;border-color:#feb2b2}@media (max-width:768px){.app-toolbar{gap:4px;height:56px;padding:0 8px}.toolbar-left{gap:4px}.app-logo{margin-right:4px;font-size:0}.app-logo-img{height:28px}.toolbar-center{-webkit-overflow-scrolling:touch;justify-content:flex-start;gap:6px;padding:4px 0;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 85%,#0000 100%);mask-image:linear-gradient(90deg,#000 85%,#0000 100%)}.tb-group{background:0 0;border:none;padding:0}.tb-btn{background:#ffffff1a;border:1px solid #ffffff1a;min-width:44px;padding:8px 10px}.tb-btn span{display:none}.tb-select{min-width:80px;padding:6px 4px;font-size:11px}.toolbar-right{gap:4px}.font-size-ctrl{height:32px}.sidebar{top:var(--toolbar-h);z-index:100;background:var(--surface);width:260px;transition:transform .3s cubic-bezier(.4,0,.2,1);position:fixed;bottom:0;left:0;transform:translate(-100%);box-shadow:10px 0 30px #0000004d}.app-shell:has(.sidebar-toggle-btn.active) .sidebar{transform:translate(0)}.workspace{flex-direction:column}.sidebar-empty p{display:none}.editor-wrap{padding:8px}.editor{border-radius:var(--radius-sm);padding:12px;font-size:14px}.editor-hint{padding:0 10px;font-size:11px;bottom:20px}.modal-card{width:95vw;padding:20px}.snippets-panel{width:98vw;max-height:85vh}}@media (max-width:480px){.tb-btn{padding:8px 6px}.font-size-val{display:none}.tb-divider{margin:0 1px}}:root{--jtv-key:#c0392b;--jtv-string:#2471a3;--jtv-number:#d68910;--jtv-boolean:#1e8449;--jtv-null:#7f8c8d;--jtv-brace:#5d6d7e;--jtv-arrow:#95a5a6;--jtv-guide:#0000000f}[data-theme=dark]{--jtv-key:#f1948a;--jtv-string:#85c1e9;--jtv-number:#f8c471;--jtv-boolean:#82e0aa;--jtv-null:#aab7b8;--jtv-brace:#99a3a4;--jtv-arrow:#717d7e;--jtv-guide:#ffffff0f}.jtv-wrapper{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);height:100%;box-shadow:var(--shadow-sm);flex-direction:column;display:flex;overflow:hidden}.jtv-bar{background:var(--surface-2);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:10px;padding:9px 14px;display:flex}.jtv-search{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);flex:1;align-items:center;gap:6px;padding:5px 10px;transition:border-color .2s,box-shadow .2s;display:flex}.jtv-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px #667eea1f}.jtv-search-icon{flex-shrink:0;font-size:13px}.jtv-search input{font-size:13px;font-family:var(--font-ui);color:var(--text);background:0 0;border:none;outline:none;flex:1}.jtv-search input::placeholder{color:var(--text-muted);font-style:normal}.jtv-clear-btn{cursor:pointer;color:var(--text-muted);background:0 0;border:none;padding:0 2px;font-size:12px}.jtv-clear-btn:hover{color:var(--text)}.jtv-filter-toggle{color:var(--text-sub);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;align-items:center;gap:5px;font-size:12px;font-weight:600;display:flex}.jtv-edit-btn{border-radius:var(--radius-sm);border:1px solid var(--accent);color:var(--accent);font-size:13px;font-weight:600;font-family:var(--font-ui);cursor:pointer;white-space:nowrap;background:0 0;padding:5px 12px;transition:background .15s,color .15s}.jtv-edit-btn:hover{background:var(--accent);color:#fff}.jtv-tree{font-family:var(--font-code);flex:1;padding:14px 18px;font-size:13.5px;line-height:1.75;overflow:auto}.jtv-node{width:100%}.jtv-line{border-radius:3px;flex-wrap:wrap;align-items:baseline;gap:2px;padding:1px 0;display:flex}.jtv-line--collapsible{cursor:pointer;-webkit-user-select:none;user-select:none}.jtv-line--collapsible:hover{background:var(--jtv-guide)}.jtv-children{border-left:1.5px solid var(--jtv-guide);margin-left:20px;padding-left:10px}.jtv-arrow{color:var(--jtv-arrow);flex-shrink:0;width:12px;margin-right:4px;font-size:10px;transition:transform .1s;display:inline-block}.jtv-key{color:var(--jtv-key);font-weight:600}.jtv-string{color:var(--jtv-string)}.jtv-number{color:var(--jtv-number)}.jtv-boolean{color:var(--jtv-boolean);font-weight:600}.jtv-null{color:var(--jtv-null);font-style:italic}.jtv-brace{color:var(--jtv-brace);font-weight:700}.jtv-comma{color:var(--jtv-brace)}.jtv-ellipsis{color:var(--text-muted);background:var(--jtv-guide);cursor:pointer;border-radius:3px;margin:0 3px;padding:0 5px;font-size:12px}.jtv-meta{color:var(--text-muted);font-size:11px;font-style:italic;font-family:var(--font-ui);margin-right:3px}.jtv-highlight{background:#ffeb3b47;border-radius:3px}[data-theme=dark] .jtv-highlight{background:#ffeb3b26}.jtv-parse-error{color:var(--error-text);padding:20px;font-size:14px;font-weight:500}.app-shell--fullscreen .app-toolbar{z-index:2000;position:relative;top:0}.app-shell--fullscreen .sidebar{display:none!important}.app-shell--fullscreen .workspace{background:var(--bg);flex:1;width:100vw}.app-shell--fullscreen .editor-wrap{height:100%;padding:0}.app-shell--fullscreen .editor,.app-shell--fullscreen .jtv-wrapper{height:calc(100vh - var(--toolbar-h));border:none;border-radius:0;width:100vw}.app-shell--fullscreen .editor-hint{display:none}.hidden{display:none!important}
