.portal-page{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}.portal-page .animated-background,.portal-page .newsletter-subscribe-modal,.portal-page .notifications-overlay,.portal-page .site-footer{display:none}.portal-masthead__title{font-size:1.125rem;font-weight:600;color:#111827;white-space:nowrap}.portal-page .masthead__button{border:none;cursor:pointer;font-size:.875rem}.portal-login__form{display:flex;flex-direction:column;gap:1.25rem}.login__options[hidden],.portal-login__form[hidden]{display:none}.portal-login__submit{width:100%;margin-top:.5rem;font-size:1rem;text-align:center}.portal-login__forgot-password{display:block;text-align:center;font-size:.875rem;color:#695097;text-decoration:none}.portal-login__forgot-password:hover{text-decoration:underline}.portal-login__error{margin-bottom:1rem;padding:.75rem 1rem;border-radius:8px;background:rgba(239,68,68,.1);color:#b91c1c;text-align:center;font-size:.875rem}.password-reset__info{font-size:.875rem;color:#6b7280;margin-bottom:1rem;line-height:1.5}.portal-alert{padding:.75rem 1rem;border-radius:.5rem;font-size:.875rem;margin-bottom:1.5rem;border:1px solid}.portal-alert--success{background-color:rgba(16,185,129,.12);border-color:rgba(16,185,129,.2);color:#059669}.portal-alert__key{margin-top:.5rem;padding:.75rem;background-color:#f9fafb;border-radius:.375rem;border:1px solid #e5e7eb;overflow-x:auto}.portal-alert__key-value{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.875rem;word-break:break-all;color:#111827}.portal-dashboard{min-height:calc(100vh - var(--masthead-height, 72px));background-color:#f8fafc}.portal-dashboard__content{max-width:56rem;margin:2rem auto;padding:0 1.5rem}.portal-button{display:inline-flex;align-items:center;justify-content:center;padding:.5rem 1.5rem;font-size:.875rem;font-weight:500;border:none;border-radius:.375rem;cursor:pointer;transition:background-color .15s ease,transform .15s ease,box-shadow .15s ease;text-decoration:none;line-height:1.5}.portal-button:hover{transform:translateY(-1px)}.portal-button:active{transform:translateY(0)}.portal-button--primary{background:#695097;color:#fff}.portal-button--primary:hover{background:#58407d;box-shadow:0 4px 12px rgba(105,80,151,.3)}.portal-button--secondary{background:#fff;color:#111827;border:1px solid #e5e7eb}.portal-button--secondary:hover{background:#f9fafb}.portal-button--danger{background:#dc2626;color:#fff}.portal-button--danger:hover{background:#b91c1c;box-shadow:0 4px 12px rgba(239,68,68,.3)}.portal-button--small{padding:.25rem .75rem;font-size:.8125rem}.portal-section{background:#fff;border-radius:.5rem;border:1px solid #e5e7eb;padding:1.5rem}.portal-section__title{font-size:1.125rem;font-weight:600;margin-bottom:1rem;color:#111827}.portal-section__empty{color:#6b7280;font-size:.875rem;padding:1rem 0}.portal-add-form{margin-bottom:1.5rem}.portal-add-form__row{display:flex;gap:.75rem;align-items:stretch}.portal-add-form__input{flex:1;padding:.5rem .75rem;border:1px solid #e5e7eb;border-radius:.375rem;font-size:.875rem;color:#111827;background:#fff;transition:border-color .15s ease,box-shadow .15s ease}.portal-add-form__input:focus{outline:none;border-color:#695097;box-shadow:0 0 0 3px rgba(105,80,151,.1)}.portal-table{width:100%;border-collapse:collapse}.portal-table__th{text-align:left;font-size:.8125rem;font-weight:500;color:#6b7280;text-transform:uppercase;letter-spacing:.025em}.portal-table__td,.portal-table__th{padding:.5rem .75rem;border-bottom:1px solid #e5e7eb}.portal-table__td{font-size:.875rem;vertical-align:middle;color:#111827}.portal-table__row:last-child .portal-table__td{border-bottom:none}.portal-table__row:hover .portal-table__td{background:rgba(17,24,39,.02)}.portal-badge{display:inline-block;padding:.125rem .5rem;border-radius:1rem;font-size:.75rem;font-weight:500}.portal-badge--active{background-color:rgba(16,185,129,.12);color:#059669}.portal-badge--revoked{background-color:#f3f4f6;color:#6b7280}@media (max-width:640px){.portal-dashboard__content{padding:0 1rem;margin:1rem auto}.portal-add-form__row{flex-direction:column}.portal-table{font-size:.8125rem}.portal-table__td,.portal-table__th{padding:.5rem}}@media (max-width:768px){.portal-masthead__title{font-size:.9375rem}}