.portal-page{background:#f7f5f9;color:#52617a}
.portal-page [hidden]{display:none!important}
.portal-header{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:12px max(24px,calc((100% - 1200px)/2));background:white;border-bottom:1px solid #e6dfed}
.portal-header img{width:170px;height:91px;object-fit:contain}
.portal-header nav{display:flex;align-items:center;gap:24px;font-size:14px;color:var(--purple);font-weight:600}
.portal-main{max-width:1200px;margin:auto;padding:50px 24px 80px;min-height:70vh}
.portal-page h1{font-size:38px;line-height:1.2;margin-bottom:18px}
.portal-page h2{font-size:27px}.portal-page h3{font-size:21px}
.portal-page button{border:0}.portal-page .button{letter-spacing:.4px;text-transform:none;font-size:14px;border-radius:4px;min-height:48px}
.portal-page input,.portal-page select,.portal-page textarea{display:block;width:100%;min-width:0;margin-top:7px;border:1px solid #bfb4cb;border-radius:5px;padding:12px 14px;min-height:48px;background:white;color:var(--purple);font:inherit;font-size:16px;line-height:1.5}
.portal-page input:focus,.portal-page select:focus,.portal-page textarea:focus{outline:2px solid #724b9a;outline-offset:2px}
.portal-page label{display:block;color:var(--purple);font-size:14px;font-weight:600;margin-block:18px}
.portal-page textarea{resize:vertical}.portal-page form .button{margin-top:12px}
.portal-page .checkbox{display:flex;align-items:center;gap:12px}.portal-page .checkbox input{width:20px;height:20px;min-height:0;margin:0;flex:none}
.portal-page button:disabled{opacity:.55;cursor:wait;transform:none}
.secondary{background:#eee8f4;color:var(--purple);padding:11px 18px;border-radius:4px;font-weight:700;font-size:14px;line-height:1.6}
.secondary:hover{background:#e1d6ec}.text-button{color:#593a78;background:transparent;text-decoration:underline;text-underline-offset:4px;padding:8px 0;font-size:14px}
.loading{text-align:center;padding:80px 20px}
.auth-card{max-width:560px;margin:20px auto;background:white;border-top:6px solid var(--orange);border-radius:10px;padding:40px;box-shadow:0 8px 35px #23183409}
.auth-card>p{font-size:15px}.auth-card h1{font-size:33px}.auth-card form{margin-top:25px}.auth-card form>.button{width:100%}
.auth-help{border-top:1px solid #e6dfed;margin-top:30px;padding-top:25px}.auth-help h2{font-size:17px;margin-bottom:10px}.auth-help p{font-size:14px}.auth-help a{text-decoration:underline}
.notice,.form-message{padding:14px 18px;background:#fceeed;border-left:4px solid #b3402e;color:#7b291d;line-height:1.6;border-radius:3px;font-size:14px;margin-block:18px;overflow-wrap:anywhere}
.notice.success,.form-message.success{background:#edf6ec;color:#2d5a32;border-color:#4b8d48}
.dashboard-heading{display:flex;align-items:center;justify-content:space-between;gap:25px;margin-bottom:32px}.dashboard-heading h1{margin-bottom:10px}
.badge{display:inline-block;border-radius:30px;padding:7px 14px;background:#eee8f4;font-size:12px;color:#533c6b;font-weight:700;white-space:nowrap}
.badge.good{background:#e8f3e7;color:#315e32}.badge.bad{background:#fbe8e6;color:#823227}
.tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:30px}.tabs button{padding:12px 22px;background:white;color:#604b74;border-radius:5px;font-weight:700;font-size:14px;border:1px solid #dbd1e5}
.tabs button[aria-pressed=true]{background:var(--purple);color:white;border-color:var(--purple)}
.section-heading{display:flex;align-items:center;justify-content:space-between;gap:30px;margin:30px 0}.section-heading h2{margin-bottom:12px}.section-heading p{max-width:760px}.section-heading>.button{flex:none}
.panel{background:white;padding:28px;border:1px solid #e6dfed;border-radius:8px}.panel h2,.panel h3{margin-bottom:16px}.panel .button{margin-top:20px}
.library-filters{display:flex;align-items:end;justify-content:space-between;gap:30px}.library-filters .year-tabs{margin:0 0 18px}.search-label{max-width:360px;width:100%}
.document-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-top:22px}
.document-card{display:flex;flex-direction:column;align-items:flex-start;background:white;border:1px solid #e3dce9;border-radius:8px;padding:25px;border-top:5px solid #ff8700}
.document-card .pdf-mark{color:#6b4c87;font-size:13px;letter-spacing:1px;font-weight:800;margin-bottom:18px}.document-card h3{font-size:21px;margin:10px 0 14px;overflow-wrap:anywhere}.document-card p{font-size:14px;white-space:pre-wrap;overflow-wrap:anywhere}
.document-card .file-meta{font-size:12px;color:#6c6676;margin:18px 0}.card-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:auto;padding-top:16px}.card-actions .button,.card-actions .secondary{font-size:12px;min-height:42px;padding:10px 13px}
.print-tip{margin-top:35px;padding:25px 28px;background:#ebe5f2;border-left:4px solid #7f649d;border-radius:4px}.print-tip h3{font-size:18px;margin-bottom:12px}.print-tip p{font-size:14px}
.table-wrap{overflow:auto;border:1px solid #e3dce9;border-radius:6px;background:white;margin-top:20px}
table{width:100%;border-collapse:collapse;text-align:left;font-size:14px}th{background:#eee8f4;color:var(--purple);font-size:12px;text-transform:uppercase;letter-spacing:.3px}th,td{padding:18px 20px;border-bottom:1px solid #eee8f4;vertical-align:top}td strong{color:var(--purple);display:block}td .email{display:block;font-size:12px;margin-top:3px;overflow-wrap:anywhere}.table-actions{display:flex;gap:12px;flex-wrap:wrap}.table-actions button{white-space:nowrap}
.upload-form{max-width:850px;margin-bottom:32px}.form-columns{display:grid;grid-template-columns:2fr 1fr;gap:25px}.muted{font-size:13px;line-height:1.7;color:#656274}
.portal-dialog{border:0;border-radius:10px;padding:30px;width:min(570px,calc(100% - 30px));max-height:calc(100dvh - 40px);color:#52617a}.portal-dialog::backdrop{background:#231834bb}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.dialog-heading h2{font-size:25px}.close-dialog{background:transparent;color:var(--purple);font-size:30px;min-width:44px;height:44px}
.portal-footer{text-align:center;padding:30px 20px;background:white;border-top:1px solid #e6dfed;font-size:13px}.portal-footer a{text-decoration:underline}
@media(max-width:900px){.document-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-heading{align-items:flex-start}.portal-header nav{gap:15px}}
@media(max-width:640px){.portal-header{padding:10px 18px;align-items:flex-start}.portal-header img{width:125px;height:auto}.portal-header nav{gap:8px;flex-wrap:wrap;justify-content:flex-end;max-width:190px;font-size:12px}.portal-header nav button{font-size:12px}.portal-main{padding:28px 18px 50px}.auth-card{padding:27px 22px;margin:10px auto}.auth-card h1,.portal-page h1{font-size:29px}.portal-page h2{font-size:24px}.dashboard-heading{flex-direction:column;gap:12px}.document-grid{grid-template-columns:1fr}.section-heading{flex-direction:column;align-items:flex-start;gap:18px}.library-filters{flex-direction:column;align-items:stretch;gap:0}.search-label{max-width:none}.tabs button{padding:11px 15px}.panel{padding:21px}.form-columns{grid-template-columns:1fr;gap:0}.portal-dialog{padding:22px}.dialog-heading h2{font-size:22px}.portal-main td,.portal-main th{padding:14px;min-width:135px}.print-tip{padding:22px}.badge{white-space:normal}}
