/* Shared local console UI. */
:root{--console-muted:#b4b4bd;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:#101012;color:#f5f5f7;font-family:Segoe UI,Arial,sans-serif;line-height:1.5}a{color:inherit}.hidden{display:none!important}.flex{display:flex}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-1{flex:1;min-width:0}.items-center{align-items:center}.items-end{align-items:end}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.grid{display:grid}.grid-cols-1{grid-template-columns:1fr}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.gap-2{gap:8px}.gap-4{gap:16px}.gap-6{gap:24px}.space-x-2>*+*{margin-left:8px}.space-x-3>*+*{margin-left:12px}.space-x-4>*+*{margin-left:16px}.space-y-2>*+*{margin-top:8px}.space-y-4>*+*{margin-top:16px}.space-y-6>*+*{margin-top:24px}.w-full{width:100%}.w-auto{width:auto}.text-center{text-align:center}.text-left{text-align:left}.text-white{color:#fff}.text-gray-300{color:#d4d4dc}.text-gray-400,.text-gray-500{color:#b4b4bd}.text-sm{font-size:13px}.text-xs{font-size:11px}.text-lg{font-size:18px}.text-xl{font-size:21px}.text-2xl{font-size:27px}.text-3xl{font-size:32px}.font-bold,.font-semibold{font-weight:700}.p-4{padding:16px}.p-6{padding:24px}.p-8{padding:32px}.mb-2{margin-bottom:8px}.mb-4{margin-bottom:16px}.mb-6{margin-bottom:24px}.mt-2{margin-top:8px}.mt-4{margin-top:16px}.mt-6{margin-top:24px}.py-8{padding-top:32px;padding-bottom:32px}
.card{background:#19191d;border:1px solid #393940;border-radius:14px;padding:24px;box-shadow:0 8px 25px #0002}.card-header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:20px}.card-title{font-size:19px;margin:0}.card-header>div{display:flex;flex-wrap:wrap;gap:10px}.btn,button,input,select,textarea{font:inherit}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:42px;padding:10px 16px;border:1px solid transparent;border-radius:8px;font-size:13px;font-weight:650;text-decoration:none;cursor:pointer}.btn-primary{background:#fa0332;color:white}.btn-secondary{background:#2a2a31;border-color:#484850;color:white}.btn-danger{background:#501b29;color:#ffbdc9}.btn-success{background:#17633d;color:white}.btn-sm{min-height:34px;padding:7px 10px;font-size:12px}.btn:disabled,button:disabled{opacity:.5;cursor:not-allowed}.input,.console-page input,.console-page select,.console-page textarea{width:100%;padding:12px;background:#111114;color:white;border:1px solid #484850;border-radius:8px;min-height:44px}.input.w-auto{width:auto}.input[type=checkbox],.console-page input[type=checkbox]{width:18px;min-height:18px;accent-color:#fa0332}.table-container,.table-responsive{width:100%;overflow:auto;border:1px solid #393940;border-radius:10px}.table{width:100%;border-collapse:collapse;font-size:13px}.table th,.table td{padding:14px;text-align:left;border-bottom:1px solid #393940;vertical-align:middle}.table th{background:#242428;color:#bfbfc8;font-size:11px;white-space:nowrap}.table tbody tr:hover{background:#25252c}.table td{overflow-wrap:anywhere;min-width:85px}.badge{display:inline-flex;border-radius:999px;padding:4px 10px;font-size:11px}.badge-success{background:#173e2b;color:#85e2ac}.badge-warning{background:#483715;color:#f4ce79}.badge-danger{background:#481d29;color:#ffa6b7}.badge-info{background:#1d3150;color:#a6caff}.modal-overlay{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:20px;background:#000b;backdrop-filter:blur(6px)}.modal-content{width:min(820px,100%);max-height:92vh;overflow:auto;background:#222228;border:1px solid #484850;border-radius:16px;padding:24px;box-shadow:0 30px 80px #0008}.modal-header,.modal-footer{display:flex;align-items:center;justify-content:space-between;gap:12px}.modal-header{border-bottom:1px solid #484850;margin-bottom:20px;padding-bottom:15px}.modal-footer{justify-content:flex-end;border-top:1px solid #484850;padding-top:18px;margin-top:20px;flex-wrap:wrap}.modal-body{max-height:70vh;overflow:auto}.modal-close-button{background:transparent;color:white;border:0;font-size:28px;cursor:pointer}.modal-body label{display:block;margin:12px 0 7px}#notifications-container,#notification-container{position:fixed;right:20px;top:20px;z-index:200;max-width:min(440px,calc(100vw - 40px))}
.console-heading{display:flex;align-items:start;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:24px}.console-heading h2{font-size:28px;letter-spacing:-.6px;margin:4px 0 8px}.console-heading p{margin:0;color:#b4b4bd;font-size:14px}.console-eyebrow{color:#ff637f!important;font-size:10px!important;font-weight:750;letter-spacing:2px}.console-actions,.console-filters{display:flex;gap:12px;flex-wrap:wrap;align-items:end}.console-filters{padding:20px;border:1px solid #393940;border-radius:12px;background:#19191d}.console-filters label,.console-form-grid label{display:grid;gap:8px;color:#b4b4bd;font-size:13px;min-width:160px;flex:1}.console-help{font-size:12px;color:#b4b4bd;line-height:1.7}.console-table-ribbon{display:flex;gap:14px;overflow:auto;padding:5px 3px 16px;margin:20px 0}.console-table-card{flex:0 0 180px;background:#19191d;border:1px solid #484850;border-radius:12px;padding:0;color:white;overflow:hidden;cursor:pointer;display:flex;flex-direction:column}.console-table-card.selected{border-color:#fa0332;box-shadow:0 0 0 2px #fa0332}.console-rack{display:block;background:#74182c;font-size:14px;line-height:10px;letter-spacing:2px;padding:12px;color:#c8c8d0}.selected .console-rack{background:#fa0332}.console-table-card strong{padding:12px 10px 5px;overflow-wrap:anywhere}.console-table-card small{padding:0 10px 13px;color:#b4b4bd}.console-report-match{margin:18px 0;border:1px solid #484850;border-radius:12px;overflow:hidden}.console-match-title{display:flex;gap:14px;flex-wrap:wrap;align-items:center;justify-content:space-between;background:#242428;padding:18px}.console-report-match .table-container{border:0;border-radius:0}.console-config-grid,.console-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.console-config-form h3{margin:0 0 20px}.console-config-status{min-height:22px}.console-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:24px 0}.console-metrics>div{padding:20px;border:1px solid #484850;border-radius:12px;background:#19191d}.console-metrics strong{display:block;font-size:28px}.console-metrics span{font-size:12px;color:#b4b4bd}.console-checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.console-checks>div{display:flex;justify-content:space-between;gap:12px;align-items:center;background:#19191d;border:1px solid #393940;padding:16px;border-radius:10px}.console-empty{padding:40px;border:1px dashed #484850;border-radius:12px;text-align:center;color:#b4b4bd}:is(a,button,input,select,textarea):focus-visible{outline:2px solid #ff7991;outline-offset:3px}
@media(min-width:768px){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:1024px){.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:hidden{display:none}}
@media(max-width:750px){.console-config-grid,.console-form-grid,.console-checks{grid-template-columns:1fr}.console-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.console-heading h2{font-size:24px}.card{padding:18px}.card-header>div{width:100%}.card-header input,.card-header select{max-width:100%}.console-actions{width:100%}.console-table-card{flex-basis:150px}.console-filters{padding:16px}.grid-cols-2{grid-template-columns:1fr}.table td,.table th{padding:11px}.modal-content{padding:18px}}

#main-app #sidebar{width:244px!important;display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;background:#19191d!important;border-right:1px solid #393940;z-index:50}#main-app #sidebar-nav{flex:1;overflow:auto;max-height:none;padding:14px!important}#main-app #sidebar>div:last-child{position:static;margin-top:auto;background:#19191d;padding:18px;border-top:1px solid #393940}#main-app>div.ml-64{margin-left:244px!important;min-width:0}#main-app header>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 24px}#main-app header:after{display:none!important}#main-app #page-content{padding:28px}#main-app .nav-item{display:flex;align-items:center;gap:10px;text-decoration:none;color:#c7c7d0!important;min-height:44px;border-radius:8px;padding:11px 13px}#main-app .nav-item.active{background:#fa0332!important;color:#fff!important}#main-app #sidebar-toggle{display:none}#login-screen{min-height:100vh;display:grid;place-items:center;padding:24px}#login-screen>div{width:min(480px,100%)}#login-screen>div>div{background:#19191d;border:1px solid #393940;border-radius:16px;padding:30px}#login-screen input:not([type=checkbox]){width:100%;padding:13px;background:#29292f;color:white;border:1px solid #484850;border-radius:8px}#login-screen button[type=submit]{padding:13px;background:#fa0332;color:#fff;border:0;border-radius:8px}#login-screen label{margin-bottom:8px}#loading-screen{position:fixed;inset:0;z-index:100;background:#101012;display:grid;place-items:center}.lang-btn{background:#29292f;color:white;border:1px solid #484850;padding:7px 10px;border-radius:6px}.lang-btn.active{background:#fa0332}.console-page{min-width:0}#page-content{min-width:0}.rounded-full{border-radius:999px}.overflow-x-auto{overflow-x:auto}
@media(max-width:1023px){#main-app>div.ml-64{margin-left:0!important}#main-app #sidebar{transform:translateX(-100%)}#main-app #sidebar.open{transform:translateX(0)!important}#main-app #sidebar-toggle{display:block;min-width:40px;min-height:40px;background:#29292f;color:white;border:1px solid #484850;border-radius:7px}#main-app #page-content{padding:18px!important}#main-app header>div{padding:14px;flex-wrap:wrap}.console-form-grid label{min-width:0}.console-filters label{min-width:0;flex-basis:200px}}

.console-config-grid{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}#main-menu>li{margin-top:2px}#main-menu a{padding:10px 12px;font-size:13px}#sidebar::-webkit-scrollbar{width:6px}#sidebar::-webkit-scrollbar-thumb{background:#4a4a53;border-radius:5px}@media(max-width:750px){.console-config-grid{grid-template-columns:1fr}}

.console-tabs{display:flex;gap:6px;overflow-x:auto;border-bottom:1px solid #393940;margin:0 0 24px;padding:0 0 12px}.console-tabs button{flex-shrink:0;min-height:44px;padding:10px 20px;background:#242428;color:#c4c4ce;border:1px solid #45454d;border-radius:8px;font-weight:650;cursor:pointer}.console-tabs button.active{background:#fa0332;border-color:#fa0332;color:white}#tables-list-panel #tables-counter{margin-bottom:20px}#tables-config-panel .config-intro{display:none}.console-menu-group{font-size:9px;letter-spacing:1.6px;text-transform:uppercase;color:#92929d;margin:18px 12px 6px}#main-app .nav-item{width:100%;text-align:left;background:transparent;border:0;cursor:pointer;min-height:39px!important;font-size:13px!important;padding:8px 12px!important}#main-app #sidebar-nav{padding-top:0!important}#main-app .nav-item:hover{background:#2b2027}.settings-wide{grid-column:1/-1}.settings-history{margin-top:20px}#club-settings h3{margin:0 0 10px}#club-settings .console-metrics strong{font-size:23px}.settings-device-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:20px}.device-facts{margin:15px 0}.device-facts>div{border-bottom:1px solid #393940;padding:10px 0;display:flex;justify-content:space-between;gap:20px}.device-facts dt{font-size:12px;color:#b4b4bd}.device-facts dd{margin:0;font-size:13px;text-align:right;overflow-wrap:anywhere}.device-name-form{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.device-name-form label{display:grid;gap:7px;flex:1;min-width:180px;font-size:12px;color:#b4b4bd}.device-name-form p{flex-basis:100%;margin:0;font-size:13px}#club-general-form{max-width:1000px}#club-general-form label{min-width:0}@media(max-width:600px){.settings-device-grid{grid-template-columns:1fr}.device-facts>div{gap:12px;flex-wrap:wrap}.device-facts dd{text-align:left}.console-tabs button{padding:10px 16px}}

#club-settings .console-metrics>div{min-width:0}@media(max-width:600px){#club-settings .console-metrics strong{font-size:18px;overflow-wrap:anywhere}}

.competition-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px;margin:24px 0}.competition-card{display:flex;align-items:start;justify-content:space-between;gap:16px}.competition-card h3{font-size:20px;margin:10px 0}.competition-card p{color:#b4b4bd;font-size:13px}.competition-detail-heading{padding-top:26px;border-top:1px solid #484850}.competition-bracket{display:flex;gap:22px;overflow:auto;padding:8px 2px 22px}.competition-bracket>section{min-width:250px;flex:1}.competition-slot{padding:16px;background:#19191d;border:1px solid #484850;border-radius:10px;margin:12px 0}.competition-slot>div{padding:9px;margin-top:7px;background:#29292f;border-radius:5px;font-size:14px}.competition-slot small{color:#b4b4bd}.competition-slot .competition-winner{background:#1b5132;color:#b9f4ce}.competition-slot strong{display:block;margin-top:8px}.competition-match{margin:16px 0}.competition-assign{display:flex;gap:10px;flex-wrap:wrap}.competition-assign select{padding:9px;background:#19191d;border:1px solid #484850;border-radius:8px;color:white}#competition-dialog{width:min(850px,calc(100% - 30px));max-height:90vh;overflow:auto;background:#222228;color:white;border:1px solid #484850;border-radius:16px;padding:26px}#competition-dialog::backdrop{background:#000b;backdrop-filter:blur(5px)}#competition-dialog label{display:grid;gap:7px;color:#b4b4bd;font-size:13px}#competition-form-error{color:#ff9aad}#competition-tab>form{margin-bottom:20px}#competition-dialog h2{margin-top:0}@media(max-width:600px){.competition-grid{grid-template-columns:1fr}.competition-card{flex-wrap:wrap}.competition-bracket>section{min-width:230px}#competition-dialog{padding:18px}}

/* Tournament bracket and per-round views share the same match data. */
.competition-view-toolbar{margin:20px 0}.competition-view-toolbar .console-help{margin:10px 0}.competition-bracket-scroll{max-width:100%;overflow:auto;border:1px solid #393940;border-radius:14px;padding:20px;background:#111114}.competition-bracket-tree{display:grid;position:relative;isolation:isolate;grid-template-columns:repeat(var(--bracket-rounds),270px);gap:44px;width:max-content;overflow:visible;padding:0}.competition-bracket-tree>section{min-width:0;width:270px;z-index:1}.competition-round h3{height:40px;margin:0;font-size:15px}.competition-round-slots{display:grid;grid-template-rows:repeat(var(--bracket-slots),154px)}.competition-slot-cell{display:flex;align-items:center}.competition-tree-card{width:270px;margin:0;padding:10px;border-radius:10px;box-shadow:0 4px 14px #0004}.competition-tree-card header,.competition-tree-card footer{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:10px;color:#b4b4bd}.competition-tree-card footer{padding-top:7px}.competition-tree-card .competition-player-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:7px 9px;margin-top:5px;font-size:12px}.competition-player-row span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.competition-tree-card .competition-player-row strong{display:inline;margin:0;font-size:14px}.competition-state.is-live{color:#ff718a}.competition-connectors{position:absolute;inset:0;width:100%;height:100%;overflow:visible;z-index:0;pointer-events:none}.competition-connectors path{fill:none;stroke:#686872;stroke-width:1.5}.competition-round-tables>section{margin:24px 0}.competition-round-tables h3{display:flex;gap:12px;align-items:center;font-size:18px}.competition-round-table{min-width:850px}.competition-round-table td{min-width:55px}.competition-round-table .competition-round-score{font-weight:750;white-space:nowrap;color:#fff}.competition-round-winner{color:#91e5b3;font-weight:700}@media(max-width:600px){.competition-bracket-scroll{padding:12px}.competition-view-toolbar .btn{flex:1}.competition-round-tables h3{flex-wrap:wrap}}

.competition-tree-card{height:132px}.competition-tree-card header{position:static;min-height:18px;height:18px;padding:0;margin:0;background:transparent;border:0;box-shadow:none}.competition-tree-card footer{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-height:18px;height:18px;padding:5px 0 0;margin:0;background:transparent;border:0}.competition-tree-card .competition-player-row{height:32px}.competition-tree-card small{font-size:10px}

.competition-round-slots{grid-template-rows:repeat(var(--bracket-slots),172px)}.competition-tree-card{position:relative;height:146px;padding:10px!important}.competition-tree-card header{padding:0!important;border:0!important;min-height:18px!important;height:18px!important;line-height:18px;margin:0!important}.competition-tree-card footer{position:absolute;bottom:8px;left:10px;right:10px;width:auto;line-height:14px;padding:0!important;height:14px!important;min-height:14px!important;border:0!important}.competition-tree-card .competition-player-row{padding:7px 9px!important;margin:5px 0 0!important}
