:host { display: contents; } .overlay { position: fixed; inset: 0; z-index: 1000; background: rgba(0, 0, 0, 0.6); display: flex; align-items: center; justify-content: center; font-family: var(--font-family, system-ui, sans-serif); } .modal { width: min(440px, calc(100vw - 32px)); background: var(--color-surface, #1b1b1f); color: var(--color-text, #f5f5f7); border-radius: var(--radius-md, 12px); padding: 28px 28px 24px; box-shadow: 0 20px 60px rgba(0, 0, 0, 0.45); border: 1px solid rgba(255, 255, 255, 0.06); } .modal h1 { margin: 0 0 4px; font-size: 18px; font-weight: 600; } .subtitle { margin: 0 0 20px; font-size: 13px; color: var(--color-text, #f5f5f7); opacity: 0.7; } form { display: flex; flex-direction: column; gap: 14px; } .field { display: flex; flex-direction: column; gap: 6px; font-size: 13px; } .field > span { font-weight: 500; } .field input { font: inherit; padding: 10px 12px; border-radius: var(--radius-sm, 6px); border: 1px solid rgba(255, 255, 255, 0.12); background: rgba(255, 255, 255, 0.04); color: inherit; outline: none; } .field input:focus { border-color: var(--color-primary, #4f8cff); } .hint { font-size: 11px; opacity: 0.65; } .field-error { color: var(--color-danger, #ff6b6b); font-size: 12px; } .server-error { display: flex; align-items: center; gap: 12px; background: rgba(255, 107, 107, 0.12); border: 1px solid rgba(255, 107, 107, 0.35); border-radius: var(--radius-sm, 6px); padding: 8px 12px; font-size: 13px; color: var(--color-danger, #ff6b6b); } .server-error .link { background: transparent; border: 0; color: inherit; text-decoration: underline; cursor: pointer; font: inherit; } button.primary { margin-top: 6px; padding: 11px 14px; font: inherit; font-weight: 600; border-radius: var(--radius-sm, 6px); border: 0; background: var(--color-primary, #4f8cff); color: #fff; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: 8px; } button.primary[disabled] { cursor: not-allowed; opacity: 0.65; } .spinner { width: 14px; height: 14px; border: 2px solid rgba(255, 255, 255, 0.35); border-top-color: #fff; border-radius: 50%; animation: spin 0.8s linear infinite; } @keyframes spin { to { transform: rotate(360deg); } }