.client-portal{max-width:1080px;margin:auto}.client-portal__header{display:flex;align-items:center;justify-content:space-between;padding:1rem 0 1.4rem;border-bottom:1px solid var(--line)}.client-portal__brand{display:flex;align-items:center;gap:.7rem}.client-portal__brand img{width:58px;height:58px;object-fit:contain}.client-portal__brand b{font-size:1.55rem;letter-spacing:.06em}.client-portal__brand b span,.client-section__note,.client-meta dt,.client-lifecycle b{color:#e7bc35}.client-portal__brand small{display:block;font:11px ui-monospace,monospace;letter-spacing:.08em;color:var(--muted)}.client-tools{display:grid;grid-template-columns:repeat(3,1fr);gap:.65rem;margin:1.5rem 0 2rem}.client-tool{min-height:54px;border:1px solid #303542;border-radius:10px;background:#151821;color:var(--ink);font-weight:800;cursor:pointer}.client-tool:hover{border-color:#e7bc35}.client-section{margin:2rem 0}.client-section__title{display:flex;align-items:baseline;gap:.6rem;border-bottom:2px solid #303542;padding-bottom:.55rem}.client-section__title h2{font-size:1.25rem;margin:0}.client-section__note{font:10px ui-monospace,monospace;letter-spacing:.08em}.client-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;border:1px solid #303542;border-radius:12px;background:#151821;padding:1rem}.client-meta dt{font:10px ui-monospace,monospace;text-transform:uppercase;letter-spacing:.08em}.client-meta dd{margin:.45rem 0 0;color:var(--muted)}.client-case-empty{border:1px solid #303542;border-radius:12px;background:#151821;padding:1.35rem;color:var(--muted)}.client-calendar-controls{display:flex;align-items:center;gap:.5rem;margin:1rem 0}.client-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.client-calendar-grid b{text-align:center;font:9px ui-monospace,monospace;color:var(--muted);padding:.5rem}.client-day{min-height:74px;border:1px solid #303542;background:#181b25;padding:.4rem;color:var(--muted)}.client-lifecycle{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;border-top:1px solid #303542;border-bottom:1px solid #303542;padding:1.3rem 0}.client-lifecycle button{display:grid;justify-items:center;gap:.45rem;border:0;background:transparent;color:var(--ink);cursor:pointer}.client-lifecycle img{width:34px;height:34px;filter:invert(76%) sepia(82%) saturate(570%) hue-rotate(4deg) brightness(95%) contrast(87%)}.client-lifecycle button:hover img,.client-lifecycle button:focus-visible img{filter:invert(85%) sepia(76%) saturate(535%) hue-rotate(351deg) brightness(104%) contrast(91%)}.client-lifecycle small{font:10px ui-monospace,monospace;color:var(--muted);text-transform:uppercase}.client-poster{display:block;width:100%;height:auto;background:#fff;border-radius:10px}.client-modal-wide{width:min(760px,100%)}.client-fees{width:100%;border-collapse:collapse;margin-top:1rem}.client-fees th,.client-fees td{border-bottom:1px solid #303542;padding:.75rem;text-align:left}.client-fees th{font:10px ui-monospace,monospace;color:var(--muted);text-transform:uppercase}.client-fees td:first-child{color:#e7bc35;font-weight:700}.client-resource-grid{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}.client-resource-grid .button{text-align:left}.client-review-notice{border-left:3px solid #e7bc35;background:#e7bc3512;padding:.8rem 1rem;color:var(--muted)}
@media(max-width:700px){.client-tools{grid-template-columns:1fr 1fr}.client-meta{grid-template-columns:1fr}.client-calendar-grid{min-width:650px}.client-calendar-scroll{overflow:auto}.client-lifecycle{grid-template-columns:1fr}.client-portal__header{align-items:flex-start}.client-resource-grid{grid-template-columns:1fr}}
.client-case-empty{display:flex;width:100%;align-items:center;justify-content:space-between;gap:1.5rem;text-align:left;cursor:pointer}.client-case-empty:hover{border-color:var(--accent)}.client-case-empty b{color:var(--ink)}.client-case-empty__copy{display:grid;gap:.3rem;min-width:0}.client-case-empty__statuses{display:flex;gap:.45rem;flex:0 0 auto}
@media(max-width:560px){.client-case-empty{align-items:flex-start;flex-direction:column}.client-case-empty__statuses{padding-top:.25rem}}
.client-resource-grid a.button{display:flex;align-items:center;text-decoration:none}
.client-day--blank{background:transparent;border-color:transparent}.client-day--event{border-color:var(--accent);background:var(--accent-soft)}.client-day--event small{display:block;margin-top:.4rem;color:var(--accent);font:10px var(--mono)}
.client-privacy-boundary{padding:.85rem 1rem;border:1px solid color-mix(in srgb,var(--accent) 55%,var(--line));background:var(--accent-soft);color:var(--muted)}.client-privacy-boundary b{color:var(--ink)}
.attachment-divider{display:flex;align-items:center;gap:.75rem;margin:.9rem 0;color:var(--muted);font:10px ui-monospace,monospace;letter-spacing:.08em;text-transform:uppercase}.attachment-divider::before,.attachment-divider::after{content:"";height:1px;flex:1;background:var(--line)}
