/* Portal navigation and owner surfaces extend the incumbent FinBrain tokens. */
[data-theme="dark"]{color-scheme:dark}
[data-theme="light"]{color-scheme:light}
.portal-logo{text-decoration:none}
.portal-page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:18px;flex-wrap:wrap}
.portal-page-head .screen-title{margin-bottom:6px}
.portal-title{font:700 26px/1.25 var(--fb-font-body);margin:32px 0 14px}
.portal-intro{font:400 14px/1.6 var(--fb-font-longform);color:var(--fb-muted);margin:0 0 18px;max-width:760px}
.portal-section-title{font:600 16px/1.4 var(--fb-font-body);margin:0 0 14px}
.portal-subtitle{font:600 13px/1.5 var(--fb-font-longform);margin:20px 0 8px}
.portal-heading-gap{margin-top:24px}
.portal-form{display:flex;flex-direction:column;align-items:stretch;gap:18px;max-width:640px}
.portal-form label{display:flex;flex-direction:column;gap:8px;font:500 13px/1.4 var(--fb-font-longform)}
.portal-form input,.portal-form select{font:400 14px/1.5 var(--fb-font-longform);color:var(--fb-text);background:var(--fb-surface);border:1px solid var(--fb-border);border-radius:var(--fb-radius-sm);min-height:44px;padding:10px 12px;width:100%;min-width:0}
.portal-form button{align-self:flex-start;min-height:44px}
.portal-form input:focus-visible,.portal-form select:focus-visible,a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--fb-accent);outline-offset:3px}
.portal-hint,.portal-footnote{font:400 12px/1.6 var(--fb-font-longform);color:var(--fb-muted)}
.portal-hint{margin:10px 0 18px}
.portal-form .portal-hint{margin:0}
.portal-policy-form fieldset{display:grid;grid-template-columns:1fr 1fr;gap:16px;border:1px solid var(--fb-border);padding:18px;border-radius:var(--fb-radius-sm);min-width:0}
.portal-policy-form legend{font:600 13px/1.5 var(--fb-font-longform);padding:0 6px}
.portal-form .portal-checkbox{display:flex;flex-direction:row;align-items:flex-start;gap:10px;grid-column:1/-1;font-weight:400;line-height:1.6}
.portal-form .portal-checkbox input{width:18px;min-height:18px;height:18px;margin:2px 0 0;flex:0 0 18px;accent-color:var(--fb-accent)}
.portal-notice,.portal-error{padding:14px 16px;border:1px solid var(--fb-border);border-radius:var(--fb-radius-sm);font:400 13px/1.6 var(--fb-font-longform);margin:0 0 18px}
.portal-notice{background:var(--fb-surface-2);color:var(--fb-muted)}
.portal-error{color:var(--fb-expense)}
.portal-table-wrap{overflow-x:auto}
.portal-table{border-collapse:collapse;width:100%;min-width:740px;text-align:left;font:400 13px/1.45 var(--fb-font-body)}
.portal-table th,.portal-table td{padding:16px 12px;border-bottom:1px solid var(--fb-border);vertical-align:top;text-align:left}
.portal-table thead th{font:500 11px/1.5 var(--fb-font-longform);color:var(--fb-muted);white-space:nowrap;padding-top:0}
.portal-table tr:last-child>*{border-bottom:none;padding-bottom:0}
.portal-table tbody th{font-weight:600;min-width:190px}
.portal-table a,.portal-text-link{color:var(--fb-text);text-underline-offset:4px;text-decoration-color:var(--fb-muted)}
.portal-table a:hover,.portal-text-link:hover{color:var(--fb-accent)}
.portal-cell-note{display:block;font:400 11px/1.5 var(--fb-font-longform);color:var(--fb-muted);margin-top:5px}
.portal-account{padding:12px 8px;font:500 12px/1.5 var(--fb-font-longform);overflow-wrap:anywhere}
.portal-account span{display:block;color:var(--fb-muted);font-size:11px;margin-top:3px}
.portal-access-form{max-width:none;display:grid;grid-template-columns:1fr 1fr;align-items:start}
.portal-access-form button{align-self:end;min-height:44px}
.portal-login{max-width:400px;margin:9vh auto 0}
.portal-login .portal-form{margin:24px 0}
.portal-login .portal-form button{width:100%}
.portal-stages{list-style:decimal;padding-left:28px;margin:28px 0}
.portal-stage{padding:18px 0 18px 10px;border-bottom:1px solid var(--fb-border);color:var(--fb-muted)}
.portal-stage h2{font:600 14px/1.5 var(--fb-font-body);margin:0;color:var(--fb-text)}
.portal-stage p{font:400 13px/1.65 var(--fb-font-longform);margin:8px 0 0;max-width:740px}
.portal-stage-heading{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.portal-stage-current::marker{color:var(--fb-accent);font-weight:700}
.portal-checklist{padding-left:20px;font:400 13px/1.7 var(--fb-font-longform);color:var(--fb-muted);margin-bottom:20px}
.portal-credentials{max-width:650px;margin:24px 0}
.portal-credentials>div{padding:14px 0;border-bottom:1px solid var(--fb-border)}
.portal-credentials>div:last-child{border:0}
.portal-credentials dt{color:var(--fb-muted);font:400 12px/1.5 var(--fb-font-longform)}
.portal-credentials dd{margin:8px 0 0;font:500 16px/1.5 var(--fb-font-mono);overflow-wrap:anywhere}
.portal-credentials a{color:var(--fb-text)}
.portal-mobile-header{display:flex;align-items:center;gap:10px;padding:16px;border-bottom:1px solid var(--fb-border)}
.portal-mobile-header .portal-logo{margin-right:auto;font-size:18px}
.portal-mobile-header form,.sidebar-foot form{margin:0}
.portal-skip{position:fixed;left:10px;top:-100px;z-index:1000;background:var(--fb-surface);color:var(--fb-text);padding:12px}
.portal-skip:focus{top:10px}
.btn-primary-fb:disabled{opacity:.5;cursor:not-allowed}
.btn-primary-fb .ic{width:16px;height:16px;margin-right:8px}
@media(min-width:1024px){.portal-mobile-header{display:none}.portal-login{margin-top:12vh}.app-bare .app-main{margin-left:0}.portal-page-head{flex-wrap:nowrap}}
@media(max-width:600px){.portal-access-form,.portal-policy-form fieldset{grid-template-columns:1fr}.portal-page-head>a{width:100%;justify-content:center;min-height:44px}.portal-title{font-size:23px}.portal-login{margin-top:5vh}.portal-credentials dd{font-size:14px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
