@import url("https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@400;500;600;700;800&display=swap");
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#f3f5f7;font-family:"Be Vietnam Pro",Arial,Helvetica,sans-serif;color:#171b20}
.tv-shell{width:100vw;height:100vh;min-width:1280px;display:grid;grid-template-rows:118px 1fr 150px 230px 42px;padding:0 44px}
.tv-header{display:flex;align-items:center;justify-content:flex-start;border-bottom:4px solid #e80f34;background:#f3f5f7}
.tv-header h1{font-size:52px;line-height:.9;margin:0;font-weight:900;letter-spacing:-2px}.tv-header p{margin:10px 0 0;font-size:20px;font-weight:700}
.season{display:none}
.teams{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;padding:28px 0}
.team{border:1px solid #e1e5e9;border-top:5px solid #2db1ff;border-radius:16px;padding:24px;background:#fff;box-shadow:0 6px 18px rgba(21,31,42,.055);display:flex;flex-direction:column;min-width:0}
.team-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.team-number{font-size:20px;font-weight:900;color:#e80f34}.team h2{font-size:31px;margin:5px 0 0;line-height:1}.pill{padding:9px 14px;border-radius:999px;font-size:16px;font-weight:900;white-space:nowrap}
.green{background:#22a447;color:#fff}.yellow{background:#f4c430;color:#000}.red{background:#e80f34;color:#fff}.gray{background:#e9edf2;color:#000}
.readiness{margin:22px 0 18px}.readiness-row{display:flex;justify-content:space-between;font-size:18px;font-weight:800;margin-bottom:8px}.bar{height:18px;background:#e9edf2;border-radius:20px;overflow:hidden}.fill{height:100%;background:#2db1ff}
.team-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:auto}.metric{background:#f5f7fa;border-radius:12px;padding:14px}.metric .value{font-size:27px;font-weight:900}.metric .label{font-size:13px;text-transform:uppercase;font-weight:800;color:#626b75;margin-top:3px}
.codemke{border-top:6px solid #2db1ff;background:#f7f9fb;margin:0 -44px;padding:22px 44px 20px;display:grid;grid-template-columns:350px 1fr;gap:30px;align-items:center}
.codemke-title h2{font-size:43px;margin:0;font-weight:900}.codemke-title p{font-size:16px;margin:6px 0 15px;color:#555}.code-status{display:inline-block;font-size:14px;font-weight:900;padding:8px 12px;border-radius:999px;background:#000;color:#fff}
.code-metrics{display:grid;grid-template-columns:repeat(6,1fr);gap:14px}.code-card{background:#fff;border:2px solid #d7dce2;border-radius:14px;padding:18px 14px;text-align:center;height:116px;display:flex;flex-direction:column;justify-content:center}.code-card .value{font-size:31px;font-weight:900}.code-card .label{font-size:12px;text-transform:uppercase;font-weight:800;color:#626b75;margin-top:5px}
footer{display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:900;letter-spacing:1px;color:#555}
@media(max-width:1500px){.tv-header h1{font-size:42px}.team h2{font-size:25px}.team{padding:18px}.code-metrics{gap:8px}.code-card{padding:10px}.tv-shell{padding:0 28px}.codemke{margin:0 -28px;padding-left:28px;padding-right:28px}}

.tv-dates{border-top:2px solid #d7dce2;padding:13px 0 10px;display:grid;grid-template-columns:180px 1fr;gap:18px;align-items:center;overflow:hidden}
.tv-dates-heading{font-size:19px;font-weight:900;color:#e80f34;letter-spacing:.5px}
.tv-dates-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.tv-date{border-left:5px solid #2db1ff;background:#f5f7fa;border-radius:9px;padding:10px 12px;min-width:0;height:112px;overflow:hidden}
.tv-date .d{font-size:14px;font-weight:900;color:#e80f34}.tv-date .t{font-size:15px;font-weight:900;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tv-date .l{font-size:12px;font-weight:700;margin-top:4px;color:#555;line-height:1.25}
.codemke{padding-top:15px;padding-bottom:14px}.code-card{height:96px}.codemke-title h2{font-size:38px}





.tv-extra-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:10px}
.tv-extra-stats>div{background:#f5f7fa;border:1px solid #e1e5ea;border-radius:8px;padding:7px 8px;text-align:center}
.tv-extra-stats span{display:block;font-size:9px;font-weight:800;letter-spacing:.06em;color:#69727d}
.tv-extra-stats b{display:block;font-size:15px;margin-top:2px}

.team-grid.expanded{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
.team-grid.expanded .metric{min-height:66px;padding:9px 7px;display:flex;flex-direction:column;justify-content:center}
.team-grid.expanded .metric .value{font-size:22px;line-height:1.05}
.team-grid.expanded .metric .label{font-size:10px;margin-top:5px;white-space:nowrap}

html,body,button,input,select,textarea{font-family:"Be Vietnam Pro","Segoe UI",Arial,sans-serif}
.sf-wordmark{font-family:"Be Vietnam Pro","Segoe UI",Arial,sans-serif;font-weight:600;letter-spacing:-.035em;white-space:nowrap}
.sf-wordmark .sf{color:#e80f34}
.sf-wordmark .robot{color:#2db1ff;font-weight:800}
.sf-wordmark .ics{color:#2db1ff;font-weight:600}

/* Workflow-aware TV team cards */
.team{padding:18px}
.team-top{align-items:flex-start}
.next-event{max-width:47%;text-align:right;line-height:1.1}
.next-event span{display:block;font-size:9px;font-weight:800;letter-spacing:.08em;color:#68727e}
.next-event b{display:block;font-size:13px;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.next-event small{display:block;font-size:10px;color:#68727e;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.health-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:14px 0 10px}
.health{min-height:49px;border:1px solid #e1e5ea;border-radius:9px;padding:7px 9px;background:#fff;overflow:hidden}
.health>span{display:block;font-size:9px;text-transform:uppercase;font-weight:800;letter-spacing:.05em;color:#68727e;margin-bottom:4px}
.health>b{display:inline-block;max-width:100%;padding:4px 7px;border-radius:999px;font-size:11px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.health.percent{position:relative}
.health.percent strong{font-size:17px;line-height:1}
.mini-bar{height:5px;background:#e9edf2;border-radius:8px;overflow:hidden;margin-top:5px}
.mini-bar i{display:block;height:100%;background:#2db1ff}
.team-grid.expanded{margin-top:0}
.team-grid.expanded .metric{min-height:58px}

/* Budget Used traffic-light thresholds: green 0-59%, yellow 60-84%, red 85%+ */
.metric.budget-used{border:2px solid transparent}
.metric.budget-used.budget-green{background:#dff3e5;border-color:#22a447}
.metric.budget-used.budget-yellow{background:#fff1b8;border-color:#d6a900}
.metric.budget-used.budget-red{background:#fde1e5;border-color:#e80f34}
.metric.budget-used.budget-green .value{color:#167a34}
.metric.budget-used.budget-yellow .value{color:#725900}
.metric.budget-used.budget-red .value{color:#b40c28}

/* CODEMKE initiative status row */
.codemke{grid-template-columns:300px 1fr}
.code-area{display:grid;grid-template-rows:auto auto;gap:9px;min-width:0}
.code-projects{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.code-project-card{min-height:62px;background:#fff;border:2px solid #d7dce2;border-radius:12px;padding:9px 12px;display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;gap:2px 10px;align-items:center;min-width:0}
.code-project-card span{display:block;font-size:8px;font-weight:800;letter-spacing:.08em;color:#68727e}
.code-project-card strong{display:block;font-size:15px;font-weight:900;white-space:nowrap}
.code-project-card b{grid-row:1 / span 2;grid-column:2;padding:5px 8px;border-radius:999px;font-size:10px;font-weight:900;white-space:nowrap}
.code-project-card small{grid-column:1 / -1;font-size:9px;color:#68727e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.code-metrics .code-card{height:82px;padding:9px}
.code-metrics .code-card .value{font-size:27px}

.tv-date .date-teams{display:flex;gap:4px;margin-top:4px;flex-wrap:wrap}
.tv-date .date-teams span{font-size:8px;font-weight:900;background:#e4e8ed;border-radius:999px;padding:2px 5px}

.portfolio-health{display:flex;flex-direction:column;justify-content:center}
.portfolio-health>span{font-size:10px;font-weight:800;letter-spacing:.06em}
.portfolio-health>strong{font-size:16px;line-height:1.15;margin-top:3px}
.portfolio-health>small{font-size:10px;margin-top:4px;opacity:.78}
.portfolio-health>small b{font-size:inherit}

/* V4.2 TV visual polish — layout dimensions intentionally preserved */
.tv-header h1{letter-spacing:-2.4px}
.tv-header p{color:#69727d;letter-spacing:.08em;font-size:15px}
.team-number{letter-spacing:.04em}
.team h2{color:#20262d;font-weight:700}
.health,.metric,.code-card{border-color:#e8ebee!important;background:#fafbfc!important}
.health>span,.metric .label,.code-card .label{color:#737c86}
.metric .value{font-weight:800;color:#171b20}
.tv-dates{background:#fff;border:1px solid #e2e6e9;border-radius:14px;padding-left:18px;padding-right:18px}
.tv-dates-heading{color:#4d5660;letter-spacing:.08em}
.tv-date{border-color:#e7eaed!important}
.codemke{background:#eef3f6!important;border:1px solid #dfe6eb!important;border-top:4px solid #2db1ff!important;border-radius:16px!important}
.codemke-title h2{letter-spacing:-.5px}
.code-project-card{background:#fff!important;border-color:#e0e5e9!important}
footer{color:#68717b;border-top-color:#dfe3e7!important;font-size:11px;letter-spacing:.03em}
footer>span:first-child{font-weight:800;color:#343c45;display:flex;align-items:center;gap:8px}
.live-dot{width:7px;height:7px;border-radius:50%;background:#22a447;display:inline-block}
.green{background:#218c45!important}.yellow{background:#f0c53a!important}.red{background:#d93b43!important}.gray{background:#e8ecef!important;color:#39414a!important}
.budget-green{background:#edf7f0!important}.budget-yellow{background:#fff8df!important}.budget-red{background:#fceced!important}

/* V4.4 supplied SFROBOTICS brand logo */
.tv-header{overflow:hidden}
.tv-brand-logo{display:block;width:auto;height:82px;max-width:760px;object-fit:contain;object-position:left center}

/* V5.10 team quick stats */
.team-quick-stats{display:flex;align-items:center;gap:9px;margin-top:8px;font-size:10px;font-weight:800;letter-spacing:.045em;color:#707b85;text-transform:uppercase}
.team-quick-stats b{font-size:12px;color:#26313b}
.team-quick-stats i{font-style:normal;color:#b3bbc2}






/* V6.19 sponsor names in team quick stats */
.tv-sponsor-names{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tv-sponsor-names b{font-weight:900}
