:root{--cp-bg:#0d1315;--cp-panel:#141c1d;--cp-line:#344143;--cp-text:#eef2ef;--cp-muted:#98a6a5;--cp-accent:#91ead0;--cp-warn:#e6ca84;--cp-danger:#f0a393}*{box-sizing:border-box}html{scrollbar-color:#526362 #0d1315;scrollbar-width:thin}html::-webkit-scrollbar{width:10px;height:10px}html::-webkit-scrollbar-track{background:#0d1315}html::-webkit-scrollbar-thumb{background:#526362}.client-portal-page{margin:0;background:var(--cp-bg);color:var(--cp-text);min-height:100vh;font-family:Onest,Inter,system-ui,sans-serif}.client-portal-page a{color:inherit}.skip{position:absolute;left:-9999px}.skip:focus{left:16px;top:16px;z-index:50;background:#fff;color:#111;padding:10px}.client-sidebar{position:fixed;inset:0 auto 0 0;width:260px;padding:34px 24px;border-right:1px solid var(--cp-line);display:flex;flex-direction:column;background:#0b1113}.brand{text-decoration:none;font-size:22px;font-weight:600}.monogram{font-family:Georgia,serif;margin-right:16px;font-size:31px}.monogram span{color:var(--cp-accent)}.eyebrow{font-size:10px;letter-spacing:2px;color:#91a09f}.client-sidebar>.eyebrow{margin:52px 0 22px}.client-sidebar nav{display:flex;flex-direction:column;gap:8px}.client-sidebar nav button{border:1px solid transparent;background:transparent;color:#9aa7a5;text-align:left;padding:15px 12px}.client-sidebar nav button.selected{background:#182522;border-color:#40544e;color:var(--cp-accent)}button{font:inherit;cursor:pointer}.client-sidebar-bottom{margin-top:auto;display:flex;flex-direction:column;gap:18px;font-size:12px}.client-sidebar-bottom a{text-decoration:none}.client-sidebar-bottom span{color:var(--cp-muted);overflow-wrap:anywhere}.client-sidebar-bottom button{align-self:flex-start;border:0;background:transparent;color:var(--cp-text);padding:0}.client-main{margin-left:260px;padding:44px clamp(24px,4vw,72px)}.client-heading{display:flex;justify-content:space-between;align-items:center;padding-bottom:28px;border-bottom:1px solid var(--cp-line)}.client-heading h1{font-size:clamp(32px,4vw,54px);font-weight:400;letter-spacing:-1.8px;margin:15px 0 0}.workspace-mark{font:12px ui-monospace,monospace;color:#6f807e}.portal-status{min-height:24px;color:var(--cp-warn);margin:18px 0}.portal-empty{max-width:780px;padding:46px;border:1px solid var(--cp-line);background:var(--cp-panel);margin-top:28px}.portal-empty h2{font-size:clamp(30px,4vw,52px);font-weight:400;line-height:1.05}.portal-empty p{color:var(--cp-muted);line-height:1.7}.button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:11px 18px;text-decoration:none;border:1px solid var(--cp-line)}.button.primary{background:#eef2ed;color:#101617}.button.secondary{background:transparent;color:var(--cp-text)}.button:disabled{opacity:.55;cursor:wait}.portal-kpis{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--cp-line);margin:28px 0}.portal-kpi{min-height:135px;padding:24px;border-right:1px solid var(--cp-line);display:flex;flex-direction:column;justify-content:space-between}.portal-kpi:last-child{border-right:0}.portal-kpi span{font-size:11px;color:var(--cp-muted);text-transform:uppercase;letter-spacing:1px}.portal-kpi strong{font-size:31px;font-weight:500}.portal-kpi small{color:#768786}.portal-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:24px}.portal-panel{border:1px solid var(--cp-line);background:var(--cp-panel);padding:28px}.portal-panel h2,.portal-panel h3{font-weight:400}.portal-row{display:grid;grid-template-columns:1fr auto;gap:10px;padding:16px 0;border-top:1px solid #2a3637}.portal-row strong{font-size:14px}.portal-row small{display:block;margin-top:6px;color:var(--cp-muted)}.portal-row span{white-space:nowrap}.portal-section-head{display:flex;justify-content:space-between;gap:20px;margin:30px 0 22px}.portal-section-head h2{font-size:32px;font-weight:400;margin:0}.portal-section-head p{color:var(--cp-muted)}.project-list{display:grid;gap:20px}.project-card{border:1px solid var(--cp-line);background:var(--cp-panel);padding:28px}.project-card-head{display:flex;justify-content:space-between;gap:20px}.project-card h3{font-size:25px;font-weight:400;margin:4px 0}.project-card p{color:var(--cp-muted);line-height:1.6}.status{display:inline-flex;padding:7px 10px;border:1px solid #455655;font-size:10px;text-transform:uppercase;letter-spacing:1px}.status.paid,.status.completed,.status.acknowledged{color:var(--cp-accent)}.status.overdue,.status.cancelled{color:var(--cp-danger)}.status.active,.status.partially_paid,.status.review{color:var(--cp-warn)}.progress{height:5px;background:#263234;margin:18px 0}.progress>span{display:block;height:100%;background:var(--cp-accent)}.milestones{display:grid;gap:1px;background:#2b3738;margin-top:20px}.milestone{background:#11191a;padding:14px;display:grid;grid-template-columns:1fr auto;gap:10px}.milestone small{color:var(--cp-muted)}.portal-table-wrap{overflow:auto;border:1px solid var(--cp-line);scrollbar-gutter:stable}.portal-table-wrap table{width:100%;border-collapse:collapse;min-width:760px}.portal-table-wrap th{text-align:left;font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--cp-muted);background:#182224;padding:16px}.portal-table-wrap td{padding:18px 16px;border-top:1px solid #2a3637;font-size:13px}.document-list{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.document-card{border:1px solid var(--cp-line);background:var(--cp-panel);padding:24px}.document-card h3{font-size:21px;font-weight:400}.document-card p{color:var(--cp-muted);line-height:1.6;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.document-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.portal-legal-note{color:var(--cp-muted);font-size:12px;line-height:1.6;margin-top:22px}.message-layout{grid-template-columns:.8fr 1.2fr}.client-portal-page label{display:block;font-size:13px;margin:18px 0 8px}.client-portal-page select,.client-portal-page textarea{width:100%;padding:13px;border:1px solid #465456;background:#0d1416;color:var(--cp-text);resize:none}.client-portal-page textarea{min-height:150px}.form-error,.dialog-error{min-height:22px;color:var(--cp-danger);font-size:13px}.message{padding:15px 0;border-top:1px solid #2b3738}.message strong{font-size:12px;color:var(--cp-accent)}.message time{display:block;color:var(--cp-muted);font-size:11px;margin:6px 0}.message p{white-space:pre-wrap;overflow-wrap:anywhere;color:#d9e0de}.empty{padding:24px 0;color:var(--cp-muted)}.portal-dialog{width:min(520px,calc(100vw - 32px));max-height:90vh;overflow:auto;margin:auto;background:#172021;color:var(--cp-text);border:1px solid #52605f;padding:28px}.portal-dialog::backdrop{background:#000b}.dialog-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}:focus-visible{outline:2px solid var(--cp-accent);outline-offset:3px}@media(max-width:1000px){.client-sidebar{width:215px}.client-main{margin-left:215px;padding:30px 22px}.portal-kpis{grid-template-columns:repeat(2,1fr)}.portal-kpi:nth-child(2){border-right:0}.portal-kpi:nth-child(-n+2){border-bottom:1px solid var(--cp-line)}}@media(max-width:760px){.client-sidebar{position:static;width:auto;border-right:0;border-bottom:1px solid var(--cp-line);padding:20px}.client-sidebar>.eyebrow,.client-sidebar-bottom{display:none}.client-sidebar nav{flex-direction:row;overflow:auto;margin-top:18px}.client-sidebar nav button{white-space:nowrap}.client-main{margin:0;padding:24px 16px}.workspace-mark{display:none}.portal-grid,.message-layout,.document-list{grid-template-columns:1fr}.project-card-head{flex-direction:column}.portal-empty{padding:28px}.portal-section-head h2{font-size:27px}}@media(max-width:460px){.portal-kpis{grid-template-columns:1fr}.portal-kpi{border-right:0;border-bottom:1px solid var(--cp-line)}.portal-kpi:last-child{border-bottom:0}.dialog-actions{flex-direction:column-reverse}.dialog-actions .button{width:100%}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
