@import url("https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&display=swap");*,:after,:before{box-sizing:border-box}body,html{margin:0;padding:0;min-height:100%;font-family:DM Sans,system-ui,-apple-system,sans-serif;background:#f8fafc;color:#0f172a;-webkit-font-smoothing:antialiased}button,input,textarea{font-family:inherit}a{color:#2563eb}code{font-size:.875em;background:#f1f5f9;padding:2px 6px;border-radius:4px}.portal-page{min-height:100vh;padding:24px 16px 48px;display:flex;flex-direction:column;align-items:center;gap:24px}.portal-page-narrow{justify-content:center}.portal-page-wide{align-items:stretch;max-width:720px;margin:0 auto;width:100%}.portal-card{width:100%;max-width:520px;background:#ffffff;border-radius:12px;box-shadow:0 4px 24px rgba(15,23,42,.08);padding:32px 28px}.portal-card h2{margin:0 0 8px;font-size:1.375rem}.success-card{text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px}.hero{max-width:520px;width:100%;text-align:center}.hero-title{margin:0;font-size:2rem;font-weight:800;color:#2563eb;letter-spacing:-.03em}.hero-title.small{font-size:1.5rem;margin-bottom:8px}.hero-tagline{margin:4px 0 16px;font-size:1.125rem;color:#64748b}.hero-desc{margin:0 0 16px;color:#475569;line-height:1.6;font-size:.9375rem}.hero-features{text-align:left;margin:0 auto 8px;padding-left:20px;color:#475569;font-size:.875rem;line-height:1.8;max-width:400px}.subtitle{margin:0 0 20px;color:#64748b;font-size:.9375rem}.field{margin-bottom:16px}.field label{display:block;font-size:.6875rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#475569;margin-bottom:6px}.field input,.field textarea{width:100%;padding:11px 14px;font-size:.9375rem;border:1px solid #e2e8f0;border-radius:8px;background:#ffffff;outline:none}.field input:focus,.field textarea:focus{border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.12)}.field-note{margin:6px 0 0;font-size:.8125rem;color:#94a3b8}.btn-danger,.btn-primary,.btn-secondary{padding:11px 22px;font-size:.9375rem;font-weight:600;border-radius:8px;cursor:pointer;border:none;text-decoration:none;display:inline-block;text-align:center}.btn-primary{background:#2563eb;color:#ffffff}.btn-primary:hover:not(:disabled){background:#1d4ed8}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-primary.full{width:100%;margin-top:8px}.btn-secondary{background:#ffffff;color:#475569;border:1px solid #e2e8f0}.btn-danger{background:#dc2626;color:#ffffff}.btn-sm{padding:8px 14px;font-size:.8125rem}.footer-link{margin:20px 0 0;text-align:center;font-size:.875rem;color:#64748b}.error-text{color:#dc2626;font-size:.875rem;margin:8px 0}.success-text{color:#16a34a;font-size:.875rem}.muted{color:#94a3b8;font-size:.875rem}.spinner{width:40px;height:40px;border:3px solid #e2e8f0;border-top-color:#2563eb;border-radius:50%;animation:spin .75s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.success-icon{background:#dcfce7;color:#16a34a;font-size:1.75rem}.success-icon,.verify-err{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center}.verify-err{background:#fee2e2;color:#dc2626;font-size:1.5rem}.info-box{padding:12px 14px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;font-size:.875rem;color:#1e40af;line-height:1.5}.alert-box{padding:14px 16px;background:#fef3c7;border:1px solid #fcd34d;border-radius:8px;font-size:.875rem;color:#92400e;margin-bottom:16px}.link-btn{background:none;border:none;color:#2563eb;font-weight:600;cursor:pointer;margin-left:8px}.dashboard-loading{display:flex;justify-content:center;padding:48px}.dashboard{width:100%}.dash-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;flex-wrap:wrap}.dash-brand{margin:0;font-size:.8125rem;font-weight:700;color:#2563eb;text-transform:uppercase;letter-spacing:.08em}.dash-header h1{margin:4px 0 0;font-size:1.5rem}.dash-email{margin:4px 0 0;color:#64748b;font-size:.875rem}.dash-tabs{display:flex;gap:4px;overflow-x:auto;margin-bottom:20px;padding-bottom:4px;-webkit-overflow-scrolling:touch}.dash-tab{flex-shrink:0;padding:10px 16px;border:none;background:#ffffff;border-radius:8px;font-size:.875rem;font-weight:600;color:#64748b;cursor:pointer;box-shadow:0 1px 2px rgba(15,23,42,.06)}.dash-tab.active{background:#2563eb;color:#ffffff}.dash-section{background:#ffffff;border-radius:12px;padding:24px;box-shadow:0 2px 12px rgba(15,23,42,.06)}.dash-section h2{margin:0 0 8px;font-size:1.25rem}.plan-card{margin-top:12px}.plan-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.plan-name{font-size:1.125rem;font-weight:700}.plan-name,.status-badge{text-transform:capitalize}.status-badge{padding:4px 10px;border-radius:999px;font-size:.75rem;font-weight:600}.status-pending{background:#fef3c7;color:#92400e}.status-active{background:#dcfce7;color:#166534}.status-rejected{background:#fee2e2;color:#991b1b}.usage-meter{margin-top:8px}.usage-labels{display:flex;justify-content:space-between;font-size:.8125rem;color:#64748b;margin-bottom:8px}.usage-bar{height:10px;background:#e2e8f0;border-radius:999px;overflow:hidden}.usage-fill{height:100%;background:linear-gradient(90deg,#2563eb,#3b82f6);border-radius:999px;transition:width .3s ease}.usage-remaining{margin:8px 0 0;font-size:.8125rem;color:#94a3b8}.summary{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;margin-bottom:16px}.summary-row{display:flex;justify-content:space-between;gap:12px;padding:10px 14px;font-size:.875rem;border-bottom:1px solid #f1f5f9}.summary-row:last-child{border-bottom:none}.summary-row span:first-child{color:#64748b}.summary-row span:last-child{text-align:right;word-break:break-all}.actions-row{display:flex;gap:12px;justify-content:flex-end;margin-top:16px}.account-actions{display:grid;grid-gap:16px;gap:16px;margin-top:16px}@media (min-width:600px){.account-actions{grid-template-columns:1fr 1fr}}.account-action-card{padding:16px;border:1px solid #e2e8f0;border-radius:8px}.account-action-card.danger{border-color:#fecaca;background:#fef2f2}.account-action-card h3{margin:0 0 8px;font-size:1rem}.account-action-card p{margin:0 0 12px;font-size:.875rem;color:#64748b}.token-reveal textarea{font-family:ui-monospace,monospace;font-size:.8125rem}.modal-overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(15,23,42,.45);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-dialog{width:100%;max-width:440px;max-height:90vh;overflow-y:auto;background:#fff;border-radius:12px;box-shadow:0 20px 48px rgba(15,23,42,.18);padding:24px}.modal-dialog.danger{border-top:4px solid #dc2626}.modal-dialog h3{margin:0 0 12px;font-size:1.125rem}.modal-dialog ul{margin:0 0 16px;padding-left:20px;color:#475569;font-size:.9375rem;line-height:1.55}.modal-dialog ul li{margin-bottom:6px}.modal-note{margin:0 0 20px;padding:12px;background:#f8fafc;border-radius:8px;font-size:.875rem;color:#64748b}.modal-actions{display:flex;gap:12px;justify-content:flex-end;flex-wrap:wrap}.connection-guide{margin-top:28px;padding-top:24px;border-top:1px solid #e2e8f0}.connection-guide>h3{margin:0 0 8px;font-size:1.0625rem}.connection-guide>.subtitle,.guide-url-box{margin-bottom:20px}.guide-url-box{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:14px 16px;background:#f1f5f9;border-radius:8px;font-size:.875rem}.guide-url-box code{font-size:.8125rem;word-break:break-all}.guide-platforms{display:grid;grid-gap:16px;gap:16px}@media (min-width:640px){.guide-platforms{grid-template-columns:1fr 1fr}}.guide-platform{padding:16px;border:1px solid #e2e8f0;border-radius:8px;background:#fff}.guide-platform h4{margin:0 0 12px;font-size:.9375rem;display:flex;align-items:center;gap:8px}.guide-platform ol{margin:0;padding-left:20px;font-size:.8125rem;color:#475569;line-height:1.6}.guide-platform ol li{margin-bottom:8px}.guide-platform ol li strong{color:#0f172a;font-weight:600}.guide-tip{margin-top:16px;padding:12px 14px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;font-size:.8125rem;color:#1e40af;line-height:1.5}