Spaces:
Sleeping
Sleeping
| :root { | |
| background: #eef2ef; | |
| color: #18211d; | |
| font-family: | |
| Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; | |
| font-synthesis: none; | |
| text-rendering: optimizeLegibility; | |
| -webkit-font-smoothing: antialiased; | |
| } | |
| * { | |
| box-sizing: border-box; | |
| } | |
| body { | |
| margin: 0; | |
| min-width: 320px; | |
| min-height: 100vh; | |
| } | |
| button, | |
| input, | |
| select { | |
| font: inherit; | |
| } | |
| button, | |
| select { | |
| cursor: pointer; | |
| } | |
| button:disabled { | |
| cursor: wait; | |
| opacity: 0.62; | |
| } | |
| .app-shell { | |
| display: grid; | |
| gap: 18px; | |
| margin: 0 auto; | |
| max-width: 1520px; | |
| min-height: 100vh; | |
| padding: 24px; | |
| } | |
| .centered { | |
| align-content: center; | |
| color: #4f5b55; | |
| justify-items: center; | |
| } | |
| .topbar { | |
| align-items: center; | |
| display: flex; | |
| gap: 18px; | |
| justify-content: space-between; | |
| } | |
| .eyebrow { | |
| color: #4e655b; | |
| font-size: 0.76rem; | |
| font-weight: 850; | |
| letter-spacing: 0; | |
| margin: 0 0 6px; | |
| text-transform: uppercase; | |
| } | |
| h1, | |
| h2, | |
| h3, | |
| p { | |
| margin-top: 0; | |
| } | |
| h1 { | |
| font-size: clamp(2.1rem, 5vw, 4.6rem); | |
| letter-spacing: 0; | |
| line-height: 0.94; | |
| margin-bottom: 0; | |
| } | |
| h2 { | |
| font-size: 1.18rem; | |
| letter-spacing: 0; | |
| line-height: 1.25; | |
| margin-bottom: 6px; | |
| } | |
| h3 { | |
| font-size: 1.02rem; | |
| line-height: 1.25; | |
| margin-bottom: 6px; | |
| } | |
| h4 { | |
| font-size: 0.92rem; | |
| line-height: 1.2; | |
| margin: 0; | |
| } | |
| .primary-action, | |
| .detail-head button, | |
| .player-actions a { | |
| align-items: center; | |
| border-radius: 8px; | |
| display: inline-flex; | |
| font-weight: 800; | |
| gap: 8px; | |
| min-height: 40px; | |
| padding: 0 13px; | |
| text-decoration: none; | |
| } | |
| .primary-action { | |
| background: #205f50; | |
| border: 1px solid #205f50; | |
| color: #ffffff; | |
| min-height: 44px; | |
| } | |
| .notice { | |
| align-items: center; | |
| background: #fff7ed; | |
| border: 1px solid #fed7aa; | |
| border-radius: 8px; | |
| color: #8a3b12; | |
| display: flex; | |
| gap: 10px; | |
| padding: 12px 14px; | |
| } | |
| .refresh-notice { | |
| align-items: center; | |
| background: #eef7f2; | |
| border: 1px solid #d3e9dc; | |
| border-radius: 8px; | |
| color: #23533e; | |
| display: flex; | |
| gap: 10px; | |
| padding: 12px 14px; | |
| } | |
| .refresh-notice.active { | |
| background: #f7faf7; | |
| color: #4b5b53; | |
| } | |
| .summary-grid, | |
| .team-metrics, | |
| .rating-grid { | |
| display: grid; | |
| gap: 10px; | |
| } | |
| .summary-grid { | |
| grid-template-columns: repeat(5, minmax(0, 1fr)); | |
| } | |
| .team-metrics, | |
| .rating-grid { | |
| grid-template-columns: repeat(3, minmax(0, 1fr)); | |
| } | |
| .stat-tile { | |
| background: #ffffff; | |
| border: 1px solid #dce5df; | |
| border-radius: 8px; | |
| display: grid; | |
| gap: 6px; | |
| min-width: 0; | |
| padding: 13px 14px; | |
| } | |
| .stat-tile span { | |
| color: #5b6962; | |
| font-size: 0.78rem; | |
| font-weight: 750; | |
| } | |
| .stat-tile strong { | |
| color: #17241f; | |
| font-size: 1.35rem; | |
| line-height: 1.05; | |
| overflow-wrap: anywhere; | |
| } | |
| .stat-tile.good strong { | |
| color: #17633f; | |
| } | |
| .stat-tile.warn strong { | |
| color: #a64622; | |
| } | |
| .workspace { | |
| align-items: start; | |
| display: grid; | |
| gap: 18px; | |
| grid-template-columns: minmax(410px, 0.92fr) minmax(0, 1.45fr); | |
| } | |
| .roster-panel, | |
| .detail-panel { | |
| background: #ffffff; | |
| border: 1px solid #dce5df; | |
| border-radius: 8px; | |
| min-width: 0; | |
| } | |
| .roster-panel { | |
| max-height: calc(100vh - 190px); | |
| overflow: hidden; | |
| position: sticky; | |
| top: 18px; | |
| } | |
| .detail-panel { | |
| display: grid; | |
| gap: 18px; | |
| padding: 18px; | |
| } | |
| .panel-head, | |
| .detail-head, | |
| .player-head { | |
| align-items: start; | |
| display: flex; | |
| gap: 14px; | |
| justify-content: space-between; | |
| } | |
| .panel-head { | |
| border-bottom: 1px solid #e3ebe6; | |
| padding: 16px; | |
| } | |
| .panel-head h2, | |
| .distribution summary { | |
| align-items: center; | |
| display: flex; | |
| gap: 8px; | |
| } | |
| .panel-head p, | |
| .detail-head p, | |
| .muted, | |
| .slot-label { | |
| color: #65736c; | |
| margin-bottom: 0; | |
| } | |
| .filters { | |
| border-bottom: 1px solid #e3ebe6; | |
| display: grid; | |
| gap: 10px; | |
| grid-template-columns: 1fr; | |
| padding: 12px; | |
| } | |
| .level-segment { | |
| border-bottom: 1px solid #e3ebe6; | |
| display: grid; | |
| gap: 8px; | |
| grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); | |
| padding: 12px 12px 0; | |
| } | |
| .level-segment button { | |
| background: #f8faf8; | |
| border: 1px solid #cfd9d3; | |
| border-radius: 8px 8px 0 0; | |
| color: #495850; | |
| font-weight: 850; | |
| min-height: 42px; | |
| } | |
| .level-segment button.active { | |
| background: #205f50; | |
| border-color: #205f50; | |
| color: #ffffff; | |
| } | |
| .search-field { | |
| align-items: center; | |
| background: #f8faf8; | |
| border: 1px solid #cfd9d3; | |
| border-radius: 8px; | |
| display: flex; | |
| gap: 8px; | |
| min-height: 42px; | |
| padding: 0 11px; | |
| } | |
| .search-field input { | |
| background: transparent; | |
| border: 0; | |
| color: #17241f; | |
| min-width: 0; | |
| outline: 0; | |
| width: 100%; | |
| } | |
| select { | |
| background: #ffffff; | |
| border: 1px solid #cfd9d3; | |
| border-radius: 8px; | |
| color: #1f2a25; | |
| min-height: 40px; | |
| min-width: 0; | |
| padding: 0 10px; | |
| } | |
| .team-list { | |
| max-height: calc(100vh - 370px); | |
| overflow: auto; | |
| padding: 8px; | |
| } | |
| .team-row { | |
| align-items: center; | |
| background: transparent; | |
| border: 1px solid transparent; | |
| border-radius: 8px; | |
| color: #1d2924; | |
| display: grid; | |
| gap: 10px; | |
| grid-template-columns: minmax(0, 1fr) max-content; | |
| min-height: 64px; | |
| padding: 10px; | |
| text-align: left; | |
| width: 100%; | |
| } | |
| .team-row:hover, | |
| .team-row.selected { | |
| background: #f4f8f5; | |
| border-color: #c9d8d0; | |
| } | |
| .team-names { | |
| display: grid; | |
| gap: 4px; | |
| min-width: 0; | |
| } | |
| .team-names strong, | |
| .team-names small { | |
| overflow-wrap: anywhere; | |
| } | |
| .team-player-name.rated { | |
| color: #17633f; | |
| } | |
| .team-player-name.unrated { | |
| color: #9a3f17; | |
| } | |
| .team-player-name.missing, | |
| .name-divider { | |
| color: #7a847e; | |
| } | |
| .inline-rating { | |
| background: rgba(23, 99, 63, 0.1); | |
| border-radius: 999px; | |
| display: inline-block; | |
| font-size: 0.72rem; | |
| font-weight: 850; | |
| margin-left: 6px; | |
| padding: 2px 6px; | |
| vertical-align: 1px; | |
| } | |
| .team-player-name.unrated .inline-rating, | |
| .team-player-name.missing .inline-rating { | |
| background: rgba(154, 63, 23, 0.1); | |
| } | |
| .team-names small { | |
| color: #66756d; | |
| } | |
| .team-state { | |
| border-radius: 999px; | |
| font-size: 0.76rem; | |
| font-weight: 850; | |
| padding: 5px 8px; | |
| } | |
| .team-state.complete { | |
| background: #e7f4ed; | |
| color: #17633f; | |
| } | |
| .team-state.incomplete { | |
| background: #fff0e6; | |
| color: #9a3f17; | |
| } | |
| .detail-head { | |
| border-bottom: 1px solid #e3ebe6; | |
| padding-bottom: 16px; | |
| } | |
| .detail-head button { | |
| background: #ffffff; | |
| border: 1px solid #cbd8d1; | |
| color: #1f2c26; | |
| } | |
| .player-grid { | |
| display: grid; | |
| gap: 14px; | |
| grid-template-columns: repeat(2, minmax(0, 1fr)); | |
| } | |
| .player-card { | |
| border: 1px solid #dce5df; | |
| border-radius: 8px; | |
| display: grid; | |
| gap: 14px; | |
| min-width: 0; | |
| padding: 15px; | |
| } | |
| .player-card.rated { | |
| border-color: #a8d8bc; | |
| } | |
| .player-card.unrated { | |
| background: #fffdf9; | |
| } | |
| .slot-label { | |
| font-size: 0.76rem; | |
| font-weight: 850; | |
| text-transform: uppercase; | |
| } | |
| .id-pill { | |
| background: #e7f4ed; | |
| border-radius: 999px; | |
| color: #17633f; | |
| flex: 0 0 auto; | |
| font-size: 0.8rem; | |
| font-weight: 850; | |
| padding: 6px 9px; | |
| } | |
| .id-pill.missing { | |
| background: #f2ece4; | |
| color: #8c431b; | |
| } | |
| .rating-note { | |
| align-items: center; | |
| background: #eef7f2; | |
| border: 1px solid #d3e9dc; | |
| border-radius: 8px; | |
| color: #23533e; | |
| display: flex; | |
| gap: 8px; | |
| line-height: 1.35; | |
| min-height: 42px; | |
| padding: 10px; | |
| } | |
| .rating-note.unavailable { | |
| background: #f7f5ee; | |
| border-color: #e7dfcf; | |
| color: #715d36; | |
| } | |
| .match-panel { | |
| border: 1px solid #e0e8e2; | |
| border-radius: 8px; | |
| display: grid; | |
| gap: 10px; | |
| padding: 12px; | |
| } | |
| .match-panel.has-matches { | |
| background: #f2faf5; | |
| border-color: #b9dfc8; | |
| } | |
| .match-panel-head { | |
| align-items: center; | |
| color: #27362f; | |
| display: flex; | |
| gap: 8px; | |
| } | |
| .match-summary, | |
| .compact-text { | |
| color: #5f6d66; | |
| line-height: 1.4; | |
| margin-bottom: 0; | |
| } | |
| .recent-matches { | |
| display: grid; | |
| gap: 8px; | |
| } | |
| .match-row { | |
| background: #f7faf7; | |
| border: 1px solid #e0e8e2; | |
| border-radius: 8px; | |
| display: grid; | |
| gap: 4px; | |
| padding: 10px; | |
| } | |
| .match-row strong, | |
| .match-row span, | |
| .match-row small { | |
| overflow-wrap: anywhere; | |
| } | |
| .match-row span { | |
| color: #26342d; | |
| font-weight: 750; | |
| } | |
| .match-row small { | |
| color: #66756d; | |
| } | |
| .player-actions { | |
| display: grid; | |
| gap: 8px; | |
| } | |
| .player-actions a { | |
| justify-content: center; | |
| width: 100%; | |
| } | |
| .player-actions .explorer-action { | |
| background: #205f50; | |
| border: 1px solid #205f50; | |
| color: #ffffff; | |
| min-height: 46px; | |
| } | |
| .player-actions .dupr-action { | |
| background: #ffffff; | |
| border: 1px solid #cbd8d1; | |
| color: #1f2c26; | |
| } | |
| .empty-state { | |
| align-items: start; | |
| color: #65736c; | |
| display: grid; | |
| gap: 8px; | |
| padding: 24px; | |
| } | |
| .empty-state strong { | |
| color: #26342d; | |
| } | |
| .empty-state button { | |
| background: #ffffff; | |
| border: 1px solid #cbd8d1; | |
| border-radius: 8px; | |
| color: #1f2c26; | |
| font-weight: 800; | |
| min-height: 38px; | |
| padding: 0 12px; | |
| width: fit-content; | |
| } | |
| .spin { | |
| animation: spin 0.9s linear infinite; | |
| } | |
| @keyframes spin { | |
| to { | |
| transform: rotate(360deg); | |
| } | |
| } | |
| @media (max-width: 1100px) { | |
| .workspace { | |
| grid-template-columns: 1fr; | |
| } | |
| .roster-panel { | |
| max-height: none; | |
| position: static; | |
| } | |
| .team-list { | |
| max-height: 520px; | |
| } | |
| } | |
| @media (max-width: 760px) { | |
| .app-shell { | |
| padding: 14px; | |
| } | |
| .topbar, | |
| .detail-head, | |
| .player-head { | |
| align-items: stretch; | |
| flex-direction: column; | |
| } | |
| .summary-grid, | |
| .team-metrics, | |
| .player-grid { | |
| grid-template-columns: 1fr; | |
| } | |
| .filters { | |
| grid-template-columns: 1fr; | |
| } | |
| .level-segment { | |
| grid-template-columns: repeat(2, minmax(0, 1fr)); | |
| } | |
| .search-field { | |
| grid-column: auto; | |
| } | |
| .team-row { | |
| grid-template-columns: 1fr; | |
| } | |
| .team-state { | |
| justify-self: start; | |
| } | |
| } | |