.portal-auth,.portal-page{min-height:100vh}.portal-auth{display:flex;align-items:center;justify-content:center;padding:var(--s-8)}.portal-auth-card{width:100%;max-width:400px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--s-8)}.portal-auth-eyebrow{font-family:var(--font-mono);font-size:var(--t-xs);font-weight:400;text-transform:uppercase;letter-spacing:.12em;color:var(--accent-text);margin-bottom:var(--s-5);display:block}.portal-auth-title{font-family:var(--font-display);font-size:var(--t-2xl);font-weight:700;line-height:1.1;letter-spacing:-.025em;margin-bottom:var(--s-6);color:var(--text)}.portal-auth-error{font-size:var(--t-sm);color:var(--error-text);background:var(--error-dim);border:1px solid var(--error-border);border-radius:var(--radius);padding:var(--s-3) var(--s-4)}.portal-auth-error,.portal-auth-field{margin-bottom:var(--s-4)}.portal-auth-label{display:block;font-size:var(--t-sm);font-weight:500;color:var(--text-2);margin-bottom:var(--s-2)}.portal-auth-input{width:100%;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-family:var(--font-body);font-size:var(--t-sm);padding:var(--s-3) var(--s-4);outline:none;transition:border-color .15s ease}.portal-auth-input:focus{border-color:var(--accent)}.portal-auth-input::placeholder{color:var(--text-3)}.portal-auth-submit{width:100%;margin-top:var(--s-2)}.portal-auth-toggle{margin-top:var(--s-5);text-align:center;font-size:var(--t-sm);color:var(--text-3)}.portal-auth-toggle-link{color:var(--text-2);text-decoration:underline;text-underline-offset:2px;cursor:pointer;background:none;border:none;font:inherit;padding:0}.portal-auth-toggle-link:hover{color:var(--text)}.portal-hero{padding:calc(var(--nav-h) + var(--s-12)) 0 var(--s-8)}.portal-hero-row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s-4)}.portal-hero-title{font-family:var(--font-display);font-size:var(--t-2xl);font-weight:700;letter-spacing:-.02em;color:var(--text)}.portal-signout{font-size:var(--t-sm);color:var(--text-3);cursor:pointer;background:none;border:none;font-family:var(--font-body);transition:color .15s ease}.portal-signout:hover{color:var(--text)}.portal-section{padding:var(--s-8) 0}.portal-section-title{font-family:var(--font-display);font-size:var(--t-lg);font-weight:600;color:var(--text);margin-bottom:var(--s-5)}.portal-license-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--s-6)}.portal-license-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:var(--s-6);gap:var(--s-6)}.portal-license-item label{display:block;font-size:var(--t-xs);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--text-3);margin-bottom:var(--s-2)}.portal-license-item span{font-size:var(--t-base);font-weight:500;color:var(--text)}.portal-key{font-family:var(--font-mono);color:var(--accent-text);font-size:var(--t-sm);letter-spacing:.04em}.portal-badge{display:inline-block;font-size:var(--t-xs);font-weight:600;padding:2px var(--s-2);border-radius:2px;text-transform:uppercase;letter-spacing:.06em}.portal-badge-active{color:var(--accent-text);background:var(--accent-dim)}.portal-badge-pending{color:var(--warning);background:oklch(75% .15 75/.1)}.portal-badge-revoked{color:var(--error-text);background:var(--error-dim)}.portal-seats-row{display:flex;align-items:center;gap:var(--s-3)}.portal-seats-bar{flex:1 1;height:4px;background:var(--border);border-radius:2px;overflow:hidden;max-width:120px}.portal-seats-fill{height:100%;background:var(--accent);border-radius:2px;transition:width .3s ease}.portal-seats-label{font-size:var(--t-sm);color:var(--text-2);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.portal-actions{display:flex;gap:var(--s-3);margin-bottom:var(--s-5)}.portal-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius)}.portal-table{width:100%;border-collapse:collapse;font-size:var(--t-sm)}.portal-table thead{background:var(--surface-up)}.portal-table th{padding:var(--s-3) var(--s-4);text-align:left;font-family:var(--font-mono);font-size:var(--t-xs);font-weight:400;text-transform:uppercase;letter-spacing:.08em;color:var(--text-3);border-bottom:1px solid var(--border)}.portal-table td{padding:var(--s-3) var(--s-4);border-bottom:1px solid var(--border-sub);vertical-align:middle;line-height:1.5;color:var(--text-2)}.portal-table tr:last-child td{border-bottom:none}.portal-table tr:hover{background:oklch(100% 0 0/.015)}.portal-table td:first-child{color:var(--text);font-weight:500}.portal-table .portal-email{font-family:var(--font-mono);font-size:var(--t-xs)}.portal-table .portal-machines{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.portal-icon-btn{font-size:var(--t-xs);color:var(--text-3);background:none;border:1px solid var(--border);border-radius:var(--radius);padding:2px var(--s-2);cursor:pointer;font-family:var(--font-body);transition:color .15s ease,border-color .15s ease}.portal-icon-btn:hover{color:var(--text);border-color:var(--text-3)}.portal-icon-btn-danger:hover{color:var(--error-text);border-color:var(--error-border)}.portal-invite-form{display:flex;gap:var(--s-3);align-items:end;margin-bottom:var(--s-5);padding:var(--s-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.portal-invite-field{flex:1 1}.portal-invite-field label{display:block;font-size:var(--t-xs);font-weight:500;color:var(--text-3);margin-bottom:var(--s-1)}.portal-invite-field input{width:100%;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-family:var(--font-body);font-size:var(--t-sm);padding:var(--s-2) var(--s-3);outline:none}.portal-invite-field input:focus{border-color:var(--accent)}.portal-invite-actions{display:flex;gap:var(--s-2)}.portal-confirm{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-4);background:var(--error-dim);border:1px solid var(--error-border);border-radius:var(--radius);margin-bottom:var(--s-5);font-size:var(--t-sm);color:var(--text-2)}.portal-confirm-actions{display:flex;gap:var(--s-2);margin-left:auto}@media (max-width:768px){.portal-license-grid{grid-template-columns:repeat(2,1fr)}.portal-invite-form{flex-direction:column;align-items:stretch}.portal-hero-row{flex-direction:column;gap:var(--s-2)}}@media (max-width:480px){.portal-license-grid{grid-template-columns:1fr}.portal-actions{flex-direction:column}}