:root {
  --ink: #171414;
  --muted: #6d6d6d;
  --line: #e8e8e8;
  --paper: #ffffff;
  --white: #ffffff;
  --brand-black: #0f0e0c;
  --brand-red: #ed3038;
  --brand-red-dark: #bd2029;
  --brand-cream: #ffffff;
  --brand-cream-strong: #f5f5f5;
  --green: #28755a;
  --green-soft: #e5f2eb;
  --orange: #d97745;
  --orange-soft: #fff0e7;
  --red: #c84c4c;
  --red-soft: #fbe9e7;
  --purple: #7865a9;
  --purple-soft: #eeeaf8;
  --blue: #4b739e;
  --blue-soft: #e8eff6;
  --shadow: 0 12px 38px rgba(24,33,29,.07);
}
* { box-sizing: border-box; }
body { margin: 0; font-family: Manrope, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: var(--ink); background: var(--paper); font-size: 14px; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
.auth-required { background:linear-gradient(135deg,var(--brand-black),var(--brand-cream)); }
.auth-required .app-shell { display:none; }
.auth-gate { min-height:100vh; display:grid; place-items:center; padding:28px; background:
  radial-gradient(circle at 18% 18%,rgba(237,48,56,.18),transparent 30%),
  radial-gradient(circle at 82% 15%,rgba(15,14,12,.14),transparent 28%),
  linear-gradient(135deg,var(--brand-black),var(--brand-cream) 58%,#fffaf4); }
.auth-card { width:min(460px,100%); padding:30px; border:1px solid rgba(255,255,255,.62); border-radius:24px; background:rgba(255,250,244,.94); box-shadow:0 30px 90px rgba(15,14,12,.22); backdrop-filter:blur(16px); }
.auth-brand { display:flex; align-items:center; gap:10px; margin-bottom:22px; }
.auth-card h1 { margin:9px 0 8px; font-size:30px; line-height:1.05; letter-spacing:-1px; }
.auth-card p { margin:0 0 20px; color:var(--muted); font-size:13px; line-height:1.6; }
.google-button { width:100%; height:48px; display:flex; align-items:center; justify-content:center; gap:10px; border:1px solid #dbe3de; border-radius:13px; color:#18211d; background:white; font-weight:850; box-shadow:0 8px 20px rgba(24,33,29,.05); }
.google-button span { display:grid; place-items:center; width:23px; height:23px; border-radius:50%; color:white; background:#4285f4; font-weight:900; }
.auth-secondary { width:100%; margin-top:10px; }
.auth-card small { display:block; margin-top:15px; color:#7d8983; font-size:10px; line-height:1.5; }
.app-shell { min-height: 100vh; display: grid; grid-template-columns: 245px 1fr; }
.sidebar { position: fixed; inset: 0 auto 0 0; width: 245px; display: flex; flex-direction: column; background: var(--brand-black); color: white; padding: 25px 16px 16px; z-index: 10; }
.brand { display: flex; align-items: center; gap: 10px; padding: 0 10px 22px; font-size: 21px; font-weight: 800; letter-spacing: -.6px; }
.brand-name { max-width:150px; font-size:12px; line-height:1.25; letter-spacing:-.2px; }
.brand-mark { display: grid; place-items: center; width: 31px; height: 31px; border-radius: 10px 10px 10px 3px; color: #13231d; background: #9bd0b5; font-size: 17px; }
.foundation-logo-img { display:block; object-fit:contain; }
.foundation-logo-auth { width:210px; height:auto; padding:12px 14px; border-radius:18px; background:white; box-shadow:0 10px 28px rgba(15,14,12,.08); }
.foundation-logo-sidebar { width:166px; height:auto; padding:9px 10px; border-radius:14px; background:white; }
.workspace-switcher { display: flex; align-items: center; gap: 10px; padding: 12px; border: 1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.06); border-radius: 13px; margin-bottom: 22px; }
.workspace-switcher strong, .workspace-switcher small { display: block; }
.workspace-switcher strong { font-size: 13px; }.workspace-switcher small { margin-top: 2px; color: #b9aea3; font-size: 10px; }.workspace-avatar { display: grid; place-items: center; width: 32px; height: 32px; background: var(--brand-red); color:white; border-radius: 8px; font-size:10px; font-weight: 900; }.chevron { margin-left: auto; color: #b9aea3; }
.nav { display: grid; gap: 4px; }.nav-item { width: 100%; border: 0; display: flex; gap: 12px; align-items: center; padding: 11px 13px; border-radius: 10px; background: transparent; color: #bdb4aa; font-weight: 600; text-align: left; }.nav-item span { width: 18px; font-size: 17px; text-align: center; }.nav-item b { margin-left: auto; display: grid; place-items: center; min-width: 21px; height: 19px; border-radius: 10px; padding: 0 6px; background: rgba(255,255,255,.1); font-size: 10px; }.nav-item:hover, .nav-item.active { background: rgba(237,48,56,.13); color: #fff7f3; }.nav-item.active { box-shadow: inset 3px 0 var(--brand-red); }
.sidebar-bottom { margin-top: auto; }.health-card { background: rgba(255,255,255,.065); border: 1px solid rgba(255,255,255,.1); border-radius: 14px; padding: 13px; margin-bottom: 12px; }.health-title { font-size: 11px; color: #bdb4aa; display: flex; align-items: center; gap: 6px; }.live-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--brand-red); box-shadow: 0 0 0 4px rgba(237,48,56,.12); }.health-card strong { display: block; font-size: 22px; margin: 8px 0 5px; }.health-card small { color: #b9aea3; font-size: 10px; }.meter { height: 4px; background: rgba(255,255,255,.11); border-radius: 4px; overflow: hidden; margin-bottom: 7px; }.meter i { display: block; height: 100%; border-radius: inherit; background: var(--brand-red); }
.profile-card { width: 100%; border: 0; color: white; background: transparent; display: flex; align-items: center; gap: 10px; padding: 10px 8px; text-align: left; }.profile-card > span:nth-child(2) { flex: 1; }.profile-card strong,.profile-card small { display: block; }.profile-card strong { font-size: 12px; }.profile-card small { color: #8fa098; margin-top: 2px; font-size: 10px; }
.avatar { display: inline-grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; font-weight: 800; font-size: 10px; flex: 0 0 auto; }.avatar-purple { background: #826aa4; }.avatar-green { background: #7aab8d; }.avatar-orange { background: #d49b72; }.avatar-blue { background: #6f91b1; }.avatar-pink { background: #bb7d92; }.avatar-yellow { background: #c6a45b; }
.main { grid-column: 2; min-width: 0; }.topbar { height: 93px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 18px 34px; background: rgba(248,242,234,.92); border-bottom: 1px solid var(--line); position: sticky; top: 0; backdrop-filter: blur(14px); z-index: 8; }.eyebrow { text-transform: uppercase; letter-spacing: .1em; font-size: 9px; color: #8b8076; font-weight: 700; }.topbar h1 { margin: 4px 0 0; font-size: 23px; letter-spacing: -.7px; }.top-actions { display: flex; align-items: center; gap: 10px; }.persona-switch,.language-switch { height:38px; display:flex; align-items:center; gap:7px; padding:0 8px 0 10px; border:1px solid var(--line); border-radius:10px; background:white; color:var(--muted); font-size:8px; }.persona-switch select,.language-switch select { max-width:102px; border:0; outline:none; color:var(--ink); background:transparent; font-size:9px; font-weight:800; }.language-switch select { max-width:82px; }.search { width: 220px; height: 38px; display: flex; align-items: center; gap: 7px; padding: 0 12px; background: white; border: 1px solid var(--line); border-radius: 10px; color: #8b8076; }.search input { width: 100%; border: 0; outline: none; color: var(--ink); font-size: 12px; }.icon-button { position: relative; width: 38px; height: 38px; background: white; border: 1px solid var(--line); border-radius: 10px; color: #7b7068; }.icon-button i { position: absolute; top: -5px; right: -5px; display: grid; place-items: center; width: 17px; height: 17px; color: white; background: var(--brand-red); border: 2px solid var(--paper); border-radius: 50%; font-size: 8px; font-style: normal; }.primary-button,.danger-button,.ghost-button { height: 38px; border-radius: 10px; padding: 0 15px; border: 0; font-weight: 700; font-size: 12px; }.primary-button { color: white; background: var(--brand-red); box-shadow: 0 5px 14px rgba(237,48,56,.2); }.primary-button:hover { background: var(--brand-red-dark); }.danger-button { background: var(--red); color: white; }.ghost-button { background: #fffaf4; color: var(--ink); border: 1px solid var(--line); }
.content { max-width: 1440px; padding: 27px 34px 48px; margin: 0 auto; }.view-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 20px; }.view-toolbar h2 { margin: 0; font-size: 18px; }.view-toolbar p { margin: 5px 0 0; color: var(--muted); font-size: 11px; }.toolbar-actions { display: flex; gap: 8px; }
.stats-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 14px; margin-bottom: 20px; }.stat-card { position: relative; min-height: 118px; background: white; border: 1px solid var(--line); border-radius: 15px; padding: 17px; box-shadow: 0 4px 18px rgba(24,33,29,.025); overflow: hidden; }.stat-icon { position: absolute; right: 15px; top: 15px; display: grid; place-items: center; width: 32px; height: 32px; border-radius: 10px; background: var(--green-soft); color: var(--green); font-weight: 800; }.stat-card:nth-child(2) .stat-icon { background: var(--orange-soft); color: var(--orange); }.stat-card:nth-child(3) .stat-icon { background: var(--purple-soft); color: var(--purple); }.stat-card:nth-child(4) .stat-icon { background: var(--blue-soft); color: var(--blue); }.stat-label { color: var(--muted); font-size: 10px; font-weight: 600; }.stat-value { font-size: 27px; font-weight: 800; letter-spacing: -1px; margin: 10px 0 4px; }.stat-note { color: var(--muted); font-size: 10px; }.positive { color: var(--green); }.warning { color: var(--orange); }.negative { color: var(--red); }
.dashboard-grid { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(290px,.75fr); gap: 18px; }.stack { display: grid; gap: 18px; align-content: start; }.panel { background: white; border: 1px solid var(--line); border-radius: 15px; box-shadow: 0 4px 18px rgba(24,33,29,.025); overflow: hidden; }.panel-header { display: flex; align-items: center; justify-content: space-between; min-height: 55px; padding: 14px 17px; border-bottom: 1px solid var(--line); }.panel-header h3 { margin: 0; font-size: 13px; }.panel-header p { margin: 3px 0 0; color: var(--muted); font-size: 10px; }.text-button { border: 0; background: transparent; color: var(--green); font-size: 10px; font-weight: 700; }.panel-body { padding: 16px; }
.risk-list { display: grid; }.risk-row { display: grid; grid-template-columns: 7px minmax(0,1fr) auto; gap: 12px; align-items: center; padding: 13px 2px; border-bottom: 1px solid var(--line); }.risk-row:last-child { border-bottom: 0; }.risk-level { width: 7px; height: 37px; border-radius: 7px; background: var(--orange); }.risk-level.high { background: var(--red); }.risk-level.medium { background: var(--orange); }.risk-level.low { background: #d2ad5e; }.risk-row strong { display: block; font-size: 11px; }.risk-row small { display: block; margin-top: 4px; color: var(--muted); font-size: 9px; }.risk-meta { text-align: right; }.risk-meta .chip { margin-bottom: 4px; }
.chip { display: inline-flex; align-items: center; gap: 4px; padding: 4px 8px; border-radius: 999px; font-size: 8px; font-weight: 700; white-space: nowrap; }.chip-red { background: var(--red-soft); color: var(--red); }.chip-orange { background: var(--orange-soft); color: var(--orange); }.chip-green { background: var(--green-soft); color: var(--green); }.chip-purple { background: var(--purple-soft); color: var(--purple); }.chip-blue { background: var(--blue-soft); color: var(--blue); }.chip-gray { background: #eef1ef; color: #66736c; }
.project-progress { display: grid; gap: 14px; }.progress-row { display: grid; grid-template-columns: minmax(120px,1fr) 1.1fr 40px; gap: 12px; align-items: center; }.progress-info strong { display: block; font-size: 10px; }.progress-info small { color: var(--muted); font-size: 8px; }.progress-track { height: 7px; background: #edf0ed; border-radius: 7px; overflow: hidden; }.progress-track i { display: block; height: 100%; border-radius: inherit; background: var(--green); }.progress-row > strong { font-size: 10px; text-align: right; }
.blocker-card { padding: 12px; border-radius: 12px; background: #fbf7f3; border: 1px solid #f1e4da; margin-bottom: 9px; }.blocker-card:last-child { margin-bottom: 0; }.blocker-card-head { display: flex; justify-content: space-between; align-items: center; gap: 8px; }.blocker-card strong { font-size: 10px; }.blocker-card p { margin: 7px 0; font-size: 9px; color: #635e59; line-height: 1.5; }.blocker-footer { display: flex; align-items: center; justify-content: space-between; color: var(--muted); font-size: 8px; }.person-inline { display: flex; align-items: center; gap: 6px; }.person-inline .avatar { width: 21px; height: 21px; font-size: 7px; }
.load-list { display: grid; gap: 13px; }.load-person { display: grid; grid-template-columns: 31px minmax(0,1fr) 35px; gap: 9px; align-items: center; }.load-info strong,.load-info small { display: block; }.load-info strong { font-size: 9px; }.load-info small { color: var(--muted); font-size: 8px; margin-bottom: 5px; }.load-person > strong { font-size: 9px; text-align: right; }.load-person.over > strong { color: var(--red); }.load-person.over .progress-track i { background: var(--red); }
.project-cards { display: grid; grid-template-columns: repeat(3,1fr); gap: 15px; }.project-card { background: white; border: 1px solid var(--line); border-radius: 15px; padding: 17px; box-shadow: 0 4px 18px rgba(24,33,29,.025); transition: .2s ease; }.project-card:hover { transform: translateY(-2px); box-shadow: var(--shadow); }.project-card-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }.project-symbol { width: 35px; height: 35px; display: grid; place-items: center; border-radius: 10px; color: white; font-weight: 800; }.project-card h3 { margin: 15px 0 5px; font-size: 13px; }.project-card p { height: 33px; margin: 0 0 16px; color: var(--muted); font-size: 9px; line-height: 1.6; overflow: hidden; }.project-card .progress-track { margin: 8px 0; }.project-card-meta { display: flex; justify-content: space-between; margin-top: 14px; color: var(--muted); font-size: 8px; }
.project-cards.project-cards-detailed { grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; }.project-card-detailed { padding:19px; }.project-card-detailed > p { height:auto; min-height:30px; margin-bottom:13px; }.project-overview-line { display:grid; grid-template-columns:repeat(3,1fr); gap:7px; margin:12px 0 10px; }.project-overview-line > div { min-width:0; padding:9px; border:1px solid var(--line); border-radius:9px; background:#f8faf8; }.project-overview-line span,.project-overview-line strong { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.project-overview-line span { color:var(--muted); font-size:7px; }.project-overview-line strong { margin-top:4px; font-size:10px; }.project-detail-section { margin-top:15px; padding-top:13px; border-top:1px solid var(--line); }.project-section-head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:8px; }.project-section-head strong { font-size:10px; }.project-section-head span { padding:3px 7px; border-radius:8px; color:var(--muted); background:#eef2ef; font-size:7px; font-weight:800; }.project-task-list,.project-donor-list { display:grid; gap:6px; }.project-task-row { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:9px; min-height:48px; padding:8px 9px; border:1px solid var(--line); border-left:3px solid #cbd5cf; border-radius:9px; background:#fbfcfb; }.project-task-row.blocked { border-left-color:var(--red); background:#fff8f7; }.project-task-main strong,.project-task-main small { display:block; }.project-task-main strong { font-size:8px; line-height:1.4; }.project-task-main small { margin-top:3px; color:var(--muted); font-size:7px; }.project-task-tags { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:4px; }.project-task-tags .chip { padding:3px 6px; font-size:6px; }.donor-section { border-top-color:#dce9e2; }.project-donor-card { padding:10px; border:1px solid #d9e7df; border-radius:10px; background:#f5f9f7; }.project-donor-head { display:flex; align-items:flex-start; justify-content:space-between; gap:8px; }.project-donor-head strong,.project-donor-head small { display:block; }.project-donor-head strong { font-size:9px; }.project-donor-head small { margin-top:3px; color:var(--muted); font-size:7px; }.project-donor-head > b { color:var(--green); font-size:9px; white-space:nowrap; }.project-donor-dates { display:flex; justify-content:space-between; margin:9px 0 4px; color:var(--muted); font-size:6px; }.project-donor-line { position:relative; height:12px; overflow:visible; border:1px solid #dce5e0; border-radius:6px; background:repeating-linear-gradient(to right,#edf2ef 0,#edf2ef calc(12.5% - 1px),#dce5e0 12.5%); }.project-donor-line i { position:absolute; top:1px; bottom:1px; min-width:5px; border-radius:5px; background:var(--blue); box-shadow:0 2px 5px rgba(75,115,158,.18); }.project-donor-line i.confirmed { background:var(--green); }.project-donor-line i.planned { background:repeating-linear-gradient(135deg,#668bad 0,#668bad 5px,#82a0bc 5px,#82a0bc 10px); }.project-donor-line > b { position:absolute; top:-3px; width:9px; height:9px; transform:translateX(-5px) rotate(45deg); border:2px solid white; border-radius:2px; background:var(--orange); box-shadow:0 0 0 1px var(--orange); }.project-renewal { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:7px; }.project-renewal span { color:var(--muted); font-size:7px; }.project-renewal strong { color:var(--orange); font-size:8px; white-space:nowrap; }.project-gantt-button { width:100%; min-height:35px; margin-top:8px; border:1px solid #bcd7c8; border-radius:8px; color:var(--green); background:white; font-size:8px; font-weight:800; }.project-gantt-button:hover { color:white; background:var(--green); }.project-empty-row { padding:13px; border:1px dashed #d7dfda; border-radius:9px; color:var(--muted); background:#fafbfa; font-size:8px; text-align:center; }.project-card-footer { align-items:center; padding-top:12px; border-top:1px solid var(--line); }
.filters { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; margin-bottom: 15px; }.filter-button { height: 31px; padding: 0 11px; border: 1px solid var(--line); border-radius: 9px; background: white; color: var(--muted); font-size: 9px; font-weight: 700; }.filter-button.active { color: var(--green); background: var(--green-soft); border-color: #cbe3d5; }
.kanban { display: grid; grid-template-columns: repeat(5,minmax(205px,1fr)); gap: 12px; overflow-x: auto; padding-bottom: 12px; }.kanban-col { background: #eef2ef; border-radius: 14px; min-height: 500px; padding: 11px; }.kanban-title { display: flex; align-items: center; justify-content: space-between; padding: 2px 3px 10px; font-size: 10px; font-weight: 800; }.kanban-title span { display: grid; place-items: center; min-width: 20px; height: 19px; background: white; border-radius: 9px; font-size: 8px; }.task-card { background: white; border: 1px solid #e0e6e2; border-radius: 11px; padding: 12px; margin-bottom: 9px; box-shadow: 0 3px 10px rgba(24,33,29,.03); }.task-card:hover { border-color: #c8d5ce; }.task-card h4 { margin: 9px 0 11px; font-size: 10px; line-height: 1.45; }.task-project { color: var(--muted); font-size: 8px; }.task-footer { display: flex; align-items: center; justify-content: space-between; margin-top: 10px; padding-top: 9px; border-top: 1px solid var(--line); }.task-footer .avatar { width: 24px; height: 24px; font-size: 7px; }.task-date { color: var(--muted); font-size: 8px; }.task-date.overdue { color: var(--red); font-weight: 700; }.task-actions { display: flex; gap: 5px; margin-top: 8px; }.mini-button { border: 0; background: #f0f3f1; color: #59675f; border-radius: 7px; padding: 5px 7px; font-size: 8px; font-weight: 700; }.mini-button:hover { background: var(--green-soft); color: var(--green); }.mini-button.block:hover { background: var(--red-soft); color: var(--red); }
.calendar-shell { display: grid; grid-template-columns: minmax(0,1fr) 245px; gap: 15px; }.calendar-card { background: white; border: 1px solid var(--line); border-radius: 15px; overflow: hidden; }.calendar-head { display: flex; justify-content: space-between; align-items: center; padding: 14px 16px; border-bottom: 1px solid var(--line); }.calendar-head h3 { margin: 0; font-size: 14px; }.calendar-grid { display: grid; grid-template-columns: repeat(7,1fr); }.weekday { padding: 9px; border-bottom: 1px solid var(--line); color: var(--muted); font-size: 8px; font-weight: 700; text-transform: uppercase; text-align: center; }.day { min-height: 106px; padding: 8px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }.day:nth-child(7n) { border-right: 0; }.day.muted { background: #fafbfa; color: #acb6b0; }.day.today { background: #f2f8f5; }.day-number { display: grid; place-items: center; width: 22px; height: 22px; margin-bottom: 5px; font-size: 9px; }.today .day-number { border-radius: 50%; color: white; background: var(--green); }.calendar-event { display: block; width: 100%; margin: 3px 0; padding: 4px 5px; border: 0; border-radius: 5px; background: var(--blue-soft); color: var(--blue); text-align: left; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 7px; font-weight: 700; }.calendar-event.blocked { background: var(--red-soft); color: var(--red); }.calendar-event.done { background: var(--green-soft); color: var(--green); }
.agenda { background: white; border: 1px solid var(--line); border-radius: 15px; padding: 15px; }.agenda h3 { margin: 0 0 13px; font-size: 12px; }.agenda-item { display: grid; grid-template-columns: 33px 1fr; gap: 8px; padding: 10px 0; border-bottom: 1px solid var(--line); }.agenda-date { color: var(--orange); font-size: 8px; font-weight: 800; text-align: center; }.agenda-date strong { display: block; font-size: 16px; }.agenda-item h4 { margin: 0 0 3px; font-size: 9px; }.agenda-item p { margin: 0; color: var(--muted); font-size: 8px; }
.team-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 15px; }.member-card { background: white; border: 1px solid var(--line); border-radius: 15px; padding: 17px; }.member-head { display: flex; align-items: center; gap: 10px; }.member-head .avatar { width: 40px; height: 40px; font-size: 11px; }.member-head h3 { margin: 0; font-size: 11px; }.member-head p { margin: 3px 0 0; color: var(--muted); font-size: 8px; }.member-stats { display: grid; grid-template-columns: repeat(3,1fr); gap: 7px; margin: 15px 0; }.member-stat { padding: 9px 5px; background: var(--paper); border-radius: 8px; text-align: center; }.member-stat strong,.member-stat small { display: block; }.member-stat strong { font-size: 13px; }.member-stat small { color: var(--muted); font-size: 7px; margin-top: 2px; }.load-label { display: flex; justify-content: space-between; font-size: 8px; color: var(--muted); margin-bottom: 6px; }
.report-hero { display: grid; grid-template-columns: 1.2fr .8fr; gap: 18px; margin-bottom: 18px; }.report-summary { padding: 24px; border-radius: 16px; color: white; background: #20362d; }.report-summary .eyebrow { color: #9eb6aa; }.report-summary h2 { max-width: 600px; margin: 9px 0; font-size: 22px; line-height: 1.3; }.report-summary p { margin: 0; color: #bbcbc3; font-size: 10px; line-height: 1.7; }.report-score { background: white; border: 1px solid var(--line); border-radius: 16px; padding: 20px; display: flex; align-items: center; justify-content: center; gap: 17px; }.score-ring { width: 82px; height: 82px; border-radius: 50%; display: grid; place-items: center; background: conic-gradient(var(--green) 0 82%, #e8edea 82%); }.score-ring::after { content:""; width: 62px; height: 62px; border-radius: 50%; background: white; position: absolute; }.score-ring strong { position: relative; z-index: 1; font-size: 19px; }.score-info strong,.score-info small { display: block; }.score-info strong { font-size: 12px; }.score-info small { color: var(--muted); font-size: 8px; margin-top: 5px; line-height: 1.5; }.report-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 15px; }.insight-list { padding: 3px 0; }.insight { display: grid; grid-template-columns: 27px 1fr; gap: 9px; padding: 10px 0; border-bottom: 1px solid var(--line); }.insight:last-child { border-bottom: 0; }.insight-icon { width: 27px; height: 27px; display: grid; place-items: center; border-radius: 8px; background: var(--orange-soft); color: var(--orange); font-weight: 800; }.insight h4 { margin: 0 0 4px; font-size: 9px; }.insight p { margin: 0; color: var(--muted); font-size: 8px; line-height: 1.5; }
.fund-summary-panel { border-color: #d9e6df; }.fund-summary-line { display:flex; align-items:center; justify-content:space-between; gap:12px; }.fund-summary-line span,.fund-summary-line strong { display:block; }.fund-summary-line span { color:var(--muted); font-size:9px; }.fund-summary-line strong { margin-top:4px; font-size:18px; }.fund-track { margin:13px 0 8px; height:8px; }.fund-hero { display:grid; grid-template-columns:1.2fr repeat(3,1fr); gap:13px; margin-bottom:18px; }.fund-hero > div { min-height:126px; padding:18px; border-radius:15px; background:white; border:1px solid var(--line); }.fund-hero > div:first-child { color:white; background:#20362d; border-color:#20362d; }.fund-hero > div:first-child .eyebrow,.fund-hero > div:first-child small { color:#a9beb4; }.fund-hero > div strong,.fund-hero > div small { display:block; }.fund-hero > div strong { margin:11px 0 5px; font-size:21px; letter-spacing:-.5px; }.fund-hero > div small { color:var(--muted); font-size:8px; }.fund-hero .progress-track { margin-top:14px; background:rgba(255,255,255,.14); }.fund-hero .progress-track i { background:#8fc9aa; }.fund-pipeline { display:grid; grid-template-columns:repeat(5,minmax(210px,1fr)); gap:12px; overflow-x:auto; padding-bottom:14px; }.fund-column { min-height:480px; padding:11px; border-radius:14px; background:#edf1ee; }.fund-stage-total { padding:0 3px 10px; color:var(--green); font-size:11px; font-weight:800; }.fund-card { padding:12px; margin-bottom:9px; border-radius:11px; background:white; border:1px solid #dfe6e2; }.fund-card-top { display:flex; align-items:center; justify-content:space-between; gap:8px; }.fund-card-top strong { font-size:10px; }.fund-card h4 { margin:11px 0 6px; font-size:10px; line-height:1.4; }.fund-card p { min-height:32px; margin:0; color:var(--muted); font-size:8px; line-height:1.5; }.fund-card .mini-button { width:100%; margin-top:9px; }.fund-confirmed { display:block; margin-top:9px; padding:7px; border-radius:7px; color:var(--green); background:var(--green-soft); font-size:8px; font-weight:700; text-align:center; }
.donor-directory { margin-bottom:16px; border-color:#d8e8df; }.donor-directory-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; padding:13px; }.donor-directory-card { min-width:0; padding:13px; border:1px solid #dce9e2; border-radius:12px; background:#fbfdfc; box-shadow:0 4px 14px rgba(24,33,29,.025); }.donor-directory-head { display:flex; justify-content:space-between; align-items:flex-start; gap:10px; }.donor-directory-head h4 { margin:4px 0 0; font-size:11px; line-height:1.35; }.donor-directory-head strong { color:var(--green); font-size:11px; white-space:nowrap; }.donor-project-pill { display:inline-flex; max-width:100%; margin:9px 0; padding:5px 8px; border-radius:999px; color:var(--project-color); background:#f2f7f4; font-size:7px; font-weight:900; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.donor-info-grid { display:grid; gap:7px; }.donor-info-grid > div { display:grid; gap:3px; padding:7px; border-radius:8px; background:white; border:1px solid #e6ede9; }.donor-info-grid span { color:var(--muted); font-size:7px; font-weight:700; }.donor-info-grid strong { font-size:8px; line-height:1.35; }.donor-info-grid .chip { justify-self:start; }.show-project-gantt { width:100%; min-height:32px; margin-top:9px; color:var(--green); background:var(--green-soft); }
.view-switch { display:flex; padding:3px; border:1px solid var(--line); border-radius:10px; background:white; }.fund-view-button { height:30px; padding:0 13px; border:0; border-radius:7px; color:var(--muted); background:transparent; font-size:9px; font-weight:800; }.fund-view-button.active { color:white; background:#20362d; box-shadow:0 3px 9px rgba(32,54,45,.14); }
.deadline-alert { display:none; grid-template-columns:30px 1fr; gap:10px; align-items:center; margin-bottom:13px; padding:12px 14px; border:1px solid #f1d9cb; border-radius:12px; background:#fff6f0; }.deadline-alert.visible { display:grid; }.deadline-alert > span { display:grid; place-items:center; width:30px; height:30px; border-radius:9px; color:var(--orange); background:var(--orange-soft); font-weight:800; }.deadline-alert strong { display:block; font-size:10px; }.deadline-alert p { margin:3px 0 0; color:var(--muted); font-size:8px; }.gantt-shell { overflow:hidden; border:1px solid var(--line); border-radius:15px; background:white; box-shadow:0 4px 18px rgba(24,33,29,.025); }.gantt-legend { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:15px 17px; border-bottom:1px solid var(--line); }.gantt-legend h3 { margin:0; font-size:12px; }.gantt-legend p { margin:3px 0 0; color:var(--muted); font-size:8px; }.gantt-legend > div:last-child { display:flex; gap:13px; color:var(--muted); font-size:8px; }.gantt-legend > div:last-child span { display:flex; align-items:center; gap:5px; }.legend-dot { width:7px; height:7px; border-radius:3px; background:var(--green); }.legend-dot.talks { background:var(--orange); }.legend-dot.risk { background:var(--red); }.legend-line { width:2px; height:12px; background:var(--red); }.gantt-scroll { overflow-x:auto; }.gantt-chart { min-width:max-content; }.gantt-header,.gantt-row { display:grid; grid-template-columns:230px auto 105px; }.gantt-header { min-height:47px; color:var(--muted); background:#f8faf8; border-bottom:1px solid var(--line); }.gantt-label-head,.gantt-deadline-head { display:flex; align-items:center; padding:0 14px; font-size:8px; font-weight:800; text-transform:uppercase; letter-spacing:.05em; }.gantt-deadline-head { border-left:1px solid var(--line); }.gantt-days { display:flex; border-left:1px solid var(--line); }.gantt-day { width:32px; flex:0 0 32px; display:grid; place-items:center; align-content:center; gap:2px; border-right:1px solid var(--line); font-size:8px; }.gantt-day small { color:#98a49d; font-size:6px; text-transform:uppercase; }.gantt-day.weekend { background:#f2f5f3; }.gantt-day.today-day { color:var(--red); background:#fff1ee; }.gantt-row { min-height:86px; border-bottom:1px solid var(--line); }.gantt-row:last-child { border-bottom:0; }.gantt-donor { padding:10px 12px; }.gantt-donor > div { display:flex; align-items:center; gap:8px; }.gantt-donor .avatar { width:27px; height:27px; font-size:7px; }.gantt-donor span strong,.gantt-donor span small,.gantt-donor span em { display:block; }.gantt-donor span strong { max-width:165px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:9px; }.gantt-donor span small { margin-top:2px; color:var(--muted); font-size:7px; }.gantt-donor span em { margin-top:2px; color:var(--orange); font-size:7px; font-style:normal; font-weight:700; }.gantt-donor p { margin:6px 0 0 35px; max-width:175px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--muted); font-size:7px; }.gantt-timeline { position:relative; min-height:86px; border-left:1px solid var(--line); background-image:repeating-linear-gradient(to right,transparent 0,transparent calc(100% - 1px),var(--line) calc(100% - 1px),var(--line) 100%); }.gantt-today-line { position:absolute; top:0; bottom:0; z-index:2; width:1px; background:rgba(200,76,76,.75); }.gantt-today-line::before { content:""; position:absolute; top:-3px; left:-3px; width:7px; height:7px; border-radius:50%; background:var(--red); }.gantt-bar { position:absolute; top:28px; height:29px; display:flex; align-items:center; min-width:26px; padding:0 8px; border-radius:7px; color:white; background:var(--green); box-shadow:0 4px 10px rgba(40,117,90,.18); overflow:visible; font-size:7px; font-weight:800; white-space:nowrap; }.gantt-bar b { position:absolute; right:-4px; top:9px; width:9px; height:9px; transform:rotate(45deg); border:2px solid white; background:inherit; }.gantt-bar.bar-talks { background:var(--orange); }.gantt-bar.bar-sent { background:var(--blue); }.gantt-bar.bar-overdue { background:var(--red); }.gantt-bar.bar-done { background:#7a9c8c; }.gantt-deadline { display:grid; align-content:center; gap:5px; padding:10px 12px; border-left:1px solid var(--line); }.gantt-deadline strong { font-size:9px; }.gantt-deadline span { font-size:7px; font-weight:700; }
.fund-period-card { margin:9px 0; padding:8px; border:1px solid #dce8e1; border-radius:8px; background:#f5f9f7; }.fund-period-card span,.fund-period-card strong,.fund-period-card em { display:block; }.fund-period-card span { color:var(--muted); font-size:7px; }.fund-period-card strong { margin-top:3px; font-size:8px; line-height:1.4; }.fund-period-card em { margin-top:4px; color:var(--orange); font-size:7px; font-style:normal; font-weight:800; }.renewal-alert { border-color:#efd5b8; background:#fff8ee; }.funding-period-chart .gantt-header,.funding-period-chart .gantt-row { grid-template-columns:260px auto 165px; }.funding-period-row { min-height:96px; }.funding-period-row .gantt-donor p { max-width:215px; color:var(--ink); font-weight:700; }.fund-months { display:flex; }.fund-month { flex:0 0 auto; display:grid; place-items:center; align-content:center; gap:2px; border-right:1px solid var(--line); font-size:8px; text-transform:capitalize; }.fund-month small { color:#9aa69f; font-size:6px; }.fund-month.year-start { border-left:2px solid #b8c7bf; }.funding-period-timeline { min-height:96px; background-image:repeating-linear-gradient(to right,transparent 0,transparent 103px,#e7ece8 104px); }.funding-period-bar { position:absolute; top:18px; height:29px; display:flex; align-items:center; min-width:22px; padding:0 8px; overflow:hidden; border-radius:7px; color:white; background:var(--blue); box-shadow:0 4px 10px rgba(75,115,158,.18); font-size:7px; font-weight:800; white-space:nowrap; }.funding-period-bar.confirmed { background:var(--green); }.funding-period-bar.planned { background:repeating-linear-gradient(135deg,#668bad 0,#668bad 7px,#789abb 7px,#789abb 14px); }.appeal-window-bar { position:absolute; top:57px; height:15px; display:flex; align-items:center; min-width:18px; padding:0 5px; overflow:hidden; border-radius:5px; color:#8e4c28; background:repeating-linear-gradient(135deg,#ffe0cb 0,#ffe0cb 6px,#f6c8a8 6px,#f6c8a8 12px); font-size:6px; font-weight:800; white-space:nowrap; }.renewal-marker { position:absolute; top:52px; z-index:3; width:12px; height:12px; transform:translateX(-6px) rotate(45deg); border:2px solid white; border-radius:2px; background:var(--orange); box-shadow:0 2px 6px rgba(217,119,69,.35); }.renewal-deadline strong { line-height:1.35; }.renewal-deadline small { color:var(--muted); font-size:7px; line-height:1.35; }.legend-renewal { width:8px; height:8px; transform:rotate(45deg); border:1px solid white; border-radius:1px; background:var(--orange); box-shadow:0 0 0 1px var(--orange); }
.funding-period-chart .gantt-label-head,.funding-period-row .gantt-donor { position:sticky; left:0; z-index:6; background:#fff; box-shadow:5px 0 12px rgba(24,33,29,.05); }.funding-period-chart .gantt-header .gantt-label-head { background:#f8faf8; }.funding-period-chart .gantt-deadline-head,.funding-period-row .renewal-deadline { position:sticky; right:0; z-index:6; background:#fff; box-shadow:-5px 0 12px rgba(24,33,29,.05); }.funding-period-chart .gantt-header .gantt-deadline-head { background:#f8faf8; }
.persona-hidden { display:none !important; }.small-value { font-size:20px; }.executive-banner { display:grid; grid-template-columns:1fr auto; align-items:center; gap:22px; margin-bottom:18px; padding:24px; border-radius:17px; color:white; background:linear-gradient(120deg,#20362d,#2d5847); box-shadow:0 14px 35px rgba(32,54,45,.16); }.executive-banner .eyebrow { color:#abc3b7; }.executive-banner h2 { margin:8px 0 6px; font-size:24px; letter-spacing:-.6px; }.executive-banner p { max-width:690px; margin:0; color:#c2d1ca; font-size:10px; line-height:1.6; }.executive-score { width:105px; height:105px; display:grid; place-items:center; align-content:center; border:1px solid rgba(255,255,255,.17); border-radius:50%; background:rgba(255,255,255,.07); }.executive-score strong,.executive-score span { display:block; }.executive-score strong { font-size:25px; }.executive-score span { color:#b9cbc2; font-size:7px; }.president-metrics { display:grid; gap:15px; }.president-metric { display:grid; grid-template-columns:minmax(135px,1fr) 1.15fr 35px; gap:10px; align-items:center; }.president-metric strong,.president-metric small { display:block; }.president-metric strong { font-size:9px; }.president-metric small { margin-top:3px; color:var(--muted); font-size:7px; }.president-metric b { font-size:9px; text-align:right; }.audience-summary { text-align:center; }.audience-summary > strong,.audience-summary > span { display:block; }.audience-summary > strong { font-size:28px; }.audience-summary > span { margin:3px 0 13px; color:var(--muted); font-size:8px; }.audience-summary small { display:block; margin-top:8px; color:var(--muted); font-size:8px; }
.strategy-score-badge { display:flex; align-items:center; gap:8px; padding:9px 13px; border:1px solid #cfe2d7; border-radius:11px; color:var(--green); background:var(--green-soft); font-size:9px; font-weight:700; }.strategy-score-badge strong { font-size:17px; }.strategy-overview { display:grid; grid-template-columns:1fr auto; align-items:center; gap:24px; margin-bottom:24px; padding:23px; border:1px solid var(--line); border-radius:16px; background:white; }.strategy-overview h2 { margin:7px 0; font-size:20px; }.strategy-overview p { max-width:680px; margin:0; color:var(--muted); font-size:9px; line-height:1.6; }.strategy-overview .score-ring { position:relative; }.strategy-section { margin-bottom:24px; }.section-title { display:flex; align-items:center; justify-content:space-between; margin-bottom:11px; }.section-title h3 { margin:0; font-size:13px; }.section-title span { color:var(--muted); font-size:8px; }.strategy-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:13px; }.strategy-card { min-width:0; padding:15px; border:1px solid var(--line); border-radius:14px; background:white; box-shadow:0 4px 16px rgba(24,33,29,.025); }.strategy-card-head { min-height:24px; display:flex; justify-content:space-between; align-items:flex-start; gap:7px; }.strategy-category { color:var(--muted); font-size:7px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; }.strategy-card h3 { margin:9px 0 8px; font-size:10px; }.strategy-value { display:flex; align-items:baseline; gap:5px; margin-bottom:10px; }.strategy-value strong { font-size:19px; letter-spacing:-.5px; }.strategy-value span { color:var(--muted); font-size:7px; }.strategy-meta { display:flex; justify-content:space-between; margin-top:7px; font-size:7px; font-weight:700; }.strategy-card p { min-height:26px; margin:11px 0; color:var(--muted); font-size:7px; line-height:1.5; }.strategy-card .person-inline { color:var(--muted); font-size:7px; }.strategy-card .person-inline .avatar { width:21px; height:21px; }
.access-banner { display:grid; grid-template-columns:44px 1fr auto; align-items:center; gap:14px; margin-bottom:14px; padding:17px; border:1px solid #cfe0d7; border-radius:15px; background:#f2f8f5; }.access-lock { display:grid; place-items:center; width:44px; height:44px; border-radius:13px; color:var(--green); background:var(--green-soft); font-size:17px; }.access-banner h3 { margin:4px 0; font-size:13px; }.access-banner p { margin:0; color:var(--muted); font-size:8px; }.access-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-bottom:14px; }.access-stats > div { padding:14px; border:1px solid var(--line); border-radius:12px; background:white; }.access-stats strong,.access-stats span { display:block; }.access-stats strong { font-size:20px; }.access-stats span { margin-top:3px; color:var(--muted); font-size:8px; }.access-table { overflow:hidden; }.access-table-head,.access-row { display:grid; grid-template-columns:minmax(230px,1.4fr) 150px 120px 90px 70px; gap:12px; align-items:center; padding:12px 15px; }.access-table-head { min-height:38px; color:var(--muted); background:#f8faf8; border-bottom:1px solid var(--line); font-size:7px; font-weight:800; text-transform:uppercase; }.access-row { min-height:64px; border-bottom:1px solid var(--line); }.access-row:last-child { border-bottom:0; }.access-person { display:flex; align-items:center; gap:9px; }.access-person strong,.access-person small { display:block; }.access-person strong { font-size:9px; }.access-person small { margin-top:3px; color:var(--muted); font-size:7px; }.permission-select { width:100%; padding:7px 8px; border:1px solid var(--line); border-radius:8px; color:var(--ink); background:white; font-size:8px; }.permission-select:disabled { color:var(--muted); background:var(--paper); }.last-active { color:var(--muted); font-size:8px; }.toggle-access:disabled { opacity:.35; cursor:not-allowed; }

.management-report-hero { display:grid; grid-template-columns:1.3fr .7fr; gap:18px; margin-bottom:18px; }.management-summary { background:linear-gradient(120deg,#172338,#20362d); }.management-summary h2 { color:white; }.management-mission { margin-top:18px; padding:13px; border-radius:12px; background:rgba(255,255,255,.08); }.management-mission strong,.management-mission span { display:block; }.management-mission strong { margin-bottom:6px; color:#f0a35f; font-size:8px; text-transform:uppercase; letter-spacing:.08em; }.management-mission span { color:#d9e3df; font-size:9px; line-height:1.55; }.management-score .score-ring { position:relative; }.management-kpi-grid { display:grid; grid-template-columns:repeat(6,1fr); gap:10px; margin-bottom:16px; }.management-kpi-grid > div { padding:15px; border:1px solid var(--line); border-radius:14px; background:white; }.management-kpi-grid span,.management-kpi-grid strong,.management-kpi-grid small { display:block; }.management-kpi-grid span { color:var(--muted); font-size:7px; font-weight:900; text-transform:uppercase; letter-spacing:.07em; }.management-kpi-grid strong { margin:8px 0 3px; font-size:22px; }.management-kpi-grid small { color:var(--muted); font-size:7px; line-height:1.4; }.management-pillar-panel { margin-bottom:16px; }.management-pillar-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }.management-pillar-card { padding:14px; border:1px solid #dfe8e3; border-radius:13px; background:#fbfdfc; }.management-pillar-top { display:flex; align-items:center; justify-content:space-between; gap:8px; }.management-pillar-top > span { display:grid; place-items:center; width:25px; height:25px; border-radius:8px; color:white; background:#20362d; font-size:8px; font-weight:900; }.management-pillar-card h4 { min-height:34px; margin:11px 0 10px; font-size:10px; line-height:1.45; }.management-pillar-stats { display:flex; align-items:baseline; justify-content:space-between; gap:8px; margin-top:8px; }.management-pillar-stats strong { font-size:16px; }.management-pillar-stats span { color:var(--muted); font-size:7px; text-align:right; }.management-pillar-card p { min-height:42px; margin:10px 0 0; color:var(--muted); font-size:8px; line-height:1.5; }.management-notes-grid { margin-bottom:16px; }.management-tracker { overflow:hidden; }.management-table { overflow:auto; border-top:1px solid var(--line); }.management-table-head,.management-table-row { min-width:920px; display:grid; grid-template-columns:115px minmax(310px,1.5fr) 160px 150px 118px; gap:12px; align-items:center; padding:10px 14px; border-bottom:1px solid var(--line); }.management-table-head { position:sticky; top:0; z-index:1; color:var(--muted); background:#f4f7f5; font-size:7px; font-weight:900; text-transform:uppercase; letter-spacing:.08em; }.management-table-row { background:white; }.management-table-row:hover { background:#fbfdfc; }.management-table-row strong,.management-table-row small,.management-table-row span,.management-table-row b { display:block; }.management-table-row strong { font-size:9px; line-height:1.45; }.management-table-row small { margin-top:3px; color:var(--muted); font-size:7px; line-height:1.4; }.management-table-row span { color:#34433b; font-size:8px; line-height:1.45; }.management-table-row b { margin-top:4px; font-size:8px; }.management-source-note { margin-top:16px; padding:15px; background:#fbf7ef; border-color:#f2dfc8; }.management-source-note strong { display:block; color:#9b5b22; font-size:10px; }.management-source-note p { margin:6px 0 0; color:#745b41; font-size:8px; line-height:1.55; }
.management-tracker-subgroups { margin-bottom:16px; }
.management-tracker-groups { display:grid; gap:10px; padding:13px; border-top:1px solid var(--line); background:#f7faf8; }
.management-tracker-group { border:1px solid #dce7e1; border-radius:13px; background:white; overflow:hidden; box-shadow:0 4px 14px rgba(24,33,29,.025); }
.management-tracker-group summary { display:grid; grid-template-columns:28px minmax(260px,1.4fr) minmax(180px,.75fr) 140px; gap:12px; align-items:center; min-height:68px; padding:11px 13px; cursor:pointer; list-style:none; }
.management-tracker-group summary::-webkit-details-marker { display:none; }
.tracker-toggle-arrow { display:grid; place-items:center; width:24px; height:24px; border-radius:50%; color:var(--green); background:var(--green-soft); font-size:15px; font-weight:900; transition:.18s ease; }
.management-tracker-group[open] .tracker-toggle-arrow { transform:rotate(90deg); }
.tracker-group-main strong,.tracker-group-main small,.tracker-group-progress b,.tracker-group-status small { display:block; }
.tracker-group-main strong { overflow:hidden; font-size:10px; line-height:1.35; text-overflow:ellipsis; white-space:nowrap; }
.tracker-group-main small,.tracker-group-status small { margin-top:4px; color:var(--muted); font-size:7px; font-weight:800; }
.tracker-group-progress { display:grid; grid-template-columns:1fr 38px; gap:8px; align-items:center; }
.tracker-group-progress .progress-track { margin:0; }
.tracker-group-progress b { color:var(--ink); font-size:10px; text-align:right; }
.tracker-group-status { display:grid; justify-items:start; gap:4px; }
.tracker-group-blockers { display:grid; grid-template-columns:160px 1fr; gap:10px; padding:10px 13px; border-top:1px solid var(--line); color:#4a5c53; background:#fbf7ef; }
.tracker-group-blockers strong { color:#9b5b22; font-size:8px; text-transform:uppercase; letter-spacing:.06em; }
.tracker-group-blockers span { overflow:hidden; font-size:8px; font-weight:800; text-overflow:ellipsis; white-space:nowrap; }
.management-table-grouped { max-height:420px; border-top:1px solid var(--line); }
.president-number-panel { margin-bottom:18px; overflow:hidden; border-color:#efd1b7; }
.president-number-summary { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; padding:13px; border-top:1px solid var(--line); background:#fffaf4; }
.president-number-summary div { padding:13px; border:1px solid #efd8bd; border-radius:12px; background:white; }
.president-number-summary span,.president-number-summary strong,.president-number-summary small { display:block; }
.president-number-summary span { color:#9b5b22; font-size:7px; font-weight:900; text-transform:uppercase; letter-spacing:.07em; }
.president-number-summary strong { margin:6px 0 3px; color:var(--ink); font-size:20px; }
.president-number-summary small { color:var(--muted); font-size:7px; line-height:1.4; }
.president-number-table { overflow:auto; border-top:1px solid var(--line); }
.president-number-head,.president-number-row { min-width:1120px; display:grid; grid-template-columns:105px minmax(260px,1.5fr) 128px 128px 140px 118px minmax(210px,1fr); gap:10px; align-items:center; padding:10px 13px; border-bottom:1px solid var(--line); }
.president-number-head { color:var(--muted); background:#f4f7f5; font-size:7px; font-weight:900; text-transform:uppercase; letter-spacing:.08em; }
.president-number-row { background:white; }
.president-number-row:hover { background:#fbfdfc; }
.president-number-row strong,.president-number-row small,.president-number-row span { display:block; }
.president-number-row strong { font-size:8px; line-height:1.35; }
.president-number-row span { color:#2f3f37; font-size:8px; font-weight:900; line-height:1.35; }
.president-number-row small { margin-top:3px; overflow:hidden; color:var(--muted); font-size:7px; line-height:1.35; text-overflow:ellipsis; white-space:nowrap; }
.gap-open span,.gap-open strong { color:var(--orange) !important; }
.gap-closed span,.gap-closed strong { color:var(--green) !important; }
.strategy-program-overview { background:linear-gradient(135deg,#ffffff,#f7fbf8); }.strategy-meta-line { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }.strategy-meta-line span { padding:5px 8px; border-radius:999px; color:#496158; background:#eef5f1; font-size:8px; font-weight:800; }.strategy-kpi-grid { margin-bottom:18px; }.strategy-attention-panel { margin-bottom:20px; border-color:#f0dcc8; }.strategy-attention-list { display:grid; grid-template-columns:repeat(2,1fr); gap:0 18px; }.strategy-program-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:13px; }.strategy-program-card { min-width:0; padding:15px; border:1px solid #dfe8e3; border-radius:14px; background:white; box-shadow:0 4px 16px rgba(24,33,29,.025); }.strategy-program-card:hover { border-color:#c9ddd2; box-shadow:0 10px 25px rgba(24,33,29,.05); }.strategy-program-top { display:flex; align-items:center; justify-content:space-between; gap:8px; }.strategy-program-top > span { display:grid; place-items:center; width:28px; height:28px; border-radius:9px; color:white; background:#20362d; font-size:9px; font-weight:900; }.strategy-program-card h3 { min-height:38px; margin:12px 0 9px; font-size:11px; line-height:1.45; }.strategy-program-score { display:flex; align-items:baseline; justify-content:space-between; gap:10px; margin-bottom:8px; }.strategy-program-score strong { font-size:22px; letter-spacing:-.7px; }.strategy-program-score span { color:var(--muted); font-size:8px; font-weight:800; }.strategy-program-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:6px; margin-top:10px; }.strategy-program-stats span { padding:7px 6px; border-radius:8px; color:#526057; background:#f2f5f3; font-size:7px; font-weight:800; text-align:center; }.strategy-program-card p { min-height:48px; margin:11px 0 0; color:var(--muted); font-size:8px; line-height:1.55; }.strategy-program-detail { margin-bottom:14px; }.program-detail-score { display:flex; align-items:center; gap:8px; }.program-detail-score strong { font-size:18px; }.program-detail-note { margin:0 16px 12px; padding:11px 12px; border:1px solid #e3ece7; border-radius:11px; color:#43534b; background:#f8fbf9; font-size:9px; line-height:1.55; }.program-objective-table { max-height:520px; }.operational-kpi-section { margin-top:26px; padding-top:4px; border-top:1px dashed #d7e1dc; }.strategy-card.compact { padding:12px; }.strategy-card.compact .strategy-card-head { min-height:auto; }.strategy-card.compact h3 { min-height:28px; }.strategy-card.compact .strategy-value strong { font-size:15px; }.president-programs { display:grid; gap:10px; }.president-program-row { display:grid; grid-template-columns:minmax(190px,1fr) minmax(120px,.7fr) 42px auto; gap:10px; align-items:center; padding:11px; border:1px solid var(--line); border-radius:11px; background:#fbfdfc; }.president-program-row strong,.president-program-row small { display:block; }.president-program-row strong { font-size:9px; line-height:1.35; }.president-program-row small { margin-top:3px; color:var(--muted); font-size:7px; line-height:1.4; }.president-program-row b { font-size:9px; text-align:right; }
@media (max-width:1100px){ .management-report-hero { grid-template-columns:1fr; }.management-kpi-grid { grid-template-columns:repeat(3,1fr); }.management-pillar-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:1100px){ .management-tracker-group summary { grid-template-columns:28px minmax(220px,1fr) minmax(160px,.7fr) 132px; }.tracker-group-blockers { grid-template-columns:1fr; } }
@media (max-width:1100px){ .president-number-summary { grid-template-columns:1fr; } }
@media (max-width:1100px){ .strategy-program-grid { grid-template-columns:repeat(2,1fr); }.president-program-row { grid-template-columns:minmax(180px,1fr) minmax(120px,.65fr) 38px; }.president-program-row .chip { grid-column:1 / -1; justify-self:start; } }
@media (max-width:760px){ .strategy-attention-list,.strategy-program-grid { grid-template-columns:1fr; }.strategy-meta-line { flex-direction:column; align-items:flex-start; }.strategy-program-stats { grid-template-columns:1fr; }.president-program-row { grid-template-columns:1fr; }.president-program-row b { text-align:left; }.program-detail-score { align-items:flex-start; flex-direction:column; }.strategy-kpi-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:470px){ .strategy-kpi-grid { grid-template-columns:1fr; } }
@media (max-width:760px){ .management-kpi-grid,.management-pillar-grid { grid-template-columns:1fr; } }
@media (max-width:760px){ .management-tracker-group summary { grid-template-columns:26px 1fr; }.tracker-group-progress,.tracker-group-status { grid-column:2; }.tracker-group-main strong { white-space:normal; }.management-table-grouped { max-height:520px; } }
@media (max-width:760px){ .strategic-number-grid,.year-indicator-grid-3 { grid-template-columns:1fr; } }

.private-download { position:relative; padding-right:104px; }.private-download > span { position:absolute; right:7px; top:7px; padding:4px 7px; border-radius:6px; color:#d8eee2; background:rgba(255,255,255,.12); font-size:7px; font-weight:700; }.readonly-badge { padding:8px 11px; border:1px solid var(--line); border-radius:9px; color:var(--muted); background:white; font-size:8px; font-weight:700; }.export-modal { width:min(590px,100%); }.private-export-note { display:grid; grid-template-columns:28px 1fr; gap:10px; align-items:center; margin-bottom:17px; padding:11px; border:1px solid #d8e6de; border-radius:11px; background:#f1f7f4; }.private-export-note > span { display:grid; place-items:center; width:28px; height:28px; border-radius:8px; color:var(--green); background:var(--green-soft); }.private-export-note strong { display:block; font-size:9px; }.private-export-note p { margin:3px 0 0; color:var(--muted); font-size:8px; }.export-select-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:9px; }.export-select-head strong { font-size:10px; }.export-options { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; margin-bottom:15px; }.export-options label { position:relative; min-height:58px; display:flex; grid-template-columns:none; align-items:flex-start; gap:9px; margin:0; padding:11px; border:1px solid var(--line); border-radius:10px; background:white; cursor:pointer; }.export-options label:has(input:checked) { border-color:#9fc8b2; background:#f1f8f4; }.export-options input { width:15px; height:15px; margin:1px 0 0; accent-color:var(--green); }.export-options span strong,.export-options span small { display:block; }.export-options span strong { color:var(--ink); font-size:9px; }.export-options span small { margin-top:4px; color:var(--muted); font-size:7px; line-height:1.35; }
.fund-project-filter { height:38px; min-width:150px; max-width:190px; padding:0 10px; border:1px solid var(--line); border-radius:10px; outline:none; color:var(--ink); background:white; font-size:9px; font-weight:700; }.fund-project-link { display:block; margin-top:9px; overflow:hidden; color:var(--project-color); font-size:7px; font-weight:800; text-overflow:ellipsis; white-space:nowrap; }.project-funding { display:flex; align-items:center; gap:8px; margin:10px 0 13px; padding:9px; border:1px solid #dce9e2; border-radius:9px; background:#f3f8f5; }.project-funding > span { display:grid; place-items:center; width:24px; height:24px; border-radius:7px; color:var(--green); background:var(--green-soft); }.project-funding strong,.project-funding small { display:block; }.project-funding strong { font-size:9px; }.project-funding small { margin-top:2px; color:var(--muted); font-size:7px; }
.manager-assignment { display:flex; align-items:center; gap:9px; margin-bottom:15px; padding:10px 11px; border:1px solid #d7e7de; border-radius:10px; background:#f2f8f5; }.manager-assignment strong,.manager-assignment small { display:block; }.manager-assignment strong { font-size:9px; }.manager-assignment small { margin-top:3px; color:var(--muted); font-size:7px; line-height:1.4; }.calendar-checkbox { display:flex !important; grid-template-columns:none !important; align-items:flex-start; gap:9px !important; margin-top:2px; padding:11px; border:1px solid #dbe7e0; border-radius:10px; background:#f7faf8; cursor:pointer; }.calendar-checkbox input { width:15px !important; height:15px; margin:1px 0 0; accent-color:var(--green); }.calendar-checkbox span strong,.calendar-checkbox span small { display:block; }.calendar-checkbox span strong { color:var(--ink); font-size:9px; }.calendar-checkbox span small { margin-top:3px; color:var(--muted); font-size:7px; }.task-card-badges { display:flex; align-items:center; flex-wrap:wrap; gap:5px; }.google-task-button { width:100%; margin-top:8px; padding:6px 8px; border:1px solid #dbe5df; border-radius:7px; color:#526159; background:white; font-size:7px; font-weight:700; }.google-task-button b { color:#4285f4; font-size:9px; }.google-task-button.connected { border-color:#c7dfd2; background:#f5faf7; }.google-task-button:hover { color:var(--green); background:var(--green-soft); }.assign-task-button { width:100%; height:32px; margin-top:13px; border:1px solid #b8d6c5; border-radius:8px; color:var(--green); background:var(--green-soft); font-size:8px; font-weight:800; }.assign-task-button:hover { color:white; background:var(--green); }.google-calendar-logo { display:grid; place-items:center; width:42px; height:42px; border-radius:11px; color:white; background:linear-gradient(135deg,#4285f4 0 50%,#34a853 50%); font-size:18px; font-weight:800; }.personal-calendar-panel { display:grid; grid-template-columns:minmax(250px,1.3fr) minmax(190px,.65fr) auto auto; align-items:center; gap:13px; margin-bottom:10px; padding:15px; border:1px solid #d9e5de; border-radius:14px; background:white; box-shadow:0 4px 17px rgba(24,33,29,.025); }.personal-calendar-main { display:flex; align-items:center; gap:12px; }.personal-calendar-main h3 { margin:3px 0; font-size:12px; }.personal-calendar-main p { margin:0; color:var(--muted); font-size:8px; line-height:1.5; }.calendar-member-picker { display:grid; gap:5px; color:var(--muted); font-size:7px; font-weight:700; }.calendar-member-picker select { width:100%; height:36px; padding:0 9px; border:1px solid var(--line); border-radius:9px; outline:none; color:var(--ink); background:white; font-size:8px; font-weight:700; }.calendar-sync-actions { display:flex; gap:7px; }.calendar-sync-actions button:disabled { opacity:.45; cursor:not-allowed; }.danger-text { color:var(--red); }.calendar-privacy-note { display:flex; align-items:flex-start; gap:9px; margin-bottom:15px; padding:10px 13px; border:1px solid #dce8e1; border-radius:11px; color:var(--muted); background:#f4f8f6; }.calendar-privacy-note > span { color:var(--green); font-weight:800; }.calendar-privacy-note p { margin:0; font-size:8px; line-height:1.55; }.calendar-privacy-note strong { color:var(--ink); }.calendar-team-status { margin-bottom:15px; padding:15px; border:1px solid var(--line); border-radius:14px; background:white; }.calendar-status-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }.calendar-member-status { display:grid; grid-template-columns:30px 1fr 22px; align-items:center; gap:8px; padding:9px; border:1px solid var(--line); border-radius:10px; background:#fafbfa; }.calendar-member-status .avatar { width:30px; height:30px; font-size:7px; }.calendar-member-status strong,.calendar-member-status small { display:block; }.calendar-member-status strong { font-size:8px; }.calendar-member-status small { margin-top:2px; color:var(--muted); font-size:7px; }.calendar-member-status i { display:grid; place-items:center; width:22px; height:22px; border-radius:50%; color:#8c9891; background:#edf0ee; font-size:8px; font-style:normal; font-weight:800; }.calendar-member-status i.connected { color:var(--green); background:var(--green-soft); }
.chip-critical { color:#fff; background:#9f2d2d; box-shadow:0 3px 8px rgba(159,45,45,.2); }
.task-assignment-line { display:flex; align-items:center; gap:6px; margin-top:8px; color:var(--muted); }.task-assignment-line > span { display:grid; place-items:center; width:20px; height:20px; border-radius:50%; color:var(--green); background:var(--green-soft); font-size:6px; font-weight:800; }.task-assignment-line small { font-size:7px; font-weight:700; }
.task-card { cursor:pointer; }.task-process-preview { display:grid; gap:4px; margin:9px 0; padding:8px; border:1px solid #e2ebe6; border-radius:8px; background:#f7faf8; }.task-process-preview strong { color:var(--green); font-size:7px; text-transform:uppercase; letter-spacing:.05em; }.task-process-preview span { color:#526057; font-size:8px; line-height:1.45; }.task-detail-button { width:100%; min-height:33px; margin-top:9px; border:1px solid #c6dccf; border-radius:8px; color:var(--green); background:white; font-size:8px; font-weight:800; }.task-detail-button:hover { color:white; background:var(--green); }.task-detail-modal { width:min(760px,100%); }.task-detail-hero { margin-bottom:14px; padding:14px; border:1px solid #dce9e2; border-radius:13px; background:#f6faf8; }.task-detail-hero > div { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:10px; }.task-detail-hero p { margin:0; color:#4b5a52; font-size:10px; line-height:1.7; }.task-detail-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-bottom:15px; }.task-detail-grid > div { padding:10px; border:1px solid var(--line); border-radius:10px; background:white; }.task-detail-grid span,.task-detail-grid strong { display:block; }.task-detail-grid span { color:var(--muted); font-size:7px; font-weight:800; text-transform:uppercase; letter-spacing:.05em; }.task-detail-grid strong { margin-top:5px; font-size:9px; line-height:1.35; }.task-process-panel { margin-bottom:14px; padding:14px; border:1px solid #d8e6de; border-radius:13px; background:white; }.task-process-list { display:grid; gap:8px; margin:0; padding:0; list-style:none; counter-reset:none; }.task-process-list li { display:grid; grid-template-columns:28px 1fr; gap:9px; align-items:start; padding:9px; border:1px solid #e2ebe6; border-radius:10px; background:#fbfdfc; }.task-process-list b { display:grid; place-items:center; width:28px; height:28px; border-radius:50%; color:white; background:var(--green); font-size:9px; }.task-process-list span { color:#425047; font-size:10px; line-height:1.55; }.task-blocker-detail { margin-bottom:14px; padding:13px; border:1px solid #f0cbc7; border-radius:12px; background:#fff6f5; }.task-blocker-detail strong,.task-blocker-detail small { display:block; }.task-blocker-detail strong { color:var(--red); font-size:10px; }.task-blocker-detail p { margin:7px 0; color:#5e4b49; font-size:9px; line-height:1.5; }.task-blocker-detail small { color:var(--muted); font-size:8px; }
.project-process-board { margin-bottom:16px; padding:16px; border:1px solid var(--line); border-radius:15px; background:white; box-shadow:0 4px 18px rgba(24,33,29,.025); }.project-process-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }.project-process-card { min-width:0; padding:12px; border:1px solid #dfe8e3; border-radius:12px; background:#fbfdfc; }.project-process-card.has-risk { border-color:#f0cbc7; background:#fff8f7; }.project-process-card > div:first-child { display:flex; align-items:center; gap:8px; margin-bottom:9px; }.project-process-card strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:9px; }.project-process-card p { height:auto; margin:0 0 5px; color:#34433b; font-size:8px; line-height:1.45; }.project-process-card small { display:block; color:var(--muted); font-size:7px; line-height:1.45; }.project-process-card em { display:block; margin-top:8px; color:var(--red); font-size:7px; font-style:normal; font-weight:800; }.project-process-symbol { display:grid; place-items:center; width:26px; height:26px; flex:0 0 auto; border-radius:8px; color:white; font-size:9px; font-weight:900; }.project-process-track { display:grid; grid-template-columns:repeat(5,1fr); gap:4px; margin-top:10px; }.project-process-track i { height:6px; border-radius:999px; background:#dfe5e1; }.project-process-track i.done { background:var(--green); }.project-process-track i.active { background:var(--blue); }.project-process-track i.approval { background:var(--purple); }.project-process-track i.risk { background:var(--red); }.project-process-track i.current { box-shadow:0 0 0 3px rgba(40,117,90,.13); }.project-overview-line { grid-template-columns:repeat(6,1fr); }.project-funding-need { margin:12px 0 4px; padding:12px; border:1px solid #d9e7df; border-radius:12px; background:#f7fbf8; }.project-funding-need span,.project-funding-need strong,.project-funding-need small { display:block; }.project-funding-need span { color:var(--muted); font-size:7px; font-weight:900; text-transform:uppercase; letter-spacing:.08em; }.project-funding-need strong { margin-top:5px; color:var(--green); font-size:13px; }.project-funding-need small { margin-top:3px; color:var(--muted); font-size:8px; }.project-funding-need .progress-track { margin-top:9px; }.project-current-stage { margin:12px 0 10px; padding:12px; border:1px solid #d8e6de; border-left:4px solid var(--blue); border-radius:12px; background:#f6faf8; }.project-current-stage span,.project-current-stage strong,.project-current-stage small { display:block; }.project-current-stage span { color:var(--muted); font-size:7px; font-weight:900; text-transform:uppercase; letter-spacing:.08em; }.project-current-stage strong { margin-top:5px; font-size:12px; }.project-current-stage small { margin-top:4px; color:var(--muted); font-size:8px; }.project-current-stage.done { border-left-color:var(--green); }.project-current-stage.approval { border-left-color:var(--purple); }.project-current-stage.risk { border-left-color:var(--red); background:#fff8f7; }.stage-section { border-top-color:#d9e7df; }.project-stage-flow { display:grid; gap:8px; }.project-stage { position:relative; display:grid; grid-template-columns:28px 1fr; gap:9px; padding:10px; border:1px solid var(--line); border-radius:11px; background:#fbfcfb; }.project-stage.current { border-color:#bdd8c8; box-shadow:0 5px 14px rgba(40,117,90,.08); }.project-stage.risk { border-color:#f0cbc7; background:#fff8f7; }.project-stage > span { display:grid; place-items:center; width:28px; height:28px; border-radius:50%; color:#69766f; background:#edf1ef; font-size:9px; font-weight:900; }.project-stage.done > span { color:white; background:var(--green); }.project-stage.active > span { color:white; background:var(--blue); }.project-stage.approval > span { color:white; background:var(--purple); }.project-stage.risk > span { color:white; background:var(--red); }.project-stage strong,.project-stage small,.project-stage em { display:block; }.project-stage strong { font-size:9px; }.project-stage small { margin-top:3px; color:var(--muted); font-size:7px; }.project-stage em { margin-top:6px; color:#46544c; font-size:8px; line-height:1.45; font-style:normal; }
.project-stage-gantt { overflow-x:auto; padding-bottom:2px; }.project-gantt-scale { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:8px; margin-bottom:9px; color:var(--muted); font-size:7px; font-weight:800; }.project-gantt-scale strong { color:#5a6860; font-size:7px; text-transform:uppercase; letter-spacing:.08em; }.project-gantt-scale span:last-child { text-align:right; }.project-gantt-body { position:relative; display:grid; gap:8px; min-width:520px; padding-top:17px; }.project-gantt-body:before { content:""; position:absolute; left:160px; right:0; top:17px; bottom:0; border-radius:10px; background:repeating-linear-gradient(to right,#f3f6f4 0,#f3f6f4 calc(20% - 1px),#e1e8e4 20%); pointer-events:none; }.project-today-marker { position:absolute; top:12px; bottom:0; width:0; border-left:2px dashed var(--orange); z-index:3; transform:translateX(160px); }.project-today-marker b { position:absolute; top:-14px; left:-21px; padding:2px 5px; border-radius:6px; color:white; background:var(--orange); font-size:6px; font-style:normal; white-space:nowrap; }.project-gantt-row { position:relative; display:grid; grid-template-columns:150px minmax(260px,1fr); gap:10px; align-items:center; min-height:42px; z-index:2; }.project-gantt-label { display:grid; grid-template-columns:24px 1fr; gap:7px; align-items:center; min-width:0; }.project-gantt-label > span { display:grid; place-items:center; width:24px; height:24px; border-radius:50%; color:#69766f; background:#edf1ef; font-size:8px; font-weight:900; }.project-gantt-row.done .project-gantt-label > span { color:white; background:var(--green); }.project-gantt-row.active .project-gantt-label > span { color:white; background:var(--blue); }.project-gantt-row.approval .project-gantt-label > span { color:white; background:var(--purple); }.project-gantt-row.risk .project-gantt-label > span { color:white; background:var(--red); }.project-gantt-label strong,.project-gantt-label small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.project-gantt-label strong { font-size:8px; }.project-gantt-label small { margin-top:2px; color:var(--muted); font-size:6px; }.project-gantt-track { position:relative; height:24px; border-radius:8px; background:rgba(255,255,255,.58); }.project-track-today { position:absolute; top:-4px; bottom:-4px; width:0; border-left:2px dashed var(--orange); z-index:4; }.project-gantt-bar { position:absolute; top:3px; bottom:3px; min-width:34px; display:flex; align-items:center; justify-content:center; overflow:hidden; border-radius:999px; color:white; background:#aab5af; box-shadow:0 3px 8px rgba(24,33,29,.08); }.project-gantt-bar.done { background:var(--green); }.project-gantt-bar.active { background:var(--blue); }.project-gantt-bar.approval { background:var(--purple); }.project-gantt-bar.risk { background:var(--red); }.project-gantt-bar.planned { background:#9aa7a0; }.project-gantt-row.current .project-gantt-bar { outline:3px solid rgba(40,117,90,.14); }.project-gantt-bar b { padding:0 7px; font-size:6px; font-style:normal; white-space:nowrap; text-shadow:0 1px 3px rgba(0,0,0,.15); }.project-gantt-row p { grid-column:2; height:auto; margin:-5px 0 2px; color:#56635b; font-size:7px; line-height:1.35; }.project-gantt-legend-small { display:flex; flex-wrap:wrap; gap:8px; margin-top:9px; color:var(--muted); font-size:7px; font-weight:800; }.project-gantt-legend-small span { display:flex; align-items:center; gap:4px; }.project-gantt-legend-small i { width:10px; height:6px; border-radius:999px; background:#9aa7a0; }.project-gantt-legend-small i.done { background:var(--green); }.project-gantt-legend-small i.active { background:var(--blue); }.project-gantt-legend-small i.approval { background:var(--purple); }.project-gantt-legend-small i.risk { background:var(--red); }
.project-scope-switch { display:flex; gap:5px; padding:4px; border:1px solid var(--line); border-radius:12px; background:white; }.project-scope-button { min-height:30px; border:0; border-radius:8px; padding:0 10px; color:var(--muted); background:transparent; font-size:9px; font-weight:900; }.project-scope-button.active { color:var(--green); background:var(--green-soft); }.completed-projects-board { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:16px; align-items:center; margin-bottom:16px; padding:17px; border:1px solid #d6e7dc; border-radius:15px; background:linear-gradient(135deg,#ffffff,#f2faf5); box-shadow:0 4px 18px rgba(24,33,29,.025); }.completed-projects-board h3 { margin:4px 0 5px; font-size:15px; }.completed-projects-board p { margin:0; color:var(--muted); font-size:10px; line-height:1.6; }.completed-projects-stats { display:grid; grid-template-columns:repeat(3,minmax(110px,1fr)); gap:8px; }.completed-projects-stats span { padding:11px; border:1px solid #dcebe3; border-radius:11px; background:white; }.completed-projects-stats strong,.completed-projects-stats small { display:block; }.completed-projects-stats strong { color:var(--green); font-size:12px; }.completed-projects-stats small { margin-top:3px; color:var(--muted); font-size:7px; }.completed-card { border-color:#cfe7d8 !important; box-shadow:0 8px 24px rgba(40,117,90,.07); }.completed-summary { background:#f1faf5; }.manager-actions { display:flex; flex-wrap:wrap; gap:5px; margin-top:9px; }.modal-actions .manager-actions { margin-top:0; margin-right:auto; }.manager-actions .mini-button { border:1px solid #dfe7e2; background:white; }.manager-actions .mini-button:hover { border-color:#bcd7c8; }.danger-mini { color:var(--red); background:var(--red-soft) !important; }.danger-mini:hover { color:white !important; background:var(--red) !important; }.archived-card { opacity:.72; filter:saturate(.65); border-style:dashed !important; background:#f8faf8 !important; }.archived-card:hover { opacity:.95; }
.empty-state { padding: 45px 20px; text-align: center; color: var(--muted); }.empty-state strong { display: block; color: var(--ink); margin-bottom: 6px; }.hidden { display: none !important; }
.modal-backdrop { position: fixed; inset: 0; display: grid; place-items: center; padding: 20px; background: rgba(11,20,16,.58); backdrop-filter: blur(4px); z-index: 50; }.modal { width: min(535px,100%); max-height: 90vh; overflow-y: auto; padding: 22px; border-radius: 17px; background: white; box-shadow: 0 20px 70px rgba(9,19,14,.25); }.modal-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 18px; }.modal h2 { margin: 5px 0 0; font-size: 19px; }.close-button { width: 30px; height: 30px; border: 0; border-radius: 8px; background: var(--paper); color: var(--muted); font-size: 19px; }.modal label { display: grid; gap: 6px; margin-bottom: 13px; color: #526057; font-size: 9px; font-weight: 700; }.modal input,.modal select,.modal textarea { width: 100%; border: 1px solid var(--line); border-radius: 9px; outline: none; padding: 10px 11px; background: white; color: var(--ink); font-size: 11px; resize: vertical; }.modal input:focus,.modal select:focus,.modal textarea:focus { border-color: #7ead96; box-shadow: 0 0 0 3px rgba(40,117,90,.08); }.form-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 0 12px; }.modal-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 6px; }
.toast { position: fixed; right: 24px; bottom: 24px; z-index: 70; transform: translateY(90px); opacity: 0; background: #18211d; color: white; padding: 12px 16px; border-radius: 10px; font-size: 10px; font-weight: 700; box-shadow: var(--shadow); transition: .25s ease; }.toast.show { transform: translateY(0); opacity: 1; }
@media (max-width: 1100px) { .stats-grid { grid-template-columns: repeat(2,1fr); }.dashboard-grid,.report-hero { grid-template-columns: 1fr; }.project-cards,.team-grid,.fund-hero { grid-template-columns: repeat(2,1fr); }.project-cards.project-cards-detailed { grid-template-columns:1fr; }.donor-directory-grid { grid-template-columns:repeat(2,1fr); }.search { width: 180px; }.calendar-shell { grid-template-columns: 1fr; } }
@media (max-width: 760px) { .app-shell { display: block; }.sidebar { position: static; width: 100%; height: auto; padding: 13px; }.brand,.workspace-switcher,.sidebar-bottom { display:none; }.nav { display:flex; overflow-x:auto; }.nav-item { min-width:max-content; }.main { width:100%; }.topbar { height:auto; align-items:flex-start; padding:16px; }.top-actions { flex-wrap:wrap; justify-content:flex-end; }.search { order:3; width:100%; }.content { padding:18px 14px 35px; }.view-toolbar { align-items:flex-start; flex-wrap:wrap; }.view-toolbar .toolbar-actions { width:100%; justify-content:space-between; }.stats-grid,.project-cards,.team-grid,.report-grid { grid-template-columns:1fr; }.fund-hero { grid-template-columns:repeat(2,1fr); }.form-grid { grid-template-columns:1fr; }.calendar-grid { min-width:650px; }.calendar-card { overflow-x:auto; }.gantt-legend { align-items:flex-start; flex-direction:column; }.gantt-legend > div:last-child { flex-wrap:wrap; } }
@media (max-width: 470px) { .fund-hero { grid-template-columns:1fr; }.view-toolbar .toolbar-actions { flex-wrap:wrap; } }
@media (max-width: 1100px) { .strategy-grid { grid-template-columns:repeat(2,1fr); }.access-table { overflow-x:auto; }.access-table-head,.access-row { min-width:760px; }.persona-switch span { display:none; }.search { width:170px; } }
@media (max-width: 760px) { .executive-banner,.strategy-overview { grid-template-columns:1fr; }.executive-score { width:82px; height:82px; }.strategy-grid { grid-template-columns:1fr; }.access-banner { grid-template-columns:38px 1fr; }.access-banner .ghost-button { grid-column:1 / -1; }.access-stats { grid-template-columns:repeat(3,1fr); }.persona-switch,.language-switch { order:2; }.persona-switch span,.language-switch span { display:none; }.search { order:3; }.top-actions { max-width:330px; }.president-metric { grid-template-columns:1fr 1fr 32px; } }
@media (max-width: 520px) { .export-options { grid-template-columns:1fr; }.private-download { width:100%; }.view-toolbar .toolbar-actions { flex-wrap:wrap; }.fund-project-filter { max-width:none; flex:1; } }
@media (max-width: 1050px) { .personal-calendar-panel { grid-template-columns:42px 1fr auto; }.personal-calendar-main { grid-column:1 / 3; }.calendar-member-picker { grid-column:1 / 3; }.calendar-sync-actions { grid-column:1 / -1; justify-content:flex-end; }.calendar-status-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width: 560px) { .personal-calendar-panel { grid-template-columns:1fr; }.personal-calendar-main,.calendar-member-picker,.personal-calendar-panel > .chip,.calendar-sync-actions { grid-column:1; }.personal-calendar-panel > .chip { justify-self:start; }.calendar-sync-actions { flex-direction:column; }.calendar-status-grid { grid-template-columns:1fr; } }
@media (max-width: 560px) { .project-overview-line { grid-template-columns:1fr 1fr; }.project-overview-line > div:last-child { grid-column:1 / -1; }.project-task-row { grid-template-columns:1fr; }.project-task-tags { justify-content:flex-start; }.project-renewal { align-items:flex-start; flex-direction:column; gap:3px; }.donor-directory-grid { grid-template-columns:1fr; }.donor-directory-head { flex-direction:column; gap:6px; }.donor-directory-head strong { white-space:normal; } }
@media (max-width: 760px) { .task-detail-grid { grid-template-columns:1fr 1fr; }.task-detail-hero p,.task-process-list span { font-size:11px; }.task-process-panel { padding:12px; } }
@media (max-width: 420px) { .task-detail-grid { grid-template-columns:1fr; } }
@media (max-width: 1100px) { .project-process-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width: 560px) { .project-process-grid { grid-template-columns:1fr; }.project-process-board { padding:12px; }.project-current-stage strong { font-size:11px; }.project-stage { grid-template-columns:24px 1fr; padding:9px; }.project-stage > span { width:24px; height:24px; font-size:8px; } }
@media (max-width: 760px) { .project-scope-switch { width:100%; overflow-x:auto; }.project-scope-button { flex:1; min-width:max-content; }.completed-projects-board { grid-template-columns:1fr; padding:14px; }.completed-projects-stats { grid-template-columns:1fr; } }

/* Tablet layout: full-width workspace with a compact horizontal menu. */
@media (min-width: 761px) and (max-width: 900px) {
  .app-shell { display:block; }
  .sidebar { position:static; width:100%; height:auto; padding:12px 18px; }
  .sidebar .brand { display:flex; padding:0 4px 10px; }
  .workspace-switcher,.sidebar-bottom { display:none; }
  .nav { display:flex; gap:5px; overflow-x:auto; padding-bottom:2px; scrollbar-width:none; }
  .nav::-webkit-scrollbar { display:none; }
  .nav-item { width:auto; min-width:max-content; min-height:42px; padding:9px 12px; }
  .nav-item b { margin-left:5px; }
  .main { width:100%; grid-column:auto; }
  .topbar { height:auto; min-height:82px; padding:15px 22px; }
  .content { padding:22px 22px 45px; }
  .stats-grid,.strategy-grid { grid-template-columns:repeat(2,1fr); }
  .project-cards,.team-grid { grid-template-columns:repeat(2,1fr); }
  .dashboard-grid,.report-hero,.calendar-shell { grid-template-columns:1fr; }
  .kanban { grid-template-columns:repeat(5,minmax(230px,1fr)); scroll-snap-type:x proximity; }
  .kanban-col { scroll-snap-align:start; }
  .modal { width:min(650px,calc(100% - 40px)); }
}

/* Phone layout: touch-sized controls, bottom navigation and swipeable boards. */
@media (max-width: 760px) {
  html { -webkit-text-size-adjust:100%; }
  body { overflow-x:hidden; padding-bottom:70px; }
  button,select,input,textarea { touch-action:manipulation; }
  .app-shell { display:block; min-height:100vh; }
  .sidebar { position:fixed; inset:auto 0 0 0; width:100%; height:70px; padding:7px 8px max(7px,env(safe-area-inset-bottom)); z-index:40; border-top:1px solid rgba(255,255,255,.12); box-shadow:0 -8px 24px rgba(7,17,12,.16); }
  .brand,.workspace-switcher,.sidebar-bottom { display:none; }
  .nav { display:flex; gap:4px; overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x proximity; scrollbar-width:none; }
  .nav::-webkit-scrollbar { display:none; }
  .nav-item { width:auto; min-width:76px; min-height:54px; flex-direction:column; justify-content:center; gap:2px; padding:5px 7px; scroll-snap-align:start; font-size:9px; text-align:center; }
  .nav-item span { width:auto; font-size:17px; }
  .nav-item b { position:absolute; margin:0 0 22px 31px; min-width:17px; height:16px; padding:0 4px; font-size:7px; }
  .main { width:100%; grid-column:auto; }
  .topbar { position:sticky; top:0; display:grid; grid-template-columns:1fr; height:auto; min-height:0; gap:10px; padding:12px 14px; }
  .topbar h1 { font-size:19px; line-height:1.15; }
  .top-actions { width:100%; max-width:none; display:grid; grid-template-columns:auto auto 38px minmax(120px,1fr); gap:8px; }
  .persona-switch { order:0; min-width:108px; }
  .persona-switch span { display:none; }
  .persona-switch select { max-width:100%; }
  .icon-button { grid-column:3; }
  #openTaskModal { grid-column:4; width:100%; padding:0 10px; }
  .search { order:0; grid-column:1 / -1; grid-row:2; width:100%; height:42px; }
  .content { padding:16px 12px 30px; }
  .view-toolbar { align-items:flex-start; flex-wrap:wrap; margin-bottom:14px; }
  .view-toolbar > button,.view-toolbar .toolbar-actions { width:100%; }
  .view-toolbar .toolbar-actions { display:grid; grid-template-columns:1fr; }
  .primary-button,.danger-button,.ghost-button { min-height:42px; }
  .stats-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
  .stat-card { min-height:112px; padding:14px; }
  .stat-value { font-size:23px; }
  .stat-label,.stat-note { font-size:9px; }
  .dashboard-grid,.report-hero,.project-cards,.team-grid,.report-grid,.strategy-grid,.calendar-shell { grid-template-columns:1fr; }
  .panel-header { align-items:flex-start; gap:10px; }
  .risk-row { grid-template-columns:7px minmax(0,1fr); }
  .risk-meta { grid-column:2; text-align:left; }
  .kanban { grid-template-columns:none; grid-auto-flow:column; grid-auto-columns:minmax(84vw,1fr); gap:10px; overflow-x:auto; scroll-snap-type:x mandatory; }
  .kanban-col { min-height:430px; scroll-snap-align:center; }
  .filters { flex-wrap:nowrap; overflow-x:auto; padding-bottom:4px; scrollbar-width:none; }
  .filter-button { min-width:max-content; height:38px; }
  .task-card h4,.project-card h3,.member-card h3 { font-size:12px; }
  .task-project,.task-date,.task-assignment-line small { font-size:9px; }
  .mini-button,.google-task-button,.assign-task-button { min-height:36px; font-size:9px; }
  .fund-hero { grid-template-columns:1fr; }
  .fund-project-filter { width:100%; max-width:none; }
  .gantt-scroll,.access-table,.calendar-card { overflow-x:auto; -webkit-overflow-scrolling:touch; }
  .calendar-grid { min-width:620px; }
  .agenda { order:-1; }
  .personal-calendar-panel { padding:13px; }
  .personal-calendar-main { align-items:flex-start; }
  .calendar-sync-actions button { width:100%; }
  .access-stats { grid-template-columns:1fr; }
  .executive-banner,.strategy-overview { padding:18px; }
  .executive-banner h2,.strategy-overview h2 { font-size:19px; }
  .president-metric { grid-template-columns:1fr; gap:6px; }
  .president-metric b { text-align:left; }
  .modal-backdrop { align-items:stretch; padding:0; }
  .modal { width:100%; max-height:100dvh; min-height:100dvh; padding:18px 15px calc(22px + env(safe-area-inset-bottom)); border-radius:0; }
  .modal-header { position:sticky; top:-18px; z-index:2; padding:18px 0 10px; margin-top:-18px; background:white; }
  .form-grid { grid-template-columns:1fr; }
  .modal input,.modal select,.modal textarea { min-height:44px; font-size:16px; }
  .modal-actions { position:static; padding:10px 0 0; background:white; }
  .modal-actions button { flex:1; }
  .toast { left:12px; right:12px; bottom:82px; text-align:center; }
}

@media (max-width: 390px) {
  .stats-grid { grid-template-columns:1fr; }
  .top-actions { grid-template-columns:1fr 1fr 38px; }
  #openTaskModal { grid-column:1 / -1; grid-row:3; }
  .search { grid-row:2; }
  .nav-item { min-width:70px; }
}

.strategy-year-roadmap { margin-bottom:20px; border-color:#d7e6de; }
.strategy-year-grid { display:grid; grid-template-columns:1.25fr repeat(4,1fr); gap:10px; padding:0 16px 16px; }
.strategy-year-card { min-width:0; padding:13px; border:1px solid #dfe8e3; border-radius:13px; background:#fbfdfc; }
.strategy-year-card.current-year { border-color:#c9dcbf; background:linear-gradient(135deg,#f6fbf7,#fffaf2); box-shadow:0 8px 24px rgba(40,117,90,.05); }
.strategy-year-head { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:8px; }
.strategy-year-head span { display:grid; place-items:center; min-width:42px; height:28px; padding:0 8px; border-radius:9px; color:white; background:#20362d; font-size:10px; font-weight:900; }
.strategy-year-head b { color:var(--green); font-size:8px; }
.strategy-year-card h4 { margin:0 0 10px; font-size:10px; line-height:1.35; }
.year-task-list { display:grid; gap:7px; }
.year-task-list > div { padding:8px; border:1px solid #e4ece8; border-radius:9px; background:white; }
.year-task-list strong,.year-task-list small { display:block; }
.year-task-list strong { font-size:8px; line-height:1.35; }
.year-task-list small { margin-top:4px; color:var(--muted); font-size:7px; line-height:1.35; }
.year-task-list em { padding:7px 8px; border-radius:9px; color:#6b5843; background:#fff3e6; font-size:7px; font-style:normal; font-weight:800; }
.strategy-year-summary { display:grid; grid-template-columns:repeat(3,1fr); gap:5px; margin-bottom:9px; }
.strategy-year-summary span { min-width:0; padding:7px 5px; border-radius:8px; background:white; border:1px solid #e4ece8; }
.strategy-year-summary strong,.strategy-year-summary small { display:block; text-align:center; }
.strategy-year-summary strong { color:var(--green); font-size:12px; }
.strategy-year-summary small { margin-top:2px; color:var(--muted); font-size:6px; line-height:1.25; }
.year-kpi-card.overdue,.year-kpi-card.late { border-color:#efc9c5; background:#fff8f7; }
.year-kpi-card.due-soon,.year-kpi-card.missing-date { border-color:#efd1b7; background:#fffaf4; }
.year-kpi-title { display:grid; grid-template-columns:1fr auto; gap:6px; align-items:start; }
.year-kpi-title strong { min-width:0; }
.year-kpi-title .chip { max-width:82px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:6px; }
.year-pillar-line { margin-bottom:6px; }
.year-kpi-box { padding:7px; border:1px solid #e5eee9; border-radius:8px; background:#f9fcfa; }
.year-kpi-box span,.year-indicator-grid span { display:block; color:var(--green); font-size:6px; font-weight:900; text-transform:uppercase; letter-spacing:.06em; }
.year-kpi-box strong { margin-top:3px; color:#34433b; font-size:7px; line-height:1.35; }
.year-indicator-grid { display:grid; grid-template-columns:1fr 1fr; gap:5px; margin-top:6px; }
.year-indicator-grid-3 { grid-template-columns:1fr 1fr 1fr; }
.year-indicator-grid div { min-width:0; padding:6px; border-radius:8px; background:#f4f7f5; }
.year-indicator-grid strong { margin-top:3px; overflow:hidden; color:#2b3933; font-size:7px; text-overflow:ellipsis; white-space:nowrap; }
.year-progress-row { display:grid; grid-template-columns:1fr 32px; gap:7px; align-items:center; margin-top:7px; }
.year-progress-row .progress-track { margin:0; }
.year-progress-row b { color:var(--ink); font-size:8px; text-align:right; }
.year-slowdown-line { display:grid; gap:4px; margin-top:7px; }
.year-slowdown-line .chip { justify-self:start; font-size:6px; }
.year-slowdown-line small { overflow:hidden; color:#7b5a35; font-weight:800; text-overflow:ellipsis; white-space:nowrap; }
.strategic-number-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:6px; }
.strategic-number-grid div { min-width:0; padding:8px; border:1px solid #e2ebe6; border-radius:9px; background:#f7faf8; }
.strategic-number-grid span,.strategic-number-grid strong { display:block; }
.strategic-number-grid span { color:var(--green); font-size:6px; font-weight:900; text-transform:uppercase; letter-spacing:.06em; }
.strategic-number-grid strong { margin-top:3px; overflow:hidden; color:var(--ink); font-size:8px; text-overflow:ellipsis; white-space:nowrap; }
.strategic-gantt-panel { margin-bottom:22px; overflow:hidden; }
.strategic-gantt-years { display:grid; grid-template-columns:repeat(5,1fr); margin-left:308px; margin-right:210px; border-top:1px solid var(--line); border-left:1px solid var(--line); background:#f7faf8; }
.strategic-gantt-years span { padding:9px 0; border-right:1px solid var(--line); color:var(--muted); font-size:8px; font-weight:900; text-align:center; }
.strategic-gantt-scroll { overflow:auto; border-top:1px solid var(--line); }
.strategic-gantt-chart { min-width:1040px; }
.strategic-gantt-groups { display:grid; gap:10px; padding:13px; background:#f7faf8; }
.strategic-gantt-group { border:1px solid #dce7e1; border-radius:13px; background:white; overflow:hidden; box-shadow:0 4px 14px rgba(24,33,29,.025); }
.strategic-gantt-group summary { display:grid; grid-template-columns:28px 270px minmax(430px,1fr) 170px; gap:10px; align-items:center; min-height:70px; padding:10px 12px; cursor:pointer; list-style:none; }
.strategic-gantt-group summary::-webkit-details-marker { display:none; }
.gantt-toggle-arrow { display:grid; place-items:center; width:24px; height:24px; border-radius:50%; color:var(--green); background:var(--green-soft); font-size:15px; font-weight:900; transition:.18s ease; }
.strategic-gantt-group[open] .gantt-toggle-arrow { transform:rotate(90deg); }
.gantt-group-title { display:grid; gap:4px; min-width:0; }
.gantt-group-title strong,.gantt-group-title small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.gantt-group-title strong { font-size:10px; }
.gantt-group-title small { color:var(--muted); font-size:7px; font-weight:800; }
.gantt-group-track { position:relative; height:34px; border-radius:11px; background:repeating-linear-gradient(to right,#f5f8f6 0,#f5f8f6 calc(20% - 1px),#e3eae6 20%); }
.gantt-group-track .strategic-gantt-bar { top:9px; }
.gantt-group-result { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.gantt-group-result strong { font-size:15px; }
.gantt-group-slowdown { display:grid; grid-template-columns:auto minmax(0,1fr); gap:7px; padding:8px 14px; border-top:1px solid #edf2ef; color:#4a5a52; background:#fbfdfc; font-size:8px; }
.gantt-group-slowdown strong { color:var(--orange); }
.gantt-group-slowdown span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.strategic-gantt-task-list { display:grid; border-top:1px solid var(--line); }
.strategic-gantt-task-row { display:grid; grid-template-columns:300px minmax(430px,1fr) 210px; min-height:58px; border-bottom:1px solid var(--line); background:white; }
.strategic-gantt-task-row:last-child { border-bottom:0; }
.strategic-gantt-row { display:grid; grid-template-columns:280px minmax(560px,1fr) 132px; min-height:52px; border-bottom:1px solid var(--line); background:white; }
.strategic-gantt-row:hover { background:#fbfdfc; }
.strategic-gantt-label { display:grid; align-content:center; gap:3px; padding:9px 12px; border-right:1px solid var(--line); }
.strategic-gantt-label strong,.strategic-gantt-label small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.strategic-gantt-label strong { font-size:8px; }
.strategic-gantt-label small { color:var(--muted); font-size:7px; }
.strategic-gantt-track { position:relative; margin:10px 0; border-radius:10px; background:repeating-linear-gradient(to right,#f5f8f6 0,#f5f8f6 calc(20% - 1px),#e3eae6 20%); }
.strategic-gantt-bar { position:absolute; top:9px; height:16px; min-width:18px; display:flex; align-items:center; justify-content:flex-end; border-radius:999px; color:white; background:#9aa7a0; box-shadow:0 3px 8px rgba(24,33,29,.1); }
.strategic-gantt-bar b { padding:0 6px; font-size:6px; line-height:16px; white-space:nowrap; }
.strategic-gantt-bar.done { background:var(--green); }
.strategic-gantt-bar.active { background:var(--blue); }
.strategic-gantt-bar.risk { background:var(--orange); }
.strategic-gantt-bar.offtrack { background:var(--red); }
.strategic-gantt-bar.planned { background:#9aa7a0; }
.strategic-gantt-due { display:grid; align-content:center; gap:4px; padding:8px 10px; border-left:1px solid var(--line); }
.strategic-gantt-due strong { font-size:8px; }
.strategic-gantt-due .chip { justify-self:start; font-size:6px; }
.strategic-gantt-slowdown { display:grid; align-content:center; gap:3px; padding:8px 10px; border-left:1px solid var(--line); }
.strategic-gantt-slowdown strong,.strategic-gantt-slowdown span,.strategic-gantt-slowdown small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.strategic-gantt-slowdown strong { color:var(--orange); font-size:8px; }
.strategic-gantt-slowdown span { color:#3d4d45; font-size:7px; font-weight:800; }
.strategic-gantt-slowdown small { color:var(--muted); font-size:6px; }
.strategic-objective-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; padding:0 16px 16px; }
.strategic-objective-card { min-width:0; display:grid; align-content:start; gap:9px; padding:14px; border:1px solid #dfe8e3; border-radius:14px; background:white; box-shadow:0 4px 16px rgba(24,33,29,.025); }
.strategic-objective-card.soon { border-color:#efd1b7; background:#fffaf4; }
.strategic-objective-card.overdue { border-color:#efc6c0; background:#fff8f7; }
.strategic-objective-card.compact { padding:12px; }
.strategic-objective-head { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.strategic-objective-head > span { display:grid; place-items:center; min-width:30px; height:26px; padding:0 7px; border-radius:9px; color:white; background:#20362d; font-size:8px; font-weight:900; }
.strategic-objective-card h4 { min-height:42px; margin:0; font-size:10px; line-height:1.45; }
.strategic-objective-card > p { min-height:28px; margin:0; color:var(--muted); font-size:7px; line-height:1.45; }
.strategic-tag-list { display:flex; flex-wrap:wrap; gap:5px; min-height:20px; }
.strategic-tag-chip { display:inline-flex; align-items:center; min-height:19px; padding:3px 7px; border:1px solid #d8e6de; border-radius:999px; color:#2b6b54; background:#f0f8f4; font-size:7px; font-weight:900; }
.strategic-objective-meta { display:grid; grid-template-columns:1fr 1fr; gap:6px; }
.strategic-objective-meta span { padding:7px; border-radius:8px; color:var(--muted); background:#f4f7f5; font-size:7px; }
.strategic-objective-meta strong { color:var(--ink); }
.strategic-description-box,.strategic-kpi-box,.strategic-result-box,.strategic-next-step,.strategic-timing-box { padding:9px; border:1px solid #e3ece7; border-radius:10px; background:#fbfdfc; }
.strategic-description-box span,.strategic-kpi-box span,.strategic-result-box span,.strategic-next-step span,.strategic-timing-box > span { display:block; margin-bottom:4px; color:var(--green); font-size:7px; font-weight:900; text-transform:uppercase; letter-spacing:.06em; }
.strategic-description-box p,.strategic-kpi-box strong,.strategic-kpi-box small,.strategic-result-box p,.strategic-next-step p { display:block; margin:0; font-size:8px; line-height:1.45; }
.strategic-kpi-box small { margin-top:4px; color:var(--muted); }
.strategic-description-box p,.strategic-result-box p,.strategic-next-step p { color:#48574f; }
.strategic-timing-box { display:grid; grid-template-columns:1fr 1fr; gap:7px; background:#f8fbf9; }
.strategic-timing-box > span,.strategic-timing-box em { grid-column:1 / -1; }
.strategic-timing-box div { min-width:0; padding:7px; border-radius:8px; background:white; }
.strategic-timing-box strong,.strategic-timing-box b { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.strategic-timing-box strong { color:var(--muted); font-size:7px; text-transform:uppercase; letter-spacing:.04em; }
.strategic-timing-box b { margin-top:3px; color:var(--ink); font-size:8px; }
.strategic-timing-box em { justify-self:start; font-style:normal; }
.strategic-timing-box.overdue,.strategic-timing-box.late { border-color:#efc9c5; background:#fff8f7; }
.strategic-timing-box.on-time { border-color:#cfe5d8; background:#f4fbf7; }
.strategy-card-progress { display:flex; align-items:center; justify-content:space-between; gap:10px; color:var(--muted); font-size:7px; font-weight:800; }
.strategy-card-progress strong { color:var(--ink); font-size:12px; }
.strategic-card-actions { display:flex; justify-content:flex-end; margin-top:2px; }
.strategic-card-actions .readonly-badge { padding:6px 8px; font-size:7px; }
.strategy-tag-panel { margin-bottom:18px; border-color:#dce9e2; }
.strategy-tag-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; padding:16px; }
.strategy-tag-group { min-width:0; padding:13px; border:1px solid #dfe9e4; border-radius:12px; background:#fbfdfc; }
.strategy-tag-head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:10px; }
.strategy-tag-head strong { color:var(--green); font-size:11px; }
.strategy-tag-head span { color:var(--muted); font-size:8px; font-weight:800; }
.strategy-tag-items { display:grid; gap:7px; }
.strategy-tag-items div { padding:8px; border-radius:9px; background:white; border:1px solid #e5ece8; }
.strategy-tag-items b,.strategy-tag-items small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.strategy-tag-items b { font-size:8px; }
.strategy-tag-items small { margin-top:3px; color:var(--muted); font-size:7px; }
.strategy-tag-group em { display:block; margin-top:8px; color:var(--muted); font-size:8px; font-style:normal; font-weight:800; }
.strategy-result-modal { width:min(660px,100%); }
.project-status-stack { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:5px; }
.executive-additions-panel { margin-bottom:18px; border-color:#d8e5ee; }
.executive-additions-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; padding:0 16px 16px; }
.executive-additions-grid h4 { margin:0 0 10px; font-size:10px; }
.executive-addition-row { display:grid; grid-template-columns:32px 1fr; gap:9px; align-items:center; min-height:50px; margin-bottom:8px; padding:9px; border:1px solid #e1e9e5; border-radius:10px; background:#fbfdfc; }
.executive-addition-row > span:not(.project-symbol) { display:grid; place-items:center; width:27px; height:27px; border-radius:8px; color:white; background:var(--blue); font-size:9px; font-weight:900; }
.executive-addition-row.task-focus > span { background:var(--orange); }
.executive-addition-row strong,.executive-addition-row small { display:block; }
.executive-addition-row strong { font-size:9px; line-height:1.35; }
.executive-addition-row small { margin-top:3px; color:var(--muted); font-size:7px; line-height:1.4; }
@media (max-width:1100px){
  .strategy-year-grid { grid-template-columns:repeat(2,1fr); }
  .strategic-objective-grid { grid-template-columns:repeat(2,1fr); }
  .strategic-gantt-years { margin-left:278px; margin-right:190px; }
  .strategic-gantt-group summary { grid-template-columns:28px 240px minmax(380px,1fr) 160px; }
  .strategic-gantt-task-row { grid-template-columns:270px minmax(380px,1fr) 190px; }
}
@media (max-width:760px){
  .strategy-year-grid,.strategic-objective-grid { grid-template-columns:1fr; padding:0 12px 12px; }
  .strategic-gantt-years { min-width:820px; margin-left:258px; margin-right:180px; }
  .strategic-gantt-chart { min-width:980px; }
  .strategic-gantt-group summary { grid-template-columns:26px 220px minmax(360px,1fr) 150px; }
  .strategic-gantt-task-row { grid-template-columns:250px minmax(360px,1fr) 180px; }
  .strategic-objective-meta { grid-template-columns:1fr; }
  .strategic-number-grid,.year-indicator-grid-3 { grid-template-columns:1fr; }
  .executive-additions-grid { grid-template-columns:1fr; padding:0 12px 12px; }
}

/* M4FF visual identity refinement */
.text-button { color:var(--brand-red); }
.executive-banner,.management-summary { background:linear-gradient(120deg,var(--brand-black),#2b2522) !important; box-shadow:0 14px 35px rgba(15,14,12,.18); }
.executive-banner .eyebrow { color:#dccfc4; }
.executive-banner p { color:#e6dacf; }
.executive-score { background:rgba(237,48,56,.16); }
.executive-score span { color:#e6dacf; }
.management-mission { background:rgba(255,255,255,.075); }
.management-mission strong { color:var(--brand-red); }
.management-mission span { color:#eadfd5; }
.management-pillar-top > span,.strategy-year-head span,.strategic-objective-head > span { background:var(--brand-black); }
.management-table-head { background:#f3ebe2; }
.panel,.stat-card,.strategy-card,.project-card,.team-card,.report-card,.access-table,.gantt-shell { background:#fffdf9; }
.stat-icon { background:#fff0f0; color:var(--brand-red); }
.access-banner { border-color:#ead7d5; background:#fff6f3; }
.access-lock { color:var(--brand-red); background:#ffe8e8; }
.private-download span { background:rgba(255,255,255,.18); }

/* White background lock */
:root { --paper:#ffffff; --brand-cream:#ffffff; --brand-cream-strong:#ffffff; }
html,body,.app-shell,.main,.content { background:#ffffff !important; }
.auth-required,.auth-gate { background:#ffffff !important; }
.topbar { background:rgba(255,255,255,.97) !important; }
.sidebar,.panel,.stat-card,.strategy-card,.project-card,.team-card,.report-card,.calendar-card,.access-table,.gantt-shell,.modal,.auth-card { background:#ffffff !important; }
.workspace-switcher,.health-card,.kanban-col,.management-table-head,.gantt-header,.completed-projects-board { background:#ffffff !important; }
.project-scope-button.active { color:var(--brand-red); background:#ffe8e8; }
.strategy-year-head b,.strategy-year-summary strong,.year-kpi-box span,.year-indicator-grid span,.strategic-number-grid span,.strategic-description-box span,.strategic-kpi-box span,.strategic-result-box span,.strategic-next-step span,.strategic-timing-box > span,.strategy-tag-head strong { color:var(--brand-red); }
.gantt-toggle-arrow,.tracker-toggle-arrow { color:var(--brand-red); background:#ffe8e8; }

/* Closer to the public m4f.foundation website: white, black, red accent */
body { background:#ffffff; }
.auth-required { background:#ffffff; }
.auth-gate { background:radial-gradient(circle at 18% 16%,rgba(237,48,56,.09),transparent 26%),linear-gradient(180deg,#ffffff,#f8f8f8); }
.auth-card { border-color:#ececec; background:#ffffff; box-shadow:0 26px 80px rgba(0,0,0,.10); }
.auth-card h1 { color:#111111; }
.auth-card p,.auth-card small { color:#666666; }
.foundation-logo-auth { background:#ffffff; box-shadow:none; border:1px solid #eeeeee; }
.foundation-logo-sidebar { width:174px; padding:0; border-radius:0; background:transparent; }
.sidebar { background:#ffffff; color:#111111; border-right:1px solid #eeeeee; box-shadow:8px 0 30px rgba(0,0,0,.035); }
.workspace-switcher { border-color:#eeeeee; background:#fafafa; }
.workspace-switcher small,.chevron { color:#777777; }
.workspace-avatar { background:var(--brand-red); color:white; }
.nav-item { color:#1e1e1e; }
.nav-item b { color:#111111; background:#f1f1f1; }
.nav-item:hover,.nav-item.active { color:#111111; background:#fff0f1; }
.nav-item.active { box-shadow:inset 3px 0 var(--brand-red); }
.sidebar-bottom .health-card { background:#fafafa; border-color:#eeeeee; color:#111111; }
.health-title,.health-card small { color:#707070; }
.meter { background:#eeeeee; }
.profile-card { color:#111111; }
.profile-card small { color:#777777; }
.topbar { background:rgba(255,255,255,.94); border-bottom-color:#eeeeee; }
.eyebrow { color:#6f6f6f; }
.search,.persona-switch,.language-switch,.icon-button { border-color:#eeeeee; background:#ffffff; color:#666666; }
.ghost-button { background:#ffffff; border-color:#e9e9e9; }
.panel,.stat-card,.strategy-card,.project-card,.team-card,.report-card,.access-table,.gantt-shell { background:#ffffff; border-color:#eeeeee; }
.panel-header { border-bottom-color:#eeeeee; }
.content { background:#ffffff; }
.management-table-head,.gantt-header { background:#f7f7f7; }
.completed-projects-board { background:linear-gradient(135deg,#ffffff,#fafafa); border-color:#eeeeee; }
.project-funding-need,.project-current-stage,.strategic-description-box,.strategic-kpi-box,.strategic-result-box,.strategic-next-step,.strategic-timing-box { background:#ffffff; border-color:#eeeeee; }

/* M4FF final palette: blue + turquoise, with red kept minimal for logo/danger only */
:root {
  --brand-blue:#155c9b;
  --brand-blue-dark:#0d426f;
  --brand-blue-soft:#eaf4fb;
  --brand-turquoise:#12b7c8;
  --brand-turquoise-dark:#078999;
  --brand-turquoise-soft:#e8fbfd;
  --green:#12a991;
  --green-soft:#e8fbf8;
  --blue:#155c9b;
  --blue-soft:#eaf4fb;
  --line:#e2edf3;
  --muted:#657783;
  --shadow:0 12px 38px rgba(21,92,155,.08);
}
.auth-gate { background:
  radial-gradient(circle at 16% 14%,rgba(18,183,200,.18),transparent 28%),
  radial-gradient(circle at 84% 12%,rgba(21,92,155,.13),transparent 24%),
  linear-gradient(180deg,#ffffff,#f5fbfd); }
.auth-card { border-color:#dbeef5; box-shadow:0 26px 80px rgba(21,92,155,.12); }
.google-button { border-color:#d7eaf2; }
.sidebar { border-right-color:#dceaf1; box-shadow:8px 0 30px rgba(21,92,155,.045); }
.workspace-switcher { border-color:#dceaf1; background:#f5fbfd; }
.workspace-avatar { background:linear-gradient(135deg,var(--brand-blue),var(--brand-turquoise)); color:white; }
.nav-item { color:#173b56; }
.nav-item b { color:var(--brand-blue); background:#edf7fb; }
.nav-item:hover,.nav-item.active { color:var(--brand-blue); background:var(--brand-turquoise-soft); }
.nav-item.active { box-shadow:inset 3px 0 var(--brand-turquoise); }
.live-dot { background:var(--brand-turquoise); box-shadow:0 0 0 4px rgba(18,183,200,.14); }
.meter i { background:linear-gradient(90deg,var(--brand-blue),var(--brand-turquoise)); }
.topbar { background:rgba(255,255,255,.96); border-bottom-color:#e2edf3; }
.eyebrow,.search,.persona-switch,.language-switch,.icon-button { color:#657783; }
.primary-button { background:var(--brand-blue); box-shadow:0 5px 14px rgba(21,92,155,.18); }
.primary-button:hover { background:var(--brand-blue-dark); }
.text-button { color:var(--brand-blue); }
.icon-button i { background:var(--brand-turquoise); }
.stat-icon { background:var(--brand-turquoise-soft); color:var(--brand-blue); }
.stat-card:nth-child(2) .stat-icon { background:var(--brand-blue-soft); color:var(--brand-blue); }
.stat-card:nth-child(3) .stat-icon { background:var(--brand-turquoise-soft); color:var(--brand-turquoise-dark); }
.stat-card:nth-child(4) .stat-icon { background:#eef5ff; color:#3c6fa8; }
.executive-banner,.management-summary { background:linear-gradient(120deg,var(--brand-blue),var(--brand-turquoise-dark)) !important; box-shadow:0 14px 35px rgba(21,92,155,.18); }
.executive-banner .eyebrow { color:#d8f8fb; }
.executive-banner p,.executive-score span { color:#e9fcfd; }
.executive-score { background:rgba(255,255,255,.13); }
.management-mission strong { color:#d8f8fb; }
.management-mission span { color:#effdff; }
.management-pillar-top > span,.strategy-year-head span,.strategic-objective-head > span { background:linear-gradient(135deg,var(--brand-blue),var(--brand-turquoise-dark)); }
.management-table-head,.gantt-header { background:#f2f9fc; }
.access-banner { border-color:#d6eef5; background:#f4fbfd; }
.access-lock { color:var(--brand-blue); background:var(--brand-turquoise-soft); }
.project-scope-button.active { color:var(--brand-blue); background:var(--brand-turquoise-soft); }
.strategy-year-head b,.strategy-year-summary strong,.year-kpi-box span,.year-indicator-grid span,.strategic-number-grid span,.strategic-description-box span,.strategic-kpi-box span,.strategic-result-box span,.strategic-next-step span,.strategic-timing-box > span,.strategy-tag-head strong { color:var(--brand-blue); }
.gantt-toggle-arrow,.tracker-toggle-arrow { color:var(--brand-blue); background:var(--brand-turquoise-soft); }
.filter-button.active { color:var(--brand-blue); background:var(--brand-turquoise-soft); border-color:#bceaf0; }
.mini-button:hover { background:var(--brand-turquoise-soft); color:var(--brand-blue); }
.today .day-number { background:var(--brand-blue); }
.calendar-event { background:var(--brand-blue-soft); color:var(--brand-blue); }
.project-gantt-button { border-color:#bceaf0; color:var(--brand-blue); }
.project-gantt-button:hover { background:var(--brand-blue); color:white; }
.project-funding-need strong { color:var(--brand-blue); }
.completed-projects-stats strong { color:var(--brand-blue); }
.private-download span { background:rgba(255,255,255,.18); }
