@font-face{font-family:Material Icons Round;font-style:normal;font-display:swap;font-weight:400;src:url(../media/material-icons-round-latin-400-normal.3mw5fq_z9838_.woff2)format("woff2"),url(../media/material-icons-round-latin-400-normal.1sn2kyhmt0arx.woff)format("woff")}
:root{--ink:#15201d;--muted:#67736f;--paper:#f4f6f3;--surface:#fff;--line:#dfe5e1;--green:#1c7354;--green-dark:#12523c;--lime:#d7f06b;--orange:#e47d37;--blue:#4f74c8;--purple:#7655b8;--red:#b94f45;--shadow:0 16px 50px #192e2614}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,textarea,select{font:inherit}button{cursor:pointer}.material-icons-round{letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;-webkit-font-feature-settings:"liga";font-feature-settings:"liga";-webkit-font-smoothing:antialiased;direction:ltr;font-family:Material Icons Round;font-size:24px;font-style:normal;font-weight:400;line-height:1}.login-shell{background:radial-gradient(circle at 20% 0,#edf7ca 0,#0000 34%),linear-gradient(145deg,#f7f8f4,#e9efeb);place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{background:#fffffff0;border:1px solid #fffc;border-radius:28px;width:min(100%,480px);padding:48px;box-shadow:0 28px 90px #15372b24}.brand-lockup{letter-spacing:-.02em;align-items:center;gap:11px;margin-bottom:48px;font-size:22px;display:flex}.brand-lockup span{color:var(--green);font-weight:900}.brand-lockup i{background:#c7d0cb;width:1px;height:24px}.brand-lockup strong{font-weight:650}.brand-lockup.compact{white-space:nowrap;margin:0;font-size:17px}.brand-lockup.compact i{height:18px}.eyebrow{color:var(--green);letter-spacing:.12em;text-transform:uppercase;margin:0 0 12px;font-size:12px;font-weight:800}.login-card h1{letter-spacing:-.045em;margin:0;font-size:clamp(34px,8vw,48px);line-height:1.02}.login-copy{color:var(--muted);margin:20px 0 32px;font-size:17px;line-height:1.55}.pin-form{gap:10px;display:grid}.pin-form label,.comment-panel label{color:var(--muted);font-size:13px;font-weight:700}.pin-form input{letter-spacing:.6em;text-align:center;background:#fbfcfa;border:1px solid #cfd8d2;border-radius:14px;outline:none;width:100%;height:66px;padding:0 18px;font-size:29px}.pin-form input:focus{border-color:var(--green);box-shadow:0 0 0 4px #1c73541c}.pin-form button,.comment-panel form button{background:var(--green);color:#fff;border:0;border-radius:13px;padding:15px 20px;font-weight:750}.pin-form button:hover,.comment-panel form button:hover{background:var(--green-dark)}.pin-form button:disabled{opacity:.55;cursor:wait}.form-error{color:var(--red);margin:0;font-size:13px}.login-footnote{color:#8a9691;text-align:center;margin:28px 0 0;font-size:12px}.loading-screen{min-height:100vh;color:var(--muted);place-content:center;justify-items:center;gap:12px;display:grid}.loading-mark{color:var(--green);font-size:34px;font-weight:900}.topbar{z-index:20;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffffff0;grid-template-columns:auto minmax(260px,1fr) auto auto;align-items:center;gap:28px;min-height:68px;padding:10px max(24px,50vw - 680px);display:grid;position:sticky;top:0}.topbar-title{align-items:baseline;gap:12px;min-width:0;display:flex}.home-link{color:var(--green);white-space:nowrap;font-size:12px;font-weight:750;text-decoration:none}.home-link:hover{text-decoration:underline}.topbar-title strong{white-space:nowrap;font-size:14px}.topbar-title span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.save-state{color:var(--muted);white-space:nowrap;font-size:12px}.save-state.saved{color:var(--green)}.save-state.error{color:var(--red)}.logout{border:1px solid var(--line);color:var(--muted);background:#fff;border-radius:9px;padding:8px 12px;font-size:12px}.page-wrap{width:min(1360px,100% - 48px);margin:0 auto;padding:48px 0 64px}.intro{margin-bottom:34px}.intro h1{letter-spacing:-.055em;margin:0;font-size:clamp(38px,5vw,66px);line-height:1}.intro>div>p:last-child{color:var(--muted);margin:18px 0 0;font-size:17px;line-height:1.55}.summary{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:20px;grid-template-columns:1.45fr repeat(3,1fr);margin-bottom:24px;display:grid;overflow:hidden}.summary>div{border-right:1px solid var(--line);min-height:132px;padding:22px 24px}.summary>div:last-child{border:0}.summary span{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:12px;font-size:12px;font-weight:750;display:block}.summary strong{letter-spacing:-.035em;font-size:clamp(22px,2.2vw,32px);display:block}.summary small{color:var(--muted);margin-top:10px;font-size:12px;display:block}.summary-primary{background:#f9fbf2}.progress-line{background:#e3e8d6;border-radius:10px;height:5px;margin-top:13px;overflow:hidden}.progress-line i{background:var(--green);border-radius:inherit;height:100%;transition:width .25s;display:block}.summary-stage{position:relative}.summary-stage:before{content:"";background:var(--green);width:4px;position:absolute;inset:0 auto 0 0}.summary-stage.stage-2:before{background:var(--blue)}.summary-stage.stage-3:before{background:var(--purple)}.toolbar{z-index:15;border:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#f4f6f3f2;border-radius:16px;align-items:end;gap:14px;margin-bottom:18px;padding:14px;display:flex;position:sticky;top:68px}.search-box,.filter-box{gap:6px;display:grid}.search-box{flex:1}.toolbar label>span{color:var(--muted);text-transform:uppercase;letter-spacing:.07em;font-size:11px;font-weight:750}.toolbar input,.toolbar select{height:43px;color:var(--ink);background:#fff;border:1px solid #d4dcd7;border-radius:10px;outline:none}.toolbar input{width:100%;padding:0 14px}.toolbar select{min-width:220px;padding:0 36px 0 12px}.toolbar input:focus,.toolbar select:focus{border-color:var(--green);box-shadow:0 0 0 3px #1c735414}.reset-filter{height:43px;color:var(--green);background:0 0;border:0;padding:0 14px;font-size:13px;font-weight:700}.scope-list{gap:12px;display:grid}.scope-block{border:1px solid var(--line);background:var(--surface);border-radius:16px;overflow:hidden}.scope-block.open{box-shadow:0 10px 30px #1b322a0e}.block-header{border-bottom:0 solid var(--line);align-items:center;display:flex}.scope-block.open .block-header{border-bottom-width:1px}.block-toggle{min-width:0;color:var(--ink);text-align:left;background:0 0;border:0;flex:1;align-items:center;gap:16px;padding:20px;display:flex}.block-toggle:hover{background:#fafbf9}.block-number{width:42px;height:42px;color:var(--green);background:#eff3ef;border-radius:11px;flex:none;place-items:center;font-size:12px;font-weight:850;display:grid}.block-title{gap:5px;min-width:0;display:grid}.block-title strong{font-size:16px;line-height:1.3}.block-title small{color:var(--muted);font-size:12px}.team-chip{color:var(--green);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;background:#ecf3f0;border-radius:99px;margin-left:auto;padding:6px 9px;font-size:10px;font-weight:800}.chevron{color:var(--muted);margin-left:8px;font-size:22px;transition:transform .18s;transform:rotate(-90deg)}.scope-block.open .chevron{transform:rotate(0)}.bulk-stage{gap:5px;padding-right:20px;display:grid}.bulk-stage span{color:var(--muted);text-transform:uppercase;font-size:10px;font-weight:750}.bulk-stage select{border:1px solid var(--line);background:#fff;border-radius:9px;max-width:160px;height:36px;padding:0 9px;font-size:12px}.block-body{display:grid}.scope-row{border-bottom:1px solid #edf0ee;grid-template-columns:minmax(0,1fr) 130px minmax(480px,540px);align-items:start;gap:20px;padding:9px 20px;display:grid}.scope-row:last-child{border:0}.scope-row:hover{background:#fcfdfb}.scope-row.scope-note{background:#fffaf2}.scope-copy{grid-template-columns:max-content max-content minmax(0,1fr) max-content;align-items:center;gap:8px;min-width:0;display:grid}.scope-copy>code{color:#98a19e;white-space:nowrap;grid-column:1;font:10px/1 ui-monospace,SFMono-Regular,Menlo,monospace}.scope-text{min-width:0;color:var(--ink);text-overflow:ellipsis;white-space:nowrap;grid-column:3;margin:0;font-size:13px;line-height:30px;overflow:hidden}.marker{letter-spacing:.055em;text-transform:uppercase;border-radius:5px;padding:4px 7px;font-size:9px;font-weight:850;display:inline-flex}.scope-copy>.marker{grid-column:2}.marker.insufficient_data{color:#9b4927;background:#ffe4d8}.marker.scope_uncertainty{color:#684397;background:#efe5ff}.marker.option{color:#345d94;background:#deedff}.marker.resolved{color:var(--green);background:#def1e7}.scope-price{text-align:right;justify-items:end;padding-top:1px;display:grid}.scope-price strong{white-space:nowrap;font-size:14px}.scope-price small{color:var(--muted);margin-top:4px;font-size:10px}.stage-control{border:1px solid var(--line);border-radius:9px;grid-template-columns:repeat(6,1fr);display:grid;overflow:hidden}.stage-control button{border:0;border-right:1px solid var(--line);min-width:0;height:34px;color:var(--muted);white-space:nowrap;background:#fff;padding:0 10px;font-size:11px;font-weight:750}.stage-control button:last-child{border-right:0}.stage-control button:hover{background:#f0f3f1}.stage-control button:focus-visible{z-index:1;outline:2px solid var(--blue);outline-offset:-2px;position:relative}.stage-control button.active{background:var(--ink);color:#fff}.stage-control button.active.stage_1{background:var(--green)}.stage-control button.active.stage_2{background:var(--blue)}.stage-control button.active.stage_3{background:var(--purple)}.stage-control button.active.later{background:#68716e}.stage-control button.active.discussion{background:var(--orange)}.not-priced{min-height:32px;color:#8d582a;text-align:center;background:#f6ead9;border-radius:8px;justify-self:end;align-items:center;padding:6px 9px;font-size:10px;font-weight:750;display:inline-flex}.comments-wrap{display:contents}.comment-trigger{border:1px solid var(--line);width:30px;height:30px;color:var(--muted);background:#fff;border-radius:8px;grid-column:4;place-items:center;padding:0;display:grid;position:relative}.comment-trigger:hover{color:var(--green);background:#f0f3f1;border-color:#b7c7c0}.comment-trigger:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.comment-trigger.has-comments{color:var(--blue);background:#eef5ff;border-color:#c7d9ef}.comment-icon{letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;-webkit-font-feature-settings:"liga";font-feature-settings:"liga";-webkit-font-smoothing:antialiased;direction:ltr;font-family:Material Icons Round;font-size:18px;font-style:normal;font-weight:400;line-height:1}.comment-count{background:var(--blue);color:#fff;border:2px solid #fff;border-radius:9px;place-items:center;min-width:17px;height:17px;padding:0 4px;font-size:9px;font-weight:800;display:grid;position:absolute;top:-6px;right:-6px}.comment-panel{border:1px solid var(--line);background:#fff;border-radius:12px;grid-column:1/-1;margin-top:4px;padding:14px}.comment-list{gap:10px;margin-bottom:14px;display:grid}.comment-list article{background:#f5f7f5;border-radius:9px;padding:10px 12px}.comment-list header{color:var(--muted);justify-content:space-between;gap:16px;font-size:10px;display:flex}.comment-list p{white-space:pre-wrap;margin-top:5px}.comment-panel form{gap:7px;display:grid}.comment-panel textarea{resize:vertical;border:1px solid #d4dcd7;border-radius:9px;outline:none;width:100%;min-height:86px;padding:10px 12px;font-size:13px}.comment-panel textarea:focus{border-color:var(--green)}.comment-panel form button{justify-self:start;padding:9px 13px;font-size:12px}.page-footer{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;gap:40px;margin-top:34px;padding-top:24px;font-size:12px;display:flex}.page-footer p{max-width:700px;margin:0}.portal-shell{background:radial-gradient(circle at 94% 4%, #d7f06b57, transparent 28%), var(--paper);min-height:100vh;padding-bottom:64px}.portal-header{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffffd1;justify-content:space-between;align-items:center;min-height:72px;padding:0 max(24px,50vw - 590px);display:flex}.portal-hero{width:min(1180px,100% - 48px);margin:0 auto;padding:72px 0 42px}.portal-hero h1{letter-spacing:-.06em;max-width:900px;margin:0;font-size:clamp(44px,6.3vw,82px);line-height:.98}.portal-hero>p:last-child{max-width:720px;color:var(--muted);margin:24px 0 0;font-size:19px;line-height:1.55}.portal-grid{grid-template-columns:1.15fr .85fr;gap:20px;width:min(1180px,100% - 48px);margin:0 auto;display:grid}.portal-card{border:1px solid var(--line);min-height:330px;color:var(--ink);box-shadow:var(--shadow);background:#fff;border-radius:28px;grid-template-rows:auto 1fr auto;padding:34px;text-decoration:none;transition:transform .2s,box-shadow .2s;display:grid;position:relative;overflow:hidden}.portal-card:hover{transform:translateY(-4px);box-shadow:0 24px 60px #192e2621}.portal-card.prototype-card{background:var(--ink);color:#fff}.portal-card.prototype-card:after{content:"";background:var(--lime);opacity:.92;border-radius:50%;width:280px;height:280px;position:absolute;top:-88px;right:-88px}.portal-card-icon{z-index:1;background:var(--lime);width:52px;height:52px;color:var(--ink);border-radius:14px;place-items:center;font-size:28px;display:grid;position:relative}.estimate-card .portal-card-icon{color:var(--green);background:#eaf1ee}.portal-card div{z-index:1;align-self:end;position:relative}.portal-card small{color:inherit;opacity:.6;letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:800}.portal-card h2{letter-spacing:-.04em;max-width:520px;margin:9px 0 12px;font-size:clamp(28px,3vw,42px);line-height:1.02}.portal-card p{max-width:560px;color:inherit;opacity:.68;margin:0;font-size:15px;line-height:1.55}.portal-arrow{font-size:28px;position:absolute;bottom:28px;right:28px}.portal-note{width:min(1180px,100% - 48px);color:var(--muted);align-items:center;gap:8px;margin:22px auto 0;font-size:12px;display:flex}.portal-note span{font-size:17px}@media (max-width:1050px){.summary{grid-template-columns:1fr 1fr}.summary>div:nth-child(2){border-right:0}.summary>div:nth-child(-n+2){border-bottom:1px solid var(--line)}.scope-row{grid-template-columns:minmax(0,1fr) 130px}.stage-control,.not-priced{grid-column:1/-1;justify-self:stretch}.not-priced{justify-content:center}.topbar-title{display:none}.topbar{grid-template-columns:1fr auto auto}}@media (max-width:760px){.login-card{border-radius:22px;padding:34px 24px}.page-wrap{width:min(100% - 24px,1360px);padding-top:30px}.topbar{grid-template-columns:1fr auto;gap:12px;padding:10px 14px}.save-state{text-align:center;grid-area:2/1/auto/-1}.intro{grid-template-columns:1fr;gap:24px}.summary{grid-template-columns:1fr}.summary>div{border-right:0;border-bottom:1px solid var(--line);min-height:106px}.toolbar{flex-wrap:wrap;top:92px}.search-box,.filter-box{flex:100%}.toolbar select{width:100%}.block-header{display:block}.block-toggle{gap:11px;padding:16px 14px}.block-number{width:36px;height:36px}.team-chip{display:none}.bulk-stage{padding:0 14px 14px 62px}.bulk-stage select{width:100%;max-width:none}.scope-row{grid-template-columns:1fr;gap:12px;padding:16px 14px}.scope-copy{grid-template-columns:max-content minmax(0,1fr) max-content}.scope-copy>code{grid-column:1}.scope-copy>.marker{grid-column:2}.scope-text{text-overflow:clip;white-space:normal;grid-area:2/1/auto/3;line-height:1.45;overflow:visible}.comment-trigger{grid-area:1/3/span 2;align-self:center}.scope-price{text-align:left;justify-items:start}.stage-control{grid-column:auto;grid-template-columns:repeat(3,1fr)}.stage-control button{border-bottom:1px solid var(--line);height:40px}.stage-control button:nth-child(3n){border-right:0}.stage-control button:nth-last-child(-n+3){border-bottom:0}.page-footer{gap:14px;display:grid}.portal-header{padding:0 16px}.portal-hero{width:calc(100% - 32px);padding:48px 0 30px}.portal-hero>p:last-child{font-size:16px}.portal-grid{grid-template-columns:1fr;width:calc(100% - 32px)}.portal-card{border-radius:22px;min-height:300px;padding:26px}.portal-note{align-items:flex-start;width:calc(100% - 32px)}}
