@font-face{font-family:"Fira Sans";font-style:normal;font-weight:400;font-display:swap;src:url("assets/fonts/fira-sans-400.ttf")}@font-face{font-family:"Fira Sans";font-style:normal;font-weight:500;font-display:swap;src:url("assets/fonts/fira-sans-500.ttf")}@font-face{font-family:"Fira Sans";font-style:normal;font-weight:600;font-display:swap;src:url("assets/fonts/fira-sans-600.ttf")}@font-face{font-family:"Source Serif";font-style:normal;font-weight:400;font-display:swap;src:url("assets/fonts/source-serif-400.ttf")}@font-face{font-family:"Source Serif";font-style:normal;font-weight:600;font-display:swap;src:url("assets/fonts/source-serif-600.ttf")}
:root{--ink:#202d49;--secondary:#63708a;--accent:#6551be;--deep:#172344;--pale:#f3f4fa;--rule:#e4e7f0;--serif:"Source Serif",Georgia,serif;--sans:"Fira Sans","Segoe UI",sans-serif;--bs-body-font-family:var(--sans);--bs-body-color:var(--ink);--bs-body-bg:var(--pale)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--pale);color:var(--ink);font:1rem/1.6 var(--sans)}h1,h2,h3,h4,p{margin-top:0}h1,h2,h3,h4{color:var(--ink);line-height:1.3}h1{font-family:var(--serif);font-size:2.3rem;font-weight:600;margin:0}h2{font-size:1.28rem;font-weight:500;margin:0}h3{font-size:1.05rem;font-weight:500}p{color:var(--secondary);margin-bottom:1rem}a{color:var(--accent);text-underline-offset:4px}a:hover{color:#493895}button,select{font:inherit}button:focus-visible,a:focus-visible,select:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid #b191fa;outline-offset:4px}[hidden]{display:none!important}.skip-link{position:fixed;top:-100px;left:20px;z-index:100;background:white;padding:12px 20px}.skip-link:focus{top:10px}
.sidebar{width:250px;position:fixed;inset:0 auto 0 0;padding:31px 18px 24px;background:linear-gradient(155deg,#1d2d50,#141e37 75%);color:#d8def0;display:flex;flex-direction:column;z-index:30;overflow-y:auto}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:#fff;font-size:.95rem;line-height:1.3;font-weight:500;padding:0 5px}.brand:hover{color:white}.brand small{display:block;font-weight:400;color:#a3b1cd;font-size:.75rem;margin-top:6px}.brand-mark{display:block;width:42px;height:46px;background:#354868;border:1px solid #536d84;border-radius:12px;flex-shrink:0;padding:5px}.brand-mark svg{fill:none;stroke:#85e2d1;stroke-width:2;stroke-linecap:round}.nav-caption{font-size:.75rem;color:#a1afca;margin:42px 14px 13px;letter-spacing:.04em}.project-nav{display:flex;flex-direction:column;gap:6px}.project-nav .nav-link{display:flex;align-items:center;gap:12px;position:relative;color:#bcc8e0;background:none;border:1px solid transparent;border-radius:10px;padding:13px 12px;text-align:left;font-size:.875rem;line-height:1.4;transition:background .15s,color .15s}.project-nav .nav-link svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.project-nav .nav-link.active{color:white;background:linear-gradient(100deg,#6758ab,#4d4d88);border-color:#8074bb;box-shadow:0 5px 16px #090f2233}.project-nav .nav-link.active:after{content:"";position:absolute;right:10px;width:4px;height:17px;border-radius:4px;background:#c3b6ff}.project-nav .nav-link:hover:not(.active){color:#fff;background:#ffffff0c}.sidebar-bottom{border-top:1px solid #35415c;margin:38px 9px 0;padding-top:24px;display:grid;grid-template-columns:42px 1fr;gap:10px 12px}.sidebar-team{font-family:var(--serif);font-size:1.7rem;color:#93decf;line-height:1.6;border:1px solid #527173;border-radius:10px;text-align:center}.sidebar-bottom strong,.sidebar-bottom span:not(.sidebar-team){display:block;font-size:.875rem}.sidebar-bottom div>span{font-size:.75rem!important;color:#a7b5d0}.sidebar-bottom p{grid-column:1/-1;font-size:.8125rem;color:#9cacca;margin:4px 0 3px}.sidebar-bottom a{grid-column:1/-1;color:#c5c4f4;font-size:.8125rem;text-decoration:none}
.workspace{margin-left:250px;padding:26px 32px 0;max-width:1740px}.project-masthead{position:relative;isolation:isolate;overflow:hidden;padding:28px 34px 30px;border-radius:20px;background:radial-gradient(ellipse at 89% 55%,#31516c 0,transparent 50%),linear-gradient(110deg,#223355,#263356 50%,#283b59);color:white;box-shadow:0 12px 30px #23324e14}.masthead-copy{position:relative;z-index:2;max-width:75%}.project-context{font-size:.8125rem;color:#cad1e4;display:flex;align-items:center;gap:12px;margin:0 0 15px}.project-context>span{padding:3px 10px;border:1px solid #6f8b9c;border-radius:20px;color:#bcf0e6;background:#8bddca12}.project-title{font:600 clamp(2rem,3.05vw,3.1rem)/1.1 var(--serif);letter-spacing:-.025em;color:#fff;text-decoration:none;display:inline-block}.project-title:hover{color:white}.title-dot{color:#8ddfcf}.project-description{color:#c1cce0;font-size:.9375rem;margin:12px 0 18px}.project-tags{display:flex;flex-wrap:wrap;gap:8px}.project-tags span{font-size:.75rem;padding:3px 10px;background:#ffffff0e;border:1px solid #ffffff1f;border-radius:5px;color:#d9dff0}.signal-art{position:absolute;z-index:0;right:-15px;bottom:9px;width:41%;opacity:.7;transform:rotate(-5deg)}.signal-art svg{width:100%}.signal-grid{stroke:#83b7c6;stroke-opacity:.12;stroke-width:1}.signal-line{stroke:#92e8d5;stroke-width:2.5}.signal-secondary{stroke:#c4b5fd;stroke-width:1.5;stroke-dasharray:5 5;opacity:.8}.signal-art circle{fill:#b4f3e8;stroke:#88dfd044;stroke-width:8}.masthead-credit{position:absolute;right:26px;top:27px;text-align:right;font-size:.75rem;z-index:2}.masthead-credit span{display:block;color:#a8bed4}.masthead-credit strong{color:#e7f0fb;font-weight:500}
#main{padding-top:27px;outline:none}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:25px}.page-kicker{font-size:.75rem;color:#7b8199;margin:0 0 2px;letter-spacing:.05em}.workspace-controls{display:flex;align-items:center;gap:13px}.workspace-controls label{font-size:.8125rem;color:var(--secondary)}.form-select{font-family:var(--sans);font-size:.875rem;width:122px;border:1px solid #daddE9;min-height:43px;border-radius:10px;color:var(--ink);box-shadow:0 3px 8px #2b335005}.section-intro{font-size:1rem;max-width:84ch;margin-bottom:26px}.surface{background:white;border:1px solid var(--rule);border-radius:17px;padding:25px;box-shadow:0 5px 20px #26365505}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px}.section-eyebrow{display:block;color:#787c99;font-size:.75rem;margin-bottom:5px;letter-spacing:.035em}.text-action{font-size:.8125rem;font-weight:500;text-decoration:none}.text-action:hover{text-decoration:underline}.plan-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px}.stat{position:relative;overflow:hidden;background:white;border:1px solid var(--rule);border-radius:14px;padding:18px 21px 17px;box-shadow:0 4px 15px #26365504;display:flex;flex-direction:column;border-top:3px solid #7160bc}.stat:nth-child(2){border-top-color:#289c98}.stat:nth-child(3){border-top-color:#c59649}.stat:nth-child(4){border-top-color:#5895c4}.stat:after{content:"";position:absolute;right:-18px;top:17px;height:70px;width:70px;border:13px solid #7662c00b;border-radius:50%}.stat-value{font:600 2.1rem/1.2 var(--serif);color:var(--deep);font-variant-numeric:tabular-nums;order:0}.stat-label{font-size:.8125rem;color:var(--secondary);order:1;margin-top:5px}.overview-layout{display:grid;grid-template-columns:minmax(0,1fr) 295px;gap:22px;align-items:start}.overview-layout>*{min-width:0}.overview-aside{display:flex;flex-direction:column;gap:18px}.programme-section{padding:25px 22px}.programme-scroll,.gantt-scroll{overflow-x:auto;overflow-y:hidden;max-width:100%;scrollbar-width:thin;scrollbar-color:#b7bad1 #f3f4fa}.programme-table{width:100%;min-width:600px;table-layout:fixed;border-collapse:collapse;font-size:.875rem}.programme-table th,.programme-table td{padding:18px 3px;border-bottom:1px solid #edf0f5;vertical-align:middle}.programme-table thead th{background:#f5f6fb;color:#7c819a;font-size:.75rem;font-weight:400;padding:10px 0;text-align:center}.programme-table thead th:first-child{text-align:left;padding-left:7px;border-radius:7px 0 0 7px}.programme-table thead th:last-child{border-radius:0 7px 7px 0}.programme-row>.wp-code{font-size:.75rem;font-weight:500;color:color-mix(in srgb,var(--wp) 80%,#142f42);padding-right:5px}.programme-row>th{font-weight:400;padding-right:12px}.programme-title{font:inherit;font-size:.8125rem;line-height:1.5;background:none;border:0;text-align:left;padding:0;color:var(--ink);cursor:pointer}.programme-title:hover{text-decoration:underline;color:var(--accent)}.programme-week{text-align:center;border-left:1px solid #f1f2f7}.programme-week.selected-week{background:#eaf3f3}.programme-week.midterm-week{background:#f0f0f6}.programme-mark{display:block;width:86%;height:9px;border-radius:3px;background:var(--wp);box-shadow:0 2px 4px color-mix(in srgb,var(--wp) 20%,transparent);margin:auto}.figure-note{font-size:.75rem;color:#7b8198;margin:16px 0 0;line-height:1.7}
.next-review{position:relative;overflow:hidden;border-radius:17px;padding:25px;background:linear-gradient(140deg,#6152a3,#36375f);color:white;box-shadow:0 8px 20px #463b7520}.next-review:after{content:"";position:absolute;width:190px;height:190px;border:1px solid #ffffff12;border-radius:50%;right:-90px;top:-85px;box-shadow:0 0 0 28px #ffffff04,0 0 0 55px #ffffff03;pointer-events:none}.next-review .section-eyebrow{color:#d7cefa}.next-week{font:600 2.25rem/1.2 var(--serif);color:white;margin:10px 0}.next-review h3{font-size:1.02rem;color:#f1eefb;margin:0 0 12px}.next-review p{font-size:.8125rem;color:#d2cfe8;line-height:1.7;margin-bottom:18px}.review-link{display:inline-flex;align-items:center;gap:14px;background:#f2eefc;color:#49406e!important;font-size:.8125rem;font-weight:500;border:0;border-radius:7px;text-decoration:none;padding:9px 13px}.people-section{padding:23px}.people-section .section-heading{margin-bottom:10px}.people-section .section-eyebrow{font-size:.6875rem}.team-emblem{font:600 1.7rem var(--serif);color:#dce1ed}.team-name,.team-approach{display:none}.team-members{list-style:none;margin:0;padding:0}.team-member{display:flex;gap:10px;align-items:center;padding:12px 0;border-bottom:1px solid #eef0f5}.member-avatar{width:36px;height:36px;flex-shrink:0;border-radius:12px;background:#e8e2f7;color:#655298;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:500}.team-member:nth-child(2) .member-avatar{background:#e2f3f1;color:#307d76}.member-name{display:flex;flex-direction:column;font-size:.875rem;color:var(--ink)}.member-dept{margin-left:auto;font-size:.6875rem;color:#6f7a93}.lead-badge{font-size:.75rem;color:#788399}.department-key{font-size:.6875rem;line-height:1.8;color:#8490a4;margin:15px 0 0}
.weekly-focus,.weekly-section{margin-top:31px}.focus-list,.weekly-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.focus-item,.weekly-task{position:relative;display:grid;grid-template-columns:56px minmax(0,1fr);gap:3px 13px;align-items:baseline;background:#fff;border:1px solid var(--rule);border-left:3px solid var(--wp,var(--accent));border-radius:10px;padding:16px 18px;box-shadow:0 3px 9px #26365503}.wp-code,.task-id{font-size:.75rem;font-weight:500;color:color-mix(in srgb,var(--wp,var(--accent)) 80%,#142f42)}.focus-title,.weekly-title{font-size:.875rem;line-height:1.5}.focus-owner,.weekly-owner,.weekly-task>.modelling-tag{grid-column:2;font-size:.75rem;color:#7c859a}.chart-key{display:flex;flex-wrap:wrap;gap:14px;font-size:.75rem;color:var(--secondary)}.chart-key>span{display:flex;align-items:center;gap:5px}.chart-key i{display:inline-block;height:8px;width:15px;border-radius:2px}.key-plan{background:#6c66a7}.key-review{background:#b38b39}.key-midterm{background:#c3c7d3}.gantt-table{border-collapse:separate;border-spacing:0;width:100%;min-width:1040px;table-layout:fixed;font-size:.875rem}.gantt-caption{caption-side:top;padding:0 0 14px;font-size:.75rem;color:var(--secondary)}.gantt-table th,.gantt-table td{border-bottom:1px solid var(--rule);padding:10px 5px;vertical-align:middle}.gantt-table th:first-child,.gantt-table td:first-child{width:315px;text-align:left;padding-left:12px}.gantt-table th:nth-child(2),.gantt-table td:nth-child(2){width:118px;text-align:left}.gantt-table thead th{background:#f1f2f8;color:var(--secondary);font-weight:400;text-align:center}.gantt-table thead .presentation-week{border-top:3px solid #c2964b}.gantt-table .gantt-group th{background:#e9ecf5;font-weight:500;padding-top:15px;padding-bottom:15px}.gantt-task-name{font-weight:400;font-size:.8125rem;line-height:1.6}.gantt-owner,.modelling-tag{font-size:.75rem;color:var(--secondary)}.modelling-tag{display:block;margin-top:3px}.gantt-cell{border-left:1px solid #f0f1f6;text-align:center;padding:0 2px!important}.gantt-bar{height:11px;border-radius:3px;background:var(--wp)}.gantt-table .selected-week{background:#e8f2f2}.gantt-table .midterm-week{background:#f0f0f5}
.work-package-list{display:grid;gap:16px}.work-package{background:white;border:1px solid var(--rule);border-left:4px solid var(--wp);border-radius:14px;box-shadow:0 5px 18px #26365505}.work-package>summary{display:grid;grid-template-columns:48px minmax(150px,1fr) 60px 115px 14px;gap:15px;align-items:center;padding:24px 22px;cursor:pointer;list-style:none}.work-package>summary::-webkit-details-marker{display:none}.work-package>summary:after{content:"+";color:var(--wp);font-size:1.6rem}.work-package[open]>summary:after{content:"−"}.work-package>summary>.wp-code{background:color-mix(in srgb,var(--wp) 10%,white);padding:9px 7px;border-radius:8px;text-align:center}.package-title{font-size:1rem;font-weight:500}.package-count,.package-status{font-size:.75rem;color:var(--secondary)}.package-status{text-align:right}.package-body{padding:0 24px 25px}.package-summary-text{font-size:.9375rem;max-width:82ch;margin-bottom:20px}.task-detail{display:grid;grid-template-columns:60px minmax(180px,1fr) 130px 95px 90px;gap:10px;align-items:baseline;border-top:1px solid #edf0f5;padding:16px 0}.task-title{font-size:.875rem}.task-weeks,.task-owner{font-size:.75rem;color:var(--secondary)}.task-status{font-size:.6875rem;color:#737d93;white-space:nowrap;padding:4px 7px;background:#f2f3f8;border-radius:5px;display:inline-block}.task-statuses{display:flex;flex-direction:column;gap:5px}.status-complete{color:#24715c;background:#e4f3ed}.status-in-progress{color:#3b5d9d;background:#eaf0fc}.status-blocked{color:#aa4353;background:#fff0f3}.task-outputs{grid-column:2/-1;display:flex;flex-wrap:wrap;gap:12px;font-size:.8125rem}
.section-banner{position:relative;overflow:hidden;display:flex;justify-content:space-between;gap:35px;border:1px solid #dedcef;border-radius:18px;padding:30px 35px;margin-bottom:25px;background:linear-gradient(120deg,#ece8f9,#f5f4fc)}.section-banner>div:first-child{max-width:760px;z-index:1}.section-banner h2{font:600 1.9rem/1.3 var(--serif);color:#3b3463;margin:7px 0 15px}.section-banner p{font-size:.875rem;color:#69647f;line-height:1.8;margin:0;max-width:76ch}.banner-number{font:600 7.2rem/1.1 var(--serif);color:#d6d0e8;align-self:center;letter-spacing:-.08em;padding-right:10px}.risk-banner{background:linear-gradient(120deg,#e7f2f1,#f3f8f7);border-color:#d7e7e5}.risk-banner h2{color:#255b5e}.risk-banner .section-eyebrow,.risk-banner p{color:#55787b}.risk-emblem{width:110px;min-width:90px;fill:none;stroke:#91bcbb;stroke-width:2;align-self:center;margin-right:20px}.risk-emblem path+path{stroke-width:4}.presentation-rail{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin:0 0 27px}.presentation-stop{position:relative;border:1px solid #dcdfea;border-radius:11px;background:white;padding:13px 8px;color:#626b85;cursor:pointer}.presentation-stop small{display:block;font-size:.75rem}.presentation-stop strong{font:600 1.5rem var(--serif)}.presentation-stop:hover,.presentation-stop.is-next{background:#ece8f9;border-color:#b1a1d9;color:#51428b}.presentation-grid,.risk-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:23px;align-items:start}.presentation-card,.risk-card{background:white;border:1px solid var(--rule);border-radius:16px;box-shadow:0 5px 20px #26365505;overflow:hidden;min-width:0;scroll-margin-top:25px}.presentation-card{padding:25px;position:relative;border-top:3px solid #bdafdd}.presentation-card.is-next{border-color:#ad9aca;box-shadow:0 6px 22px #55438a10}.presentation-card:focus{outline:3px solid #ad9aca;outline-offset:3px}.presentation-top{display:flex;align-items:center;gap:15px;margin-bottom:17px}.week-medallion{display:flex;flex-direction:column;align-items:center;justify-content:center;width:57px;height:62px;flex-shrink:0;border-radius:12px;background:#eee9f9;color:#625094}.week-medallion small{font-size:.6875rem;line-height:1.2}.week-medallion strong{font:600 1.7rem/1.2 var(--serif)}.presentation-top h3{font-size:1.05rem;margin:0 0 4px}.review-position{color:#817795;font-size:.75rem}.package-tags{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 17px}.package-tag{display:inline-block;font-size:.6875rem;font-weight:500;border:1px solid color-mix(in srgb,var(--wp,var(--accent)) 20%,white);padding:2px 8px;border-radius:5px;color:color-mix(in srgb,var(--wp,var(--accent)) 85%,#142f42);background:color-mix(in srgb,var(--wp,var(--accent)) 7%,white);text-decoration:none}.card-label{font-size:.75rem;font-weight:500;color:#544772;margin:0 0 10px}.expectation-list{list-style:none;margin:0;padding:0}.expectation-list li{position:relative;padding:0 0 13px 21px;font-size:.875rem;line-height:1.65;color:#596780}.expectation-list li:before{content:"";width:7px;height:7px;border-radius:2px;background:#b2a3d6;position:absolute;left:0;top:8px}.evidence-box{padding:15px 17px;background:#f5f3fa;border-radius:9px;margin:5px 0 18px}.evidence-box p{font-size:.8125rem;color:#706985;line-height:1.7;margin:0}.evidence-box .card-label{margin-bottom:5px}.review-footer{display:flex;justify-content:space-between;gap:10px;border-top:1px solid #edebf2;padding-top:14px;font-size:.75rem;color:#7b8298}.review-footer a{font-size:.75rem}.risk-card{border-top:3px solid #639995}.risk-card-header{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:19px 24px 0}.risk-id{font-size:.75rem;color:#3d7771;font-weight:500}.risk-state{font-size:.6875rem;padding:3px 9px;background:#f2f4f8;color:#7c8397;border-radius:5px}.risk-card>h3{font-size:1.07rem;margin:14px 24px}.risk-card>.package-tags{margin:0 24px 17px}.risk-details{margin:0 24px 21px}.risk-details dt{font-size:.75rem;color:#7a8796;font-weight:500;margin-top:13px}.risk-details dd{font-size:.875rem;color:#586a7c;line-height:1.7;margin:4px 0 0}.risk-response{background:#f0f7f5;border-top:1px solid #e0ede9;padding:17px 24px 20px}.risk-response h4{font-size:.75rem;color:#39726d;margin:0 0 6px;font-weight:500}.risk-response p{font-size:.875rem;line-height:1.7;color:#4e6f6d;margin:0 0 15px}.risk-response p:last-child{margin:0}.risk-owner{font-size:.75rem;color:#7e8c99;padding:13px 24px;border-top:1px solid #e9eeef}
.empty-state{padding:42px;background:linear-gradient(135deg,#fff,#f8f7fd);border:1px dashed #ccd0e0;border-radius:17px;max-width:1000px;position:relative;overflow:hidden;font-size:.9375rem}.empty-state:before{content:"";display:block;width:43px;height:5px;background:linear-gradient(90deg,#8c7bbb,#5cadac);border-radius:5px;margin-bottom:22px}.empty-state h3{font:600 1.45rem var(--serif);margin-bottom:12px}.empty-state p{font-size:.9375rem;max-width:75ch;margin:0}.focus-list>.empty-state,.weekly-list>.empty-state{grid-column:1/-1}.resource-section{background:white;border:1px solid var(--rule);border-radius:16px;padding:26px;margin-bottom:20px;display:grid;grid-template-columns:155px minmax(0,1fr);gap:27px}.resource-section-title{font:600 1.35rem var(--serif);color:#52537e;margin:0}.resource-grid{display:grid;gap:20px}.resource-card{border-bottom:1px solid var(--rule);padding-bottom:20px}.resource-card:last-child{border-bottom:0;padding-bottom:0}.resource-type{display:none}.resource-title{font-size:1.05rem;margin:0 0 8px}.resource-description{font-size:.9375rem;margin-bottom:12px}.resource-card a{font-size:.8125rem}.resource-section>p{font-size:.9375rem;margin:0}.journal-list{position:relative;padding-left:25px;border-left:2px solid #ddd9ed;margin-left:9px}.journal-entry{position:relative;background:white;border:1px solid var(--rule);border-radius:14px;padding:23px 27px;margin-bottom:19px}.journal-entry:before{content:"";position:absolute;left:-34px;top:30px;width:13px;height:13px;background:#8675b5;border:3px solid var(--pale);border-radius:50%}.entry-kind{font-size:.75rem;color:#756097;background:#f1edf8;padding:3px 9px;border-radius:4px;display:inline-block;margin-right:12px}.entry-date{font-size:.75rem;color:#8a90a2}.entry-title{font-size:1.07rem;margin:13px 0 10px}.entry-summary,.entry-actions{font-size:.9375rem;max-width:86ch;margin-bottom:0}.entry-actions{padding-left:20px}.entry-action{padding-top:12px}.action-meta{display:block;color:var(--secondary);font-size:.8125rem}.journal-list>.empty-state{padding:25px}.result-card{background:white;border:1px solid var(--rule);border-radius:16px;padding:27px;margin-bottom:20px}.result-title{font:600 1.35rem var(--serif);margin-bottom:20px}.result-meta{display:grid;grid-template-columns:90px 1fr;gap:5px 20px;font-size:.875rem}.result-meta dt{font-weight:500}.result-meta dd{margin:0;color:var(--secondary)}.result-metrics{display:flex;flex-wrap:wrap;gap:30px;padding:17px 0;margin:20px 0;list-style:none;border-block:1px solid var(--rule)}.metric-name{display:block;font-size:.75rem;color:var(--secondary)}.metric-value{font:600 1.8rem var(--serif)}.result-notes{font-size:.9375rem}.workspace-footer{margin-top:38px;border-top:1px solid #dde1ec;padding:23px 0;display:flex;justify-content:space-between;gap:15px;font-size:.75rem;color:#8b91a5}.workspace-footer>div{display:flex;flex-wrap:wrap;gap:20px}.workspace-footer>span>span{padding:0 5px}.workspace-footer a{text-decoration:none}
@media(min-width:1600px){.workspace{padding:30px 44px 0}.overview-layout{grid-template-columns:minmax(0,1fr) 330px}.project-masthead{padding:34px 40px}.programme-table th,.programme-table td{padding-top:23px;padding-bottom:23px}}
@media(max-width:1250px){.sidebar{width:224px;padding-inline:12px}.workspace{margin-left:224px;padding:22px 24px 0}.brand{font-size:.8125rem}.brand-mark{width:36px;height:42px}.project-nav .nav-link{font-size:.8125rem;gap:9px}.overview-layout{grid-template-columns:minmax(0,1fr)}.overview-aside{display:grid;grid-template-columns:1fr 1fr}.programme-table{min-width:640px}.task-detail{grid-template-columns:52px minmax(180px,1fr) 112px 90px}.task-statuses{grid-column:2}.project-title{font-size:2.4rem}.masthead-credit{font-size:.6875rem}.masthead-copy{max-width:80%}.signal-art{opacity:.4;width:40%}.work-package>summary{grid-template-columns:45px minmax(130px,1fr) 55px 100px 12px;gap:12px}.presentation-grid,.risk-grid{gap:17px}.presentation-card{padding:22px}.banner-number{font-size:6rem}.risk-card-header{padding-inline:21px}.risk-card>h3,.risk-card>.package-tags{margin-inline:21px}.risk-details{margin-inline:21px}.risk-response{padding-inline:21px}}
@media(max-width:960px){.sidebar{position:relative;width:100%;inset:auto;padding:17px 22px 0;overflow:visible}.brand{font-size:.9375rem;max-width:300px}.brand-mark{width:37px;height:41px}.brand small{display:inline;margin-left:8px;font-size:.6875rem}.nav-caption,.sidebar-bottom{display:none}.project-nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;padding:17px 0}.project-nav .nav-link{font-size:.8125rem;padding:10px;gap:8px}.project-nav .nav-link.active:after{display:none}.project-nav .nav-link svg{width:16px;height:16px}.workspace{margin:0;max-width:none;padding:22px 24px 0}.project-title{font-size:2.8rem}.masthead-credit{font-size:.75rem}.masthead-copy{max-width:75%}.programme-table{min-width:640px}.project-masthead{padding:27px 30px}.resource-section{grid-template-columns:130px 1fr}.page-heading{margin-bottom:23px}.stat{padding-inline:19px}.presentation-grid,.risk-grid{gap:18px}}
@media(max-width:650px){.sidebar{padding:16px 16px 0}.brand{font-size:.875rem}.brand small{display:block;margin:3px 0 0}.project-nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 7px;padding-top:15px;padding-bottom:16px}.project-nav .nav-link{font-size:.8125rem;padding:9px 10px;min-height:38px}.workspace{padding:16px 16px 0}.project-masthead{border-radius:15px;padding:24px 23px}.masthead-copy{max-width:100%}.project-context{font-size:.75rem;margin-bottom:14px;gap:10px}.project-title{font-size:2rem;line-height:1.12;max-width:10ch}.project-description{font-size:.875rem;max-width:28ch;line-height:1.7;margin:12px 0 15px}.project-tags{gap:6px}.project-tags span{font-size:.6875rem;padding:2px 7px}.signal-art{width:68%;right:-45px;bottom:57px;opacity:.24}.masthead-credit{position:relative;top:auto;right:auto;text-align:left;display:flex;gap:8px;font-size:.6875rem;margin-top:16px;padding-top:12px;border-top:1px solid #ffffff20}.masthead-credit span{display:inline}#main{padding-top:22px}.page-heading{align-items:center;gap:14px;margin-bottom:21px}.page-heading h1{font-size:1.75rem}.page-kicker{font-size:.6875rem}.workspace-controls{display:block;flex-shrink:0}.workspace-controls label{display:block;font-size:.6875rem;margin-bottom:4px}.form-select{width:102px;min-height:38px;font-size:.8125rem}.plan-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin-bottom:19px}.stat{padding:15px 17px;border-radius:11px}.stat-value{font-size:1.9rem}.stat-label{font-size:.75rem}.overview-layout{gap:18px}.surface,.programme-section{padding:21px 18px;border-radius:14px}.section-heading{gap:12px;margin-bottom:19px}.section-heading h2{font-size:1.16rem}.section-eyebrow{font-size:.6875rem}.text-action{font-size:.75rem;text-align:right;max-width:130px}.overview-aside{grid-template-columns:1fr}.next-review{padding:24px}.next-review h3{font-size:1.08rem}.next-review p{font-size:.875rem}.people-section{padding:23px}.programme-table{min-width:615px}.programme-table th,.programme-table td{padding-top:17px;padding-bottom:17px}.figure-note{font-size:.75rem}.weekly-focus,.weekly-section{margin-top:26px}.focus-list,.weekly-list{grid-template-columns:1fr;gap:10px}.focus-item,.weekly-task{padding:15px;grid-template-columns:51px minmax(0,1fr);gap:3px 10px}.section-intro{font-size:.9375rem;margin-bottom:22px}.chart-key{font-size:.6875rem;gap:8px}.chart-key i{width:10px}.work-package>summary{grid-template-columns:44px minmax(0,1fr) 12px;gap:5px 12px;padding:19px 15px}.work-package>summary:after{grid-column:3;grid-row:1}.package-title{grid-column:2;font-size:.9375rem}.package-count{grid-column:2;font-size:.75rem}.package-status{grid-column:2;text-align:left;font-size:.75rem}.package-body{padding:0 18px 18px}.package-summary-text{font-size:.875rem}.task-detail{grid-template-columns:51px minmax(0,1fr);gap:3px 9px;padding:15px 0}.task-title{font-size:.8755rem}.task-weeks,.task-owner,.task-statuses{grid-column:2}.task-statuses{align-items:flex-start;margin-top:4px}.task-id{font-size:.75rem}.presentation-grid,.risk-grid{grid-template-columns:1fr;gap:19px}.section-banner{padding:23px;border-radius:14px;gap:10px}.section-banner h2{font-size:1.65rem}.section-banner p{font-size:.875rem;line-height:1.8}.banner-number{position:absolute;right:11px;top:5px;font-size:5rem;opacity:.3}.risk-emblem{position:absolute;right:10px;top:12px;width:100px;opacity:.15;margin:0}.presentation-rail{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:21px}.presentation-stop{padding:9px 5px}.presentation-card{padding:23px}.review-footer{font-size:.6875rem}.risk-card>h3{font-size:1.08rem}.resource-section{display:block;padding:23px}.resource-section-title{margin-bottom:22px;font-size:1.3rem}.resource-title{font-size:1rem}.resource-description{font-size:.875rem}.journal-list{padding-left:17px;margin-left:4px}.journal-entry{padding:21px}.journal-entry:before{left:-26px}.entry-title{font-size:1.05rem}.entry-summary,.entry-actions{font-size:.875rem}.empty-state{padding:27px 23px}.empty-state h3{font-size:1.4rem}.empty-state p{font-size:.875rem}.workspace-footer{flex-direction:column;font-size:.6875rem;gap:7px;margin-top:29px}.workspace-footer>div{gap:15px}.result-meta{grid-template-columns:70px minmax(0,1fr);gap:5px 12px}.result-card{padding:23px}.result-title{font-size:1.35rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
@media print{body{background:#fff}.sidebar,.signal-art,.workspace-controls,.project-tags,.workspace-footer,.text-action{display:none!important}.workspace{margin:0;padding:0}.project-masthead{background:#fff;box-shadow:none;border-bottom:2px solid #333;padding:0 0 20px}.project-title,.project-description,.project-context,.project-context>span,.masthead-credit strong{color:#222}.project-title{font-size:24pt}.masthead-credit{color:#333}.page-heading{margin-top:10px}.page-kicker{display:none}.surface,.presentation-card,.risk-card,.work-package{box-shadow:none;break-inside:avoid}.overview-layout,.presentation-grid,.risk-grid{grid-template-columns:1fr}.overview-aside{display:grid;grid-template-columns:1fr 1fr}.next-review{background:#eee;color:#222;box-shadow:none}.next-review p,.next-review h3,.next-review .next-week,.next-review .section-eyebrow{color:#222}.programme-scroll,.gantt-scroll{overflow:visible}.programme-table{min-width:0}.gantt-table{min-width:0;font-size:7pt}.gantt-table th:first-child,.gantt-table td:first-child{width:170px}.gantt-table th:nth-child(2),.gantt-table td:nth-child(2){width:60px}.gantt-task-name,.gantt-owner,.modelling-tag{font-size:7pt}.gantt-bar,.programme-mark{print-color-adjust:exact;-webkit-print-color-adjust:exact}.tab-pane:not(.active){display:none!important}}

/* Five main sections; native disclosure groups keep the plan compact. */
.plan-groups{display:grid;gap:18px}.plan-group{background:#fff;border:1px solid var(--rule);border-radius:16px;box-shadow:0 5px 20px #26365505;scroll-margin-top:24px;min-width:0}.plan-group>summary{display:flex;align-items:center;gap:18px;padding:25px 28px;cursor:pointer;list-style:none}.plan-group>summary::-webkit-details-marker{display:none}.plan-group>summary:after{content:'+';margin-left:auto;font-size:1.65rem;color:#7a6ba7;flex-shrink:0}.plan-group[open]>summary:after{content:'−'}.plan-group[open]>summary{border-bottom:1px solid var(--rule)}.group-symbol{width:48px;height:48px;display:flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:13px;color:#6a58a1;background:#eee9f8;font-size:1.55rem}.plan-group:nth-child(2) .group-symbol{color:#387d91;background:#e7f1f6}.plan-group:nth-child(3) .group-symbol{color:#438b7c;background:#e5f4ef}.group-heading{display:flex;flex-direction:column;gap:5px;min-width:0}.group-title{font-size:1.125rem;font-weight:500;color:var(--ink)}.group-description{font-size:.875rem;color:var(--secondary);line-height:1.65}.group-content{padding:26px;min-width:0}.group-content>.surface{padding:0;box-shadow:none;border:0;border-radius:0}.research-section{scroll-margin-top:24px}.research-section+.research-section{margin-top:35px;padding-top:29px;border-top:1px solid #dfe3ef}
@media(max-width:650px){.project-nav .nav-link:last-child{grid-column:1/-1}.plan-groups{gap:14px}.plan-group>summary{padding:21px 17px;gap:13px}.group-symbol{width:39px;height:43px;border-radius:10px;font-size:1.35rem}.group-title{font-size:1rem}.group-description{font-size:.8125rem}.group-content{padding:21px 15px}.group-content .section-banner{padding:20px}.group-content .section-intro{font-size:.875rem}}

/* Refinements for the consolidated five-page workspace. */
.sidebar-bottom{margin-top:auto;flex-shrink:0}.project-nav{padding-bottom:30px}.sidebar-bottom a>span:not(.sidebar-team){display:inline;font-size:inherit}
body:not([data-view="overview"]) .project-masthead{padding:22px 30px;border-radius:17px;min-height:124px;display:flex;align-items:center}
body:not([data-view="overview"]) .project-context,body:not([data-view="overview"]) .project-tags{display:none}
body:not([data-view="overview"]) .project-title{font-size:2rem;max-width:none}
body:not([data-view="overview"]) .project-description{margin:9px 0 0;font-size:.875rem}
body:not([data-view="overview"]) .signal-art{width:32%;bottom:-25px;opacity:.45}
body[data-view="results"] .workspace-controls,body[data-view="journal"] .workspace-controls{display:none}
.plan-group{--group-accent:#7660b4;--group-soft:#f4f0fc;border-left:3px solid var(--group-accent);transition:border-color .16s,box-shadow .16s}
#plan-packages{--group-accent:#4688a0;--group-soft:#eef6f9}#plan-risks{--group-accent:#4b9585;--group-soft:#eef8f3}
.plan-group>summary{padding:25px 27px;gap:18px}.plan-group>summary:after{content:"";width:9px;height:9px;border-right:1.5px solid var(--group-accent);border-bottom:1.5px solid var(--group-accent);transform:rotate(45deg);margin:0 3px 5px 4px}
.plan-group[open]>summary:after{content:"";transform:rotate(225deg);margin-top:5px;margin-bottom:0}
.plan-group[open]{box-shadow:0 8px 26px #26365509}.plan-group[open]>summary{background:linear-gradient(110deg,var(--group-soft),#fff);border-radius:13px 13px 0 0}
.group-symbol svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.group-heading{flex:1}.group-description{max-width:62ch}.group-count{font-size:.75rem;font-weight:500;white-space:nowrap;color:var(--group-accent);border:1px solid color-mix(in srgb,var(--group-accent) 20%,white);background:var(--group-soft);padding:5px 11px;border-radius:20px}
.group-content{background:#fafbfe;border-radius:0 0 14px 14px;padding:25px}.group-content>.surface{background:transparent}.group-content>.section-intro{margin-bottom:22px}.group-content .risk-banner{margin-bottom:23px;padding:19px 23px;border-radius:11px}.group-content .risk-banner .risk-emblem{width:65px;min-width:65px;margin-right:0}.group-content .risk-banner .section-eyebrow{font-weight:500;font-size:.8125rem}.group-content .risk-banner p{font-size:.875rem}
.research-layout{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:24px;align-items:start}.research-layout>.research-section{min-width:0;background:#fff;border:1px solid var(--rule);border-radius:17px;padding:26px;box-shadow:0 5px 20px #26365505;margin:0}.research-layout .section-heading{margin-bottom:19px}.research-layout .section-intro{font-size:1rem;line-height:1.75;margin-bottom:22px}.research-layout .empty-state{padding:29px 25px;background:#f8f7fc;border:1px dashed #d3cbe5;border-radius:12px}.research-layout .empty-state h3{font-size:1.35rem}.research-layout .empty-state p{font-size:1rem;line-height:1.75}.research-layout .resource-section{display:block;padding:21px 0;margin:0;border:0;border-top:1px solid var(--rule);border-radius:0;background:transparent;box-shadow:none}.research-layout .resource-section:first-child{border-top:0;padding-top:2px}.research-layout .resource-section:last-child{padding-bottom:0}.research-layout .resource-section-title{font:500 .8125rem var(--sans);color:#837196;margin:0 0 15px}.research-layout .resource-grid{gap:18px}.research-layout .resource-title{font-size:1rem}.research-layout .resource-description{font-size:.9375rem;line-height:1.75;margin-bottom:9px}.research-layout .resource-card{padding-bottom:18px}.research-layout .resource-card:last-child{padding:0}.research-layout .resource-section>p{font-size:.875rem;line-height:1.75}.research-layout .resource-card a{display:inline-flex;border-bottom:1px solid #c9bee2;padding-bottom:2px;font-size:.8125rem;text-decoration:none}.research-layout .result-card{padding:0 0 24px;margin-bottom:24px;border:0;border-bottom:1px solid var(--rule);border-radius:0;box-shadow:none}.research-layout .result-card:last-child{padding-bottom:0;margin-bottom:0;border-bottom:0}
.presentation-banner{padding:24px 30px}.presentation-banner h2{font-size:1.7rem;margin:7px 0 10px}.presentation-banner .banner-number{font-size:5.6rem}.presentation-grid,.risk-grid{align-items:stretch}.presentation-card,.risk-card{display:flex;flex-direction:column}.presentation-card .evidence-box{margin-top:auto}.presentation-top{min-height:66px}.expectation-list{margin-bottom:8px}.expectation-list li,.risk-details dd,.risk-response p{font-size:1rem}.card-label,.risk-details dt,.risk-response h4{font-size:.8125rem}.risk-response{margin-top:auto}.evidence-box p{line-height:1.75}
@media(hover:hover){.plan-group>summary:hover{background:var(--group-soft)}.resource-card a:hover{border-bottom-color:var(--accent)}}
@media(max-width:1199px){.research-layout{grid-template-columns:1fr}.group-count{font-size:.6875rem;padding-inline:9px}}
@media(max-width:960px){.brand small{display:block;margin-left:0;margin-top:3px}.project-nav{padding-bottom:17px}body:not([data-view="overview"]) .project-masthead{min-height:116px}}
@media(max-width:650px){body:not([data-view="overview"]) .project-masthead{padding:20px 22px;min-height:123px}body:not([data-view="overview"]) .project-title{font-size:1.55rem}body:not([data-view="overview"]) .project-description{font-size:.8125rem;line-height:1.6;max-width:30ch;margin-top:8px}body:not([data-view="overview"]) .signal-art{width:55%;bottom:-12px;right:-35px;opacity:.17}.group-count{grid-column:2;grid-row:2;justify-self:start;font-size:.75rem;white-space:normal;padding:3px 10px}.plan-group>summary{display:grid;grid-template-columns:39px minmax(0,1fr) 12px;padding:21px 16px;gap:10px 12px}.group-symbol{grid-column:1;grid-row:1/3;align-self:start}.group-heading{grid-column:2;grid-row:1}.plan-group>summary:after{grid-column:3;grid-row:1/3;align-self:center}.group-description{font-size:.8125rem}.group-content{padding:21px 14px}.group-content .risk-banner{padding:18px}.research-layout{gap:20px}.research-layout>.research-section{padding:23px 21px}.research-layout .empty-state{padding:24px 20px}.research-layout .section-intro{font-size:.9375rem}.research-layout .empty-state p{font-size:.9375rem}.presentation-banner{padding:22px}.presentation-banner h2{font-size:1.5rem}.presentation-banner .banner-number{font-size:4.8rem}.presentation-top{min-height:0}.risk-details dd,.risk-response p,.expectation-list li{font-size:1rem}.evidence-box p{font-size:.875rem}}
@media print{body:not([data-view="overview"]) .project-masthead{padding:0 0 15px;min-height:0}.research-layout{display:block}.research-layout>.research-section{margin-bottom:20px}.group-count{border:1px solid #bbb;background:#fff;color:#333}.group-content{background:#fff}}

/* A shared team introduction directly beneath the project masthead. */
.team-spotlight{position:relative;isolation:isolate;overflow:hidden;display:grid;grid-template-columns:225px minmax(0,1fr);gap:25px;align-items:center;margin-top:15px;padding:23px 26px;border:1px solid #deddec;border-radius:17px;background:linear-gradient(115deg,#f7f3fe,#fff 52%,#f0f8f7);box-shadow:0 7px 24px #26365508}
.team-spotlight:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:linear-gradient(90deg,#8a75c3,#c5bce7 45%,#71b6ac);z-index:-1}
.team-spotlight:after{content:"";position:absolute;right:-55px;bottom:-86px;width:190px;height:190px;border:1px solid #80b5ae24;border-radius:50%;box-shadow:0 0 0 23px #80b5ae09,0 0 0 47px #80b5ae06;z-index:-1;pointer-events:none}
.team-intro{display:flex;align-items:center;gap:14px}.team-intro .team-emblem{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:45px;height:52px;border:1px solid #d5cce8;border-radius:15px;color:#78639e;background:#eee8f7;font-size:1.7rem}.team-intro .section-eyebrow{font-size:.6875rem;line-height:1.6;max-width:19ch;margin-bottom:4px;color:#74678d}.team-intro h2{font-family:var(--serif);font-size:1.5rem}
.team-spotlight .team-members{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:1fr;gap:16px}.team-spotlight .team-member{min-width:0;gap:13px;padding:16px;border:1px solid #e4e3ee;border-radius:13px;background:#ffffffc9;box-shadow:0 3px 9px #26365503}.team-spotlight .member-avatar{width:46px;height:46px;border:1px solid #ddd3ef;font-size:.875rem;border-radius:15px;box-shadow:0 3px 0 #6552980b}.team-spotlight .team-member:nth-child(2) .member-avatar{border-color:#c9e5df;box-shadow:0 3px 0 #307d760b}.member-details{min-width:0}.team-spotlight .member-name{font-size:1rem;font-weight:500;line-height:1.5}.team-spotlight .member-dept{display:block;margin:5px 0 0;font-size:.75rem;line-height:1.6;color:#6a728b}.overview-aside{display:flex;flex-direction:column}
@media(max-width:1250px){.team-spotlight{grid-template-columns:1fr;gap:17px;padding:21px 23px}.team-intro .section-eyebrow{max-width:none}.team-intro .team-emblem{width:40px;height:43px;font-size:1.5rem}.team-intro h2{font-size:1.3rem}.team-intro .section-eyebrow{margin-bottom:1px}}
@media(max-width:650px){.team-spotlight{margin-top:12px;padding:20px 18px;gap:17px;border-radius:14px}.team-spotlight .team-members{grid-template-columns:1fr;gap:10px}.team-spotlight .team-member{padding:13px;gap:12px}.team-spotlight .member-avatar{width:43px;height:43px}.team-spotlight .member-name{font-size:.9375rem}.team-spotlight .member-dept{font-size:.75rem;max-width:27ch;margin-top:3px}}
@media print{.team-spotlight{break-inside:avoid;background:white;box-shadow:none}.team-spotlight:before,.team-spotlight:after{display:none}}

/* Native, finite motion; no extra library or hidden-content reveal system. */
@media screen and (prefers-reduced-motion:no-preference){
 @keyframes signal-draw{from{stroke-dashoffset:1000}to{stroke-dashoffset:0}}
 @keyframes signal-travel{from{stroke-dashoffset:40}to{stroke-dashoffset:0}}
 @keyframes signal-beacon{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.35);opacity:.55}}
 @keyframes masthead-light{from{transform:translateX(-100%)}to{transform:translateX(100%)}}
 @keyframes content-arrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
 @keyframes team-accent{from{background-position:100% 0}to{background-position:0 0}}
 .signal-line{stroke-dasharray:1000;animation:signal-draw 2.4s cubic-bezier(.22,1,.36,1) both}
 .signal-secondary{animation:signal-travel 3.5s ease-out}
 .signal-art circle{transform-box:fill-box;transform-origin:center;animation:signal-beacon 1.8s ease-in-out 2}
 .signal-art circle:last-child{animation-delay:.35s}
 .project-masthead:after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(110deg,transparent 25%,#c6f3ec0b 48%,transparent 70%);animation:masthead-light 2.8s ease-in-out both}
 .team-spotlight:before{background-size:200% 100%;animation:team-accent 2.8s ease-out}
 .team-spotlight .team-member{animation:content-arrive .5s ease-out backwards}
 #project-panels>.tab-pane.active{animation:content-arrive .32s ease-out}
 #panel-overview.active .stat{animation:content-arrive .42s ease-out backwards}
 #panel-overview.active .stat:nth-child(2){animation-delay:45ms}
 #panel-overview.active .stat:nth-child(3){animation-delay:90ms}
 #panel-overview.active .stat:nth-child(4){animation-delay:135ms}
 .plan-group[open]>.group-content,.work-package[open]>.package-body{animation:content-arrive .25s ease-out}
 .plan-group>summary:after{transition:transform .22s ease}
 .project-nav .nav-link{transition:background .2s,color .2s,transform .2s,box-shadow .2s}
 .team-spotlight .team-member,.stat,.presentation-card,.risk-card,.review-link,.presentation-stop,.focus-item{transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
 @media(hover:hover) and (pointer:fine){
  .team-spotlight .team-member:hover,.stat:hover,.presentation-card:hover,.risk-card:hover{transform:translateY(-3px);box-shadow:0 10px 25px #26365513;border-color:#b9afd2}
  .project-nav .nav-link:hover{transform:translateX(3px)}
  .review-link:hover,.presentation-stop:hover,.focus-item:hover{transform:translateY(-2px);box-shadow:0 6px 16px #26365516}
 }
 .review-link:focus-visible,.presentation-stop:focus-visible{transform:translateY(-2px)}
}

/* 2026-09-29 audit: latest update, presentation disclosures, pending resources, mobile order */
.latest-update{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 22px;background:#fff;border:1px solid var(--rule);border-left:3px solid #7160bc;border-radius:14px;padding:17px 22px;margin-bottom:24px;box-shadow:0 4px 15px #26365504}
.latest-update>p{margin:0}
.update-head{display:flex;align-items:baseline;gap:10px;flex-shrink:0}
.update-head .section-eyebrow{margin:0;font-weight:500;color:#5b5190}
.update-date{font-size:.8125rem;color:#5e6781;font-variant-numeric:tabular-nums}
.update-empty{font-size:.9375rem;color:#5e6781;margin:0}
.update-grid{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 14px;margin:0;flex:1 1 420px}
.update-grid dt{font-size:.8125rem;font-weight:500;color:#544772}
.update-grid dd{margin:0;font-size:.9375rem;color:var(--ink)}
.update-blocker{color:#9b3f4d!important}
.update-evidence{font-size:.875rem;font-weight:500}
.presentation-grid{grid-template-columns:1fr;gap:14px}
.presentation-card{padding:0}
.presentation-card>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:15px;padding:18px 24px;margin:0;min-height:0}
.presentation-card>summary::-webkit-details-marker{display:none}
.presentation-card>summary:after{content:"";width:9px;height:9px;margin-left:auto;flex-shrink:0;border-right:1.5px solid #7a6ba7;border-bottom:1.5px solid #7a6ba7;transform:rotate(45deg);transition:transform .2s ease}
.presentation-card[open]>summary:after{transform:rotate(225deg)}
.presentation-heading{display:flex;flex-direction:column;gap:2px;min-width:0}
.presentation-title{font-size:1.05rem;font-weight:500;color:var(--ink);line-height:1.35}
.review-position{color:#6b6480}
.presentation-body{padding:0 24px 22px 96px;display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:0 30px;align-items:start}
.presentation-body>.package-tags,.presentation-body>.card-label,.presentation-body>.review-footer{grid-column:1/-1}
.presentation-body>.expectation-list{grid-column:1;margin:0}
.presentation-body>.evidence-box{grid-column:2;grid-row:3;margin:0}
.presentation-card[open]{border-color:#c9bde3}
.presentation-card[open]>.presentation-body{animation:content-arrive .25s ease-out}
.resource-pending{display:inline-block;font-size:.8125rem;color:#5e6781;background:#f2f3f8;border-radius:5px;padding:3px 9px}
@media(max-width:900px){.presentation-body{grid-template-columns:1fr;padding-left:24px}.presentation-body>.evidence-box{grid-column:1;grid-row:auto;margin-top:10px}}
@media(max-width:767px){.overview-aside{order:-1}.latest-update{padding:15px 17px;margin-bottom:18px}.presentation-card>summary{padding:15px 17px}.presentation-body{padding:0 17px 18px}}
@media(max-width:767px){.programme-row>.wp-code{position:sticky;left:0;z-index:1;background:#fff;box-shadow:6px 0 6px -6px #26365522}}
/* Team page: hours, assignments, threads */
.team-toolbar{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}
.team-toolbar .section-intro{margin-bottom:14px}
.team-meta{display:flex;align-items:center;gap:12px;font-size:.8125rem;color:#5e6781;white-space:nowrap}
.team-refresh{border:1px solid #d6d9e6;background:#fff;border-radius:8px;padding:5px 12px;color:#4d4580;font-size:.8125rem}
.team-refresh:hover{border-color:#b1a1d9}.team-refresh:disabled{opacity:.55}
.team-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:22px}
.team-action{display:inline-flex;align-items:center;gap:7px;text-decoration:none;font-size:.875rem;font-weight:500;color:#473b85;background:#fff;border:1px solid #d3cce9;border-radius:10px;padding:9px 15px;box-shadow:0 2px 6px #26365506}
.team-action:before{content:"+";font-size:1.05rem;line-height:1;color:#7a6ba7}
.team-action:hover{background:#f4f1fc;border-color:#b1a1d9;color:#3a2f73}
.team-public-note{flex-basis:100%;font-size:.8125rem;color:#5e6781;margin:2px 0 0}
.team-notice{border-radius:12px;padding:14px 18px;font-size:.9375rem;margin-bottom:20px;background:#fff;border:1px solid var(--rule);color:#4f5a73}
.team-notice.is-problem{background:#fff8f0;border-color:#efd9bd;color:#6e4f24}
.team-notice.is-loading{color:#5e6781}
.team-empty{margin-bottom:22px}
.team-block{margin-bottom:22px}
.team-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.team-columns>.team-block[hidden]+.team-block,.team-columns>.team-block:only-child{grid-column:1/-1}
.hours-scroll{overflow-x:auto;overflow-y:hidden;margin-top:6px}
.hours-table{width:100%;min-width:620px;border-collapse:collapse;font-size:.9375rem;font-variant-numeric:tabular-nums}
.hours-table th,.hours-table td{padding:12px 10px;border-bottom:1px solid #edf0f5;text-align:right}
.hours-table thead th{font-size:.8125rem;font-weight:500;color:#5e6781;background:#f5f6fb}
.hours-table thead th:first-child{border-radius:7px 0 0 7px}.hours-table thead th:last-child{border-radius:0 7px 7px 0}
.hours-table th[scope=row],.hours-table thead th:first-child{text-align:left;font-weight:500;color:var(--ink)}
.hours-wp{color:color-mix(in srgb,var(--wp) 80%,#142f42)!important}
.hours-value.is-zero{color:#9aa1b4}
.hours-total{font-weight:600;color:var(--deep);min-width:120px}
.hours-total span{display:block}
.hours-bar{display:block;height:4px;border-radius:3px;margin:5px 0 0 auto;width:calc(var(--share) * 100%);min-width:2px;background:linear-gradient(90deg,#8c7bbb,#5cadac)}
.hours-weeks{color:#5e6781;font-size:.875rem}
.hours-team th,.hours-team td{border-bottom:0;border-top:2px solid #e2e5ef;font-weight:600}
.not-counted{margin-top:12px;font-size:.875rem;color:#6e4f24}
.not-counted summary{cursor:pointer}
.not-counted ul{margin:8px 0 0;padding-left:20px}
.team-list{list-style:none;margin:6px 0 10px;padding:0;display:grid;gap:10px}
.team-item{display:flex;flex-direction:column;gap:3px;padding:12px 14px;border:1px solid var(--rule);border-left:3px solid var(--wp,#b2a3d6);border-radius:10px}
.team-item .issue-link{font-weight:500;color:var(--ink);text-decoration:none}
.team-item .issue-link:hover{color:var(--accent);text-decoration:underline}
.team-item-meta{font-size:.8125rem;color:#5e6781}
.team-item.is-closed{border-left-color:#c9ccd8;background:#fafbfd}
.team-quiet{font-size:.9375rem;margin:6px 0 0}
#team-journal{margin-top:4px}
@media(max-width:900px){.team-columns{grid-template-columns:1fr}.team-toolbar{flex-direction:column;gap:0}.team-meta{margin-bottom:14px}}
body[data-view="team"] .workspace-controls,body[data-view="results"] .workspace-controls{visibility:hidden}
.hours-summary{list-style:none;margin:4px 0 14px;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.hours-summary li{display:flex;align-items:baseline;gap:8px;padding:8px 14px;border-radius:10px;background:#f5f6fb}
.hours-summary strong{font:600 1.25rem/1.2 var(--serif);color:var(--deep);font-variant-numeric:tabular-nums}
.hours-summary span{font-size:.8125rem;color:#5e6781}
.hours-summary .is-team{background:#eef6f5}
.team-columns{margin-bottom:22px}.team-columns>.team-block{margin-bottom:0}
.team-columns:not(:has(>.team-block:not([hidden]))){display:none}
/* Legibility: small muted text meets WCAG AA 4.5:1 (measured 2026-09-30) */
.section-eyebrow,.figure-note,.focus-owner,.weekly-owner,.member-dept,.entry-date,.risk-owner,.risk-state,.risk-details dt,.programme-table thead th,.gantt-table thead th,.gantt-col-task,.gantt-col-owner,.gantt-week,.workspace-footer,.workspace-footer span,.workspace-footer time{color:#56617c}
.resource-section-title{color:#5f4f7c}
.group-count{color:color-mix(in srgb,var(--group-accent) 72%,#0f1d2b)}
.hours-value.is-zero{color:#666f88}
.team-spotlight .member-dept{color:#56617c}.team-member:nth-child(2) .member-avatar{color:#256a64}.research-layout .resource-section-title{color:#6a5a86}
/* Reading text >= 15 px (audit round 2) */
.next-review p,.focus-title,.weekly-title,.gantt-task-name,.section-banner p,.group-content .section-intro,.presentation-intro{font-size:.9375rem}
.presentation-intro{margin-bottom:20px}
.evidence-box p{font-size:.9375rem}
/* Team writing: buttons and dialog */
button.team-action{cursor:pointer;font-family:inherit}
.link-button{border:0;background:none;padding:0;color:var(--accent);text-decoration:underline;text-underline-offset:3px;font:inherit;cursor:pointer}
.team-item button.issue-link{border:0;background:none;padding:0;text-align:left;font:inherit;font-weight:500;color:var(--ink);cursor:pointer}
.team-item button.issue-link:hover{color:var(--accent);text-decoration:underline}
.team-dialog{width:min(560px,calc(100vw - 32px));max-height:calc(100vh - 48px);border:1px solid var(--rule);border-radius:16px;padding:0;color:var(--ink);background:#fff;box-shadow:0 20px 60px #1723442e}
.team-dialog::backdrop{background:#17234466}
.team-dialog form{display:flex;flex-direction:column;max-height:calc(100vh - 50px)}
.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 22px 12px;border-bottom:1px solid #edf0f5}
.dialog-head h2{font:600 1.3rem/1.3 var(--serif);margin:0}
.dialog-close{border:0;background:none;font-size:1.6rem;line-height:1;color:#56617c;cursor:pointer;padding:0 4px}
.dialog-body{padding:16px 22px;overflow-y:auto;display:grid;gap:14px}
.dialog-body>p{margin:0;font-size:.9375rem;color:#4f5a73}
.dialog-field{display:grid;gap:5px}
.dialog-label{font-size:.8125rem;font-weight:500;color:#473b85}
.dialog-field input,.dialog-field textarea,.dialog-field select{width:100%;font:inherit;font-size:.9375rem;color:var(--ink);border:1px solid #d3d7e4;border-radius:9px;padding:8px 11px;background:#fff}
.dialog-field input:focus,.dialog-field textarea:focus,.dialog-field select:focus{outline:2px solid #b191fa;outline-offset:1px;border-color:#b1a1d9}
.dialog-field textarea{resize:vertical;min-height:70px}
.dialog-hint{font-size:.8125rem;color:#56617c}
.dialog-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.hours-inputs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.hours-inputs .dialog-label{color:color-mix(in srgb,var(--wp) 80%,#142f42)}
.dialog-steps{margin:0;padding-left:20px;font-size:.9375rem;color:#4f5a73;display:grid;gap:4px}
.dialog-steps code{font-size:.85em;background:#f2f3f8;padding:1px 5px;border-radius:4px}
.dialog-actions{display:flex;align-items:center;gap:10px;padding:12px 22px 18px;border-top:1px solid #edf0f5}
.dialog-status{margin:0 auto 0 0;font-size:.8125rem;color:#56617c}
.dialog-status.is-error{color:#9b3f4d}
.dialog-actions .primary{border:0;border-radius:10px;padding:9px 18px;background:#5b4bb0;color:#fff;font:inherit;font-weight:500;cursor:pointer}
.dialog-actions .primary:hover{background:#4a3c97}.dialog-actions .primary:disabled{opacity:.6}
.btn-quiet{border:1px solid #d6d9e6;background:#fff;border-radius:10px;padding:8px 14px;font:inherit;color:#4d4580;cursor:pointer}
.thread-messages{display:grid;gap:10px}
.thread-message{border:1px solid var(--rule);border-radius:10px;padding:10px 13px;background:#fafbfd}
.thread-message-head{display:flex;justify-content:space-between;gap:10px;font-size:.8125rem;color:#56617c;margin-bottom:4px}
.thread-message-head strong{color:var(--ink);font-weight:500}
.thread-message p{margin:0;white-space:pre-wrap;color:var(--ink);font-size:.9375rem}
.dialog-link{font-size:.8125rem}
@media(max-width:560px){.hours-inputs{grid-template-columns:repeat(2,minmax(0,1fr))}.dialog-row{grid-template-columns:1fr}.dialog-actions{flex-wrap:wrap}.dialog-status{flex-basis:100%}}
/* Result figures */
.research-layout:has(.result-card){grid-template-columns:1fr}
.result-card{background:#fff;border:1px solid var(--rule);border-radius:14px;padding:22px 24px}
.result-figures{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin-top:14px}
.result-figure{margin:0;min-width:0}
.result-figure figcaption{font-size:.9375rem;font-weight:500;color:var(--ink);margin-bottom:6px}
.chart-wrap{position:relative}
.chart-svg{width:100%;height:auto;display:block;overflow:visible}
.chart-grid line{stroke:#e8eaf1;stroke-width:1}
.chart-grid .chart-axis{stroke:#b9bdcb}
.chart-grid text{font-size:12px;fill:#56617c;font-family:var(--sans)}
.chart-grid .chart-axis-label{font-size:12.5px;fill:#3f4863}
.chart-line{fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.chart-line.is-dashed{stroke-dasharray:5 4}
.chart-fit{stroke:#56617c;stroke-width:1.5;stroke-dasharray:6 5}
.chart-dot{stroke:#fff;stroke-width:2}
.chart-point:focus{outline:none}.chart-point:focus .chart-dot{stroke:#1c1a3a}
.chart-direct{font-size:12px;fill:#202d49;font-family:var(--sans);font-weight:500}
.chart-guide{stroke:#9aa1b4;stroke-width:1}
.chart-tip{position:absolute;pointer-events:none;background:#fff;border:1px solid var(--rule);border-radius:8px;box-shadow:0 6px 18px #17234422;padding:7px 10px;font-size:.8125rem;display:grid;gap:1px;min-width:120px;z-index:2}
.chart-tip strong{font-weight:600;color:var(--ink)}.chart-tip span{color:#4f5a73}
.chart-legend{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px 14px;font-size:.8125rem;color:#4f5a73}
.chart-legend li{display:flex;align-items:center;gap:6px}
.chart-swatch{display:inline-block;width:16px;height:0;border-top:2.5px solid var(--c)}
.chart-swatch.is-dashed{border-top-style:dashed}
.chart-swatch.is-dot{width:9px;height:9px;border:0;border-radius:50%;background:var(--c)}
.result-table{margin-top:12px;font-size:.9375rem}
.result-table summary{cursor:pointer;color:var(--accent)}
.result-table .hours-table{min-width:0}
@media(max-width:900px){.result-figures{grid-template-columns:1fr}}
/* Hours by week */
.weekly-hours{margin-top:20px}
.weekly-hours-title{font-size:1rem;font-weight:500;margin:0 0 6px}
.weekly-table{min-width:420px}
.weekly-table td{padding:4px 6px}
.weekly-table tr.is-selected-week th,.weekly-table tr.is-selected-week td{background:#eef6f5}
.week-cell{width:100%;border:1px solid transparent;background:none;border-radius:7px;padding:6px 8px;text-align:right;font:inherit;color:inherit;cursor:pointer;font-variant-numeric:tabular-nums}
.week-cell:hover,.week-cell:focus-visible{border-color:#b1a1d9;background:#f4f1fc}
.weekly-hours .dialog-hint{margin:6px 0 0}
/* Resources sub-tabs and the embedded measurement campaign (2026-10-14) */
.resource-tabs{display:flex;flex-wrap:wrap;gap:4px;border-bottom:1px solid var(--rule);margin:-4px 0 22px}.resource-tab{background:none;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;padding:9px 14px;font-size:.875rem;font-weight:500;color:var(--secondary);cursor:pointer}.resource-tab:hover{color:var(--ink)}.resource-tab.active{color:#51428b;border-bottom-color:var(--accent)}.campaign-frame{display:block;width:100%;height:900px;border:0;background:transparent}
/* Task progress, team members and the analysis-website link (2026-10-15) */
.task-team{display:block;margin-top:3px;color:var(--ink);font-weight:500}.project-nav.project-links{padding-top:0}.project-links .nav-link{grid-column:1/-1;text-decoration:none}.project-links .nav-external{margin-left:auto;opacity:.7}
/* Results & resources as three full-width tabs (2026-10-15) */
.research-layout.results-panes{display:block}
