*{margin:0;padding:0;box-sizing:border-box}:root{font-family:Poppins,sans-serif;line-height:1.5;font-weight:400;color-scheme:light;color:#002747;background-color:#fff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#00b69f;text-decoration:inherit}a:hover{text-decoration:underline}body{min-width:320px;min-height:100vh;font-family:Poppins,sans-serif;color:#002747;background:#fff}h1{font-size:2.4rem;line-height:1.1;font-weight:700}button{border-radius:20px;border:1px solid #6fb4e3;padding:8px 20px;font-size:.82rem;font-weight:500;font-family:inherit;background-color:#0c4a7d;color:#6fb4e3;cursor:pointer;transition:all .2s}button:hover{background-color:#00b69f1a;border-color:#00b69f;color:#00b69f}button:focus,button:focus-visible{outline:2px solid #00b69f;outline-offset:2px}.health-sparkline{display:flex;align-items:center;gap:2px}.health-sparkline--empty{font-size:.7rem;font-weight:600;color:#6b7280}.health-sparkline__day{width:6px;height:16px;border-radius:2px;background:#00b69f}.health-sparkline__day--red{background:#d9373b}.health-sparkline__day--amber{background:#faa51a}.health-sparkline__day--escalated{box-shadow:0 0 0 1px #002747 inset}.loader{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:100vh}.loader__logo{width:160px;height:auto}.loader__wordmark{fill:#00497d}.loader__segment{fill:#2dceb2;opacity:.25;animation:loader-pulse 1.2s ease-in-out infinite}.loader__segment--1{animation-delay:0s}.loader__segment--2{animation-delay:.15s}.loader__segment--3{animation-delay:.3s}.loader__segment--4{animation-delay:.45s}.loader__label{font-size:.85rem;color:#0c4a7d}@keyframes loader-pulse{0%,to{opacity:.25}50%{opacity:1}}.status-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:16px;font-size:.8rem;font-weight:600}.status-badge__dot{width:6px;height:6px;border-radius:50%;display:inline-block}.status-badge--green{background:#00b69f26;color:#00b69f}.status-badge--green .status-badge__dot{background:#00b69f}.status-badge--amber{background:#faa51a26;color:#faa51a}.status-badge--amber .status-badge__dot{background:#faa51a}.status-badge--red{background:#d9373b26;color:#d9373b}.status-badge--red .status-badge__dot{background:#d9373b}.status-badge--blue{background:#6fb4e326;color:#6fb4e3}.status-badge--blue .status-badge__dot{background:#6fb4e3}.status-badge--grey{background:#cfd1d126;color:#cfd1d1}.status-badge--grey .status-badge__dot{background:#cfd1d1}.rag-status-badge{display:inline-block;padding:4px 14px;border-radius:16px;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.rag-status-badge--red{background:#d9373b26;color:#d9373b}.rag-status-badge--amber{background:#faa51a26;color:#faa51a}.rag-status-badge--green{background:#00b69f26;color:#00b69f}.rag-status-badge-wrapper{position:relative;display:inline-block}.rag-status-popover{display:none;position:absolute;top:100%;right:0;margin-top:8px;z-index:20;padding:12px;min-width:320px;background:#002747;border-radius:10px;box-shadow:0 8px 20px #00000059}.rag-status-popover .sensor-flag-list{margin-bottom:0}.rag-status-popover .sensor-flag{max-width:none}.rag-status-badge-wrapper:hover .rag-status-popover,.rag-status-badge-wrapper:focus-within .rag-status-popover{display:block}.progress-bar-wrap{display:flex;align-items:center;gap:10px}.progress-bar-track{flex:1;height:12px;background:#e5e7e7;border-radius:6px;overflow:hidden;min-width:80px}.progress-bar-fill{height:100%;border-radius:6px;background:linear-gradient(90deg,#00b69f,#6fb4e3);box-shadow:0 0 8px #00b69f59;transition:width .6s ease}.progress-bar-label{font-size:.75rem;font-weight:600;color:#0c4a7d;white-space:nowrap;min-width:84px}.health-trend{display:flex;flex-direction:column;gap:20px}.health-trend__empty{color:#6b7280;font-size:.9rem}.health-trend__section{display:flex;flex-direction:column;gap:8px}.health-trend__section-label{font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#6b7280}.health-trend__daily{display:flex;align-items:flex-end;gap:4px}.health-trend__day{width:16px;height:28px;border-radius:4px;background:#00b69f}.health-trend__day--red{background:#d9373b}.health-trend__day--amber{background:#faa51a}.health-trend__day--escalated{box-shadow:0 0 0 2px #002747 inset}.health-trend__weekly{display:flex;align-items:flex-end;gap:6px}.health-trend__week{display:flex;flex-direction:column;align-items:center;gap:4px}.health-trend__week-bar{display:flex;flex-direction:column;width:20px;height:48px;border-radius:4px;overflow:hidden;background:#f1f2f3}.health-trend__week-segment{width:100%}.health-trend__week-segment--red{background:#d9373b}.health-trend__week-segment--amber{background:#faa51a}.health-trend__week-segment--green{background:#00b69f}.health-trend__week-label{font-size:.62rem;color:#6b7280;white-space:nowrap}#root{max-width:1320px;margin:0 auto;padding:40px 48px;text-align:left}.portal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:36px;background:#002747;border-radius:14px;padding:28px 36px;position:relative;border-left:4px solid #00b69f}.portal-header:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background-image:radial-gradient(circle at 80% 50%,rgba(0,182,159,.08) 0%,transparent 60%),repeating-linear-gradient(90deg,rgba(111,180,227,.04) 0px,rgba(111,180,227,.04) 1px,transparent 1px,transparent 48px),repeating-linear-gradient(0deg,rgba(111,180,227,.04) 0px,rgba(111,180,227,.04) 1px,transparent 1px,transparent 48px);pointer-events:none}.portal-header__left{position:relative;min-width:0}.portal-header__left h1{font-size:2.4rem;font-weight:700;color:#fff;margin-bottom:4px;letter-spacing:-.5px}.portal-header__subtitle{color:#6fb4e3;font-size:.88rem;font-weight:500;text-transform:uppercase;letter-spacing:1.5px}.portal-header__badges{display:flex;gap:8px;align-items:center;position:relative;flex-shrink:0}.portal-header__badge{display:inline-block;padding:7px 20px;border-radius:20px;font-size:.82rem;font-weight:600;letter-spacing:.5px;background:#00b69f;color:#fff;box-shadow:0 0 12px #00b69f66}.portal-back-link{display:inline-block;margin-bottom:16px;font-size:.88rem;font-weight:500;color:#00b69f}table{width:100%;border-collapse:collapse;margin-bottom:24px;font-size:.88rem}th{text-align:left;padding:13px 16px;font-weight:600;font-size:.72rem;text-transform:uppercase;letter-spacing:.8px;color:#6fb4e3;border-bottom:1px solid #6fb4e3;background:transparent}td{padding:14px 16px;border-bottom:1px solid #e5e7e7;vertical-align:middle;color:#002747}tr:hover td{background:#00b69f0a}tr.row-needs-attention td{background:#fdf0e3}tr.row-needs-attention:hover td{background:#fbe4cc}.portal-error{color:#d9373b;font-weight:500}h2{font-size:1.05rem;font-weight:700;color:#002747;margin-top:48px;margin-bottom:20px;text-transform:uppercase;letter-spacing:1.2px;display:flex;align-items:center;gap:10px}h2:first-of-type{margin-top:24px}h2:before{content:"";display:inline-block;width:3px;height:18px;background:#00b69f;border-radius:2px;flex-shrink:0}h2:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,#6fb4e330,transparent);margin-left:4px}.vp-overview-rollup__heading-row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:24px}.vp-overview-rollup__heading-row h2{flex:1 1 auto;min-width:0;margin:0}.vp-overview-rollup__meta{display:flex;align-items:center;gap:8px;flex-shrink:0}.vp-overview-rollup__subtitle{color:#6b7280;font-size:.85rem;margin:6px 0 20px}.vp-overview-rollup__cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.attention-card{display:flex;flex-direction:column;gap:10px;background:#f1f2f3;border-radius:12px;padding:24px;position:relative;overflow:hidden}.attention-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;border-radius:12px 12px 0 0;background:#00b69f}.attention-card--red:before{background:#d9373b}.attention-card--amber:before{background:#faa51a}.attention-card--green:before{background:#00b69f}.attention-card__badges{display:flex;align-items:center;justify-content:space-between;gap:8px}.attention-card__category{display:inline-flex;align-items:center;gap:6px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.6px;padding:4px 10px;border-radius:12px;background:#00b69f26;color:#5fe3c9}.attention-card--red .attention-card__category{background:#d9373b26;color:#ff9a9a}.attention-card--amber .attention-card__category{background:#faa51a26;color:#ffc774}.attention-card__trend{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#6fb4e3;white-space:nowrap}.attention-card__trend--worse{color:#ff9a9a}.attention-card__trend--better{color:#5fe3c9}.attention-card__team{color:#002171;font-size:1.15rem;margin:0}.attention-card__reason{color:#2b3032;font-size:.88rem;margin:0}.attention-card__action{color:#2b3032;font-size:.85rem;margin:0}.attention-card__action strong{color:#002171}.attention-card__delta{color:#2b3032;font-size:.78rem;font-style:italic;margin:0}.attention-card__actions{display:flex;gap:10px;margin-top:auto;padding-top:8px}.attention-card__primary-action{flex:1;text-align:center;background:#00b69f;color:#002747;font-weight:700;padding:9px 14px;border-radius:20px;font-size:.82rem;text-decoration:none}.attention-card__primary-action:hover{background:#00d6ba;text-decoration:none}.attention-card__secondary-action{display:inline-flex;align-items:center;justify-content:center;padding:9px 16px;border-radius:20px;border:1px solid #6fb4e3;color:#6fb4e3;font-weight:600;font-size:.82rem;text-decoration:none}.attention-card__secondary-action:hover{border-color:#00b69f;color:#00b69f;text-decoration:none}.team-swimlane{margin-top:20px}.team-swimlane:first-of-type{margin-top:4px}.team-swimlane__header{display:flex;align-items:baseline;gap:10px;margin-bottom:12px}.team-swimlane__name{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:#6fb4e3}.team-swimlane__count{font-size:.8rem;color:#6b7280}.team-swimlane__cards{display:grid;grid-template-columns:repeat(4,minmax(220px,1fr));gap:16px}@media (max-width: 1100px){.team-swimlane__cards{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}}.team-card{display:flex;flex-direction:column;gap:12px;background:#f1f2f3;border-radius:12px;padding:20px;position:relative;overflow:hidden;text-decoration:none;transition:box-shadow .15s ease}.team-card:hover{box-shadow:0 4px 14px #0027471f;text-decoration:none}.team-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:#00b69f}.team-card--red:before{background:#d9373b}.team-card--amber:before{background:#faa51a}.team-card__header{display:flex;align-items:center;justify-content:space-between;gap:8px}.team-card__name{color:#002171;font-size:1rem;font-weight:600}.team-card__escalated{align-self:flex-start;color:#fff;background:#d9373b;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:3px 10px;border-radius:12px}.team-card__stats{display:flex;gap:20px;margin-top:auto}.team-card__stat{display:flex;flex-direction:column;gap:2px}.team-card__stat-label{font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#6b7280}.team-card__stat-value{font-size:1.05rem;font-weight:700;color:#002171}.team-card__stat-value--icon{display:flex;align-items:center;gap:4px}.team-card__health{display:flex;flex-direction:column;gap:4px}.team-detail-header{margin-bottom:36px}.team-detail-header__title-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.team-detail-header__title-row h1{margin:0}.team-detail-status__escalated{color:#fff;background:#d9373b;font-weight:600;font-size:.8rem;padding:4px 12px;border-radius:16px;letter-spacing:.3px}.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:24px}.summary-card{background:#f1f2f3;border-radius:12px;padding:24px;position:relative;overflow:hidden}.summary-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#00b69f,#00b69f);border-radius:12px 12px 0 0}.summary-card .card-label{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:#2b3032;margin-bottom:12px}.summary-card .card-value{font-size:2.6rem;font-weight:700;color:#002171;margin-bottom:4px}.summary-card .card-detail{font-size:.82rem;color:#2b3032}.summary-card .card-badge{display:inline-block;margin-top:8px;font-size:.72rem;font-weight:600;padding:2px 10px;border-radius:10px;background:#00b69f26;color:#00b69f}.team-detail-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-bottom:8px}.team-detail-summary__card{border:1px solid #6fb4e3;border-radius:12px;padding:24px;position:relative;overflow:hidden}.team-detail-summary__card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#00b69f,#00b69f);border-radius:12px 12px 0 0}.team-detail-summary__card h2{margin:0 0 12px;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:#0c4a7d;display:block}.team-detail-summary__card h2:before,.team-detail-summary__card h2:after{content:none;display:none}.team-detail-summary__card p{color:#0c4a7d;font-size:.95rem;margin:0}.team-detail-section{margin-bottom:8px}.section-empty-state{color:#6b7280;font-style:italic}.section-note{color:#6b7280;font-size:.88em;font-style:italic}.table-expand-toggle{margin-top:8px;border:none;background:#00b69f;color:#002747;font-weight:700;padding:9px 14px;border-radius:20px;font-size:.82rem}.table-expand-toggle:hover{background:#00d6ba;border:none;color:#002747}.table-row-enter{animation:table-row-slide-in .2s ease-out}@keyframes table-row-slide-in{0%{transform:translateY(-6px)}to{transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.table-row-enter{animation:none}}.sensor-flag-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:8px;margin-bottom:24px}.sensor-flag{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #6fb4e3;padding:12px 20px;max-width:32rem}.sensor-flag:last-child{border-bottom:none}.sensor-flag__label{color:#6fb4e3;font-size:.85rem;font-weight:500}.blockers-table td:nth-child(3){max-width:420px}.blockers-table td:first-child{border-left:3px solid #d9373b}.blockers-table td:first-child a{color:#d9373b;font-weight:600}.risks-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(calc((100% - 48px)/4),1fr));gap:16px;margin-bottom:24px}.risk-card{display:flex;flex-direction:column;gap:12px;background:#0c4a7d;border:1px solid #6fb4e3;border-radius:10px;padding:16px 18px}.risk-card__id{color:#00b69f;font-weight:600;font-size:.85rem;margin-bottom:4px}.risk-card__description{color:#fff;font-size:.85rem;margin:0}.risk-card__scores{display:flex;gap:8px}.risk-card__score{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;flex:1;padding:8px 10px;border-radius:10px}.risk-card__score-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.5px;color:#6fb4e3}.maintenance-allocation__summary{display:grid;grid-template-columns:1fr 2fr;gap:16px;margin-bottom:24px}.maintenance-allocation__stat{background:#f1f2f3;border-radius:12px;padding:24px;text-align:center;display:flex;flex-direction:column;justify-content:center;gap:8px}.maintenance-allocation__stat-label{font-size:.72rem;text-transform:uppercase;letter-spacing:1px;color:#2b3032;font-weight:600}.maintenance-allocation__stat-value{font-size:2.2rem;font-weight:700;color:#002171}footer{margin-top:48px;padding-top:16px;border-top:1px solid #6fb4e3;font-size:.78rem;color:#6b7280;text-align:center}
