@font-face{font-family:Lexend Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/lexend-vietnamese-wght-normal-RvljkFvg.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Lexend Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/lexend-latin-ext-wght-normal-B6JQhE1e.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Lexend Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/lexend-latin-wght-normal-ci0D1wrL.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ink: #2f2e2e;--ink-soft: #625b50;--brand: #171717;--brand-bright: #765c00;--accent: #fecb00;--accent-hover: #eebe00;--surface: #ffffff;--page: #fff8f0;--line: #d8d0c4;--positive: #1f7a4d;--attention: #765000;--danger: #a5262a;--neutral: #686055;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;color-scheme:light}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;font-family:Lexend,Segoe UI Variable,Segoe UI,sans-serif;color:var(--ink);background:var(--page);line-height:1.5}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--brand-bright);outline-offset:3px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;left:-999px}.skip-link:focus{display:inline-flex;align-items:center;min-height:44px;left:1rem;top:1rem;background:var(--surface);padding:.5rem .75rem;border-radius:6px;z-index:10}.portal-shell{min-height:100vh;display:flex;flex-direction:column;width:min(72rem,100%);margin:0 auto;padding:0 clamp(1.25rem,4vw,3rem)}.masthead{display:flex;align-items:center;justify-content:space-between;min-height:76px;padding:1rem 0;border-bottom:1px solid var(--line)}.wordmark{display:inline-flex;align-items:center;min-height:44px;gap:.75rem;color:var(--ink);text-decoration:none}.wordmark img{width:104px;height:44px;object-fit:contain}.wordmark-context{padding-left:.75rem;border-left:1px solid #bdb4a6;color:#5f584d;font-size:.7rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase}.environment{color:#5f584d;font-size:.72rem;font-weight:750;letter-spacing:.08em;text-transform:uppercase}.auth-layout{flex:1;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);align-items:center;gap:clamp(3rem,8vw,8rem);padding:clamp(3.5rem,9vw,7.5rem) 0}.auth-intro h1{max-width:12ch;margin:0;font-size:clamp(3.25rem,7vw,6.5rem);font-weight:560;line-height:.96;letter-spacing:-.055em}.auth-intro .lede{max-width:36rem;margin-top:1.75rem;font-size:clamp(1.05rem,2vw,1.25rem);line-height:1.65}.auth-panel{display:grid;gap:2rem;padding:clamp(2rem,4vw,3rem);color:#fff;background:#171717;border:1px solid #353535;border-radius:var(--radius-lg);box-shadow:0 24px 64px #31271233}.auth-panel .panel-kicker{margin:0 0 1.1rem;color:var(--accent);font-size:.74rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.auth-panel h2{margin:0 0 .8rem;font-size:clamp(1.8rem,3vw,2.5rem);font-weight:560;letter-spacing:-.035em}.auth-panel p{margin:0;color:#d7d2c9;line-height:1.65}.auth-panel .button:focus-visible{outline:3px solid #ffffff;outline-offset:3px}.auth-panel .fine-print{color:#b9b3a9}.center-state{flex:1;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:.75rem;padding:3rem 0;max-width:38rem}.center-state h1{font-size:clamp(1.6rem,4vw,2.3rem);margin:0;letter-spacing:-.02em}.eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:.75rem;color:var(--brand-bright);font-weight:800;margin:0}.lede{font-size:1.05rem;color:var(--ink-soft);margin:0}.fine-print{font-size:.8rem;color:var(--ink-soft);margin:0}.button-row{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:.5rem}.button{font:inherit;font-weight:600;min-height:44px;border-radius:var(--radius-sm);padding:.7rem 1.15rem;border:1px solid transparent;cursor:pointer;transition:background-color .2s ease,border-color .2s ease,transform .2s ease}.button-primary{background:var(--accent);color:#16140d}.button-primary:hover{background:var(--accent-hover)}.button:active:not(:disabled){transform:translateY(1px)}.button-quiet{background:var(--surface);color:var(--ink);border-color:#8a8173}.button-quiet:hover{border-color:var(--ink-soft)}.button:focus-visible{outline:3px solid var(--brand-bright);outline-offset:3px}.loader{width:2rem;height:2rem;border-radius:50%;border:3px solid var(--line);border-top-color:var(--brand);animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error-state h1{color:var(--danger)}.portal-main{flex:1;padding:2rem 0 3rem}.view-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:.5rem}.view-heading h1{margin:.15rem 0 0;font-size:clamp(1.5rem,3.5vw,2rem);letter-spacing:-.02em}.view-note{color:var(--ink-soft);margin:0 0 1.25rem}.account-bar{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin:1.25rem 0 1.5rem;padding:1rem 1.1rem;border:1px solid var(--line);border-radius:12px;background:#ffffff94}.account-bar p{margin:0;color:var(--ink-soft);font-size:.85rem}.account-name,.account-picker{display:grid;gap:.2rem;color:var(--ink);font-weight:650}.account-name span,.account-picker>span{color:var(--ink-soft);font-size:.7rem;font-weight:650;letter-spacing:.08em;text-transform:uppercase}.account-select{min-height:44px;min-width:13rem;padding:.5rem 2rem .5rem .65rem;border:1px solid #8a8173;border-radius:8px;background:var(--surface);color:var(--ink);font:inherit;font-weight:600}.account-select:focus-visible{outline:3px solid var(--brand-bright);outline-offset:3px}.project-list{list-style:none;margin:0;padding:0;display:grid;gap:.75rem}.project-card{display:flex;align-items:center;justify-content:space-between;gap:1rem;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:1rem 1.25rem}button.project-card{width:100%;text-align:left;font:inherit;color:inherit;border-color:#8a8173;cursor:pointer}button.project-card:hover{border-color:var(--brand-bright)}button.project-card:focus-visible{outline:3px solid var(--brand-bright);outline-offset:3px}.project-card-side{display:grid;gap:.4rem;justify-items:end}.project-open-hint{color:var(--brand-bright);font-size:.78rem;font-weight:600;white-space:nowrap}.breadcrumb{margin-bottom:1rem}.overview-status{display:grid;gap:.5rem;justify-items:start;margin:1.25rem 0 1.5rem;padding:1rem 1.1rem;border:1px solid var(--line);border-radius:12px;background:#ffffff94}.overview-status .project-summary{font-size:1rem}.overview-updates h2{margin:0 0 .75rem;font-size:1.15rem;letter-spacing:-.01em}.update-list{list-style:none;margin:0;padding:0;display:grid;gap:.75rem}.update-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:1rem 1.25rem}.update-card-latest{border-color:var(--brand-bright)}.update-meta{display:flex;align-items:center;gap:.6rem;margin:0 0 .35rem;color:var(--neutral);font-size:.78rem}.update-latest-tag{color:var(--brand-bright);font-weight:700;letter-spacing:.06em;text-transform:uppercase;font-size:.7rem}.update-title{margin:0;font-size:1rem}.update-body{margin:.35rem 0 0;color:var(--ink-soft);font-size:.92rem;white-space:pre-line}.overview-milestones{margin-top:1.5rem}.overview-milestones h2{margin:0 0 .75rem;font-size:1.15rem;letter-spacing:-.01em}.milestone-list{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}.milestone-card{display:flex;align-items:center;justify-content:space-between;gap:1rem;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:.85rem 1.25rem}.milestone-copy{min-width:0}.milestone-name{font-weight:600}.milestone-date{display:block;margin-top:.2rem;color:var(--neutral);font-size:.78rem}.milestone-state-upcoming{background:#5a6b661f;color:var(--neutral)}.milestone-state-in_progress{background:#1f6f6324;color:var(--brand-bright)}.milestone-state-complete{background:#1f7a4d1f;color:var(--positive)}.project-copy{min-width:0}.project-name{font-weight:600}.project-summary{margin:.3rem 0 0;color:var(--ink-soft);font-size:.9rem}.project-updated{display:block;margin-top:.45rem;color:var(--neutral);font-size:.75rem}.status{font-size:.78rem;font-weight:600;padding:.28rem .6rem;border-radius:999px;white-space:nowrap}.status-on_track,.status-complete{background:#1f7a4d1f;color:var(--positive)}.status-needs_attention{background:#b06a1224;color:var(--attention)}.status-blocked{background:#a832321f;color:var(--danger)}.status-not_set{background:#5a6b661f;color:var(--neutral)}.redeem-form{width:100%;display:grid;gap:1rem;margin-top:.5rem}.field{display:grid;gap:.35rem}.field-label{font-size:.85rem;font-weight:600;color:var(--ink-soft)}.field-input{font:inherit;padding:.65rem .8rem;border:1px solid #8a8173;border-radius:var(--radius-md);background:var(--surface);max-width:22rem}.field-input:focus-visible{outline:3px solid var(--brand-bright);outline-offset:2px;border-color:var(--brand-bright)}.form-error{color:var(--danger);font-weight:500;margin:0}.notice{margin:0 0 1rem;padding:.65rem 1rem;background:#1f6f631a;border:1px solid rgba(31,111,99,.25);border-radius:10px;color:var(--brand-bright);font-weight:500}.notice:empty{display:none}.request-list{list-style:none;margin:0;padding:0;display:grid;gap:.75rem}.request-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:1rem 1.25rem}.request-meta{display:flex;align-items:center;flex-wrap:wrap;gap:.6rem;margin:0;color:var(--neutral);font-size:.78rem}.request-project{font-weight:600}.request-subject{margin:.5rem 0 0;font-size:1rem}.request-description{margin:.35rem 0 0;color:var(--ink-soft);font-size:.92rem;white-space:pre-line;overflow-wrap:anywhere}.request-response{margin-top:.75rem;padding:.75rem 1rem;background:#1f6f6312;border-left:3px solid var(--brand-bright);border-radius:0 10px 10px 0}.request-response-label{margin:0;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--brand-bright)}.request-response-body{margin:.3rem 0 0;color:var(--ink-soft);font-size:.92rem;white-space:pre-line;overflow-wrap:anywhere}.request-withdraw{margin-top:.75rem}.request-withdraw-confirm{display:flex;align-items:center;flex-wrap:wrap;gap:.6rem;margin-top:.75rem;font-size:.9rem;color:var(--ink-soft)}.button-danger{background:var(--danger);color:#fff;border-color:var(--danger)}.button-danger:hover:not(:disabled){filter:brightness(.86)}.request-state-submitted,.request-state-in_review{background:#1f6f6324;color:var(--brand-bright)}.request-state-planned,.request-state-completed{background:#1f7a4d1f;color:var(--positive)}.request-state-needs_information{background:#b06a1224;color:var(--attention)}.request-state-withdrawn,.request-state-closed{background:#5a6b661f;color:var(--neutral)}.request-form .field-input{max-width:30rem}.field-textarea{resize:vertical;min-height:9rem}.request-disclosure{margin:0;color:var(--neutral);font-size:.85rem}.approval-section{margin-top:2rem}.section-heading,.approval-detail-heading,.approval-card-meta{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.section-heading h2,.approval-section>h2,.approval-summary h2,.approval-note h2{margin:0;font-size:1.05rem}.section-heading>span{min-width:1.75rem;padding:.2rem .45rem;border-radius:999px;background:#1f6f631f;color:var(--brand-bright);text-align:center;font-size:.8rem;font-weight:700}.approval-list,.approval-history{display:grid;gap:.75rem;margin:.85rem 0 0;padding:0;list-style:none}.approval-card{border:1px solid var(--line);border-radius:12px;background:var(--surface);overflow:hidden}.approval-card-body{display:grid;gap:.55rem;padding:1rem 1.25rem;color:var(--ink)}.approval-card-body h3,.approval-card-body p{margin:0}.approval-revision,.approval-card-summary{color:var(--ink-soft)}.approval-card-summary,.approval-card-note p{white-space:pre-line;overflow-wrap:anywhere}.approval-card-note{display:grid;gap:.25rem;padding:.7rem .85rem;border-left:3px solid var(--brand-bright);background:#1f6f6312}.approval-card-actions{margin-top:.25rem}.approval-card-meta{justify-content:flex-start;flex-wrap:wrap;color:var(--neutral);font-size:.78rem}.approval-replacement,.approval-decided{margin:.4rem 0 0;color:var(--neutral);font-size:.86rem;font-weight:600}.approval-state-awaiting_decision{background:#b06a1224;color:var(--attention)}.approval-state-approved{background:#1f7a4d1f;color:var(--positive)}.approval-state-changes_requested{background:#a836361f;color:var(--danger)}.approval-state-withdrawn{background:#5a6b661f;color:var(--neutral)}.approval-detail-heading{align-items:flex-start;margin-bottom:1.25rem}.approval-detail-heading h1{margin:.15rem 0 0}.approval-detail-heading p{margin:.35rem 0 0;color:var(--ink-soft)}.approval-summary,.approval-note,.confirmation-card{margin-top:1rem;padding:1.1rem 1.25rem;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.approval-summary p,.approval-note p{margin:.6rem 0 0;color:var(--ink-soft);white-space:pre-line;overflow-wrap:anywhere}.approval-actions{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1rem}.approval-history>li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.45rem 1rem;padding:.9rem 1rem;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.approval-history div,.confirmation-card{display:grid;gap:.25rem}.approval-history div span,.confirmation-card span{color:var(--ink-soft)}.approval-history p{grid-column:1 / -1;margin:0;color:var(--neutral);font-size:.84rem}.narrow-view{max-width:42rem}.decision-form{display:grid;gap:1rem;margin-top:1rem}.button:disabled{cursor:wait;opacity:.62}@media(max-width:36rem){.masthead,.view-heading,.account-bar,.project-card,.milestone-card{align-items:flex-start}.account-bar,.project-card,.milestone-card,.approval-detail-heading,.approval-card-meta{flex-direction:column}.account-picker,.account-select{width:100%}.status{align-self:flex-start}.project-card-side{justify-items:start}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.notification-trigger,.client-activity-actions .button{min-height:44px;min-width:44px}.source-link[aria-disabled=true]{cursor:wait;opacity:.62;pointer-events:none}[data-source-record-kind]{scroll-margin-block:1.5rem}[data-source-record-kind]:focus,.end-note:focus{outline:3px solid var(--brand-bright);outline-offset:3px}.notification-count,.unread-label{border-radius:999px;background:var(--accent, #234f43);color:#16140d;font-size:.75rem;font-weight:700;padding:.15rem .45rem}.client-activity-list{display:grid;gap:0;list-style:none;margin:1rem 0;padding:0}.client-activity-item{align-items:center;border-bottom:1px solid var(--border, #d7d4cc);display:flex;gap:1rem;justify-content:space-between;padding:1rem 0}.client-activity-item p{margin:.25rem 0}.client-activity-item time,.end-note,.notification-summary{color:var(--muted, #5f625f);font-size:.875rem}.notification-project{color:var(--ink-soft);display:block;font-size:.875rem;font-weight:600}.client-activity-unread{font-weight:600}.client-activity-actions{align-items:center;display:flex;flex:0 0 auto;gap:.5rem}@media(max-width:520px){.client-activity-item{align-items:stretch;flex-direction:column}.client-activity-actions .button{flex:1}}@media(max-width:48rem){.auth-layout{grid-template-columns:minmax(0,1fr);gap:2rem;padding-block:clamp(2.5rem,9vw,4.5rem)}.auth-intro h1{font-size:clamp(2.7rem,12vw,4.75rem)}}@media(max-width:36rem){.masthead{align-items:flex-start;flex-direction:column;gap:.5rem}.wordmark img{width:96px}.auth-panel{padding:1.5rem}}.footer{display:flex;justify-content:space-between;gap:1rem;padding:1.25rem 0;border-top:1px solid var(--line);color:var(--ink-soft);font-size:.8rem}.overview-resources .resource-list{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}.resource-item{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem}.resource-link{font-weight:600;overflow-wrap:anywhere}.resource-kind{font-size:.78rem;opacity:.7}.overview-submissions .submission-list{list-style:none;margin:0;padding:0;display:grid;gap:.75rem}.submission-card{display:grid;gap:.4rem;padding:.75rem .9rem;border-radius:10px}.submission-card-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem}.submission-reference{font-weight:600;overflow-wrap:anywhere}.submission-summary{margin:0;white-space:pre-line;overflow-wrap:anywhere}.submission-fields{margin:0;display:grid;gap:.3rem}.submission-fields>div{display:grid;grid-template-columns:minmax(7rem,11rem) 1fr;gap:.5rem}.submission-fields dt{font-size:.78rem;opacity:.75}.submission-fields dd{margin:0;overflow-wrap:anywhere}@media(max-width:640px){.submission-fields>div{grid-template-columns:1fr;gap:.1rem}}
