:root{font-family:Inter,Avenir Next,Segoe UI,ui-sans-serif,system-ui,-apple-system,sans-serif;color:#173744;background:#f3f8f8;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 90% -10%,rgba(24,129,119,.14),transparent 28rem),linear-gradient(180deg,#f8fbfb 0,#f0f6f6)}button,input{font:inherit}button{cursor:pointer}.portal-shell{min-height:100vh;display:grid;grid-template-rows:auto 1fr auto}.portal-brand{height:72px;display:flex;align-items:center;gap:11px;max-width:1120px;width:calc(100% - 40px);margin:0 auto;border-bottom:1px solid rgba(23,55,68,.1)}.portal-logo{width:auto;height:43px;object-fit:contain}.portal-brand>div:nth-child(2){display:grid}.portal-brand strong{font-family:Inter,Avenir Next,sans-serif;font-size:.94rem;letter-spacing:-.02em}.portal-brand span{color:#71848d;font-size:.66rem}.portal-secure{margin-left:auto;padding:6px 10px;border:1px solid #c9dedc;border-radius:999px;background:#ffffffad;color:#31615e;font-size:.68rem;font-weight:600}.portal-content{width:min(100% - 36px,960px);margin:0 auto;padding:54px 0 64px}.portal-card{background:#fffffff5;border:1px solid #d7e4e5;border-radius:17px;box-shadow:0 22px 58px #12394a1a}.portal-auth-card{width:min(100%,430px);margin:3vh auto 0;padding:34px}.portal-card-label{color:#118078;font-size:.66rem;font-weight:700;letter-spacing:.105em;text-transform:uppercase}h1,h2{font-family:Inter,Avenir Next,sans-serif;color:#12394a;letter-spacing:-.035em}.portal-auth-card h1{margin:7px 0 8px;font-size:1.75rem}.portal-auth-card>p{margin:0 0 24px;color:#657983;font-size:.86rem;line-height:1.55}.portal-auth-card form{display:grid;gap:15px}label{display:grid;gap:6px;color:#405d68;font-size:.74rem;font-weight:600}input{width:100%;border:1px solid #bdd0d4;background:#fbfdfd;color:#173744;border-radius:9px;min-height:43px;padding:9px 11px;outline:none;font-size:.86rem;transition:border-color .15s,box-shadow .15s,background .15s}input:focus{background:#fff;border-color:#118078;box-shadow:0 0 0 3px #11807821}.portal-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;text-align:center;letter-spacing:.28em;font-size:1.25rem;font-weight:700}.portal-button{border:0;border-radius:9px;min-height:43px;padding:10px 15px;background:linear-gradient(135deg,#12394a,#0d766f);color:#fff;font-size:.8rem;font-weight:700;box-shadow:0 8px 18px #11706a2e}.portal-button:hover:not(:disabled){filter:brightness(1.06);transform:translateY(-1px)}.portal-button:disabled{cursor:not-allowed;opacity:.58}.portal-button--secondary{background:#fff;color:#173744;border:1px solid #bcd0d4;box-shadow:none}.portal-link-button,.portal-back{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:#0d766f;padding:8px 0;font-size:.75rem;font-weight:700}.portal-auth-card>.portal-link-button{width:100%;margin-top:10px}.portal-auth-card>small{display:block;color:#82939a;font-size:.66rem;line-height:1.45;margin-top:16px}.portal-alert{padding:10px 12px;border-radius:8px;margin:0 0 15px;font-size:.75rem;line-height:1.4}.portal-alert--error{border:1px solid #efc8c4;background:#fff2f1;color:#963d35}.portal-alert--success{border:1px solid #bee3d8;background:#ecfaf5;color:#126353}.portal-floating-alert{margin-top:14px}.portal-loading{min-height:50vh;display:grid;place-items:center;color:#56727d;font-size:.82rem}.portal-dashboard{display:grid;gap:18px}.portal-welcome{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.portal-welcome h1{margin:5px 0 1px;font-size:1.85rem}.portal-welcome p{margin:0;color:#71848d;font-size:.78rem}.portal-overview{background:linear-gradient(130deg,#12394a,#0f6d6b);color:#fff;padding:23px 25px;border-radius:16px;box-shadow:0 18px 38px #12394a2e;display:grid}.portal-overview>span{opacity:.72;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em}.portal-overview>strong{font-family:Inter,Avenir Next,sans-serif;font-size:2rem;letter-spacing:-.04em;margin-top:3px}.portal-overview>small{opacity:.72;font-size:.68rem;margin-top:4px}.portal-list-heading{display:flex;align-items:baseline;justify-content:space-between;margin-top:8px}.portal-list-heading h2{margin:0;font-size:1.05rem}.portal-list-heading>span{color:#78909a;font-size:.7rem}.portal-statement-list{display:grid;gap:9px}.portal-statement-list>button{width:100%;border:1px solid #d7e4e5;border-radius:12px;background:#fffffff5;padding:15px 17px;display:flex;align-items:center;justify-content:space-between;text-align:left;color:#173744;box-shadow:0 7px 22px #12394a0d;transition:transform .15s,border-color .15s,box-shadow .15s}.portal-statement-list>button:hover{transform:translateY(-1px);border-color:#9dc9c5;box-shadow:0 11px 25px #12394a17}.portal-statement-list button>div{display:grid;gap:2px}.portal-statement-list button>div:last-child{grid-template-columns:auto auto auto;align-items:center;gap:14px}.portal-statement-list span,.portal-statement-list small{color:#71848d;font-size:.68rem}.portal-statement-list strong{font-size:.85rem}.portal-statement-list button>div:last-child>strong{font-family:Inter,Avenir Next,sans-serif;font-size:1rem;color:#12394a}.portal-arrow{font-size:1rem!important;color:#118078!important}.portal-status{justify-self:start;display:inline-flex;padding:4px 7px;border-radius:999px;background:#eef3f5;color:#526b76;font-size:.6rem!important;font-weight:700;text-transform:capitalize}.portal-status--sent,.portal-status--awaiting-touchstone{background:#edf5fa;color:#225f83}.portal-status--paid,.portal-status--reconciled{background:#e6f7f1;color:#0a6a55}.portal-empty{padding:35px;text-align:center;border:1px dashed #bfd1d5;border-radius:12px;background:#ffffffa6}.portal-empty p{margin:5px 0 0;color:#71848d;font-size:.75rem}.portal-statement-detail{padding:25px}.portal-back{margin-bottom:10px}.portal-statement-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:25px;padding-bottom:20px;border-bottom:1px solid #dce7e8}.portal-statement-heading h2{margin:5px 0 8px;font-size:1.35rem}.portal-balance{text-align:right;display:grid}.portal-balance span{color:#71848d;font-size:.65rem;text-transform:uppercase;letter-spacing:.065em}.portal-balance strong{font-family:Inter,Avenir Next,sans-serif;color:#0d766f;font-size:1.7rem;letter-spacing:-.04em}.portal-balance small{color:#71848d;font-size:.65rem}.portal-detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:17px 0}.portal-detail-grid div{padding:10px 12px;border-radius:8px;background:#f4f8f8;display:grid}.portal-detail-grid span{color:#71848d;font-size:.62rem;text-transform:uppercase;letter-spacing:.06em}.portal-detail-grid strong{font-size:.78rem;margin-top:2px;text-transform:capitalize}.portal-lines{border:1px solid #d7e4e5;border-radius:10px;overflow:hidden}.portal-lines-header,.portal-line{display:grid;grid-template-columns:1.1fr 1.15fr 2.5fr 1fr;gap:10px;align-items:center;padding:10px 12px}.portal-lines-header{background:#12394a;color:#fff;font-size:.65rem;font-weight:700}.portal-line{border-bottom:1px solid #e2ebec;font-size:.72rem}.portal-line:last-child{border-bottom:0}.portal-line:nth-child(odd){background:#f7fafa}.portal-line strong{text-align:right}.portal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}.portal-payment-note{margin:18px 0 -7px;padding:10px 12px;border:1px solid #cfe0df;border-radius:8px;background:#f1f8f7;color:#45636d;font-size:.72rem;line-height:1.45}.portal-payment-note strong{color:#0d766f}.portal-footer{display:grid;grid-template-columns:1fr 1.5fr 1.4fr;gap:28px;width:min(100% - 40px,1120px);margin:0 auto;padding:20px 0 25px;border-top:1px solid rgba(23,55,68,.1);color:#71858e;font-size:.64rem;line-height:1.55}.portal-footer>div{display:grid;align-content:start}.portal-footer>div:last-child{text-align:right}.portal-footer strong{color:#173744;font-size:.7rem}@media (max-width: 650px){.portal-brand{width:calc(100% - 28px)}.portal-secure{display:none}.portal-content{width:min(100% - 24px,960px);padding:30px 0 45px}.portal-auth-card{padding:25px 21px}.portal-welcome h1{font-size:1.45rem}.portal-statement-list button>div:last-child{grid-template-columns:auto auto}.portal-arrow{display:none}.portal-statement-heading{flex-direction:column}.portal-balance{text-align:left}.portal-detail-grid{grid-template-columns:1fr}.portal-lines{overflow-x:auto}.portal-lines-header,.portal-line{min-width:660px}.portal-actions{flex-direction:column}.portal-footer{width:calc(100% - 28px);grid-template-columns:1fr;gap:10px}.portal-footer>div:last-child{text-align:left}}
