.portal-hero{display:grid;grid-gap:.8rem;gap:.8rem}.portal-hero-copy{display:grid;grid-gap:.75rem;gap:.75rem;max-width:840px}.portal-hero h1{margin:0;font-size:clamp(2.2rem,4vw,3.8rem);font-weight:700;letter-spacing:-.055em;line-height:.98}.portal-hero p{margin:0;color:var(--muted);line-height:1.75}.portal-grid{display:grid;grid-gap:1.5rem;gap:1.5rem;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);align-items:start}.portal-shell{--portal-canvas:#f5f5f7;--portal-surface:rgba(255,255,255,0.82);--portal-surface-strong:#ffffff;--portal-text:#141416;--portal-muted:#6e6e73;--portal-border:rgba(20,20,22,0.08);--portal-positive:#16a34a;--portal-accent-warm:rgba(251,191,36,0.12);--portal-accent-blue:rgba(59,130,246,0.1);--canvas:var(--portal-canvas);--canvas-strong:color-mix(in srgb,var(--portal-canvas) 76%,#ffffff 24%);--surface:var(--portal-surface);--surface-strong:var(--portal-surface-strong);--surface-inverse:#141416;--text:var(--portal-text);--muted:var(--portal-muted);--subtle:color-mix(in srgb,var(--portal-muted) 84%,transparent);--border:var(--portal-border);--danger:#c81e4a;--primary-button-text:#ffffff;--shadow-soft:0 24px 60px rgba(15,23,42,0.08);--portal-space-xs:0.45rem;--portal-space-sm:0.85rem;--portal-space-md:1.35rem;--portal-space-lg:2.35rem;--portal-space-xl:3rem;--portal-page-padding:var(--portal-space-xl) var(--portal-space-lg) var(--portal-space-xl);--portal-radius-xs:8px;--portal-radius-sm:12px;--portal-radius-md:18px;--portal-radius-lg:24px;--portal-radius-xl:28px;--portal-radius-full:999px;--portal-font-eyebrow:0.72rem;--portal-font-meta:0.78rem;--portal-font-body:1rem;--portal-letter-tight:-0.03em;--portal-letter-wide:0.08em;--portal-button-sm:38px;--portal-button-md:44px;--portal-button-lg:48px;--portal-duration-fast:220ms;--portal-duration-normal:320ms;--portal-ease:cubic-bezier(0.16,1,0.3,1);min-height:100vh;display:grid;grid-template-rows:auto 1fr;background:var(--portal-canvas);color:var(--portal-text);color-scheme:light;transition:background var(--portal-duration-normal) var(--portal-ease),color var(--portal-duration-normal) var(--portal-ease)}.portal-shell[data-portal-theme=dark]{--portal-canvas:#09090b;--portal-surface:rgba(19,19,22,0.9);--portal-surface-strong:#111114;--portal-text:#f5f5f7;--portal-muted:#a1a1aa;--portal-border:rgba(255,255,255,0.08);--portal-positive:#4ade80;--portal-accent-warm:rgba(251,191,36,0.16);--portal-accent-blue:rgba(59,130,246,0.14);--canvas-strong:color-mix(in srgb,var(--portal-canvas) 72%,#17171a 28%);--surface-inverse:#f5f5f7;--primary-button-text:#09090b;--shadow-soft:0 26px 72px rgba(0,0,0,0.36);color-scheme:dark}.portal-topbar{position:-webkit-sticky;position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:1.25rem;padding:1rem 1.5rem;border-bottom:1px solid var(--portal-border);background:color-mix(in srgb,var(--portal-surface) 92%,var(--portal-canvas) 8%);transition:border-color .28s var(--easing),background .28s var(--easing)}.portal-brand,.portal-topbar-actions{display:flex;align-items:center;gap:.85rem}.portal-topbar-actions{justify-content:flex-end;flex-wrap:wrap}.portal-topbar-label{color:var(--portal-muted);font-size:.86rem;font-weight:500;letter-spacing:-.01em}.portal-account-menu{position:relative}.portal-account-chip{display:grid;grid-gap:.12rem;gap:.12rem;padding:.48rem .75rem;border:1px solid var(--portal-border);border-radius:999px;background:color-mix(in srgb,var(--portal-surface-strong) 92%,var(--portal-canvas) 8%);box-shadow:0 1px 2px rgba(0,0,0,.04);text-align:left;transition:border-color .28s var(--easing),background .28s var(--easing)}.portal-account-chip strong{font-size:.88rem}.portal-account-chip span{color:var(--portal-muted);font-size:.8rem}.portal-account-popover{position:absolute;top:calc(100% + .65rem);right:0;z-index:10;display:grid;grid-gap:.5rem;gap:.5rem;min-width:220px;padding:.8rem;border:1px solid var(--portal-border);border-radius:18px;background:var(--portal-surface-strong);box-shadow:var(--shadow-soft)}.portal-account-popover p{margin:0;color:var(--portal-muted);font-size:.82rem;line-height:1.4}.portal-account-popover-item{display:inline-flex;align-items:center;gap:.55rem;min-height:40px;padding:0 .9rem;border-radius:12px;background:color-mix(in srgb,var(--portal-canvas) 86%,var(--portal-surface-strong) 14%);color:var(--portal-text);font-size:.92rem;font-weight:500;text-align:left;text-decoration:none}.portal-main{width:min(1240px,100%);margin:0 auto;padding:2rem 1.5rem 3rem}.client-portal-shell{min-height:100vh;display:grid;grid-template-rows:auto 1fr;background:var(--canvas)}.client-portal-topbar{position:-webkit-sticky;position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.9rem;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--surface) 88%,transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.client-portal-brand,.client-portal-topbar-actions{display:flex;align-items:center;gap:.7rem}.client-portal-brand{font-size:.96rem;font-weight:600;letter-spacing:-.03em}.client-portal-brand-mark{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;background:var(--surface-inverse);color:var(--primary-button-text)}.client-portal-brand-copy{color:var(--text)}.client-portal-context-label{color:var(--muted);font-size:var(--portal-font-meta);font-weight:500}.client-portal-topbar-actions{position:relative}.client-portal-account-button{display:inline-flex;align-items:center;gap:.55rem;padding:.25rem .4rem .25rem .25rem;border:1px solid transparent;border-radius:999px;background:transparent;color:var(--text);transition:border-color .18s var(--easing),background .18s var(--easing)}.client-portal-account-button:hover{border-color:var(--border);background:color-mix(in srgb,var(--surface-strong) 86%,var(--surface) 14%)}.client-portal-account-avatar{width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:999px;background:color-mix(in srgb,var(--surface-strong) 82%,var(--surface) 18%);color:var(--text);font-size:.64rem;font-weight:700}.client-portal-account-label{font-size:.82rem;font-weight:500}.client-portal-account-menu{position:absolute;top:calc(100% + 10px);right:0;min-width:220px;display:grid;grid-gap:.35rem;gap:.35rem;padding:.8rem;border:1px solid var(--border);border-radius:18px;background:var(--surface);box-shadow:var(--shadow-soft)}.client-portal-account-menu-head{display:grid;grid-gap:.12rem;gap:.12rem;padding:.2rem .3rem .55rem;border-bottom:1px solid var(--border)}.client-portal-account-menu-head strong{font-size:.88rem;font-weight:600}.client-portal-account-menu-head span{color:var(--muted);font-size:var(--portal-font-meta)}.client-portal-account-menu-item{display:flex;align-items:center;justify-content:flex-start;min-height:38px;padding:.55rem .8rem;border-radius:12px;color:var(--text);font-size:.82rem;font-weight:500;text-align:left}.client-portal-account-menu-item:hover{background:color-mix(in srgb,var(--surface-strong) 84%,var(--surface) 16%)}.client-portal-account-menu-item.danger{color:var(--danger)}.client-portal-main{width:100%}.client-portal-page{width:min(100%,1200px);margin:0 auto;padding:var(--portal-page-padding);display:grid;grid-gap:var(--portal-space-lg)}.client-portal-page,.client-portal-page.project-detail{gap:var(--portal-space-lg)}.client-portal-hero,.client-portal-project-hero{display:grid;grid-gap:.9rem;gap:.9rem}.client-portal-hero-copy{display:grid;grid-gap:.75rem;gap:.75rem;max-width:760px}.client-portal-hero h1,.client-portal-project-hero h1{margin:0;color:var(--text);font-size:clamp(2.8rem,6vw,4.5rem);font-weight:500;line-height:.95;letter-spacing:-.055em}.client-portal-attention-copy p,.client-portal-brief-card p,.client-portal-concierge-copy p,.client-portal-file-ident p,.client-portal-hero p,.client-portal-invoice-card p,.client-portal-progress-head p,.client-portal-project-copy p,.client-portal-project-hero p,.client-portal-side-empty p,.client-portal-timeline-card p{margin:0;color:var(--muted);line-height:1.7}.client-portal-file-list,.client-portal-invoice-list,.client-portal-project-main,.client-portal-project-side,.client-portal-section{display:grid;grid-gap:1rem;gap:1rem}.client-portal-section-head{display:flex;align-items:center;justify-content:space-between;gap:1rem}.client-portal-section-head.compact{margin-bottom:.2rem}.client-portal-inline-action,.client-portal-inline-link,.client-portal-project-kicker,.client-portal-section-label{color:var(--muted);font-size:var(--portal-font-eyebrow);font-weight:700;letter-spacing:var(--portal-letter-wide);text-transform:uppercase}.client-portal-section-label.with-dot{display:inline-flex;align-items:center;gap:.5rem}.client-portal-live-dot,.client-portal-project-pill-dot{width:8px;height:8px;border-radius:999px;background:var(--info)}.client-portal-inline-action,.client-portal-inline-link{display:inline-flex;align-items:center;gap:.35rem;color:var(--text);letter-spacing:.06em}.client-portal-attention-grid,.client-portal-project-grid{display:grid;grid-gap:1rem;gap:1rem}.client-portal-attention-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.client-portal-attention-card,.client-portal-progress-card,.client-portal-project-card,.client-portal-side-panel,.client-portal-timeline-card{border:1px solid var(--border);border-radius:24px;background:var(--surface)}.client-portal-attention-card{display:grid;grid-gap:1rem;gap:1rem;padding:1.35rem}.client-portal-attention-card.invoice{border-color:color-mix(in srgb,#e9b74d 40%,var(--border))}.client-portal-attention-card.project{border-color:color-mix(in srgb,var(--info) 24%,var(--border))}.client-portal-attention-top{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.client-portal-attention-icon{width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;border-radius:12px;background:color-mix(in srgb,var(--surface-strong) 82%,var(--surface) 18%);color:var(--text)}.client-portal-attention-icon.invoice{background:var(--portal-accent-warm);color:#b16c12}.client-portal-attention-icon.project{background:color-mix(in srgb,var(--info-soft) 84%,var(--surface) 16%);color:var(--info)}.client-portal-attention-card strong{color:var(--text);font-size:1rem;font-weight:600}.client-portal-attention-copy{display:grid;grid-gap:.25rem;gap:.25rem}.client-portal-attention-copy h2,.client-portal-concierge-copy h2,.client-portal-progress-head h2,.client-portal-project-copy h2{margin:0;color:var(--text);font-size:1rem;font-weight:600;letter-spacing:-.02em}.client-portal-attention-meta,.client-portal-invoice-inline,.client-portal-timeline-date{display:inline-flex;align-items:center;gap:.4rem;color:var(--muted);font-size:var(--portal-font-eyebrow);font-weight:500}.client-portal-project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.client-portal-project-card{display:grid;grid-gap:1.5rem;gap:1.5rem;min-height:240px;padding:1.45rem;transition:border-color .18s var(--easing),box-shadow .18s var(--easing),transform .18s var(--easing)}.client-portal-progress-card:hover,.client-portal-project-card:hover,.client-portal-side-panel:hover{border-color:var(--border-strong)}.client-portal-file-row,.client-portal-invoice-top,.client-portal-progress-head,.client-portal-project-progress-row,.client-portal-project-top,.client-portal-timeline-top{display:flex;align-items:center;justify-content:space-between;gap:1rem}.client-portal-invoice-badge,.client-portal-project-pill,.client-portal-project-status,.client-portal-timeline-badge{display:inline-flex;align-items:center;gap:.4rem;min-height:26px;padding:0 .7rem;border:1px solid var(--border);border-radius:999px;font-size:.62rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.client-portal-project-pill,.client-portal-project-status.active{background:color-mix(in srgb,var(--surface-strong) 84%,var(--surface) 16%);color:var(--text)}.client-portal-invoice-badge.paid,.client-portal-project-status.done{background:var(--positive-soft);color:var(--positive);border-color:color-mix(in srgb,var(--positive) 20%,var(--border))}.client-portal-invoice-badge.draft,.client-portal-invoice-badge.sent,.client-portal-timeline-badge.current{background:color-mix(in srgb,var(--info-soft) 78%,var(--surface) 22%);color:var(--info);border-color:color-mix(in srgb,var(--info) 18%,var(--border))}.client-portal-invoice-badge.open,.client-portal-invoice-badge.overdue,.client-portal-timeline-badge.next{background:var(--warning-soft);color:var(--warning);border-color:color-mix(in srgb,var(--warning) 18%,var(--border))}.client-portal-project-arrow{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:999px;color:var(--muted)}.client-portal-project-copy{display:grid;grid-gap:.35rem;gap:.35rem}.client-portal-progress-head strong,.client-portal-project-copy h2{margin:0;color:var(--text);font-size:2rem;font-weight:500;line-height:1;letter-spacing:-.05em}.client-portal-project-bar{height:6px;width:100%;overflow:hidden;border-radius:999px;background:color-mix(in srgb,var(--surface-strong) 82%,var(--canvas) 18%)}.client-portal-project-bar.large{height:8px}.client-portal-project-bar-fill{height:100%;border-radius:inherit;background:var(--surface-inverse)}.client-portal-project-bar-fill.done{background:var(--positive)}.client-portal-created-at,.client-portal-project-updated{color:var(--muted);font-size:var(--portal-font-eyebrow)}.client-portal-brief-card{min-height:240px;display:grid;align-content:center;justify-items:center;grid-gap:.8rem;gap:.8rem;padding:1.8rem;border:1px dashed var(--border-strong);border-radius:24px;background:transparent;text-align:center}.client-portal-brief-icon{width:52px;height:52px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:color-mix(in srgb,var(--surface-strong) 78%,var(--surface) 22%);color:var(--text)}.client-portal-brief-card h2{margin:0;color:var(--text);font-size:1.2rem;font-weight:500;letter-spacing:-.03em}.client-portal-project-kicker{margin:0}.client-portal-project-pill{justify-self:start}.client-portal-project-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.75fr);grid-gap:1.2rem;gap:1.2rem;align-items:start}.client-portal-progress-card{display:grid;grid-gap:1.35rem;gap:1.35rem;padding:1.5rem}.client-portal-progress-head strong{font-size:3rem;font-weight:400}.client-portal-timeline{display:grid;grid-gap:1rem;gap:1rem}.client-portal-timeline-rail{position:relative;display:grid;grid-gap:1.15rem;gap:1.15rem;margin-left:.9rem;padding-left:1.3rem}.client-portal-timeline-rail:before{content:"";position:absolute;top:.55rem;bottom:.55rem;left:0;width:1px;background:var(--border)}.client-portal-timeline-item{position:relative;display:grid;grid-gap:.55rem;gap:.55rem}.client-portal-timeline-marker{position:absolute;top:1.1rem;left:-1.7rem;width:12px;height:12px;border:4px solid var(--canvas);border-radius:999px;background:color-mix(in srgb,var(--surface-strong) 80%,var(--surface) 20%);box-shadow:0 0 0 1px var(--border)}.client-portal-timeline-item.done .client-portal-timeline-marker{background:var(--positive)}.client-portal-timeline-item.current .client-portal-timeline-marker{background:var(--info)}.client-portal-timeline-card{display:grid;grid-gap:.8rem;gap:.8rem;padding:1.2rem 1.25rem}.client-portal-concierge-card,.client-portal-project-side{display:grid;grid-gap:1rem;gap:1rem}.client-portal-concierge-card{padding:1.45rem;border-radius:24px;background:var(--surface-inverse);color:var(--primary-button-text)}.client-portal-concierge-icon{width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:rgba(255,255,255,.12)}.client-portal-concierge-copy h2,.client-portal-concierge-copy p,.client-portal-concierge-form textarea{color:inherit}.client-portal-concierge-copy p{color:rgba(255,255,255,.72)}.client-portal-concierge-button,.client-portal-ghost-button,.client-portal-inverse-button,.client-portal-invoice-button{min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;padding:0 1rem;border-radius:999px;font-size:var(--portal-font-meta);font-weight:600;letter-spacing:.01em}.client-portal-concierge-button,.client-portal-inverse-button,.client-portal-invoice-button{background:#fff;color:#000}.client-portal-invoice-button.ghost{border:1px solid var(--portal-border);background:color-mix(in srgb,var(--portal-canvas) 88%,var(--portal-surface) 12%);color:var(--portal-text)}.client-portal-ghost-button{border:1px solid rgba(255,255,255,.18);color:rgba(255,255,255,.78)}.client-portal-invoice-actions{display:grid;grid-gap:.55rem;gap:.55rem}.client-portal-concierge-form{display:grid;grid-gap:.8rem;gap:.8rem}.client-portal-concierge-form textarea{min-height:120px;padding:.95rem 1rem;border:1px solid rgba(255,255,255,.14);border-radius:18px;background:rgba(255,255,255,.08);resize:vertical}.client-portal-concierge-form textarea::placeholder{color:rgba(255,255,255,.42)}.client-portal-concierge-actions{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.client-portal-side-panel{display:grid;grid-gap:.95rem;gap:.95rem;padding:1.3rem}.client-portal-file-row{padding:.85rem;border:1px solid var(--border);border-radius:16px;background:color-mix(in srgb,var(--surface-strong) 84%,var(--surface) 16%)}.client-portal-file-ident{display:flex;align-items:center;gap:.75rem;min-width:0}.client-portal-file-ident strong{display:block;color:var(--text);font-size:.86rem;font-weight:600;letter-spacing:-.02em}.client-portal-file-action,.client-portal-file-icon{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--muted)}.client-portal-file-action.disabled{opacity:.45}.client-portal-invoice-card{display:grid;grid-gap:.75rem;gap:.75rem;padding:1rem;border:1px solid var(--border);border-radius:18px;background:color-mix(in srgb,var(--surface-strong) 84%,var(--surface) 16%)}.client-portal-invoice-card.open{border-color:color-mix(in srgb,var(--info) 18%,var(--border))}.client-portal-invoice-card em,.client-portal-invoice-card strong{color:var(--text);font-style:normal;font-size:.86rem;font-weight:600}.client-portal-invoice-card>p{font-size:.82rem}.client-portal-side-empty{padding:1rem .2rem .2rem}.portal-account-chip{cursor:pointer}.portal-overview-page,.portal-project-page{display:grid;grid-gap:2.5rem;gap:2.5rem}.portal-overview-hero,.portal-project-hero{display:grid;grid-gap:1.25rem;gap:1.25rem}.portal-overview-copy{display:grid;grid-gap:.7rem;gap:.7rem;max-width:760px}.portal-action-card-meta,.portal-archive-head span,.portal-kicker,.portal-project-progress-foot,.portal-section-label,.portal-timeline-eyebrow,.portal-timeline-meta{color:var(--muted);font-size:var(--portal-font-eyebrow);font-weight:600;letter-spacing:.12em;text-transform:uppercase}.portal-overview-copy h1,.portal-project-hero h1{margin:0;color:var(--text);font-size:clamp(2.8rem,5vw,4.6rem);font-weight:500;line-height:.95;letter-spacing:-.06em}.portal-archive-empty,.portal-concierge-card p,.portal-message-card p,.portal-new-brief-card p,.portal-overview-copy p,.portal-progress-card p,.portal-project-card-copy p,.portal-project-footer p,.portal-section-copy,.portal-side-empty{margin:0;color:var(--muted);font-size:1rem;line-height:1.7}.portal-overview-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:.85rem;gap:.85rem;align-self:end}.portal-overview-stat{display:grid;grid-gap:.35rem;gap:.35rem;padding:1rem 1.1rem;border:1px solid var(--border);border-radius:18px;background:var(--surface)}.portal-overview-stat span{color:var(--muted);font-size:var(--portal-font-eyebrow);font-weight:600;letter-spacing:.12em;text-transform:uppercase}.portal-overview-stat strong{color:var(--text);font-size:1.35rem;font-weight:500;letter-spacing:-.03em}.portal-section{display:grid;grid-gap:1.25rem;gap:1.25rem}.portal-section-head{display:grid;grid-gap:.25rem;gap:.25rem}.portal-section-head-between{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:1rem}.portal-inline-link{gap:.45rem;color:var(--text);font-size:.86rem}.portal-action-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:.9rem;gap:.9rem}.portal-action-card{gap:.65rem;padding:1rem 1rem 1.05rem;border:1px solid var(--border);border-radius:20px;background:var(--surface)}.portal-action-card.tone-amber{border-color:rgba(217,119,6,.26)}.portal-action-card.tone-blue{border-color:rgba(37,99,235,.24)}.portal-action-card.tone-neutral{border-color:var(--border)}.portal-action-icon{width:2rem;height:2rem;display:inline-flex;align-items:center;justify-content:center;border-radius:12px;background:color-mix(in srgb,var(--canvas) 82%,var(--surface) 18%)}.portal-action-card h2,.portal-archive-card h2,.portal-archive-row strong,.portal-concierge-card h3,.portal-message-card strong,.portal-progress-head h2,.portal-project-card-copy h2,.portal-project-footer h2,.portal-side-row-copy strong{margin:0;color:var(--text);font-size:1rem;font-weight:600;letter-spacing:-.02em}.portal-action-card p,.portal-project-card-copy p{color:var(--muted)}.portal-action-card-meta{display:inline-flex;align-items:center;gap:.35rem}.portal-project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:.95rem;gap:.95rem}.portal-project-card{min-height:245px;padding:1.2rem;border:1px solid var(--border);border-radius:24px;background:var(--surface);box-shadow:var(--shadow-card)}.portal-project-card.completed{background:color-mix(in srgb,var(--surface) 88%,#e6f6f1 12%)}.portal-project-card.active{background:color-mix(in srgb,var(--surface) 90%,#eff6ff 10%)}.portal-project-status{gap:.3rem;min-height:1.45rem;padding:0 .5rem;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:.68rem}.portal-project-status.completed{border-color:rgba(0,169,127,.25);background:rgba(230,246,241,.9);color:#0a8a68}.portal-project-status.active{border-color:rgba(37,99,235,.2);background:rgba(239,246,255,.9);color:#2458e6}.portal-project-arrow{width:2rem;height:2rem;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:999px;background:color-mix(in srgb,var(--canvas) 84%,var(--surface) 16%)}.portal-project-card-copy{display:grid;grid-gap:.45rem;gap:.45rem}.portal-project-card-copy h2{font-size:1.55rem;line-height:1.05}.portal-project-progress{display:grid;grid-gap:.55rem;gap:.55rem;margin-top:auto}.portal-progress-head,.portal-project-progress-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.portal-project-progress-head span{color:var(--muted);font-size:.8rem;font-weight:600}.portal-progress-track,.portal-project-progress-track{width:100%;height:.4rem;border-radius:999px;background:color-mix(in srgb,var(--canvas-strong) 84%,var(--surface) 16%);overflow:hidden}.portal-progress-track.large,.portal-project-progress-track.large{height:.45rem}.portal-progress-fill,.portal-project-progress-fill{height:100%;border-radius:inherit;background:var(--portal-text)}.portal-project-progress-foot{letter-spacing:0;text-transform:none}.portal-new-brief-card{min-height:245px;justify-items:center;align-content:center;text-align:center;border-style:dashed;box-shadow:none}.portal-new-brief-icon{width:3rem;height:3rem;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:color-mix(in srgb,var(--canvas) 86%,var(--surface) 14%);color:var(--text)}.portal-new-brief-card h2{margin:0;font-size:1.05rem;font-weight:600;letter-spacing:-.02em}.portal-new-brief-link{display:inline-flex;align-items:center;justify-content:center;min-height:2.7rem;padding:0 1rem;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text);font-size:.88rem;font-weight:600}.portal-archive-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:.95rem;gap:.95rem}.portal-archive-card{display:grid;grid-gap:.9rem;gap:.9rem;padding:1.1rem;border:1px solid var(--border);border-radius:22px;background:var(--surface);box-shadow:var(--shadow-card)}.portal-archive-card-wide{grid-column:1/-1}.portal-archive-head{display:flex;align-items:center;justify-content:space-between;gap:1rem}.portal-archive-list{display:grid;grid-gap:.5rem;gap:.5rem}.portal-archive-row{display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding:.72rem 0;border-top:1px solid var(--border-soft)}.portal-archive-row:first-child{border-top:0;padding-top:0}.portal-archive-row div{min-width:0}.portal-archive-empty,.portal-archive-row p,.portal-message-card p,.portal-message-card-head span,.portal-side-empty,.portal-side-row-copy span{margin:0;color:var(--muted);font-size:.88rem;line-height:1.55}.portal-message-stack{display:grid;grid-gap:.75rem;gap:.75rem}.portal-message-card{display:grid;grid-gap:.55rem;gap:.55rem;padding:.95rem 0;border-top:1px solid var(--border-soft)}.portal-message-card:first-child{border-top:0;padding-top:0}.portal-message-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.portal-message-form{display:grid;grid-gap:.85rem;gap:.85rem;margin-top:.25rem}.portal-message-field{display:grid;grid-gap:.45rem;gap:.45rem}.portal-message-field span{color:var(--muted);font-size:var(--portal-font-eyebrow);font-weight:600;letter-spacing:.12em;text-transform:uppercase}.portal-message-field input,.portal-message-field textarea{width:100%;min-height:50px;padding:.95rem 1rem;border:1px solid var(--border);border-radius:16px;background:color-mix(in srgb,var(--surface) 94%,var(--canvas) 6%);color:var(--text)}.portal-message-field textarea{min-height:150px;resize:vertical}.portal-message-button{min-height:44px;display:inline-flex;align-items:center;justify-content:center;padding:0 1rem;border:1px solid var(--surface-inverse);border-radius:999px;background:var(--surface-inverse);color:var(--primary-button-text);font-size:.86rem;font-weight:600}.portal-project-layout{grid-template-columns:minmax(0,1.55fr) minmax(300px,.95fr);align-items:start}.portal-project-layout,.portal-project-main{display:grid;grid-gap:1rem;gap:1rem}.portal-project-hero{display:grid;grid-gap:.95rem;gap:.95rem}.portal-project-hero h1{max-width:860px}.portal-project-hero-row{display:flex;align-items:center;gap:.65rem}.portal-concierge-card,.portal-progress-card,.portal-project-footer,.portal-side-card,.portal-timeline-wrap{border:1px solid var(--border);border-radius:24px;background:var(--surface);box-shadow:var(--shadow-card)}.portal-progress-card{display:grid;grid-gap:1rem;gap:1rem;padding:1.1rem 1.15rem 1.2rem}.portal-progress-head p strong{color:var(--text);font-weight:600}.portal-progress-value{color:var(--text);font-size:2.4rem;font-weight:500;letter-spacing:-.05em}.portal-timeline-wrap{display:grid;grid-gap:.85rem;gap:.85rem;padding:1.05rem 1.15rem 1.15rem}.portal-timeline{display:grid;grid-gap:.9rem;gap:.9rem;border-left:1px solid var(--border);margin-left:.35rem;padding-left:1rem}.portal-timeline-item{display:grid;grid-template-columns:.7rem minmax(0,1fr);grid-gap:.75rem;gap:.75rem;align-items:start}.portal-timeline-dot{width:.75rem;height:.75rem;margin-left:-1.35rem;margin-top:1.1rem;border-radius:999px;background:var(--canvas-strong);border:1px solid var(--border-strong)}.portal-timeline-dot.done{background:rgba(0,169,127,.12);border-color:rgba(0,169,127,.3)}.portal-timeline-dot.current{background:var(--portal-text);border-color:var(--portal-text)}.portal-timeline-dot.next{background:rgba(37,99,235,.12);border-color:rgba(37,99,235,.28)}.portal-timeline-card{display:grid;grid-gap:.55rem;gap:.55rem;padding:.95rem 1rem;border:1px solid var(--border);border-radius:20px;background:color-mix(in srgb,var(--surface) 92%,var(--canvas) 8%)}.portal-timeline-card.current{border-color:rgba(37,99,235,.2);background:color-mix(in srgb,var(--surface) 90%,#eff6ff 10%);box-shadow:0 8px 28px rgba(37,99,235,.08)}.portal-timeline-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.portal-timeline-card h3{margin:.1rem 0 0;color:var(--text);font-size:1.05rem;font-weight:600}.portal-timeline-badge{min-height:1.35rem;display:inline-flex;align-items:center;padding:0 .45rem;border-radius:999px;border:1px solid var(--border);color:var(--muted);font-size:.62rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.portal-timeline-badge.done{border-color:rgba(0,169,127,.22);background:rgba(230,246,241,.95);color:#0a8a68}.portal-timeline-badge.current{border-color:rgba(37,99,235,.18);background:rgba(239,246,255,.95);color:#2458e6}.portal-timeline-badge.next{border-color:rgba(29,29,31,.16);background:color-mix(in srgb,var(--surface) 88%,var(--canvas) 12%);color:var(--text)}.portal-timeline-meta{display:inline-flex;align-items:center;gap:.35rem}.portal-concierge-card{display:grid;grid-gap:var(--portal-space-sm);gap:var(--portal-space-sm);padding:var(--portal-space-md);background:var(--surface-inverse);color:var(--primary-button-text)}.portal-concierge-card h3,.portal-concierge-card p,.portal-project-footer h2,.portal-project-footer p{color:inherit}.portal-concierge-icon{width:2.5rem;height:2.5rem;background:rgba(255,255,255,.08)}.portal-concierge-button,.portal-concierge-icon{display:inline-flex;align-items:center;justify-content:center;border-radius:999px}.portal-concierge-button{min-height:2.6rem;gap:.45rem;padding:0 1rem;background:var(--surface);color:var(--text);font-size:.88rem;font-weight:600}.portal-concierge-button.dark{background:var(--portal-canvas);color:var(--portal-text)}.portal-side-card{display:grid;grid-gap:.85rem;gap:.85rem;padding:1rem 1.05rem}.portal-side-card-head{display:flex;align-items:center;justify-content:space-between;gap:1rem}.portal-side-list{display:grid;grid-gap:.55rem;gap:.55rem}.portal-invoice-card,.portal-side-row{display:grid;grid-gap:.45rem;gap:.45rem;padding:.8rem .85rem;border:1px solid var(--border);border-radius:16px;background:color-mix(in srgb,var(--surface) 94%,var(--canvas) 6%)}.portal-side-row{grid-template-columns:2rem minmax(0,1fr) auto;align-items:start}.portal-side-row-icon{width:2rem;height:2rem;display:inline-flex;align-items:center;justify-content:center;border-radius:12px;background:color-mix(in srgb,var(--canvas) 84%,var(--surface) 16%)}.portal-side-row-icon.document{color:#9b4dff}.portal-side-row-copy{min-width:0;display:grid;grid-gap:.15rem;gap:.15rem}.portal-side-row-copy strong{font-size:.88rem}.portal-side-row-copy span{color:var(--muted);font-size:.8rem;font-weight:500;text-transform:none;letter-spacing:0}.portal-invoice-stack{display:grid;grid-gap:.6rem;gap:.6rem}.portal-invoice-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.portal-invoice-card-top strong{display:block;color:var(--text);font-size:.88rem;font-weight:600}.portal-invoice-card-top span{color:var(--text);font-size:.92rem;font-weight:600}.portal-invoice-card p{color:var(--muted);font-size:.86rem;line-height:1.55}.portal-invoice-card-top div{display:grid;grid-gap:.12rem;gap:.12rem}.portal-invoice-card-top div span{color:var(--muted);font-size:var(--portal-font-eyebrow);font-weight:600;letter-spacing:.12em;text-transform:uppercase}.portal-invoice-button{min-height:2.4rem;display:inline-flex;align-items:center;justify-content:center;padding:0 .9rem;border-radius:12px;border:1px solid var(--border);background:var(--surface-inverse);color:var(--primary-button-text);font-size:.84rem;font-weight:600}.portal-project-footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.1rem 1.15rem}.portal-project-footer h2{font-size:1.15rem}.portal-app-shell{display:grid;grid-template-columns:196px minmax(0,1fr);min-height:100vh;align-items:start}.portal-sidebar{position:-webkit-sticky;position:sticky;top:0;display:grid;grid-template-rows:auto auto 1fr auto;grid-gap:1rem;gap:1rem;min-height:100vh;padding:1.1rem .9rem .9rem;border-right:1px solid var(--portal-border);background:color-mix(in srgb,var(--portal-surface-strong) 94%,var(--portal-canvas) 6%);scrollbar-gutter:stable}.portal-sidebar-brand{padding:0 .15rem .85rem;border-bottom:1px solid var(--portal-border)}.portal-sidebar-brand-link{display:inline-flex;align-items:center;gap:.7rem;color:var(--portal-text);transition:opacity .18s var(--portal-ease)}.portal-sidebar-brand-link:hover{opacity:.8}.portal-sidebar-mark{flex-shrink:0;width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border-radius:12px;background:var(--portal-text);color:var(--portal-canvas);font-size:var(--portal-font-meta);font-weight:700;letter-spacing:-.04em}.portal-sidebar-brand-copy{display:grid;grid-gap:.06rem;gap:.06rem}.portal-sidebar-brand-copy span{font-size:.92rem;font-weight:700;letter-spacing:-.03em;color:var(--portal-text);text-transform:none}.portal-sidebar-brand-copy small{font-size:.68rem;font-weight:500;color:var(--portal-muted);letter-spacing:.01em}.portal-sidebar-context{display:grid;grid-gap:.2rem;gap:.2rem;padding:0 .15rem}.portal-bubble-block>small,.portal-list-row-copy span,.portal-metric-card>span,.portal-page-breadcrumb,.portal-page-section-title span,.portal-project-card-footer span,.portal-settings-field>span,.portal-sidebar-eyebrow,.portal-table-head span,.portal-thread-copy-top small,.portal-thread-panel-ident span{color:var(--portal-muted);font-size:var(--portal-font-eyebrow);font-weight:600;letter-spacing:.12em;text-transform:uppercase}.portal-sidebar-context strong{color:var(--portal-text);font-size:.96rem;font-weight:500;line-height:1.35}.portal-sidebar-nav{display:grid;align-content:start;grid-gap:.3rem;gap:.3rem}.portal-sidebar-link{display:inline-flex;align-items:center;gap:.7rem;min-height:2.65rem;padding:0 .78rem;border:1px solid transparent;border-radius:999px;color:var(--portal-muted);font-size:.9rem;font-weight:500;transition:background .22s var(--easing),color .22s var(--easing),border-color .22s var(--easing),transform .22s var(--easing)}.portal-sidebar-link-copy{min-width:0;display:inline-flex;align-items:center;gap:.45rem}.portal-coming-soon-inline-badge,.portal-sidebar-link-badge{display:inline-flex;align-items:center;justify-content:center;min-height:1.2rem;padding:0 .45rem;border-radius:999px;background:color-mix(in srgb,var(--portal-canvas) 76%,var(--portal-surface-strong) 24%);color:var(--portal-muted);font-size:.62rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.portal-sidebar-link:hover{color:var(--portal-text);background:color-mix(in srgb,var(--portal-surface-strong) 72%,var(--portal-canvas) 28%)}.portal-sidebar-link.active{color:var(--portal-text);border-color:var(--portal-border);background:var(--portal-surface-strong);box-shadow:0 1px 2px rgba(15,23,42,.05)}.portal-sidebar-link-icon{width:1rem;display:inline-flex;align-items:center;justify-content:center;color:inherit}.portal-sidebar-footer{padding-top:.85rem;border-top:1px solid var(--portal-border)}.portal-account-trigger{width:100%;display:flex;align-items:center;gap:.65rem;min-width:0;padding:.55rem .6rem;border:1px solid transparent;border-radius:var(--portal-radius-md);background:transparent;cursor:pointer;transition:background var(--portal-duration-fast) var(--portal-ease),border-color var(--portal-duration-fast) var(--portal-ease)}.portal-account-trigger.open,.portal-account-trigger:hover{background:color-mix(in srgb,var(--portal-surface-strong) 80%,var(--portal-canvas) 20%);border-color:var(--portal-border)}.portal-account-trigger-chevron{flex-shrink:0;margin-left:auto;color:var(--portal-muted);transition:transform var(--portal-duration-fast) var(--portal-ease)}.portal-account-trigger-chevron.rotated{transform:rotate(180deg)}.portal-settings-avatar,.portal-sidebar-account-avatar,.portal-thread-avatar{flex-shrink:0;width:2rem;height:2rem;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:color-mix(in srgb,var(--portal-canvas) 84%,var(--portal-surface-strong) 16%);color:var(--portal-text);font-size:.82rem;font-weight:700}.portal-sidebar-account-copy{display:grid;min-width:0;flex:1 1}.portal-sidebar-account-copy strong{color:var(--portal-text);font-size:.84rem;font-weight:600;letter-spacing:-.02em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portal-sidebar-account-copy span{overflow:hidden;color:var(--portal-muted);font-size:var(--portal-font-meta);text-overflow:ellipsis;white-space:nowrap}@keyframes portal-bubble-in{0%{opacity:0;transform:scale(.88) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.portal-account-panel{position:fixed;left:212px;bottom:24px;z-index:200;width:292px;border-radius:var(--portal-radius-xl);border:1px solid var(--portal-border);background:color-mix(in srgb,var(--portal-surface-strong) 96%,var(--portal-canvas) 4%);box-shadow:0 4px 16px rgba(0,0,0,.06),0 20px 56px rgba(0,0,0,.1),inset 0 1px 0 rgba(255,255,255,.08);padding:1.1rem;transform-origin:bottom left;animation:portal-bubble-in var(--portal-duration-fast) var(--portal-ease) both}.portal-account-panel-header{display:flex;align-items:center;gap:.75rem}.portal-account-panel-avatar{flex-shrink:0;width:2.8rem;height:2.8rem;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:color-mix(in srgb,var(--portal-canvas) 84%,var(--portal-surface-strong) 16%);color:var(--portal-text);font-size:1rem;font-weight:700}.portal-account-panel-identity{display:grid;grid-gap:.1rem;gap:.1rem;min-width:0}.portal-account-panel-identity strong{color:var(--portal-text);font-size:.9rem;font-weight:600;letter-spacing:-.02em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portal-account-panel-identity span{color:var(--portal-muted);font-size:var(--portal-font-meta);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portal-account-panel-divider{margin:.85rem 0;height:1px;background:var(--portal-border)}.portal-account-panel-row{display:flex;align-items:center;justify-content:space-between;padding:.2rem 0}.portal-account-panel-row>span{color:var(--portal-muted);font-size:var(--portal-font-meta);font-weight:500}.portal-account-panel-signout{width:100%;display:flex;align-items:center;gap:.5rem;padding:.6rem .65rem;border:1px solid transparent;border-radius:var(--portal-radius-sm);background:transparent;color:var(--portal-muted);font-size:.86rem;font-weight:500;cursor:pointer;transition:background var(--portal-duration-fast) var(--portal-ease),color var(--portal-duration-fast) var(--portal-ease),border-color var(--portal-duration-fast) var(--portal-ease)}.portal-account-panel-signout:hover{background:color-mix(in srgb,var(--portal-canvas) 60%,var(--portal-surface-strong) 40%);border-color:var(--portal-border);color:var(--portal-text)}.portal-content{min-width:0}.portal-content .client-portal-page,.portal-page{width:min(1180px,100%);margin:0 auto;padding:var(--portal-page-padding)}.portal-page{display:grid;grid-gap:var(--portal-space-lg)}.portal-content .client-portal-page,.portal-page{gap:var(--portal-space-lg)}.portal-page-head,.portal-page-hero{display:grid;grid-gap:.55rem;gap:.55rem;padding-bottom:1.25rem;border-bottom:1px solid var(--portal-border)}.portal-page-head.portal-page-head-with-action{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:1rem}.portal-page-copy{display:grid;grid-gap:.45rem;gap:.45rem;max-width:820px}.portal-page-copy h1{margin:0;color:var(--portal-text);font-size:clamp(2.55rem,4vw,3.2rem);font-weight:500;letter-spacing:-.07em;line-height:.98}.portal-page-copy p{margin:0;color:var(--portal-muted);font-size:1rem;line-height:1.65}.portal-page-section{display:grid;grid-gap:1rem;gap:1rem}.portal-page-section-head{display:grid;grid-gap:.3rem;gap:.3rem}.portal-page-section-description{margin:0;color:var(--portal-muted);font-size:.98rem;line-height:1.65}.portal-request-status-grid{display:grid;grid-gap:1rem;gap:1rem}.portal-request-status-card{display:grid;grid-gap:.7rem;gap:.7rem;padding:1.2rem 1.25rem;border:1px solid var(--portal-border);border-radius:var(--portal-radius-lg);background:var(--portal-surface-strong);box-shadow:var(--portal-shadow-soft)}.portal-request-status-top{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.portal-request-status-top strong{color:var(--portal-text);font-size:1rem;font-weight:600;letter-spacing:-.03em}.portal-request-status-card p{margin:0;color:var(--portal-muted);font-size:.95rem;line-height:1.65}.portal-request-status-pill{display:inline-flex;align-items:center;justify-content:center;min-height:1.45rem;padding:0 .65rem;border-radius:999px;background:color-mix(in srgb,var(--portal-canvas) 72%,var(--portal-surface-strong) 28%);color:var(--portal-text);font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}.portal-page-section-head-between{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:1rem}.portal-page-section-title{display:grid;grid-gap:.18rem;gap:.18rem}.portal-page-section-title strong{color:var(--portal-text);font-size:var(--portal-font-eyebrow);font-weight:700;letter-spacing:var(--portal-letter-wide);text-transform:uppercase}.portal-inline-link{display:inline-flex;align-items:center;gap:.35rem;color:var(--portal-text);font-size:.84rem;font-weight:600}.portal-action-grid,.portal-metric-grid,.portal-settings-layout,.portal-shortcuts-grid{display:grid;grid-gap:1rem;gap:1rem}.portal-action-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-shortcuts-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.portal-split-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.96fr);grid-gap:1.2rem;gap:1.2rem;align-items:flex-start}.portal-action-card,.portal-list-card,.portal-metric-card,.portal-project-card,.portal-settings-card,.portal-settings-nav,.portal-shortcut-card,.portal-table-card,.portal-thread-list-card,.portal-thread-panel{border:1px solid var(--portal-border);border-radius:var(--portal-radius-xl);background:var(--portal-surface-strong);box-shadow:0 18px 46px rgba(15,23,42,.04)}.portal-action-card,.portal-metric-card,.portal-settings-card{padding:var(--portal-space-md)}.portal-list-card,.portal-settings-nav,.portal-table-card,.portal-thread-list-card,.portal-thread-panel{overflow:hidden}.portal-action-card{display:grid;grid-gap:.9rem;gap:.9rem}.portal-action-card.tone-invoice{border-color:rgba(245,158,11,.44);background:linear-gradient(180deg,rgba(255,248,232,.72),var(--portal-surface-strong))}.portal-action-card.tone-message{border-color:rgba(96,165,250,.34)}.portal-action-card.tone-ticket{border-color:rgba(59,130,246,.22)}.portal-action-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.portal-action-card-top strong,.portal-metric-card strong{color:var(--portal-text);font-size:clamp(1.35rem,2vw,1.7rem);font-weight:500;letter-spacing:-.05em}.portal-action-icon,.portal-list-row-icon,.portal-shortcut-icon,.portal-table-icon{width:2.15rem;height:2.15rem;display:inline-flex;align-items:center;justify-content:center;border-radius:14px}.portal-action-icon.tone-invoice,.portal-table-icon.tone-amber{background:rgba(251,191,36,.16);color:#c2410c}.portal-action-icon.tone-message,.portal-project-progress-fill.active,.portal-shortcut-icon{background:rgba(59,130,246,.12);color:#2563eb}.portal-action-icon.tone-ticket{background:rgba(14,165,233,.12);color:#0284c7}.portal-action-card-copy,.portal-list-row-copy,.portal-settings-card-copy,.portal-thread-copy,.portal-thread-panel-ident>div{display:grid;grid-gap:.28rem;gap:.28rem;min-width:0}.portal-action-card-copy h2,.portal-list-row-copy strong,.portal-project-card-copy h2,.portal-settings-card h2,.portal-thread-copy strong{margin:0;color:var(--portal-text);font-size:1rem;font-weight:600;letter-spacing:-.03em}.portal-action-card-copy p,.portal-list-row-copy span,.portal-metric-card p,.portal-project-card-copy p,.portal-settings-card-copy p,.portal-side-empty p,.portal-thread-copy span,.portal-thread-empty p{margin:0;color:var(--portal-muted);line-height:1.6}.portal-action-card-meta{color:var(--portal-muted);font-size:var(--portal-font-meta);font-weight:500}.portal-project-card{display:grid;grid-gap:1rem;gap:1rem;padding:1.4rem;min-height:0}.portal-project-card-featured,.portal-project-card-list{min-height:0}.portal-project-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.portal-project-card-top>strong{color:var(--portal-text);font-size:clamp(1.5rem,2.4vw,2rem);font-weight:500;letter-spacing:-.06em}.portal-project-status{display:inline-flex;align-items:center;min-height:1.42rem;padding:0 .52rem;border-radius:999px;font-size:.64rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.portal-project-status.active{background:rgba(59,130,246,.11);color:#2563eb}.portal-project-status.completed{background:rgba(34,197,94,.11);color:#16a34a}.portal-project-card-copy h2{font-size:clamp(1.55rem,2vw,1.9rem);line-height:1.02}.portal-project-progress-track{width:100%;height:.38rem;border-radius:999px;background:color-mix(in srgb,var(--portal-canvas) 88%,var(--portal-surface-strong) 12%);overflow:hidden}.portal-project-progress-track.large{height:.4rem}.portal-project-progress-fill{display:block;height:100%;border-radius:inherit}.portal-project-progress-fill.completed{background:var(--portal-positive);color:var(--portal-positive)}.portal-project-card-footer{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:1rem;gap:1rem;padding-top:1rem;border-top:1px solid var(--portal-border)}.portal-project-card-footer>div{display:grid;grid-gap:.22rem;gap:.22rem}.portal-project-card-footer strong{color:var(--portal-text);font-size:.92rem;font-weight:600;letter-spacing:-.02em}.portal-list-card{display:grid}.portal-list-card-empty{min-height:100%;align-items:stretch}.portal-list-row{display:grid;grid-template-columns:auto minmax(0,1fr);grid-gap:.85rem;gap:.85rem;align-items:center;padding:1rem 1.2rem;border-top:1px solid var(--portal-border)}.portal-list-row:first-child{border-top:0}.portal-list-row-icon.tone-document{background:rgba(239,68,68,.08);color:#ef4444}.portal-shortcut-card{display:grid;grid-gap:.75rem;gap:.75rem;padding:1.2rem}.portal-shortcut-card.is-disabled{cursor:default}.portal-shortcut-card.is-disabled:hover{border-color:var(--portal-border);box-shadow:0 18px 46px rgba(15,23,42,.04)}.portal-shortcut-card strong{color:var(--portal-text);font-size:.98rem;font-weight:600;letter-spacing:-.02em;display:inline-flex;align-items:center;gap:.45rem;flex-wrap:wrap}.portal-shortcut-card p{margin:0;color:var(--portal-muted);line-height:1.6}.portal-coming-soon-card{display:grid;grid-gap:1rem;gap:1rem;padding:1.35rem 1.4rem;border:1px dashed color-mix(in srgb,var(--portal-border) 84%,var(--portal-text) 16%);border-radius:var(--portal-radius-xl);background:color-mix(in srgb,var(--portal-canvas) 84%,var(--portal-surface-strong) 16%)}.portal-coming-soon-card.compact{padding:1.1rem 1.15rem}.portal-coming-soon-head{display:flex;align-items:flex-start;gap:.9rem}.portal-coming-soon-icon{width:2.35rem;height:2.35rem;display:inline-flex;align-items:center;justify-content:center;border-radius:16px;background:color-mix(in srgb,var(--portal-canvas) 72%,var(--portal-surface-strong) 28%);color:var(--portal-text);flex-shrink:0}.portal-coming-soon-copy{display:grid;grid-gap:.35rem;gap:.35rem;min-width:0}.portal-coming-soon-copy span{color:var(--portal-muted);font-size:var(--portal-font-eyebrow);font-weight:700;letter-spacing:.12em;text-transform:uppercase}.portal-coming-soon-copy h2{margin:0;color:var(--portal-text);font-size:1.02rem;font-weight:600;letter-spacing:-.03em}.portal-coming-soon-copy p,.portal-coming-soon-note{margin:0;color:var(--portal-muted);line-height:1.7}.portal-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-metric-card{display:grid;grid-gap:.7rem;gap:.7rem}.portal-metric-card.tone-amber{border-color:rgba(245,158,11,.44);background:linear-gradient(180deg,rgba(255,248,232,.78),var(--portal-surface-strong))}.portal-metric-button,.portal-primary-button,.portal-thread-send{min-height:var(--portal-button-md);display:inline-flex;align-items:center;justify-content:center;gap:var(--portal-space-xs);padding:0 1rem;border-radius:var(--portal-radius-full);background:var(--surface-inverse);color:var(--primary-button-text);font-size:.88rem;font-weight:600;transition:opacity var(--portal-duration-fast) var(--portal-ease)}.portal-primary-button:hover,.portal-thread-send:hover{opacity:.85}.portal-metric-button{justify-self:start}.portal-table-card{display:grid}.portal-table-head,.portal-table-row{display:grid;align-items:center;grid-gap:1rem;gap:1rem}.portal-table-head{padding:.9rem 1.2rem;border-bottom:1px solid var(--portal-border)}.portal-table-head-invoices,.portal-table-row-invoices{grid-template-columns:minmax(0,1.65fr) minmax(190px,.9fr) minmax(132px,.42fr)}.portal-table-head-documents,.portal-table-row-documents{grid-template-columns:minmax(0,1.45fr) minmax(130px,.48fr) minmax(110px,.42fr) minmax(120px,.35fr)}.portal-table-body{display:grid}.portal-table-row{padding:1rem 1.2rem;border-top:1px solid var(--portal-border)}.portal-table-row:first-child{border-top:0}.portal-table-amount,.portal-table-cell,.portal-table-cell-end,.portal-table-primary,.portal-table-secondary{display:flex;align-items:center;gap:.75rem;min-width:0}.portal-table-primary>div,.portal-table-secondary{min-width:0}.portal-table-row-invoices .portal-table-secondary{display:grid;justify-items:start;align-content:center;grid-gap:.42rem;gap:.42rem}.portal-table-row-invoices .portal-table-secondary small{display:block;line-height:1.35}.portal-table-head-invoices span:last-child{text-align:right}.portal-table-copy{display:grid;grid-gap:.24rem;gap:.24rem;min-width:0}.portal-table-amount strong,.portal-table-cell strong,.portal-table-primary strong{color:var(--portal-text);font-size:.94rem;font-weight:600;letter-spacing:-.02em}.portal-table-cell,.portal-table-cell-end span,.portal-table-primary span,.portal-table-secondary small{color:var(--portal-muted);font-size:.82rem}.portal-table-cell-end{justify-content:space-between}.portal-table-amount{justify-content:flex-end}.portal-badge{display:inline-flex;align-items:center;min-height:1.45rem;padding:0 .5rem;border-radius:999px;font-size:.66rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.portal-badge.status-pending{background:rgba(251,191,36,.14);color:#c2410c}.portal-badge.status-overdue{background:rgba(239,68,68,.12);color:#dc2626}.portal-badge.status-paid{background:rgba(34,197,94,.12);color:#15803d}.portal-badge.status-draft,.portal-badge.status-sent{background:rgba(59,130,246,.1);color:#2563eb}.portal-table-action{width:2rem;height:2rem;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--portal-border);border-radius:12px;background:color-mix(in srgb,var(--portal-canvas) 84%,var(--portal-surface-strong) 16%);color:var(--portal-text)}.portal-table-action.tone-accent{background:color-mix(in srgb,var(--portal-accent-warm) 72%,var(--portal-surface) 28%);border-color:color-mix(in srgb,var(--portal-accent-warm) 50%,var(--portal-border))}.portal-table-action:disabled{opacity:.5}.portal-table-actions{display:inline-flex;align-items:center;gap:.45rem}.portal-table-row.is-actionable{padding:0}.portal-table-row-button{width:100%;display:grid;grid-column:1/-1;grid-template-columns:inherit;align-items:center;grid-gap:1rem;gap:1rem;padding:1rem 1.2rem;border:0;background:transparent;text-align:left}.portal-table-row.is-actionable:hover .portal-table-row-button{background:color-mix(in srgb,var(--portal-canvas) 84%,var(--portal-surface-strong) 16%)}.portal-filter-bar{justify-content:space-between;gap:1rem}.portal-filter-bar,.portal-filter-chip-row{display:flex;align-items:center;flex-wrap:wrap}.portal-filter-chip-row{gap:.55rem}.portal-filter-chip{min-height:2.45rem;display:inline-flex;align-items:center;gap:.45rem;padding:0 .85rem;border:1px solid var(--portal-border);border-radius:999px;background:var(--portal-surface-strong);color:var(--portal-muted);font-size:.84rem;font-weight:500}.portal-filter-chip.active{background:var(--surface-inverse);color:var(--primary-button-text);border-color:var(--surface-inverse)}.portal-filter-chip small{display:inline-flex;align-items:center;justify-content:center;min-width:1.2rem;height:1.2rem;padding:0 .2rem;border-radius:999px;background:color-mix(in srgb,currentColor 12%,transparent);font-size:.68rem;font-weight:700;letter-spacing:0;text-transform:none}.portal-search-field,.portal-settings-input-shell{min-height:2.7rem;display:flex;align-items:center;gap:.65rem;padding:0 .9rem;border:1px solid var(--portal-border);border-radius:999px;background:var(--portal-surface-strong);color:var(--portal-muted)}.portal-search-field{min-width:min(100%,270px)}.portal-search-field input,.portal-settings-input-shell input{width:100%;min-width:0;padding:0;border:0;background:transparent;color:var(--portal-text);box-shadow:none}.portal-search-field input:focus,.portal-settings-input-shell input:focus{outline:none}.portal-messages-layout{display:grid;grid-template-columns:240px minmax(0,1fr);grid-gap:1rem;gap:1rem;align-items:stretch}.portal-thread-list-card,.portal-thread-panel{min-height:640px}.portal-thread-list-card{display:grid;grid-template-rows:auto 1fr;grid-gap:.9rem;gap:.9rem;padding:.8rem}.portal-thread-list{display:grid;align-content:start;grid-gap:.3rem;gap:.3rem}.portal-thread-list-item{display:grid;grid-template-columns:auto minmax(0,1fr);grid-gap:.7rem;gap:.7rem;align-items:center;padding:.8rem;border:1px solid transparent;border-radius:18px;text-align:left}.portal-thread-list-item.active{border-color:var(--portal-border);background:color-mix(in srgb,var(--portal-canvas) 86%,var(--portal-surface-strong) 14%)}.portal-thread-copy{min-width:0}.portal-thread-copy-top{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.portal-thread-copy span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portal-thread-avatar.dark{background:var(--surface-inverse);color:var(--primary-button-text)}.portal-thread-panel{display:grid;grid-template-rows:auto 1fr auto}.portal-ticket-grid,.portal-ticket-layout{display:grid;grid-gap:1rem;gap:1rem}.portal-ticket-layout{grid-template-columns:minmax(0,1.15fr) minmax(320px,.9fr);align-items:flex-start}.portal-ticket-grid{grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);align-items:flex-start}.portal-ticket-composer-card,.portal-ticket-context-card,.portal-ticket-detail-card,.portal-ticket-summary-card,.portal-ticket-thread-card{border:1px solid var(--portal-border);border-radius:var(--portal-radius-xl);background:var(--portal-surface-strong);box-shadow:0 18px 46px rgba(15,23,42,.04)}.portal-ticket-composer-card,.portal-ticket-context-card,.portal-ticket-detail-card,.portal-ticket-summary-card{padding:var(--portal-space-md)}.portal-ticket-composer-card,.portal-ticket-context-card,.portal-ticket-detail-card,.portal-ticket-summary-card,.portal-ticket-thread-card{display:grid;grid-gap:1rem;gap:1rem}.portal-ticket-comment p,.portal-ticket-composer-copy p,.portal-ticket-description,.portal-ticket-meta-copy p,.portal-ticket-summary-card p,.portal-ticket-thread-empty p{margin:0;color:var(--portal-muted);line-height:1.62}.portal-ticket-comment-head,.portal-ticket-composer-head,.portal-ticket-detail-head,.portal-ticket-row-head,.portal-ticket-summary-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.portal-ticket-comment-head strong,.portal-ticket-composer-copy h2,.portal-ticket-detail-head h2,.portal-ticket-meta-copy strong,.portal-ticket-row-copy strong,.portal-ticket-summary-head strong{margin:0;color:var(--portal-text);font-size:1rem;font-weight:600;letter-spacing:-.03em}.portal-ticket-composer-copy,.portal-ticket-meta-copy,.portal-ticket-row-copy,.portal-ticket-summary-copy{display:grid;grid-gap:.3rem;gap:.3rem;min-width:0}.portal-ticket-progress{display:grid;grid-gap:.5rem;gap:.5rem}.portal-ticket-progress-row,.portal-ticket-total-row{display:flex;align-items:center;justify-content:space-between;gap:1rem}.portal-ticket-comment-head span,.portal-ticket-context-card a span,.portal-ticket-progress-note,.portal-ticket-progress-row span,.portal-ticket-row-copy span,.portal-ticket-total-row span{color:var(--portal-muted);font-size:.82rem}.portal-ticket-composer-head{align-items:center}.portal-ticket-composer-icon,.portal-ticket-meta-icon{width:2.25rem;height:2.25rem;display:inline-flex;align-items:center;justify-content:center;border-radius:16px;background:rgba(59,130,246,.1);color:#2563eb;flex-shrink:0}.portal-ticket-form{display:grid;grid-gap:.85rem;gap:.85rem}.portal-ticket-field{display:grid;grid-gap:.45rem;gap:.45rem}.portal-ticket-field span{color:var(--portal-muted);font-size:var(--portal-font-eyebrow);font-weight:600;letter-spacing:.08em;text-transform:uppercase}.portal-ticket-field input,.portal-ticket-field select,.portal-ticket-field textarea{width:100%;border:1px solid var(--portal-border);border-radius:18px;background:color-mix(in srgb,var(--portal-canvas) 86%,var(--portal-surface-strong) 14%);color:var(--portal-text);padding:.9rem 1rem;box-shadow:none}.portal-ticket-field textarea{min-height:144px;resize:vertical}.portal-ticket-field input:focus,.portal-ticket-field select:focus,.portal-ticket-field textarea:focus{outline:none;border-color:color-mix(in srgb,var(--portal-text) 14%,var(--portal-border) 86%)}.portal-ticket-actions{display:flex;align-items:center;justify-content:space-between;gap:.85rem;flex-wrap:wrap}.portal-ticket-actions p{margin:0}.portal-ticket-list{display:grid;grid-gap:.75rem;gap:.75rem}.portal-ticket-row{display:grid;grid-gap:.8rem;gap:.8rem;padding:1rem 1.05rem;border:1px solid var(--portal-border);border-radius:22px;background:color-mix(in srgb,var(--portal-canvas) 80%,var(--portal-surface-strong) 20%)}.portal-ticket-row-head{align-items:center}.portal-ticket-row-meta{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}.portal-ticket-row-footer{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.portal-ticket-status-todo{background:rgba(148,163,184,.16);color:#475569}.portal-ticket-status-progress{background:rgba(59,130,246,.12);color:#2563eb}.portal-ticket-priority-low,.portal-ticket-status-done{background:rgba(34,197,94,.12);color:#15803d}.portal-ticket-priority-urgent{background:rgba(239,68,68,.12);color:#dc2626}.portal-ticket-overage,.portal-ticket-priority-high{background:rgba(245,158,11,.14);color:#c2410c}.portal-ticket-priority-medium{background:rgba(59,130,246,.1);color:#2563eb}.portal-ticket-thread-card{overflow:hidden;grid-template-rows:auto 1fr auto}.portal-ticket-thread-head{padding:.95rem 1.1rem;border-bottom:1px solid var(--portal-border)}.portal-ticket-thread-list{display:grid;grid-gap:.9rem;gap:.9rem;padding:1rem 1.1rem;background:color-mix(in srgb,var(--portal-canvas) 80%,var(--portal-surface-strong) 20%)}.portal-ticket-comment{display:grid;grid-gap:.45rem;gap:.45rem;max-width:86%;padding:.95rem 1rem;border:1px solid var(--portal-border);border-radius:20px;background:var(--portal-surface-strong)}.portal-ticket-comment.outbound{justify-self:end;background:color-mix(in srgb,var(--surface-inverse) 92%,var(--portal-surface-strong) 8%);border-color:color-mix(in srgb,var(--surface-inverse) 92%,transparent)}.portal-ticket-comment.outbound,.portal-ticket-comment.outbound .portal-ticket-comment-head span,.portal-ticket-comment.outbound .portal-ticket-comment-head strong,.portal-ticket-comment.outbound p{color:var(--primary-button-text)}.portal-ticket-comment.inbound{justify-self:start}.portal-ticket-thread-form{display:grid;grid-gap:.85rem;gap:.85rem;padding:1rem 1.1rem 1.1rem;border-top:1px solid var(--portal-border)}.portal-ticket-thread-form textarea{width:100%;min-height:132px;border:1px solid var(--portal-border);border-radius:18px;background:color-mix(in srgb,var(--portal-canvas) 86%,var(--portal-surface-strong) 14%);color:var(--portal-text);padding:.9rem 1rem;resize:vertical;box-shadow:none}.portal-ticket-thread-form textarea:focus{outline:none;border-color:color-mix(in srgb,var(--portal-text) 14%,var(--portal-border) 86%)}.portal-ticket-thread-empty{display:grid;grid-gap:.45rem;gap:.45rem;place-items:center;padding:2.4rem 1.2rem;text-align:center}.portal-thread-panel-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1rem;border-bottom:1px solid var(--portal-border)}.portal-thread-panel-ident{display:flex;align-items:center;gap:.75rem}.portal-thread-panel-ident strong{color:var(--portal-text);font-size:.96rem;font-weight:600}.portal-thread-panel-ident span{color:var(--portal-muted);font-size:.8rem;letter-spacing:0;text-transform:none}.portal-thread-body{display:grid;align-content:start;grid-gap:.8rem;gap:.8rem;padding:1rem;background:color-mix(in srgb,var(--portal-canvas) 78%,var(--portal-surface-strong) 22%)}.portal-bubble-block{display:grid;grid-gap:.35rem;gap:.35rem;max-width:82%}.portal-bubble-block.outbound{justify-self:end}.portal-bubble-block.inbound{justify-self:start}.portal-bubble-author{color:var(--portal-muted);font-size:.7rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.portal-message-bubble{padding:.95rem 1rem;border:1px solid var(--portal-border);border-radius:18px;background:var(--portal-surface-strong);color:var(--portal-text);box-shadow:0 10px 30px rgba(15,23,42,.03)}.portal-message-bubble.outbound{border-color:var(--surface-inverse);background:var(--surface-inverse);color:var(--primary-button-text)}.portal-message-bubble p{margin:0;white-space:pre-wrap;line-height:1.65}.portal-side-empty,.portal-thread-empty{display:grid;grid-gap:.4rem;gap:.4rem;justify-items:start;padding:1rem .2rem .2rem}.portal-list-card-empty .portal-side-empty{min-height:100%;align-content:center;justify-items:center;padding:2rem;border:1px dashed var(--portal-border);border-radius:calc(var(--portal-radius-xl) - 1px);background:color-mix(in srgb,var(--portal-canvas) 42%,transparent);text-align:center}.portal-empty-file-icon{width:2.7rem;height:2.7rem;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--portal-border);border-radius:14px;background:var(--portal-surface-strong);color:var(--portal-muted)}.portal-list-card-empty .portal-side-empty>div{display:grid;grid-gap:.22rem;gap:.22rem}.portal-list-card-empty .portal-side-empty strong{color:var(--portal-text);font-size:.92rem;font-weight:600;letter-spacing:-.02em}.portal-list-card-empty .portal-side-empty p{max-width:18rem;font-size:.84rem;line-height:1.5}.portal-thread-empty strong{color:var(--portal-text);font-size:.96rem;font-weight:600}.portal-thread-composer{display:grid;grid-gap:.75rem;gap:.75rem;padding:.9rem 1rem 1rem;border-top:1px solid var(--portal-border)}.portal-thread-subject{min-height:2.7rem;padding:0 .95rem;border:1px solid var(--portal-border);border-radius:16px;background:var(--portal-surface-strong)}.portal-thread-composer-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:.75rem;gap:.75rem;align-items:end}.portal-thread-composer-row textarea{min-height:3.35rem;padding:.95rem 1rem;border:1px solid var(--portal-border);border-radius:18px;background:var(--portal-surface-strong);resize:vertical}.portal-thread-send{width:2.75rem;padding:0}.portal-thread-load-more{justify-self:start;min-height:2.5rem}.portal-thread-loading{margin:0;color:var(--portal-muted);font-size:.88rem}.portal-primary-button:disabled,.portal-thread-send:disabled{opacity:.55}.portal-toast-viewport{position:fixed;right:1.25rem;bottom:1.25rem;z-index:80;display:grid;grid-gap:.6rem;gap:.6rem;width:min(24rem,calc(100vw - 2.5rem));pointer-events:none}.portal-toast{pointer-events:auto;display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-gap:.85rem;gap:.85rem;align-items:start;padding:.95rem 1rem;border:1px solid var(--portal-border);border-radius:18px;background:color-mix(in srgb,var(--portal-surface-strong) 90%,var(--portal-canvas) 10%);box-shadow:0 20px 50px rgba(15,23,42,.16);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.portal-toast.tone-success{border-color:color-mix(in srgb,#15803d 24%,var(--portal-border) 76%)}.portal-toast.tone-error{border-color:color-mix(in srgb,#dc2626 24%,var(--portal-border) 76%)}.portal-toast-icon{display:grid;place-items:center;width:1.7rem;height:1.7rem;border-radius:999px;background:color-mix(in srgb,var(--portal-canvas) 84%,var(--portal-surface-strong) 16%);color:var(--portal-text)}.portal-toast.tone-success .portal-toast-icon{background:rgba(22,163,74,.12);color:#15803d}.portal-toast.tone-error .portal-toast-icon{background:rgba(220,38,38,.12);color:#dc2626}.portal-toast-copy{display:grid;grid-gap:.2rem;gap:.2rem;min-width:0}.portal-toast-copy strong{color:var(--portal-text);font-size:.92rem;font-weight:600}.portal-toast-copy p{margin:0;color:var(--portal-muted);font-size:.86rem;line-height:1.45}.portal-toast-dismiss{display:grid;place-items:center;width:1.7rem;height:1.7rem;border-radius:999px;color:var(--portal-muted);cursor:pointer}.portal-toast-dismiss:hover{background:color-mix(in srgb,var(--portal-canvas) 84%,var(--portal-surface-strong) 16%);color:var(--portal-text)}.portal-thread-body .portal-bubble-block:first-child{margin-top:.1rem}.portal-settings-layout{grid-template-columns:190px minmax(0,1fr);align-items:start}.portal-settings-nav{display:grid;grid-gap:.3rem;gap:.3rem;padding:.7rem}.portal-settings-stack{display:grid;grid-gap:1rem;gap:1rem}.portal-settings-nav-item{display:inline-flex;align-items:center;gap:.6rem;min-height:2.55rem;padding:0 .75rem;border-radius:14px;color:var(--portal-text);font-size:.9rem;font-weight:500}.portal-settings-nav-button{width:100%;justify-content:flex-start;background:transparent;border:0}.portal-settings-nav-item.active{border:1px solid var(--portal-border);background:color-mix(in srgb,var(--portal-canvas) 86%,var(--portal-surface-strong) 14%)}.portal-settings-card{display:grid;grid-gap:1.35rem;gap:1.35rem}.portal-settings-card-head{display:flex;align-items:center;justify-content:space-between;gap:1rem}.portal-settings-card h2{font-size:1.2rem}.portal-settings-avatar-block{display:flex;align-items:center;justify-content:flex-end}.portal-settings-avatar{width:3.6rem;height:3.6rem;font-size:1.15rem}.portal-settings-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:1rem;gap:1rem}.portal-settings-field{display:grid;grid-gap:.45rem;gap:.45rem}.portal-settings-field-wide{grid-column:1/-1}.portal-settings-field>span{letter-spacing:0;text-transform:none}.portal-settings-field input{width:100%}.portal-settings-actions{display:flex;justify-content:flex-end}.portal-settings-readonly-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:1rem;gap:1rem}.portal-settings-readonly-item{display:grid;grid-gap:.45rem;gap:.45rem}.portal-settings-readonly-item>span{color:var(--portal-muted);font-size:var(--portal-font-eyebrow);font-weight:600;letter-spacing:.08em;text-transform:uppercase}.portal-settings-readonly-item-wide{grid-column:1/-1}.portal-settings-static-shell{min-height:3.25rem;display:inline-flex;align-items:center;gap:.7rem;padding:.95rem 1rem;border:1px solid var(--portal-border);border-radius:18px;background:color-mix(in srgb,var(--portal-canvas) 86%,var(--portal-surface-strong) 14%);color:var(--portal-text)}.portal-settings-static-shell strong{font-size:.96rem;font-weight:500;white-space:pre-wrap}.portal-settings-static-shell-multiline{min-height:4.4rem;align-items:flex-start}.portal-settings-support-card{display:grid;grid-gap:.4rem;gap:.4rem;padding:1.1rem 1.15rem;border:1px dashed var(--portal-border);border-radius:20px;background:color-mix(in srgb,var(--portal-canvas) 92%,var(--portal-surface-strong) 8%)}.portal-settings-support-copy{display:grid;grid-gap:.2rem;gap:.2rem}.portal-settings-support-copy span{color:var(--portal-text);font-size:.92rem;font-weight:600}.portal-settings-support-copy p{margin:0;color:var(--portal-muted)}.portal-settings-support-copy a{color:var(--portal-text);text-decoration:underline;text-underline-offset:.16em}.portal-request-layout{grid-template-columns:minmax(260px,.84fr) minmax(0,1.16fr);align-items:start}.portal-request-aside,.portal-request-layout,.portal-request-panel{display:grid;grid-gap:1rem;gap:1rem}.portal-request-points{display:grid;grid-gap:.85rem;gap:.85rem}.portal-request-point{display:grid;grid-template-columns:auto minmax(0,1fr);grid-gap:.85rem;gap:.85rem;align-items:start}.portal-request-point strong{display:block;margin-bottom:.18rem;font-size:.94rem}.portal-request-point p{margin:0;color:var(--portal-muted);font-size:.92rem;line-height:1.55}.portal-request-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:1rem;gap:1rem}.portal-request-actions{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.portal-request-confirmation{display:grid;grid-gap:1rem;gap:1rem}.portal-request-confirmation-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:1rem;gap:1rem}.portal-request-empty-state{display:grid;grid-gap:1rem;gap:1rem;justify-items:start}.form-success{margin:0;color:#15803d;font-size:.9rem;font-weight:500}[data-theme=dark] .portal-shell[data-portal-theme=light] .portal-account-panel,[data-theme=dark] .portal-shell[data-portal-theme=light] .portal-list-card,[data-theme=dark] .portal-shell[data-portal-theme=light] .portal-metric-card,[data-theme=dark] .portal-shell[data-portal-theme=light] .portal-settings-card,[data-theme=dark] .portal-shell[data-portal-theme=light] .portal-settings-nav,[data-theme=dark] .portal-shell[data-portal-theme=light] .portal-shortcut-card,[data-theme=dark] .portal-shell[data-portal-theme=light] .portal-sidebar,[data-theme=dark] .portal-shell[data-portal-theme=light] .portal-table-card,[data-theme=dark] .portal-shell[data-portal-theme=light] .portal-thread-list-card,[data-theme=dark] .portal-shell[data-portal-theme=light] .portal-thread-panel{background:var(--portal-surface-strong);color:var(--portal-text)}.portal-shell[data-portal-theme=dark] .portal-filter-chip.active,.portal-shell[data-portal-theme=dark] .portal-message-bubble.outbound,.portal-shell[data-portal-theme=dark] .portal-metric-button,.portal-shell[data-portal-theme=dark] .portal-primary-button,.portal-shell[data-portal-theme=dark] .portal-sidebar-mark,.portal-shell[data-portal-theme=dark] .portal-thread-send{background:var(--surface-inverse);color:var(--primary-button-text)}.portal-shell[data-portal-theme=dark] .portal-filter-chip.active{border-color:var(--surface-inverse)}.portal-shell[data-portal-theme=dark] .portal-action-card.tone-invoice,.portal-shell[data-portal-theme=dark] .portal-metric-card.tone-amber{border-color:rgba(245,158,11,.34);background:linear-gradient(180deg,rgba(245,158,11,.14),rgba(245,158,11,.03) 52%,rgba(17,17,20,.96)),var(--portal-surface-strong)}.portal-shell[data-portal-theme=dark] .portal-action-icon.tone-invoice,.portal-shell[data-portal-theme=dark] .portal-table-icon.tone-amber{background:rgba(245,158,11,.16);color:#f59e0b}.portal-shell[data-portal-theme=dark] .portal-badge.status-pending{background:rgba(245,158,11,.16);color:#fbbf24}.portal-shell[data-portal-theme=dark] .portal-badge.status-overdue{background:rgba(239,68,68,.16);color:#f87171}.portal-shell[data-portal-theme=dark] .portal-badge.status-paid{background:rgba(34,197,94,.16);color:#4ade80}.portal-shell[data-portal-theme=dark] .portal-badge.status-draft,.portal-shell[data-portal-theme=dark] .portal-badge.status-sent{background:rgba(59,130,246,.16);color:#93c5fd}.portal-shell[data-portal-theme=dark] .portal-settings-avatar,.portal-shell[data-portal-theme=dark] .portal-thread-avatar.dark{background:var(--surface-inverse);color:var(--primary-button-text)}.portal-content .client-portal-page.project-detail{padding-top:2.4rem}@media (max-width:1180px){.portal-content .client-portal-page,.portal-page{padding-inline:1.8rem}.portal-settings-layout,.portal-split-grid,.portal-ticket-layout{grid-template-columns:1fr}.portal-shortcuts-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.client-portal-project-layout{grid-template-columns:1fr}.client-portal-project-side{order:-1}}@media (max-width:960px){.portal-app-shell{grid-template-columns:1fr}.portal-sidebar{position:static;min-height:0;grid-template-rows:auto auto auto auto;padding-bottom:1rem;border-right:0;border-bottom:1px solid var(--portal-border)}.portal-sidebar-nav{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.portal-sidebar-footer{padding-top:.75rem}.portal-account-panel{left:1rem;right:1rem;bottom:1rem;width:auto;transform-origin:bottom center}.portal-content .client-portal-page,.portal-page{padding:1.6rem 1.25rem 2rem;gap:1.8rem}.portal-filter-bar,.portal-page-head.portal-page-head-with-action,.portal-page-section-head-between,.portal-settings-card-head{grid-template-columns:1fr;align-items:start}.portal-action-grid,.portal-messages-layout,.portal-metric-grid,.portal-project-card-footer,.portal-request-confirmation-meta,.portal-request-form-grid,.portal-request-layout,.portal-settings-form-grid,.portal-settings-readonly-grid,.portal-shortcuts-grid,.portal-ticket-grid{grid-template-columns:1fr}.portal-thread-list-card,.portal-thread-panel{min-height:0}.portal-ticket-comment{max-width:92%}.portal-message-bubble{max-width:88%}}@media (max-width:720px){.portal-page-copy h1{font-size:clamp(2.15rem,10vw,2.7rem);letter-spacing:-.04em}.portal-sidebar-nav{grid-template-columns:1fr 1fr}.portal-table-head{display:none}.portal-table-row,.portal-table-row-documents,.portal-table-row-invoices{grid-template-columns:1fr;align-items:start;gap:.5rem;padding:1rem}.portal-table-amount,.portal-table-cell-end{justify-content:flex-start}.portal-table-actions{flex-wrap:wrap}.portal-thread-composer-row{grid-template-columns:1fr}.portal-primary-button,.portal-thread-send{width:100%}.portal-ticket-comment{max-width:96%}.portal-message-bubble{max-width:94%}.portal-action-card,.portal-metric-card,.portal-settings-card,.portal-ticket-composer-card,.portal-ticket-context-card,.portal-ticket-detail-card,.portal-ticket-summary-card{padding:1.1rem}.client-portal-hero h1,.client-portal-project-hero h1{font-size:clamp(2rem,8vw,2.5rem)}.client-portal-concierge-card{padding:1.1rem}}@media (prefers-reduced-motion:reduce){.portal-shell,.portal-shell *{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.portal-shell :focus-visible{outline:2px solid color-mix(in srgb,var(--surface-inverse) 50%,transparent);outline-offset:2px;border-radius:var(--portal-radius-xs)}.portal-shell a:focus-visible,.portal-shell button:focus-visible{outline-offset:3px}.client-portal-attention-card,.client-portal-brief-card,.client-portal-project-card,.portal-project-card,.portal-shortcut-card,.portal-table-row-documents.is-actionable,.portal-table-row-invoices.is-actionable,.portal-table-row.is-actionable{transition:border-color var(--portal-duration-fast) var(--portal-ease),box-shadow var(--portal-duration-fast) var(--portal-ease),transform var(--portal-duration-fast) var(--portal-ease)}.client-portal-attention-card:hover,.client-portal-project-card:hover,.portal-project-card:hover,.portal-shortcut-card:not(.is-disabled):hover{border-color:color-mix(in srgb,var(--portal-border) 60%,var(--surface-inverse) 12%);box-shadow:0 18px 46px rgba(15,23,42,.08)}.portal-table-row-documents.is-actionable:hover,.portal-table-row-invoices.is-actionable:hover,.portal-table-row.is-actionable:hover{background:color-mix(in srgb,var(--portal-canvas) 70%,var(--portal-surface-strong) 30%)}@media (max-width:960px){.portal-topbar{flex-direction:row;flex-wrap:wrap;align-items:center}.portal-brand{width:auto;min-width:0}.portal-topbar-actions{width:auto;margin-left:auto}.portal-main{width:100%;padding:1.25rem 1rem 2rem}.portal-action-grid,.portal-archive-grid,.portal-overview-stats,.portal-project-grid,.portal-project-layout{grid-template-columns:1fr}.portal-section-head-between{grid-template-columns:1fr;align-items:start}.portal-project-card{min-height:auto}.portal-project-side{grid-template-columns:1fr}}@media (max-width:1180px){.client-portal-attention-grid,.client-portal-project-grid,.client-portal-project-layout{grid-template-columns:1fr}}@media (max-width:960px){.client-portal-concierge-actions,.client-portal-file-row,.client-portal-invoice-top,.client-portal-progress-head,.client-portal-project-top,.client-portal-topbar{align-items:flex-start;flex-direction:column}.client-portal-topbar{gap:.8rem}.client-portal-topbar-actions{width:100%;justify-content:space-between}.client-portal-context-label{display:none}.client-portal-account-menu{width:min(260px,calc(100vw - 32px))}}@media (max-width:720px){.client-portal-page{padding:32px 20px 56px;gap:28px}.client-portal-hero h1,.client-portal-project-hero h1{font-size:2.6rem}.client-portal-attention-card,.client-portal-concierge-card,.client-portal-progress-card,.client-portal-project-card,.client-portal-side-panel,.client-portal-timeline-card{border-radius:20px}.client-portal-attention-card,.client-portal-concierge-card,.client-portal-progress-card,.client-portal-project-card,.client-portal-side-panel{padding:1.1rem}.client-portal-progress-head strong,.client-portal-project-copy h2{font-size:1.9rem}.client-portal-concierge-button,.client-portal-ghost-button,.client-portal-inverse-button,.client-portal-invoice-button{width:100%}}[data-theme=dark] .portal-account-chip,[data-theme=dark] .portal-topbar{background:rgba(20,20,20,.92)}[data-theme=dark] .portal-shell[data-portal-theme=light] .badge,[data-theme=dark] .portal-shell[data-portal-theme=light] .empty-state,[data-theme=dark] .portal-shell[data-portal-theme=light] .icon-button,[data-theme=dark] .portal-shell[data-portal-theme=light] .loading-block,[data-theme=dark] .portal-shell[data-portal-theme=light] .portal-account-chip,[data-theme=dark] .portal-shell[data-portal-theme=light] .portal-topbar,[data-theme=dark] .portal-shell[data-portal-theme=light] .search-shell,[data-theme=dark] .portal-shell[data-portal-theme=light] .secondary-button,[data-theme=dark] .portal-shell[data-portal-theme=light] .surface-card,[data-theme=dark] .portal-shell[data-portal-theme=light] .surface-row,[data-theme=dark] .portal-shell[data-portal-theme=light] .theme-toggle,[data-theme=dark] .portal-shell[data-portal-theme=light] input,[data-theme=dark] .portal-shell[data-portal-theme=light] select,[data-theme=dark] .portal-shell[data-portal-theme=light] textarea{background:var(--portal-surface);color:var(--portal-text);box-shadow:none}[data-theme=dark] .portal-shell[data-portal-theme=light] .client-portal-account-menu,[data-theme=dark] .portal-shell[data-portal-theme=light] .client-portal-attention-card,[data-theme=dark] .portal-shell[data-portal-theme=light] .client-portal-concierge-card,[data-theme=dark] .portal-shell[data-portal-theme=light] .client-portal-progress-card,[data-theme=dark] .portal-shell[data-portal-theme=light] .client-portal-project-card,[data-theme=dark] .portal-shell[data-portal-theme=light] .client-portal-side-panel,[data-theme=dark] .portal-shell[data-portal-theme=light] .client-portal-timeline-card,[data-theme=dark] .portal-shell[data-portal-theme=light] .portal-account-popover,[data-theme=dark] .portal-shell[data-portal-theme=light] .portal-action-card,[data-theme=dark] .portal-shell[data-portal-theme=light] .portal-concierge-card,[data-theme=dark] .portal-shell[data-portal-theme=light] .portal-progress-card,[data-theme=dark] .portal-shell[data-portal-theme=light] .portal-project-card,[data-theme=dark] .portal-shell[data-portal-theme=light] .portal-project-footer,[data-theme=dark] .portal-shell[data-portal-theme=light] .portal-side-card,[data-theme=dark] .portal-shell[data-portal-theme=light] .portal-timeline-wrap{background:var(--portal-surface-strong);color:var(--portal-text)}[data-theme=dark] .portal-shell[data-portal-theme=light] .client-portal-account-avatar,[data-theme=dark] .portal-shell[data-portal-theme=light] .client-portal-account-button,[data-theme=dark] .portal-shell[data-portal-theme=light] .client-portal-brand-copy,[data-theme=dark] .portal-shell[data-portal-theme=light] .client-portal-progress-head strong,[data-theme=dark] .portal-shell[data-portal-theme=light] .client-portal-project-copy h2,[data-theme=dark] .portal-shell[data-portal-theme=light] .portal-archive-row strong,[data-theme=dark] .portal-shell[data-portal-theme=light] .portal-message-card strong,[data-theme=dark] .portal-shell[data-portal-theme=light] .portal-overview-copy h1,[data-theme=dark] .portal-shell[data-portal-theme=light] .portal-project-hero h1,[data-theme=dark] .portal-shell[data-portal-theme=light] .portal-side-row-copy strong{color:var(--portal-text)}@media (max-width:1180px){.portal-grid{grid-template-columns:1fr}}@media (max-width:760px){.portal-topbar{flex-direction:column;align-items:flex-start}.portal-main{padding-inline:1rem}.portal-topbar{gap:.9rem}.portal-brand{width:100%}.portal-topbar-actions{width:100%;justify-content:space-between}.portal-account-menu{margin-left:auto}.portal-account-chip{width:auto}}