Files
hockey_new/hockey_data/static/admin-directories.css

1729 lines
75 KiB
CSS

.hockey-directory-backdrop {
position: fixed;
z-index: 10050;
inset: 0;
display: grid;
place-items: center;
padding: 22px;
background: rgba(2, 8, 15, .78);
backdrop-filter: blur(8px);
}
.hockey-directory-modal {
width: min(1240px, 96vw);
max-height: 92vh;
overflow: hidden;
color: #dfe9f7;
border: 1px solid #29415c;
border-radius: 18px;
background: #0b1625;
box-shadow: 0 24px 80px rgba(0, 0, 0, .55);
}
.hockey-directory-modal > header {
min-height: 68px;
display: flex;
align-items: center;
justify-content: space-between;
gap: 18px;
padding: 12px 18px;
border-bottom: 1px solid #24394f;
background: linear-gradient(100deg, rgba(72, 223, 189, .09), transparent 42%);
}
.hockey-directory-modal > header > div {
display: grid;
gap: 2px;
}
.hockey-directory-modal > header span {
color: #48dfbd;
font-size: 9px;
font-weight: 900;
letter-spacing: .16em;
}
.hockey-directory-modal > header strong {
font-size: 18px;
font-weight: 900;
}
.hockey-directory-close {
width: 38px;
height: 38px;
color: #9eb0c5;
border: 1px solid #304863;
border-radius: 10px;
background: #101e2f;
font-size: 24px;
line-height: 1;
}
.hockey-directory-modal > nav {
display: flex;
gap: 4px;
padding: 8px 16px 0;
border-bottom: 1px solid #24394f;
background: #0d1928;
}
.hockey-directory-modal > nav button {
min-height: 38px;
padding: 0 18px;
color: #8498b0;
border: 0;
border-bottom: 2px solid transparent;
background: transparent;
font-weight: 850;
}
.hockey-directory-modal > nav button.is-active {
color: #eaf4ff;
border-bottom-color: #48dfbd;
}
.hockey-directory-content {
max-height: calc(92vh - 116px);
overflow: auto;
padding: 16px;
}
.hockey-directory-toolbar {
display: flex;
align-items: end;
justify-content: space-between;
gap: 12px;
}
.hockey-directory-toolbar-actions,
.hockey-directory-form-actions {
display: flex;
justify-content: flex-end;
gap: 8px;
}
.hockey-directory-toolbar button,
.hockey-directory-form-actions button,
.hockey-directory-edit {
min-height: 36px;
padding: 0 12px;
color: #cbd8e8;
border: 1px solid #304863;
border-radius: 9px;
background: #142338;
font-size: 11px;
font-weight: 800;
}
.hockey-directory-toolbar button:hover,
.hockey-directory-form-actions button:hover,
.hockey-directory-edit:hover {
border-color: #4b6a89;
}
.hockey-directory-toolbar button.is-accent,
.hockey-directory-form-actions button.is-accent {
color: #06130f;
border-color: transparent;
background: #48dfbd;
}
.hockey-directory-context {
min-height: 42px;
display: grid;
align-content: center;
gap: 2px;
padding: 7px 12px;
border: 1px solid #29435c;
border-radius: 10px;
background: #101e30;
}
.hockey-directory-context span,
.hockey-directory-filter span {
color: #71869f;
font-size: 8px;
font-weight: 900;
letter-spacing: .08em;
text-transform: uppercase;
}
.hockey-directory-context strong {
color: #dce8f6;
font-size: 12px;
}
.hockey-directory-filter {
display: grid;
gap: 4px;
}
.hockey-directory-filter select {
min-width: 230px;
min-height: 36px;
padding: 0 10px;
color: #dce8f6;
border: 1px solid #304863;
border-radius: 9px;
background: #101e30;
}
.hockey-directory-note {
margin: 10px 0 14px;
color: #7f93aa;
font-size: 11px;
}
.hockey-directory-status {
margin: 0 0 12px;
padding: 9px 11px;
color: #9bf0da;
border: 1px solid rgba(72, 223, 189, .28);
border-radius: 9px;
background: rgba(72, 223, 189, .07);
font-size: 11px;
font-weight: 750;
}
.hockey-directory-status.is-error {
color: #ff9cac;
border-color: rgba(255, 95, 121, .32);
background: rgba(255, 95, 121, .08);
}
.hockey-directory-grid {
display: grid;
grid-template-columns: minmax(0, 1.65fr) minmax(310px, .75fr);
align-items: start;
gap: 14px;
}
.hockey-directory-table-wrap {
max-height: 560px;
overflow: auto;
border: 1px solid #263d56;
border-radius: 12px;
background: #091421;
}
.hockey-directory-table-wrap table {
width: 100%;
border-collapse: collapse;
font-size: 10px;
}
.hockey-directory-table-wrap th {
position: sticky;
z-index: 1;
top: 0;
padding: 9px 8px;
color: #7f94ad;
border-bottom: 1px solid #2a4058;
background: #111e2e;
font-size: 8px;
letter-spacing: .06em;
text-align: left;
text-transform: uppercase;
}
.hockey-directory-table-wrap td {
padding: 8px;
border-bottom: 1px solid #1d3147;
vertical-align: middle;
}
.hockey-directory-table-wrap tr:last-child td {
border-bottom: 0;
}
.hockey-directory-table-wrap tr.is-inactive {
opacity: .48;
}
.hockey-directory-table-wrap td strong,
.hockey-directory-table-wrap td small {
display: block;
}
.hockey-directory-table-wrap td small {
margin-top: 2px;
color: #71859e;
font-size: 8px;
}
.hockey-directory-table-wrap code {
color: #87e4ce;
font-size: 9px;
}
.hockey-directory-source {
display: inline-flex;
padding: 3px 6px;
color: #92a5ba;
border: 1px solid #2d455f;
border-radius: 999px;
font-size: 8px;
white-space: nowrap;
}
.hockey-directory-edit {
min-height: 29px;
padding: 0 8px;
font-size: 9px;
}
.hockey-directory-empty,
.hockey-directory-loading {
padding: 42px !important;
color: #7489a2;
text-align: center;
}
.hockey-directory-form {
display: grid;
gap: 10px;
padding: 14px;
border: 1px solid #2a425c;
border-radius: 12px;
background: #101d2d;
}
.hockey-directory-form h3 {
margin: 0 0 2px;
color: #e7f0fb;
font-size: 13px;
}
.hockey-directory-form label {
display: grid;
gap: 4px;
}
.hockey-directory-form label > span {
color: #7f93ab;
font-size: 9px;
font-weight: 800;
}
.hockey-directory-form input,
.hockey-directory-form select {
width: 100%;
min-height: 35px;
padding: 0 9px;
color: #e1ebf7;
border: 1px solid #304861;
border-radius: 8px;
background: #0a1624;
outline: none;
}
.hockey-directory-form input:focus,
.hockey-directory-form select:focus {
border-color: #48dfbd;
box-shadow: 0 0 0 3px rgba(72, 223, 189, .08);
}
.hockey-directory-form input[readonly] {
color: #8397ad;
background: #0d1825;
}
.hockey-directory-form-columns {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 9px;
}
.hockey-directory-form label.hockey-directory-check {
display: flex;
align-items: center;
gap: 8px;
}
.hockey-directory-check input {
width: 16px;
min-height: 16px;
accent-color: #48dfbd;
}
@media (max-width: 900px) {
.hockey-directory-backdrop { padding: 8px; }
.hockey-directory-modal { width: 99vw; max-height: 97vh; }
.hockey-directory-content { max-height: calc(97vh - 116px); }
.hockey-directory-grid { grid-template-columns: 1fr; }
.hockey-directory-toolbar { align-items: stretch; flex-direction: column; }
.hockey-directory-toolbar-actions { justify-content: stretch; }
.hockey-directory-toolbar-actions button { flex: 1; }
}
/* Expanded hockey directories */
.hockey-directory-modal > nav {
overflow-x: auto;
overflow-y: hidden;
scrollbar-width: thin;
}
.hockey-directory-modal > nav button {
flex: 0 0 auto;
white-space: nowrap;
}
.hockey-directory-filter input {
min-width: 230px;
min-height: 36px;
padding: 0 10px;
color: #dce8f6;
border: 1px solid #304863;
border-radius: 9px;
outline: 0;
background: #101e30;
}
.hockey-directory-filter input:focus {
border-color: #4f789d;
box-shadow: 0 0 0 2px rgba(72, 223, 189, .1);
}
.hockey-directory-flag {
width: 44px;
font-size: 20px;
text-align: center !important;
}
.hockey-directory-flag img {
width: 26px;
height: 19px;
display: inline-block;
object-fit: cover;
border: 1px solid rgba(255,255,255,.18);
border-radius: 3px;
box-shadow: 0 2px 5px rgba(0,0,0,.24);
vertical-align: middle;
}
/* Build 2026.07.17.8: deterministic local country flags. */
.hockey-directory-flag img {
display: block;
width: 26px;
height: 18px;
margin: 0 auto;
object-fit: cover;
border-radius: 3px;
box-shadow: 0 0 0 1px rgba(145, 179, 208, .28);
}
.hockey-directory-flag-fallback { font-size: 18px; line-height: 1; }
/* BUILD 2026.07.20.9 — visible timer and strength settings in the main admin panel. */
.hockey-directory-modal > nav {
overflow-x: auto;
scrollbar-width: thin;
}
.hockey-directory-modal > nav button {
flex: 0 0 auto;
white-space: nowrap;
}
.hockey-rules-page {
display: grid;
gap: 14px;
}
.hockey-rules-intro {
display: flex;
align-items: center;
justify-content: space-between;
gap: 20px;
padding: 16px 18px;
border: 1px solid #29435c;
border-radius: 14px;
background: linear-gradient(115deg, rgba(72, 223, 189, .09), rgba(15, 31, 49, .75) 48%, #0c1827);
}
.hockey-rules-intro > div {
display: grid;
gap: 3px;
}
.hockey-rules-intro span {
color: #48dfbd;
font-size: 9px;
font-weight: 900;
letter-spacing: .14em;
}
.hockey-rules-intro h2 {
margin: 0;
color: #eef7ff;
font-size: 21px;
}
.hockey-rules-intro p {
max-width: 730px;
margin: 2px 0 0;
color: #8da2b9;
font-size: 11px;
line-height: 1.5;
}
.hockey-rules-intro button,
.hockey-rules-actions button {
min-height: 40px;
padding: 0 15px;
color: #06130f;
border: 0;
border-radius: 10px;
background: #48dfbd;
font-size: 11px;
font-weight: 900;
white-space: nowrap;
}
.hockey-rules-form {
display: grid;
gap: 12px;
}
.hockey-rules-card {
display: grid;
gap: 16px;
padding: 16px;
border: 1px solid #263e57;
border-radius: 14px;
background: #0a1624;
}
.hockey-rules-card > header {
display: flex;
align-items: center;
gap: 11px;
padding-bottom: 11px;
border-bottom: 1px solid #20364d;
}
.hockey-rules-card > header > span {
display: grid;
place-items: center;
width: 34px;
height: 34px;
color: #06130f;
border-radius: 10px;
background: #48dfbd;
font-size: 10px;
font-weight: 950;
}
.hockey-rules-card > header > div {
display: grid;
gap: 2px;
}
.hockey-rules-card > header strong {
color: #e8f2fd;
font-size: 14px;
}
.hockey-rules-card > header small,
.hockey-rules-card label > small,
.hockey-rules-actions small {
color: #71879f;
font-size: 9px;
line-height: 1.4;
}
.hockey-rules-fields {
display: grid;
gap: 11px;
}
.hockey-rules-fields.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.hockey-rules-fields.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.hockey-rules-fields.four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.hockey-rules-fields.compact { max-width: 680px; }
.hockey-rules-fields label {
display: grid;
align-content: start;
gap: 6px;
min-width: 0;
}
.hockey-rules-fields label > span {
color: #9eb1c7;
font-size: 10px;
font-weight: 850;
}
.hockey-rules-fields input,
.hockey-rules-fields select {
width: 100%;
min-height: 40px;
box-sizing: border-box;
padding: 0 11px;
color: #eef7ff;
border: 1px solid #304b67;
border-radius: 9px;
outline: none;
background: #101f31;
font-size: 12px;
font-weight: 750;
}
.hockey-rules-fields input:focus,
.hockey-rules-fields select:focus {
border-color: #48dfbd;
box-shadow: 0 0 0 3px rgba(72, 223, 189, .09);
}
.hockey-rules-number {
display: grid;
grid-template-columns: minmax(0, 1fr) 40px;
overflow: hidden;
border: 1px solid #304b67;
border-radius: 9px;
background: #101f31;
}
.hockey-rules-number input {
border: 0;
border-radius: 0;
background: transparent;
}
.hockey-rules-number b {
display: grid;
place-items: center;
color: #78ddc6;
border-left: 1px solid #29445f;
background: #13263a;
font-size: 10px;
}
.hockey-rules-switch {
display: flex;
align-items: center;
gap: 11px;
cursor: pointer;
}
.hockey-rules-switch > input {
position: absolute;
opacity: 0;
pointer-events: none;
}
.hockey-rules-switch > i {
position: relative;
flex: 0 0 auto;
width: 38px;
height: 21px;
border: 1px solid #34506c;
border-radius: 999px;
background: #132337;
transition: .18s ease;
}
.hockey-rules-switch > i::after {
content: "";
position: absolute;
top: 3px;
left: 3px;
width: 13px;
height: 13px;
border-radius: 50%;
background: #7f94aa;
transition: .18s ease;
}
.hockey-rules-switch > input:checked + i {
border-color: #48dfbd;
background: rgba(72, 223, 189, .22);
}
.hockey-rules-switch > input:checked + i::after {
left: 20px;
background: #48dfbd;
}
.hockey-rules-switch > span {
display: grid;
gap: 2px;
}
.hockey-rules-switch strong {
color: #cddbeb;
font-size: 11px;
}
.hockey-rules-switch small {
color: #71879f;
font-size: 9px;
}
.hockey-rules-example {
padding: 10px 12px;
color: #8da3ba;
border: 1px solid rgba(76, 151, 214, .22);
border-radius: 9px;
background: rgba(76, 151, 214, .06);
font-size: 10px;
line-height: 1.45;
}
.hockey-rules-example strong {
color: #bcd9f2;
}
.hockey-rules-actions {
position: sticky;
bottom: -16px;
z-index: 2;
display: flex;
align-items: center;
justify-content: space-between;
gap: 16px;
padding: 12px 14px;
border: 1px solid #29435c;
border-radius: 12px;
background: rgba(12, 25, 40, .96);
box-shadow: 0 -8px 24px rgba(2, 8, 15, .28);
backdrop-filter: blur(8px);
}
.hockey-rules-actions > div {
display: grid;
gap: 3px;
}
.hockey-rules-actions strong {
color: #85e7d0;
font-size: 10px;
}
.hockey-rules-actions strong.is-error {
color: #ff93a6;
}
@media (max-width: 900px) {
.hockey-rules-fields.three,
.hockey-rules-fields.four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.hockey-rules-intro { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 580px) {
.hockey-rules-fields.two,
.hockey-rules-fields.three,
.hockey-rules-fields.four { grid-template-columns: 1fr; }
.hockey-rules-actions { align-items: stretch; flex-direction: column; }
.hockey-rules-actions button { width: 100%; }
}
/* BUILD 2026.07.20.10 — bilingual labels for every numerical-strength state. */
.hockey-strength-label-groups {
display: grid;
gap: 14px;
}
.hockey-strength-label-group {
overflow: hidden;
border: 1px solid #29445f;
border-radius: 12px;
background: rgba(10, 22, 35, .58);
}
.hockey-strength-label-group > header {
display: flex;
align-items: baseline;
justify-content: space-between;
gap: 12px;
padding: 11px 13px;
border-bottom: 1px solid #29445f;
background: rgba(26, 48, 70, .5);
}
.hockey-strength-label-group > header strong {
color: #d9e9f7;
font-size: 12px;
}
.hockey-strength-label-group > header small {
color: #7890a8;
font-size: 9px;
text-align: right;
}
.hockey-strength-label-table {
display: grid;
}
.hockey-strength-label-row {
display: grid;
grid-template-columns: 92px minmax(180px, 1fr) minmax(180px, 1fr);
align-items: center;
gap: 10px;
min-width: 0;
padding: 8px 12px;
border-bottom: 1px solid rgba(41, 68, 95, .65);
}
.hockey-strength-label-row:last-child {
border-bottom: 0;
}
.hockey-strength-label-row.is-head {
color: #7289a1;
background: rgba(7, 17, 28, .45);
font-size: 9px;
font-weight: 850;
letter-spacing: .04em;
text-transform: uppercase;
}
.hockey-strength-label-row b {
color: #72e0c7;
font-size: 13px;
font-variant-numeric: tabular-nums;
}
.hockey-strength-label-row input {
width: 100%;
min-height: 36px;
box-sizing: border-box;
padding: 0 10px;
color: #eef7ff;
border: 1px solid #304b67;
border-radius: 8px;
outline: none;
background: #101f31;
font-size: 11px;
font-weight: 720;
}
.hockey-strength-label-row input:focus {
border-color: #48dfbd;
box-shadow: 0 0 0 3px rgba(72, 223, 189, .09);
}
.hockey-team-state-settings {
display: grid;
gap: 8px;
}
.hockey-team-state-setting-row {
display: grid;
grid-template-columns: 150px minmax(150px, .8fr) minmax(150px, .8fr) minmax(230px, 1.3fr) 110px 120px;
align-items: end;
gap: 10px;
padding: 10px 12px;
border: 1px solid #29445f;
border-radius: 11px;
background: rgba(10, 22, 35, .58);
}
.hockey-team-state-setting-kind {
align-self: center;
display: grid;
gap: 3px;
}
.hockey-team-state-setting-kind b {
width: max-content;
padding: 2px 6px;
color: #082018;
border-radius: 5px;
background: #48dfbd;
font-size: 8px;
font-weight: 950;
letter-spacing: .08em;
}
.hockey-team-state-setting-kind strong { color: #dbe9f7; font-size: 11px; }
.hockey-team-state-setting-row > label:not(.hockey-rules-switch) { display: grid; gap: 5px; min-width: 0; }
.hockey-team-state-setting-row > label > span { color: #8298b0; font-size: 9px; font-weight: 800; }
.hockey-team-state-setting-row input:not([type="checkbox"]),
.hockey-team-state-setting-row select {
width: 100%;
min-height: 36px;
box-sizing: border-box;
padding: 0 10px;
color: #eef7ff;
border: 1px solid #304b67;
border-radius: 8px;
outline: none;
background: #101f31;
font-size: 10px;
font-weight: 720;
}
.hockey-team-state-setting-row .hockey-rules-switch.compact { min-height: 36px; padding: 0 4px; }
.hockey-team-state-setting-row .hockey-rules-switch.compact span { min-width: 0; }
.hockey-team-state-inventory-note { color: #6f879f; font-size: 9px; }
@media (max-width: 1450px) {
.hockey-team-state-setting-row { grid-template-columns: 130px repeat(2,minmax(150px,1fr)) minmax(220px,1.3fr); }
.hockey-team-state-setting-row > label:nth-last-child(-n+2) { grid-row: 2; }
.hockey-team-state-setting-row > label:nth-last-child(2) { grid-column: 2; }
.hockey-team-state-setting-row > label:last-child { grid-column: 3; }
}
@media (max-width: 820px) {
.hockey-team-state-setting-row { grid-template-columns: 1fr 1fr; }
.hockey-team-state-setting-kind { grid-column: 1 / -1; }
.hockey-team-state-setting-row > label { grid-column: auto !important; grid-row: auto !important; }
}
@media (max-width: 760px) {
.hockey-strength-label-group > header {
align-items: flex-start;
flex-direction: column;
}
.hockey-strength-label-group > header small { text-align: left; }
.hockey-strength-label-row {
grid-template-columns: 66px minmax(0, 1fr);
}
.hockey-strength-label-row.is-head span:nth-child(3) { display: none; }
.hockey-strength-label-row input:last-child { grid-column: 2; }
}
/* BUILD 2026.07.20.13 — portable vMix JSON settings module. */
.hockey-vmix-page {
display: grid;
gap: 14px;
}
.hockey-vmix-intro {
display: flex;
align-items: center;
justify-content: space-between;
gap: 18px;
padding: 15px 17px;
border: 1px solid #29435c;
border-radius: 14px;
background: linear-gradient(115deg, rgba(72, 223, 189, .09), rgba(15, 31, 49, .72) 52%, #0b1725);
}
.hockey-vmix-intro > div {
display: grid;
gap: 3px;
}
.hockey-vmix-intro span,
.hockey-vmix-import section > span,
.hockey-vmix-editor-head span {
color: #48dfbd;
font-size: 9px;
font-weight: 900;
letter-spacing: .13em;
}
.hockey-vmix-intro h2 {
margin: 0;
color: #edf6ff;
font-size: 20px;
}
.hockey-vmix-intro p,
.hockey-vmix-import p,
.hockey-vmix-joins p {
margin: 0;
color: #859ab2;
font-size: 11px;
line-height: 1.45;
}
.hockey-vmix-intro nav {
display: flex;
gap: 5px;
padding: 4px;
border: 1px solid #29415a;
border-radius: 11px;
background: #0a1522;
}
.hockey-vmix-intro nav button,
.hockey-vmix-list-actions button,
.hockey-vmix-editor-actions button,
.hockey-vmix-columns-head button,
.hockey-vmix-import button {
min-height: 34px;
padding: 0 11px;
color: #aebed0;
border: 1px solid #304861;
border-radius: 8px;
background: #122238;
font-size: 10px;
font-weight: 850;
}
.hockey-vmix-intro nav button {
border-color: transparent;
background: transparent;
}
.hockey-vmix-intro nav button.is-active,
.hockey-vmix-editor-actions button.is-accent,
.hockey-vmix-import button.is-accent {
color: #06130f;
border-color: transparent;
background: #48dfbd;
}
.hockey-vmix-layout {
display: grid;
grid-template-columns: 245px minmax(0, 1fr);
min-height: 580px;
overflow: hidden;
border: 1px solid #263e57;
border-radius: 14px;
background: #091421;
}
.hockey-vmix-list-panel {
display: grid;
grid-template-rows: auto minmax(0, 1fr) auto;
border-right: 1px solid #263e57;
background: #0d1928;
}
.hockey-vmix-list-head,
.hockey-vmix-editor-head,
.hockey-vmix-columns-head {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
}
.hockey-vmix-list-head {
padding: 13px;
border-bottom: 1px solid #263e57;
}
.hockey-vmix-list-head strong,
.hockey-vmix-editor-head strong,
.hockey-vmix-columns-head strong,
.hockey-vmix-import section > strong {
color: #e7f1fc;
font-size: 13px;
}
.hockey-vmix-list-head small,
.hockey-vmix-columns-head small {
color: #6f859e;
font-size: 9px;
}
.hockey-vmix-config-list {
display: grid;
align-content: start;
gap: 5px;
max-height: 610px;
overflow: auto;
padding: 8px;
}
.hockey-vmix-config-list > button {
display: grid;
gap: 3px;
padding: 10px;
color: #8ca0b8;
border: 1px solid transparent;
border-radius: 9px;
background: transparent;
text-align: left;
}
.hockey-vmix-config-list > button:hover,
.hockey-vmix-config-list > button.is-active {
color: #e8f3ff;
border-color: #31516d;
background: #13263b;
}
.hockey-vmix-config-list > button.is-active {
box-shadow: inset 3px 0 #48dfbd;
}
.hockey-vmix-config-list strong {
font-size: 11px;
}
.hockey-vmix-config-list span,
.hockey-vmix-config-list em {
color: #7188a2;
font-size: 8px;
font-style: normal;
}
.hockey-vmix-list-actions {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
gap: 5px;
padding: 9px;
border-top: 1px solid #263e57;
}
.hockey-vmix-list-actions button {
min-width: 0;
padding: 0 6px;
}
.hockey-vmix-editor {
min-width: 0;
display: grid;
align-content: start;
gap: 13px;
padding: 14px;
}
.hockey-vmix-editor-head > div:first-child {
display: grid;
gap: 2px;
}
.hockey-vmix-editor-actions {
display: flex;
gap: 6px;
}
.hockey-vmix-form-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 9px;
}
.hockey-vmix-form-grid label {
display: grid;
gap: 4px;
}
.hockey-vmix-form-grid label.is-wide {
grid-column: span 2;
}
.hockey-vmix-form-grid label > span {
color: #7e93aa;
font-size: 9px;
font-weight: 800;
}
.hockey-vmix-form-grid input,
.hockey-vmix-form-grid select,
.hockey-vmix-columns-table input,
.hockey-vmix-columns-table select,
.hockey-vmix-joins textarea,
.hockey-vmix-import input[type="file"] {
width: 100%;
min-height: 35px;
padding: 0 9px;
color: #e2ecf8;
border: 1px solid #304861;
border-radius: 8px;
background: #0a1624;
outline: none;
}
.hockey-vmix-form-grid input:focus,
.hockey-vmix-form-grid select:focus,
.hockey-vmix-columns-table input:focus,
.hockey-vmix-columns-table select:focus,
.hockey-vmix-joins textarea:focus {
border-color: #48dfbd;
box-shadow: 0 0 0 3px rgba(72, 223, 189, .08);
}
.hockey-vmix-form-grid input[readonly] {
color: #7f93aa;
background: #0c1724;
}
.hockey-vmix-live-link {
display: grid;
gap: 4px;
padding: 10px 12px;
border: 1px solid rgba(72, 223, 189, .24);
border-radius: 10px;
background: rgba(72, 223, 189, .055);
}
.hockey-vmix-live-link.is-disabled {
border-color: #293e55;
background: #0d1927;
}
.hockey-vmix-live-link span {
color: #7990a9;
font-size: 9px;
}
.hockey-vmix-live-link code {
overflow-wrap: anywhere;
color: #a9f0df;
font-size: 10px;
}
.hockey-vmix-fields {
display: flex;
flex-wrap: wrap;
gap: 5px;
max-height: 130px;
overflow: auto;
padding: 9px;
border: 1px solid #273e56;
border-radius: 10px;
background: #0b1725;
}
.hockey-vmix-fields button {
min-height: 27px;
padding: 0 8px;
color: #a9dccc;
border: 1px solid #31566a;
border-radius: 999px;
background: #122737;
font-size: 8px;
}
.hockey-vmix-table-wrap {
max-width: 100%;
overflow: auto;
border: 1px solid #263e57;
border-radius: 11px;
}
.hockey-vmix-columns-table {
width: 100%;
min-width: 1080px;
border-collapse: collapse;
font-size: 9px;
}
.hockey-vmix-columns-table th {
padding: 8px 6px;
color: #778da6;
border-bottom: 1px solid #294057;
background: #111e2e;
font-size: 8px;
text-align: left;
}
.hockey-vmix-columns-table td {
padding: 5px;
border-bottom: 1px solid #1c3045;
}
.hockey-vmix-columns-table tr:last-child td {
border-bottom: 0;
}
.hockey-vmix-columns-table td:first-child,
.hockey-vmix-columns-table th:first-child {
width: 42px;
text-align: center;
}
.hockey-vmix-columns-table input[type="checkbox"] {
width: 16px;
min-height: 16px;
accent-color: #48dfbd;
}
.hockey-vmix-col-actions {
display: flex;
gap: 3px;
white-space: nowrap;
}
.hockey-vmix-col-actions button {
width: 27px;
height: 29px;
color: #aebfd1;
border: 1px solid #304861;
border-radius: 7px;
background: #132338;
}
.hockey-vmix-joins {
border: 1px solid #263e57;
border-radius: 10px;
background: #0b1725;
}
.hockey-vmix-joins summary {
padding: 10px 12px;
color: #c8d7e7;
cursor: pointer;
font-size: 10px;
font-weight: 850;
}
.hockey-vmix-joins p {
padding: 0 12px 8px;
}
.hockey-vmix-joins textarea {
min-height: 150px;
padding: 9px;
border-width: 1px 0 0;
border-radius: 0 0 10px 10px;
font-family: Consolas, monospace;
font-size: 10px;
resize: vertical;
}
.hockey-vmix-functions {
display: grid;
gap: 9px;
}
.hockey-vmix-functions details {
border: 1px solid #263e57;
border-radius: 11px;
background: #0b1725;
}
.hockey-vmix-functions summary {
padding: 11px 13px;
color: #e1ebf6;
cursor: pointer;
font-size: 11px;
font-weight: 900;
}
.hockey-vmix-functions details > div {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 6px;
padding: 0 11px 11px;
}
.hockey-vmix-functions article {
display: grid;
gap: 4px;
padding: 9px;
border: 1px solid #22384e;
border-radius: 8px;
background: #101e2d;
}
.hockey-vmix-functions code {
color: #8ce4ce;
font-size: 9px;
overflow-wrap: anywhere;
}
.hockey-vmix-functions article span {
color: #8296ad;
font-size: 9px;
line-height: 1.4;
}
.hockey-vmix-import {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 12px;
}
.hockey-vmix-import section {
display: grid;
align-content: start;
gap: 8px;
padding: 16px;
border: 1px solid #263e57;
border-radius: 13px;
background: #0b1725;
}
.hockey-vmix-import-actions {
display: grid;
grid-template-columns: minmax(0, 1fr) auto auto;
gap: 7px;
align-items: center;
}
.hockey-vmix-import input[type="file"] {
padding: 7px;
}
.hockey-vmix-import-preview {
display: grid;
gap: 5px;
padding: 10px;
border: 1px solid #29465d;
border-radius: 9px;
background: #101e2e;
}
.hockey-vmix-import-preview strong,
.hockey-vmix-import-preview span {
font-size: 10px;
}
.hockey-vmix-import-preview > div {
display: flex;
flex-wrap: wrap;
gap: 5px;
}
.hockey-vmix-import-preview em {
padding: 4px 7px;
color: #9fdcca;
border: 1px solid #315269;
border-radius: 999px;
font-size: 8px;
font-style: normal;
}
.hockey-vmix-empty {
padding: 24px;
color: #748aa2;
text-align: center;
font-size: 10px;
}
.hockey-vmix-empty.is-large {
padding: 80px 20px;
}
@media (min-width: 1280px) {
.hockey-directory-modal { width: min(1500px, 98vw); }
}
@media (max-width: 980px) {
.hockey-vmix-intro { align-items: stretch; flex-direction: column; }
.hockey-vmix-intro nav { overflow-x: auto; }
.hockey-vmix-layout { grid-template-columns: 1fr; }
.hockey-vmix-list-panel { border-right: 0; border-bottom: 1px solid #263e57; }
.hockey-vmix-config-list { max-height: 230px; }
.hockey-vmix-form-grid { grid-template-columns: 1fr; }
.hockey-vmix-form-grid label.is-wide { grid-column: auto; }
.hockey-vmix-editor-head { align-items: stretch; flex-direction: column; }
.hockey-vmix-editor-actions { flex-wrap: wrap; }
.hockey-vmix-functions details > div,
.hockey-vmix-import { grid-template-columns: 1fr; }
.hockey-vmix-import-actions { grid-template-columns: 1fr; }
}
/* vMix Mapping Editor */
.hockey-mapping-layout{display:grid;grid-template-columns:330px minmax(0,1fr);gap:18px;min-height:560px}.hockey-mapping-sidebar{display:flex;flex-direction:column;gap:12px;min-width:0}.hockey-mapping-sidebar h3{margin:4px 0 0;font-size:14px;letter-spacing:.04em;text-transform:uppercase;color:#9fb0c7}.hockey-mapping-devices,.hockey-mapping-profiles{display:flex;flex-direction:column;gap:8px;max-height:250px;overflow:auto}.hockey-mapping-device{border:1px solid #334155;background:#121a27;border-radius:12px;padding:10px 12px;display:grid;gap:5px;font-size:12px;color:#b8c5d6}.hockey-mapping-device.is-online{border-color:#276749}.hockey-mapping-device>div{display:flex;flex-direction:column;gap:3px}.hockey-mapping-device strong{font-size:14px;color:#eef4ff}.hockey-mapping-device code{font-size:10px;overflow:hidden;text-overflow:ellipsis}.hockey-mapping-profile{display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-align:left;background:#121a27;border:1px solid #334155;color:#e6edf7;border-radius:10px;padding:10px 12px;cursor:pointer}.hockey-mapping-profile.is-active{border-color:#38bdf8;background:#132436}.hockey-mapping-profile small{color:#8ea0b6}.hockey-mapping-create{display:grid;gap:8px;padding:12px;border:1px solid #334155;background:#101722;border-radius:12px}.hockey-mapping-create label{display:grid;gap:5px;font-size:11px;color:#9fb0c7}.hockey-mapping-create input,.hockey-mapping-create select,.hockey-mapping-editor-head input,.hockey-mapping-actions-top select,.hockey-mapping-table input,.hockey-mapping-table select{width:100%;min-height:34px;border:1px solid #39495f;border-radius:7px;background:#0d1520;color:#edf5ff;padding:6px 8px;box-sizing:border-box}.hockey-mapping-workspace{min-width:0}.hockey-mapping-editor-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-end;margin-bottom:12px}.hockey-mapping-editor-head>div:first-child{display:grid;grid-template-columns:minmax(180px,280px) minmax(240px,1fr);gap:10px;flex:1}.hockey-mapping-editor-head label{display:grid;gap:5px;color:#9fb0c7;font-size:11px}.hockey-mapping-meta{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.hockey-mapping-meta span,.hockey-mapping-meta code{background:#111b28;border:1px solid #314157;border-radius:8px;padding:7px 9px;font-size:11px;color:#b9c7d8}.hockey-mapping-actions-top{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:10px}.hockey-mapping-actions-top select{width:auto;min-width:230px}.hockey-mapping-table-wrap{max-height:430px;overflow:auto}.hockey-mapping-table{min-width:900px}.hockey-mapping-table th:nth-child(1){width:120px}.hockey-mapping-table th:nth-child(2){width:190px}.hockey-mapping-table th:nth-child(3){width:260px}.hockey-mapping-table th:nth-child(4){width:250px}.hockey-mapping-table th:nth-child(5){width:80px}.hockey-mapping-table td{vertical-align:middle}.hockey-mapping-type{display:inline-flex;padding:4px 7px;border-radius:7px;background:#132436;color:#9bdcff;font-size:11px}.hockey-mapping-savebar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:12px;padding-top:12px;border-top:1px solid #2e3b4e}@media(max-width:1100px){.hockey-mapping-layout{grid-template-columns:1fr}.hockey-mapping-devices,.hockey-mapping-profiles{max-height:170px}.hockey-mapping-editor-head{align-items:stretch;flex-direction:column}.hockey-mapping-editor-head>div:first-child{grid-template-columns:1fr}}
/* Build 2026.08.12.3 — embedded KHL.ru data center for selected KHL tournaments. */
.hockey-directory-modal.is-khl-site {
width: min(1720px, 98vw);
height: 95vh;
max-height: 95vh;
display: grid;
grid-template-rows: auto auto minmax(0, 1fr);
}
.hockey-directory-modal.is-khl-site .hockey-directory-content {
min-height: 0;
max-height: none;
height: 100%;
overflow: hidden;
padding: 0;
}
.hockey-khl-site-head {
min-height: 54px;
display: flex;
align-items: center;
justify-content: space-between;
gap: 18px;
padding: 9px 16px;
border-bottom: 1px solid #24394f;
background: #0c1725;
}
.hockey-khl-site-head > div { display: grid; gap: 2px; min-width: 0; }
.hockey-khl-site-head span { color: #48dfbd; font-size: 9px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.hockey-khl-site-head strong { overflow: hidden; color: #eaf4ff; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.hockey-khl-site-head small { color: #8296ad; font-size: 11px; white-space: nowrap; }
.hockey-khl-site-frame-wrap { height: calc(100% - 54px); min-height: 0; background: #080b11; }
.hockey-khl-site-frame { width: 100%; height: 100%; display: block; border: 0; background: #080b11; }
@media (max-width: 900px) {
.hockey-directory-modal.is-khl-site { width: 99vw; height: 97vh; max-height: 97vh; }
.hockey-khl-site-head { align-items: flex-start; flex-direction: column; gap: 2px; }
.hockey-khl-site-head small { white-space: normal; }
}
/* BUILD 2026.08.17.1 — visual Mapping Editor */
.hockey-directory-modal.is-mapping{width:min(1580px,98vw);height:min(920px,96vh);max-height:96vh;display:grid;grid-template-rows:auto auto minmax(0,1fr)}
.hockey-directory-modal.is-mapping .hockey-directory-content{max-height:none;min-height:0;overflow:hidden;padding:14px}
.hockey-mapping-layout.is-visual{height:100%;min-height:0;grid-template-columns:290px minmax(0,1fr);gap:14px}
.hockey-mapping-layout.is-visual .hockey-mapping-sidebar{min-height:0;overflow:auto;padding-right:3px}
.hockey-mapping-layout.is-visual .hockey-mapping-workspace{min-height:0;display:flex;flex-direction:column;overflow:hidden}
.hockey-mapping-editor-head.is-visual{flex:0 0 auto;margin-bottom:10px;align-items:end}
.hockey-mapping-editor-head.is-visual>div:first-child{grid-template-columns:minmax(170px,250px) minmax(240px,1fr)}
.hockey-map-livebar{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 12px;margin-bottom:10px;border:1px solid #3a4657;border-radius:12px;background:#111a26}
.hockey-map-livebar.is-ready{border-color:#1f6d5d;background:linear-gradient(90deg,rgba(72,223,189,.08),#111a26 48%)}
.hockey-map-livebar>div{display:grid;gap:2px;min-width:0}.hockey-map-livebar>div span{font-size:9px;font-weight:900;letter-spacing:.12em;color:#f5bf54}.hockey-map-livebar.is-ready>div span{color:#48dfbd}.hockey-map-livebar>div strong{font-size:14px;color:#eef5ff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hockey-map-livebar>div small{font-size:10px;color:#8497ad}
.hockey-map-livebar label{display:grid;gap:4px;min-width:230px;font-size:10px;color:#91a4bb}.hockey-map-livebar select{min-height:34px;border:1px solid #39495f;border-radius:8px;background:#0d1520;color:#edf5ff;padding:5px 8px}
.hockey-map-visual-workspace{min-height:0;flex:1;display:grid;grid-template-columns:minmax(310px,.82fr) minmax(420px,1.18fr);gap:12px;overflow:hidden}
.hockey-map-data-browser,.hockey-map-vmix-browser{min-height:0;display:flex;flex-direction:column;border:1px solid #304158;border-radius:14px;background:#0e1723;overflow:hidden}
.hockey-map-data-browser>header,.hockey-map-vmix-browser>header{flex:0 0 auto;min-height:62px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-bottom:1px solid #28394e;background:#121d2b}
.hockey-map-data-browser>header>div{display:grid;gap:2px;min-width:0}.hockey-map-data-browser>header span,.hockey-map-vmix-browser>header>div>span{font-size:9px;font-weight:900;letter-spacing:.12em;color:#48dfbd}.hockey-map-data-browser>header strong{font-size:13px;color:#edf5ff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hockey-map-data-browser>header button{width:34px;height:34px;border:1px solid #39506c;border-radius:9px;background:#152335;color:#bcd0e7;font-size:18px}
.hockey-map-target-hint{flex:0 0 auto;display:grid;gap:2px;margin:10px 10px 0;padding:9px 10px;border:1px dashed #3a4b61;border-radius:10px;background:#101923}.hockey-map-target-hint.is-active{border-style:solid;border-color:#39bfa2;background:rgba(72,223,189,.07)}.hockey-map-target-hint span{font-size:9px;font-weight:900;letter-spacing:.08em;color:#7f93aa}.hockey-map-target-hint strong{font-size:12px;color:#e6f0fb}.hockey-map-target-hint small{font-size:10px;color:#7f93aa}
.hockey-map-data-search{flex:0 0 auto;display:flex;align-items:center;gap:7px;margin:10px;padding:0 10px;height:38px;border:1px solid #33475f;border-radius:9px;background:#0b141f;color:#48dfbd}.hockey-map-data-search input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:#eaf4ff;font-size:12px}.hockey-map-data-search input::placeholder{color:#667d96}
.hockey-map-data-scroll,.hockey-map-vmix-scroll{min-height:0;flex:1;overflow:auto;padding:0 9px 10px}
.hockey-map-data-group{border-bottom:1px solid #24354a}.hockey-map-data-group summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 4px;color:#b9c8d9;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.hockey-map-data-group summary::-webkit-details-marker{display:none}.hockey-map-data-group summary b{min-width:23px;padding:3px 6px;border-radius:999px;background:#1d3047;color:#8ea6c0;font-size:9px;text-align:center}.hockey-map-data-group>div{display:grid;gap:6px;padding:0 0 9px}
.hockey-map-data-item{width:100%;display:grid;gap:3px;text-align:left;padding:8px 9px;border:1px solid #293c52;border-radius:9px;background:#121d2a;color:#dce8f5;cursor:pointer}.hockey-map-data-item:hover,.hockey-map-data-item.is-selected{border-color:#48dfbd;background:#142a2b}.hockey-map-data-main{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px}.hockey-map-data-main strong{font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hockey-map-data-main em{max-width:150px;font-style:normal;font-size:11px;font-weight:900;color:#48dfbd;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hockey-map-data-item small{font:9px/1.2 Consolas,monospace;color:#667b93;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hockey-map-vmix-browser>header>div:first-child{display:grid;gap:4px;min-width:0;flex:1}.hockey-map-vmix-browser>header select{width:min(540px,100%);min-height:34px;border:1px solid #39495f;border-radius:8px;background:#0d1520;color:#edf5ff;padding:5px 8px;font-weight:750}.hockey-map-input-progress{display:flex;align-items:baseline;gap:4px;white-space:nowrap}.hockey-map-input-progress b{font-size:20px;color:#48dfbd}.hockey-map-input-progress span{font-size:10px;color:#8094aa}
.hockey-map-vmix-scroll{display:grid;align-content:start;gap:8px;padding:10px}
.hockey-map-vmix-field{display:grid;gap:8px;padding:10px;border:1px solid #2b3d53;border-radius:11px;background:#111b28;cursor:pointer;transition:.12s}.hockey-map-vmix-field:hover{border-color:#46617f}.hockey-map-vmix-field.is-target{border-color:#48dfbd;box-shadow:0 0 0 2px rgba(72,223,189,.10)}.hockey-map-vmix-field.is-linked{background:#101e2a}
.hockey-map-vmix-field-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.hockey-map-vmix-field-head>div{display:flex;align-items:center;gap:8px;min-width:0}.hockey-map-vmix-field-head strong{font:600 12px/1.2 Consolas,monospace;color:#e6eef8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hockey-map-vmix-field-head span{font-size:8px;font-weight:900;color:#77a4ce;border:1px solid #30506e;border-radius:5px;padding:2px 5px}.hockey-map-unlink{width:25px;height:25px;border:1px solid #683e48;border-radius:7px;background:#24151b;color:#f88b9b;font-size:16px;line-height:1}
.hockey-map-link-value{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:5px 8px;padding:8px;border:1px solid #28564e;border-radius:9px;background:rgba(72,223,189,.05)}.hockey-map-link-value>span{font-size:9px;font-weight:900;color:#7590a6;text-transform:uppercase}.hockey-map-link-value>strong{font-size:11px;color:#dce9f5;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hockey-map-link-value>em{max-width:170px;font-style:normal;font-size:12px;font-weight:900;color:#48dfbd;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hockey-map-link-value>small{grid-column:1/-1;font:9px/1.2 Consolas,monospace;color:#668097}
.hockey-map-field-actions{display:flex;justify-content:flex-end;gap:7px}.hockey-map-field-actions button,.hockey-map-empty-link{min-height:31px;border:1px solid #344b65;border-radius:8px;background:#152335;color:#bed0e4;padding:0 10px;font-size:10px;font-weight:800}.hockey-map-field-actions button.is-accent{border-color:#208b75;background:#173c37;color:#77efd5}.hockey-map-field-actions button:disabled{opacity:.38;cursor:not-allowed}
.hockey-map-empty-link{width:100%;height:auto;min-height:54px;display:grid;grid-template-columns:30px 1fr;text-align:left;align-items:center;padding:7px 9px;border-style:dashed;background:#0e1823}.hockey-map-empty-link b{grid-row:1/3;display:grid;place-items:center;width:27px;height:27px;border-radius:8px;background:#17352f;color:#48dfbd;font-size:17px}.hockey-map-empty-link span{font-size:11px;font-weight:900;color:#b9c9db}.hockey-map-empty-link small{font-size:9px;color:#70849a}
.hockey-mapping-savebar.is-visual{flex:0 0 auto;margin-top:10px;padding-top:10px;align-items:center}.hockey-mapping-savebar.is-visual>div{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.hockey-map-maintenance select{min-width:210px;min-height:34px;border:1px solid #39495f;border-radius:7px;background:#0d1520;color:#edf5ff;padding:5px 7px}.hockey-map-maintenance button,.hockey-mapping-savebar.is-visual button{min-height:34px;padding:0 10px;border:1px solid #38506a;border-radius:8px;background:#142337;color:#c8d8e9;font-weight:800}.hockey-mapping-savebar.is-visual button.is-accent{border-color:#1f9f84;background:#1a806c;color:white}.hockey-mapping-savebar.is-visual button.danger{border-color:#6a3b47;color:#f29aaa;background:#25151b}
@media(max-width:1180px){.hockey-directory-modal.is-mapping{width:99vw}.hockey-mapping-layout.is-visual{grid-template-columns:235px minmax(0,1fr)}.hockey-map-visual-workspace{grid-template-columns:minmax(270px,.8fr) minmax(360px,1.2fr)}.hockey-map-data-main em{max-width:105px}}
@media(max-width:900px){.hockey-directory-modal.is-mapping .hockey-directory-content{overflow:auto}.hockey-mapping-layout.is-visual{height:auto;grid-template-columns:1fr}.hockey-map-visual-workspace{height:620px;grid-template-columns:1fr 1fr}.hockey-mapping-layout.is-visual .hockey-mapping-sidebar{max-height:260px}.hockey-map-livebar{align-items:stretch;flex-direction:column}.hockey-map-livebar label{min-width:0}.hockey-mapping-savebar.is-visual{align-items:stretch;flex-direction:column}}
/* BUILD 2026.08.17.2 — dynamic Context Variables + SQL Data Sources */
.hockey-map-workspace-tabs{flex:0 0 auto;display:flex;gap:7px;margin:0 0 10px;padding:5px;border:1px solid #2d4057;border-radius:11px;background:#0e1722}.hockey-map-workspace-tabs button{min-height:34px;padding:0 13px;border:1px solid transparent;border-radius:8px;background:transparent;color:#8fa3ba;font-size:11px;font-weight:900;cursor:pointer}.hockey-map-workspace-tabs button:hover{color:#dce8f5;background:#142133}.hockey-map-workspace-tabs button.is-active{border-color:#2b8e7b;background:#17342f;color:#6ce7cc}
.hockey-map-admin-panel{min-height:0;flex:1;display:flex;flex-direction:column;gap:10px;overflow:hidden}.hockey-map-admin-head{flex:0 0 auto;padding:11px 13px;border:1px solid #304258;border-radius:12px;background:#111b28}.hockey-map-admin-head>div{display:grid;gap:3px}.hockey-map-admin-head span{font-size:9px;font-weight:950;letter-spacing:.12em;color:#48dfbd}.hockey-map-admin-head strong{font-size:15px;color:#edf5ff}.hockey-map-admin-head small{font-size:10px;color:#8598ae}.hockey-map-admin-head code{font:10px Consolas,monospace;color:#9dc5e8}
.hockey-map-context-create{flex:0 0 auto;display:grid;grid-template-columns:minmax(150px,1.1fr) minmax(190px,1.4fr) 115px 110px 110px auto;gap:7px;align-items:end;padding:10px;border:1px solid #2d4056;border-radius:11px;background:#101923}.hockey-map-context-create label,.hockey-map-context-edit-grid label,.hockey-map-sql-editor label{display:grid;gap:4px;font-size:9px;font-weight:800;color:#869bb2}.hockey-map-context-create input,.hockey-map-context-create select,.hockey-map-context-edit-grid input,.hockey-map-context-edit-grid select,.hockey-map-sql-editor input,.hockey-map-sql-editor select{width:100%;min-width:0;min-height:34px;box-sizing:border-box;border:1px solid #374a61;border-radius:8px;background:#0c1520;color:#e9f2fc;padding:5px 7px}.hockey-map-context-create button,.hockey-map-context-actions button,.hockey-map-sql-actions button{min-height:34px;padding:0 10px;border:1px solid #38506a;border-radius:8px;background:#142337;color:#c8d8e9;font-size:10px;font-weight:900;cursor:pointer}.hockey-map-context-create button.is-accent,.hockey-map-context-actions button.is-accent,.hockey-map-sql-actions button.is-accent{border-color:#1f9f84;background:#1a806c;color:white}.hockey-map-context-actions button.danger,.hockey-map-sql-actions button.danger{border-color:#6a3b47;background:#25151b;color:#f29aaa}
.hockey-map-context-list{min-height:0;flex:1;overflow:auto;display:grid;align-content:start;gap:8px;padding-right:3px}.hockey-map-context-row{display:grid;grid-template-columns:minmax(250px,.8fr) minmax(135px,.35fr) minmax(0,1.5fr);gap:10px;align-items:center;padding:10px 11px;border:1px solid #2e4056;border-radius:11px;background:#101a27}.hockey-map-context-row.is-system{grid-template-columns:minmax(250px,1fr) minmax(160px,.45fr) minmax(250px,.9fr);background:#111d29}.hockey-map-context-main{display:flex;justify-content:space-between;align-items:center;gap:10px;min-width:0}.hockey-map-context-main>div:first-child{display:grid;gap:3px;min-width:0}.hockey-map-context-main strong{font-size:12px;color:#e6eef8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hockey-map-context-main code{font:9px Consolas,monospace;color:#6f8aa4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hockey-map-context-badges{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}.hockey-map-context-badges span,.hockey-map-context-badges b{padding:3px 5px;border:1px solid #36516c;border-radius:6px;color:#87a7c4;font-size:8px;font-weight:900;text-transform:uppercase}.hockey-map-context-badges b{border-color:#2a816f;color:#5de3c5}.hockey-map-context-live{display:grid;gap:3px;padding:7px 8px;border:1px solid #28594f;border-radius:8px;background:rgba(72,223,189,.05)}.hockey-map-context-live span{font-size:8px;font-weight:900;color:#6f918a;text-transform:uppercase}.hockey-map-context-live strong{font-size:12px;color:#48dfbd;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hockey-map-context-system-note{font-size:10px;color:#8294a8}.hockey-map-context-edit-grid{display:grid;grid-template-columns:1.2fr 1fr .7fr .65fr .7fr 1fr;gap:6px}.hockey-map-context-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:6px;border-top:1px solid #24364a;padding-top:8px}
.hockey-map-sql-layout{min-height:0;flex:1;display:grid;grid-template-columns:230px minmax(0,1fr);gap:10px;overflow:hidden}.hockey-map-sql-list{min-height:0;overflow:auto;display:flex;flex-direction:column;gap:6px;padding-right:3px}.hockey-map-sql-list button{display:grid;gap:3px;text-align:left;padding:9px 10px;border:1px solid #304158;border-radius:9px;background:#101a27;color:#dce7f4;cursor:pointer}.hockey-map-sql-list button.is-active{border-color:#3aaf96;background:#14302d}.hockey-map-sql-list strong{font-size:11px}.hockey-map-sql-list small{font:9px Consolas,monospace;color:#7890aa}.hockey-map-sql-editor{min-height:0;overflow:auto;padding:10px 11px;border:1px solid #304158;border-radius:12px;background:#0e1722}.hockey-map-sql-form-grid{display:grid;grid-template-columns:1fr 1.4fr 1fr 100px;gap:7px}.hockey-map-sql-description{margin-top:7px}.hockey-map-sql-params{display:grid;gap:6px;margin:9px 0;padding:8px;border:1px dashed #354960;border-radius:9px;background:#0c1520}.hockey-map-sql-params>span{font-size:9px;color:#8398ae}.hockey-map-sql-params>div{display:flex;gap:5px;flex-wrap:wrap}.hockey-map-sql-params button{display:flex;gap:5px;align-items:center;max-width:220px;padding:4px 6px;border:1px solid #314a64;border-radius:7px;background:#122135;color:#b8cce0;cursor:pointer}.hockey-map-sql-params code{font:9px Consolas,monospace;color:#67dfc6}.hockey-map-sql-params button span{font-size:8px;color:#7890a8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hockey-map-sql-code{margin-top:8px}.hockey-map-sql-code textarea{width:100%;height:220px;resize:vertical;box-sizing:border-box;border:1px solid #374a61;border-radius:9px;background:#09111a;color:#d9e8f5;padding:10px;font:11px/1.45 Consolas,monospace;tab-size:2}.hockey-map-sql-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;margin-top:8px}.hockey-map-sql-actions .hockey-directory-check{margin-right:auto;display:flex;align-items:center;gap:6px}.hockey-map-sql-preview{margin-top:10px;padding:9px;border:1px solid #2d4056;border-radius:10px;background:#101923}.hockey-map-sql-preview h4{margin:0 0 7px;font-size:10px;color:#98aec4;text-transform:uppercase}.hockey-map-sql-preview-meta{font-size:9px;color:#6f879f;margin-bottom:5px}.hockey-map-sql-preview-table{overflow:auto}.hockey-map-sql-preview-table table{width:max-content;min-width:100%;border-collapse:collapse;font-size:9px}.hockey-map-sql-preview-table th,.hockey-map-sql-preview-table td{padding:6px 7px;border:1px solid #293b50;text-align:left;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hockey-map-sql-preview-table th{background:#152337;color:#9cb3cb}.hockey-map-sql-preview-table td{color:#d6e2ee}.hockey-directory-empty.is-error{color:#f39aa9;border-color:#6a3b47;background:#25151b}
@media(max-width:1250px){.hockey-map-context-create{grid-template-columns:1fr 1.2fr 100px 100px}.hockey-map-context-create label:nth-of-type(5){grid-column:auto}.hockey-map-context-row,.hockey-map-context-row.is-system{grid-template-columns:1fr 160px}.hockey-map-context-edit-grid,.hockey-map-context-system-note,.hockey-map-context-actions{grid-column:1/-1}.hockey-map-context-edit-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:900px){.hockey-map-workspace-tabs{overflow:auto}.hockey-map-context-create{grid-template-columns:1fr 1fr}.hockey-map-context-edit-grid{grid-template-columns:1fr 1fr}.hockey-map-sql-layout{grid-template-columns:1fr}.hockey-map-sql-list{max-height:150px}.hockey-map-sql-form-grid{grid-template-columns:1fr 1fr}}
/* Build 2026.08.17.3 — explicit Mapping data sections */
.hockey-directory-modal>nav button[data-directory-section="mapping_context"],
.hockey-directory-modal>nav button[data-directory-section="mapping_sql"]{border-color:#31465f;background:#111c2a}
.hockey-directory-modal>nav button[data-directory-section="mapping_context"].is-active,
.hockey-directory-modal>nav button[data-directory-section="mapping_sql"].is-active{border-color:#2a9f88;background:#17352f;color:#72efd4}
.hockey-map-load-errors{display:grid;gap:5px;margin-bottom:10px;padding:10px 12px;border:1px solid #7f4855;border-radius:10px;background:#29171d;color:#f3b3bf;font-size:10px}.hockey-map-load-errors strong{font-size:12px;color:#ffd1d9}.hockey-map-load-errors span{display:flex;gap:8px;align-items:flex-start}.hockey-map-load-errors code{flex:0 0 auto;color:#f6a3b2;font:10px Consolas,monospace}.hockey-map-load-errors span:not(code){overflow-wrap:anywhere}
/* BUILD 2026.08.17.5 — SQL table cell picker + searchable ordered vMix Inputs */
.hockey-map-input-header{align-items:flex-start!important}.hockey-map-input-choice{display:grid!important;grid-template-columns:minmax(0,1fr);gap:5px!important}.hockey-map-input-choice>small{font-size:9px;color:#70859b}.hockey-map-input-search{display:flex;align-items:center;gap:6px;width:min(540px,100%);height:32px;box-sizing:border-box;padding:0 8px;border:1px solid #33475f;border-radius:8px;background:#0b141f;color:#48dfbd}.hockey-map-input-search input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:#eaf4ff;font-size:11px}.hockey-map-input-search input::placeholder{color:#667d96}.hockey-map-vmix-browser>header.hockey-map-input-header select{width:min(540px,100%)}
.hockey-map-table-picker{flex:0 0 auto;display:grid;gap:7px;margin:10px 10px 0;padding:9px;border:1px solid #31536a;border-radius:11px;background:#0d1924;max-height:44%;min-height:150px;overflow:hidden}.hockey-map-table-picker>header{display:flex;align-items:center;justify-content:space-between;gap:10px}.hockey-map-table-picker>header>div{display:grid;gap:2px;min-width:0}.hockey-map-table-picker>header span{font-size:8px;font-weight:950;letter-spacing:.12em;color:#69c9ef}.hockey-map-table-picker>header strong{font-size:11px;color:#dceaf6}.hockey-map-table-picker>header>b{padding:4px 7px;border-radius:999px;background:#173148;color:#8ed5ef;font-size:9px;white-space:nowrap}.hockey-map-table-controls{display:grid;grid-template-columns:minmax(170px,.85fr) minmax(180px,1.15fr);gap:7px}.hockey-map-table-controls select{min-width:0;height:34px;border:1px solid #35516a;border-radius:8px;background:#0b141f;color:#e5f0fb;padding:4px 7px}.hockey-map-table-controls label{display:flex;align-items:center;gap:6px;height:34px;box-sizing:border-box;padding:0 8px;border:1px solid #35516a;border-radius:8px;background:#0b141f;color:#69c9ef}.hockey-map-table-controls input{min-width:0;width:100%;border:0;outline:0;background:transparent;color:#e7f2fc;font-size:10px}.hockey-map-table-grid{min-height:0;overflow:auto;border:1px solid #263d51;border-radius:8px;background:#0a131c}.hockey-map-table-grid table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;font-size:9px}.hockey-map-table-grid th,.hockey-map-table-grid td{padding:0;border-right:1px solid #26394d;border-bottom:1px solid #26394d;vertical-align:stretch}.hockey-map-table-grid thead th{position:sticky;top:0;z-index:3;padding:6px 7px;background:#152538;color:#9db5cb;text-align:left}.hockey-map-table-grid thead th strong{display:block;font-size:9px;color:#bed3e5}.hockey-map-table-grid thead th small{display:block;margin-top:2px;font:8px Consolas,monospace;color:#6f879e}.hockey-map-table-grid tbody th{position:sticky;left:0;z-index:2;min-width:105px;max-width:150px;padding:6px 7px;background:#111e2b;text-align:left}.hockey-map-table-grid tbody th b{display:block;color:#69c9ef;font-size:10px}.hockey-map-table-grid tbody th span{display:block;margin-top:2px;max-width:135px;color:#849bb1;font-size:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hockey-map-table-grid td button{display:grid;gap:2px;width:100%;min-width:105px;max-width:190px;height:100%;min-height:43px;padding:5px 7px;border:0;background:#101a26;color:#dce7f2;text-align:left;cursor:pointer}.hockey-map-table-grid td button:hover,.hockey-map-table-grid td button.is-selected{background:#15322f;box-shadow:inset 0 0 0 1px #48dfbd}.hockey-map-table-grid td button:disabled{opacity:.28;cursor:not-allowed}.hockey-map-table-grid td button strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;color:#e5f0fa}.hockey-map-table-grid td button small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:8px;color:#6f879e}.hockey-map-table-limit{display:block;color:#7890a8;font-size:8px}.hockey-map-cell-address{grid-column:1/-1!important;color:#69c9ef!important;font:9px Consolas,monospace!important}
@media(max-width:1100px){.hockey-map-table-controls{grid-template-columns:1fr}.hockey-map-table-picker{max-height:40%}}
/* BUILD 2026.08.17.6 — explicit SQL cell selector + apply current Input */
.hockey-map-sql-cell-quick{flex:0 0 auto;display:grid;gap:8px;margin:10px 10px 0;padding:10px;border:1px solid #37506a;border-radius:11px;background:linear-gradient(135deg,#101b28,#0d1721)}
.hockey-map-sql-cell-quick.is-target-ready{border-color:#2a9d86;box-shadow:inset 0 0 0 1px rgba(72,223,189,.08)}
.hockey-map-sql-cell-quick>header{display:flex;align-items:flex-end;justify-content:space-between;gap:10px}.hockey-map-sql-cell-quick>header>div{display:grid;gap:2px}.hockey-map-sql-cell-quick>header span{font-size:8px;font-weight:950;letter-spacing:.12em;color:#69c9ef}.hockey-map-sql-cell-quick.is-target-ready>header span{color:#48dfbd}.hockey-map-sql-cell-quick>header strong{font-size:12px;color:#edf5ff}.hockey-map-sql-cell-quick>header small{max-width:48%;font-size:9px;color:#7e96ad;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hockey-map-sql-cell-grid{display:grid;grid-template-columns:1.05fr .95fr 1.1fr;gap:7px}.hockey-map-sql-cell-grid label{display:grid;gap:4px;min-width:0}.hockey-map-sql-cell-grid label>span{font-size:8px;font-weight:900;color:#7f95ab;text-transform:uppercase}.hockey-map-sql-cell-grid select{min-width:0;width:100%;height:34px;border:1px solid #35516a;border-radius:8px;background:#0a141e;color:#e7f1fb;padding:4px 7px;font-size:10px}.hockey-map-sql-cell-grid select:disabled{opacity:.45}
.hockey-map-sql-cell-preview{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 9px;border:1px solid #2c4359;border-radius:9px;background:#0a141e}.hockey-map-sql-cell-preview>div{display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 8px;min-width:0;align-items:baseline}.hockey-map-sql-cell-preview span{font-size:8px;color:#7890a7;text-transform:uppercase}.hockey-map-sql-cell-preview strong{font-size:13px;color:#48dfbd;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hockey-map-sql-cell-preview code{grid-column:1/-1;font:8px Consolas,monospace;color:#668098;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hockey-map-sql-cell-preview button{flex:0 0 auto;min-height:34px;padding:0 11px;border:1px solid #238d77;border-radius:8px;background:#173c36;color:#72efd3;font-size:10px;font-weight:900}.hockey-map-sql-cell-preview button:disabled{border-color:#34485d;background:#111c28;color:#667b91;opacity:.65}
.hockey-map-input-progress{display:grid!important;justify-items:end;gap:5px}.hockey-map-input-progress>div{display:flex;align-items:baseline;gap:4px}.hockey-map-input-progress>button{min-height:31px;padding:0 9px;border:1px solid #238d77;border-radius:8px;background:#173b35;color:#70ebd0;font-size:9px;font-weight:900;white-space:nowrap}.hockey-map-input-progress>button:disabled{opacity:.4;cursor:not-allowed}
@media(max-width:1100px){.hockey-map-sql-cell-grid{grid-template-columns:1fr 1fr}.hockey-map-sql-cell-grid label:first-child{grid-column:1/-1}.hockey-map-sql-cell-quick>header{align-items:flex-start;flex-direction:column}.hockey-map-sql-cell-quick>header small{max-width:none;text-align:left}}
/* Build 2026.08.17.9 — language-aware Mapping + PostgreSQL inline help */
.hockey-map-lang-auto{display:inline-flex;align-items:center;margin-left:5px;padding:1px 5px;border:1px solid #2e806f;border-radius:999px;background:#12312d;color:#67dfc6;font:700 7px/1.45 Consolas,monospace;vertical-align:1px;white-space:nowrap}
.hockey-map-sql-help{margin:8px 0;border:1px solid #30465d;border-radius:10px;background:#0b141e;overflow:hidden}
.hockey-map-sql-help>summary{display:flex;align-items:center;gap:9px;padding:8px 10px;cursor:pointer;list-style:none;color:#dbe8f5;user-select:none}
.hockey-map-sql-help>summary::-webkit-details-marker{display:none}.hockey-map-sql-help>summary>span{display:grid;place-items:center;flex:0 0 24px;height:24px;border:1px solid #3a6c88;border-radius:50%;background:#122639;color:#6ad3ef;font-weight:950}
.hockey-map-sql-help>summary>div{display:grid;gap:1px}.hockey-map-sql-help>summary strong{font-size:10px}.hockey-map-sql-help>summary small{font-size:8px;color:#7890a8}
.hockey-map-sql-help-body{display:grid;gap:9px;padding:0 10px 10px}.hockey-map-sql-help-note,.hockey-map-sql-help-lang{padding:7px 8px;border:1px solid #2a4055;border-radius:8px;background:#101d2a;color:#9db2c7;font-size:9px;line-height:1.45}.hockey-map-sql-help-lang{border-color:#286958;background:#102621;color:#8fdcca}.hockey-map-sql-help code{font:9px Consolas,monospace;color:#69dcc4}
.hockey-map-sql-help-body section{display:grid;gap:5px}.hockey-map-sql-help-body h5{margin:0;color:#7f97af;font-size:8px;letter-spacing:.1em;text-transform:uppercase}.hockey-map-sql-help-body section>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.hockey-map-sql-help-body button{min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 7px;text-align:left;padding:6px 7px;border:1px solid #2b4359;border-radius:8px;background:#101c29;color:#dce8f3;cursor:pointer}.hockey-map-sql-help-body button:hover{border-color:#3b8ca3;background:#132535}.hockey-map-sql-help-body button strong{font-size:9px;color:#cfe1f0}.hockey-map-sql-help-body button code{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hockey-map-sql-help-body button small{grid-column:1/-1;font-size:7px;color:#758da5;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:900px){.hockey-map-sql-help-body section>div{grid-template-columns:1fr}}
/* BUILD 2026.08.17.13 — SQL source auto-refresh */
.hockey-map-sql-refresh {
display: grid;
grid-template-columns: minmax(220px, auto) minmax(130px, 180px) 1fr;
gap: 12px;
align-items: center;
padding: 12px 14px;
margin: 10px 0;
border: 1px solid rgba(255,255,255,.12);
border-radius: 10px;
background: rgba(255,255,255,.025);
}
.hockey-map-sql-refresh.is-enabled {
border-color: rgba(40,190,110,.42);
background: rgba(40,190,110,.07);
}
.hockey-map-sql-refresh > label:not(.hockey-directory-check) {
display: grid;
gap: 5px;
font-size: 12px;
opacity: .9;
}
.hockey-map-sql-refresh input[type="number"] { width: 100%; }
.hockey-map-sql-refresh > small {
line-height: 1.35;
opacity: .72;
}
@media (max-width: 1050px) {
.hockey-map-sql-refresh { grid-template-columns: 1fr 160px; }
.hockey-map-sql-refresh > small { grid-column: 1 / -1; }
}
/* BUILD 2026.08.17.14 — show all SQL preview rows with scroll */
.hockey-map-sql-preview-table{max-height:420px;overflow:auto;overscroll-behavior:contain}
.hockey-map-sql-preview-table thead th{position:sticky;top:0;z-index:2}
/* BUILD 2026.08.17.15 — visible SQL table + series mapping */
.hockey-map-data-browser{overflow-y:auto;overflow-x:hidden}
.hockey-map-data-browser>header{position:sticky;top:0;z-index:12}
.hockey-map-table-picker{flex:0 0 auto;max-height:none!important;min-height:300px;height:auto;grid-template-rows:auto auto minmax(230px,auto) auto;overflow:visible}
.hockey-map-table-grid{min-height:230px;max-height:430px;overflow:auto!important}
.hockey-map-data-scroll{flex:0 0 auto;max-height:340px;overflow:auto}
.hockey-map-series-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:-2px}
.hockey-map-series-actions button{min-height:30px;padding:0 8px;border:1px solid #3a5771;border-radius:8px;background:#132236;color:#9fc3df;font-size:9px;font-weight:900;cursor:pointer}
.hockey-map-series-actions button:first-child{border-color:#287765;background:#15322d;color:#66e3c8}
.hockey-map-series-actions button:hover{filter:brightness(1.13)}
@media(max-width:1100px){.hockey-map-table-picker{min-height:280px}.hockey-map-series-actions{grid-template-columns:1fr}}
/* BUILD 2026.08.17.16 — vMix field filters */
.hockey-map-field-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;width:min(540px,100%);margin-top:3px;flex-wrap:wrap}
.hockey-map-field-tabs{display:flex;gap:5px;flex-wrap:wrap}
.hockey-map-field-tabs button{min-height:28px;padding:0 9px;border:1px solid #344a63;border-radius:7px;background:#0d1723;color:#92a8bf;font-size:9px;font-weight:900;cursor:pointer}
.hockey-map-field-tabs button b{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:17px;margin-left:4px;padding:0 4px;border-radius:9px;background:#18283a;color:#b8cbe0;font-size:8px}
.hockey-map-field-tabs button.is-active{border-color:#2bbf9d;background:#173c36;color:#74efd4}
.hockey-map-field-tabs button.is-active b{background:#225448;color:#9affea}
.hockey-map-hide-linked{display:flex;align-items:center;gap:7px;min-height:28px;padding:0 8px;border:1px solid #31445a;border-radius:7px;background:#0d1723;color:#a6bbd0;font-size:9px;font-weight:800;cursor:pointer;white-space:nowrap}
.hockey-map-hide-linked input{accent-color:#42dcb8}
@media(max-width:900px){.hockey-map-field-toolbar{align-items:flex-start;flex-direction:column}}
/* BUILD 2026.08.18.18 — conditional Mapping rules: TextColour + deterministic visibility */
.hockey-map-rule-wrap{display:grid;gap:6px;margin-top:7px;border:1px solid #2b4056;border-radius:9px;background:#0d1722;overflow:hidden}.hockey-map-rule-wrap.is-enabled{border-color:#66552d}.hockey-map-rule-toggle{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:7px 9px;border:0;background:#101c28;color:#cfdae6;text-align:left;cursor:pointer}.hockey-map-rule-toggle span{font-size:10px;font-weight:950;color:#e5c879}.hockey-map-rule-toggle small{font-size:8px;color:#71879d;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hockey-map-rule-toggle b{font-size:14px;color:#90a4b8}.hockey-map-rule-editor{display:grid;gap:8px;padding:0 8px 9px;border-top:1px solid #263a4e}.hockey-map-rule-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-top:8px}.hockey-map-rule-head label{display:flex;align-items:center;gap:6px;color:#d8e4ef;font-size:9px;font-weight:900}.hockey-map-rule-head button,.hockey-map-rule-presets button,.hockey-map-rule-actions button{min-height:28px;padding:0 8px;border:1px solid #38506a;border-radius:7px;background:#132131;color:#a8bdd1;font-size:8px;cursor:pointer}.hockey-map-rule-presets{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.hockey-map-rule-presets span{font-size:8px;color:#71869a;text-transform:uppercase}.hockey-map-rule-presets button:hover,.hockey-map-rule-actions button:hover{border-color:#8a7135;color:#f0d184}.hockey-map-rule-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.hockey-map-rule-grid label,.hockey-map-rule-values label{display:grid;gap:3px;color:#778da3;font-size:8px;text-transform:uppercase}.hockey-map-rule-grid label.is-wide{grid-column:1/-1}.hockey-map-rule-grid input,.hockey-map-rule-grid select,.hockey-map-rule-values input,.hockey-map-rule-values select{width:100%;height:30px;box-sizing:border-box;border:1px solid #344b62;border-radius:7px;background:#0a131d;color:#e5edf5;padding:4px 6px;font-size:9px}.hockey-map-rule-grid input:disabled{color:#6f8498;background:#101923}.hockey-map-rule-values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding-top:2px}.hockey-map-rule-actions{display:flex;gap:6px;flex-wrap:wrap}.hockey-map-rule-actions button:disabled{opacity:.35;cursor:not-allowed}.hockey-map-vmix-field:has(.hockey-map-rule-wrap.is-enabled) .hockey-map-vmix-field-head span{box-shadow:inset 0 0 0 1px rgba(229,200,121,.35)}
@media(max-width:900px){.hockey-map-rule-grid,.hockey-map-rule-values{grid-template-columns:1fr}.hockey-map-rule-grid label.is-wide{grid-column:auto}}
/* BUILD 2026.08.18.19 — Mapping rule dropdown click isolation + persistent vMix scroll */
/* BUILD48 — configurable bilingual period labels for Mapping. */
.hockey-period-status-groups { display: grid; gap: 12px; }
.hockey-period-status-group { overflow: hidden; border: 1px solid #29445f; border-radius: 12px; background: rgba(10,22,35,.58); }
.hockey-period-status-group > header { display:flex; align-items:baseline; justify-content:space-between; gap:12px; padding:10px 13px; border-bottom:1px solid #29445f; background:rgba(26,48,70,.5); }
.hockey-period-status-group > header strong { color:#d9e9f7; font-size:12px; }
.hockey-period-status-group > header small { color:#7890a8; font-size:9px; }
.hockey-period-status-table { display:grid; }
.hockey-period-status-row { display:grid; grid-template-columns:110px minmax(180px,1fr) minmax(180px,1fr); align-items:center; gap:10px; padding:8px 12px; border-bottom:1px solid rgba(41,68,95,.65); }
.hockey-period-status-row:last-child { border-bottom:0; }
.hockey-period-status-row.is-head { color:#7289a1; background:rgba(7,17,28,.45); font-size:9px; font-weight:850; text-transform:uppercase; }
.hockey-period-status-row b { color:#72e0c7; font-size:10px; }
.hockey-period-status-row input { width:100%; min-height:36px; box-sizing:border-box; padding:0 10px; color:#eef7ff; border:1px solid #304b67; border-radius:8px; outline:none; background:#101f31; font-size:11px; font-weight:720; }
.hockey-period-status-row input:focus { border-color:#48dfbd; box-shadow:0 0 0 3px rgba(72,223,189,.09); }
@media (max-width:760px) { .hockey-period-status-row { grid-template-columns:90px 1fr; } .hockey-period-status-row.is-head span:nth-child(3) { display:none; } .hockey-period-status-row input:last-child { grid-column:2; } }
/* BUILD72 — portable vMix Mapping transfer/import */
.hockey-map-transfer-inline{display:grid;grid-template-columns:minmax(190px,1fr) auto;gap:6px;align-items:center}
.hockey-map-transfer-inline select{min-width:190px}
.hockey-mapping-import{border-top:1px solid rgba(57,80,104,.7);padding-top:12px;margin-top:12px}
.hockey-mapping-import input[type="file"]{height:auto;min-height:38px;padding:7px;background:#0b1723;color:#9fb5c9}
.hockey-mapping-import small{display:block;color:#6f879d;font-size:8px;line-height:1.35}
.hockey-mapping-import .hockey-directory-check{margin:2px 0}
@media(max-width:900px){.hockey-map-transfer-inline{grid-template-columns:1fr}.hockey-map-transfer-inline select{min-width:0;width:100%}}
/* Build 73: editable team HEX colour */
.hockey-team-color-field {
display: grid;
gap: 4px;
}
.hockey-team-color-field small {
color: #627990;
font-size: 9px;
}
.hockey-team-color-control {
display: grid;
grid-template-columns: 42px minmax(0, 1fr) 34px;
gap: 7px;
align-items: center;
}
.hockey-team-color-picker-wrap,
.hockey-team-color-clear {
position: relative;
width: 100%;
min-height: 35px;
padding: 0;
border: 1px solid #304861;
border-radius: 8px;
background: #0a1624;
cursor: pointer;
}
.hockey-team-color-picker-wrap:hover,
.hockey-team-color-clear:hover {
border-color: #48dfbd;
}
.hockey-team-color-picker-wrap > i {
display: block;
width: 24px;
height: 24px;
margin: auto;
border: 2px solid rgba(255,255,255,.82);
border-radius: 7px;
background: var(--team-color, #fff);
box-shadow: 0 0 0 1px rgba(0,0,0,.38), inset 0 0 0 1px rgba(0,0,0,.16);
}
.hockey-team-color-picker-wrap input[type="color"] {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
min-height: 0;
padding: 0;
opacity: 0;
cursor: pointer;
}
.hockey-team-color-control input[data-team-color-text] {
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
font-weight: 800;
letter-spacing: .5px;
text-transform: uppercase;
}
.hockey-team-color-clear {
color: #879bb1;
font-size: 18px;
line-height: 1;
}
.hockey-team-color-cell {
display: inline-flex;
align-items: center;
gap: 7px;
}
.hockey-team-color-cell i {
width: 18px;
height: 18px;
flex: 0 0 18px;
border: 1px solid rgba(255,255,255,.5);
border-radius: 5px;
background: var(--team-color, transparent);
box-shadow: 0 0 0 1px rgba(0,0,0,.28);
}
.hockey-team-color-cell code {
color: #b9c9da;
font-size: 9px;
}
/* Build 74: reusable Mapping configs + one-click apply to current Agent. */
.hockey-map-config-hint{font-size:11px;line-height:1.45;color:#8ea0b6;background:#0d1520;border:1px solid #2b394c;border-radius:10px;padding:9px 10px}
.hockey-mapping-profile-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px;align-items:center;border-radius:9px;padding:2px}
.hockey-mapping-profile-row.is-active{background:rgba(56,189,248,.045);box-shadow:0 0 0 1px rgba(56,189,248,.18)}
.hockey-mapping-profile-row .hockey-mapping-profile{min-width:0;width:100%;padding:7px 8px;border-radius:8px}
.hockey-mapping-profile-row .hockey-mapping-profile strong{font-size:11px;line-height:1.25}
.hockey-mapping-profile-row .hockey-mapping-profile small{font-size:9px;line-height:1.2;opacity:.82}
.hockey-map-profile-actions{display:flex;align-items:center;gap:4px;padding-right:2px}
.hockey-map-profile-icon{width:28px;height:28px;min-width:28px;display:grid;place-items:center;border:1px solid #31465b;background:#0f1d2a;color:#9cb4c8;border-radius:8px;padding:0;font-size:12px;font-weight:850;line-height:1;cursor:pointer;transition:border-color .12s ease,background .12s ease,color .12s ease,transform .12s ease}
.hockey-map-profile-icon:hover{border-color:#4d718e;background:#14283a;color:#e7f4ff;transform:translateY(-1px)}
.hockey-map-use-profile{color:#8fdcff}
.hockey-map-use-profile:hover{border-color:#38bdf8;background:#123047;color:#d9f4ff}
.hockey-map-use-profile.is-used{border-color:#276749;background:#102b20;color:#8ff0b5}
.hockey-map-copy-profile{font-size:15px;color:#b9c9da}
.hockey-map-copy-profile:hover{border-color:#7c5cc7;background:#211a38;color:#ddceff}
.hockey-mapping-create-wrap{border:1px solid #334155;background:#101722;border-radius:12px;overflow:hidden}
.hockey-mapping-create-wrap>summary{cursor:pointer;padding:10px 12px;color:#b9c7d8;font-size:12px;font-weight:700;list-style:none}
.hockey-mapping-create-wrap>summary::-webkit-details-marker{display:none}
.hockey-mapping-create-wrap[open]>summary{border-bottom:1px solid #2e3b4e}
.hockey-mapping-create-wrap .hockey-mapping-create{border:0;border-radius:0;background:transparent}
@media(max-width:520px){.hockey-mapping-profile-row{grid-template-columns:minmax(0,1fr) auto}.hockey-map-profile-icon{width:30px;height:30px;min-width:30px}}
/* Build 75: compact Mapping data browser. Heavy SQL tools and match/period
data groups start collapsed and remember their open state while editing. */
.hockey-map-sql-cell-quick>summary,.hockey-map-table-picker>summary{list-style:none;cursor:pointer;user-select:none}
.hockey-map-sql-cell-quick>summary::-webkit-details-marker,.hockey-map-table-picker>summary::-webkit-details-marker{display:none}
.hockey-map-sql-cell-quick>summary{display:flex;align-items:flex-end;justify-content:space-between;gap:10px}
.hockey-map-sql-cell-quick>summary>div{display:grid;gap:2px}.hockey-map-sql-cell-quick>summary span{font-size:8px;font-weight:950;letter-spacing:.12em;color:#69c9ef}.hockey-map-sql-cell-quick.is-target-ready>summary span{color:#48dfbd}.hockey-map-sql-cell-quick>summary strong{font-size:12px;color:#edf5ff}.hockey-map-sql-cell-quick>summary small{max-width:48%;font-size:9px;color:#7e96ad;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hockey-map-sql-cell-quick>summary::after,.hockey-map-table-picker>summary::after,.hockey-map-data-group>summary::after{content:"▸";color:#6f879e;font-size:11px;transition:transform .12s ease}
.hockey-map-sql-cell-quick[open]>summary::after,.hockey-map-table-picker[open]>summary::after,.hockey-map-data-group[open]>summary::after{transform:rotate(90deg)}
.hockey-map-table-picker>summary{display:flex;align-items:center;justify-content:space-between;gap:10px}.hockey-map-table-picker>summary>div{display:grid;gap:2px;min-width:0}.hockey-map-table-picker>summary span{font-size:8px;font-weight:950;letter-spacing:.12em;color:#69c9ef}.hockey-map-table-picker>summary strong{font-size:11px;color:#dceaf6}.hockey-map-table-picker>summary>b{margin-left:auto;padding:4px 7px;border-radius:999px;background:#173148;color:#8ed5ef;font-size:9px;white-space:nowrap}
.hockey-map-sql-cell-quick:not([open]),.hockey-map-table-picker:not([open]){min-height:0!important;height:auto!important;display:block;padding:10px}
.hockey-map-sql-cell-quick:not([open])>summary,.hockey-map-table-picker:not([open])>summary{margin:0}
@media(max-width:1100px){.hockey-map-sql-cell-quick>summary{align-items:flex-start;flex-direction:column}.hockey-map-sql-cell-quick>summary small{max-width:none;text-align:left}}