/* The executive workspace is intentionally separate from the operational board. */
.account .avatar { flex-shrink: 0; }
.account > div { min-width: 0; }
.account-name { display: block; margin: 5px 0; color: #e7f4f0; font-size: 11px; font-weight: 650; line-height: 1.5; overflow-wrap: anywhere; }
.account .account-duty { display: inline-block; }
.shell.overview-mode .topbar { background: #0a232d; color: #adc4cc; border-color: #24404a; }
.shell.overview-mode .topbar b, .shell.overview-mode .topbar .nav-toggle { color: #f1f8f4; }
.shell.overview-mode .topbar .version { color: #adc4cc; }
.shell.overview-mode .page.overview-page { background: #0a202a; padding: 34px 36px 20px; color: #eaf3ef; }
.overview { --ov-mint: #8ce3bf; --ov-amber: #f4c27b; --ov-muted: #a1b9c2; --ov-border: #2b444d; max-width: 1680px; margin: auto; }
.overview *, .overview-transition * { box-sizing: border-box; }
.overview h1, .overview h2, .overview p { margin-top: 0; }
.overview h1 { font-size: clamp(27px, 2.7vw, 42px); font-weight: 550; letter-spacing: -1.35px; line-height: 1.16; margin-bottom: 12px; color: #f2f6ed; }
.overview h1 > span { color: var(--ov-mint); }
.overview h2 { color: #eef4f0; font-size: 19px; font-weight: 550; letter-spacing: -.35px; line-height: 1.35; margin: 8px 0 0; }
.ov-heading { display: flex; justify-content: space-between; gap: 20px; align-items: flex-start; margin-bottom: 22px; }
.ov-eyebrow, .ov-kicker { color: #b8cbd2; font-size: 10px; font-weight: 650; letter-spacing: 2.1px; line-height: 1.6; }
.ov-eyebrow { margin: 0 0 17px; }
.ov-eyebrow > span { color: #4a787a; margin: 0 9px; }
.ov-subtitle { color: var(--ov-muted); font-size: 13px; margin-bottom: 0; line-height: 1.8; }
.ov-subtitle > span { display: inline-block; margin-left: 9px; }
.ov-tools { display: flex; flex-wrap: wrap; gap: 7px; justify-content: flex-end; padding-top: 4px; }
.overview button, .overview-transition button { background: transparent; color: #d7e7e7; border: 1px solid #415861; border-radius: 30px; font: inherit; font-size: 11px; padding: 10px 15px; cursor: pointer; line-height: 1.45; min-height: 37px; }
.overview button:hover, .overview-transition button:hover { background: #27494f; border-color: #9adac5; color: white; }
.overview button:disabled { opacity: .5; cursor: default; }
.overview :focus-visible, .overview-transition :focus-visible { outline: 2px solid #aaf4d5; outline-offset: 4px; }
.ov-fetch-status { font-size: 12px; color: #f2c78d; line-height: 1.6; margin: 0 0 14px; }
.ov-fetch-status:empty { display: none; }
.ov-hero { display: grid; grid-template-columns: minmax(0, 1fr) 225px; gap: 18px; margin-bottom: 22px; }
.ov-orbits { min-height: 412px; position: relative; overflow: hidden; border: 1px solid #29454b; border-radius: 24px; background: radial-gradient(ellipse at 37% 64%, #28483f 0%, transparent 57%), radial-gradient(ellipse at 86% 10%, #263743 0%, transparent 65%), #102931; }
.ov-orbit-label { position: absolute; top: 23px; left: 25px; display: flex; align-items: center; gap: 20px; z-index: 1; }
.ov-orbit-label > span:last-child { color: #acc3c8; font-size: 11px; }
.ov-orbit-track { position: absolute; pointer-events: none; width: 87%; height: 65%; border: 1px solid #7edbb71c; border-radius: 50%; left: 7%; top: 15%; transform: rotate(-20deg); }
.ov-track-two { width: 76%; height: 92%; top: 6%; left: 13%; transform: rotate(23deg); border-color: #a8d5d317; }
.ov-bubble { position: absolute; display: flex; flex-direction: column; align-items: center; justify-content: center; border-radius: 50%; border: 1px solid #91d1b852; color: #b2f5d0; text-align: center; box-shadow: 0 16px 50px #04171f45; animation: ov-float 8.5s ease-in-out infinite; isolation: isolate; }
.ov-bubble strong { font-weight: 450; font-size: clamp(32px, 3.4vw, 55px); line-height: 1.2; letter-spacing: -2px; font-variant-numeric: tabular-nums; max-width: 90%; overflow-wrap: anywhere; }
.ov-bubble-label { font-size: 9px; letter-spacing: 1.6px; font-weight: 700; margin-bottom: 11px; padding: 0 15px; }
.ov-bubble-detail { font-size: 11px; margin-top: 9px; color: #bcd7ca; padding: 0 12px; line-height: 1.4; }
.ov-bubble-closed { width: 236px; height: 236px; left: 10%; top: 96px; background: radial-gradient(circle at 33% 17%, #335f4c, #183c35 80%); }
.ov-bubble-closed strong { font-size: 65px; }
.ov-bubble-closed svg { position: absolute; inset: 0; width: 100%; height: 100%; z-index: -1; transform: rotate(-90deg); }
.ov-ring-track, .ov-ring-progress { fill: none; stroke: #719d8440; stroke-width: 2; }
.ov-ring-progress { stroke: #c0f8b3; stroke-width: 3; stroke-linecap: round; }
.ov-bubble-active { width: 173px; height: 173px; left: 54%; top: 70px; color: #ffda9c; border-color: #d4b48675; background: radial-gradient(circle at 30% 20%, #594f38, #393e33 85%); animation-duration: 10s; animation-delay: -3s; }
.ov-bubble-active .ov-bubble-detail { color: #dac9aa; }
.ov-bubble-vehicles { width: 147px; height: 147px; left: 68%; top: 232px; color: #a3e4e2; border-color: #88b7b264; background: radial-gradient(circle at 30% 20%, #2c5359, #1a343e 85%); animation-duration: 9s; animation-delay: -5s; }
.ov-bubble-vehicles strong { font-size: 40px; }
.ov-bubble-vehicles .ov-bubble-label { font-size: 8px; }
.ov-bubble-vehicles .ov-bubble-detail { font-size: 10px; }
.ov-bubble-control { width: 116px; height: 116px; left: 44%; top: 277px; color: #d8d0fc; background: radial-gradient(circle at 28% 20%, #47455c, #313347 85%); border-color: #b2abcb5e; animation-duration: 7s; animation-delay: -2s; }
.ov-bubble-control .ov-bubble-label { font-size: 7px; margin-bottom: 6px; letter-spacing: 1px; }
.ov-bubble-control strong { font-size: 32px; }
.ov-orbit-caption { position: absolute; bottom: 18px; left: 25px; font-size: 10px; color: #a0bdbb; letter-spacing: .1px; }
.ov-orbit-caption > span { color: #9ed5b8; margin-right: 5px; }
.ov-today { display: flex; flex-direction: column; padding: 23px 24px 20px; border: 1px solid var(--ov-border); border-radius: 24px; background: #122c35; }
.ov-section-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 23px; }
.ov-day-mark { color: #d0e3c6; font-size: 23px; line-height: 1; }
.ov-today-item { display: grid; grid-template-columns: 1fr auto; align-items: center; column-gap: 8px; padding: 19px 0; border-bottom: 1px solid var(--ov-border); }
.ov-today-item > span { font-size: 13px; color: #cadcde; }
.ov-today-item strong { font-size: 32px; font-weight: 500; letter-spacing: -1px; }
.ov-today-item small { grid-column: 1 / -1; font-size: 10px; color: #9cb7bd; margin-top: 6px; }
.ov-mint-text { color: var(--ov-mint); }
.ov-age { display: flex; flex-direction: column; gap: 10px; margin-top: auto; padding-top: 26px; }
.ov-age span { color: #adc1c7; font-size: 11px; }
.ov-age b { color: #e7d6ba; font-weight: 500; font-size: 20px; }
.ov-grid { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 22px; }
.ov-panel { padding: 25px; border: 1px solid var(--ov-border); border-radius: 22px; background: #102a34; min-width: 0; }
.ov-small-total { color: var(--ov-muted); font-size: 11px; white-space: nowrap; }
.ov-note { font-size: 10px; color: #a4bdc6; line-height: 1.75; margin: 12px 0 0; }
.ov-legend { display: flex; gap: 12px; color: #c0d4d8; font-size: 10px; flex-wrap: wrap; }
.ov-legend > span { white-space: nowrap; }
.ov-legend i, .ov-status-dot { display: inline-block; width: 7px; height: 7px; border-radius: 50%; margin-right: 6px; }
.ov-new-dot { background: #e4b880; }
.ov-closed-dot { background: #8cddbc; }
.ov-chart { margin: 5px -10px 0; }
.ov-chart svg { display: block; width: 100%; height: auto; overflow: visible; }
.ov-chart-grid { stroke: #2a434c; stroke-width: 1; stroke-dasharray: 3 5; }
.ov-chart text { fill: #a1bbc3; font-size: 10px; font-family: inherit; }
.ov-chart-new { fill: #e4b880; }
.ov-chart-closed { fill: #8cddbc; }
.ov-chart-data { color: #bdd3d9; font-size: 11px; margin: 7px 0 13px; }
.ov-chart-data summary { cursor: pointer; width: fit-content; padding: 7px 0; }
.ov-chart-data table { width: 100%; margin-top: 10px; font-size: 11px; border-collapse: collapse; }
.ov-chart-data th, .ov-chart-data td { padding: 7px; background: transparent; color: #cce1e4; border-bottom: 1px solid #304a53; text-align: right; }
.ov-chart-data tr > :first-child { text-align: left; }
.ov-chart-data th { position: static; font-weight: 500; }
.ov-status-list { display: grid; gap: 19px; margin-top: 30px; }
.ov-status-item > div:first-child { display: flex; justify-content: space-between; align-items: center; margin-bottom: 9px; font-size: 12px; }
.ov-status-item strong { font-weight: 500; }
.ov-bar-track { height: 4px; background: #2a424a; border-radius: 10px; overflow: hidden; }
.ov-bar-track > span { height: 100%; display: block; border-radius: inherit; background: #87c5ba; }
.ov-status-dot.ov-status-0, .ov-bar-track > .ov-status-0 { background: #d7b587; }
.ov-status-dot.ov-status-1, .ov-bar-track > .ov-status-1 { background: #e99788; }
.ov-status-dot.ov-status-2, .ov-bar-track > .ov-status-2 { background: #bbb1e0; }
.ov-status-dot.ov-status-3, .ov-bar-track > .ov-status-3 { background: #decf8e; }
.ov-status-dot.ov-status-4, .ov-bar-track > .ov-status-4 { background: #8cddbc; }
.ov-panel-foot { display: flex; justify-content: space-between; font-size: 11px; gap: 12px; color: #bdd0d6; padding-top: 20px; margin-top: 23px; border-top: 1px solid var(--ov-border); }
.ov-panel-foot strong { color: #d4eddf; font-weight: 550; }
.ov-section-symbol { font-size: 23px; color: #d7bf9a; }
.ov-activity { list-style: none; padding: 0; margin: 0; }
.ov-activity li { display: grid; grid-template-columns: 10px minmax(0, 1fr); gap: 13px; padding: 18px 0; border-top: 1px solid #29414a; }
.ov-activity li:first-child { border-top: 0; padding-top: 4px; }
.ov-activity-point { width: 7px; height: 7px; border-radius: 50%; background: #dfb681; margin-top: 5px; }
.ov-point-closed { background: #94dcba; }
.ov-activity-meta { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 16px; align-items: center; }
.ov-activity-meta strong { font-size: 11px; font-weight: 550; color: #c5dbdb; }
.ov-activity-meta time { font-size: 10px; color: #a5bac3; }
.ov-activity p { color: #eef3eb; font-size: 13px; margin: 9px 0 10px; line-height: 1.65; overflow-wrap: anywhere; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.ov-activity-bottom { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; }
.ov-activity-bottom > span:last-child { color: #b0c4cb; font-size: 10px; overflow-wrap: anywhere; }
.ov-activity .badge { font-size: 9px; padding: 3px 7px; border-radius: 5px; }
.ov-load-list { padding: 0; margin: 4px 0 0; list-style: none; }
.ov-load-list li { display: grid; grid-template-columns: 24px minmax(0, 1fr) 55px; gap: 14px; align-items: center; padding: 15px 0; }
.ov-load-order { font-size: 11px; color: #819ba7; }
.ov-load-list strong { font-size: 12px; font-weight: 500; color: #e6efed; }
.ov-load-list small { display: block; font-size: 10px; color: #9ab8c2; line-height: 1.6; overflow-wrap: anywhere; margin: 4px 0 9px; }
.ov-load-list b { font-size: 23px; font-weight: 500; text-align: right; color: #cee3dd; }
.ov-load-list b small { margin: 1px 0 0; font-size: 9px; }
.ov-context { background: radial-gradient(ellipse at 100% 100%, #264039, #112b34 70%); }
.ov-context h2 { font-size: 27px; margin: 13px 0 20px; letter-spacing: -.7px; }
.ov-context > p:not(.ov-note) { color: #b6cfd2; font-size: 14px; line-height: 1.9; max-width: 340px; }
.ov-context > p strong { color: #b9edcb; font-weight: 600; }
.ov-context dl { font-size: 11px; margin: 26px 0 24px; }
.ov-context dl > div { display: flex; justify-content: space-between; gap: 15px; padding: 10px 0; border-bottom: 1px solid #324a4f; }
.ov-context dt { color: #a1bac2; }
.ov-context dd { color: #d2e1e0; margin: 0; text-align: right; }
.ov-empty { min-height: 125px; display: flex; align-items: center; justify-content: center; color: #adc4cc; font-size: 12px; line-height: 1.8; padding: 18px; text-align: center; }
.ov-loading { min-height: 380px; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 15px; padding: 35px; text-align: center; border: 1px solid #2c454e; border-radius: 24px; background: #102b34; }
.ov-loading p { color: #b2cbd3; font-size: 13px; }
.ov-loading-mark { display: grid; place-items: center; border-radius: 50%; border: 1px solid #759b8a; width: 95px; height: 95px; color: #bceccf; font-size: 22px; }
.ov-footer { display: flex; justify-content: space-between; flex-wrap: wrap; align-items: center; gap: 16px; margin-top: 24px; font-size: 10px; color: #9ab6c1; padding: 0 3px 4px; }
.ov-live-dot { width: 5px; height: 5px; display: inline-block; background: #85c5a9; border-radius: 50%; margin-right: 8px; }
.ov-offline .ov-live-dot { background: #e5b071; }
.ov-footer > div { line-height: 1.8; }
.ov-paused .ov-bubble { animation-play-state: paused; }
@keyframes ov-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-9px); } }

/* A finite, skippable entrance; only transforms and opacity are animated. */
.overview-transition { position: fixed; inset: 0; z-index: 12000; display: grid; place-items: center; background: #081f29; color: #f0f8f2; isolation: isolate; overflow: hidden; animation: ov-cover .19s ease-out both; font-family: Inter, 'Segoe UI', sans-serif; }
.overview-transition-grid { position: absolute; inset: 0; background-image: linear-gradient(#c6e7d008 1px, transparent 1px), linear-gradient(90deg, #c6e7d008 1px, transparent 1px); background-size: 65px 65px; opacity: .65; pointer-events: none; }
.overview-transition-center { text-align: center; padding: 20px; position: relative; }
.overview-transition-center .ov-eyebrow { color: #99ceb7; margin: 40px 0 14px; font-size: 9px; letter-spacing: 3px; animation: ov-intro-text 1s .4s both; }
.overview-transition-center h2 { font-size: clamp(30px, 5vw, 64px); font-weight: 450; letter-spacing: -2px; line-height: 1.2; color: #f3f5e9; margin: 0 0 18px; animation: ov-intro-text .55s .6s both; }
.overview-transition-status { font-size: 12px; color: #b4ced2; margin: 0; animation: ov-intro-text .55s .8s both; }
.overview-transition-orbit { width: 182px; height: 182px; margin: auto; border-radius: 50%; display: grid; place-items: center; position: relative; background: radial-gradient(circle at 35% 27%, #315c4c, #122f33 80%); border: 1px solid #8ccaae; box-shadow: 0 0 100px #7bd2a61a; animation: ov-intro-orb 2.4s cubic-bezier(.2,.7,.3,1) both; }
.overview-transition-orbit > span { font-size: 21px; color: #cdf0da; letter-spacing: .5px; }
.overview-transition-orbit b { font-weight: 400; margin-left: 4px; }
.overview-transition-orbit i { position: absolute; inset: -25px; border: 1px solid #9deac42e; border-radius: 50%; transform: rotateX(62deg) rotate(-25deg); }
.overview-transition-orbit i:nth-child(2) { inset: -43px; transform: rotateX(50deg) rotate(45deg); border-color: #91c5ce29; }
.overview-transition-bottom { position: absolute; left: 35px; right: 35px; bottom: 30px; display: flex; align-items: center; justify-content: center; gap: 20px; }
.overview-transition-bottom > span { display:none; font-size: 10px; color: #96b4bf; letter-spacing: 1px; }
.overview-transition button { padding: 12px 21px; font-size: 12px; }
.overview-transition button span { margin-left: 17px; }
.overview-transition.overview-transition-leaving { animation: ov-uncover .55s cubic-bezier(.7,0,.2,1) forwards; pointer-events: none; }
.overview-transition-leaving .overview-transition-center { animation: ov-intro-out .325s ease-in both; }
.overview-transition-still, .overview-transition-still * { animation: none !important; }
@keyframes ov-cover { from { opacity: 0; } to { opacity: 1; } }
@keyframes ov-intro-orb { 0% { opacity: 0; transform: scale(.3) translateY(25px); } 28% { opacity: 1; transform: scale(1); } 80% { transform: scale(1.07); } 100% { transform: scale(1); } }
@keyframes ov-intro-text { from { opacity: 0; transform: translateY(17px); } to { opacity: 1; transform: translateY(0); } }
@keyframes ov-intro-out { to { opacity: 0; transform: translateY(-25px) scale(.96); } }
@keyframes ov-uncover { 0% { opacity: 1; transform: translateY(0); } 70% { opacity: 1; } 100% { opacity: 0; transform: translateY(-100%); } }
@media (min-width: 1550px) {
  .ov-orbits { min-height: 460px; }
  .ov-bubble-closed { left: 14%; width: 270px; height: 270px; top: 100px; }
  .ov-bubble-active { left: 56%; top: 78px; width: 200px; height: 200px; }
  .ov-bubble-vehicles { top: 275px; width: 155px; height: 155px; }
  .ov-bubble-control { top: 313px; left: 47%; }
}
@media (max-width: 1200px) {
  .shell.overview-mode .page.overview-page { padding: 25px 23px 20px; }
  .ov-heading { flex-direction: column; }
  .ov-tools { justify-content: flex-start; }
  .ov-hero { grid-template-columns: minmax(0, 1fr); }
  .ov-today { display: grid; grid-template-columns: .6fr 1fr 1fr 1fr; align-items: center; gap: 20px; padding: 20px 24px; }
  .ov-today .ov-section-heading { margin: 0; }
  .ov-today .ov-day-mark { display: none; }
  .ov-today-item { border: 0; padding: 0; }
  .ov-age { padding: 0; margin: 0; }
  .ov-age b { font-size: 19px; }
  .ov-panel { padding: 22px; }
  .ov-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 17px; }
  .ov-trend .ov-section-heading { flex-wrap: wrap; }
}
@media (max-width: 1050px) {
  .ov-grid { grid-template-columns: minmax(0, 1fr); }
  .ov-chart { max-width: 850px; margin-inline: auto; }
}
@media (min-width: 601px) and (max-width: 760px) {
  .ov-bubble-closed { width: 200px; height: 200px; left: 6%; }
  .ov-bubble-active { width: 150px; height: 150px; left: 52%; }
  .ov-bubble-vehicles { width: 128px; height: 128px; left: 70%; top: 246px; }
  .ov-bubble-control { width: 106px; height: 106px; left: 44%; top: 277px; }
}
@media (max-width: 600px) {
  .shell.overview-mode .page.overview-page { padding: 23px 14px 18px; }
  .ov-heading { gap: 15px; }
  .ov-heading h1 { font-size: 30px; letter-spacing: -.9px; }
  .ov-subtitle > span { display: block; margin-left: 0; font-size: 11px; }
  .ov-tools { gap: 6px; }
  .ov-tools button { font-size: 10px; padding: 9px 11px; }
  .ov-orbits { min-height: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; padding: 64px 18px 49px; }
  .ov-orbit-label { left: 18px; right: 18px; top: 21px; gap: 8px; justify-content: space-between; }
  .ov-orbit-label .ov-kicker { font-size: 8px; letter-spacing: 1.4px; }
  .ov-orbit-label > span:last-child { font-size: 9px; }
  .ov-bubble { position: relative; inset: auto; width: 100%; height: auto; aspect-ratio: 1; min-width: 0; }
  .ov-bubble strong, .ov-bubble-closed strong, .ov-bubble-vehicles strong, .ov-bubble-control strong { font-size: clamp(31px, 9vw, 46px); letter-spacing: -1px; }
  .ov-bubble .ov-bubble-label { font-size: 7px; letter-spacing: 1px; margin-bottom: 6px; padding: 0 10px; }
  .ov-bubble .ov-bubble-detail { font-size: 9px; margin-top: 4px; padding: 0 10px; }
  .ov-orbit-caption { left: 20px; font-size: 9px; }
  .ov-today { grid-template-columns: 1fr 1fr; gap: 20px; padding: 20px; }
  .ov-today .ov-section-heading { grid-column: 1 / -1; }
  .ov-today-item { gap: 5px; }
  .ov-today-item > span { font-size: 11px; }
  .ov-today-item strong { font-size: 27px; }
  .ov-today-item small { font-size: 9px; }
  .ov-age { grid-column: 1 / -1; flex-direction: row; justify-content: space-between; align-items: center; padding-top: 17px; border-top: 1px solid #304a51; }
  .ov-panel { padding: 21px 17px; border-radius: 20px; }
  .ov-panel h2 { font-size: 18px; }
  .ov-context h2 { font-size: 26px; }
  .ov-section-heading { gap: 10px; }
  .ov-footer button { width: 100%; }
  .overview-transition-bottom { left: 22px; right: 22px; bottom: 22px; justify-content: center; }
  .overview-transition-bottom > span { display:none; display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .ov-bubble, .overview-transition, .overview-transition * { animation: none !important; transition: none !important; }
}
