/* Standalone portal styles: no marketing assets or external dependencies. */
:root { color-scheme: light; --paper:#fff; --surface:#f5f5f5; --ink:#202020; --muted:#606060; --line:#dedede; --radius:8px; font-family:Arial,Helvetica,sans-serif; font-size:16px; color:var(--ink); background:var(--paper); font-synthesis:none; }
*,*::before,*::after { box-sizing:border-box; }
body { margin:0; line-height:1.6; -webkit-font-smoothing:antialiased; }
h1,h2,h3,p,dl,dd { margin:0; }
h1,h2,h3 { font-weight:500; line-height:1.2; overflow-wrap:anywhere; }
h1 { font-size:clamp(32px,4vw,52px); letter-spacing:-.045em; }
h2 { font-size:26px; letter-spacing:-.025em; }
h3 { font-size:17px; line-height:1.4; }
a { color:inherit; text-underline-offset:4px; }
a:hover { text-decoration:underline; }
button,input,select,textarea { font:inherit; }
a,button,summary { touch-action:manipulation; }
:focus-visible { outline:2px solid var(--ink); outline-offset:5px; }
[tabindex="-1"]:focus { outline:none; }
[hidden] { display:none !important; }
button,.button { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:48px; padding:13px 24px; border:1px solid var(--ink); border-radius:var(--radius); background:var(--ink); color:var(--paper); font-size:14px; line-height:1.4; font-weight:500; text-decoration:none; cursor:pointer; }
.ui-icon { display:inline-block; width:18px; height:18px; flex:0 0 18px; vertical-align:middle; }
.auth-intro>a,.help-strip>a,.file-actions a,.contact-details a,.portal-navigation>a { display:inline-flex; align-items:center; gap:10px; min-height:44px; font-size:13px; line-height:1.5; font-weight:500; }
button:hover,.button:hover { background:#383838; text-decoration:none; }
.button-outline { background:var(--paper); color:var(--ink); border-color:#bcbcbc; }
.button-outline:hover { background:var(--surface); border-color:#888; }
.button-plain { color:var(--ink); border-color:transparent; background:none; }
.button-plain:hover { background:var(--surface); }
button:disabled { background:#e9e9e9; color:var(--muted); border-color:var(--line); cursor:wait; }
.button-group { display:flex; flex-wrap:wrap; align-items:center; gap:12px; }
.skip-link { position:fixed; z-index:10; top:12px; left:12px; padding:12px 20px; background:var(--ink); color:var(--paper); transform:translateY(-160%); }
.skip-link:focus { transform:translateY(0); }
.site-header { border-bottom:1px solid var(--line); }
.header-inner,main,.site-footer { width:min(1200px,calc(100% - 64px)); margin-inline:auto; }
.header-inner { min-height:90px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.site-header { position:relative; z-index:5; }
.header-inner { width:min(1200px,calc(100% - 2 * clamp(24px,4.5vw,64px))); }
.brand { display:flex; align-items:center; gap:20px; text-decoration:none; }
.brand .wordmark { font-size:27px; line-height:1; font-weight:600; letter-spacing:-1.6px; white-space:nowrap; }
.brand .wordmark span { font-weight:400; }
.brand .brand-context { border-left:1px solid var(--line); padding-left:20px; font-size:13px; font-weight:400; letter-spacing:0; color:var(--muted); }
.portal-navigation { display:flex; align-items:center; gap:32px; }
.portal-navigation>a { display:inline-flex; align-items:center; min-height:44px; font-size:14px; text-decoration:none; }
.portal-navigation>a[aria-current="page"] { text-decoration:underline; text-decoration-thickness:2px; text-underline-offset:8px; }
.portal-navigation form { margin:0; }
.menu-toggle { display:none; }
main { min-height:calc(100vh - 209px); padding-block:56px 72px; }
.site-footer { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px; padding-block:28px; border-top:1px solid var(--line); color:var(--muted); font-size:12px; }
.page-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:28px; margin-bottom:40px; }
.page-heading p { margin-top:16px; color:var(--muted); }
.page-heading>.button { flex-shrink:0; }
.card { border:1px solid var(--line); border-radius:var(--radius); padding:32px; background:var(--paper); margin-bottom:24px; min-width:0; }
.card>h2 { margin-bottom:24px; }
.card>p { margin-block:16px; }
.grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.grid>.card { margin-bottom:24px; }
.muted,.meta,.caption { color:var(--muted); }
.meta { font-size:13px; margin-block:8px 12px; }
.caption { font-size:12px; line-height:1.7; }
.prose { white-space:pre-wrap; overflow-wrap:anywhere; font-size:14px; line-height:1.8; }
.badge { display:inline-flex; border:1px solid var(--line); border-radius:5px; padding:5px 10px; background:var(--surface); font-size:12px; line-height:1.5; text-transform:capitalize; overflow-wrap:anywhere; max-width:100%; }
.onboarding { display:grid; grid-template-columns:1fr 1.35fr; gap:40px; border:1px solid var(--line); border-radius:var(--radius); background:var(--surface); padding:32px; margin-bottom:32px; }
.onboarding p { margin-top:12px; color:var(--muted); font-size:14px; }
.tour-steps { padding-left:22px; margin:0 0 24px; font-size:14px; }
.tour-steps li { padding-left:8px; margin-bottom:8px; }
.projects { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:24px; }
.projects a { flex:0 1 auto; min-width:0; max-width:100%; min-height:44px; padding:10px 16px; border:1px solid var(--line); border-radius:var(--radius); color:var(--muted); font-size:14px; text-decoration:none; overflow-wrap:anywhere; }
.projects a[aria-current="page"] { background:var(--ink); color:var(--paper); border-color:var(--ink); }
.projects a:hover { border-color:var(--ink); text-decoration:underline; }
.notice { background:var(--surface); border:1px solid #aaa; border-radius:var(--radius); padding:16px 20px; font-size:14px; overflow-wrap:anywhere; margin-bottom:24px; }
.project-overview { display:grid; grid-template-columns:1.6fr 1fr; padding:0; }
.project-intro { padding:32px; min-width:0; }
.section-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; }
.section-heading .badge { flex-shrink:0; max-width:45%; }
.progress-heading { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-top:32px; font-size:14px; }
progress { display:block; width:100%; height:8px; border:0; border-radius:4px; overflow:hidden; background:var(--line); accent-color:var(--ink); margin:14px 0; }
progress::-webkit-progress-bar { background:var(--line); }
progress::-webkit-progress-value { background:var(--ink); }
progress::-moz-progress-bar { background:var(--ink); }
.project-dates { border-left:1px solid var(--line); padding:16px 32px; background:var(--surface); border-radius:0 var(--radius) var(--radius) 0; }
.project-dates>div { padding-block:16px; }
dt { color:var(--muted); font-size:12px; margin-bottom:5px; }
dd { font-size:14px; overflow-wrap:anywhere; }
.timeline { list-style:none; padding:0; margin:0; }
.timeline li { position:relative; margin-left:6px; padding:0 0 28px 28px; border-left:1px solid var(--line); }
.timeline li::before { position:absolute; content:''; left:-6px; top:6px; width:11px; height:11px; border:1px solid #888; border-radius:50%; background:var(--paper); }
.timeline li.phase-done::before { border-color:var(--ink); background:var(--ink); }
.timeline li.phase-current::before { border:3px solid var(--ink); }
.timeline li:last-child { padding-bottom:0; border-left-color:transparent; }
.timeline li.empty-state { border:0; margin:0; padding:20px; }
.timeline li.empty-state::before { display:none; }
.file-list { list-style:none; padding:0; margin:0; }
.file-list>li,.updates>article { padding-block:22px; border-bottom:1px solid var(--line); }
.file-list>li:first-child,.updates>article:first-child { padding-top:0; }
.file-list>li:last-child,.updates>article:last-child { border-bottom:0; }
.file-actions { display:flex; flex-wrap:wrap; gap:24px; margin-top:10px; }
.file-actions a { display:inline-flex; align-items:center; gap:12px; min-height:44px; font-size:13px; }
.empty-state { background:var(--surface); border-radius:5px; padding:20px; color:var(--muted); font-size:14px; }
.file-list>li.empty-state { padding:20px; }
.updates h3 { margin-bottom:12px; }
.team-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.team-grid .badge { margin-top:12px; }
.team-grid>.empty-state { grid-column:1/-1; }
.empty-project { text-align:center; padding:64px 32px; }
.empty-project h2 { font-size:clamp(28px,3vw,40px); }
.empty-project>p { max-width:560px; margin:20px auto 28px; color:var(--muted); }
.empty-project .button-group { justify-content:center; }
.help-strip { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:16px; margin-top:32px; font-size:14px; }
.help-strip p { color:var(--muted); }
.auth-layout { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:80px; padding-block:32px; }
.auth-intro h1 { font-size:clamp(44px,5.5vw,72px); white-space:pre-line; line-height:1.07; }
.auth-intro p { max-width:360px; color:var(--muted); margin-block:28px 32px; }
.auth-intro>a { font-size:13px; }
.auth-card { padding:40px; margin:0; }
.auth-card>p,.support-form-panel>p { color:var(--muted); font-size:14px; }
.auth-card h2 { font-size:32px; margin-bottom:16px; }
.stacked-form { display:grid; gap:22px; margin-top:28px; }
label { display:block; font-size:13px; margin-bottom:8px; }
input:not([type="hidden"]),select,textarea { width:100%; min-width:0; padding:13px 14px; border:1px solid #858585; border-radius:5px; background:var(--paper); color:var(--ink); font-size:16px; line-height:1.6; }
textarea { resize:vertical; min-height:160px; }
input#code { letter-spacing:.3em; font-size:24px; }
.stacked-form>button { width:100%; }
.stacked-form .caption { margin-top:8px; }
.form-feedback { font-size:14px; overflow-wrap:anywhere; }
.form-feedback:empty { margin:0; }
.auth-help { border-top:1px solid var(--line); padding-top:24px; margin-top:28px !important; }
.verification-actions { margin-top:20px; }
.support-layout { display:grid; grid-template-columns:1fr 1.15fr; gap:80px; border-top:1px solid var(--line); padding-top:48px; }
.support-aside>section>p { margin-top:20px; max-width:360px; font-size:14px; color:var(--muted); }
.contact-details { margin-top:24px; }
.contact-details>div { border-bottom:1px solid var(--line); padding-block:20px; }
.contact-details a { display:inline-flex; min-height:32px; align-items:center; gap:16px; }
.faq { margin-top:48px; }
.faq h2 { margin-bottom:24px; }
details { border-top:1px solid var(--line); padding-block:16px; }
summary { cursor:pointer; font-size:14px; padding:6px 0; }
details p { color:var(--muted); font-size:14px; padding:12px 0 0; }
.narrow { max-width:640px; margin-inline:auto; }
.signout-card { margin-block:40px; padding:48px; }
.signout-card h1 { font-size:36px; }
.signout-card>p { color:var(--muted); margin-block:24px 32px; }
@media(max-width:999px) { .auth-layout,.support-layout { gap:40px; } .auth-card { padding:28px; } .team-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .brand { gap:12px; } .brand .brand-context { padding-left:12px; } .portal-navigation { gap:20px; } }
@media(max-width:999px) {
 .header-inner { min-height:76px; }
 .menu-toggle:not([hidden]) { display:inline-flex; min-height:44px; padding:8px 12px; }
 .portal-navigation { position:absolute; top:100%; left:0; right:0; background:var(--paper); padding:20px clamp(24px,4.5vw,64px); border-bottom:1px solid var(--line); flex-wrap:wrap; gap:16px 24px; }
}
@media(max-width:699px) {
 .header-inner,main,.site-footer { width:calc(100% - 40px); }
 .header-inner { min-height:72px; padding-block:0; gap:12px; width:calc(100% - 48px); }
 .brand .brand-context { display:none; }
 .brand { font-size:20px; } .brand .brand-context { font-size:12px; }
 .menu-toggle:not([hidden]) { display:inline-flex; min-height:44px; padding:8px 12px; }
 .portal-navigation { width:100%; flex-wrap:wrap; gap:12px 24px; padding-top:12px; border-top:1px solid var(--line); }
 .portal-navigation form { margin-left:auto; }
 main { padding-block:36px 48px; }
 .page-heading { display:block; margin-bottom:28px; } .page-heading>.button { margin-top:24px; }
 .onboarding,.grid,.project-overview,.auth-layout,.support-layout,.team-grid { grid-template-columns:1fr; }
 .onboarding { gap:24px; padding:24px; }
 .card { padding:24px; } .grid { gap:0; }
 .project-overview { padding:0; } .project-intro { padding:24px; }
 .project-dates { padding:8px 24px; border-left:0; border-top:1px solid var(--line); border-radius:0 0 var(--radius) var(--radius); }
 .project-dates>div { padding-block:12px; }
 .section-heading { flex-wrap:wrap; gap:12px; } .section-heading .badge { max-width:100%; }
 .auth-layout { gap:32px; padding-block:0; } .auth-intro h1 { font-size:44px; } .auth-intro p { margin-block:20px; }
 .auth-card { padding:24px; } .support-layout { padding-top:32px; gap:40px; }
 .support-form-panel { order:-1; margin:0; } .faq { margin-top:32px; }
 .signout-card { margin-block:16px; } .signout-card h1 { font-size:32px; }
 .empty-project { padding-block:40px; } .help-strip { align-items:flex-start; }
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto !important; } }
