@font-face{font-family:"Bebas Neue";font-style:normal;font-weight:400;font-display:swap;src:url("assets/fonts/bebas-neue-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:300;font-display:swap;src:url("assets/fonts/montserrat-latin-300-normal.woff2") format("woff2")}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:400;font-display:swap;src:url("assets/fonts/montserrat-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:500;font-display:swap;src:url("assets/fonts/montserrat-latin-500-normal.woff2") format("woff2")}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:600;font-display:swap;src:url("assets/fonts/montserrat-latin-600-normal.woff2") format("woff2")}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:700;font-display:swap;src:url("assets/fonts/montserrat-latin-700-normal.woff2") format("woff2")}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:800;font-display:swap;src:url("assets/fonts/montserrat-latin-800-normal.woff2") format("woff2")}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:900;font-display:swap;src:url("assets/fonts/montserrat-latin-900-normal.woff2") format("woff2")}
/* Alain's V2 reference: Bebas Neue headings, Montserrat body, monochrome controls,
   client glass tints and red reserved for problems. Scoped to authenticated app. */
.jjs-v2{--display:'Bebas Neue','Arial Narrow',sans-serif;--surface:#fff;--ink:#0b0b0b;--mute:#6a6a66;--line:rgba(0,0,0,.09);--line2:rgba(0,0,0,.16);--soft:#f4f4f1;--bad:#cf2a1f;--good:#12844a;font-family:'Montserrat',sans-serif}
.jjs-v2 .jjs-section{border:1px solid var(--line);border-radius:22px;background:var(--surface);padding:20px;box-shadow:none}
.jjs-v2 .jjs-section-title,.jjs-v2 .v2-fileshead h2{font-family:var(--display);font-size:28px;line-height:1;font-weight:400;letter-spacing:.03em}
.jjs-v2 .jjs-phead-title{font-family:var(--display);font-weight:400;font-size:clamp(40px,5vw,60px);line-height:.95}
.jjs-v2 .jjs-stack{gap:18px}.jjs-v2 .jjs-psum{grid-template-columns:repeat(3,minmax(0,1fr))}
.jjs-v2 .jjs-btn{border-radius:999px}.jjs-v2 .jjs-btn:focus-visible,.jjs-v2 button:focus-visible,.jjs-v2 summary:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.v2-fileshead{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap}.v2-fileshead h2{margin:0}.v2-fileshead p{margin:5px 0 0;max-width:60ch}
.v2-fileacts{display:flex;gap:8px;flex-wrap:wrap}.v2-phasetiles{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.v2-phasetile{display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-align:left;background:#fff;border:1px solid var(--line2);border-radius:16px;padding:10px 12px;min-width:0;cursor:pointer;color:var(--ink)}
.v2-phasetile:hover{border-color:var(--ink)}.v2-phasetile.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.v2-phasetile b{font-family:var(--display);font-size:17px;letter-spacing:.04em;font-weight:400;line-height:1.05;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v2-phasetile strong{font-family:var(--display);font-weight:400;font-size:30px;line-height:1}.v2-phasetile small{font-size:11px;color:var(--mute);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v2-phasetile.on small{color:rgba(255,255,255,.65)}
.v2-guide{border:1px solid var(--line);background:#fff;border-radius:14px;padding:10px 14px;font-size:13px}.v2-guide summary{cursor:pointer;font-weight:600}.v2-guide .jjs-section{border:0;margin:8px 0 0;padding:0}
.v2-phase .jjs-section-head{align-items:flex-start}.v2-phase .jjs-section-title{font-size:26px}.v2-phase .jjs-help{font-size:12.5px}
.v2-filerows{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff;margin-top:12px}
.v2-filerow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:12px 14px;border-bottom:1px solid var(--line);font-size:12.5px}.v2-filerow:last-child{border-bottom:0}
.v2-filemain{min-width:0}.v2-fileline,.v2-filemeta,.v2-filelinks,.v2-filenotes,.v2-fileside{display:flex;align-items:center;gap:4px 6px;flex-wrap:wrap}.v2-filemeta,.v2-filelinks,.v2-filenotes{margin-top:5px}.v2-fileside{align-self:start;justify-content:flex-end;max-width:190px}
.v2-cell{min-width:0;display:flex;align-items:center;gap:5px;flex-wrap:wrap;max-width:100%}.v2-cell input:not([type=checkbox]),.v2-cell select{border:1px solid transparent;background:transparent;border-radius:8px;padding:3px 6px;font:inherit;color:inherit;min-width:0;max-width:100%;width:auto}
.v2-cell input:not([type=checkbox]):hover,.v2-cell select:hover{border-color:var(--line2)}.v2-cell input:not([type=checkbox]):focus,.v2-cell select:focus{outline:none;border-color:var(--ink);background:#fff}
.v2-cell-0{flex:0 0 52px}.v2-cell-0 input{width:52px!important;color:var(--mute)!important;font-weight:700!important}.v2-cell-1{flex:1 1 210px}.v2-cell-1 input{font-weight:700!important;width:100%!important}.v2-cell-2 select{max-width:190px}.v2-cell-5 input{width:138px!important}.v2-cell-6 input{width:82px!important}
.v2-cell-7{flex:1 1 200px}.v2-cell-7 input{flex:1;min-width:120px!important;width:100%!important;color:var(--mute)!important}.v2-cell-8{flex:1 1 180px}.v2-cell-8 input{width:100%!important}.v2-cell button{cursor:pointer}.v2-cell .jjs-rowedit,.v2-cell .jjs-vdel{border:0;background:none;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;color:var(--ink)}.v2-cell .jjs-vdel:hover{color:var(--bad)}
.v2-check{display:flex;gap:6px;align-items:center;font-size:12px;font-weight:600}.v2-check input{accent-color:var(--ink);width:16px!important;height:16px}
.v2-deckstack{border-bottom:1px solid var(--line);padding:12px;background:#fafaf8}.v2-deckstack header{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:10px}.v2-deckstack header small{display:block;color:var(--mute);font-size:11px;margin-top:3px}.v2-deckicon{background:#0b0b0b;color:#fff;border-radius:12px;width:36px;height:36px;display:grid;place-items:center}.v2-deckacts{margin-left:auto}.v2-deckstack .v2-filerow{background:#fff;border:1px solid var(--line);border-radius:12px}.v2-deckstack details{margin-top:8px}.v2-deckstack summary{font-size:12px;cursor:pointer;color:var(--mute);padding:5px}.v2-deckstack details .v2-filerow{margin-top:6px}
.v2-daysgrid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.3fr);gap:24px;align-items:center;margin-top:8px}.v2-bignum{font-family:var(--display);font-size:64px;line-height:1;letter-spacing:.01em}.v2-bignum small{font-size:24px;color:var(--mute)}.v2-kvs{display:flex;gap:26px;margin-top:12px;font-size:11px;color:var(--mute)}.v2-kvs b{display:block;font-size:17px;color:var(--ink);margin-top:3px}
.v2-timeline{position:relative;display:flex;gap:2px;background:#e6e6e1;border-radius:10px;height:38px;margin-top:26px}.v2-tlseg{display:flex;align-items:center;justify-content:center;min-width:0;overflow:hidden;font-size:10px;color:var(--mute);padding:2px}.v2-tlseg:first-child{border-radius:10px 0 0 10px}.v2-tlseg:last-of-type{border-radius:0 10px 10px 0}.v2-tlseg.done{background:#292927;color:#fff}.v2-tlseg.now{background:#777772;color:#fff}.v2-timefill{background:#0b0b0b;border-radius:10px;height:100%}.v2-today{position:absolute;top:-9px;height:56px;border-left:2px solid #0b0b0b;max-width:100%}.v2-today b{position:absolute;bottom:100%;right:0;font-size:9px;text-transform:uppercase;font-style:normal}.v2-datemark{position:absolute;bottom:-5px;width:9px;height:9px;transform:rotate(45deg);background:#0b0b0b}.v2-tllabels{display:flex;justify-content:space-between;margin-top:18px;font-size:11px;color:var(--mute)}.v2-verdict{background:var(--soft);border-radius:12px;padding:12px;margin-top:12px;font-size:12.5px;line-height:1.6}.v2-verdict.bad{color:var(--bad);background:#fff3f1}
.v2-breakdown{margin-top:18px;font-size:12.5px}.v2-breakdown summary{cursor:pointer;font-weight:600}.v2-tablewrap{overflow:auto}.v2-tablewrap table{width:100%;border-collapse:collapse;font-size:12px;margin-top:12px;text-align:left;min-width:550px}.v2-tablewrap td,.v2-tablewrap th{padding:10px;border-bottom:1px solid var(--line)}.v2-tablewrap th{color:var(--mute);font-size:11px}
.v2-overviewgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.v2-overviewgrid>.jjs-section:only-child{grid-column:1/-1}.v2-dateslist{list-style:none;padding:0;margin:8px 0 0}.v2-dateslist li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);font-size:13px}.v2-dateslist li:last-child{border:0}.v2-dateslist small{display:block;color:var(--mute);margin-top:5px;font-size:12px}.v2-planinputs{display:grid;gap:8px;margin:14px 0}.v2-planinputs label{display:flex;align-items:center;gap:8px;font-size:13px}.v2-planinputs label span{flex:1}.v2-planinputs input{width:80px;border:1px solid #ccc;border-radius:8px;padding:6px}.v2-planerror{color:#cf2a1f;font-size:12px}
.v2-autorow{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;padding:16px 0;border-bottom:1px solid var(--line)}.v2-autorow .jjs-pill{margin-left:8px}.v2-autorow p{color:var(--mute);font-size:12.5px;line-height:1.7;max-width:75ch}.v2-noticerow{display:flex;align-items:center;gap:12px;flex-wrap:wrap;border-bottom:1px solid #eee;padding:12px 0;font-size:13px}.v2-noticerow small{color:#666}.v2-notifications>.jjs-btn{margin:8px 0}
@media(max-width:1100px){.v2-phasetiles{grid-template-columns:repeat(3,minmax(0,1fr))}.v2-filerow{grid-template-columns:minmax(0,1fr)}.v2-fileside{justify-content:flex-start;max-width:none}}
@media(max-width:650px){.v2-phasetiles{grid-template-columns:repeat(2,minmax(0,1fr))}.v2-daysgrid,.v2-overviewgrid{grid-template-columns:minmax(0,1fr)}.jjs-v2 .jjs-psum{grid-template-columns:minmax(0,1fr)}.v2-daysgrid{gap:6px}.v2-fileacts{width:100%}.v2-fileshead{align-items:flex-start}.v2-autorow{flex-direction:column}.v2-phase.jjs-section{padding:14px}.v2-deckstack{padding:8px}}
/* Override v50's Montserrat heading declarations to match the handoff. */
.jjs-v2 .jjs-section-title{font-family:var(--display)!important;font-weight:400!important;letter-spacing:.03em!important;font-size:28px;line-height:1}
.jjs-v2 .v2-phase .jjs-section-title{font-size:26px}.jjs-v2 .jjs-section{border-radius:18px}.v2-guide .jjs-namingguide{margin:8px 0 0;border:0;padding:0}
.v2-guide:has(#namingGuideInput){background:#fff}.v2-planform{font-family:'Montserrat',sans-serif}
.v2-projectdetails{margin-top:18px;font-size:13px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:14px}.v2-projectdetails summary{cursor:pointer;font-weight:600}.v2-projectdetails .jjs-psum{margin-top:12px}.v2-overview .jjs-section .jjs-section{border:0;border-top:1px solid var(--line);border-radius:0;padding:14px 0 0;margin-top:14px}.jjs-v2 .jjs-psum{font-family:'Montserrat',sans-serif}
/* v67: consistent controls in application pages and dialogs, including .btn outside .jjs-proto. */
.jjs-root .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:32px;border:1px solid rgba(0,0,0,.16);border-radius:999px;background:#fff;color:#0b0b0b;font:600 13px 'Montserrat',sans-serif;padding:8px 14px;text-decoration:none;cursor:pointer}
.jjs-root .btn:hover{background:#f2f2ef;color:#0b0b0b}.jjs-root .btn.pri,.jjs-root a.btn.pri,.jjs-root .pill.ink{background:#0b0b0b!important;color:#fff!important;border-color:#0b0b0b}.jjs-root .btn.pri:hover{background:#292929!important;color:#fff!important}.jjs-root .btn.sm{padding:6px 12px;font-size:12.5px}.jjs-root .btn.xs{padding:4px 10px;font-size:12px}.jjs-root .btn.ghost{background:transparent;color:#0b0b0b}.jjs-root .btn:disabled{opacity:.5;cursor:not-allowed}
.jjs-root .jjs-btn:not(.ghost):not(.danger):not(.danger-solid){color:#fff}.jjs-root .jjs-btn.ghost{color:#0b0b0b}.jjs-root .jjs-btn svg,.jjs-root .btn svg{color:inherit;stroke:currentColor}.jjs-v2 .jjs-seg button.on,.jjs-v2 .seg button.on{color:#0b0b0b;background:#fff}.jjs-v2 .sx-stage.on,.jjs-v2 .sx-gotit,.jjs-v2 .sx-banner,.jjs-v2 .v2-phasetile.on{color:#fff!important;background:#0b0b0b}.jjs-root .jjs-dialog .jjs-btn.ghost{color:#0b0b0b}
.jjs-v2 .jjs-settings-body{min-width:0}.jjs-v2 .jjs-settings-card.conn{padding:20px 20px 20px 78px!important;min-height:90px}.jjs-v2 .jjs-settings-card.conn::before{top:20px;left:20px;flex:none}.jjs-v2 .jjs-settingspage img{max-width:100%;height:auto;object-fit:contain}.jjs-v2 .jjs-settingspage .jjs-ico{width:16px;height:16px;flex:none}.jjs-v2 .jjs-settingspage .jjs-btnrow{display:flex;gap:8px;flex-wrap:wrap}.jjs-v2 .jjs-settingspage .jjs-help,.jjs-v2 .jjs-settingspage code{overflow-wrap:anywhere}.jjs-v2 .sx-pwform input{width:100%;max-width:100%}.jjs-v2 .sx-pwform input[type=checkbox]{width:auto}.jjs-v2 .tm-av{background-size:cover;background-position:center;border-radius:50%;flex:none}
.v67-phasefold>summary{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;cursor:pointer;padding:12px 0;color:#0b0b0b}.v67-phasefold>summary::before{content:'▸';font-size:16px}.v67-phasefold[open]>summary::before{content:'▾'}.v67-phasecontent{min-width:0}.v67-noticehead{display:flex;justify-content:space-between;align-items:center;gap:16px;border-bottom:1px solid #eee;padding:8px 0;font-size:13px}.v2-noticerow>div{flex:1;min-width:0}.v2-noticerow b{overflow-wrap:anywhere}.v2-noticerow small{display:block;margin-top:4px}
@media(max-width:650px){.jjs-v2 .jjs-settings-card.conn{padding:64px 14px 14px!important}.jjs-v2 .jjs-settings-card.conn::before{left:14px;top:14px}.jjs-v2 .jjs-settingspage .jjs-team-row{flex-wrap:wrap}.jjs-v2 .jjs-settingspage .jjs-team-email{overflow-wrap:anywhere}}

.jjs-root .jjs-hello .jjs-btn{color:#0b0b0b}.jjs-root .jjs-hello .jjs-btn.ghost{color:#fff}.jjs-root .jjs-btn.danger{color:#b42318}
.v67-deckpath{font-size:10px;color:#777;margin-top:4px;overflow-wrap:anywhere}.v67-deckversion{display:grid;grid-template-columns:50px minmax(0,1fr) auto;gap:12px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px;margin-top:8px}.v67-versionnumber{font-weight:700;color:#666;font-size:13px}.v67-deckname{font-weight:700;font-size:13px;overflow-wrap:anywhere;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.v67-vis{font-size:10px;letter-spacing:.06em;padding:4px 7px;border:1px solid #ccc;border-radius:6px;color:#444}.v67-deckinfo small{display:block;font-size:11px;color:#666;margin-top:8px}.v67-deckactions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.v67-deckedit{grid-column:1/-1}.v67-deckedit>summary{font-size:11px}.v67-deckedit .v2-filerow{border:0;margin-top:8px;padding:8px 0}.v67-deckinfo{min-width:0}
@media(max-width:650px){.v67-deckversion{grid-template-columns:40px minmax(0,1fr);padding:10px;gap:8px}.v67-deckactions{grid-column:1/-1;justify-content:flex-start}}

.jjs-root .jjs-side .sx-pwlink{color:#fff}.jjs-root .jjs-tasklist .jjs-vdel{color:#686868}.jjs-root .jjs-tasklist .jjs-vdel:hover{color:#b42318}

/* v69 Developer diagnostics */
.v69-devconsole{display:grid;gap:16px;min-width:0}.v69-devsection{margin:0!important;min-width:0}.v69-devsection>.jjs-btn{margin:4px}.v69-devchecks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px}.v69-devcheck{border:1px solid #ddd;border-radius:12px;padding:14px;min-width:0;border-left:4px solid #2e7452}.v69-devcheck.warning{border-left-color:#aa7400}.v69-devcheck.error{border-left-color:#b42318}.v69-devcheck>div{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.v69-devcheck b{font-size:13px}.v69-devcheck p{font-size:12px;overflow-wrap:anywhere;line-height:1.6}.v69-devcheck small{font-size:11px;color:#686868;line-height:1.7}.v69-devsummary{font-size:13px;font-weight:600}.v69-devissues{font-size:12px;line-height:1.8;padding-left:18px;overflow-wrap:anywhere}.v69-devlog details{border-top:1px solid #ddd;padding:12px 0;font-size:12px;overflow-wrap:anywhere}.v69-devlog summary{cursor:pointer;font-weight:600}.v69-devlog small{color:#666;line-height:1.6}.v69-devconsole .jjs-dev-pre{max-width:100%;max-height:400px;overflow:auto;font-size:11px;white-space:pre-wrap;overflow-wrap:anywhere}.v69-devconsole .jjs-btnrow{flex-wrap:wrap}
@media(max-width:700px){.v69-devchecks{grid-template-columns:minmax(0,1fr)}}
