@import url('https://fonts.googleapis.com/css2?family=DM+Serif+Display&family=Playfair+Display:wght@700;800;900&family=Nunito+Sans:wght@400;600;700;800;900&display=swap');
:root{--ink:#173743;--deep:#123c48;--teal:#116b68;--coral:#d76549;--sun:#f8ca68;--cream:#fffaf3;--mint:#e9f3ed;--line:#d6e2dc;--muted:#536874;--warn:#fff1e5;--headline:#06161c}
*{box-sizing:border-box}
body{margin:0;background:var(--cream);color:var(--ink);font:15px/1.5 'Nunito Sans',Arial,sans-serif}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
.skip{position:absolute;left:-999px}
.skip:focus{left:10px;top:10px;background:white;padding:8px;z-index:50}
.preview{background:var(--deep);color:#fff;text-align:center;font-size:12px;padding:6px 12px}
.shell{max-width:1320px;margin:auto;padding:20px 24px 75px}
.top,.toolbar,.rowhead,.actions{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.top{border-bottom:1px solid var(--line);padding-bottom:17px}
.brand{font:29px 'DM Serif Display',Georgia,serif;color:var(--deep);text-decoration:none}
.brand em{color:var(--coral);font-style:normal}
.top a:not(.brand){color:var(--teal)}
.hero{padding:27px 0 19px}
.eyebrow{font-size:11px;font-weight:900;letter-spacing:.14em;text-transform:uppercase;color:var(--teal)}
h1,h2,h3{font-family:'Playfair Display','DM Serif Display',Georgia,serif;font-weight:800;line-height:1.1;color:var(--headline);letter-spacing:-.01em}
h1{font-size:clamp(36px,4vw,52px);margin:7px 0;font-weight:900}
h2{font-size:30px;margin:0 0 8px;font-weight:800}
h3{font-size:22px;margin:0 0 8px;font-weight:800}
.hero p{color:#1e3942;font-weight:500}
p{color:var(--muted);margin:5px 0 12px}
.hero p{max-width:840px}
.nav{display:flex;gap:7px;overflow:auto;background:var(--mint);padding:7px;border-radius:13px;margin-bottom:20px}
.nav button{border:0;background:none;color:var(--deep);font-weight:900;padding:10px 15px;border-radius:9px;white-space:nowrap}
.nav button.active{background:#fff;box-shadow:0 2px 8px #123c481b}
.panel,.card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:19px;box-shadow:0 6px 23px #123c4809}
.panel{margin-bottom:16px}
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}
.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.card.warn{background:#fff5ec;border-color:#f0d6b7}
.card.warn .metric{color:var(--coral)}
.button{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--teal);background:var(--teal);color:#fff;padding:9px 15px;border-radius:99px;font-weight:900;text-decoration:none}
.button.secondary{background:white;color:var(--teal)}
.button.danger{background:white;color:#983b2d;border-color:#dbaea0}
.button.small{padding:5px 10px;font-size:12px}
.link{border:0;background:none;color:var(--teal);text-decoration:underline;font-weight:900;padding:0}
.muted,.tiny{color:var(--muted)}
.tiny{font-size:12px}
.notice{background:#edf7f0;border-left:4px solid var(--teal);padding:12px 15px;border-radius:8px;margin-bottom:16px}
.notice.warn{background:var(--warn);border-color:var(--coral)}
.pill{display:inline-block;padding:3px 9px;border-radius:99px;background:#e9f4ed;color:#205749;font-size:11px;font-weight:900}
.pill.warn{background:#ffeadc;color:#88452b}
.pill.dim{background:#eef1ef;color:#5b6a65}
.bar{height:9px;background:#ebf0ec;border-radius:99px;overflow:hidden;margin-top:7px}
.bar i{display:block;background:var(--teal);height:100%}
.metric{font-size:30px;font-weight:900;color:var(--deep)}
.item{padding:14px 0;border-bottom:1px solid var(--line)}
.item:last-child{border:0}
.item p{margin:5px 0}
.form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.field{display:grid;gap:5px;font-weight:900;font-size:12px}
.field.full{grid-column:1/-1}
.field small{font-weight:400;color:var(--muted)}
input,select,textarea{width:100%;min-width:0;border:1px solid #b9cbc5;border-radius:9px;background:#fff;color:var(--ink);padding:9px}
textarea{min-height:78px;resize:vertical}
.indicator-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.4fr 1fr;gap:10px;margin-top:8px}
.indicator-grid .field{font-size:11px}
.action-row{display:grid;grid-template-columns:2.4fr 1fr 1fr 1fr auto;gap:8px;margin-bottom:8px;align-items:center}
.action-row input,.action-row select{padding:7px 9px;font-size:13px}
#actions-list{margin-top:6px;padding:10px;background:#f5f9f6;border-radius:10px}
.tip{display:inline-block;position:relative;margin-left:5px}
.tip button{border:1px solid var(--teal);background:#fff;color:var(--teal);border-radius:50%;width:19px;height:19px;font:bold 12px Georgia;cursor:help}
.tip span{display:none;position:absolute;top:23px;left:0;z-index:5;background:var(--deep);color:white;border-radius:8px;width:290px;padding:10px;font:12px/1.4 'Nunito Sans',sans-serif;box-shadow:0 6px 14px #0003}
.tip:hover span,.tip:focus-within span{display:block}
.tablewrap{overflow:auto}
table{border-collapse:collapse;width:100%;min-width:850px;font-size:13px}
th,td{text-align:left;vertical-align:top;padding:10px;border-bottom:1px solid var(--line)}
th{background:var(--deep);color:#fff}
.empty{padding:16px;background:#f5f9f6;border-radius:9px;color:var(--muted)}
.modal{position:fixed;inset:0;background:#123c4899;display:grid;place-items:center;padding:15px;z-index:30}
.modalbox{background:var(--cream);border-radius:16px;padding:22px;width:min(960px,100%);max-height:94vh;overflow:auto;box-shadow:0 20px 55px #123c4840}
.modalbox .form{margin-top:14px}
/* shared additions for every Impact Suite tool */
.actions{justify-content:flex-start}
.field .label{display:flex;align-items:center;gap:2px}
.field .tip{margin-left:4px}
:focus-visible{outline:3px solid #f8ca68;outline-offset:2px}
.pill.bad{background:#fbe1dc;color:#8a2f22}
.hero .toolbar{justify-content:flex-start;margin-top:6px}
.modalbox .rowhead{margin-bottom:4px}
.modalbox .rowhead h2{margin:0}
.section-head{margin:4px 0 14px}
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}
.kv{display:grid;grid-template-columns:max-content 1fr;gap:4px 14px;font-size:13px}
.kv b{color:var(--deep)}
.map-node{border-left:4px solid var(--teal);padding:10px 14px;margin:8px 0;background:#f5f9f6;border-radius:0 10px 10px 0}
.map-node .map-node{margin-left:18px;border-color:var(--sun);background:#fff}
.map-node .map-node .map-node{border-color:var(--coral)}
.cal td,.cal th{text-align:center;padding:8px 6px}
.cal td:first-child,.cal th:first-child,.cal td:nth-child(2),.cal th:nth-child(2){text-align:left}
.cal .on{display:block;height:12px;border-radius:99px;background:var(--teal)}
.cal .on.late{background:var(--coral)}
details summary{cursor:pointer;font-weight:800;color:var(--deep)}
.checks{margin:6px 0;padding-left:18px}
.checks li{margin:3px 0;color:var(--muted)}
.row-actions{display:flex;gap:6px;flex-wrap:wrap}
.journey-steps{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.journey-steps .step{display:grid;grid-template-columns:40px 1fr auto;align-items:center;gap:14px;padding:14px 16px;background:#fbf8f1;border:1px solid var(--line);border-radius:12px}
.journey-steps .step.done{background:#edf7f0;border-color:#bddfcb}
.journey-steps .step.current{border-color:var(--teal);border-width:2px;background:#fff}
.journey-steps .step-num{width:34px;height:34px;border-radius:50%;background:#e9eded;color:var(--muted);display:grid;place-items:center;font-weight:900;font-size:16px}
.journey-steps .step.done .step-num{background:var(--teal);color:#fff}
.journey-steps .step.done .step-num:after{content:" ✓"}
.journey-steps .step.current .step-num{background:var(--coral);color:#fff}
.journey-steps .step-body{min-width:0}
.journey-steps .step-body b{color:var(--deep)}
.journey-steps .step-body p{margin:3px 0 0}
@media(max-width:650px){.journey-steps .step{grid-template-columns:40px 1fr;grid-template-rows:auto auto}.journey-steps .step .button{grid-column:1/-1;justify-self:start}}
@media(max-width:900px){.grid.four{grid-template-columns:repeat(2,1fr)}.indicator-grid{grid-template-columns:1fr 1fr}.action-row{grid-template-columns:1fr;gap:5px}}
@media(max-width:800px){.grid.three{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.split{grid-template-columns:1fr}.shell{padding:13px}.grid,.grid.three,.grid.four,.form{grid-template-columns:1fr}.field.full{grid-column:auto}.top{align-items:start}}
@media print{.preview,.top,.nav,.hero .toolbar,.button,.link,.modal,.no-print{display:none!important}.shell{max-width:none;padding:0}.panel,.card{box-shadow:none;break-inside:avoid}body{background:white}}
/* shared worked example box (top of each tool's Start tab) */
.example-box{background:linear-gradient(180deg,#fff8ea,#fffcf5);border:1px dashed #e4c789;border-radius:16px;padding:14px 18px 18px;margin:0 0 18px}
.example-box[open]{padding-bottom:18px}
.example-summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:4px 0;outline:none}
.example-summary::-webkit-details-marker{display:none}
.example-summary::marker{display:none;content:''}
.example-summary::before{content:'▸';display:inline-block;transition:transform .15s;color:#8a6a2b;font-size:12px}
.example-box[open] .example-summary::before{transform:rotate(90deg)}
.example-badge{display:inline-block;padding:3px 10px;border-radius:99px;background:var(--sun);color:#5c3f06;font-size:11px;font-weight:900;letter-spacing:.14em;text-transform:uppercase}
.example-title{font-weight:900;color:var(--deep);font-size:15px}
.example-intro{font-size:13px;color:var(--muted);margin:8px 0 10px}
.example-mv{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 12px}
.example-mv>div{background:#fff;border:1px solid #ead6b7;border-radius:10px;padding:10px 12px}
.example-mv b{display:block;color:var(--deep);font-size:10px;letter-spacing:.1em;text-transform:uppercase;margin-bottom:4px}
.example-mv p{margin:0;color:var(--ink);font-size:13px;font-weight:400;line-height:1.4}
.example-objectives{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.example-eso{background:#fff;border:1px solid #ead6b7;border-radius:10px;padding:12px}
.example-eso h4{margin:0 0 2px;font:900 14px/1.3 'Nunito Sans',sans-serif;color:var(--deep)}
.example-eso .lbl{display:block;font:900 10px/1 'Nunito Sans',sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--teal);margin-top:9px}
.example-eso .val{font-size:13px;color:var(--ink);margin:3px 0 0;line-height:1.4}
.example-chain{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin:4px 0 8px}
.example-chain.six{grid-template-columns:repeat(6,minmax(0,1fr))}
.example-chain .step{background:#fff;border:1px solid #ead6b7;border-radius:10px;padding:10px}
.example-chain .step b{font:900 10px/1 'Nunito Sans',sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--teal);display:block;margin-bottom:5px}
.example-chain .step p{margin:0;font-size:12px;line-height:1.4;color:var(--ink)}
.toc-chain{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:8px 0 0}
.toc-chain .toc-step{background:#f5f9f6;border:1px solid var(--line);border-left:4px solid var(--teal);border-radius:0 10px 10px 0;padding:10px 12px}
.toc-chain .toc-step b{display:block;color:var(--teal);font-size:10px;letter-spacing:.08em;text-transform:uppercase;margin-bottom:4px}
.toc-chain .toc-step p{margin:0;font-size:13px;line-height:1.45;color:var(--ink)}
@media(max-width:1100px){.toc-chain{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:800px){.toc-chain{grid-template-columns:1fr 1fr}}
@media(max-width:900px){.example-chain.six{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.toc-chain{grid-template-columns:1fr}}
.example-foot{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px}
.example-foot .tiny{color:var(--muted)}
.example-warn{display:block;background:#fff1e5;border:1px solid #f0d6b7;color:#88452b;border-radius:10px;padding:9px 12px;margin:10px 0 0;font-size:12px;line-height:1.4}
.example-warn b{color:#6e3620}
/* "Your workspace" mirror variant — same shape, teal/mint accent */
.example-box.mine{background:linear-gradient(180deg,#f4faf5,#fdfffd);border:1px solid #bddfcb;border-style:solid}
.example-box.mine>.example-summary{padding:4px 0}
.example-box.mine .example-badge.mine{background:var(--teal);color:#fff}
.example-box.mine .example-mv>div,.example-box.mine .example-eso,.example-box.mine .example-chain .step{border-color:#bddfcb}
.example-box.mine .example-eso .lbl,.example-box.mine .example-chain .step b{color:var(--deep)}
.val-empty{color:#a7b5af;font-style:italic;font-size:12px}
.example-empty{background:#f5f9f6;border:1px dashed #bddfcb;color:#536874;border-radius:10px;padding:12px;margin:6px 0 0;font-size:13px;text-align:center}
@media(max-width:900px){.example-mv,.example-objectives{grid-template-columns:1fr}.example-chain{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.example-chain{grid-template-columns:1fr}}
@media print{.example-box{display:none}}
/* Integration-note band — "How this tool connects to the suite" */
.integ-box{background:#f0f6f3;border:1px solid #c7d9d1;border-radius:14px;padding:12px 16px;margin:0 0 14px}
.integ-summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:2px 0;outline:none}
.integ-summary::-webkit-details-marker{display:none}
.integ-summary::marker{content:''}
.integ-summary::before{content:'▸';color:var(--teal);font-size:12px;transition:transform .15s;display:inline-block}
.integ-box[open] .integ-summary::before{transform:rotate(90deg)}
.integ-pill{display:inline-block;padding:3px 10px;border-radius:99px;background:var(--deep);color:#fff;font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.integ-title{font-weight:900;color:var(--deep);font-size:14px}
.integ-body{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:10px}
.integ-col h4{margin:0 0 6px;font:900 11px/1 'Nunito Sans',sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--teal)}
.integ-list{margin:0;padding-left:16px;color:var(--ink)}
.integ-list li{margin:4px 0;font-size:12.5px;line-height:1.4}
.integ-list a{color:var(--teal);font-weight:800}
.integ-empty{margin:0;font-size:12px;color:var(--muted);font-style:italic}
@media(max-width:800px){.integ-body{grid-template-columns:1fr}}
/* Interactive workspace (Theory of Change Start tab — the green box IS the tool) */
.work-box{background:linear-gradient(180deg,#f4faf5,#fdfffd);border:1px solid #bddfcb;border-radius:16px;padding:18px 22px 22px;margin:0 0 20px;box-shadow:0 6px 23px #123c4809}
.work-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:4px}
.work-badge{display:inline-block;padding:4px 11px;border-radius:99px;background:var(--teal);color:#fff;font-size:11px;font-weight:900;letter-spacing:.14em;text-transform:uppercase;flex-shrink:0}
.work-org{flex:1;min-width:220px;border:0;background:transparent;font:400 24px/1.2 'DM Serif Display',Georgia,serif;color:var(--deep);padding:4px 6px;border-radius:8px}
.work-org:focus{background:#fff;outline:2px solid var(--teal);outline-offset:0}
.work-org::placeholder{color:#a7b5af;font-style:italic;font-size:18px}
.work-status{font-size:12px;color:var(--muted);font-weight:600;min-width:70px;text-align:right}
.work-hint{font-size:12px;color:var(--muted);margin:0 0 14px}
.work-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:14px}
.work-meta .work-field.full{grid-column:1/-1}
.work-field{display:block;background:#fff;border:1px solid #bddfcb;border-radius:10px;padding:9px 12px 8px}
.work-field>span{display:block;font-size:10px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:var(--deep);margin-bottom:4px}
.work-field input,.work-field textarea{display:block;width:100%;border:0;padding:0;background:transparent;color:var(--ink);font:inherit;line-height:1.4}
.work-field textarea{min-height:60px;resize:vertical}
.work-field input::placeholder,.work-field textarea::placeholder{color:#a7b5af;font-style:italic}
.work-field:focus-within{border-color:var(--teal);box-shadow:0 0 0 2px #bddfcb66}
.work-sect-head{margin:18px 0 10px;padding-top:14px;border-top:1px dashed #bddfcb}
.work-sect-head h3{margin:0 0 2px;font:900 14px/1 'Nunito Sans',sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--deep)}
.work-sect-head p{margin:0;font-size:12px;color:var(--muted)}
.work-pathways{display:grid;gap:12px;margin-bottom:12px}
.work-pathway{background:#fff;border:1px solid #bddfcb;border-radius:12px;padding:14px}
.work-pathway-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;gap:12px;flex-wrap:wrap}
.work-pathway-head .eyebrow{color:var(--teal)}
.work-chain{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.chain-cell{display:flex;flex-direction:column;background:#f5f9f6;border:1px solid #d6e2dc;border-radius:8px;padding:8px}
.chain-cell:focus-within{border-color:var(--teal);background:#fff}
.chain-label{font:900 10px/1 'Nunito Sans',sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--teal);margin-bottom:5px}
.chain-cell textarea,.chain-cell select{width:100%;min-height:92px;padding:6px;border:1px solid #d6e2dc;border-radius:6px;font-size:12px;line-height:1.4;background:#fff;resize:vertical}
.chain-cell select{min-height:auto;padding:6px}
.chain-cell textarea::placeholder{color:#a7b5af;font-style:italic;font-size:12px}
.work-add{margin:8px 0 0;display:flex;align-items:center;flex-wrap:wrap;gap:12px}
.work-extra{margin-top:16px;padding-top:12px;border-top:1px dashed #bddfcb}
.work-extra>summary{cursor:pointer;font-weight:800;color:var(--deep);font-size:13px;padding:6px 0}
.work-extra .work-meta{margin-top:10px;margin-bottom:0}
.link.danger{color:#983b2d}
/* MEAL indicator rows (quarterly tracking matrix) */
.work-imports{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 14px}
.work-imports .button:disabled{opacity:.55;cursor:not-allowed}
.work-indicators{display:grid;gap:12px}
.meal-row{background:#fff;border:1px solid #bddfcb;border-radius:12px;padding:12px 14px}
.meal-row-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px;padding-bottom:8px;border-bottom:1px dashed #d6e2dc}
.meal-src{display:inline-block;padding:3px 9px;border-radius:99px;font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.meal-src.src-kpi{background:#d6ebe3;color:#116b68}
.meal-src.src-toc{background:#fff1d0;color:#8a6a2b}
.meal-src.src-manual{background:#e9eded;color:#536874}
.meal-code{color:var(--deep);font:900 14px/1 'Nunito Sans',sans-serif;letter-spacing:.04em}
.meal-objective{color:var(--muted);font-size:12px;flex:1;min-width:140px}
.meal-objective .eyebrow{color:var(--teal);margin-right:4px}
.meal-objective .inline-field{display:inline-flex;align-items:center;gap:4px}
.meal-objective .inline-field>span{font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--teal)}
.meal-objective .inline-field select,.meal-objective .inline-field input{padding:4px 6px;font-size:12px;min-width:90px}
.meal-row-main,.meal-row-meta{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:8px;margin-bottom:10px}
.meal-row-main .meal-field.flex2{grid-column:span 1}
.meal-field{display:block;background:#f5f9f6;border:1px solid #d6e2dc;border-radius:8px;padding:6px 10px}
.meal-field>span{display:block;font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--teal);margin-bottom:3px}
.meal-field input,.meal-field textarea{border:0;background:transparent;width:100%;padding:0;font:inherit;color:var(--ink);line-height:1.4}
.meal-field textarea{min-height:48px;resize:vertical}
.meal-field:focus-within{border-color:var(--teal);background:#fff}
.meal-matrix{display:grid;gap:4px;margin:10px 0 12px;background:#f5f9f6;border:1px solid #d6e2dc;border-radius:10px;padding:8px}
.meal-mrow{display:grid;grid-template-columns:88px repeat(4,minmax(0,1fr));gap:6px;align-items:center}
.meal-mhead{font:900 10px/1 'Nunito Sans',sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.meal-mhead>div{text-align:center;padding:2px 0}
.meal-mlabel{font:900 11px/1 'Nunito Sans',sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--deep);padding:4px 0 4px 4px}
.meal-mrow input{width:100%;padding:5px 7px;border:1px solid #d6e2dc;border-radius:6px;font-size:13px;text-align:right;background:#fff}
.meal-mrow input:focus{border-color:var(--teal);outline:0;background:#fff}
.meal-mdiff{border-top:1px dashed #d6e2dc;padding-top:6px;margin-top:2px}
.meal-diff-cell{text-align:center;padding:5px;font-size:13px;font-weight:800;color:var(--muted)}
.meal-diff-cell .diff-cell{display:inline-block;padding:2px 8px;border-radius:6px}
.meal-diff-cell .diff-cell.positive{background:#dcefe3;color:#246046}
.meal-diff-cell .diff-cell.negative{background:#fbe1dc;color:#8a2f22}
.meal-diff-cell .diff-cell.zero{background:#eef1ef;color:#536874}
@media(max-width:1000px){.meal-row-main,.meal-row-meta{grid-template-columns:1fr 1fr}.meal-mrow{grid-template-columns:72px repeat(4,minmax(0,1fr))}}
@media(max-width:700px){.meal-row-main,.meal-row-meta{grid-template-columns:1fr}.meal-mrow{grid-template-columns:60px repeat(2,minmax(0,1fr));gap:4px}.meal-mhead>div:nth-child(4),.meal-mhead>div:nth-child(5){display:none}}
@media(max-width:1200px){.work-chain{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:800px){.work-meta{grid-template-columns:1fr}}
@media(max-width:700px){.work-chain{grid-template-columns:1fr 1fr}}
@media(max-width:500px){.work-chain{grid-template-columns:1fr}}
/* Persona cards — one card per audience segment */
.persona-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px}
.persona-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;box-shadow:0 6px 23px #123c4809}
.persona-head{display:flex;align-items:center;gap:12px;margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.persona-avatar{width:44px;height:44px;border-radius:50%;background:var(--teal);color:#fff;display:grid;place-items:center;font:900 20px 'Nunito Sans',sans-serif;flex-shrink:0}
.persona-head h3{margin:0;color:var(--deep);font-family:'DM Serif Display',Georgia,serif;font-weight:400}
.persona-head small{color:var(--muted);font-size:11px;letter-spacing:.08em;text-transform:uppercase;font-weight:900}
.persona-quote{margin:0 0 10px;padding:8px 12px;background:#f5f9f6;border-left:3px solid var(--teal);border-radius:0 8px 8px 0;font-style:italic;font-size:13px;color:var(--ink)}
.persona-dl{margin:0;font-size:12px}
.persona-dl dt{font-weight:900;color:var(--teal);text-transform:uppercase;letter-spacing:.08em;font-size:10px;margin-top:8px}
.persona-dl dd{margin:2px 0 0;color:var(--ink);line-height:1.4}
.persona-actions{margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}
/* Marketing calendar — month-grid for content posts */
.calendar-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}
.calendar-month{min-height:120px}
.cal-post{background:#f5f9f6;border-left:3px solid var(--teal);border-radius:6px;padding:7px 10px;font-size:12px}
.cal-post.is-published{background:#dcefe3;border-color:#246046}
.cal-post.is-scheduled{background:#fff1d0;border-color:var(--sun)}
.cal-post.is-draft{background:#f5f9f6;border-color:var(--muted)}
.cal-post-head{display:flex;justify-content:space-between;align-items:center;gap:6px;font-size:10px;color:var(--muted);margin-bottom:3px}
.cal-date{font-weight:900;color:var(--deep)}
.cal-post b{display:block;color:var(--ink);font-weight:800;line-height:1.3}
/* Donor Mapping — alignment matrix cells */
.align-matrix{border-collapse:separate;border-spacing:2px;min-width:600px}
.align-matrix th{background:transparent;color:var(--deep);padding:4px 6px;text-align:center;font-size:12px}
.align-matrix td{padding:6px 8px;background:#fff;border:1px solid var(--line);border-radius:4px;text-align:center}
.align-matrix td.align-score{font-weight:900;min-width:42px}
.align-matrix td.align-score.score-0{background:#f5f9f6;color:#a7b5af}
.align-matrix td.align-score.score-1{background:#fff1d0;color:#8a6a2b}
.align-matrix td.align-score.score-2{background:#dcefe3;color:#246046}
.align-matrix td.align-score.score-3{background:var(--teal);color:#fff}
.align-total{font-weight:900;color:var(--deep);min-width:70px}
.align-total small{font-weight:400;color:var(--muted);font-size:10px}
/* Organisation Structure — reporting-tree hierarchy and ownership cards */
.org-tree,.org-tree ul{list-style:none;padding-left:0;margin:0}
.org-tree ul{padding-left:28px;margin-top:8px;border-left:2px dashed #bddfcb}
.org-node{margin:6px 0}
.org-card{display:grid;grid-template-columns:70px 1fr auto auto;gap:10px;align-items:center;background:#fff;border:1px solid #bddfcb;border-radius:10px;padding:8px 12px}
.org-code{font:900 11px/1 'Nunito Sans',sans-serif;color:var(--teal);letter-spacing:.08em}
.org-card b{color:var(--deep);font-size:14px}
.org-dept{font-size:11px;color:var(--muted);background:#f5f9f6;padding:2px 8px;border-radius:99px}
.org-holder{font-size:12px;color:var(--ink);font-weight:800}
.org-holder .muted{font-style:italic;font-weight:400}
@media(max-width:650px){.org-card{grid-template-columns:1fr;gap:4px}}
.ownership-card{border-left:4px solid var(--teal)}
.ownership-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin-top:10px}
.ownership-src{background:#f5f9f6;border:1px solid #d6e2dc;border-radius:8px;padding:8px 10px;font-size:12px}
.ownership-src b{display:block;color:var(--deep);margin-bottom:3px;font-size:11px;letter-spacing:.04em}
.ownership-src ul{margin:5px 0 0;padding-left:16px}
.ownership-src li{margin:2px 0}
/* Meetings, Actions & Decisions — inline decision/action rows inside the meeting dialog */
.form-grid-top{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;grid-column:1/-1}
@media(max-width:800px){.form-grid-top{grid-template-columns:1fr 1fr}}
@media(max-width:500px){.form-grid-top{grid-template-columns:1fr}}
.mad-rows{display:grid;gap:10px;grid-column:1/-1}
.mad-row{display:grid;grid-template-columns:2fr 1.4fr 1fr 0.8fr auto;gap:8px;align-items:start;background:#f5f9f6;border:1px solid #d6e2dc;border-radius:10px;padding:10px}
.mad-row .mad-f-wide{grid-column:span 2}
.mad-row .mad-f-narrow{grid-column:span 1}
.mad-f{display:flex;flex-direction:column;gap:3px}
.mad-f>span{font:900 10px/1 'Nunito Sans',sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--teal)}
.mad-f input,.mad-f select,.mad-f textarea{padding:5px 7px;font-size:12.5px;border:1px solid #d6e2dc;border-radius:6px;background:#fff;width:100%}
.mad-f textarea{min-height:50px;resize:vertical}
.mad-row .link.danger{align-self:center;font-size:12px}
@media(max-width:900px){.mad-row{grid-template-columns:1fr 1fr;gap:6px}.mad-row .mad-f-wide{grid-column:span 2}.mad-row .mad-f-narrow{grid-column:span 1}}
@media(max-width:500px){.mad-row{grid-template-columns:1fr}.mad-row .mad-f-wide,.mad-row .mad-f-narrow{grid-column:span 1}}
/* Risk register (5x5 bands + heatmap) */
.risk-band-low{background:#d6ebe3;color:#13483b}
.risk-band-medium{background:#fff1d0;color:#8a6a2b}
.risk-band-high{background:#ffdfc5;color:#88452b}
.risk-band-critical{background:var(--coral);color:#fff}
.risk-band-none{background:#f5f9f6;color:var(--muted)}
.risk-score-cell{text-align:center;font-weight:900;min-width:60px;padding:8px 6px;border-radius:0}
.risk-score-cell small{font-weight:600;font-size:10px;letter-spacing:.04em;text-transform:uppercase}
.risk-score-preview{padding:8px 12px;border-radius:8px;font-weight:900;text-align:center;font-size:16px}
.form-section{font:900 11px/1 'Nunito Sans',sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--deep);grid-column:1/-1;margin:14px 0 2px;padding-top:10px;border-top:1px dashed var(--line)}
.split-5x5{grid-template-columns:1fr 1fr 1fr !important;display:grid;gap:12px;grid-column:1/-1}
@media(max-width:650px){.split-5x5{grid-template-columns:1fr !important}}
/* 5x5 Heatmap */
.hm-table{min-width:500px;border-collapse:separate;border-spacing:3px}
.hm-table th{background:transparent;color:var(--deep);font-weight:900;padding:4px}
.hm-table th.hm-y{text-align:right;padding-right:10px}
.hm-table th.hm-x{text-align:center;padding:4px}
.hm-cell{text-align:center;padding:12px 6px;border-radius:10px;min-width:72px;height:72px;vertical-align:middle;cursor:default}
.hm-cell .hm-count{font:900 20px/1 'Nunito Sans',sans-serif}
.hm-cell .hm-sc{font-size:10px;letter-spacing:.08em;text-transform:uppercase;margin-top:2px;opacity:.7}
.hm-cell .hm-codes{font-size:10px;margin-top:3px;opacity:.9}
/* Capacity table (Gantt tool · who is overloaded by month) */
.cap-table{min-width:1000px}
.cap-table th.cap-owner{text-align:left;position:sticky;left:0;z-index:2;min-width:160px}
.cap-table td.cap-cell{text-align:center;padding:6px 4px;border-left:1px solid #edf2ef;min-width:60px}
.cap-table th.cap-h{text-align:center;padding:6px 4px;min-width:60px;font-weight:800}
.cap-table th.cap-h small{font-weight:400;color:#b9cbc5;font-size:10px}
.cap-cell .cap-val{font-weight:900;font-size:13px;color:var(--deep)}
.cap-cell .cap-pct{font-size:10px;color:var(--muted);margin-top:1px}
.cap-cell.cap-empty{background:#f8fafa}
.cap-cell.cap-light{background:#edf4ef}
.cap-cell.cap-ok{background:#c7e3d1}
.cap-cell.cap-tight{background:#f8ca68}
.cap-cell.cap-over{background:var(--coral);color:#fff}
.cap-cell.cap-over .cap-val,.cap-cell.cap-over .cap-pct{color:#fff}
.cap-empty-row{text-align:center;padding:18px;color:var(--muted);background:#f5f9f6}
.cap-legend{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:12px;font-size:12px;color:var(--muted)}
.cap-swatch{display:inline-block;width:14px;height:14px;border-radius:4px;margin-right:4px;vertical-align:middle}
.cap-swatch.cap-empty{background:#f8fafa;border:1px solid var(--line)}
.cap-swatch.cap-light{background:#edf4ef}
.cap-swatch.cap-ok{background:#c7e3d1}
.cap-swatch.cap-tight{background:#f8ca68}
.cap-swatch.cap-over{background:var(--coral)}
/* timeline (Gantt) */
.gantt table{min-width:980px}
.gantt th:first-child,.gantt td:first-child{position:sticky;left:0;z-index:2;background:#fff;min-width:260px;max-width:340px}
.gantt th:first-child{background:var(--deep);z-index:3}
.gantt th.slot-h{text-align:center;min-width:52px}
.gantt th.slot-h.now{background:var(--teal)}
.gantt td.slot{padding:10px 3px;text-align:center;min-width:52px;border-left:1px solid #edf2ef}
.gantt td.slot.now{background:#fff8e6}
.gantt tr.group td{background:#eef6f1;font-weight:800}
.gantt tr.group td:first-child{background:#eef6f1}
.gantt td.slot.on{padding-left:0;padding-right:0}
.gantt .fill{display:block;height:14px;background:#b9d8cf;overflow:hidden}
.gantt .fill.s{border-radius:99px 0 0 99px;margin-left:3px}.gantt .fill.e{border-radius:0 99px 99px 0;margin-right:3px}.gantt .fill.s.e{border-radius:99px}
.gantt .fill i{display:block;height:100%;background:var(--teal)}
.gantt .fill.grp{height:9px;background:#cbd9d4}
.gantt .fill.grp i{background:var(--deep)}
.gantt .fill.complete i{background:#2f7a52}
.gantt .fill.late{background:#f3d0c6}
.gantt .fill.late i{background:var(--coral)}
.gantt .diamond{display:inline-block;width:13px;height:13px;background:var(--coral);transform:rotate(45deg)}
tr.group td{background:#f3f8f5}
@media print{.gantt table{min-width:0;font-size:10px}.gantt td:first-child{position:static}}
  .filter-panel, .workspace-summary { padding: .85rem; }
  .filter-row { grid-template-columns: 1fr; }
  .list-heading { padding: .85rem; }
  .assessment-key { grid-template-columns: 1fr; }
  .sticky-1, .sticky-2, .sticky-3, .sticky-4 { position: static; }
  thead tr.group-row .group-general-fixed { position: static; }
}

@media print {
  .mast, .notice, #tabs, .top-actions, .toolbar button, .row-actions, footer, .backup-grid,
  .filter-panel, .workspace-summary .actions, .workspace-summary button { display: none !important; }
  body { background: var(--white); }
  main { max-width: none; padding: 0; }
  .panel, .card, .workspace-summary, .filter-panel, .list-panel { border: 0; box-shadow: none; }
  .metric-strip, .metrics { grid-template-columns: repeat(4, 1fr); }
  .table-wrap { overflow: visible; }
  table { font-size: .57rem; min-width: 0; width: 100%; }
  th, td { min-width: 0; padding: .18rem; }
  .sticky-1, .sticky-2, .sticky-3, .sticky-4 { position: static; }
  thead tr.group-row .group-general-fixed { position: static; }
  .cell-control { border: 0; padding: 0; }
}

/* ======================================================================
   Visual dashboard — go/no-go donut, fit distribution, scoring coverage.
   Three cards side-by-side on wide screens, stacking on narrow.
   ====================================================================== */
.dm-dashboard{display:grid;grid-template-columns:minmax(260px,.95fr) minmax(300px,1.15fr) minmax(260px,.9fr);gap:14px;margin:16px 0 10px}
.dm-dash-empty{background:#fff;border:1px dashed #c5d6cf;border-radius:14px;padding:20px 24px;margin:16px 0 10px;color:#546974;font-size:14px}
.dm-dash-empty b{color:#102e3b;font-size:15px;display:block;margin-bottom:4px}
.dm-dash-empty p{margin:0;font-size:13.5px;line-height:1.55}

.dm-card{background:#fff;border:1px solid #d4e2db;border-radius:14px;padding:16px 18px;min-width:0;box-shadow:0 1px 0 rgba(16,46,59,.03);display:flex;flex-direction:column;gap:12px}
.dm-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.dm-card-head h3{font-size:16px;margin:2px 0 0;color:#102e3b;font-weight:800;letter-spacing:-.01em}
.dm-card-head > span{color:#546974;font-size:11.5px;font-weight:700;padding-top:2px;text-align:right}
.dm-eyebrow{color:#16746e;font-size:10px;font-weight:900;letter-spacing:.14em;text-transform:uppercase;margin:0}

/* Decision donut */
.dm-donut-row{display:grid;grid-template-columns:110px minmax(0,1fr);gap:16px;align-items:center}
.dm-donut{aspect-ratio:1;border-radius:50%;background:conic-gradient(#16746e 0 var(--go-share),#e56f4a var(--go-share) calc(var(--go-share) + var(--no-go-share)),#afd6c8 calc(var(--go-share) + var(--no-go-share)) 100%);position:relative;display:grid;place-items:center;padding:18px}
.dm-donut::before{content:"";position:absolute;inset:16px;background:#fff;border-radius:50%}
.dm-donut > div{position:relative;z-index:1;text-align:center;line-height:1}
.dm-donut strong{display:block;font-family:'DM Serif Display',Georgia,serif;font-weight:400;font-size:24px;color:#102e3b}
.dm-donut span{display:block;font-size:10.5px;font-weight:900;color:#546974;margin-top:4px;letter-spacing:.08em;text-transform:uppercase}
.dm-legend{margin:0;display:grid;gap:6px}
.dm-legend > div{display:flex;align-items:center;justify-content:space-between;font-size:13px}
.dm-legend dt{display:inline-flex;align-items:center;gap:8px;color:#546974;font-weight:600;margin:0}
.dm-legend dt::before{content:"";display:inline-block;width:9px;height:9px;border-radius:50%}
.dm-legend dd{margin:0;color:#102e3b;font-weight:900;font-size:15px}
.dm-leg-go dt::before{background:#16746e}
.dm-leg-nogo dt::before{background:#e56f4a}
.dm-leg-review dt::before{background:#afd6c8}

/* Fit distribution */
.dm-fit-list{display:grid;gap:10px}
.dm-fit-row > div{display:flex;justify-content:space-between;align-items:center;font-size:12.5px;margin-bottom:4px}
.dm-fit-row span{color:#546974}
.dm-fit-row strong{color:#102e3b;font-weight:800;font-size:12.5px}
.dm-fit-track{display:block;height:9px;background:#edf3f0;border-radius:999px;overflow:hidden}
.dm-fit-fill{display:block;height:100%;border-radius:inherit;width:var(--share);min-width:var(--share);transition:width .4s cubic-bezier(.2,.7,.2,1)}
.dm-fit-strong{background:#16746e}
.dm-fit-good{background:#67a995}
.dm-fit-weak{background:#f8ca68}
.dm-fit-poor{background:#e56f4a}

/* Scoring coverage / "all done" */
.dm-coverage-num{display:flex;align-items:baseline;gap:8px;margin:2px 0 4px}
.dm-coverage-num strong{font-family:'DM Serif Display',Georgia,serif;font-weight:400;font-size:34px;color:#102e3b;line-height:1}
.dm-coverage-num span{color:#546974;font-size:12px;font-weight:700}
.dm-coverage-track{height:8px;background:#edf3f0;border-radius:999px;overflow:hidden}
.dm-coverage-track i{display:block;height:100%;width:var(--coverage);background:linear-gradient(90deg,#16746e,#67a995);border-radius:inherit;transition:width .4s cubic-bezier(.2,.7,.2,1)}
.dm-done-badge{margin-top:4px;background:#f6faf7;border:1px solid #d4e5de;border-radius:10px;padding:9px 12px;font-size:12.5px;line-height:1.4;color:#102e3b}
.dm-done-badge b{display:block;color:#102e3b;font-weight:800;margin-bottom:1px}
.dm-done-badge.all-done{background:#eaf6ef;border-color:#8dc9ab;color:#0e5a4e}
.dm-done-badge.all-done b{color:#0e5a4e}
.dm-done-badge.half-done{background:#fff5e7;border-color:#f1c874;color:#8a5e14}
.dm-done-badge.half-done b{color:#8a5e14}
.dm-done-badge.early{background:#fef0ec;border-color:#f3b7a2;color:#8a3f27}
.dm-done-badge.early b{color:#8a3f27}
.dm-done-key{margin:4px 0 0;display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.dm-done-key > div{border-left:2px solid #d4e2db;padding-left:8px}
.dm-done-key dt{color:#546974;font-size:10.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;margin:0}
.dm-done-key dd{margin:2px 0 0;color:#102e3b;font-weight:900;font-size:14px}

@media (max-width: 1120px){
  .dm-dashboard{grid-template-columns:1fr 1fr}
  .dm-coverage{grid-column:1/-1}
}
@media (max-width: 720px){
  .dm-dashboard{grid-template-columns:1fr}
  .dm-coverage{grid-column:auto}
  .dm-donut-row{grid-template-columns:90px minmax(0,1fr);gap:12px}
}

/* Dashboard empty state — show the three cards with a hint under each */
.dm-dashboard-empty .dm-card{opacity:.96}
.dm-dashboard-empty .dm-donut{background:conic-gradient(#e8efeb 0 100%)}
.dm-dashboard-empty .dm-donut strong{color:#7a8e97}
.dm-dashboard-empty .dm-coverage-num strong{color:#7a8e97}
.dm-empty-hint{margin:4px 0 0;font-size:11.5px;color:#7a8e97;line-height:1.45;padding-top:8px;border-top:1px dashed #d4e2db;font-style:italic}

/* ======================================================================
   Go/no-go questionnaire — the five groups inside the donor modal,
   plus the verdict badges used in the dashboard and prospect table.
   ====================================================================== */
.dm-assess-grid{display:grid;gap:10px;margin:4px 0 10px}
.dm-assess-group{background:#f6faf7;border:1px solid #d4e2db;border-radius:12px;padding:0;overflow:hidden}
.dm-assess-group summary{list-style:none;cursor:pointer;padding:12px 16px;display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:14px;font-weight:800;color:#102e3b}
.dm-assess-group summary::-webkit-details-marker{display:none}
.dm-assess-group summary:before{content:"▸";display:inline-block;font-size:10px;color:#16746e;margin-right:6px;transition:transform .2s ease}
.dm-assess-group[open] summary:before{transform:rotate(90deg)}
.dm-assess-group summary b{font-weight:800}
.dm-assess-group summary small{color:#546974;font-weight:600;font-size:11.5px}
.dm-assess-risk summary{background:#fef0ec;color:#8a3f27}
.dm-assess-risk summary small{color:#8a3f27;opacity:.75}
.dm-assess-rows{padding:4px 16px 14px;display:grid;gap:10px}
.dm-assess-row{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:12px;align-items:center;padding:8px 0;border-top:1px solid #e4ede8}
.dm-assess-row:first-child{border-top:0}
.dm-assess-q{display:flex;flex-direction:column;gap:2px;min-width:0}
.dm-assess-q b{font-size:13px;color:#102e3b;font-weight:700}
.dm-assess-q small{font-size:11.5px;color:#546974;line-height:1.4}
.dm-assess-sel{height:36px;padding:6px 10px;border:1px solid #c9d6ce;border-radius:8px;background:#fff;font:inherit;font-size:13px;color:#102e3b}
.dm-assess-sel:focus{outline:0;border-color:#16746e;box-shadow:0 0 0 3px rgba(22,116,110,.15)}
@media (max-width:600px){.dm-assess-row{grid-template-columns:1fr}}

/* Verdict badge (used in modal title, prospect table and dashboard) */
.dm-verdict-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:999px;font-size:11.5px;font-weight:800;letter-spacing:.02em;line-height:1.2;background:#edf3f0;color:#546974;border:1px solid transparent;white-space:nowrap}
.dm-verdict-badge.go-strong{background:#d9eee3;color:#0e5a4e;border-color:#8dc9ab}
.dm-verdict-badge.go{background:#eaf6ef;color:#0e5a4e;border-color:#a5d7bc}
.dm-verdict-badge.review{background:#fff5e7;color:#8a5e14;border-color:#f1c874}
.dm-verdict-badge.nogo{background:#fef0ec;color:#8a3f27;border-color:#f3b7a2}
.dm-verdict-badge.none{background:#edf3f0;color:#7a8e97;border-color:#d4e2db}
.dm-verdict-stats{display:inline-block;margin-left:10px;color:#546974;font-size:11.5px;font-weight:600}

/* Dashboard · verdict pills row */
.dm-verdict-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.dm-verdict-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:11.5px;font-weight:700;color:#102e3b;background:#edf3f0}
.dm-verdict-pill b{color:#102e3b;font-weight:900;font-size:12.5px}
.dm-verdict-pill.go{background:#eaf6ef;color:#0e5a4e}
.dm-verdict-pill.go b{color:#0e5a4e}
.dm-verdict-pill.review{background:#fff5e7;color:#8a5e14}
.dm-verdict-pill.review b{color:#8a5e14}
.dm-verdict-pill.nogo{background:#fef0ec;color:#8a3f27}
.dm-verdict-pill.nogo b{color:#8a3f27}
.dm-assess-hint{margin:8px 0 0;font-size:11.5px;color:#546974;line-height:1.5}
.dm-assess-hint b{color:#102e3b}
/* 4-up dashboard on wide screens */
.dm-dashboard{grid-template-columns:repeat(4,minmax(0,1fr))!important}
@media (max-width:1400px){.dm-dashboard{grid-template-columns:1fr 1fr!important}}
@media (max-width:720px){.dm-dashboard{grid-template-columns:1fr!important}}

/* ======================================================================
   Assessment grid — inline-editable spreadsheet-style table that mirrors
   the Annex 2 Excel. Grouped header, horizontal scroll, Yes/No/Don't know
   cells colour-coded as the user fills them.
   ====================================================================== */
.dm-grid-wrap{overflow-x:auto;border:1px solid #d4e2db;border-radius:12px;margin-top:12px;background:#fff}
.dm-grid{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;font-size:12.5px;color:#102e3b}
.dm-grid thead th{background:#f6faf7;position:sticky;top:0;z-index:2}
.dm-grid-group-row th{padding:8px 10px;text-align:center;font-size:10.5px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:#fff;border-bottom:2px solid #fff;white-space:nowrap}
.dm-grid-group-verdict{background:#546974}
.dm-grid-group-general{background:#102e3b}
.dm-grid-group-strategy{background:#16746e}
.dm-grid-group-likelihood{background:#2b8f7f}
.dm-grid-group-technical{background:#5e9e7a}
.dm-grid-group-capacity{background:#8bb16d}
.dm-grid-group-risk{background:#b35238}
.dm-grid-group-del{background:#f6faf7}
.dm-grid-col-row th{padding:8px 10px;text-align:left;font-size:11px;font-weight:800;color:#102e3b;border-bottom:1px solid #d4e2db;background:#eef4f0;white-space:normal;vertical-align:bottom}
.dm-grid-th-ynd{max-width:120px;line-height:1.3}
.dm-grid-td{padding:4px 6px;border-bottom:1px solid #ebf1ee;vertical-align:top}
.dm-grid tbody tr:hover td{background:#fafcfb}
.dm-grid-verdict{padding:8px 10px;border-right:2px solid #d4e2db;background:#f6faf7;min-width:140px;vertical-align:middle;position:sticky;left:0;z-index:1}
.dm-grid-verdict small{color:#546974;display:inline-block;margin-top:3px;font-size:10.5px;font-weight:600}
.dm-grid-del{padding:4px 10px;text-align:center;vertical-align:middle}
.dm-grid-del .link{color:#b35238;font-size:14px;padding:4px 8px;border:0;background:transparent;cursor:pointer}
.dm-grid-del .link:hover{color:#8a3f27}

/* Cell inputs — look flat, show focus clearly */
.dm-grid-cell{width:100%;min-width:0;border:1px solid transparent;background:transparent;padding:5px 7px;border-radius:6px;font:inherit;font-size:12.5px;color:inherit;line-height:1.35}
.dm-grid-cell:hover{background:#fff;border-color:#d4e2db}
.dm-grid-cell:focus{outline:0;background:#fff;border-color:#16746e;box-shadow:0 0 0 2px rgba(22,116,110,.15)}
.dm-grid-input{height:30px}
.dm-grid-area{resize:vertical;min-height:30px;max-height:120px;overflow:auto}
.dm-grid-sel{height:30px;padding-right:22px;appearance:none;background-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%2316746e' stroke-width='3' stroke-linecap='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 7px center}

/* Yes/No/Don't know cell colour-coding — fills the whole cell background */
.dm-grid-td-ynd{min-width:100px}
.dm-grid-ans-yes{background:#eaf6ef}
.dm-grid-ans-no{background:#fef0ec}
.dm-grid-ans-dontknow{background:#fff5e7}
.dm-grid-ans-none{background:#fff}
/* For Risk group, invert the colour meaning so visual read matches "Yes = risk" */
.dm-grid tbody tr td.dm-grid-td-ynd:nth-child(n+30):nth-child(-n+35).dm-grid-ans-yes{background:#fef0ec}
.dm-grid tbody tr td.dm-grid-td-ynd:nth-child(n+30):nth-child(-n+35).dm-grid-ans-no{background:#eaf6ef}

/* Sticky left column so the verdict and donor name stay in view on scroll */
.dm-grid-td-code,.dm-grid-td-name{background:#fff}
.dm-grid tbody tr:hover .dm-grid-td-code,.dm-grid tbody tr:hover .dm-grid-td-name{background:#fafcfb}

/* ======================================================================
   Grid filter bar — sits between the dashboard and the grid.
   Four dropdowns + search + a running "showing N of M" count.
   ====================================================================== */
.dm-filter-bar{display:flex;flex-wrap:wrap;gap:12px 14px;align-items:flex-end;padding:12px 14px;background:#f6faf7;border:1px solid #d4e2db;border-radius:12px;margin:8px 0 10px}
.dm-filt-label{display:flex;flex-direction:column;gap:4px;min-width:0}
.dm-filt-label span{font-size:10.5px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:#16746e}
.dm-filt-sel,.dm-filt-input{height:34px;padding:6px 28px 6px 10px;border:1px solid #c9d6ce;border-radius:8px;background:#fff;font:inherit;font-size:13px;color:#102e3b;min-width:140px;max-width:220px}
.dm-filt-sel{appearance:none;background-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%2316746e' stroke-width='3' stroke-linecap='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}
.dm-filt-sel:focus,.dm-filt-input:focus{outline:0;border-color:#16746e;box-shadow:0 0 0 2px rgba(22,116,110,.15)}
.dm-filt-search .dm-filt-input{min-width:220px;padding-right:10px;background:#fff}
.dm-filter-count{margin-left:auto;align-self:center;color:#546974;font-size:12.5px;font-weight:600}
.dm-filter-count b{color:#102e3b;font-weight:900}
@media (max-width:720px){
 .dm-filter-bar{padding:10px}
 .dm-filt-sel,.dm-filt-input{min-width:0;max-width:none;width:100%}
 .dm-filt-label{flex:1 1 140px}
 .dm-filter-count{margin-left:0;width:100%}
}

/* ======================================================================
   Risk grid additions — band-coloured score badge in the sticky Score
   column plus small "overdue / approved / closed" flag chips underneath.
   Shared between Issue & Risk Management risks and issues grids.
   ====================================================================== */
.dm-grid-score-cell{text-align:center}
.dm-grid-score-cell .dm-verdict-badge{min-width:60px;flex-direction:column;line-height:1.1;padding:5px 10px;font-size:13px;font-weight:900}
.dm-grid-score-cell .dm-verdict-badge small{display:block;margin-top:2px;font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;opacity:.85}
.dm-verdict-badge.dm-risk-band-low{background:#d9eee3;color:#0e5a4e;border-color:#8dc9ab}
.dm-verdict-badge.dm-risk-band-medium{background:#fff5e7;color:#8a5e14;border-color:#f1c874}
.dm-verdict-badge.dm-risk-band-high{background:#ffdfc5;color:#88452b;border-color:#f0b48a}
.dm-verdict-badge.dm-risk-band-critical{background:var(--coral,#e56f4a);color:#fff;border-color:#c7442b}
.dm-verdict-badge.dm-risk-band-none{background:#edf3f0;color:#7a8e97;border-color:#d4e2db}
.dm-grid-flags{display:flex;flex-wrap:wrap;gap:3px;justify-content:center;margin-top:6px}
.dm-grid-flag{display:inline-flex;align-items:center;padding:1px 6px;border-radius:999px;font-size:9.5px;font-weight:800;letter-spacing:.02em;line-height:1.3;white-space:nowrap;border:1px solid transparent}
.dm-grid-flag-bad{background:#fef0ec;color:#8a3f27;border-color:#f3b7a2}
.dm-grid-flag-ok{background:#eaf6ef;color:#0e5a4e;border-color:#a5d7bc}
.dm-grid-flag-neutral{background:#edf3f0;color:#546974;border-color:#d4e2db}

/* Date cells in the grid — same height/visual as text inputs */
.dm-grid-date{height:30px;color:#102e3b}
.dm-grid-date::-webkit-calendar-picker-indicator{opacity:.5;cursor:pointer}
.dm-grid-date:hover::-webkit-calendar-picker-indicator{opacity:.9}

/* Risk-themed donut variant — red/amber gradient to match severity instead
   of go/no-go green. Reuses .dm-donut's --go-share / --no-go-share vars. */
.dm-donut.dm-donut-risk{background:conic-gradient(var(--coral,#e56f4a) 0 var(--go-share,0%),#f1c874 var(--go-share,0%) calc(var(--go-share,0%) + var(--no-go-share,0%)),#8dc9ab calc(var(--go-share,0%) + var(--no-go-share,0%)) 100%)}
.dm-donut.dm-donut-risk > div strong{color:var(--coral,#e56f4a)}

/* ======================================================================
   Column-header info tooltip (small "i" chip with a native title tooltip).
   Used across the Issue & Risk grids and the Settings tab.
   ====================================================================== */
.dm-info{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:50%;background:#16746e;color:#fff;font-family:Georgia,serif;font-style:italic;font-size:10px;font-weight:900;cursor:help;margin-left:5px;vertical-align:middle;line-height:1;user-select:none}
.dm-info:hover,.dm-info:focus{background:#102e3b;outline:0}
.dm-info-inline{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:50%;background:#16746e;color:#fff;font-family:Georgia,serif;font-style:italic;font-size:10px;font-weight:900;line-height:1;vertical-align:middle;margin:0 2px}

/* Autosize textareas inside the grid — no artificial max-height, no scroll */
.dm-grid-area{resize:none;min-height:30px;max-height:none;overflow:hidden;white-space:pre-wrap;word-break:break-word}
/* Allow sticky L×I / Severity header to carry inline info icon without wrapping */
.dm-grid-th-sticky{min-width:120px}

/* ======================================================================
   How-it-works grid for the Overview tab.
   ====================================================================== */
.dm-readme{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin-top:10px}
.dm-readme article{padding:14px 16px;background:#f6faf7;border:1px solid #d4e2db;border-radius:12px}
.dm-readme h4{margin:0 0 6px;font-size:13.5px;color:#102e3b;font-weight:800;letter-spacing:.01em}
.dm-readme p{margin:0;font-size:12.5px;line-height:1.55;color:#243b45}
.dm-readme b{color:#102e3b}

/* ======================================================================
   Settings tab — one textarea per editable list; each saves on input.
   ====================================================================== */
.dm-settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:14px}
@media (max-width:860px){.dm-settings-grid{grid-template-columns:1fr}}
.dm-settings-block{padding:14px 16px;border:1px solid #d4e2db;border-radius:12px;background:#f6faf7}
.dm-settings-block h3{margin:0 0 4px;font-size:14px;color:#102e3b;font-weight:800;display:flex;align-items:center;gap:4px}
.dm-settings-block .muted{font-size:11.5px;margin:0 0 8px;color:#546974}
.dm-settings-area{width:100%;padding:8px 10px;border:1px solid #c9d6ce;border-radius:8px;font:inherit;font-size:13px;background:#fff;color:#102e3b;line-height:1.55;resize:vertical;min-height:120px}
.dm-settings-area:focus{outline:0;border-color:#16746e;box-shadow:0 0 0 2px rgba(22,116,110,.15)}
.dm-settings-count{display:inline-block;margin-top:6px;font-size:11px;color:#546974;font-weight:700;letter-spacing:.04em;text-transform:uppercase}

/* ======================================================================
   Integrated register (Meetings tool): one grid holding Meetings, Actions
   and Decisions. A per-row kind badge, "not applicable" placeholders, and
   a Columns editor panel for adding/renaming/hiding/deleting columns.
   ====================================================================== */
.dm-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.dm-toolbar .button.is-active{background:#102e3b;color:#fff;border-color:#102e3b}

.dm-kind-badge{display:inline-flex;align-items:center;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.02em;line-height:1.2;border:1px solid transparent;white-space:nowrap}
.dm-kind-meeting{background:#eaf1f6;color:#1b4660;border-color:#b6cfdd}
.dm-kind-action{background:#fff5e7;color:#8a5e14;border-color:#f1c874}
.dm-kind-decision{background:#eef3eb;color:#2d5c33;border-color:#b7cfaf}
.dm-grid-kind-sel{min-width:98px;font-weight:700}

/* Row tint by kind — subtle, keeps meetings legible as "group headers" */
.dm-row-meeting > td{background:#f6faf7}
.dm-row-meeting:hover > td{background:#eef4f0}
.dm-row-meeting > td.dm-grid-score-cell{background:#eaf1f6}
.dm-row-action > td.dm-grid-score-cell{background:#fff8ec}
.dm-row-decision > td.dm-grid-score-cell{background:#f1f7ec}

/* Not-applicable cell */
.dm-grid-na{display:flex;align-items:center;justify-content:center;height:30px;color:#9fb4bb;font-size:12.5px;font-style:italic;letter-spacing:.02em}

/* ======================================================================
   Meetings-tool banded register. The grid has three column bands —
   Meeting · Decisions · Actions — and one row per meeting. Decisions and
   actions each render in their own sub-rows inside the band; the meeting
   cells span those sub-rows via rowspan.
   ====================================================================== */
.dm-grid-meetings .dm-grid-td-m{background:#f8fbfa;border-right:1px solid #cfddd5}
.dm-grid-meetings .dm-grid-td-d{background:#fbfdfb;border-right:1px solid #e3ece6}
.dm-grid-meetings .dm-grid-td-a{background:#fcfdfb}
.dm-grid-meetings .dm-grid-th-m{background:#eef4f0}
.dm-grid-meetings .dm-grid-th-d{background:#f1f6ef}
.dm-grid-meetings .dm-grid-th-a{background:#fdf4e5}
/* Thicker divider between whole meeting rows */
.dm-grid-meetings tr.dm-row-sub-first > td{border-top:3px solid #16746e}
.dm-grid-meetings tr.dm-row-sub-first > td.dm-grid-td-m{border-top-color:#102e3b}
/* Nested-cell helpers */
.dm-nest-add{text-align:center;background:#f6faf7;padding:4px 10px !important}
.dm-nest-add .link{color:#16746e;font-weight:700;font-size:12px;padding:4px 10px;background:transparent;border:1px dashed #c9d6ce;border-radius:6px;cursor:pointer}
.dm-nest-add .link:hover{background:#eaf6ef;border-color:#16746e}
.dm-nest-empty{color:#c7d4cc;text-align:center;font-size:14px;background:#fcfdfc}
/* Standalone pseudo-meeting block */
.dm-standalone-head{background:#fff5e7 !important;vertical-align:middle;padding:12px 14px !important;border-top:3px solid #e56f4a}
.dm-standalone-head b{color:#8a3f27;font-size:13px}
.dm-standalone-head small{color:#8a5e14;font-size:11.5px;line-height:1.5}

/* Linked-to cell stacks the dropdown and the free-text note */
.dm-grid-linked-stack{display:flex;flex-direction:column;gap:3px}
.dm-grid-linked-stack .dm-grid-linknote{font-size:11.5px}

/* Column editor — split into Meeting / Decisions / Actions scopes */
.dm-col-scopes{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;margin-bottom:12px}
@media (max-width:900px){.dm-col-scopes{grid-template-columns:1fr}}
.dm-col-scope{background:#fff;border:1px solid #e0ebe4;border-radius:10px;padding:12px}
.dm-col-scope h4{margin:0 0 8px;font-size:12px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:#16746e}
.dm-col-scope .dm-col-list{margin:0}
.dm-col-scope .dm-col-row{grid-template-columns:92px 1fr 100px 22px;padding:6px 8px}
.dm-col-scope .dm-col-label{height:28px;font-size:12px}
.dm-col-scope .dm-col-type{font-size:9.5px}
.dm-col-scope .dm-col-vis{font-size:11px;gap:4px}
.dm-col-scope .dm-col-vis input[type="checkbox"]{width:14px;height:14px}

/* Column editor panel (toggled from the register's toolbar) */
.dm-col-panel{margin:10px 0 14px;padding:16px 18px;background:#f6faf7;border:1px solid #d4e2db;border-radius:12px}
.dm-col-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.dm-col-head h3{margin:0;font-size:15px;color:#102e3b;font-weight:800}
.dm-col-list{list-style:none;padding:0;margin:0 0 14px;display:flex;flex-direction:column;gap:6px}
.dm-col-row{display:grid;grid-template-columns:120px 1fr 150px 28px;gap:10px;align-items:center;padding:7px 10px;background:#fff;border:1px solid #e0ebe4;border-radius:8px}
.dm-col-vis{display:flex;align-items:center;gap:6px;font-size:12px;color:#546974;font-weight:700}
.dm-col-vis input[type="checkbox"]{accent-color:#16746e;width:16px;height:16px}
.dm-col-label{height:30px;padding:5px 9px;border:1px solid #c9d6ce;border-radius:6px;font:inherit;font-size:13px;color:#102e3b;background:#fff;min-width:0}
.dm-col-label:focus{outline:0;border-color:#16746e;box-shadow:0 0 0 2px rgba(22,116,110,.15)}
.dm-col-type{font-size:10.5px;color:#546974;font-weight:700;letter-spacing:.04em;text-transform:uppercase;text-align:right}
.dm-col-row .link.danger{color:#b35238;font-size:14px;padding:2px 6px;border:0;background:transparent;cursor:pointer}
.dm-col-row .link.danger:hover{color:#8a3f27}
.dm-col-add{display:grid;grid-template-columns:1fr 180px auto;gap:10px;align-items:end;padding-top:14px;border-top:1px dashed #d4e2db}
.dm-col-add label{display:flex;flex-direction:column;gap:4px}
.dm-col-add label span{font-size:10.5px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:#16746e}
.dm-col-add input,.dm-col-add select,.dm-col-add textarea{padding:7px 10px;border:1px solid #c9d6ce;border-radius:6px;font:inherit;font-size:13px;background:#fff;color:#102e3b}
.dm-col-add input:focus,.dm-col-add select:focus,.dm-col-add textarea:focus{outline:0;border-color:#16746e;box-shadow:0 0 0 2px rgba(22,116,110,.15)}
.dm-col-opts{grid-column:1/-1}
.dm-col-opts textarea{resize:vertical;min-height:46px}
.dm-col-add .button{align-self:end}
@media (max-width:720px){
 .dm-col-row{grid-template-columns:1fr}
 .dm-col-vis{order:3}
 .dm-col-type{text-align:left;order:4}
 .dm-col-add{grid-template-columns:1fr}
}
