/* Shared portal design system v1. Generated from shared/design.js; no external resources. */
:root{--pt-color-primary:#1f5fae;--pt-color-primary-light:#4b82c9;--pt-color-primary-dark:#164a8a;--pt-color-on-primary:#ffffff;--pt-color-primary-soft:rgba(31, 95, 174, 0.08);--pt-color-secondary:#4f6175;--pt-color-background:#f7f9fc;--pt-color-surface:#ffffff;--pt-color-text:#1c2733;--pt-color-text-muted:#526172;--pt-color-divider:#e2e8f0;--pt-color-input-border:#c5d0dc;--pt-color-intro-background:#eaf2fc;--pt-color-table-header:#f3f6fa;--pt-color-table-border:#dbe3ec;--pt-color-focus:#1f5fae;--pt-color-error:#b3261e;--pt-color-error-soft:#fdecea;--pt-color-warning:#7a4b00;--pt-color-warning-soft:#fff7e6;--pt-color-success:#1e6b3a;--pt-color-success-soft:#e8f5ec;--pt-radius:12px;--pt-radius-small:8px;--pt-radius-panel:16px;--pt-font-family:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;--pt-font-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;--pt-content-max-width:1200px;--pt-header-height:68px;color-scheme:light}
.pts-mount{display:contents}
.pts{position:sticky;top:0;z-index:1100;display:block;margin:0;padding:0;background:var(--pt-color-surface);border-bottom:1px solid var(--pt-color-divider);color:var(--pt-color-text);font-family:var(--pt-font-family);font-size:1rem;font-weight:400;line-height:1.5;text-align:left;letter-spacing:normal}
.pts *,.pts *::before,.pts *::after{box-sizing:border-box}
.pts :focus-visible{outline:2px solid var(--pt-color-focus);outline-offset:2px}
.pts .pts-skip{position:absolute;left:-9999px;top:8px;z-index:2000;padding:8px 14px;background:var(--pt-color-surface);color:var(--pt-color-primary);border:2px solid var(--pt-color-primary);border-radius:var(--pt-radius-small);text-decoration:none}
.pts .pts-skip:focus{left:8px}
.pts .pts-bar{max-width:var(--pt-content-max-width);margin:0 auto;padding:0 24px;min-height:var(--pt-header-height);display:flex;align-items:center;gap:16px}
.pts .pts-brand{flex:0 1 auto;min-width:5em;padding:4px 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--pt-color-primary-dark);font-size:1.2rem;font-weight:700;text-decoration:none}
.pts .pts-panel{display:flex;flex:1 1 auto;align-items:center;gap:16px;min-width:0}
.pts .pts-nav{display:block;flex:0 1 auto;min-width:0;margin:0;padding:0}
.pts .pts-list{display:flex;align-items:center;gap:4px;margin:0;padding:0;list-style:none}
.pts .pts-list>li{margin:0;padding:0;list-style:none}
.pts .pts-link{display:inline-flex;align-items:center;min-height:36px;margin:0;padding:6px 12px;border:0;border-radius:var(--pt-radius-small);background:transparent;color:var(--pt-color-text);font:inherit;font-size:.875rem;font-weight:600;line-height:1.5;text-decoration:none;text-transform:none;white-space:nowrap;box-shadow:none}
.pts .pts-link:hover{background:var(--pt-color-primary-soft);color:var(--pt-color-text)}
.pts .pts-link[aria-current]{background:var(--pt-color-primary-soft);color:var(--pt-color-primary)}
.pts .pts-account{display:flex;align-items:center;gap:8px;min-width:0;margin-left:auto}
.pts .pts-user{display:inline-flex;align-items:center;gap:4px;min-width:0;max-width:280px;padding:2px 10px;overflow:hidden;border:1px solid var(--pt-color-divider);border-radius:999px;color:var(--pt-color-text-muted);font-size:.8125rem;white-space:nowrap}
.pts .pts-name{min-width:0;overflow:hidden;text-overflow:ellipsis}
.pts .pts-role{flex-shrink:0}
.pts .pts-role::before{content:"\00b7\0020"}
.pts .pts-logout{display:inline-flex;margin:0;padding:0;border:0}
.pts .pts-btn,.pts .pts-toggle{display:inline-flex;align-items:center;min-height:36px;margin:0;padding:6px 12px;border:0;border-radius:var(--pt-radius-small);background:transparent;color:var(--pt-color-text);font:inherit;font-size:.875rem;font-weight:600;line-height:1.5;text-decoration:none;text-transform:none;white-space:nowrap;box-shadow:none;cursor:pointer;border:1px solid transparent}
.pts .pts-btn:hover,.pts .pts-toggle:hover{background:var(--pt-color-primary-soft);color:var(--pt-color-text)}
.pts .pts-toggle{display:none;border-color:var(--pt-color-divider)}
@media (max-width:1199.98px){.pts.pts--wide{position:static}.pts.pts--wide .pts-bar{flex-wrap:wrap;padding:8px 16px;gap:8px;min-height:60px}.pts.pts--wide .pts-brand{flex:1 1 0;font-size:1.05rem}.pts.pts--wide .pts-panel{flex:1 1 100%;flex-wrap:wrap;gap:8px}.pts.pts--wide .pts-list{flex-wrap:wrap}.pts.pts--wide .pts-account{margin-left:0;flex-wrap:wrap;max-width:100%}.pts.pts--wide .pts-user{max-width:100%}.pts.pts--wide.pts--js{position:sticky}.pts.pts--wide.pts--js .pts-toggle{display:inline-flex}.pts.pts--wide.pts--js .pts-panel{display:none}.pts.pts--wide.pts--js.pts--open .pts-panel{display:flex;flex-direction:column;align-items:stretch;padding:4px 0 8px;max-height:calc(100vh - 60px);overflow-y:auto}.pts.pts--wide.pts--js.pts--open .pts-list{flex-direction:column;align-items:stretch}.pts.pts--wide.pts--js.pts--open .pts-link{display:flex;white-space:normal}.pts.pts--wide.pts--js.pts--open .pts-account{border-top:1px solid var(--pt-color-divider);padding-top:8px}.pts.pts--wide.pts--js.pts--open .pts-user{white-space:normal;border:0;padding:0;flex-wrap:wrap}.pts.pts--wide.pts--js.pts--open .pts-name{white-space:normal;overflow-wrap:anywhere}}
@media (max-width:899.98px){.pts{position:static}.pts .pts-bar{flex-wrap:wrap;padding:8px 16px;gap:8px;min-height:60px}.pts .pts-brand{flex:1 1 0;font-size:1.05rem}.pts .pts-panel{flex:1 1 100%;flex-wrap:wrap;gap:8px}.pts .pts-list{flex-wrap:wrap}.pts .pts-account{margin-left:0;flex-wrap:wrap;max-width:100%}.pts .pts-user{max-width:100%}.pts.pts--js{position:sticky}.pts.pts--js .pts-toggle{display:inline-flex}.pts.pts--js .pts-panel{display:none}.pts.pts--js.pts--open .pts-panel{display:flex;flex-direction:column;align-items:stretch;padding:4px 0 8px;max-height:calc(100vh - 60px);overflow-y:auto}.pts.pts--js.pts--open .pts-list{flex-direction:column;align-items:stretch}.pts.pts--js.pts--open .pts-link{display:flex;white-space:normal}.pts.pts--js.pts--open .pts-account{border-top:1px solid var(--pt-color-divider);padding-top:8px}.pts.pts--js.pts--open .pts-user{white-space:normal;border:0;padding:0;flex-wrap:wrap}.pts.pts--js.pts--open .pts-name{white-space:normal;overflow-wrap:anywhere}}
.pt-body{margin:0;background:var(--pt-color-background);color:var(--pt-color-text);font-family:var(--pt-font-family);font-size:1rem;line-height:1.65;-webkit-text-size-adjust:100%}
.pt-body *,.pt-body *::before,.pt-body *::after{box-sizing:border-box}
.pt-body :focus-visible{outline:2px solid var(--pt-color-focus);outline-offset:2px}
.pt-subnav-bar{background:var(--pt-color-surface);border-bottom:1px solid var(--pt-color-divider);padding-top:10px}
.pt-subnav{display:flex;gap:4px;flex-wrap:wrap;align-items:center;max-width:var(--pt-content-max-width);margin:0 auto;padding:0 24px 10px}
.pt-subnav a{display:inline-flex;align-items:center;min-height:36px;padding:6px 12px;border-radius:var(--pt-radius-small);color:var(--pt-color-text);text-decoration:none;font-weight:600;font-size:.875rem;background:transparent}
.pt-subnav a:hover{background:var(--pt-color-primary-soft)}
.pt-subnav a[aria-current=page]{color:var(--pt-color-primary);background:var(--pt-color-primary-soft)}
.pt-main{max-width:var(--pt-content-max-width);margin:0 auto;padding:32px 24px}
.pt-panel{background:var(--pt-color-surface);border:1px solid var(--pt-color-divider);border-radius:var(--pt-radius-panel);padding:24px}
.pt-title{font-size:2rem;font-weight:650;line-height:1.25;margin:0 0 12px}
.pt-subtitle{font-size:1.5rem;font-weight:650;line-height:1.3;margin:0 0 8px}
.pt-muted{color:var(--pt-color-text-muted)}
.pt-alert{padding:12px 16px;border-radius:var(--pt-radius-small);border:1px solid var(--pt-color-divider);background:var(--pt-color-surface)}
.pt-alert--error{background:var(--pt-color-error-soft);border-color:var(--pt-color-error);color:var(--pt-color-error)}
.pt-alert--warning{background:var(--pt-color-warning-soft);color:var(--pt-color-warning)}
.pt-button,:where(.pt-body) button{font:inherit;font-weight:600;font-size:.9375rem;line-height:1.5;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:36px;padding:6px 16px;cursor:pointer;border-radius:var(--pt-radius-small);border:1px solid var(--pt-color-divider);background:var(--pt-color-surface);color:var(--pt-color-text);text-decoration:none}
.pt-button:hover,:where(.pt-body) button:hover{background:var(--pt-color-primary-soft)}
.pt-button--primary{background:var(--pt-color-primary);border-color:var(--pt-color-primary);color:var(--pt-color-on-primary)}
.pt-button--primary:hover{background:var(--pt-color-primary-dark)}
.pt-button--text{border-color:transparent;background:transparent}
.pt-table,:where(.pt-body) table{border-collapse:collapse;width:100%}
.pt-table th,.pt-table td,:where(.pt-body) th,:where(.pt-body) td{border-bottom:1px solid var(--pt-color-table-border);padding:10px 14px;text-align:left;vertical-align:top}
.pt-table th,:where(.pt-body) th{background:var(--pt-color-table-header);font-weight:600}
:where(.pt-body) input,:where(.pt-body) select,:where(.pt-body) textarea{font:inherit;color:var(--pt-color-text);background:var(--pt-color-surface);border:1px solid var(--pt-color-input-border);border-radius:var(--pt-radius-small);padding:8px 10px}
:where(.pt-body) label{font-weight:500}
:where(.pt-body) a{color:var(--pt-color-primary)}
:where(.pt-body) code,:where(.pt-body) pre{font-family:var(--pt-font-mono)}
@media (max-width:899.98px){.pt-subnav{padding:0 16px 8px}.pt-main{padding:24px 16px}}
