:root{--color-primary: #c99a3f;--color-primary-hover: #e5bc64;--color-success: #4ade80;--color-success-bg: #0f2418;--color-success-border: #166534;--color-warning: #fbbf24;--color-warning-bg: #2a1f0a;--color-warning-border: #78350f;--color-danger: #f87171;--color-danger-bg: #2a0f0f;--color-danger-border: #7f1d1d;--color-neutral-bg: #0c0a09;--color-card-bg: #1c1917;--color-text-primary: #f5f5f4;--color-text-secondary: #d6d3d1;--color-text-muted: #a8a29e;--color-border: #3a3330;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;color:var(--color-text-primary);background-color:var(--color-neutral-bg);line-height:1.5}*{box-sizing:border-box;margin:0;padding:0}body{min-height:100vh;display:flex;flex-direction:column}.checkout-container{max-width:640px;margin:40px auto;padding:0 20px;width:100%}.checkout-card{background:var(--color-card-bg);border-radius:var(--radius-lg);border:1px solid var(--color-border);box-shadow:var(--shadow-md);padding:32px}.checkout-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--color-border)}.checkout-brand{font-size:1.25rem;font-weight:700;color:var(--color-text-primary);display:flex;align-items:center;gap:8px}progress.loading-spinner{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:48px;height:48px;border-radius:50%;background:conic-gradient(from 0deg,var(--color-primary) 0%,transparent 80%);mask:radial-gradient(farthest-side,transparent calc(100% - 6px),#000 calc(100% - 5px));-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 6px),#000 calc(100% - 5px));animation:spinner-rotate 1s linear infinite;display:block;margin:24px auto;border:none}progress.loading-spinner::-webkit-progress-bar{background:transparent}progress.loading-spinner::-webkit-progress-value{background:transparent}progress.loading-spinner::-moz-progress-bar{background:transparent}@keyframes spinner-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){progress.loading-spinner{animation:none;background:var(--color-primary);opacity:.75}}.status-banner{padding:20px;border-radius:var(--radius-md);margin-bottom:24px;display:flex;flex-direction:column;gap:8px}.status-banner-success{background-color:var(--color-success-bg);border:1.5px solid var(--color-success-border);color:#bbf7d0}.status-banner-warning{background-color:var(--color-warning-bg);border:1.5px solid var(--color-warning-border);color:#fde68a}.status-banner-danger{background-color:var(--color-danger-bg);border:1.5px solid var(--color-danger-border);color:#fecaca}.status-banner-neutral{background-color:var(--color-neutral-bg);border:1.5px solid var(--color-border);color:var(--color-text-secondary)}.status-title{font-size:1.15rem;font-weight:700;display:flex;align-items:center;gap:8px}.status-description{font-size:.95rem;line-height:1.5}.details-table{width:100%;border-collapse:collapse;margin:20px 0;font-size:.95rem}.details-table th,.details-table td{padding:12px 14px;text-align:left;border-bottom:1px solid var(--color-border)}.details-table th{color:var(--color-text-muted);font-weight:600;width:40%}.details-table td{font-weight:500;color:var(--color-text-primary)}.grants-list{display:flex;flex-direction:column;gap:10px;margin:16px 0}.grant-item{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-radius:var(--radius-sm);background:#292524;border:1px solid #3a3330;font-size:.9rem}.grant-badge{background:#0f2418;color:#4ade80;font-size:.75rem;font-weight:700;padding:2px 8px;border-radius:999px;text-transform:uppercase}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;font-size:1rem;font-weight:600;border-radius:var(--radius-md);cursor:pointer;text-decoration:none;transition:background-color .15s ease,transform .05s ease;border:none;width:100%}.btn-primary{background:var(--color-primary);color:#110f0a}.btn-primary:hover{background:var(--color-primary-hover)}.btn-secondary{background:#292524;color:var(--color-text-primary);border:1px solid var(--color-border);margin-top:10px}.btn-secondary:hover{background:#3a3330}.btn:focus-visible{outline:3px solid #e5bc64;outline-offset:2px}.footer-note{font-size:.85rem;color:var(--color-text-muted);text-align:center;margin-top:24px}.provider-selector-container{margin:20px 0}.provider-selector-legend{font-size:.95rem;font-weight:600;color:var(--color-text-primary);margin-bottom:12px;display:block}.provider-options-list{display:flex;flex-direction:column;gap:12px}.provider-option-card{display:flex;align-items:flex-start;gap:14px;padding:16px;border-radius:var(--radius-md);border:2px solid var(--color-border);background:var(--color-card-bg);cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease;-webkit-user-select:none;user-select:none}.provider-option-card:hover:not(.provider-option-disabled){border-color:#e5bc64}.provider-option-card:focus-visible{outline:3px solid #e5bc64;outline-offset:2px}.provider-option-selected{border-color:var(--color-primary);background:#241d14}.provider-option-disabled{opacity:.55;cursor:not-allowed;background:#1c1917}.provider-radio-indicator{width:20px;height:20px;border-radius:50%;border:2px solid #a8a29e;display:flex;align-items:center;justify-content:center;margin-top:2px;flex-shrink:0}.provider-option-selected .provider-radio-indicator{border-color:var(--color-primary)}.provider-radio-indicator:after{content:"";width:10px;height:10px;border-radius:50%;background:var(--color-primary);display:none}.provider-option-selected .provider-radio-indicator:after{display:block}.provider-option-content{flex:1}.provider-option-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.provider-option-title{font-size:1rem;font-weight:600;display:flex;align-items:center;gap:8px}.provider-option-subtitle{font-size:.85rem;color:var(--color-text-secondary)}.provider-unavailable-badge{font-size:.75rem;background:#2a0f0f;color:#fecaca;padding:2px 8px;border-radius:999px;font-weight:600}.checkout-container input[type=email],.checkout-container input[type=text],.checkout-container input:not([type]),.checkout-container select{background:#0c0a09;color:var(--color-text-primary);box-sizing:border-box}.checkout-container input::placeholder{color:#78716c}.checkout-container input:focus-visible,.checkout-container select:focus-visible{outline:3px solid #e5bc64;outline-offset:2px}body{background-color:var(--color-neutral-bg)}.portal-container{--p-bg: #0c0a09;--p-surface: #1c1917;--p-surface-2: #292524;--p-border: #3a3330;--p-text: #f5f5f4;--p-muted: #a8a29e;--p-accent: #c99a3f;--p-accent-hover: #e5bc64;--p-accent-text: #e5bc64;--p-success: #4ade80;--p-danger-text: #fca5a5;min-height:100vh;box-sizing:border-box;max-width:760px;margin:0 auto;padding:32px 16px 64px;color:var(--p-text);display:flex;flex-direction:column;gap:20px}body:has(.portal-container){background:#0c0a09;margin:0}.portal-container *,.portal-container *:before,.portal-container *:after{box-sizing:border-box}.portal-container p{color:var(--p-muted);line-height:1.6;margin:0 0 12px}.portal-container strong{color:var(--p-text)}.portal-container h2{font-size:1.35rem;font-weight:800;letter-spacing:-.01em;margin:0 0 12px}.portal-header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:20px;border-bottom:1px solid var(--p-border)}.portal-brand-badge{display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--p-accent-text);margin-bottom:6px}.portal-title{font-size:1.9rem;font-weight:900;letter-spacing:-.02em;margin:0 0 6px}.portal-learner-meta{margin:0;font-size:.9rem}.portal-card,.order-card,.subscription-card{background:var(--p-surface);border:1px solid var(--p-border);border-radius:16px;padding:24px}.portal-card .order-card{background:var(--p-surface-2);margin-bottom:16px}.portal-card .order-card:last-child{margin-bottom:0}.portal-container fieldset legend{color:var(--p-text);margin-bottom:8px}.portal-container fieldset label{display:inline-flex;align-items:center;gap:8px;color:var(--p-text);cursor:pointer}.portal-container input[type=radio]{accent-color:var(--p-accent);width:18px;height:18px}.sub-title{font-size:1.1rem;font-weight:800;margin:0 0 10px}.sub-interval{color:var(--p-muted);font-size:.9rem}.action-btn,.document-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:12px;padding:12px 20px;font-size:.8rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;cursor:pointer;border:1px solid transparent;transition:background-color .15s ease,border-color .15s ease}.primary-btn{background:var(--p-accent);color:#110f0a;margin-top:4px}.primary-btn:hover:not(:disabled){background:var(--p-accent-hover)}.secondary-btn,.document-btn{background:transparent;color:var(--p-text);border-color:var(--p-border)}.secondary-btn:hover:not(:disabled),.document-btn:hover:not(:disabled){border-color:var(--p-accent-text)}.danger-btn{background:transparent;color:var(--p-danger-text);border-color:#7f1d1d}.danger-btn:hover:not(:disabled){background:#450a0a}.action-btn:disabled{opacity:.55;cursor:not-allowed}.portal-container button:focus-visible,.portal-container a:focus-visible,.portal-container input:focus-visible{outline:3px solid var(--p-accent-text);outline-offset:3px}.portal-tabs{display:flex;gap:8px;border-bottom:1px solid var(--p-border)}.portal-tab{background:none;border:0;border-bottom:3px solid transparent;color:var(--p-muted);padding:12px 4px;margin-right:16px;font-size:.9rem;font-weight:700;cursor:pointer}.portal-tab.active,.portal-tab[aria-selected=true]{color:var(--p-text);border-bottom-color:var(--p-accent)}.portal-tabpanel{display:flex;flex-direction:column;gap:16px}.orders-list,.subscriptions-list{display:flex;flex-direction:column;gap:16px;margin:0;padding:0;list-style:none}.order-header,.subscription-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px}.order-number{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem;font-weight:700;word-break:break-all}.order-date{display:block;color:var(--p-muted);font-size:.85rem;margin-top:2px}.order-status-badge{font-size:.7rem;font-weight:800;letter-spacing:.1em;padding:4px 10px;border-radius:999px;border:1px solid var(--p-border);color:var(--p-muted)}.status-paid{color:var(--p-success);border-color:#166534}.order-lines-list{list-style:none;margin:0 0 14px;padding:0}.order-line-item{display:flex;gap:12px;padding:8px 0;border-bottom:1px solid var(--p-border);font-size:.92rem}.line-title{flex:1}.line-qty{color:var(--p-muted)}.order-footer,.subscription-actions{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px}.order-total-label{color:var(--p-muted)}.subscription-dates{color:var(--p-muted);font-size:.9rem;margin-bottom:14px}.cancel-notice{color:var(--p-accent-text);font-size:.9rem}.empty-state{color:var(--p-muted);text-align:center;padding:32px 16px;border:1px dashed var(--p-border);border-radius:16px}.portal-container .status-banner{border-radius:12px;padding:14px 16px;border:1px solid var(--p-border);background:var(--p-surface-2);color:var(--p-text)}.portal-container .status-banner-success{border-color:#166534}.portal-container .status-banner-danger{border-color:#7f1d1d}.loading-state,.error-card{text-align:center}.error-title{font-size:1.3rem;font-weight:800;margin:8px 0}.error-description{color:var(--p-muted)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;padding:16px;z-index:50}.modal-content{background:var(--p-surface);color:var(--p-text);border:1px solid var(--p-border);border-radius:16px;padding:24px;width:100%;max-width:520px;max-height:90vh;overflow:auto}.modal-helper-text{color:var(--p-muted)}.modal-actions,.receipt-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:12px;margin-top:20px}.receipt-table{width:100%;border-collapse:collapse;font-size:.9rem}.receipt-table th,.receipt-table td{text-align:left;padding:8px 4px;border-bottom:1px solid var(--p-border)}@media(max-width:520px){.portal-title{font-size:1.5rem}.portal-card,.order-card,.subscription-card{padding:18px}.portal-card .action-btn{width:100%}}.past-subscriptions-heading{font-size:.85rem!important;font-weight:700!important;letter-spacing:.1em;text-transform:uppercase;color:var(--p-muted);margin:16px 0 0!important}.subscription-past{opacity:.6;background:transparent}.sub-state-badge{font-size:.7rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;padding:4px 10px;border-radius:999px;border:1px solid var(--p-border);color:var(--p-muted)}.state-active{color:var(--p-success);border-color:#166534}.state-cancelling{color:var(--p-accent-text);border-color:#7f1d1d}
