:root{--navy:#28384d;--navy-2:#354b66;--navy-3:#5d6f85;--gold:#60c2cc;--gold-d:#2f7e86;--paper:#fff;--body-bg:#fafaf7;--panel:#f7f7f3;--line:#e1e0db;--line-2:#dad8d2;--good:#0d7e3b;--good-bg:#e3f2e8;--warn:#a85f2a;--warn-bg:#fff5e1;--warn-line:#e5c98a;--bad:#c0392f;--bad-bg:#fbeae8}html{color-scheme:light}*{box-sizing:border-box}body.portal{margin:0;background:var(--body-bg);color:var(--navy);font-family:var(--font-montserrat),-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}.portal h1,.portal h2,.portal h3{font-family:var(--font-playfair),Georgia,serif;font-weight:600;margin:0;color:var(--navy)}.portal a{color:var(--navy)}.p-mast{background:var(--navy);color:#fff}.p-mast-in{padding:14px 24px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}.portal .p-brand{display:flex;align-items:baseline;gap:10px;text-decoration:none;color:#fff}.p-brand .wm{font-weight:700;letter-spacing:.08em;font-size:13px}.p-brand .wm b{color:var(--gold);font-weight:700}.p-brand .tag{font-size:11px;color:#c6ceda;letter-spacing:.04em}.p-nav{display:flex;gap:4px;margin-left:auto;align-items:center;flex-wrap:wrap}.p-nav a,.p-nav button{color:#dfe5ee;text-decoration:none;font:inherit;font-size:13px;font-weight:500;padding:6px 12px;border-radius:3px;background:none;border:0;cursor:pointer}.p-nav a:hover,.p-nav button:hover{color:#fff;background:hsla(0,0%,100%,.08)}.p-nav a.active{color:var(--navy);background:var(--gold)}.p-client-switch{display:inline-flex;align-items:center;gap:6px;margin-right:8px}.p-client-switch-label{font-size:11px;color:#c6ceda;letter-spacing:.06em;text-transform:uppercase}.p-client-switch-select{font:inherit;font-size:13px;color:#fff;background:hsla(0,0%,100%,.06);border:1px solid hsla(0,0%,100%,.14);border-radius:3px;padding:4px 8px;max-width:200px}.p-client-switch-select option{color:var(--navy);background:var(--paper)}.p-main{max-width:960px;margin:0 auto;padding:28px 16px 64px}.p-eyebrow{font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-d)}.p-title{font-size:28px;margin:4px 0 6px}.p-muted{color:var(--navy-3);font-size:13px}.p-card{background:var(--paper);border:1px solid var(--line);padding:20px;margin-top:20px}.p-card,.p-flash{border-radius:4px}.p-flash{padding:14px 16px;font-size:13px;line-height:1.55;margin:20px 0;border:1px solid}.p-flash.ok{background:var(--good-bg);border-color:#b9dcc5;color:var(--good)}.p-flash.err{background:var(--bad-bg);border-color:#efc2bd;color:var(--bad)}.p-flash.warn{background:var(--warn-bg);border-color:var(--warn-line);color:var(--warn)}.p-years{display:flex;gap:2px;border-bottom:2px solid var(--navy);margin-top:24px;overflow-x:auto}.p-years a{padding:8px 16px;text-decoration:none;font-weight:600;font-size:13px;color:var(--navy-3);border-radius:3px 3px 0 0;white-space:nowrap}.p-years a:hover{color:var(--navy);background:var(--panel)}.p-years a.active{background:var(--navy);color:#fff}.p-reports{list-style:none;margin:0;padding:0;background:var(--paper);border:1px solid var(--line);border-top:0}.p-report{display:grid;grid-template-columns:1fr auto auto;grid-gap:16px;gap:16px;align-items:center;padding:14px 18px;border-bottom:1px solid var(--line)}.p-report:last-child{border-bottom:0}.p-report .month{font-family:var(--font-playfair),Georgia,serif;font-size:17px;font-weight:600}.p-report .prop{font-size:12px;color:var(--navy-3)}.p-report .badge{display:inline-block;margin-left:8px;padding:1px 7px;border-radius:10px;vertical-align:2px;background:var(--gold);color:var(--navy);font-family:var(--font-montserrat),sans-serif;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.p-report .score{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:600;font-size:15px;text-align:right}.p-report .score span{color:var(--navy-3);font-weight:400;font-size:12px}.p-report .open{font-size:12px;font-weight:600;text-decoration:none;padding:6px 12px;border:1px solid var(--navy);border-radius:3px;white-space:nowrap}.p-report .open:hover{background:var(--navy);color:#fff}.p-empty{padding:28px 18px;text-align:center;color:var(--navy-3)}.p-label{display:block;font-size:12px;font-weight:600;margin-bottom:6px}.p-input,.p-select{width:100%;padding:9px 12px;font:inherit;font-size:14px;color:var(--navy);border:1px solid var(--line-2);border-radius:3px;background:var(--paper)}.p-input:focus,.p-rank:focus,.p-select:focus{outline:2px solid var(--gold);outline-offset:1px;border-color:var(--gold-d)}.p-btn{display:inline-block;padding:9px 18px;font:inherit;font-size:13px;font-weight:600;background:var(--navy);color:#fff;border:0;border-radius:3px;cursor:pointer;text-decoration:none}.p-btn:hover{background:var(--navy-2)}.p-btn.ghost{background:none;color:var(--navy);border:1px solid var(--line-2)}.p-btn.ghost:hover{background:var(--panel)}.p-row{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}.p-row>.grow{flex:1 1 260px}.p-table-wrap{overflow-x:auto}.p-table{width:100%;border-collapse:collapse;font-size:13px}.p-table th{text-align:left;padding:8px 12px;font-size:12px;font-weight:600;border-bottom:2px solid var(--navy);background:var(--panel)}.p-table td{padding:8px 12px;border-bottom:1px solid var(--line);vertical-align:middle}.p-table tr.selected td{background:#fffbef}.p-rank{width:56px;padding:6px 8px;font:inherit;font-size:13px;text-align:center;border:1px solid var(--line-2);border-radius:3px;background:var(--paper);color:var(--navy)}.p-status{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.p-status.pending{color:var(--warn)}.p-status.approved{color:var(--good)}.p-status.rejected{color:var(--navy-3)}.p-sticky-save{position:-webkit-sticky;position:sticky;bottom:0;background:var(--paper);padding:12px 0 0;border-top:1px solid var(--line);margin-top:12px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}.p-tw{margin-top:20px}.p-tw-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:14px}.p-tw-link{font-size:12px;font-weight:600;text-decoration:none;color:var(--navy);border-bottom:1px solid var(--line-2)}.p-tw-link:hover{color:var(--gold-d);border-color:var(--gold-d)}.p-tw-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:16px;gap:16px;margin:4px 0 18px}.p-tw-kpi{background:var(--panel);border:1px solid var(--line);border-radius:4px;padding:14px 16px}.p-tw-kpi-value{font-family:var(--font-playfair),Georgia,serif;font-size:28px;font-weight:600;color:var(--navy);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.p-tw-kpi-label{font-size:12px;color:var(--navy-3);margin-top:2px;line-height:1.35}.p-tw-kpi-note{font-size:11px;color:var(--navy-3);margin-top:6px;letter-spacing:.02em}.p-tw-rival{margin:4px 0 14px;font-size:14px;color:var(--navy)}.p-tw-quote{border-left:3px solid var(--gold);margin:4px 0 14px;padding:6px 0 6px 14px;background:var(--body-bg)}.p-tw-quote-head{display:flex;gap:10px;font-size:11px;color:var(--navy-3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}.p-tw-quote .mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;text-transform:none;letter-spacing:0;color:var(--navy);font-weight:600}.p-tw-quote p{margin:0;font-size:14px;line-height:1.55;color:var(--navy)}.p-tw-quote mark{background:var(--warn-bg);color:var(--navy);padding:0 2px;border-radius:2px}.p-tw-quote-link{display:inline-block;margin-top:8px;font-size:12px;font-weight:600;text-decoration:none;color:var(--navy);border-bottom:1px solid var(--line-2)}.p-tw-quote-link:hover{color:var(--gold-d);border-color:var(--gold-d)}.p-tw-trend{border-top:1px solid var(--line);padding-top:12px;margin-top:6px}.p-tw-trend-head{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--navy-3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px}.p-tw-trend svg{width:100%;height:auto;display:block}.p-tw-axis{stroke:var(--line-2);stroke-width:1}.p-tw-tick{font-size:10px;fill:var(--navy-3);font-family:var(--font-montserrat),sans-serif}.p-tw-line-m{fill:none;stroke:var(--navy);stroke-width:2}.p-tw-line-c{fill:none;stroke:var(--gold-d);stroke-width:1.5;stroke-dasharray:4 3}.p-tw-marker{stroke:var(--warn);stroke-width:2}.p-tw-key{display:inline-block;width:14px;height:2px;margin:0 4px 3px 10px;vertical-align:middle}.p-tw-key-m{background:var(--navy)}.p-tw-key-c{background:var(--gold-d)}.p-tw-key-i{background:var(--warn)}.p-improved{margin-top:20px}.p-improved-title{font-size:18px;margin-bottom:4px}.p-improved-blurb{margin:0 0 14px}.p-improved-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}.p-improved-item{padding:12px 0;border-bottom:1px solid var(--line)}.p-improved-week{font-size:11px;color:var(--navy-3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px}.p-improved-headline{font-family:var(--font-playfair),Georgia,serif;font-size:16px;color:var(--navy)}.p-improved-note{margin-top:4px;font-size:13px;color:var(--navy-2)}.p-improved-resolved{margin-top:4px;font-size:12px;color:var(--good)}.p-tw-empty{background:var(--paper);border:1px solid var(--line);padding:20px;border-radius:4px;margin-top:20px}.p-tw-empty-title{font-size:18px;margin-bottom:6px}@media (max-width:640px){.p-tw-kpis{grid-template-columns:1fr}}.p-foot{max-width:960px;margin:0 auto;padding:24px 16px 32px;text-align:center;font-size:12px;color:var(--navy-3);letter-spacing:.04em}.p-foot a{color:var(--navy);font-weight:600;text-decoration:none}.p-foot a:hover{color:var(--gold-d)}.p-login{max-width:420px;margin:0 auto;padding:clamp(48px,12vh,112px) 16px 64px;text-align:center}.p-login-head{text-align:center;margin-bottom:24px}.p-login-mark{width:44px;height:auto;display:block;margin:0 auto 14px;opacity:.92}.p-login-head .p-eyebrow{color:var(--gold-d)}.p-login-head .p-title{font-size:28px;margin:6px 0 10px}.p-login-head .p-muted{max-width:320px;margin:0 auto}.p-login-card{position:relative;padding:32px 28px 28px;text-align:left;box-shadow:0 1px 2px rgba(40,56,77,.04),0 8px 24px rgba(40,56,77,.06);overflow:hidden}.p-login-card:before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:var(--gold)}.p-login-card .p-input{margin-bottom:18px}.p-btn.block{display:block;width:100%;padding:11px 18px;text-align:center}.p-hint{margin:14px 0 0;text-align:center;font-size:12px;color:var(--navy-3)}@media (max-width:560px){.p-report{grid-template-columns:1fr auto}.p-report .open{grid-column:1/-1;text-align:center}.p-title{font-size:24px}}