@font-face{font-family:Misk;font-weight:400;src:url('/brand/Misk-Regular.ttf') format('truetype');font-display:swap}
@font-face{font-family:Misk;font-weight:500;src:url('/brand/Misk-Medium.ttf') format('truetype');font-display:swap}
@font-face{font-family:Misk;font-weight:700;src:url('/brand/Misk-Bold.ttf') format('truetype');font-display:swap}
html{font-size:14px}html.text-large{font-size:16px}html.text-x-large{font-size:18px}
:root{
  --bg:#f4f6f4;--surface:#ffffff;--surface-2:#f1f4f2;--ink:#13201a;--ink-2:#46534c;--ink-3:#77827c;--line:#dde4df;
  --brand:#003424;--brand-2:#0b4a36;--accent:#1FC29C;--lime:#AFCA04;
  --good:#0072B2;--warn:#fab219;--serious:#ec835a;--crit:#D55E00;--hold:#8b938e;--verify:#7b5cd6;
  --good-bg:#0072B214;--warn-bg:#fab21924;--serious-bg:#ec835a22;--crit-bg:#D55E0014;--hold-bg:#8b938e1a;--verify-bg:#7b5cd614;
  color-scheme:light;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:Misk,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;font-size:1.0000rem;line-height:1.45}
a{color:inherit}

.top{background:var(--brand);color:#fff;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 28px;flex-wrap:wrap}
.brand .logo{font-size:0.8571rem;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);font-weight:500}
.brand h1{margin:2px 0 0;font-size:1.7143rem;font-weight:700}
.refresh{display:flex;align-items:center;gap:12px;font-size:0.8571rem;color:#cfe3da}
button{font-family:inherit;font-size:0.8571rem;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--ink);padding:6px 12px}
.refresh button{background:var(--accent);border:none;color:#003424;font-weight:700}
button[disabled]{opacity:.75;cursor:not-allowed}
main{max-width:1320px;margin:0 auto;padding:20px 24px 48px}
h2{font-size:1.2143rem;margin:0 0 12px;font-weight:700;color:var(--ink)}
h3{font-size:1.1429rem;margin:0;font-weight:700}
h4{font-size:0.9286rem;margin:14px 0 6px;font-weight:700;color:var(--ink)}
.hint{font-size:0.8571rem;font-weight:400;color:var(--ink-3);margin-left:6px}
.block{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:18px 20px;margin-bottom:16px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.two .block{margin-bottom:16px}
.tiles{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-bottom:16px}
.tile{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px 16px;border-top:4px solid var(--hold)}
.tile .tnum{font-size:2.1429rem;font-weight:700;line-height:1.1}
.t-crit{border-top-color:var(--crit)}.t-serious{border-top-color:var(--serious)}.t-warn{border-top-color:var(--warn)}
.t-verify{border-top-color:var(--verify)}.t-good{border-top-color:var(--good)}.t-hold{border-top-color:var(--hold)}
.chip{display:inline-flex;align-items:center;gap:6px;font-size:0.8571rem;font-weight:500;padding:3px 10px 3px 4px;border-radius:999px;background:var(--hold-bg);color:var(--ink);white-space:nowrap}
.chip .ico{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;font-size:0.7857rem;font-weight:700;color:#fff;background:var(--hold)}
.chip.sm{font-size:0.7857rem;padding:2px 8px 2px 3px}.chip.sm .ico{width:15px;height:15px;font-size:0.6429rem}
.chip.crit{background:var(--crit-bg)}.chip.crit .ico{background:var(--crit)}
.chip.serious{background:var(--serious-bg)}.chip.serious .ico{background:var(--serious)}
.chip.warn{background:var(--warn-bg)}.chip.warn .ico{background:var(--warn);color:#3a2a00}
.chip.verify{background:var(--verify-bg)}.chip.verify .ico{background:var(--verify)}
.chip.good{background:var(--good-bg)}.chip.good .ico{background:var(--good)}
.act{border-left:4px solid var(--crit);background:var(--crit-bg);border-radius:10px;padding:10px 14px;margin-bottom:10px}
.acth{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-weight:700}
.acth a{text-decoration:none}.acth a:hover{text-decoration:underline}
.act ul{margin:6px 0 0;padding-left:18px;color:var(--ink-2)}
.allgood{background:var(--good-bg);border-left:4px solid var(--good);padding:12px 14px;border-radius:10px;font-weight:500}
.pblock{border-top:1px solid var(--line);padding-top:4px}.pblock:first-child{border-top:none}
.pblock h4{margin-top:8px}
ul.tasks,ul.phases,ul.risks,ul.whys,ul.checks{list-style:none;margin:0;padding:0}
.task{padding:7px 0;border-bottom:1px dashed var(--line)}.task:last-child{border-bottom:none}
.tmain{display:flex;gap:6px;align-items:baseline;flex-wrap:wrap}
.tname{font-weight:500}.crumb{font-size:0.7857rem;color:var(--ink-3)}
.star{color:#c99a00}
.tmeta{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:0.8571rem;color:var(--ink-2);margin-top:2px}
.late{color:var(--crit);font-weight:700}
.nb{font-size:0.7857rem;border:1px dashed var(--verify);color:var(--verify);border-radius:6px;padding:0 5px}
.pct{display:inline-flex;align-items:center;gap:6px}
.bar{display:inline-block;width:56px;height:6px;border-radius:3px;background:var(--surface-2);overflow:hidden;border:1px solid var(--line)}
.bar i{display:block;height:100%;background:var(--accent);border-radius:3px}
.owner{color:var(--ink-3)}
.reason{font-size:0.8571rem;color:var(--ink-2);margin-top:2px;font-style:italic}
.more,.empty,.small{font-size:0.8571rem;color:var(--ink-3);margin:6px 0}
.calendar{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}
.month h4{margin:0 0 8px;font-size:0.9286rem;color:var(--brand);text-transform:uppercase;letter-spacing:.04em}
.month ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.cal{display:grid;grid-template-columns:30px 1fr;column-gap:8px;padding:8px 10px;border-radius:10px;background:var(--surface-2);border-left:4px solid var(--hold)}
.cal .cd{grid-row:span 2;font-size:1.2857rem;font-weight:700;line-height:1.1}
.cal .cn{font-weight:500;font-size:0.9286rem}.cal .cx{font-size:0.7857rem;color:var(--ink-2);display:flex;gap:4px;align-items:center;flex-wrap:wrap}
.cal.c-crit{border-left-color:var(--crit)}.cal.c-serious{border-left-color:var(--serious)}.cal.c-warn{border-left-color:var(--warn)}
.cal.c-verify{border-left-color:var(--verify)}.cal.c-good{border-left-color:var(--good)}.cal.nm{border-left-style:dashed;opacity:.8}
.cards{display:grid;gap:12px}
.card{border:1px solid var(--line);border-left:5px solid var(--hold);border-radius:12px;padding:14px 16px;background:var(--surface)}
.card.s-crit{border-left-color:var(--crit)}.card.s-serious{border-left-color:var(--serious)}.card.s-warn{border-left-color:var(--warn)}
.card.s-verify{border-left-color:var(--verify)}.card.s-good{border-left-color:var(--good)}.card.s-hold{opacity:.72}
.card header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap}
.sub{margin:3px 0 0;color:var(--ink-2);font-size:0.9286rem;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.sub2{margin:2px 0 0;color:var(--ink-3);font-size:0.8571rem}
.tag{font-size:0.7857rem;border:1px solid var(--line);border-radius:6px;padding:0 6px;color:var(--ink-2)}
.stat{text-align:right}.health{font-size:0.8571rem;color:var(--ink-3);margin-top:4px}
.whys{margin:10px 0 0}.why{font-size:0.9286rem;color:var(--ink-2);padding:2px 0 2px 16px;position:relative}
.why:before{content:"•";position:absolute;left:4px;color:var(--ink-3)}
.why.act{color:var(--ink);font-weight:500}.why.act:before{content:"!";color:var(--crit);font-weight:700}
.why.muted{color:var(--ink-3)}
.counts{display:flex;gap:16px;flex-wrap:wrap;margin-top:10px;font-size:0.8571rem;color:var(--ink-2)}
.counts b{font-size:1.0714rem;color:var(--ink)}
details.drill{margin-top:10px;border-top:1px solid var(--line);padding-top:8px}
details summary{cursor:pointer;font-weight:500;color:var(--brand);font-size:0.9286rem}
.dgrid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:20px;margin-top:6px}
.phase{margin-bottom:10px}.pname{font-weight:700;font-size:0.9286rem;background:var(--surface-2);padding:6px 8px;border-radius:8px;display:flex;gap:8px;flex-wrap:wrap;align-items:baseline}
.pmeta{font-weight:400;font-size:0.7857rem;color:var(--ink-3)}.pcount{margin-left:auto;font-size:0.7857rem;color:var(--crit);font-weight:700}
.phase ul.tasks{padding-left:12px}
.risk{padding:6px 0;border-bottom:1px dashed var(--line);font-size:0.9286rem}.risk .sev{font-size:0.7857rem;font-weight:700;margin-right:6px;text-transform:capitalize}
.rmeta{display:block;font-size:0.7857rem;color:var(--ink-3)}
.sla{font-size:0.9286rem;color:var(--ink-2);margin:0}
.checks li{font-size:0.9286rem;color:var(--ink-2);padding:2px 0}
.links{display:flex;gap:16px;flex-wrap:wrap;margin-top:12px;font-size:0.9286rem;font-weight:500}
.tablewrap{overflow-x:auto}
table.disc{width:100%;border-collapse:collapse;font-size:0.9286rem}
.disc th{text-align:left;font-size:0.8571rem;color:var(--ink-3);font-weight:500;border-bottom:1px solid var(--line);padding:6px 8px}
.disc td{border-bottom:1px solid var(--line);padding:8px;vertical-align:top}
.disc .btns{white-space:nowrap}.disc button{margin-left:4px}
details.how{font-size:0.9286rem;color:var(--ink-2);margin-top:8px}.how ul{padding-left:18px}
@media (max-width:1000px){.tiles{grid-template-columns:repeat(3,1fr)}.two{grid-template-columns:1fr}.dgrid{grid-template-columns:1fr}}
@media (max-width:560px){main{padding:12px 16px 32px}.top{padding:14px 16px}.tiles{grid-template-columns:repeat(2,1fr)}.block{padding:14px}.stat{text-align:left}}
/* v2: tables, support, gantt */
.two{grid-template-columns:1fr}
table.list{width:100%;border-collapse:collapse;font-size:0.9286rem}
.list th{text-align:left;font-size:0.8571rem;color:var(--ink-3);font-weight:500;border-bottom:1px solid var(--line);padding:6px 8px;white-space:nowrap}
.list td{border-bottom:1px solid var(--line);padding:7px 8px;vertical-align:top}
.list td.dt{white-space:nowrap;color:var(--ink-2)}
.list td.evn{font-weight:700;min-width:160px}
.list td.num{text-align:right;color:var(--ink-2);white-space:nowrap}
.sfrom{display:inline-block;font-size:0.8571rem;font-weight:700;background:var(--warn-bg);border:1px solid var(--warn);border-radius:6px;padding:1px 7px;color:var(--ink);white-space:nowrap}
.rmeta .sfrom{margin-top:3px}
.gantt{margin:6px 0 4px;font-size:0.8571rem}
.g-head,.g-row{display:flex;align-items:stretch}
.g-label{flex:0 0 260px;padding:4px 10px 4px 0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.g-row.d1 .g-label{padding-left:16px;color:var(--ink-2)}
.g-row.d0 .g-label{font-weight:500}
.g-sub{display:block;font-size:0.7857rem;color:var(--ink-3);font-weight:400}
.g-pct{font-size:0.7857rem;color:var(--ink-3);margin-left:6px;font-weight:400}
.g-axis{flex:1;position:relative;height:22px;border-bottom:1px solid var(--line)}
.g-tick{position:absolute;top:0;bottom:0;border-left:1px solid var(--line);padding-left:4px;font-size:0.7857rem;color:var(--ink-3);white-space:nowrap}
.g-row{border-bottom:1px dashed var(--line);min-height:28px}
.portfolio .g-row{min-height:38px}
.g-track{flex:1;position:relative;min-height:28px}
.g-track i{position:absolute;display:block;font-style:normal}
.g-base{top:50%;height:16px;margin-top:-8px;border:1.5px dashed var(--ink-3);border-radius:4px;background:transparent}
.g-bar{top:50%;height:8px;margin-top:-4px;border-radius:4px;background:var(--accent);overflow:hidden;opacity:.55}
.g-bar b{display:block;height:100%;background:var(--ink);opacity:.35}
.g-bar.done{background:var(--good);opacity:.9}.g-bar.active{background:var(--accent);opacity:.9}
.g-bar.late{background:var(--crit);opacity:.9}.g-bar.todo{background:var(--hold);opacity:.6}
.g-bar.s-crit{background:var(--crit);opacity:.85}.g-bar.s-serious{background:var(--serious);opacity:.85}.g-bar.s-warn{background:var(--warn);opacity:.85}
.g-bar.s-verify{background:var(--verify);opacity:.75}.g-bar.s-good{background:var(--good);opacity:.85}.g-bar.s-hold{background:var(--hold);opacity:.45}
.portfolio .g-bar{height:10px;margin-top:-5px}
.g-bar.cl{border-top-left-radius:0;border-bottom-left-radius:0}.g-bar.cr{border-top-right-radius:0;border-bottom-right-radius:0}
.g-today{top:0;bottom:0;width:2px;margin-left:-1px;background:var(--ink);opacity:.55;z-index:2}
.g-evline{top:0;bottom:0;width:0;border-left:2px dotted var(--brand);z-index:1}
.g-ev{top:50%;width:11px;height:11px;margin:-6px 0 0 -6px;background:var(--brand);border:2px solid var(--surface);transform:rotate(45deg);z-index:3}
.g-star{top:50%;margin:-9px 0 0 -6px;color:#c99a00;font-size:0.9286rem;line-height:18px;z-index:3}
.g-none{position:absolute;top:50%;margin-top:-8px;left:4px;font-size:0.7857rem;color:var(--ink-3)}
.g-legend{display:flex;flex-wrap:wrap;gap:14px;font-size:0.8571rem;color:var(--ink-2);margin:0 0 6px}
.g-legend span{display:inline-flex;align-items:center;gap:6px}
.lg{display:inline-block;width:22px;height:8px;border-radius:4px}
.lg.base{height:12px;border:1.5px dashed var(--ink-3);background:transparent}
.lg.bar.done{background:var(--good)}.lg.bar.active{background:var(--accent)}.lg.bar.late{background:var(--crit)}.lg.bar.todo{background:var(--hold)}
.lg.ev{width:10px;height:10px;border-radius:0;background:var(--brand);transform:rotate(45deg)}
.lg.today{width:2px;height:14px;border-radius:0;background:var(--ink);opacity:.55}
@media (max-width:700px){.g-label{flex-basis:130px}}

/* v3: colour-blind safe (Okabe-Ito, validated: CVD all-pairs worst dE 9.6, light only). Meaning never relies on colour alone. */
:root{--crit:#D55E00;--serious:#E69F00;--warn:#E69F00;--verify:#CC79A7;--good:#0072B2;--hold:#8b938e;
  --crit-bg:#D55E001a;--serious-bg:#E69F0024;--warn-bg:#E69F0024;--verify-bg:#CC79A71f;--good-bg:#0072B214;--hold-bg:#8b938e1a;
  --done:#0072B2;--active:#56B4E9;color-scheme:light}
.chip.serious .ico,.chip.warn .ico{color:#2b1d00}
.chip .ico{font-size:0.8571rem}
.late{color:var(--ink);font-weight:700}
.late::before{content:"⚠ ";color:var(--crit)}
.why.act:before{color:var(--crit)}
.pcount{color:var(--ink)}
.pcount::before{content:"⚠ ";color:var(--crit)}
.allgood{border-left-color:var(--good)}
/* gantt: state = colour + texture + shape */
.g-bar{opacity:1}
.g-bar.done{background:var(--done)}
.g-bar.active{background:var(--active);box-shadow:inset 0 0 0 1px var(--done)}
.g-bar.late{background:repeating-linear-gradient(45deg,var(--crit) 0 3px,#f6c7a8 3px 6px);box-shadow:inset 0 0 0 1px var(--crit)}
.g-bar.todo{background:transparent;box-shadow:inset 0 0 0 1.5px var(--hold)}
.g-bar.s-crit{background:repeating-linear-gradient(45deg,var(--crit) 0 3px,#f6c7a8 3px 6px);box-shadow:inset 0 0 0 1px var(--crit)}
.g-bar.s-serious,.g-bar.s-warn{background:repeating-linear-gradient(135deg,var(--serious) 0 3px,#fbe3b0 3px 6px);box-shadow:inset 0 0 0 1px #b77d00}
.g-bar.s-verify{background:radial-gradient(circle,var(--verify) 1.6px,#f3dce9 1.7px) 0 0/5px 5px;box-shadow:inset 0 0 0 1px var(--verify)}
.g-bar.s-good{background:var(--good)}
.g-bar.s-hold{background:transparent;box-shadow:inset 0 0 0 1.5px var(--hold)}
.portfolio .g-bar b{display:none}
.g-latemark{top:50%;margin:-8px 0 0 3px;width:15px;height:15px;border-radius:50%;background:var(--crit);color:#fff;font-size:0.7143rem;font-weight:700;line-height:15px;text-align:center;z-index:3}
.lg.bar.done{background:var(--done)}.lg.bar.active{background:var(--active);box-shadow:inset 0 0 0 1px var(--done)}
.lg.bar.late{background:repeating-linear-gradient(45deg,var(--crit) 0 3px,#f6c7a8 3px 6px)}
.lg.bar.todo{background:transparent;box-shadow:inset 0 0 0 1.5px var(--hold)}
.g-sico{display:inline-grid;place-items:center;width:15px;height:15px;border-radius:50%;font-size:0.6429rem;font-weight:700;color:#fff;margin-right:5px;vertical-align:1px}
.g-sico.crit{background:var(--crit)}.g-sico.serious,.g-sico.warn{background:var(--serious);color:#2b1d00}.g-sico.verify{background:var(--verify)}
.g-sico.good{background:var(--good)}.g-sico.hold{background:var(--hold)}
/* v3.1: solid fallback under textures (renderers without gradient support), legend layout */
.g-bar.late,.g-bar.s-crit,.lg.bar.late,.lg.bar.s-crit{background-color:var(--crit);background-image:repeating-linear-gradient(45deg,var(--crit) 0 3px,#f6c7a8 3px 6px)}
.g-bar.s-serious,.g-bar.s-warn,.lg.bar.s-serious{background-color:var(--serious);background-image:repeating-linear-gradient(135deg,var(--serious) 0 3px,#fbe3b0 3px 6px)}
.g-bar.s-verify,.lg.bar.s-verify{background-color:#f3dce9;background-image:radial-gradient(circle,var(--verify) 1.6px,transparent 1.7px);background-size:5px 5px}
.g-legend span{white-space:nowrap}
.g-legend .lg.bar{width:26px;height:10px;position:static}

/* Application and responsive behavior; the reference v3 palette remains fixed. */
body{overflow-wrap:anywhere}main,.block,.card,.dgrid>section{min-width:0}
button,input,.nav-link,.links a,summary,.page-link{min-height:44px}
button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible,.gantt-scroll:focus-visible{outline:3px solid var(--good);outline-offset:3px}
.brand{display:flex;align-items:center;gap:14px}.brand-logo{width:90px;height:auto;background:var(--surface);padding:6px;border-radius:6px}
.refresh{flex-wrap:wrap}.refresh time{display:block}.refresh form{margin:0}.nav-link{display:inline-flex;align-items:center;padding:8px}
.skip{position:absolute;top:-100px;left:8px;z-index:10;background:var(--surface);padding:12px}.skip:focus{top:8px}
.notice{background:var(--verify-bg);border:1px solid var(--verify);border-radius:10px;padding:12px;margin:0 0 16px;color:var(--ink)}
.page-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.page-link{display:flex;align-items:center;justify-content:space-between;background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:16px;font-size:1.15rem;text-decoration:none}
.page-index-heading{margin:8px 0 22px}.page-index-heading h2{font-size:1.7143rem;margin-bottom:6px}.page-index-heading p{margin:0;color:var(--ink-2)}
.page-card{min-width:0;min-height:220px;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:22px;padding:24px;background:var(--surface);border-top:4px solid var(--brand);border-radius:14px}
.page-card:hover{border-color:var(--brand);box-shadow:0 3px 12px #00342414}.page-card:focus-visible{outline:4px solid var(--brand);outline-offset:4px}
.page-card-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.page-card-heading>div{min-width:0}.page-card h3{font-size:1.5714rem;color:var(--brand);margin:0 0 6px}
.page-role{font-size:1rem;color:var(--ink-2);margin:0;line-height:1.5}.page-arrow{display:grid;place-items:center;flex:0 0 36px;height:36px;border-radius:50%;background:var(--surface-2);color:var(--brand);font-size:1.4rem}
.page-metrics{display:flex;align-items:center;flex-wrap:wrap;gap:12px 20px;font-size:1rem}.page-event-count strong{font-size:1.7143rem;line-height:1.1;margin-right:4px}
.page-action-count{display:inline-flex;align-items:center;gap:8px;padding:7px 10px;border-radius:8px;color:var(--ink)}.page-action-count .ico{display:grid;place-items:center;width:22px;height:22px;flex:0 0 22px;border-radius:50%;font-weight:700;color:#fff}
.page-action-count.has-actions{background:var(--crit-bg)}.page-action-count.has-actions .ico{background:var(--crit)}.page-action-count.no-actions{background:var(--good-bg)}.page-action-count.no-actions .ico{background:var(--good)}
.page-check{font-size:1rem;margin:0;margin-top:auto;padding-top:16px;border-top:1px solid var(--line);color:var(--ink-2)}.page-check time{display:block;margin-top:3px;color:var(--ink)}.page-pending{display:flex;align-items:center;gap:8px;color:var(--ink-2)}
.compact .block{padding:12px 16px}.compact .card{padding:10px 12px}.compact .task{padding:4px 0}.compact .tiles{gap:8px}
.gantt-scroll{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;border:1px solid var(--line);border-radius:8px}
.gantt{min-width:840px;margin:0}.gantt .g-label{position:sticky;left:0;z-index:4;background:var(--surface);flex:0 0 260px;padding-left:8px}.g-row .g-label{white-space:normal;overflow-wrap:anywhere}.g-row{min-height:44px}.g-track,.g-axis{min-width:0}.g-sub{font-size:.85rem}.g-bar{opacity:1}.g-bar.active{background:var(--active)}.g-bar.todo,.g-bar.s-hold{background:transparent;opacity:1}
.lg.bar{border:none}.lg.bar.done{background:var(--done)}.lg.bar.s-crit{background-color:var(--crit);background-image:repeating-linear-gradient(45deg,var(--crit) 0 3px,#f6c7a8 3px 6px)}.lg.bar.s-serious{background-color:var(--serious);background-image:repeating-linear-gradient(135deg,var(--serious) 0 3px,#fbe3b0 3px 6px)}.lg.bar.s-verify{background-color:#f3dce9;background-image:radial-gradient(circle,var(--verify) 1.6px,transparent 1.7px);background-size:5px 5px}
.chip.sm{white-space:normal}.links a{display:inline-flex;align-items:center}summary{padding:10px 0}.bar i{background:var(--good)}
.g-bar.done,.g-bar.active,.g-bar.late,.g-bar.todo,.g-bar.s-crit,.g-bar.s-serious,.g-bar.s-warn,.g-bar.s-verify,.g-bar.s-good,.g-bar.s-hold{opacity:1}
@media (max-width:560px){
  main{padding:12px 12px 32px}.top{padding:14px 12px}.brand{gap:8px}.brand-logo{width:65px}.brand h1{font-size:1.4rem}.refresh{width:100%;font-size:1rem}.refresh>span{width:100%}
  .tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.tile{padding:12px 10px}.chip,.chip.sm{font-size:1rem;white-space:normal}.chip .ico{flex-shrink:0}
  .block,.compact .block{padding:12px}.dgrid{grid-template-columns:minmax(0,1fr)}.cards .card{padding:12px}.calendar{grid-template-columns:minmax(0,1fr)}
  .hint{display:block;margin:4px 0 0}.hint,.sub,.sub2,.counts,.tmeta,.crumb,.empty,.small,.more,.tag,.reason,.risk,.rmeta,.sfrom,.checks li,.how,.cal .cn,.cal .cx,h4,.pname,.pmeta,.pcount,.g-pct,.g-none,.g-tick,.health,.why,.sla{font-size:1rem}
  .gantt{min-width:830px}.gantt .g-label{flex-basis:110px;font-size:1rem}.g-row.d1 .g-label{padding-left:12px}.g-row{min-height:56px}.g-sub{font-size:1rem}.g-label{max-height:140px}.g-legend{font-size:1rem;gap:8px}.g-legend span{white-space:normal}
  .tablewrap{overflow:visible}table.list,table.disc,table tbody,table tr,table td{display:block;width:100%}table thead{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden;white-space:nowrap}
  table tr{border:1px solid var(--line);border-radius:10px;padding:8px;margin-bottom:10px}
  table.list td,table.disc td{display:grid;grid-template-columns:minmax(0,1fr);gap:3px;border:0;padding:6px 4px;font-size:1rem;white-space:normal;text-align:left;min-width:0}
  table td::before{content:attr(data-label);font-weight:700;color:var(--ink-2);font-size:1rem}.list td.evn{min-width:0}.list td.dt,.list td.num,.disc .btns{white-space:normal}.disc .btns{display:flex;flex-wrap:wrap}.disc .btns::before{width:100%}.list .crumb{grid-column:1}
  .page-grid{grid-template-columns:minmax(0,1fr)}.page-card{padding:20px;gap:18px;min-height:220px}.g-legend .lg{flex-shrink:0}.stat{text-align:left}
}
@media (max-width:380px){.top{padding:12px}.brand h1{font-size:1.25rem}.brand-logo{width:52px}.tiles{gap:6px}.tile{padding:10px 8px}.chip{gap:4px}.block,.compact .block{padding:10px}.refresh{gap:8px}.gantt .g-label{flex-basis:110px}}

/* Numeric completion widths keep per-task styling external under the CSP. */
.progress-0{width:0%}
.progress-1{width:1%}
.progress-2{width:2%}
.progress-3{width:3%}
.progress-4{width:4%}
.progress-5{width:5%}
.progress-6{width:6%}
.progress-7{width:7%}
.progress-8{width:8%}
.progress-9{width:9%}
.progress-10{width:10%}
.progress-11{width:11%}
.progress-12{width:12%}
.progress-13{width:13%}
.progress-14{width:14%}
.progress-15{width:15%}
.progress-16{width:16%}
.progress-17{width:17%}
.progress-18{width:18%}
.progress-19{width:19%}
.progress-20{width:20%}
.progress-21{width:21%}
.progress-22{width:22%}
.progress-23{width:23%}
.progress-24{width:24%}
.progress-25{width:25%}
.progress-26{width:26%}
.progress-27{width:27%}
.progress-28{width:28%}
.progress-29{width:29%}
.progress-30{width:30%}
.progress-31{width:31%}
.progress-32{width:32%}
.progress-33{width:33%}
.progress-34{width:34%}
.progress-35{width:35%}
.progress-36{width:36%}
.progress-37{width:37%}
.progress-38{width:38%}
.progress-39{width:39%}
.progress-40{width:40%}
.progress-41{width:41%}
.progress-42{width:42%}
.progress-43{width:43%}
.progress-44{width:44%}
.progress-45{width:45%}
.progress-46{width:46%}
.progress-47{width:47%}
.progress-48{width:48%}
.progress-49{width:49%}
.progress-50{width:50%}
.progress-51{width:51%}
.progress-52{width:52%}
.progress-53{width:53%}
.progress-54{width:54%}
.progress-55{width:55%}
.progress-56{width:56%}
.progress-57{width:57%}
.progress-58{width:58%}
.progress-59{width:59%}
.progress-60{width:60%}
.progress-61{width:61%}
.progress-62{width:62%}
.progress-63{width:63%}
.progress-64{width:64%}
.progress-65{width:65%}
.progress-66{width:66%}
.progress-67{width:67%}
.progress-68{width:68%}
.progress-69{width:69%}
.progress-70{width:70%}
.progress-71{width:71%}
.progress-72{width:72%}
.progress-73{width:73%}
.progress-74{width:74%}
.progress-75{width:75%}
.progress-76{width:76%}
.progress-77{width:77%}
.progress-78{width:78%}
.progress-79{width:79%}
.progress-80{width:80%}
.progress-81{width:81%}
.progress-82{width:82%}
.progress-83{width:83%}
.progress-84{width:84%}
.progress-85{width:85%}
.progress-86{width:86%}
.progress-87{width:87%}
.progress-88{width:88%}
.progress-89{width:89%}
.progress-90{width:90%}
.progress-91{width:91%}
.progress-92{width:92%}
.progress-93{width:93%}
.progress-94{width:94%}
.progress-95{width:95%}
.progress-96{width:96%}
.progress-97{width:97%}
.progress-98{width:98%}
.progress-99{width:99%}
.progress-100{width:100%}
