:root{
  --green:#173f2a;
  --green-2:#24573c;
  --green-3:#dce9df;
  --cream:#f4f1e8;
  --paper:#fffdfa;
  --ink:#203027;
  --muted:#6d756f;
  --line:#d8d7cf;
  --gold:#b79a50;
  --red:#a5483d;
  --red-bg:#f6e5e1;
  --yellow:#a87516;
  --yellow-bg:#f7edcf;
  --shadow:0 10px 28px rgba(28,45,35,.08);
  --radius:14px;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--cream);color:var(--ink);font-family:"Libre Franklin",Arial,sans-serif}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
.app-shell{display:grid;grid-template-columns:245px 1fr;min-height:100vh}
.sidebar{background:var(--green);color:#fff;padding:22px 18px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}
.brand{display:flex;gap:12px;align-items:center;padding:2px 4px 20px}
.brand-mark{width:42px;height:42px;border:1px solid rgba(255,255,255,.35);display:grid;place-items:center;font-family:"Barlow Condensed";font-weight:700;letter-spacing:.8px;font-size:15px}
.brand-kicker{font:600 11px/1 "Barlow Condensed";letter-spacing:1.8px;color:#cdd9d0}
.brand-title{font:700 21px/1.1 "Barlow Condensed";margin-top:4px}
.demo-badge{font-size:11px;color:#dbe5df;border:1px solid rgba(255,255,255,.16);padding:7px 9px;border-radius:999px;text-align:center;margin:0 4px 18px;background:rgba(255,255,255,.05)}
.nav{display:flex;flex-direction:column;gap:4px}
.nav-item{border:0;background:transparent;color:#dce5df;text-align:left;padding:11px 12px;border-radius:9px;display:flex;gap:10px;align-items:center;font-weight:600;font-size:13px}
.nav-item:hover,.nav-item.active{background:#fff;color:var(--green)}
.nav-item span{width:16px;text-align:center}
.sidebar-footer{margin-top:auto;padding-top:18px;border-top:1px solid rgba(255,255,255,.12)}
.user-chip{display:flex;gap:10px;align-items:center}
.avatar{width:38px;height:38px;border-radius:50%;background:#fff;color:var(--green);display:grid;place-items:center;font-weight:700;font-size:12px}
.user-chip strong,.user-chip span{display:block}.user-chip strong{font-size:12px}.user-chip span{font-size:10px;color:#c9d5cc;margin-top:2px}
.main{min-width:0}
.topbar{height:68px;background:rgba(244,241,232,.95);backdrop-filter:blur(10px);border-bottom:1px solid #dedbd2;display:flex;align-items:center;justify-content:space-between;padding:0 30px;position:sticky;top:0;z-index:10}
.topbar-title{font:700 18px "Barlow Condensed";letter-spacing:.2px}
.topbar-actions{display:flex;gap:8px;align-items:center}
.mobile-menu{display:none;background:transparent;border:0;font-size:24px;color:var(--green)}
.primary-btn,.ghost-btn,.small-btn{border-radius:8px;padding:9px 13px;border:1px solid var(--green);font-weight:700;font-size:12px}
.primary-btn{background:var(--green);color:#fff}.primary-btn:hover{background:var(--green-2)}
.ghost-btn{background:transparent;color:var(--green)}
.small-btn{padding:6px 9px;background:#fff;color:var(--green);border-color:#cfd7d1}
.content{padding:28px 30px 60px;max-width:1500px;margin:0 auto}
.eyebrow{font:700 11px "Barlow Condensed";letter-spacing:1.6px;color:var(--gold);text-transform:uppercase}
h1,h2,h3,h4{font-family:"Barlow Condensed",Arial,sans-serif;color:var(--green);margin:0}
h1{font-size:34px;line-height:1.03}h2{font-size:25px}h3{font-size:19px}h4{font-size:16px}
.lead{font-size:14px;line-height:1.6;color:var(--muted);max-width:800px;margin:8px 0 0}
.hero-row{display:flex;justify-content:space-between;gap:24px;align-items:flex-end;margin-bottom:20px}
.hero-meta{text-align:right;font-size:11px;color:var(--muted)}
.grid{display:grid;gap:16px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.card{background:var(--paper);border:1px solid #dddcd5;border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}
.card.flat{box-shadow:none}.card.compact{padding:14px}
.section-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:28px 0 12px}
.section-head p{margin:3px 0 0;color:var(--muted);font-size:12px}
.metric{padding:15px 16px}.metric .value{font:700 28px "Barlow Condensed";color:var(--green)}.metric .label{font-size:11px;color:var(--muted);margin-top:2px}.metric .trend{font-size:10px;margin-top:7px;color:var(--green-2)}
.status-pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:5px 8px;font-size:10px;font-weight:700;white-space:nowrap}.status-pill:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.green{color:var(--green-2);background:var(--green-3)}.yellow{color:var(--yellow);background:var(--yellow-bg)}.red{color:var(--red);background:var(--red-bg)}.neutral{color:#666;background:#efeee8}
.timeline{display:flex;flex-direction:column;gap:10px}.timeline-item{display:grid;grid-template-columns:74px 1fr auto;gap:12px;align-items:start;border-bottom:1px solid #e8e5dd;padding:0 0 10px}.timeline-item:last-child{border-bottom:0;padding-bottom:0}.time{font:700 14px "Barlow Condensed";color:var(--green)}.timeline-title{font-size:13px;font-weight:700}.timeline-sub{font-size:11px;color:var(--muted);margin-top:3px;line-height:1.45}
.attention-list{display:flex;flex-direction:column;gap:9px}.attention-item{display:grid;grid-template-columns:12px 1fr auto;gap:10px;padding:11px 0;border-bottom:1px solid #ebe8e0}.attention-item:last-child{border-bottom:0}.dot{width:9px;height:9px;border-radius:50%;margin-top:4px}.dot.red{background:var(--red)}.dot.yellow{background:#d69c2c}.dot.green{background:#4c8d62}.attention-title{font-size:12px;font-weight:700}.attention-sub{font-size:10px;color:var(--muted);margin-top:3px}
.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;font-size:11px}.data-table th{text-align:left;color:#68736c;font-size:9px;letter-spacing:.8px;text-transform:uppercase;padding:9px;border-bottom:1px solid #dcd9d0}.data-table td{padding:10px 9px;border-bottom:1px solid #ece9e0;vertical-align:top}.data-table tr:last-child td{border-bottom:0}.data-table tr.clickable:hover{background:#f8f6f0;cursor:pointer}
.owner{display:flex;align-items:center;gap:7px}.mini-avatar{width:26px;height:26px;border-radius:50%;background:#e3ece5;color:var(--green);display:grid;place-items:center;font-size:9px;font-weight:700}
.tag{display:inline-block;border:1px solid #d9d8d0;border-radius:999px;padding:3px 7px;font-size:9px;color:#58655d;background:#fff}
.progress{height:7px;background:#e9e7df;border-radius:999px;overflow:hidden}.progress>span{display:block;height:100%;background:var(--green-2);border-radius:999px}.progress.gold>span{background:var(--gold)}
.progress-row{display:grid;grid-template-columns:170px 1fr 58px;gap:12px;align-items:center;margin:11px 0}.progress-label{font-size:11px;font-weight:700}.progress-val{font-size:10px;color:var(--muted);text-align:right}
.kpi-line{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:8px 0}.kpi-line strong{font:700 18px "Barlow Condensed";color:var(--green)}
.column-board{display:grid;grid-template-columns:repeat(5,minmax(220px,1fr));gap:12px;overflow:auto;padding-bottom:6px}.kanban-col{background:#ebe8df;border-radius:12px;padding:10px;min-height:430px}.kanban-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.kanban-head strong{font:700 14px "Barlow Condensed";color:var(--green)}.kanban-count{font-size:9px;background:#fff;border-radius:999px;padding:4px 7px}
.kanban-card{background:#fff;border:1px solid #dbd9d2;border-radius:10px;padding:11px;margin-bottom:9px;box-shadow:0 3px 10px rgba(0,0,0,.04)}.kanban-card:hover{border-color:#b8c7bd;cursor:pointer}.kanban-name{font-size:11px;font-weight:700}.kanban-meta{font-size:9px;color:var(--muted);margin-top:5px;line-height:1.45}.capacity{font:700 13px "Barlow Condensed";color:var(--green);margin-top:7px}
.person-header{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center}.person-avatar{width:64px;height:64px;border-radius:50%;background:var(--green);color:#fff;display:grid;place-items:center;font:700 22px "Barlow Condensed"}.person-name{font:700 28px "Barlow Condensed";color:var(--green)}.person-meta{font-size:11px;color:var(--muted);margin-top:4px}.person-grid{display:grid;grid-template-columns:1.5fr .8fr;gap:16px;margin-top:16px}
.callout{background:#eef4ef;border-left:4px solid var(--green-2);padding:12px 14px;border-radius:8px;font-size:11px;line-height:1.5;color:#425149}.callout.gold{background:#f6f0df;border-left-color:var(--gold)}
.linkish{color:var(--green-2);text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.project-row{display:grid;grid-template-columns:1fr 110px 130px 90px 90px;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid #ebe7de}.project-row:last-child{border-bottom:0}.project-name{font-size:12px;font-weight:700}.project-sub{font-size:10px;color:var(--muted);margin-top:3px}
.event-hero{display:grid;grid-template-columns:1.3fr .7fr;gap:16px}.big-date{font:700 52px/1 "Barlow Condensed";color:var(--green)}.big-date span{font-size:18px;display:block;color:var(--gold);letter-spacing:1px}
.milestone{padding:12px 0;border-bottom:1px solid #ece9e0}.milestone:last-child{border-bottom:0}.milestone-top{display:flex;justify-content:space-between;gap:10px}.milestone-title{font-size:11px;font-weight:700}.milestone-meta{font-size:9px;color:var(--muted);margin-top:3px}
.goal-card{display:grid;grid-template-columns:1.2fr .6fr .6fr .7fr;gap:12px;align-items:center;padding:13px 0;border-bottom:1px solid #ebe8e0}.goal-card:last-child{border-bottom:0}.goal-name{font-size:12px;font-weight:700}.goal-sub{font-size:9px;color:var(--muted);margin-top:3px}.goal-value{font:700 18px "Barlow Condensed";color:var(--green)}
.report-sheet{background:#fff;padding:34px;max-width:900px;margin:0 auto;border:1px solid #d9d7cf;box-shadow:var(--shadow)}.report-header{border-bottom:3px solid var(--green);padding-bottom:16px;margin-bottom:18px}.report-title{font:700 32px "Barlow Condensed";color:var(--green)}.report-sub{font-size:11px;color:var(--muted);margin-top:4px}.report-section{margin:22px 0}.report-section h3{border-bottom:1px solid #dfddd6;padding-bottom:6px;margin-bottom:10px}.report-note{font-size:11px;line-height:1.55;color:#4e5a53}
.modal-backdrop{position:fixed;inset:0;background:rgba(14,30,21,.52);display:grid;place-items:center;padding:20px;z-index:50}.modal-backdrop[hidden]{display:none}.modal{width:min(650px,100%);background:#fff;border-radius:16px;box-shadow:0 30px 90px rgba(0,0,0,.28);padding:22px}.modal-head{display:flex;justify-content:space-between;gap:18px;align-items:start;margin-bottom:16px}.icon-btn{border:0;background:#efeee9;width:32px;height:32px;border-radius:8px;font-size:20px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid label{font-size:10px;font-weight:700;color:#536058;display:flex;flex-direction:column;gap:6px}.form-grid input,.form-grid select,.form-grid textarea{border:1px solid #d6d4cb;border-radius:8px;padding:10px;background:#fff;color:var(--ink)}.span-2{grid-column:span 2}.modal-callout{margin-top:14px;background:#f4f1e8;border:1px solid #e4dfd2;border-radius:8px;padding:10px;font-size:10px;color:#59635e;line-height:1.5}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}
.toast{position:fixed;right:20px;bottom:20px;background:var(--green);color:#fff;padding:12px 14px;border-radius:10px;font-size:11px;box-shadow:var(--shadow);z-index:80}
.note-bar{background:#fff8e5;border:1px solid #ead8a6;color:#6c5a28;border-radius:10px;padding:10px 12px;font-size:10px;margin-bottom:16px;line-height:1.45}
@media(max-width:1050px){.grid-4{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:1fr 1fr}.person-grid,.event-hero{grid-template-columns:1fr}.project-row{grid-template-columns:1fr 100px 110px}.project-row>*:nth-child(4),.project-row>*:nth-child(5){display:none}}
@media(max-width:780px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;left:-260px;z-index:30;width:245px;transition:.2s}.sidebar.open{left:0}.mobile-menu{display:block}.topbar{padding:0 16px}.content{padding:20px 16px 50px}.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.hero-row{align-items:flex-start;flex-direction:column}.hero-meta{text-align:left}.timeline-item{grid-template-columns:62px 1fr}.timeline-item>*:last-child{display:none}.person-header{grid-template-columns:auto 1fr}.person-header>*:last-child{display:none}.goal-card{grid-template-columns:1fr .6fr .6fr}.goal-card>*:last-child{display:none}.form-grid{grid-template-columns:1fr}.span-2{grid-column:span 1}.topbar-title{display:none}}


/* Revision: larger type, clickable reporting cards, and clearer visual status */
html,body{font-size:15px;line-height:1.5}
.brand-kicker,.demo-badge,.nav-item,.user-chip strong,.user-chip span,.primary-btn,.ghost-btn,.small-btn,
.eyebrow,.hero-meta,.section-head p,.metric .label,.metric .trend,.status-pill,.timeline-title,.timeline-sub,
.attention-title,.attention-sub,.data-table,.data-table th,.data-table td,.mini-avatar,.tag,.progress-label,.progress-val,
.kanban-count,.kanban-name,.kanban-meta,.person-meta,.callout,.project-name,.project-sub,.milestone-title,.milestone-meta,
.goal-name,.goal-sub,.report-sub,.report-note,.form-grid label,.modal-callout,.toast,.note-bar{font-size:15px !important}
.brand-title{font-size:24px}
.topbar-title{font-size:24px}
h1{font-size:38px}h2{font-size:30px}h3{font-size:21px}h4{font-size:19px}
.lead{font-size:17px;line-height:1.6}
.metric .value{font-size:36px}.goal-value{font-size:24px}.kpi-line strong{font-size:24px}
.timeline-title,.attention-title,.project-name,.goal-name,.kanban-name{font-weight:700}
.time{font-size:18px}
.status-pill{padding:6px 10px}
.data-table th{font-size:14px !important}
.data-table td{line-height:1.45}
.metric-link{cursor:pointer;position:relative;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}
.metric-link:hover{transform:translateY(-2px);border-color:#aebfb4;box-shadow:0 14px 34px rgba(28,45,35,.13)}
.metric-link:focus-visible,.status-overview-item:focus-visible{outline:3px solid rgba(183,154,80,.45);outline-offset:3px}
.metric-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.metric-arrow{font-size:24px;color:var(--green);font-weight:700;line-height:1}
.metric-foot{font-size:15px;color:var(--muted);margin-top:7px}
.mini-status{font-size:15px;font-weight:700;margin-top:11px}.green-text{color:var(--green-2)}.yellow-text{color:var(--yellow)}.red-text{color:var(--red)}
.status-strip{display:flex;height:9px;border-radius:999px;overflow:hidden;margin-top:13px;background:#e9e7df}.status-strip span{display:block;height:100%}.status-strip .red{background:var(--red)}.status-strip .yellow{background:#d69c2c}
.progress{height:10px;margin-top:10px}
.status-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:0;overflow:hidden}
.status-overview-item{appearance:none;border:0;border-right:1px solid #e5e2d9;background:transparent;color:inherit;text-align:left;padding:22px;display:flex;gap:16px;align-items:center;cursor:pointer;min-width:0}
.status-overview-item:last-child{border-right:0}.status-overview-item:hover{background:#f8f6f0}.status-overview-item h3{margin-bottom:5px}.status-overview-item p{font-size:15px;color:var(--muted);margin:0 0 10px;line-height:1.4}
.status-ring-wrap{flex:0 0 auto}.status-ring{--ring:#24573c;width:86px;height:86px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--ring) calc(var(--pct)*1%),#e5e3db 0);position:relative}
.status-ring.yellow{--ring:#b07b18}.status-ring.red{--ring:#a5483d}.status-ring:after{content:"";position:absolute;inset:9px;background:var(--paper);border-radius:50%}.status-ring>div{position:relative;z-index:1;text-align:center}.status-ring strong{display:block;font:700 24px/1 "Barlow Condensed";color:var(--green)}.status-ring span{display:block;font-size:12px;color:var(--muted);margin-top:4px}
.project-row{grid-template-columns:minmax(260px,1fr) 150px 160px 125px 150px}
.card{padding:22px}.card.compact{padding:18px}.content{padding-top:32px}
.form-grid input,.form-grid select,.form-grid textarea{font-size:15px}
@media(max-width:1200px){.status-overview{grid-template-columns:repeat(2,1fr)}.status-overview-item:nth-child(2){border-right:0}.status-overview-item:nth-child(-n+2){border-bottom:1px solid #e5e2d9}}
@media(max-width:780px){.status-overview{grid-template-columns:1fr}.status-overview-item{border-right:0;border-bottom:1px solid #e5e2d9}.status-overview-item:last-child{border-bottom:0}h1{font-size:34px}h2{font-size:27px}.metric .value{font-size:32px}}

/* Revision v3: standardized type scale, chips/badges, and drag-and-drop pipeline */
:root{
  --text-min:15px; /* slightly above 11pt at common browser scaling */
  --text-subhead:19px; /* ~14pt */
  --text-heading:24px; /* ~18pt */
}
body{font-size:16px}
/* Keep all utility/body text at or above the requested minimum. */
.brand-kicker,.demo-badge,.nav-item,.user-chip strong,.user-chip span,.primary-btn,.ghost-btn,.small-btn,
.eyebrow,.hero-meta,.section-head p,.metric .label,.metric .trend,.status-pill,.timeline-title,.timeline-sub,
.attention-title,.attention-sub,.data-table,.data-table th,.data-table td,.mini-avatar,.tag,.progress-label,.progress-val,
.kanban-count,.kanban-name,.kanban-meta,.person-meta,.callout,.project-name,.project-sub,.milestone-title,.milestone-meta,
.goal-name,.goal-sub,.report-sub,.report-note,.form-grid label,.modal-callout,.toast,.note-bar,.metric-foot,.mini-status,
.capacity,.kanban-empty,.kanban-drop-hint,.activity-row,.activity-time,.person-chip,.stage-label{font-size:var(--text-min)!important}
.section-head p,.lead,.timeline-sub,.attention-sub,.kanban-meta,.project-sub,.milestone-meta,.goal-sub,.report-note{line-height:1.5}
h2{font-size:30px} h3{font-size:var(--text-heading)} h4{font-size:var(--text-subhead)}
.section-head h2{font-size:30px}.timeline-title,.attention-title,.kanban-name,.project-name,.goal-name{font-size:17px!important}

/* Three distinct reusable visual patterns: status pill, count badge, person chip. */
.status-pill{
  min-height:32px;
  width:max-content;
  max-width:100%;
  padding:5px 12px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  line-height:1.15;
  text-align:center;
  vertical-align:middle;
}
.status-pill:before{width:8px;height:8px;flex:0 0 8px}
.kanban-count{
  width:32px;
  height:32px;
  min-width:32px;
  padding:0;
  border-radius:50%;
  display:inline-grid;
  place-items:center;
  line-height:1;
  font-weight:700;
  color:var(--green);
  box-shadow:0 1px 3px rgba(0,0,0,.06);
}
.person-chip{
  min-height:32px;
  padding:5px 12px;
  border:1px solid #d4d8d2;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  line-height:1;
  white-space:nowrap;
  background:#fff;
  color:var(--green);
  font-weight:700;
}
.tag{min-height:30px;padding:5px 10px;display:inline-flex;align-items:center;justify-content:center;line-height:1.1}
.mini-avatar{width:32px;height:32px;min-width:32px;font-size:13px!important}

/* Kanban interaction */
.column-board{grid-template-columns:repeat(5,minmax(245px,1fr));gap:14px;align-items:stretch}
.kanban-col{padding:12px;min-height:455px;border:2px solid transparent;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}
.kanban-col.drag-over{border-color:var(--gold);background:#f3eddc;box-shadow:inset 0 0 0 2px rgba(183,154,80,.1)}
.kanban-head strong{font-size:18px}
.kanban-drop-hint{display:none;text-align:center;color:#826a2b;border:1px dashed #c4a85f;background:#fff9e8;border-radius:8px;padding:8px;margin-bottom:9px;font-weight:700}
.kanban-col.drag-over .kanban-drop-hint{display:block}
.kanban-card{position:relative;padding:15px 14px 14px 18px;margin-bottom:11px;cursor:grab;transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease,opacity .14s ease}
.kanban-card:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(28,45,35,.10)}
.kanban-card:active{cursor:grabbing}.kanban-card.dragging{opacity:.45;transform:rotate(1deg)}
.drag-handle{position:absolute;right:9px;top:8px;color:#98a199;font-weight:700;letter-spacing:-3px;font-size:18px;user-select:none}
.kanban-name{padding-right:22px;line-height:1.3}
.kanban-meta{margin-top:8px;line-height:1.48}
.capacity{margin-top:10px;font-weight:700;color:var(--green)}
.kanban-card-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-top:10px}
.stage-label{color:var(--muted);white-space:nowrap}
.kanban-empty{color:var(--muted);padding:12px 4px;line-height:1.45}
.pipeline-sync-note{display:flex;gap:12px;align-items:flex-start;background:#eef4ef;border:1px solid #cad9ce;border-radius:12px;padding:13px 15px;margin:0 0 14px;color:#415047}
.pipeline-sync-note strong{display:block;font-size:16px;color:var(--green);margin-bottom:2px}.pipeline-sync-note span{display:block;font-size:15px;line-height:1.45}.sync-icon{font-size:22px!important;color:var(--green);line-height:1}
.activity-log{padding-top:8px;padding-bottom:8px}.activity-row{display:grid;grid-template-columns:90px 1fr auto;gap:14px;align-items:center;padding:13px 0;border-bottom:1px solid #e9e6de;line-height:1.4}.activity-row:last-child{border-bottom:0}.activity-row strong{font-size:16px}.activity-time{color:var(--muted)}

@media(max-width:780px){
  .activity-row{grid-template-columns:1fr}.activity-time{margin-bottom:-8px}.column-board{grid-template-columns:repeat(5,minmax(260px,1fr))}
}

/* v4 project operating workflow */
.project-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:16px}.project-explainer{font-size:15px;line-height:1.55;color:#4d5a52;background:#f4f0e5;border:1px solid #ddd5c3;border-radius:12px;padding:14px 16px;max-width:940px}.project-table-card{padding-top:10px}.project-header{padding-top:0;color:#67726b;text-transform:uppercase;letter-spacing:.7px}.project-click{width:100%;border:0;background:transparent;text-align:left;font-family:inherit;color:inherit;cursor:pointer}.project-click:hover{background:#f7f5ef}.project-open-hint{font-size:13px;color:var(--green);margin-top:5px;font-weight:700}.back-link{border:0;background:transparent;padding:0;margin:4px 0 14px;color:var(--green);font-size:15px;font-weight:700;cursor:pointer}.project-detail-top{display:grid;grid-template-columns:2fr 1fr;gap:16px}.summary-stat{display:flex;justify-content:space-between;align-items:end;margin-bottom:8px}.summary-stat span{font-size:15px;color:var(--muted)}.summary-stat strong{font-size:30px;color:var(--green)}.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:22px}.summary-grid>div>span{display:block;font-size:13px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin-bottom:7px}.alison-card p{font-size:15px;line-height:1.5;margin:10px 0}.coord-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:15px}.milestone-table{padding:4px 20px}.milestone-row{display:grid;grid-template-columns:1.8fr .8fr 1fr auto;gap:18px;align-items:center;padding:17px 0;border-bottom:1px solid #e6e2d8}.milestone-row:last-child{border-bottom:0}.milestone-progress strong{display:block;margin-bottom:6px}.project-bottom-grid{margin-top:16px}.lead{font-size:15px!important;line-height:1.55}.project-row{min-height:74px}
@media(max-width:950px){.project-detail-top{grid-template-columns:1fr}.summary-grid{grid-template-columns:1fr 1fr}.milestone-row{grid-template-columns:1fr 1fr}.project-toolbar{flex-direction:column}}

/* v5 task + timeline refinements */
.section-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.icon-text-btn{display:inline-flex;align-items:center;gap:8px;border:1px solid #b8c2ba;background:#fff;color:#194f36;border-radius:8px;padding:9px 13px;font-weight:700;font-size:15px;cursor:pointer}.icon-text-btn:hover{background:#f2f5f2}.chart-icon{font-size:19px;line-height:1}.task-table{padding:0 20px}.task-row{display:grid;grid-template-columns:minmax(260px,2fr) 1fr 1.2fr 1fr 1.4fr;gap:18px;align-items:center;padding:16px 0;border-bottom:1px solid #e6e1d8;font-size:15px}.task-row:last-child{border-bottom:0}.task-header{font-size:14px;text-transform:uppercase;letter-spacing:.6px;color:#667068;font-weight:700}.task-date{white-space:nowrap}.task-arrow{padding:0 5px;color:#8b918d}.empty-state{padding:24px;color:#6b736e}.gantt-card{margin-top:16px;overflow-x:auto}.gantt-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:18px}.gantt-head p{margin:5px 0 0;color:#6b736e;font-size:15px}.gantt-grid{display:grid;grid-template-columns:minmax(240px,1.8fr) repeat(7,minmax(90px,1fr));grid-auto-rows:minmax(48px,auto);min-width:980px;align-items:center}.gantt-label-head,.gantt-week{font-size:13px;text-transform:uppercase;letter-spacing:.5px;color:#68736c;font-weight:700;padding:8px;border-bottom:1px solid #ddd7ce}.gantt-label{grid-column:1;padding:10px 8px;border-bottom:1px solid #eee9e1;display:flex;flex-direction:column;gap:3px}.gantt-label span{font-size:13px;color:#727a75}.gantt-track{height:30px;align-self:center;padding:4px;border-bottom:1px solid #eee9e1}.gantt-bar{height:22px;border-radius:6px;background:#d9e5dc;position:relative;overflow:hidden;min-width:55px;border:1px solid #c3d2c7}.gantt-bar:before{content:'';position:absolute;inset:0 auto 0 0;width:var(--done);background:#2d684b}.gantt-bar.yellow{background:#f5e7bf;border-color:#e1cb83}.gantt-bar.yellow:before{background:#b18a2e}.gantt-bar.red{background:#f4d9d3;border-color:#e5b8ae}.gantt-bar.red:before{background:#b14e3d}.gantt-bar span{position:relative;z-index:1;display:block;text-align:center;font-size:12px;line-height:20px;font-weight:800;color:#153d2c}.gantt-bar.red span{color:#6d2d23}@media(max-width:900px){.task-row{grid-template-columns:1fr;gap:7px}.task-header{display:none}.section-actions{width:100%;justify-content:flex-start}}

/* v6 task maintenance workflow */
.task-row.task-header{grid-template-columns:2fr 1fr 1.25fr 1fr 1.2fr 78px}
.task-row.task-click{grid-template-columns:2fr 1fr 1.25fr 1fr 1.2fr 78px;width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;text-align:left;font:inherit;color:inherit;cursor:pointer;align-items:center}
.task-row.task-click:hover{background:#f8f6ef}
.task-updated{display:block;margin-top:5px;font-size:11pt;color:#758078;font-weight:400}
.task-edit-link{text-align:right;color:var(--green);font-weight:700;font-size:11pt;white-space:nowrap}
.task-editor-backdrop{position:fixed;inset:0;background:rgba(18,35,25,.62);z-index:9999;display:grid;place-items:center;padding:24px}
.task-editor{width:min(720px,96vw);max-height:92vh;overflow:auto;background:#fff;border-radius:18px;padding:24px;box-shadow:0 24px 70px rgba(0,0,0,.28)}
.task-editor-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:18px}.task-editor-head h2{font-size:18pt;margin:4px 0 0}
.task-editor-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.task-editor label{display:flex;flex-direction:column;gap:7px;font-size:11pt;font-weight:700;color:#314238;margin-top:14px}.task-editor input,.task-editor select,.task-editor textarea{font:inherit;font-size:11pt;border:1px solid #d8d5cc;border-radius:9px;padding:11px 12px;background:#fff;color:#203428}.task-editor textarea{resize:vertical}
.task-progress-label input[type=range]{padding:0;width:100%;accent-color:var(--green)}.task-progress-help,.task-editor-meta{font-size:11pt;line-height:1.45;color:#65726a;background:#f4f1e8;padding:11px 13px;border-radius:9px;margin-top:8px}.task-progress-label strong{float:right;color:var(--green)}
@media(max-width:800px){.task-editor-grid{grid-template-columns:1fr}.task-row.task-header{display:none}.task-row.task-click{grid-template-columns:1fr 1fr}.task-edit-link{text-align:left}.task-updated{grid-column:1/-1}}

/* v7 goal data-source visibility */
.goal-card-wide{grid-template-columns:minmax(310px,2.2fr) minmax(150px,1fr) minmax(140px,.85fr) minmax(250px,1.45fr) minmax(120px,.8fr);gap:24px;align-items:center}
.goal-header-row{padding-top:0!important;color:#68736c;font-size:15px;text-transform:uppercase;letter-spacing:.7px}
.source-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.source-badge{display:inline-flex;align-items:center;min-height:30px;padding:5px 10px;border-radius:7px;font-size:15px;font-weight:700;line-height:1.15;border:1px solid #cfd9d1;background:#f2f5f1;color:#174e35}
.source-badge.auto{background:#edf5ef;border-color:#c8dccd}
.source-badge.maintained{background:#f7f1df;border-color:#e7d59d;color:#7f5c08}
.source-mode{font-size:15px;font-weight:700;color:#56635c}
.source-refresh{margin-top:6px}
@media (max-width:1180px){.goal-card-wide{grid-template-columns:1.7fr 1fr 1fr}.goal-card-wide>div:nth-child(4),.goal-card-wide>div:nth-child(5){margin-top:6px}.goal-header-row{display:none}}

/* Constituent quick context */
.context-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.context-head h3{margin:0}.source-chip{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:3px 10px;border:1px solid #cfd8cf;border-radius:999px;background:#f4f7f2;color:#27533d;font-size:12px;font-weight:800;letter-spacing:.05em}.context-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid #e4e1d8}.context-item{padding:14px 0;border-bottom:1px solid #e4e1d8}.context-item:nth-child(odd):not(.context-wide){padding-right:16px}.context-item:nth-child(even){padding-left:16px;border-left:1px solid #e4e1d8}.context-wide{grid-column:1/-1}.context-label{font-size:12px;line-height:1.2;text-transform:uppercase;letter-spacing:.06em;color:#68706b;font-weight:800;margin-bottom:5px}.context-value{font-size:16px;line-height:1.35;color:#183d2d;font-weight:800}.context-value.small{font-size:14px}.context-sub{font-size:13px;color:#6d736f;margin-top:3px;line-height:1.4}.children-list{display:grid;gap:7px}.children-list>div{display:flex;justify-content:space-between;gap:12px;font-size:14px;line-height:1.4}.children-list span{color:#6d736f;white-space:nowrap}@media(max-width:760px){.context-grid{grid-template-columns:1fr}.context-wide{grid-column:auto}.context-item,.context-item:nth-child(odd):not(.context-wide),.context-item:nth-child(even){padding:13px 0;border-left:0}.children-list>div{display:block}.children-list span{display:block;margin-top:2px}}


/* v9 demo user switching + role-specific home views */
.user-switcher{width:100%;border:0;background:transparent;color:#fff;text-align:left;cursor:pointer;padding:10px 4px;display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;border-radius:10px;font:inherit}.user-switcher:hover{background:rgba(255,255,255,.08)}.user-switcher-copy{min-width:0}.user-switcher-copy strong{display:block;font-size:15px;line-height:1.25}.user-switcher-copy span{display:block;font-size:13px;opacity:.8;margin-top:2px}.user-switcher-arrow{opacity:.75;font-size:16px}.user-menu-backdrop{position:fixed;inset:0;background:rgba(18,35,25,.62);z-index:10020;display:grid;place-items:center;padding:22px}.user-menu-backdrop[hidden]{display:none}.user-menu{width:min(650px,96vw);max-height:90vh;overflow:auto;background:#fff;border-radius:18px;padding:22px;box-shadow:0 24px 70px rgba(0,0,0,.28)}.user-menu-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:16px}.user-menu-head h2{font-size:24px;margin:4px 0}.user-menu-head p{font-size:15px;color:var(--muted);margin:5px 0 0}.user-menu-list{display:grid;gap:8px}.user-menu-item{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;width:100%;border:1px solid #ddd9cf;background:#fff;border-radius:12px;padding:12px 14px;text-align:left;cursor:pointer;color:#203428;font:inherit}.user-menu-item:hover{background:#f7f5ee;border-color:#b9c9bd}.user-menu-item.active{background:#edf4ee;border-color:#aac3b0}.user-menu-item strong{display:block;font-size:16px}.user-menu-item small{display:block;font-size:13px;color:#69736d;margin-top:2px}.current-user-mark,.switch-user-mark{font-size:13px;font-weight:800;color:#1d5a3d;white-space:nowrap}.demo-user-note{margin-bottom:16px}.demo-user-note strong{color:#173f2a}

.journey-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.journey-steps>div{padding:16px;border:1px solid var(--line,#ddd7ca);border-radius:12px;background:#faf8f2}
.journey-steps strong{display:block;font-size:16px;margin-bottom:6px;color:var(--green,#174d35)}
.journey-steps span{display:block;font-size:15px;line-height:1.45;color:#5f665f}
@media(max-width:1000px){.journey-steps{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.journey-steps{grid-template-columns:1fr}}

/* v11 Kanban text containment + alumni column sizing */
.kanban-col,.kanban-card,.kanban-card *{min-width:0;box-sizing:border-box}
.kanban-name,.kanban-meta,.capacity,.stage-label,.kanban-head strong{
  overflow-wrap:anywhere;
  word-break:normal;
  white-space:normal;
}
.kanban-card{overflow:hidden}
.kanban-card-footer{align-items:flex-start}
.stage-label{
  flex:1 1 100%;
  max-width:100%;
  line-height:1.35;
  color:var(--muted);
}
.alumni-board{
  grid-template-columns:repeat(4,minmax(250px,1fr));
}
.alumni-board .kanban-card-footer .stage-label{display:none}
@media(max-width:1180px){
  .alumni-board{grid-template-columns:repeat(4,minmax(240px,1fr));min-width:1020px}
}

/* v12 next-step workflow */
.completion-check{display:flex!important;align-items:flex-start;gap:12px;padding:12px 14px;border:1px solid var(--line,#ddd8cb);border-radius:10px;background:#faf8f2}
.completion-check[hidden]{display:none!important}
.completion-check input{width:20px;height:20px;margin-top:2px;accent-color:#174f36}
.completion-check span{display:flex;flex-direction:column;gap:3px}
.completion-check small{font-size:13px;color:#6d746f;line-height:1.35}
.next-step-open{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border:1px solid #ded6bd;border-left:4px solid #c49a3a;border-radius:10px;background:#faf4df}
.next-step-check{width:22px;height:22px;flex:0 0 22px;margin-top:1px;accent-color:#174f36;cursor:pointer}
.next-step-main{flex:1;min-width:0}
.next-step-title{font-weight:800;font-size:16px;color:#183f2e;margin-bottom:4px}
.next-step-meta{font-size:14px;line-height:1.45;color:#5f6862}
.next-step-actions{display:flex;gap:8px;align-items:center;margin-top:10px;flex-wrap:wrap}

/* v13: next-step due-date treatment */
.next-step-due{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:32px;
  padding:5px 11px;
  border-radius:8px;
  border:1px solid #d8d4c8;
  background:#fff;
  color:#4e5a52;
  font-size:15px;
  font-weight:700;
  line-height:1.2;
  white-space:nowrap;
}
.next-step-due.overdue{
  border-color:#e2b4aa;
  background:#f8e7e2;
  color:#aa3f31;
}

/* v15: whole event cards are the click target */
.event-card{cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}
.event-card:hover,.event-card:focus-visible{transform:translateY(-2px);box-shadow:0 10px 24px rgba(20,66,45,.10);border-color:rgba(20,66,45,.28);outline:none}

/* v16 usability review */
#viewToggle{min-width:118px}
.role-board{grid-template-columns:repeat(4,minmax(250px,1fr))}
.goal-click{width:100%;border:0;border-bottom:1px solid #e7e2d8;background:transparent;text-align:left;font:inherit;color:inherit;cursor:pointer;border-radius:0;box-shadow:none}
.goal-click:hover{background:#f8f6ef}
.quick-add-menu{width:min(720px,96vw);background:#fff;border-radius:18px;padding:24px;box-shadow:0 24px 70px rgba(0,0,0,.28)}
.quick-add-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.quick-add-choice{border:1px solid #d8d5cb;border-radius:12px;background:#fff;text-align:left;padding:16px;cursor:pointer;color:#203428}
.quick-add-choice:hover{background:#f4f7f2;border-color:#a8c1ae}
.quick-add-choice strong{display:block;color:var(--green);font-size:18px;margin-bottom:5px}
.quick-add-choice span{font-size:15px;line-height:1.45;color:var(--muted)}
/* Keep all working UI at the requested readable floor. */
.context-label,.context-sub,.children-list,.user-menu-item small,.user-switcher-copy span,.brand-kicker,.demo-badge,.user-chip strong,.user-chip span,.task-updated,.gantt-label span,.gantt-label-head,.gantt-week,.source-chip{font-size:15px!important}
.event-card .person-meta{font-size:15px!important;margin-top:7px}
.data-table td,.data-table th{vertical-align:middle}
.attention-item .small-btn{flex:0 0 auto}
@media(max-width:1150px){.role-board{grid-template-columns:repeat(4,minmax(240px,1fr));min-width:1020px}.column-board{overflow-x:auto}}
@media(max-width:720px){.quick-add-grid{grid-template-columns:1fr}}
.status-preview-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--cream,#f7f3e8);margin:4px 0 14px}.project-status-editor select{font-size:16px;font-weight:700}.project-status-editor .status-pill{min-width:94px;justify-content:center}

/* v18: official Covenant logo in sidebar */
.brand-logo-wrap{display:block;padding:0 4px 20px;text-align:left}
.brand-logo{display:block;width:178px;height:auto;max-width:100%;margin:0 0 8px 0}
.brand-logo-wrap .brand-title{font-size:24px;line-height:1.05;margin-top:0;color:#fff;letter-spacing:.1px}
/* v19: compact official logo, sized to the original sidebar brand footprint */
.brand-logo-wrap{
  display:flex!important;
  align-items:center;
  gap:12px;
  padding:2px 4px 20px!important;
  text-align:left!important;
  min-height:64px;
}
.brand-logo{
  display:block;
  width:auto!important;
  height:58px!important;
  max-width:72px!important;
  margin:0!important;
  object-fit:contain;
  flex:0 0 auto;
}
.brand-logo-wrap .brand-title{
  font-size:24px!important;
  line-height:1.05!important;
  margin:0!important;
  color:#fff;
  letter-spacing:.1px;
}
.photo-avatar{overflow:hidden;padding:0;background:#e3ece5!important;color:transparent!important}
.photo-avatar img{width:100%;height:100%;display:block;object-fit:cover;object-position:center}
.user-menu-item .avatar.photo-avatar{width:46px;height:46px;min-width:46px}
.user-switcher .avatar.photo-avatar{width:42px;height:42px;min-width:42px}
.owner .mini-avatar.photo-avatar{width:32px;height:32px;min-width:32px}

/* V23: normalize due-date pills in My Work with the portal's shared pill system. */
.attention-item .tag{
  min-height:32px;
  width:max-content;
  max-width:100%;
  padding:5px 12px;
  border:0;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  line-height:1.15;
  white-space:nowrap;
  background:#eef2ec;
  color:var(--green);
  font-weight:700;
  box-shadow:none;
}
