@font-face { font-family: 'Outfit'; font-style: normal; font-weight: 400; font-display: swap; src: url(/assets/outfit-400.woff2) format('woff2'); }
@font-face { font-family: 'Outfit'; font-style: normal; font-weight: 600; font-display: swap; src: url(/assets/outfit-600.woff2) format('woff2'); }
@font-face { font-family: 'Outfit'; font-style: normal; font-weight: 700; font-display: swap; src: url(/assets/outfit-700.woff2) format('woff2'); }
.tv { position: absolute; left: 0; top: 0; width: 1920px; height: 1080px; transform-origin: 0 0; overflow: hidden; font-size: 24px; background: #FFFFFF; color: #333333; font-family: 'Outfit', system-ui, 'Segoe UI', Arial, sans-serif; font-weight: 400; }
.tv * { box-sizing: border-box; }
.scr { position: absolute; inset: 0; padding: 1.5em 2.2em 2.5em; display: flex; flex-direction: column; gap: .9em; opacity: 0; visibility: hidden; transition: opacity .6s ease, visibility .6s; }
.scr.is-on { opacity: 1; visibility: visible; }
.head { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 1.1em; }
.logo { width: 8.6em; height: 4.2em; background: url(/assets/iat-logo.png) left center / contain no-repeat; }
.head h1 { font-family: inherit; font-weight: 700; font-size: 2.4em; line-height: 1.05; margin: 0; color: #022C14; }
.meta { font-size: 1.15em; color: #666666; text-align: right; line-height: 1.3; font-variant-numeric: tabular-nums; }
.meta [data-draw] { color: #333333; font-weight: 600; }
.card { background: #F4F4F4; border-radius: .8em; padding: .8em 1.1em; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; min-width: 0; }
.glbl { font-size: 1.5em; line-height: 1.15; font-weight: 600; color: #022C14; }
.gauge { width: 80%; margin: .1em auto 0; }
.gauge svg, .mini svg { display: block; width: 100%; height: auto; }
.gnum { font-weight: 600; font-size: 3.6em; line-height: 1; font-variant-numeric: tabular-nums; margin-top: -.1em; color: #333333; }
.hero .gnum { font-size: 5.6em; }
.hero .glbl { font-size: 1.8em; }
.hero .gauge { width: 86%; }
.gsub { font-size: 1.25em; line-height: 1.25; color: #666666; font-variant-numeric: tabular-nums; }
.gsub [data-draw] { color: #333333; font-weight: 600; }
.hero .gsub { font-size: 1.45em; }
.is-good { color: #0F8F40; }
.is-warn { color: #B86E00; }
.is-bad { color: #E03315; }
.gsub [data-draw].is-good, .gnum.is-good { color: #0F8F40; }
.gsub [data-draw].is-bad, .gnum.is-bad { color: #E03315; }
.gsub [data-draw].is-warn, .gnum.is-warn { color: #B86E00; }
.gtick { font-size: 15px; fill: #666666; font-family: inherit; }
.gridc { display: grid; grid-template-columns: 1.3fr 1fr 1fr; grid-template-rows: 1fr 1fr; gap: .9em; flex: 1; min-height: 0; }
.gridc .hero { grid-row: 1 / span 2; }
.gridc .card:not(.hero) .gauge { width: 58%; }
.gridc .card:not(.hero) .gnum { font-size: 3.2em; }
.g4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: .9em; }
.sec { font-size: 1.5em; font-weight: 600; margin: .1em 0 0; color: #022C14; }
.rows { display: flex; flex-direction: column; flex: 1; min-height: 0; justify-content: space-evenly; }
.row { display: grid; grid-template-columns: 2.1em minmax(0, 1.4fr) 5.4em minmax(0, 2.2fr) 6.2em; align-items: center; gap: .9em; font-size: 1.5em; font-variant-numeric: tabular-nums; }
.rk { display: inline-flex; align-items: center; justify-content: center; width: 1.6em; height: 1.6em; border-radius: 50%; font-weight: 600; font-size: .85em; background: #E4E4E4; color: #333333; }
.rk.r1 { background: #D4AF37; color: #1f1a00; }
.rk.r2 { background: #C0C4CC; color: #1b1d21; }
.rk.r3 { background: #CD7F32; color: #1f1100; }
.nm { font-weight: 600; color: #022C14; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mutedtx { color: #666666; }
.rowbar { position: relative; height: .7em; border-radius: .4em; background: #DADADA; font-size: 0; }
.rowbar i { display: block; height: 100%; border-radius: .4em; }
.rowbar b { position: absolute; top: -.2em; width: .14em; height: 1.1em; background: #021024; border-radius: .1em; }
.val { text-align: right; font-weight: 600; }
.foot { font-size: 1.15em; color: #666666; }
.rows .foot { font-size: 1.1em; text-align: center; }
.inst { display: grid; grid-template-columns: 1fr 1.08fr; gap: .9em; flex: 1; min-height: 0; }
.g22 { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; gap: .9em; min-height: 0; }
.g22 .gauge { width: 70%; }
.g22 .gnum { font-size: 3.2em; }
.tcard { align-items: stretch; text-align: left; justify-content: flex-start; padding: .8em 1em; min-height: 0; }
.thead { display: grid; grid-template-columns: 1.8em minmax(0, 1fr) 4.8em 6.6em 6.6em; gap: .5em; align-items: end; font-size: 1.3em; line-height: 1.1; padding-bottom: .35em; border-bottom: 1px solid #D9D9D9; }
.thead span { font-size: .8em; color: #666666; font-weight: 600; }
.thead span:nth-child(n+3) { text-align: right; }
.trow { display: grid; grid-template-columns: 1.8em minmax(0, 1fr) 4.8em 6.6em 6.6em; gap: .5em; align-items: center; font-size: 1.3em; font-variant-numeric: tabular-nums; }
.trow .crewcell { display: flex; align-items: center; justify-content: flex-end; gap: .35em; }
.trow .mini { width: 4em; flex: none; }
.tbody { display: flex; flex-direction: column; flex: 1; min-height: 0; justify-content: space-evenly; }
.pgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: .9em; }
.stab { display: flex; flex-direction: column; flex: 1; min-height: 0; }
.shead, .srow { display: grid; grid-template-columns: 1.5fr 1.45fr 1fr 1fr 1fr; gap: .6em; align-items: center; }
.shead { font-size: 1.2em; color: #666666; font-weight: 600; padding: 0 1em .4em; border-bottom: 1px solid #D9D9D9; }
.shead span:nth-child(n+2) { text-align: right; }
.srows { display: flex; flex-direction: column; flex: 1; min-height: 0; justify-content: space-evenly; }
.srow { font-size: 1.3em; font-variant-numeric: tabular-nums; padding: 0 1em; }
.srow.team { border-top: 1px solid #D9D9D9; padding-top: .35em; }
.scell { display: flex; flex-direction: column; align-items: flex-end; line-height: 1.15; min-width: 0; }
.scell.first { align-items: flex-start; }
.sval { font-weight: 600; font-size: 1.2em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.scap { font-size: .78em; color: #666666; font-weight: 400; white-space: nowrap; }
.scap [data-draw], .scap span { color: #666666; }
.dots { position: absolute; left: 0; right: 0; bottom: .65em; display: flex; justify-content: center; gap: .8em; z-index: 2; }
.dots button { width: .9em; height: .9em; border-radius: 50%; border: 0; padding: 0; cursor: pointer; background: #D0D0D0; }
.dots button.is-on { background: #16A54B; }
.prog { position: absolute; left: 0; right: 0; bottom: 0; height: .3em; background: transparent; z-index: 2; }
.prog i { display: block; height: 100%; width: 0; background: #16A54B; opacity: .8; }
.prog i.run { animation: tvprog var(--tvms, 20s) linear forwards; }
.prog i.stop { width: 100%; opacity: .25; }
@keyframes tvprog { from { width: 0; } to { width: 100%; } }
.dd-failed { display: flex; align-items: center; justify-content: center; gap: .375rem; color: #666666; }
[data-dash-source-state=empty] { color: transparent; }
.thead2, .trow2 { display: grid; grid-template-columns: 1.7em minmax(0, 1fr) 2.4em minmax(0, .5fr) 4.2em 4.4em; gap: .45em; align-items: center; font-size: 1.15em; }
.thead2 { line-height: 1.1; padding-bottom: .35em; border-bottom: 1px solid #D9D9D9; align-items: end; }
.thead2 span { font-size: .85em; color: #666666; font-weight: 600; }
.thead2 span:nth-child(3), .thead2 span:nth-child(5), .thead2 span:nth-child(6) { text-align: right; }
.trow2 { font-variant-numeric: tabular-nums; }
.def { font-size: 1.05em; color: #666666; line-height: 1.3; margin-top: .45em; }
.trow2 .jobs { text-align: right; color: #666666; }
.trow2.below { opacity: .55; }
.tbody .foot { font-size: 1.05em; text-align: center; margin-top: .3em; }
.sec [data-draw] { font-weight: 400; color: #666666; }
.g5 { display: grid; grid-template-columns: repeat(5, 1fr); gap: .9em; }
.g5 .glbl { font-size: 1.4em; }
.g5 .gauge { width: 68%; }
.g5 .gnum { font-size: 3.2em; }
.g5 .gsub { font-size: 1.2em; }
.race { align-items: stretch; text-align: left; justify-content: flex-start; padding: .6em 1em; flex: 1; min-height: 0; }
.racebox svg { display: block; width: 100%; height: auto; }
.race .foot { font-size: 1.05em; margin-top: .2em; }
.rep3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: .9em; }
.rep3 .gnum { font-size: 4.6em; }
.stars { width: 100%; display: flex; justify-content: center; }
.stars svg { display: block; width: 11em; height: auto; margin: .15em 0; }
.qcard { flex: 1; min-height: 0; align-items: stretch; text-align: left; justify-content: flex-start; padding: .8em 1em; }
.qview { position: relative; flex: 1; min-height: 0; overflow: hidden; -webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 5%, #000 95%, transparent 100%); mask-image: linear-gradient(to bottom, transparent 0, #000 5%, #000 95%, transparent 100%); }
.qlist.scroll { animation: qscroll var(--qdur, 60s) linear infinite; }
@keyframes qscroll { from { transform: translateY(0); } to { transform: translateY(-50%); } }
.q { background: #FFFFFF; border-radius: .7em; padding: .55em 1em; margin-bottom: .7em; }
.qtxt { display: block; font-size: 1.4em; line-height: 1.3; color: #333333; }
.qwho { display: flex; align-items: center; gap: .7em; font-size: 1.15em; color: #666666; margin-top: .2em; }
.qwho .stars { width: auto; display: block; }
.qwho .stars svg { width: 5.6em; margin: 0; }
.qwho .nm { color: #022C14; }
.pgrid .card { padding: .55em 1em; border-radius: .9em; box-shadow: 0 .25em .7em rgba(2, 16, 36, .22); }
.pgrid .p7 { background: linear-gradient(135deg, #16A54B 0%, #0F8A3E 100%); }
.pgrid .p30 { background: linear-gradient(135deg, #2E82F4 0%, #1F6FDB 100%); }
.pgrid .p90 { background: linear-gradient(135deg, #021024 0%, #0B2A4A 100%); }
.plbl { font-size: 1.3em; font-weight: 600; line-height: 1.15; color: rgba(255, 255, 255, .95); letter-spacing: .01em; }
.pbig { font-weight: 700; font-size: 3.7em; line-height: 1.05; font-variant-numeric: tabular-nums; color: #FFFFFF; }
.psub { font-size: 1.25em; line-height: 1.25; color: rgba(255, 255, 255, .92); font-variant-numeric: tabular-nums; }
.psub [data-draw] { color: #FFFFFF; font-weight: 700; }
.pdef { font-size: 1.1em; color: #666666; line-height: 1.3; margin-top: -.15em; }
/* App additions (not in the reference design) */
html, body { margin: 0; height: 100%; background: #FFFFFF; overflow: hidden; }
.scr.placeholder { align-items: stretch; }
.soon { flex: 1; display: flex; align-items: center; justify-content: center; font-size: 4em; font-weight: 600; color: #022C14; background: #F4F4F4; border-radius: .8em; }
.delayed { display: none; margin-left: .6em; padding: .1em .5em; border-radius: .4em; background: #FFF1DC; color: #B86E00; font-weight: 600; font-size: .9em; }
.tv.is-delayed .delayed { display: inline-block; }
/* The reference set font-size: 0 on .rowbar, which collapsed the em-based bar height to zero. */
.rowbar { font-size: inherit; }
/* Save the Fire Stick's processor: review quotes only scroll while their board is on screen. */
.scr:not(.is-on) .qlist.scroll { animation-play-state: paused; }

/* Technician tables: opportunity lead set column (bar + percent) and Total rows. */
.thead2, .trow2 { grid-template-columns: 1.7em minmax(10.5em, 1fr) 2.4em 5.2em 4.6em 4.8em; }
.thead2 span:nth-child(4) { text-align: right; }
.oppcell { display: flex; align-items: center; gap: .45em; min-width: 0; }
.oppcell .rowbar { flex: 1; min-width: 0; }
.oppcell .pct { width: 2.4em; text-align: right; font-weight: 600; flex: none; }
.trow2.total, .trow.total { border-top: 1px solid #D9D9D9; padding-top: .35em; font-weight: 600; }
.trow2.total .nm, .trow.total .nm { color: #022C14; }
.rk.blank { background: transparent; }
/* Company gauges: "vs. $X last year (Y% up)" */
.gly { font-size: 1.1em; line-height: 1.2; color: #666666; min-height: 1.2em; font-variant-numeric: tabular-nums; }
.gly .is-good { color: #0F8F40; font-weight: 600; }
.gly .is-bad { color: #E03315; font-weight: 600; }
.gly .lyline, .gly .lychg { display: block; white-space: nowrap; }
