*{margin:0;padding:0;box-sizing:border-box}:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5;font-weight:400;color:#fffffff2;background-color:#0f0f0f;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-height:100vh;width:100%}#root{min-height:100vh;width:100%}.app{min-height:100vh;display:flex;flex-direction:column}header{background:#1a1a1a;padding:1rem 2rem;border-bottom:1px solid #333;display:flex;align-items:center;justify-content:space-between}header h1{margin:0;font-size:1.5rem;color:#fff}.header-title{cursor:pointer;-webkit-user-select:none;user-select:none}.header-title:hover{color:#aaa}.header-actions{display:flex;align-items:center;gap:.25rem}.header-btn{background:transparent!important;border:none!important;color:#888!important;font-size:1.1rem;padding:.4rem .5rem!important;cursor:pointer;border-radius:4px;line-height:1}.header-btn:hover{background:#2a2a2a!important;color:#fff!important}.error{background:#f44336;color:#fff;padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center}.error button{background:none;border:none;color:#fff;font-size:1.5rem;cursor:pointer;padding:0;width:30px;height:30px}.container{display:flex;flex:1;overflow:hidden}.sidebar{width:300px;background:#2a2a2a;border-right:1px solid #333;display:flex;flex-direction:column;transition:width .2s ease;flex-shrink:0}.sidebar--collapsed{width:48px}.sidebar-header{padding:1rem;border-bottom:1px solid #333;display:flex;justify-content:space-between;align-items:center;gap:.5rem;min-height:60px}.sidebar-header h2{margin:0;font-size:1.2rem;white-space:nowrap;overflow:hidden}.sidebar-header-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.sidebar-header button{background:#4caf50;color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-weight:700;white-space:nowrap}.sidebar-header button:hover{background:#45a049}.sidebar-toggle{background:transparent!important;color:#aaa!important;border:1px solid #444!important;padding:.3rem .5rem!important;font-size:.9rem;line-height:1;flex-shrink:0}.sidebar-toggle:hover{background:#333!important;color:#fff!important}.template-list{list-style:none;padding:0;margin:0;overflow-y:auto}.template-list li{padding:1rem 1.5rem;cursor:pointer;border-bottom:1px solid #333;transition:background .2s}.template-list li:hover{background:#333}.template-list li.active{background:#444;border-left:3px solid #4CAF50}.template-name{font-weight:500;margin-bottom:.25rem}.template-timestamp{font-size:.75rem;color:#888;margin-top:.25rem}.main-content{flex:1;overflow-y:auto;padding:2rem}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding-top:3rem;height:100%;color:#666;font-size:1.2rem}.template-detail{width:100%}.template-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;border-bottom:2px solid #333}.template-header h2{margin:0;font-size:1.8rem}.tabs{display:flex;gap:0;border-bottom:2px solid #333;margin-bottom:2rem}.tab{background:transparent;color:#888;border:none;padding:.75rem 1.5rem;cursor:pointer;font-size:1rem;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .2s}.tab:hover{background:transparent;color:#aaa}.tab.active{color:#fff;border-bottom-color:#646cff;background:transparent}.tab.active:hover{background:transparent}.button-group{display:flex;gap:1rem}button{background:#646cff;color:#fff;border:none;padding:.6rem 1.5rem;border-radius:4px;cursor:pointer;font-size:1rem}button:hover{background:#535bf2}button:disabled{background:#666;cursor:not-allowed}button.danger{background:#f44336}button.danger:hover{background:#da190b}.template-view .field{margin-bottom:2rem}.template-view .field label{display:block;font-weight:700;margin-bottom:.5rem;color:#bbb;font-size:.9rem;text-transform:uppercase;letter-spacing:.5px}.template-view .field pre{background:#1a1a1a;border:1px solid #444;border-radius:4px;padding:1rem;overflow-x:auto;white-space:pre-wrap;word-wrap:break-word;text-align:left;color:#e0e0e0;line-height:1.6}.above-tabs-fields{display:flex;gap:1rem;margin-bottom:.5rem}.above-tabs-fields .form-group{flex:1;margin-bottom:0}.tab-content{padding-top:1rem}.tab-content--html{padding-top:.75rem}.full-textarea{width:100%;min-height:calc(100vh - 310px);padding:.8rem;background:#1a1a1a;border:1px solid #444;border-radius:4px;color:#e0e0e0;font-family:Monaco,Courier New,monospace;font-size:.95rem;line-height:1.6;resize:vertical;box-sizing:border-box}.full-textarea:focus{outline:none;border-color:#646cff}.full-pre{background:#1a1a1a;border:1px solid #444;border-radius:4px;padding:1rem;min-height:calc(100vh - 310px);overflow-x:auto;white-space:pre-wrap;word-wrap:break-word;color:#e0e0e0;line-height:1.6;margin:0}.field-pre{background:#1a1a1a;border:1px solid #444;border-radius:4px;padding:.6rem .8rem;white-space:pre-wrap;word-wrap:break-word;color:#e0e0e0;line-height:1.6;margin:0;font-family:inherit;font-size:1rem}.template-form .form-group{margin-bottom:1.5rem}.template-form .form-group label{display:block;font-weight:700;margin-bottom:.5rem;color:#bbb;font-size:.9rem;text-transform:uppercase;letter-spacing:.5px}.template-form input,.template-form textarea,.above-tabs-fields input{width:100%;padding:.8rem;background:#1a1a1a;border:1px solid #444;border-radius:4px;color:#e0e0e0;font-family:monospace;font-size:.95rem;line-height:1.6;box-sizing:border-box}.template-form textarea{resize:vertical}.template-form input:focus,.template-form textarea:focus,.above-tabs-fields input:focus{outline:none;border-color:#646cff}.template-form h2{margin-top:0;margin-bottom:2rem;font-size:1.8rem}.preview-section{display:grid;grid-template-columns:300px 1fr;gap:2rem;height:calc(100vh - 250px)}.preview-controls{background:#1a1a1a;border:1px solid #444;border-radius:4px;padding:1.5rem;overflow-y:auto}.preview-controls h3{margin-top:0;margin-bottom:.5rem;font-size:1.1rem;color:#bbb}.json-hint{font-size:.85rem;color:#888;margin-bottom:1rem}.json-input{width:100%;background:#0f0f0f;border:1px solid #444;border-radius:4px;padding:.8rem;color:#e0e0e0;font-family:Monaco,Courier New,monospace;font-size:.9rem;line-height:1.6;resize:vertical}.json-input:focus{outline:none;border-color:#646cff}.json-error{color:#f44336;font-size:.85rem;margin-top:.5rem}.preview-result{display:flex;flex-direction:column;gap:1rem;overflow-y:auto}.preview-result h3{margin:0 0 1rem;font-size:1.1rem;color:#bbb}.preview-field{margin-bottom:1.5rem}.preview-field label{display:block;font-weight:700;margin-bottom:.5rem;color:#bbb;font-size:.9rem;text-transform:uppercase;letter-spacing:.5px}.preview-content{background:#1a1a1a;border:1px solid #444;border-radius:4px;padding:1rem;color:#e0e0e0;line-height:1.6}.html-preview{width:100%;min-height:500px;border:1px solid #444;border-radius:4px;background:#fff}.text-preview{background:#1a1a1a;border:1px solid #444;border-radius:4px;padding:1rem;color:#e0e0e0;font-family:Monaco,Courier New,monospace;font-size:.9rem;line-height:1.6;white-space:pre-wrap;word-wrap:break-word;margin:0}.modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:#2a2a2a;border:1px solid #444;border-radius:8px;padding:2rem;min-width:400px;max-width:500px;box-shadow:0 4px 20px #00000080}.modal h3{margin:0 0 1rem;font-size:1.3rem;color:#fff}.modal p{margin:0 0 1.5rem;color:#bbb;line-height:1.6}.modal-buttons{display:flex;gap:1rem;justify-content:flex-end}.modal-cancel{background:#666}.modal-cancel:hover{background:#777}.modal-confirm{background:#646cff}.modal-confirm:hover{background:#535bf2}.convert-btn{width:100%;margin-top:.5rem;background:#4caf50;font-size:.9rem}.convert-btn:hover{background:#45a049}.tab-lint-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;border-radius:9px;font-size:.7rem;font-weight:700;padding:0 5px;margin-left:6px;vertical-align:middle}.tab-lint-badge--error{background:#f44336;color:#fff}.tab-lint-badge--warning{background:#ff9800;color:#fff}.lint-panel{margin-top:1.5rem;border:1px solid #444;border-radius:6px;overflow:hidden;font-size:.88rem}.lint-panel-header{display:flex;align-items:center;justify-content:space-between;padding:.6rem 1rem;background:#1e1e1e;cursor:pointer;-webkit-user-select:none;user-select:none}.lint-panel-header:hover{background:#252525}.lint-panel-title{display:flex;align-items:center;gap:.5rem}.lint-panel-label{color:#aaa;font-size:.85rem}.lint-panel-toggle{color:#888;font-size:.8rem}.lint-badge{display:inline-flex;align-items:center;padding:1px 7px;border-radius:10px;font-size:.78rem;font-weight:700}.lint-badge.error{background:#f4433626;color:#f44336;border:1px solid rgba(244,67,54,.4)}.lint-badge.warning{background:#ff980026;color:#ff9800;border:1px solid rgba(255,152,0,.4)}.lint-issue-list{list-style:none;margin:0;padding:0}.lint-issue{display:flex;gap:.75rem;padding:.75rem 1rem;border-top:1px solid #2e2e2e;align-items:flex-start}.lint-issue--error{background:#f443360d}.lint-issue--warning{background:#ff98000a}.lint-issue-icon{font-size:.75rem;font-weight:700;margin-top:2px;flex-shrink:0}.lint-issue--error .lint-issue-icon{color:#f44336}.lint-issue--warning .lint-issue-icon{color:#ff9800}.lint-issue-body{display:flex;flex-direction:column;gap:.25rem;min-width:0}.lint-issue-message{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.lint-issue-message code{font-family:Monaco,Courier New,monospace;font-size:.82rem;color:#e0e0e0}.lint-issue-count{font-size:.75rem;background:#333;padding:1px 5px;border-radius:4px;color:#aaa}.lint-issue-details{color:#888;font-size:.82rem;line-height:1.5}.lint-issue-clients{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.15rem}.lint-client-tag{font-size:.72rem;padding:1px 6px;border-radius:3px;background:#2a2a2a;color:#777;border:1px solid #3a3a3a}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#0f0f0f}.auth-box{background:#1a1a1a;border:1px solid #333;border-radius:8px;padding:2rem;width:100%;max-width:420px}.auth-box h2{margin:0 0 1.5rem;font-size:1.5rem}.auth-note{color:#ff9800;font-size:.9rem;line-height:1.5;margin-bottom:1.5rem;padding:.75rem;background:#ff980014;border:1px solid rgba(255,152,0,.3);border-radius:4px}.auth-error{color:#f44336;font-size:.9rem;margin:.5rem 0}.form-group{margin-bottom:1rem}.form-group label{display:block;font-size:.85rem;color:#aaa;margin-bottom:.4rem;text-transform:uppercase;letter-spacing:.5px}.form-group input{width:100%;padding:.7rem .8rem;background:#0f0f0f;border:1px solid #444;border-radius:4px;color:#e0e0e0;font-size:1rem;box-sizing:border-box}.form-group input:focus{outline:none;border-color:#646cff}.sidebar-env-bar{display:flex;align-items:center;gap:.25rem;padding:.5rem .75rem;border-bottom:1px solid #333;background:#222;min-height:40px}.sidebar-env-name{flex:1;font-size:.8rem;font-weight:600;color:#4caf50;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-env-btn{background:transparent!important;border:none!important;color:#888!important;padding:.2rem .3rem!important;font-size:1rem;cursor:pointer;line-height:1;flex-shrink:0}.sidebar-env-btn:hover{color:#fff!important;background:transparent!important}.env-list{list-style:none;padding:0;margin:0 0 .5rem}.env-item{display:flex;align-items:center;justify-content:space-between;padding:.6rem .5rem;border-bottom:1px solid #2a2a2a}.env-name{flex:1;cursor:pointer;font-size:1rem;color:#e0e0e0;padding:.2rem .5rem;border-radius:4px}.env-name:hover{background:#2a2a2a}.btn-sm{padding:.3rem .7rem!important;font-size:.85rem!important}.users-table{width:100%;border-collapse:collapse;margin-bottom:2rem}.users-table th,.users-table td{text-align:left;padding:.75rem 1rem;border-bottom:1px solid #333;height:56px}.users-table th{color:#888;font-size:.85rem;text-transform:uppercase;letter-spacing:.5px}.form-row{display:flex;gap:.75rem;align-items:center;margin-bottom:1rem}.form-row input{flex:1;padding:.7rem .8rem;background:#1a1a1a;border:1px solid #444;border-radius:4px;color:#e0e0e0;font-size:1rem}.form-row input:focus{outline:none;border-color:#646cff}.section-title{font-size:1.1rem;margin:2rem 0 1rem;color:#bbb}
