.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1e293b,#334155);padding:20px}.auth-card{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;padding:40px;width:100%;max-width:400px}.auth-brand{text-align:center;margin-bottom:28px}.auth-logo{display:inline-block;background:#e8a308;color:#fff;font-weight:700;font-size:18px;padding:6px 12px;border-radius:6px;margin-bottom:12px}.auth-title{font-size:22px;font-weight:600;color:#1e293b;margin:0 0 4px}.auth-subtitle{font-size:14px;color:#64748b;margin:0}.auth-form{display:flex;flex-direction:column;gap:18px}.auth-error{padding:10px 14px;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;font-size:13px}.auth-label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:500;color:#475569}.auth-input{padding:10px 14px;border:1px solid #e2e8f0;border-radius:8px;font-size:14px;font-family:inherit;transition:border-color .15s}.auth-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633}.auth-input::placeholder{color:#94a3b8}.auth-submit{margin-top:8px;padding:12px 20px;background:#3b82f6;color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:500;font-family:inherit;cursor:pointer;transition:background .15s}.auth-submit:hover:not(:disabled){background:#2563eb}.auth-submit:disabled{opacity:.7;cursor:not-allowed}.auth-footer{margin-top:24px;text-align:center;font-size:14px;color:#64748b}.auth-link{color:#3b82f6;text-decoration:none;font-weight:500}.auth-link:hover{text-decoration:underline}.auth-loading{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;background:#f5f5f5;color:#64748b;font-size:14px}.auth-loading-spinner{width:32px;height:32px;border:3px solid #e2e8f0;border-top-color:#3b82f6;border-radius:50%;animation:auth-spin .8s linear infinite}@keyframes auth-spin{to{transform:rotate(360deg)}}.app{display:flex;height:100vh;width:100vw}.app-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;width:100vw;gap:12px;color:#888;font-size:14px}.app-main{display:flex;flex-direction:column;flex:1;min-width:0}.sidebar{width:220px;background:#1e293b;display:flex;flex-direction:column;border-right:1px solid #334155;flex-shrink:0}.sidebar-new-module{padding:12px 10px 8px}.sidebar-new-module-btn{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;background:#334155;border:1px dashed #475569;border-radius:6px;color:#e2e8f0;font-size:13px;font-family:inherit;cursor:pointer;transition:background .15s,border-color .15s}.sidebar-new-module-btn:hover{background:#475569;border-color:#64748b}.sidebar-modules{flex:1;overflow-y:auto;padding:4px 0}.sidebar-modules::-webkit-scrollbar{width:4px}.sidebar-modules::-webkit-scrollbar-track{background:transparent}.sidebar-modules::-webkit-scrollbar-thumb{background:#475569;border-radius:2px}.sidebar-module-item{display:flex;align-items:center;gap:6px;padding:7px 10px;margin:1px 6px;border-radius:6px;cursor:pointer;color:#94a3b8;font-size:13px;position:relative;transition:background .1s,color .1s}.sidebar-module-item:hover{background:#334155;color:#e2e8f0}.sidebar-module-item.active{background:#334155;color:#fff}.sidebar-module-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.sidebar-pin-icon{flex-shrink:0;color:#64748b}.sidebar-module-menu-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:none;border:none;color:#64748b;border-radius:4px;cursor:pointer;opacity:0;flex-shrink:0;transition:opacity .15s,background .15s,color .15s;padding:0}.sidebar-module-item:hover .sidebar-module-menu-btn,.sidebar-module-menu-btn:focus{opacity:1}.sidebar-module-menu-btn:hover{background:#475569;color:#e2e8f0}.sidebar-context-menu{position:fixed;z-index:2000;background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 8px 24px #00000026;padding:4px;min-width:180px}.sidebar-context-menu button{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;background:none;border:none;color:#334155;font-size:13px;font-family:inherit;cursor:pointer;border-radius:4px;text-align:left;transition:background .1s}.sidebar-context-menu button:hover:not(:disabled){background:#f1f5f9}.sidebar-context-menu button:disabled{color:#94a3b8;cursor:not-allowed}.sidebar-context-menu button.danger{color:#dc2626}.sidebar-context-menu button.danger:hover{background:#fef2f2}.sidebar-context-menu-divider{height:1px;background:#e2e8f0;margin:4px 0}.sidebar-rename-input{flex:1;min-width:0;background:#1e293b;border:1px solid #3b82f6;border-radius:4px;color:#e2e8f0;font-size:13px;padding:2px 6px;outline:none;font-family:inherit}.sidebar-bottom{position:relative;padding:8px 6px;border-top:1px solid #334155}.sidebar-settings-btn{display:flex;align-items:center;gap:8px;width:100%;height:38px;padding:0 12px;background:none;border:none;border-radius:6px;color:#94a3b8;font-size:13px;font-family:inherit;cursor:pointer;transition:background .15s,color .15s}.sidebar-settings-btn:hover{background:#334155;color:#e2e8f0}.sidebar-actions-menu{position:absolute;left:6px;right:6px;bottom:calc(100% + 8px);z-index:30;display:flex;flex-direction:column;gap:4px;padding:6px;background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 10px 26px #00000038}.sidebar-actions-menu-item{width:100%;padding:8px 10px;background:none;border:none;border-radius:6px;color:#334155;font-size:13px;font-family:inherit;text-align:left;cursor:pointer;transition:background .1s}.sidebar-actions-menu-item:hover{background:#f1f5f9}.header{height:52px;background:#fff;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;justify-content:space-between;padding:0 20px;flex-shrink:0}.header-brand{display:flex;align-items:center;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none}.header-logo{background:#e8a308;color:#fff;font-weight:700;font-size:14px;padding:4px 8px;border-radius:4px;line-height:1}.header-title{font-size:16px;font-weight:600;color:#1e293b}.header-actions{display:flex;gap:8px}.header-actions button{display:flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid #e2e8f0;border-radius:6px;background:#fff;color:#475569;font-size:13px;cursor:pointer;transition:all .15s;white-space:nowrap}.header-actions button:hover{background:#f1f5f9;border-color:#cbd5e1;color:#1e293b}.header-actions button.copied{background:#ecfdf5;border-color:#6ee7b7;color:#059669}.header-actions button svg{width:16px;height:16px;flex-shrink:0}.header-account-zone{display:flex;align-items:center;margin-left:16px;padding-left:16px;border-left:1px solid #e2e8f0}.header-account{position:relative}.header-account-btn{display:flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid #e2e8f0;border-radius:6px;background:#fff;color:#475569;font-size:13px;font-family:inherit;cursor:pointer;transition:all .15s;white-space:nowrap;max-width:220px}.header-account-btn:hover{background:#f1f5f9;border-color:#cbd5e1;color:#1e293b}.header-account-email{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.header-account-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:500;background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 8px 24px #0000001f;padding:4px;min-width:160px}.header-account-menu-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;background:none;border:none;color:#334155;font-size:13px;font-family:inherit;cursor:pointer;border-radius:4px;text-align:left;text-decoration:none;transition:background .1s;box-sizing:border-box}.header-account-menu-item:hover{background:#f1f5f9}.header-account-menu-item.danger{color:#dc2626}.header-account-menu-item.danger:hover{background:#fef2f2}.header-account-menu-divider{height:1px;background:#e2e8f0;margin:4px 0}.header-signin{display:inline-flex;align-items:center;padding:6px 12px;border:1px solid #e2e8f0;border-radius:6px;background:#fff;color:#475569;font-size:13px;text-decoration:none;cursor:pointer;transition:all .15s;white-space:nowrap}.header-signin:hover{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}.editor-container{flex:1;min-height:0}.editor-workspace{display:flex;flex:1;min-height:0;min-width:0}.editor-workspace .editor-container{min-width:0}.code-comment-decoration{background:#f59e0b47;border-radius:2px}.code-comment-decoration-overlap{background:#c9820847}.code-comment-decoration-selected{background:#3b82f647;outline:1px solid rgba(59,130,246,.45)}.footer{height:28px;background:#f8fafc;border-top:1px solid #e2e8f0;display:flex;align-items:center;justify-content:center;gap:8px;font-size:12px;color:#94a3b8;flex-shrink:0}.footer-sep{opacity:.5}.editor-bar{height:38px;background:#f8fafc;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;justify-content:space-between;padding:0 16px;gap:12px;flex-shrink:0}.editor-bar-left{display:flex;align-items:center;gap:8px;min-width:0}.editor-bar-module-name{font-size:13px;font-weight:500;color:#334155;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editor-bar-chip{font-size:11px;font-weight:500;padding:2px 8px;border-radius:10px;white-space:nowrap;flex-shrink:0;line-height:1.6}.chip-guest{background:#f1f5f9;color:#64748b;border:1px solid #e2e8f0}.chip-shared{background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe}.chip-readonly{background:#fef3c7;color:#92400e;border:1px solid #fde68a}.chip-commentable{background:#ecfdf5;color:#166534;border:1px solid #bbf7d0}.editor-bar-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.editor-bar-btn{display:flex;align-items:center;gap:5px;padding:5px 12px;border:1px solid #e2e8f0;border-radius:6px;background:#fff;color:#475569;font-size:12px;font-family:inherit;cursor:pointer;transition:all .15s;white-space:nowrap}.editor-bar-btn:hover:not(:disabled){background:#f1f5f9;border-color:#cbd5e1;color:#1e293b}.editor-bar-btn:disabled{opacity:.55;cursor:not-allowed}.editor-bar-btn.btn-primary{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}.editor-bar-btn.btn-primary:hover:not(:disabled){background:#dbeafe;border-color:#93c5fd;color:#1e40af}.comments-panel{width:360px;max-width:42vw;border-left:1px solid #e2e8f0;background:#fff;display:flex;flex-direction:column;flex-shrink:0;min-height:0}.comments-panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 16px 12px;border-bottom:1px solid #f1f5f9}.comments-panel-title{font-size:14px;font-weight:600;color:#1e293b}.comments-panel-subtitle{font-size:12px;color:#94a3b8;margin-top:4px}.comments-panel-close{background:none;border:none;color:#94a3b8;font-size:22px;line-height:1;cursor:pointer;padding:2px 6px;border-radius:4px}.comments-panel-close:hover{background:#f1f5f9;color:#475569}.comments-create-box,.comments-panel-note{padding:14px 16px;border-bottom:1px solid #f8fafc}.comments-create-title{font-size:12px;font-weight:600;color:#334155;margin-bottom:10px}.comments-create-form,.comment-edit-box{display:flex;flex-direction:column;gap:10px}.comments-textarea{width:100%;resize:vertical;min-height:84px;padding:10px 12px;border:1px solid #e2e8f0;border-radius:8px;font-size:13px;font-family:inherit;color:#334155;box-sizing:border-box}.comments-textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f626}.comments-form-footer{display:flex;align-items:center;justify-content:space-between;gap:12px}.comments-char-count{font-size:12px;color:#94a3b8}.comments-primary-btn,.comments-secondary-btn{padding:8px 14px;border-radius:6px;font-size:12px;font-family:inherit;cursor:pointer;transition:all .15s}.comments-primary-btn{background:#3b82f6;color:#fff;border:1px solid #3b82f6}.comments-primary-btn:hover:not(:disabled){background:#2563eb;border-color:#2563eb}.comments-secondary-btn{background:#fff;color:#475569;border:1px solid #e2e8f0}.comments-secondary-btn:hover{background:#f8fafc}.comments-primary-btn:disabled,.comments-secondary-btn:disabled{opacity:.65;cursor:not-allowed}.comments-list{flex:1;overflow-y:auto;padding:10px 12px 12px}.comment-card{border:1px solid #e2e8f0;border-radius:10px;background:#fff;margin-bottom:10px;overflow:hidden}.comment-card.selected{border-color:#93c5fd;box-shadow:0 0 0 2px #3b82f61f}.comment-card-hitbox{width:100%;padding:12px;background:none;border:none;text-align:left;cursor:pointer}.comment-card-hitbox:hover{background:#f8fafc}.comment-card-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}.comment-card-author{font-size:13px;font-weight:600;color:#1e293b}.comment-card-date,.comment-card-range{font-size:11px;color:#94a3b8}.comment-card-text{padding:0 12px 12px;font-size:13px;line-height:1.55;color:#334155;white-space:pre-wrap}.comment-card-actions{display:flex;align-items:center;gap:8px;padding:0 12px 12px}.comments-inline-actions{display:flex;align-items:center;gap:8px}.comments-link-btn{padding:0;border:none;background:none;color:#2563eb;font-size:12px;cursor:pointer}.comments-link-btn:hover{text-decoration:underline}.comments-link-btn.danger{color:#dc2626}.comments-panel-footer{padding:10px 16px;border-top:1px solid #f1f5f9;font-size:12px;color:#64748b}.share-dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000}.share-dialog{background:#fff;border-radius:12px;box-shadow:0 20px 60px #00000040;width:480px;max-width:95vw;padding:24px}.share-dialog-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.share-dialog-header h3{font-size:17px;font-weight:600;color:#1e293b;margin:0}.share-dialog-close{background:none;border:none;font-size:24px;line-height:1;color:#94a3b8;cursor:pointer;padding:4px 8px;border-radius:4px}.share-dialog-close:hover{background:#f1f5f9;color:#475569}.share-dialog-url-row{display:flex;gap:8px;margin-bottom:12px}.share-dialog-url-input{flex:1;min-width:0;padding:8px 12px;border:1px solid #e2e8f0;border-radius:6px;font-size:13px;color:#475569;background:#f8fafc;font-family:inherit}.share-dialog-copy-btn{padding:8px 16px;border:1px solid #3b82f6;border-radius:6px;background:#3b82f6;color:#fff;font-size:13px;font-family:inherit;cursor:pointer;transition:all .15s;white-space:nowrap;flex-shrink:0}.share-dialog-copy-btn:hover{background:#2563eb;border-color:#2563eb}.share-dialog-copy-btn.copied{background:#059669;border-color:#059669}.share-dialog-hint{font-size:12px;color:#94a3b8;margin:0;line-height:1.5}.shared-page-error{font-size:15px;color:#64748b;margin-bottom:16px}.shared-page-back{font-size:13px;color:#3b82f6;text-decoration:none}.shared-page-back:hover{text-decoration:underline}.user-settings-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:2000}.user-settings-panel{background:#fff;border-radius:12px;box-shadow:0 20px 60px #00000040;width:clamp(760px,68vw,1200px);height:min(82vh,780px);max-width:95vw;max-height:95vh;display:flex;flex-direction:column;overflow:hidden}.user-settings-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 18px;border-bottom:1px solid #f1f5f9;flex-shrink:0}.user-settings-header h2{font-size:18px;font-weight:600;color:#1e293b;margin:0}.user-settings-close{background:none;border:none;font-size:22px;line-height:1;color:#94a3b8;cursor:pointer;padding:4px 8px;border-radius:4px;transition:background .1s,color .1s}.user-settings-close:hover{background:#f1f5f9;color:#475569}.user-settings-body{display:flex;flex:1;min-height:0;overflow:hidden}.user-settings-nav{width:168px;flex-shrink:0;border-right:1px solid #f1f5f9;padding:12px 8px;display:flex;flex-direction:column;gap:2px}.user-settings-nav-item{display:flex;align-items:center;gap:10px;width:100%;padding:9px 12px;background:none;border:none;border-radius:6px;color:#64748b;font-size:13px;font-family:inherit;cursor:pointer;text-align:left;transition:background .1s,color .1s}.user-settings-nav-item:hover{background:#f8fafc;color:#334155}.user-settings-nav-item.active{background:#eff6ff;color:#1e40af;font-weight:500}.user-settings-content{flex:1;overflow-y:auto;overflow-x:hidden;padding:24px;min-width:0}.user-settings-section{display:flex;flex-direction:column;gap:0}.user-settings-field-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;gap:16px}.user-settings-field-label{font-size:13px;color:#64748b;flex-shrink:0}.user-settings-field-value{font-size:13px;color:#1e293b;text-align:right;word-break:break-all}.user-settings-divider{height:1px;background:#f1f5f9;margin:12px 0}.user-settings-subsection-title{font-size:13px;font-weight:600;color:#1e293b;margin-bottom:14px}.user-settings-success{padding:10px 14px;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;color:#15803d;font-size:13px;margin-bottom:14px}.user-settings-error{padding:10px 14px;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;font-size:13px;margin-bottom:14px}.user-settings-form{display:flex;flex-direction:column;gap:14px}.user-settings-form-label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:500;color:#475569}.user-settings-form-input{padding:9px 12px;border:1px solid #e2e8f0;border-radius:6px;font-size:14px;font-family:inherit;transition:border-color .15s,box-shadow .15s}.user-settings-form-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633}.user-settings-submit{align-self:flex-start;margin-top:4px;padding:9px 20px;background:#3b82f6;color:#fff;border:none;border-radius:6px;font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;transition:background .15s}.user-settings-submit:hover:not(:disabled){background:#2563eb}.user-settings-submit:disabled{opacity:.7;cursor:not-allowed}.user-settings-about{display:flex;flex-direction:column;align-items:center;gap:8px;padding:24px 0 16px;text-align:center}.user-settings-about-logo{background:#e8a308;color:#fff;font-weight:700;font-size:20px;padding:8px 16px;border-radius:8px;line-height:1;margin-bottom:4px}.user-settings-about-name{font-size:18px;font-weight:600;color:#1e293b}.user-settings-about-version{font-size:13px;color:#64748b;background:#f1f5f9;padding:3px 10px;border-radius:10px;margin-bottom:8px}.user-settings-about-desc{font-size:13px;color:#94a3b8;line-height:1.6;margin:0;max-width:280px}.user-settings-editor-layout{display:flex;gap:16px;min-height:0}.user-settings-editor-list{width:240px;flex-shrink:0;border:1px solid #e2e8f0;border-radius:8px;overflow:hidden}.user-settings-editor-list-item{display:flex;align-items:center;gap:10px;width:100%;padding:9px 12px;border:none;border-bottom:1px solid #f1f5f9;background:#fff;color:#475569;font-size:13px;font-family:inherit;text-align:left;cursor:pointer}.user-settings-editor-list-item:last-child{border-bottom:none}.user-settings-editor-list-item:hover{background:#f8fafc}.user-settings-editor-list-item.active{background:#eff6ff;color:#1e40af;font-weight:500}.user-settings-editor-color-dot{width:14px;height:14px;border-radius:50%;border:1px solid #cbd5e1;flex-shrink:0}.user-settings-editor-form{flex:1;display:flex;flex-direction:column;gap:14px;min-width:0}.user-settings-editor-preview{display:flex;align-items:center;gap:12px}.user-settings-editor-swatch{width:42px;height:42px;border-radius:8px;border:1px solid #e2e8f0}.user-settings-editor-preview-text{font-family:Consolas,Courier New,monospace;font-size:20px;font-weight:500}.user-settings-editor-rgb{display:flex;gap:10px}.user-settings-editor-rgb label{display:flex;align-items:center;gap:6px;font-size:13px;color:#64748b}.user-settings-editor-rgb input[type=number]{width:60px;padding:6px 8px;border:1px solid #e2e8f0;border-radius:6px;font-size:13px;text-align:center}.user-settings-editor-picker{display:flex;align-items:center;gap:10px;font-size:13px;color:#64748b}.user-settings-editor-picker input[type=color]{width:42px;height:32px;padding:2px;border:1px solid #e2e8f0;border-radius:6px;background:#fff;cursor:pointer}.user-settings-editor-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:4px;padding-top:12px;border-top:1px solid #f1f5f9}.user-settings-reset-btn{padding:8px 16px;border:1px solid #e2e8f0;border-radius:6px;background:#fff;color:#475569;font-size:13px;font-family:inherit;cursor:pointer;transition:all .15s}.user-settings-reset-btn:hover{background:#f1f5f9;border-color:#cbd5e1}.cookie-banner{position:fixed;bottom:0;left:0;right:0;z-index:3000;background:#fff;border-top:1px solid #e2e8f0;box-shadow:0 -4px 16px #00000014;padding:14px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px}.cookie-banner-text{font-size:13px;color:#475569;margin:0;line-height:1.5;flex:1}.cookie-banner-policy-link{background:none;border:none;color:#3b82f6;font-size:13px;font-family:inherit;cursor:pointer;padding:0;text-decoration:underline}.cookie-banner-policy-link:hover{color:#2563eb}.cookie-banner-actions{display:flex;gap:8px;flex-shrink:0}.cookie-banner-reject{padding:7px 16px;border:1px solid #e2e8f0;border-radius:6px;background:#fff;color:#64748b;font-size:13px;font-family:inherit;cursor:pointer;transition:all .15s;white-space:nowrap}.cookie-banner-reject:hover{background:#f1f5f9;border-color:#cbd5e1;color:#334155}.cookie-banner-accept{padding:7px 16px;border:1px solid #3b82f6;border-radius:6px;background:#3b82f6;color:#fff;font-size:13px;font-family:inherit;cursor:pointer;transition:all .15s;white-space:nowrap}.cookie-banner-accept:hover{background:#2563eb;border-color:#2563eb}.cookie-policy-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:4000}.cookie-policy-modal{background:#fff;border-radius:12px;box-shadow:0 20px 60px #00000040;width:520px;max-width:95vw;max-height:85vh;display:flex;flex-direction:column}.cookie-policy-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid #f1f5f9;flex-shrink:0}.cookie-policy-header h3{font-size:17px;font-weight:600;color:#1e293b;margin:0}.cookie-policy-close{background:none;border:none;font-size:24px;line-height:1;color:#94a3b8;cursor:pointer;padding:4px 8px;border-radius:4px}.cookie-policy-close:hover{background:#f1f5f9;color:#475569}.cookie-policy-body{flex:1;overflow-y:auto;padding:20px 24px}.cookie-policy-body h4{font-size:14px;font-weight:600;color:#1e293b;margin:16px 0 8px}.cookie-policy-body h4:first-child{margin-top:0}.cookie-policy-body p{font-size:13px;color:#475569;line-height:1.65;margin:0 0 10px}.cookie-policy-footer{padding:14px 24px;border-top:1px solid #f1f5f9;display:flex;justify-content:flex-end;flex-shrink:0}.cookie-policy-btn-close{padding:8px 20px;border:1px solid #e2e8f0;border-radius:6px;background:#fff;color:#475569;font-size:13px;font-family:inherit;cursor:pointer;transition:all .15s}.cookie-policy-btn-close:hover{background:#f1f5f9;border-color:#cbd5e1}.footer-cookie-btn{background:none;border:none;color:#94a3b8;font-size:12px;font-family:inherit;cursor:pointer;padding:0;transition:color .15s}.footer-cookie-btn:hover{color:#64748b}.diagnostics-panel{background:#f8fafc;border-top:1px solid #e2e8f0;flex-shrink:0;max-height:240px;display:flex;flex-direction:column;overflow:hidden}.diagnostics-panel--error{background:#fff7f7;border-top-color:#fecaca}.diagnostics-panel-header{display:flex;align-items:center;justify-content:space-between;padding:6px 16px;border-bottom:1px solid #e2e8f0;flex-shrink:0}.diagnostics-panel-title{font-size:12px;font-weight:600;color:#475569;display:flex;align-items:center;gap:8px}.diagnostics-count{display:flex;align-items:center;gap:6px;font-weight:400}.diagnostics-count--ok{color:#16a34a;font-weight:400}.diagnostics-count-item{font-size:11px;font-weight:500;padding:1px 6px;border-radius:8px;border:1px solid transparent;cursor:pointer;font-family:inherit;transition:transform .08s,box-shadow .12s,filter .12s}.diagnostics-count-item:hover{filter:brightness(.97)}.diagnostics-count-item:active{transform:translateY(1px)}.diagnostics-count-item.is-active{box-shadow:0 0 0 2px #0f172a1f inset}.diagnostics-panel-close{background:none;border:none;color:#94a3b8;cursor:pointer;padding:2px;display:flex;align-items:center;border-radius:4px;transition:color .15s,background .15s}.diagnostics-panel-close:hover{color:#475569;background:#e2e8f0}.diagnostics-panel-ok{display:flex;align-items:center;gap:8px;padding:12px 16px;font-size:13px;color:#16a34a}.diagnostics-panel-error-msg{display:flex;align-items:center;gap:8px;padding:12px 16px;font-size:13px;color:#dc2626}.diagnostics-list{list-style:none;margin:0;padding:4px 0;overflow-y:auto;flex:1}.diagnostics-list::-webkit-scrollbar{width:4px}.diagnostics-list::-webkit-scrollbar-track{background:transparent}.diagnostics-list::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:2px}.diagnostics-item{display:flex;align-items:baseline;gap:8px;padding:5px 16px;font-size:12px;line-height:1.5;border-left:2px solid transparent}.diagnostics-item:hover{background:#f1f5f9}.diagnostics-item.diag-error{border-left-color:#ef4444}.diagnostics-item.diag-warning{border-left-color:#f59e0b}.diagnostics-item.diag-info{border-left-color:#3b82f6}.diagnostics-item.diag-hint{border-left-color:#a855f7}.diagnostics-severity-badge{font-size:10px;font-weight:600;padding:1px 5px;border-radius:4px;flex-shrink:0;text-transform:uppercase;letter-spacing:.03em}.diagnostics-severity-badge.diag-error{background:#fee2e2;color:#b91c1c}.diagnostics-severity-badge.diag-warning{background:#fef3c7;color:#92400e}.diagnostics-severity-badge.diag-info{background:#dbeafe;color:#1d4ed8}.diagnostics-severity-badge.diag-hint{background:#f3e8ff;color:#7e22ce}.diagnostics-count-item.diag-error{background:#fee2e2;color:#b91c1c}.diagnostics-count-item.diag-warning{background:#fef3c7;color:#92400e}.diagnostics-count-item.diag-info{background:#dbeafe;color:#1d4ed8}.diagnostics-count-item.diag-hint{background:#f3e8ff;color:#7e22ce}.diagnostics-position{font-family:Consolas,Courier New,monospace;font-size:11px;color:#64748b;flex-shrink:0;min-width:40px}.diagnostics-message{color:#1e293b;flex:1;min-width:0}.diagnostics-code{font-family:Consolas,Courier New,monospace;font-size:10px;color:#94a3b8;flex-shrink:0;background:#f1f5f9;padding:1px 4px;border-radius:3px}.syntax-check-overlay{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;display:flex;align-items:flex-start;justify-content:center;padding-top:18px;z-index:2500}.syntax-check-toast{display:inline-flex;align-items:center;gap:10px;background:#0f172aeb;color:#f8fafc;border-radius:10px;padding:9px 14px;box-shadow:0 10px 30px #0f172a59;font-size:13px;font-weight:500}.syntax-check-spinner{width:14px;height:14px;border:2px solid rgba(148,163,184,.45);border-top-color:#22c55e;border-radius:50%;animation:syntax-check-spin .9s linear infinite}.syntax-check-text{white-space:nowrap}@keyframes syntax-check-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.admin-page{padding:40px 32px;max-width:960px}.admin-page-nav{display:flex;align-items:center;gap:12px;margin-bottom:12px}.admin-page-back-link{color:#2563eb;font-size:14px;text-decoration:none}.admin-page-back-link:hover{text-decoration:underline}.admin-page-signout-btn{border:1px solid #fecaca;background:#fff1f2;color:#be123c;border-radius:6px;padding:6px 10px;font-size:13px;cursor:pointer}.admin-page-signout-btn:disabled{opacity:.6;cursor:not-allowed}.admin-page-title{font-size:22px;font-weight:600;color:#0f172a;margin:0 0 8px}.admin-page-subtitle{font-size:14px;color:#64748b;margin:0 0 16px}.admin-users-toolbar{display:flex;gap:12px;margin-bottom:12px}.admin-users-search{width:100%;max-width:420px;border:1px solid #cbd5e1;border-radius:8px;padding:10px 12px;font-size:14px}.admin-users-status-filter{border:1px solid #cbd5e1;border-radius:8px;padding:10px 12px;font-size:14px;background:#fff;color:#334155}.admin-users-table-wrap{border:1px solid #e2e8f0;border-radius:8px;overflow:auto;background:#fff}.admin-users-table{width:100%;border-collapse:collapse;min-width:720px}.admin-users-table th,.admin-users-table td{border-bottom:1px solid #f1f5f9;padding:10px 12px;text-align:left;font-size:13px;vertical-align:top}.admin-users-table th{background:#f8fafc;color:#334155;font-weight:600}.admin-users-id{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;color:#475569}.admin-users-empty{text-align:center;color:#64748b}.admin-users-error{margin:0 0 12px;color:#b91c1c;font-size:13px}.admin-users-pagination{display:flex;align-items:center;gap:12px;margin-top:12px}.admin-users-pagination button{border:1px solid #cbd5e1;border-radius:6px;background:#fff;color:#334155;padding:6px 10px;cursor:pointer}.admin-users-pagination button:disabled{opacity:.5;cursor:not-allowed}.admin-users-action-btn{border:1px solid #cbd5e1;border-radius:6px;background:#fff;color:#334155;padding:5px 10px;font-size:12px;cursor:pointer}.admin-users-action-btn.delete{border-color:#fecaca;color:#be123c;background:#fff1f2}.admin-users-action-btn.restore{border-color:#bbf7d0;color:#166534;background:#f0fdf4}.admin-users-action-btn:disabled{opacity:.5;cursor:not-allowed}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;width:100%;overflow:hidden}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:14px;color:#334155;background:#f5f5f5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button{font-family:inherit}
