/* Adapters owned by ui-3. Shared design tokens/components stay unchanged. */
.portal-page{max-width:1376px;margin:auto;padding:0 32px;min-height:100vh}.portal-page main{padding:24px 0 48px}.portal-page .portal-login{display:block;max-width:540px;margin:24px auto;padding:32px;min-height:0;background:var(--bg-card)}.portal-login .headline{margin:24px 0}.portal-page label,.portal-content label{display:grid;gap:8px;margin:16px 0;font:700 13px/1.5 var(--font-mono)}.portal-page input,.portal-page select,.portal-content input,.portal-content select{width:100%;min-width:0;min-height:44px;background:var(--bg-card);color:var(--text-strong);border:1.5px solid var(--rule-strong);border-radius:2px;padding:10px}.portal-page .btn{min-height:44px;border-radius:2px}.portal-login .password-wrap{display:flex}.portal-login .reveal{position:static;min-width:64px;min-height:44px;transform:none;color:var(--text-brand);font:700 13px var(--font-head)}.portal-login .hint{margin-top:16px}.portal-content .headline{margin:16px 0 24px}.portal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:24px 0}.settings-grid{grid-template-columns:1fr 1fr}.portal-grid .box{min-width:0}.portal-grid>.box,.portal-content>.box{padding:24px}.portal-grid .summary-card{padding:16px 0}.portal-grid .row{margin-top:16px;flex-wrap:wrap}.portal-content{max-width:none!important;margin:0!important;min-width:0}.portal-content .box{margin-bottom:24px}.portal-content .table{width:100%}.portal-content .table td,.portal-audit td{overflow-wrap:anywhere;white-space:normal}.portal-content .r,.portal-audit .r{text-align:right;font-family:var(--font-figures);font-variant-numeric:tabular-nums}.portal-child-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.portal-child-tabs [aria-selected=true]{background:var(--bg-inverse);color:var(--fill-lime)}.portal-page .parent-statement{border-radius:2px}.portal-page .student-banner{background:var(--bg-sunken);border:0;border-bottom:2.5px solid var(--rule-strong);padding:24px;display:flex;justify-content:space-between;gap:20px}.portal-page .student-banner h2,.portal-page .student-banner p,.portal-page .student-year>strong{color:var(--text-strong)}.portal-page .statement,.portal-page .statement-row{background:var(--bg-card);color:var(--text-strong)}.portal-page .statement-total{background:var(--fill-highlight);color:var(--text-strong)}.portal-page .parent-balances{display:block;padding:16px 0;margin:0;background:transparent}.portal-page .parent-balances .sc-row{padding:8px 0}.portal-page .account-timeline{padding:16px 0}.portal-page .account-timeline h3{margin-bottom:16px}.portal-page .desk-nav{display:flex;gap:4px;flex-wrap:wrap;padding:8px 0}.portal-page .desk-nav [aria-current]{background:var(--bg-inverse);color:var(--p-lime-500)}.portal-bottom{display:none}.portal-filters{display:flex;gap:16px;flex-wrap:wrap}.portal-filters label{flex:1;min-width:140px}.portal-audit{margin-top:24px;padding:24px}.portal-audit pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;max-width:52ch}.portal-content .result{margin:8px 0;gap:16px}.portal-content .pending-decision,.portal-page .pending-decision{margin:24px 0}.portal-content .status,.portal-page .status{white-space:normal}.portal-page .footer{margin-top:24px}.portal-page .receipt{max-width:780px;margin:24px auto}.portal-page .receipt .sc-row{padding:16px 0}.portal-page .receipt .sc-row dt{min-width:0;overflow-wrap:anywhere}.portal-page .receipt .sc-row dd{flex:0 1 auto;white-space:nowrap;overflow-wrap:normal}.portal-content .school-login-slots{display:grid;grid-template-columns:1fr;gap:12px}.portal-content .school-login-slot{padding:16px;background:var(--bg-sunken);border:1px solid var(--rule-soft)}.portal-content .school-login-slot>*{display:block;overflow-wrap:anywhere}.portal-page .table td small{display:block}.portal-page .text-btn{min-height:44px;white-space:normal}
@media(max-width:1100px){.portal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-page button,.portal-page a{min-height:44px}}
/* Parent/office receipt values (Cash, amounts) must not character-wrap at 390 px */
@media(max-width:420px){.portal-page .receipt .sc-row{flex-direction:column;align-items:flex-start;gap:4px}.portal-page .receipt .sc-row dd{text-align:left}}
@media(max-width:560px){.portal-page{padding:0 16px 72px}.portal-page .portal-login{margin:8px auto;padding:24px 16px}.portal-grid,.settings-grid{grid-template-columns:1fr}.portal-page .portal-nav{display:none}.portal-page .student-banner{display:block;padding:16px}.portal-page .student-year{margin-top:16px}.portal-page .statement-row{padding:12px 0;gap:16px}.portal-page .statement-row strong{white-space:nowrap}.portal-bottom{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;bottom:0;left:0;right:0;background:var(--bg-inverse);z-index:15}.portal-bottom .btn{color:var(--p-lime-500);padding:8px 4px;font-size:12px;min-height:56px}.portal-bottom [aria-current]{box-shadow:inset 0 4px var(--fill-lime)}.portal-content .box,.portal-audit{padding:20px 16px}.portal-content .table.stack-m thead,.portal-audit .table.stack-m thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.portal-content .table.stack-m tr,.portal-audit .table.stack-m tr{display:block}.portal-content .table.stack-m td,.portal-audit .table.stack-m td{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:8px;padding:8px 0;text-align:left}.portal-content .table.stack-m td:before,.portal-audit .table.stack-m td:before{content:attr(data-label);font:12px var(--font-mono);color:var(--text-muted)}.portal-content .result{align-items:flex-start;flex-direction:column}.portal-audit pre{max-width:100%}.portal-public{padding-bottom:0}}
@media print{.portal-page{padding:0}.portal-header,.portal-nav,.portal-bottom,.portal-page .toolbar,.portal-page .footer,.portal-page button,.portal-child-tabs,.child-select,.portal-page .pending-decision{display:none!important}.portal-page .parent-content{padding:0}.portal-page .box{box-shadow:none}.portal-page .statement-total{background:var(--fill-highlight)!important;color:var(--text-strong)!important}.portal-page .student-banner{background:var(--bg-sunken)!important;color:var(--text-strong)!important}}

.portal-page [hidden],.portal-content [hidden],.portal-audit [hidden]{display:none!important}

.portal-page.parent-app{background:transparent}.daily-workspace .portal-content .school-login-slot{border-radius:2px}
/* Review P1-2 and P2-9/12/13: readable filters, balances and family navigation. */
.portal-page .summary-card .sc-row{padding:12px 16px}
.portal-page .summary-card{padding:0}
.portal-page .summary-card .sc-row dd{min-width:0;overflow-wrap:anywhere}
.portal-bottom .btn:hover,.portal-bottom .btn[aria-current]{background:var(--fill-brand);color:white;box-shadow:none}
@media(max-width:560px){.portal-bottom{grid-template-columns:repeat(5,minmax(0,1fr));padding-bottom:env(safe-area-inset-bottom)}.portal-bottom .btn{padding:8px 2px}}
@media(max-width:480px){.portal-filters{display:grid;grid-template-columns:minmax(0,1fr)}.portal-filters label{min-width:0}}

.portal-audit .audit-summary{margin:0;overflow-wrap:anywhere}.portal-audit summary{min-height:44px;display:list-item;padding:10px 0;cursor:pointer}
/* The rider table carries a van control per row; half a two-column grid is too narrow for it. */
@media(max-width:1100px){.portal-grid>.transport-riders{grid-column:1/-1}}
@media(max-width:560px){.portal-audit .table.stack-m .audit-event td{display:block}.portal-audit .table.stack-m .audit-event td:before{display:none}}
