body{margin:0;padding:0;font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,input:-webkit-autofill:active,ion-input::part(native):-webkit-autofill,ion-input::part(native):-webkit-autofill:hover,ion-input::part(native):-webkit-autofill:focus,ion-input::part(native):-webkit-autofill:active{-webkit-background-clip:text !important;-webkit-text-fill-color:inherit !important;transition:background-color 9999s ease-in-out 0s}.modal-form .error-message{display:flex;align-items:center;gap:8px;padding:12px 16px;margin-bottom:16px;background:var(--ion-color-danger);color:var(--ion-color-danger-contrast);border-radius:8px;font-size:14px}.modal-form .error-message ion-icon{font-size:20px;flex-shrink:0}.modal-form .form-section{margin-bottom:24px}.modal-form .form-section h3{margin:0 0 8px 0;font-size:16px;font-weight:600;color:var(--ion-color-dark)}.modal-form .form-section .section-description{margin:0 0 12px 0;font-size:13px;color:var(--ion-color-medium);line-height:1.4}.modal-form ion-spinner{width:20px;height:20px}ion-modal.sdk-config-modal .sdk-snippet-code{background:#1e1e2e;border-radius:8px;padding:16px;margin-top:16px;overflow-x:auto}ion-modal.sdk-config-modal .sdk-snippet-code code{font-family:"SF Mono", Monaco, monospace;font-size:0.8rem;white-space:pre;color:#cdd6f4;line-height:1.6}ion-modal.sdk-config-modal .footer-buttons{display:flex;flex-direction:column;gap:8px;padding:8px 16px}ion-modal.client-secret-modal .mono{font-family:"SF Mono", Monaco, monospace;font-size:0.8rem;word-break:break-all}ion-modal.client-secret-modal .secret-value{font-family:"SF Mono", Monaco, monospace;font-size:13px;word-break:break-all;line-height:1.5;background:var(--ion-color-light);padding:12px;border-radius:8px;margin-top:4px}ion-modal.client-secret-modal .footer-buttons{display:flex;flex-direction:column;gap:8px;padding:8px 16px}ion-modal.user-modal ion-input,ion-modal.user-modal ion-select{margin-bottom:12px}ion-modal.user-modal .password-field ion-input{margin-bottom:4px}ion-modal.user-modal .password-field .password-actions{display:flex;gap:8px;margin-bottom:8px}ion-modal.user-modal .role-descriptions{margin-top:12px}ion-modal.user-modal .role-descriptions .role-desc{padding:8px 12px;margin-bottom:8px;border-radius:6px;font-size:13px;color:var(--ion-color-medium);background:var(--ion-color-light);opacity:0.6;transition:opacity 0.2s, background 0.2s}ion-modal.user-modal .role-descriptions .role-desc.active{opacity:1;background:var(--ion-color-primary-tint);color:var(--ion-color-dark)}ion-modal.user-modal .role-descriptions .role-desc strong{color:inherit}ion-modal.user-modal .role-descriptions .role-desc:last-child{margin-bottom:0}ion-modal.role-modal .user-info{display:flex;align-items:center;gap:16px;padding:16px;margin-bottom:24px;background:var(--ion-color-light);border-radius:12px}ion-modal.role-modal .user-info ion-avatar{width:56px;height:56px;flex-shrink:0}ion-modal.role-modal .user-info ion-avatar .avatar-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--ion-color-primary);color:white;font-weight:600;font-size:22px;border-radius:50%}ion-modal.role-modal .user-info .user-details{flex:1;min-width:0}ion-modal.role-modal .user-info .user-details h2{margin:0 0 4px 0;font-size:18px;font-weight:600;color:var(--ion-color-dark);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}ion-modal.role-modal .user-info .user-details p{margin:0;font-size:14px;color:var(--ion-color-medium);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}ion-modal.role-modal .owner-notice{display:flex;align-items:flex-start;gap:12px;padding:16px;background:var(--ion-color-warning);border-radius:8px}ion-modal.role-modal .owner-notice ion-icon{font-size:24px;color:var(--ion-color-warning-contrast);flex-shrink:0;margin-top:2px}ion-modal.role-modal .owner-notice p{margin:0;font-size:14px;color:var(--ion-color-warning-contrast);line-height:1.5}ion-modal.role-modal .role-selection h3{margin:0 0 12px 0;font-size:16px;font-weight:600;color:var(--ion-color-dark)}ion-modal.role-modal .role-selection ion-radio-group{display:flex;flex-direction:column;gap:8px}ion-modal.role-modal .role-selection ion-radio .role-option{display:flex;flex-direction:column;gap:2px;padding:8px 0}ion-modal.role-modal .role-selection ion-radio .role-option .role-name{font-size:15px;font-weight:600;color:var(--ion-color-dark)}ion-modal.role-modal .role-selection ion-radio .role-option .role-desc{font-size:13px;color:var(--ion-color-medium)}ion-modal.database-collection-create-modal,ion-modal.database-index-create-modal,ion-modal.database-document-insert-modal{--max-width:500px;--max-height:80vh;--border-radius:12px}ion-modal.database-index-create-modal .field-row{display:flex;gap:8px;align-items:center;margin-bottom:8px}ion-modal.database-index-create-modal .field-row ion-input{flex:1}ion-modal.database-index-create-modal .field-row ion-select{flex:0 0 120px}ion-modal.database-index-create-modal .field-row ion-button{flex:0 0 auto}ion-modal.database-index-create-modal ion-toggle{margin-bottom:8px}ion-modal.send-notification-modal{--max-width:560px;--max-height:85vh;--border-radius:12px}ion-modal.send-notification-modal .form-section{margin-bottom:16px}ion-modal.send-notification-modal .result-card{margin-top:16px}ion-modal.send-notification-modal .result-card ion-card{margin:0}ion-modal.send-notification-modal .result-stats{display:flex;gap:16px;justify-content:center;margin-bottom:8px}ion-modal.send-notification-modal .result-stats .stat{text-align:center}ion-modal.send-notification-modal .result-stats .stat .stat-value{display:block;font-size:24px;font-weight:700}ion-modal.send-notification-modal .result-stats .stat .stat-label{font-size:12px;color:var(--ion-color-medium);text-transform:uppercase}ion-modal.send-notification-modal .result-stats .stat.success .stat-value{color:var(--ion-color-success)}ion-modal.send-notification-modal .result-stats .stat.failure .stat-value{color:var(--ion-color-danger)}ion-modal.send-notification-modal .result-errors{margin-top:8px;font-size:13px;color:var(--ion-color-danger)}ion-modal.send-notification-modal .result-errors p{margin:0 0 4px 0;font-weight:600}ion-modal.send-notification-modal .result-errors ul{margin:0;padding-left:20px}ion-modal.send-notification-modal .result-errors li{margin-bottom:2px}ion-modal.quota-modal ion-input,ion-modal.quota-modal ion-select{margin-bottom:12px}ion-modal.quota-modal .form-section p{margin:0 0 4px 0;font-size:14px;color:var(--ion-color-medium)}ion-modal.hosting-upload-modal{--max-width:520px;--max-height:80vh;--border-radius:12px}ion-modal.hosting-upload-modal .file-drop-zone{border:2px dashed var(--ion-color-medium-tint);border-radius:12px;padding:32px;text-align:center;cursor:pointer;transition:border-color 0.2s, background 0.2s}ion-modal.hosting-upload-modal .file-drop-zone:hover{border-color:var(--ion-color-primary);background:var(--ion-color-primary-tint)}ion-modal.hosting-upload-modal .file-drop-zone .drop-placeholder{display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--ion-color-medium)}ion-modal.hosting-upload-modal .file-drop-zone .drop-placeholder ion-icon{font-size:48px}ion-modal.hosting-upload-modal .file-drop-zone .drop-placeholder p{margin:0;font-size:14px}ion-modal.hosting-upload-modal .file-drop-zone .file-info{display:flex;align-items:center;justify-content:center;gap:8px}ion-modal.hosting-upload-modal .file-drop-zone .file-info ion-icon{font-size:24px;color:var(--ion-color-primary)}ion-modal.hosting-upload-modal .file-drop-zone .file-info .file-name{font-weight:600}ion-modal.hosting-upload-modal .file-drop-zone .file-info .file-size{color:var(--ion-color-medium);font-size:13px}ion-modal.hosting-upload-modal ion-input{margin-bottom:12px}ion-modal.hosting-upload-modal .upload-progress{display:flex;align-items:center;justify-content:center;gap:12px;padding:16px;color:var(--ion-color-primary);font-weight:500}ion-modal.hosting-upload-modal .footer-buttons{padding:8px 16px}ion-modal.hosting-config-modal{--max-width:480px;--max-height:75vh;--border-radius:12px}ion-modal.hosting-config-modal ion-input{margin-bottom:12px}ion-modal.hosting-config-modal .footer-buttons{padding:8px 16px}ion-modal.hosting-domain-modal{--max-width:540px;--max-height:85vh;--border-radius:12px}ion-modal.hosting-domain-modal ion-input,ion-modal.hosting-domain-modal ion-select{margin-bottom:12px}ion-modal.hosting-domain-modal .dns-instructions{background:var(--ion-color-light);border-radius:8px;padding:16px;margin-top:12px}ion-modal.hosting-domain-modal .dns-instructions .dns-row{display:flex;align-items:center;justify-content:space-between;padding:8px 0}ion-modal.hosting-domain-modal .dns-instructions .dns-row:not(:last-child){border-bottom:1px solid var(--ion-color-light-shade)}ion-modal.hosting-domain-modal .dns-instructions .dns-row .dns-label{font-size:12px;font-weight:600;text-transform:uppercase;color:var(--ion-color-medium);min-width:50px}ion-modal.hosting-domain-modal .dns-instructions .dns-row .dns-value{display:flex;align-items:center;gap:4px;font-size:14px;word-break:break-all}ion-modal.hosting-domain-modal .dns-instructions .dns-row .dns-value.mono{font-family:monospace}ion-modal.hosting-domain-modal .dns-separator{height:1px;background:var(--ion-color-light-shade);margin:12px 0}ion-modal.hosting-domain-modal .dns-hint{display:flex;align-items:flex-start;gap:10px;margin-top:16px;padding:12px 14px;font-size:13px;color:var(--ion-color-dark-tint);background:rgba(var(--ion-color-primary-rgb), 0.06);border-left:3px solid var(--ion-color-primary);border-radius:0 8px 8px 0;line-height:1.5}ion-modal.hosting-domain-modal .dns-hint ion-icon{flex-shrink:0;font-size:18px;color:var(--ion-color-primary);margin-top:1px}ion-modal.hosting-domain-modal .dns-hint code{font-size:12px;background:rgba(var(--ion-color-primary-rgb), 0.1);padding:2px 6px;border-radius:4px;font-family:"SF Mono", Monaco, monospace}ion-modal.hosting-domain-modal .footer-buttons{padding:8px 16px}