/* Application launcher using the Workspace's existing design tokens. */
.pa-hub{font-family:var(--pa-font);color:var(--pa-color-text);min-height:calc(100svh - 160px);display:flex;flex-direction:column;justify-content:center;padding:clamp(24px,5vh,64px) 0 64px}
.pa-hub-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--pa-space-6);width:100%;max-width:1440px;margin:0 auto;align-items:stretch}
.pa-hub-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:32px;min-width:0;min-height:344px;padding:36px 24px 24px;border:var(--pa-border);border-radius:var(--pa-radius-lg);background:var(--pa-metal-panel-soft);box-shadow:var(--pa-shadow-soft);transition:border-color var(--pa-transition),transform var(--pa-transition)}
.pa-hub-card:hover,.pa-hub-card:focus-within{border-color:var(--pa-color-line-strong)}
.pa-hub-logo{display:block;width:clamp(168px,15vw,208px);max-width:100%;height:auto;aspect-ratio:1;object-fit:contain;user-select:none}
.pa-hub-card button{display:inline-flex;align-items:center;justify-content:space-between;gap:var(--pa-space-3);width:100%;min-height:46px;margin-top:auto;padding:0 16px;border:var(--pa-border);border-radius:var(--pa-radius-sm);background:var(--pa-metal-panel);color:var(--pa-color-text);font-family:var(--pa-font);font-size:.84rem;font-weight:var(--pa-weight-semibold);line-height:1.45;letter-spacing:0;cursor:pointer;text-align:left;transition:transform var(--pa-transition),border-color var(--pa-transition),background-color var(--pa-transition),color var(--pa-transition),opacity var(--pa-transition)}
.pa-hub-card button svg{flex:0 0 auto;color:var(--pa-color-text-soft)}
.pa-hub-card button:hover{border-color:var(--pa-color-line-strong);background:var(--pa-color-surface-2);transform:translateY(-1px)}
.pa-hub-card button:focus-visible{outline:2px solid var(--pa-color-text-soft);outline-offset:4px}
.pa-hub-card button:disabled{opacity:.48;cursor:wait;transform:none}
.pa-hub>[role=status],.pa-hub-error{max-width:1000px;width:100%;margin:0 auto 20px;padding:20px;border:var(--pa-border);border-radius:var(--pa-radius-md);background:var(--pa-metal-panel-soft);font-size:var(--pa-size-body);line-height:1.7}
.pa-hub-error{border-left-color:var(--pa-color-danger);overflow-wrap:anywhere}
.pa-hub-grid:empty{display:none}
@media(max-width:620px){.pa-hub{min-height:auto;padding:24px 0 40px}.pa-hub-grid{gap:var(--pa-space-4)}.pa-hub-card{min-height:300px;padding:28px 24px 24px;gap:24px}.pa-hub-logo{width:176px}}
@media(prefers-reduced-motion:reduce){.pa-hub-card,.pa-hub-card button{transition:none}.pa-hub-card button:hover{transform:none}}
/* Team access editor: scoped to the Hub permission group. */
.pa-hub-access{grid-column:1/-1;min-width:0;border:var(--pa-border);border-radius:var(--pa-radius-md);background:var(--pa-color-surface);overflow:hidden;font-family:var(--pa-font)}
.pa-hub-access[data-enabled=true]{border-color:var(--pa-color-line-strong)}
.pa-hub-access-head{display:flex;align-items:center;gap:12px;padding:16px}
.pa-authlog-permission-grid .pa-hub-access-toggle{display:flex;flex:1;align-items:center;gap:12px;min-width:0;padding:0;border:0;border-radius:0;background:transparent;cursor:pointer}
.pa-hub-access-toggle>span{display:grid;gap:5px!important}
.pa-hub-access-toggle strong{font-size:var(--pa-size-body)!important;font-weight:var(--pa-weight-semibold)}
.pa-hub-access-toggle small{color:var(--pa-color-muted);line-height:1.4}
.pa-authlog-permission-grid .pa-access-switch{appearance:none;-webkit-appearance:none;flex:0 0 36px;position:relative;width:36px;height:22px;min-height:22px;padding:0;margin:0;border:1px solid var(--pa-color-line-strong);border-radius:999px;background:var(--pa-color-surface-3);cursor:pointer;box-shadow:none}
.pa-access-switch:after{content:"";position:absolute;left:3px;top:3px;width:14px;height:14px;border-radius:50%;background:var(--pa-color-muted);transition:transform var(--pa-transition),background-color var(--pa-transition)}
.pa-authlog-permission-grid .pa-access-switch:checked{background:var(--pa-color-text);border-color:var(--pa-color-text)}
.pa-access-switch:checked:after{transform:translateX(14px);background:var(--pa-color-bg)}
.pa-hub-access .pa-hub-access-disclosure{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:auto;min-height:36px;padding:0 10px;border:var(--pa-border);border-radius:var(--pa-radius-xs);background:var(--pa-color-bg-soft);color:var(--pa-color-text-soft);font:inherit;font-size:var(--pa-size-label);font-weight:var(--pa-weight-medium);box-shadow:none;cursor:pointer}
.pa-hub-access .pa-hub-access-disclosure:hover{border-color:var(--pa-color-line-strong);background:var(--pa-color-surface-2);color:var(--pa-color-text);transform:none}
.pa-hub-access-disclosure svg{flex:0 0 auto;transition:transform var(--pa-transition)}
.pa-hub-access-disclosure[aria-expanded=true] svg{transform:rotate(180deg)}
.pa-hub-access-body{border-top:var(--pa-border);padding:16px;background:var(--pa-color-bg-soft)}
.pa-hub-app-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;min-width:0;padding:0;margin:0;border:0}
.pa-hub-app-options legend{padding:0;margin:0 0 12px;color:var(--pa-color-text-soft);font-size:var(--pa-size-label);font-weight:var(--pa-weight-medium)}
.pa-authlog-permission-grid .pa-hub-app-option{display:grid;grid-template-columns:40px minmax(0,1fr) 20px;align-items:center;gap:10px;min-width:0;margin:0;padding:12px;border:var(--pa-border);border-radius:var(--pa-radius-sm);background:var(--pa-color-surface);cursor:pointer;transition:border-color var(--pa-transition),background-color var(--pa-transition)}
.pa-hub-app-option>img{width:40px;height:40px;object-fit:contain}
.pa-hub-app-option>strong{line-height:1.35;font-size:var(--pa-size-label);font-weight:var(--pa-weight-medium);overflow-wrap:anywhere}
.pa-authlog-permission-grid .pa-hub-app-option:hover,.pa-authlog-permission-grid .pa-hub-app-option[data-selected=true]{border-color:var(--pa-color-line-strong);background:var(--pa-color-surface-2)}
.pa-hub-app-check{position:relative;display:grid!important;place-items:center;width:20px;height:20px;border:1px solid var(--pa-color-line-strong);border-radius:6px;background:var(--pa-color-bg-soft)}
.pa-hub-app-check>svg{width:18px;height:18px;opacity:0;pointer-events:none;color:var(--pa-color-bg)}
.pa-authlog-permission-grid .pa-hub-app-check>input{position:absolute;inset:0;width:100%;height:100%;min-height:0;margin:0;padding:0;opacity:0;cursor:pointer}
.pa-hub-app-option[data-selected=true] .pa-hub-app-check{background:var(--pa-color-text);border-color:var(--pa-color-text)}
.pa-hub-app-option[data-selected=true] .pa-hub-app-check>svg{opacity:1}
.pa-authlog-permission-grid .pa-access-switch:focus-visible,.pa-hub-access-disclosure:focus-visible,.pa-hub-app-option:has(input:focus-visible){outline:2px solid var(--pa-color-text-soft);outline-offset:3px;box-shadow:none}
@media(max-width:900px){.pa-hub-app-options{grid-template-columns:1fr}.pa-hub-access-head{padding:14px}.pa-hub-access-body{padding:14px}.pa-hub-access-disclosure>span{display:none}}
@media(prefers-reduced-motion:reduce){.pa-access-switch:after,.pa-hub-access-disclosure svg,.pa-hub-app-option{transition:none}}

/* Main section permissions share the Hub's toggle and row treatment. */
.pa-authlog-permission-grid{grid-template-columns:1fr}
.pa-authlog-permission-grid>.pa-main-access-toggle{display:flex;align-items:center;gap:12px;min-width:0;margin:0;padding:16px;border:var(--pa-border);border-radius:var(--pa-radius-md);background:var(--pa-color-surface);font-family:var(--pa-font);cursor:pointer}
.pa-authlog-permission-grid>.pa-main-access-toggle:has(>input:checked){border-color:var(--pa-color-line-strong)}
.pa-authlog-permission-grid>.pa-main-access-toggle>span{display:grid;gap:5px;min-width:0}
.pa-authlog-permission-grid>.pa-main-access-toggle strong{font-size:var(--pa-size-body);font-weight:var(--pa-weight-semibold)}
.pa-authlog-permission-grid>.pa-main-access-toggle small{color:var(--pa-color-muted);line-height:1.4}
@media(max-width:900px){.pa-authlog-permission-grid>.pa-main-access-toggle{padding:14px}}

@media(max-width:1100px){.pa-hub-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.pa-hub-grid{grid-template-columns:1fr}}
