:root{color-scheme:dark;--background: #080e17;--surface: #0e1825;--surface-border: #203044;--accent: #1ad179;--muted: #8190a2;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}@font-face{font-family:Material Symbols Rounded;font-style:normal;font-weight:100 700;font-display:block;src:url(/assets/fonts/material-symbols-rounded.woff2) format("woff2")}.material-symbols-rounded{display:inline-block;font-family:Material Symbols Rounded;font-style:normal;font-weight:400;font-feature-settings:"liga";overflow:hidden;font-size:1.15em;line-height:1;letter-spacing:normal;text-transform:none;white-space:nowrap;direction:ltr;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-variation-settings:"FILL" 0,"wght" 500,"GRAD" 0,"opsz" 24}.material-symbols-rounded.filled{font-variation-settings:"FILL" 1,"wght" 500,"GRAD" 0,"opsz" 24}.material-symbols-rounded.spinning{animation:material-symbol-spin .8s linear infinite}@keyframes material-symbol-spin{to{transform:rotate(360deg)}}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{color:#edf5f0;background:radial-gradient(circle at 85% -15%,rgba(21,112,74,.13),transparent 34rem),var(--background);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input{font:inherit}.athlete-registration-modal{width:min(920px,100%)!important;max-height:calc(100vh - 40px);overflow:hidden}.confirmation-icon.athlete{border-color:#1ad17961!important;color:var(--accent)!important;background:#1ad1791a!important}.modal-error{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:12px!important;color:#fca5a5!important}.athlete-registration-list{display:grid;max-height:min(55vh,540px);gap:10px;margin:16px 0;overflow-y:auto;text-align:left}.athlete-registration-card{overflow:hidden;border:1px solid #2a3d52;border-radius:9px;background:#0a1420}.athlete-registration-card.invalid{border-color:#ef64648c}.athlete-registration-card>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 12px;border-bottom:1px solid #26394d;background:#101f2e}.athlete-registration-card>header div{display:flex;align-items:center;gap:9px}.athlete-registration-card>header span{color:var(--accent);font-size:.58rem;font-weight:800;letter-spacing:.08em}.athlete-registration-card>header strong{font-size:.72rem}.athlete-registration-card>header small{color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.58rem}.athlete-registration-grid{display:grid;grid-template-columns:130px minmax(190px,1.4fr) repeat(6,minmax(120px,1fr));gap:9px;padding:11px 12px;overflow-x:auto}.athlete-registration-grid label{min-width:0!important}.athlete-registration-grid input,.athlete-registration-grid select{min-height:36px;font-size:.68rem}.athlete-registration-grid input[readonly]{color:#8fa0b0;background:#0d1925}.athlete-registration-grid input.invalid{border-color:#ef6464}.athlete-registration-grid label>small{color:#fca5a5;font-size:.58rem}@media(max-width:720px){.athlete-registration-modal{padding:20px 14px!important}.athlete-registration-grid{grid-template-columns:1fr 1fr;overflow:visible}.athlete-name-field{grid-column:span 2}}.print-match-sheet{display:inline-flex;grid-column:1/-1;min-height:28px;align-items:center;justify-content:center;gap:5px;margin:5px auto 0;padding:0 9px;border:1px solid #3b536b;border-radius:6px;color:#cbd6e1;background:#101f2e;cursor:pointer;font-size:.58rem;font-weight:800;white-space:nowrap}.print-match-sheet:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.print-match-sheet:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.print-match-sheet:disabled{cursor:not-allowed;opacity:.38}.print-match-sheet .material-symbols-rounded{font-size:.82rem}.sheet-print-match-sheet{grid-column:2/5}.break-history-shell{min-width:0;flex:1 1 auto}.break-history-shell .break-history{width:100%}.shell.referee-shell .workspace>main{height:100%;min-height:0;padding:0;overflow:hidden}.published-games.referee-mode{--referee-ball-size: clamp(32px, min(5vw, 8vh), 56px);--referee-palette-gap: clamp(3px, .5vw, 7px);--referee-palette-width: calc(var(--referee-ball-size) * 3 + var(--referee-palette-gap) * 2);--referee-control-size: clamp(27px, 3.25vh, 36px);--referee-palette-height: calc(var(--referee-ball-size) * 5 + var(--referee-palette-gap) * 4);--referee-dock-gap: clamp(8px, 2vw, 24px);display:flex;height:100%;min-height:0;flex-direction:column;margin:0;overflow:hidden}.published-games.referee-mode>.published-games-header,.published-games.referee-mode .bracket-section>header,.published-games.referee-mode .round-title{display:none!important}.published-games.referee-mode .bracket-section{display:flex;min-height:0;flex:1;margin:0}.published-games.referee-mode .bracket{display:flex;width:100%;min-height:0;flex:1;padding:0;overflow:visible}.published-games.referee-mode .round-column{display:flex;width:100%;max-width:none;min-height:0;flex:1 1 100%}.published-games.referee-mode .round-games{display:flex;width:100%;min-height:0;flex:1}.published-games.referee-mode .round-games>.game-card,.published-games.referee-mode .round-games>.game-card.finished{display:grid;width:100%;height:100%;min-height:0;flex:1;grid-template-rows:auto minmax(0,1fr);gap:clamp(4px,1vh,12px);margin:0;padding:clamp(8px,1.3vw,16px) clamp(8px,1.3vw,16px) calc(var(--referee-palette-height) + 20px);overflow-y:auto;border:0;border-radius:0;background:transparent;box-shadow:none}.published-games.referee-mode .game-card>.matchup{display:grid;min-width:0;grid-row:1;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto;align-items:center;gap:clamp(4px,1vh,10px) 24px;padding:0;border:0}.published-games.referee-mode .matchup>.match-athlete:first-child{grid-column:1;grid-row:1}.published-games.referee-mode .matchup>.match-athlete:last-child{grid-column:2;grid-row:1}.published-games.referee-mode .match-athlete{display:flex;min-height:0;flex-direction:column;justify-content:center;gap:6px;padding:0;border:0;border-radius:0;background:transparent;text-align:center}.published-games.referee-mode .matchup .match-athlete>strong{width:max-content;max-width:100%;min-height:0;align-self:flex-end;font-size:clamp(.85rem,1.7vw,1.55rem);text-align:right;white-space:nowrap}.published-games.referee-mode .matchup>.match-athlete:last-child>strong{align-self:flex-start;text-align:left}.published-games.referee-mode .matchup>.match-athlete:first-child .referee-avatar-box{align-self:flex-end}.published-games.referee-mode .matchup>.match-athlete:last-child .referee-avatar-box{align-self:flex-start}.published-games.referee-mode .referee-avatar-box{display:grid;width:clamp(76px,12vh,140px);aspect-ratio:130/118;place-items:center;overflow:visible}.published-games.referee-mode .referee-avatar-shape{display:block;width:100%;height:100%;overflow:visible}.published-games.referee-mode .referee-avatar-background{fill:#fff;stroke:gray;stroke-width:1.5}.published-games.referee-mode .referee-avatar-outline{fill:none;stroke:gray;stroke-width:1.5}.published-games.referee-mode .referee-avatar-initial{fill:#15202a;font-size:38px;font-weight:800;text-anchor:middle;dominant-baseline:middle}.published-games.referee-mode .match-athlete.active-break .referee-avatar-background{fill:#dac92f;stroke:#dac92f;stroke-width:3}.published-games.referee-mode .match-athlete.active-break .referee-avatar-shape image{opacity:.86}.published-games.referee-mode .match-athlete.active-break .referee-avatar-box{filter:drop-shadow(0 0 12px rgba(218,201,47,.35))}.published-games.referee-mode .match-athlete.winner .referee-avatar-background{fill:#016537}.published-games.referee-mode .matchup>.match-score{position:fixed;z-index:21;right:calc(var(--referee-palette-width) + var(--referee-dock-gap));bottom:max(4px,env(safe-area-inset-bottom));left:calc(var(--referee-palette-width) + var(--referee-dock-gap));display:flex;width:auto;height:var(--referee-palette-height);min-width:0;flex-direction:column;align-items:center;justify-content:space-between;gap:0;padding:calc(var(--referee-ball-size) + var(--referee-palette-gap)) 0 0;border:0;pointer-events:none}.published-games.referee-mode .referee-score-row{position:relative;display:flex;width:100%;min-width:0;flex-direction:column;align-items:center;gap:3px}.published-games.referee-mode .referee-score-footer{display:flex;max-width:100%;flex-direction:column;align-items:center;gap:7px;padding-bottom:8px}.published-games.referee-mode .referee-athlete-history{width:100%;min-width:0;flex:0 0 auto;align-self:stretch}.published-games.referee-mode .referee-athlete-history .break-history{height:28px;min-height:28px;padding:0}.published-games.referee-mode .referee-athlete-history.left .break-history{flex-direction:row-reverse}.published-games.referee-mode .referee-athlete-history .break-history-scrollbar{height:4px;margin-top:6px}.published-games.referee-mode .referee-score-controls{position:relative;width:min(100%,468px);min-width:0;padding:0 0 calc(var(--referee-control-size) + 3px);pointer-events:auto}.published-games.referee-mode .referee-frame-controls{position:absolute;z-index:2;top:calc(-1 * (var(--referee-control-size) + 3px));bottom:0;left:38%;display:flex;flex-direction:column;justify-content:space-between;transform:translate(-50%)}.published-games.referee-mode .referee-frame-controls.right{right:38%;left:auto;transform:translate(50%)}.published-games.referee-mode .referee-frame-controls button{display:grid;width:var(--referee-control-size);height:var(--referee-control-size);place-items:center;padding:0;border:1px solid #c94d4d;border-radius:50%;color:#fff;background:#b53131;cursor:pointer;font-size:clamp(1rem,1.5vw,1.25rem);font-weight:800;line-height:1;touch-action:manipulation}.published-games.referee-mode .referee-frame-controls button:last-child{border-color:#249957;background:#087941}.published-games.referee-mode .referee-frame-controls button:disabled{cursor:not-allowed;opacity:.28}.published-games.referee-mode .referee-score-strip{position:relative;display:grid;width:100%;min-height:44px;max-height:78px;aspect-ratio:6/1;grid-template-columns:28% 44% 28%;align-items:center;border-radius:10px;isolation:isolate;background:#10151b}.published-games.referee-mode .referee-score-shape{position:absolute;inset:0;width:100%;height:100%}.published-games.referee-mode .referee-score-white{fill:#faf9f1}.published-games.referee-mode .referee-score-blue{fill:#2056d7}.published-games.referee-mode .referee-points-panel{position:relative;grid-column:1;justify-self:center;color:#111;font-size:clamp(2rem,5vw,3.8rem);font-weight:800;line-height:1}.published-games.referee-mode .referee-points-panel.right{grid-column:3}.published-games.referee-mode .referee-frames-panel{position:relative;display:grid;min-width:0;grid-column:2;grid-template-columns:1fr auto 1fr;align-items:center;justify-items:center;padding:0 6%;color:#fff}.published-games.referee-mode .referee-frames-panel>strong{font-size:clamp(2rem,5vw,3.8rem);font-weight:800;line-height:1}.published-games.referee-mode .referee-best-of{color:#fff;font-size:clamp(1.3rem,3.25vw,2.6rem);font-weight:700;line-height:1;white-space:nowrap}.published-games.referee-mode .referee-table-label{max-width:100%;min-width:0;overflow:hidden;color:#8294a7;font-size:.68rem;text-overflow:ellipsis;white-space:nowrap}.published-games.referee-mode .referee-details-button{width:min(112px,100%);height:32px;flex:0 0 32px;padding:0;border:1px solid #e5e7eb;border-radius:10px;clip-path:polygon(0 0,100% 0,100% 68%,89% 100%,0 100%);color:#0b0f16;background:#f8fafc;cursor:pointer;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:10px;font-weight:800;pointer-events:auto;touch-action:manipulation}.published-games.referee-mode .referee-details-button:hover,.published-games.referee-mode .referee-details-button:focus-visible{border-color:#016537;outline:2px solid #016537;outline-offset:2px}.published-games.referee-mode .game-card>.break-console{position:fixed;z-index:20;right:0;bottom:0;left:0;display:flex;grid-row:2;align-items:flex-end;margin:0;padding:0 clamp(8px,1.3vw,16px) max(4px,env(safe-area-inset-bottom));pointer-events:none}.published-games.referee-mode .break-players{display:grid;width:100%;min-height:0;grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:8px}.published-games.referee-mode .break-player{display:flex;width:var(--referee-palette-width);max-width:100%;min-width:0;flex-direction:column;padding:0;border:0;border-radius:0;background:transparent;pointer-events:auto}.published-games.referee-mode .break-player.right{justify-self:end}.published-games.referee-mode .break-history-shell{width:100%;min-width:0}.published-games.referee-mode .break-history{width:100%;min-height:34px;padding-bottom:4px;overflow-x:auto;scrollbar-width:none;scrollbar-gutter:auto;background:none}.published-games.referee-mode .break-history::-webkit-scrollbar{display:none}.published-games.referee-mode .break-history small{display:none}.published-games.referee-mode .break-history-scrollbar{position:relative;height:8px;overflow:hidden;border-radius:999px;background:#40566c73;cursor:pointer;touch-action:none}.published-games.referee-mode .break-history-thumb{position:absolute;top:0;bottom:0;left:0;width:100%;border-radius:inherit;background:#718aa2}.published-games.referee-mode .break-event{flex:0 0 26px;width:26px;height:26px;font-size:.62rem}.published-games.referee-mode .break-event.foul{flex-basis:auto;width:auto;min-width:32px}.published-games.referee-mode .break-palette{display:grid;width:var(--referee-palette-width);height:var(--referee-palette-height);grid-template-columns:repeat(3,var(--referee-ball-size));grid-template-rows:repeat(3,var(--referee-ball-size)) 32px minmax(0,1fr);gap:var(--referee-palette-gap);padding:0;overflow:visible;border:0}.published-games.referee-mode .break-ball,.published-games.referee-mode .foul-button,.published-games.referee-mode .clear-break-button{display:grid;width:var(--referee-ball-size);height:var(--referee-ball-size);min-height:var(--referee-ball-size);place-items:center;margin:0;padding:0;border-radius:50%;font-size:clamp(.9rem,1.5vw,1.35rem);line-height:1;transform:none;touch-action:manipulation}.published-games.referee-mode .break-ball{border-width:2px}.published-games.referee-mode .foul-button{border-color:#c94d4d;color:#fff;background:#8f303a;font-weight:900}.published-games.referee-mode .clear-break-button{border-color:#cf5151;color:#b62836;background:#ffe1e1}.published-games.referee-mode .clear-break-button .material-symbols-rounded{font-size:1.2em}.published-games.referee-mode .referee-special-actions{display:grid;width:calc(var(--referee-ball-size) * 2 + var(--referee-palette-gap));height:var(--referee-ball-size);grid-column:2/4;grid-row:3;grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;justify-items:center;gap:var(--referee-palette-gap);border:2px solid rgba(239,100,100,.65);border-radius:999px;background:#ef64641a}.published-games.referee-mode .referee-special-actions.right{grid-column:1/3}.published-games.referee-mode .referee-special-actions .foul-button,.published-games.referee-mode .referee-special-actions .clear-break-button{width:calc(var(--referee-ball-size) * .76);height:calc(var(--referee-ball-size) * .76);min-height:0;font-size:clamp(.75rem,1.3vw,1rem)}.published-games.referee-mode .referee-special-actions .clear-break-button .material-symbols-rounded{font-size:1em}.published-games.referee-mode .break-player.right .break-ball.black{grid-column:3;grid-row:3}.published-games.referee-mode .referee-palette-actions{display:grid;width:100%;height:32px;grid-column:1/-1;grid-row:4;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--referee-palette-gap);margin:0}.published-games.referee-mode .break-palette .referee-palette-actions button{display:flex;width:100%;min-width:0;height:32px;min-height:32px;align-items:center;justify-content:center;gap:4px;padding:0 4px;border-radius:8px;font-size:clamp(.57rem,1vw,.82rem);transform:none;touch-action:manipulation}.published-games.referee-mode .referee-palette-actions .material-symbols-rounded{font-size:1.1em}app-competition-execution .modal-backdrop.referee-game-details-backdrop{padding:12px;background:#000c;-webkit-backdrop-filter:none;backdrop-filter:none}.referee-game-details-modal{display:flex;width:min(520px,100%);max-height:75dvh;flex-direction:column;overflow:hidden;border-radius:12px;color:#0b0f16;background:#efecdf;box-shadow:0 24px 70px #00000052}.referee-game-details-header{position:relative;flex:0 0 auto;padding:14px 48px 12px;color:#fff;background:#016537}.referee-game-details-modal .referee-game-details-header h2{margin:0;font-size:clamp(13px,3.5vw,17px);line-height:1.3;overflow-wrap:anywhere;text-align:center}.referee-game-details-header button{position:absolute;top:8px;right:10px;width:34px;height:34px;padding:0;border:2px solid currentColor;border-radius:50%;color:#fff;background:transparent;cursor:pointer;font-size:20px;line-height:1}.referee-game-details-header button:focus-visible{outline:2px solid #fff;outline-offset:2px}.referee-game-details-content{min-height:0;overflow-y:auto}.referee-frame-details-table{width:calc(100% - 28px);margin:14px;border-collapse:separate;border-spacing:0 7px;color:#0b0f16;table-layout:fixed;text-align:center}.referee-frame-details-table th{padding:4px;border-bottom:1px solid #e5e7eb;color:#6b7280;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:15px;overflow-wrap:anywhere}.referee-frame-details-table th:nth-child(2){width:96px}.referee-frame-details-table td{height:48px;border-bottom:1px solid #e5e7eb;font-size:23px;font-weight:400}.referee-frame-details-table td.frame-id{width:96px}.referee-frame-details-table .frame-point-value{display:inline-flex;width:38px;height:38px;align-items:center;justify-content:center;border-radius:50%}.referee-frame-details-table td.winner .frame-point-value{background:#dac92f}.referee-frame-details-empty{margin:0;padding:32px 16px;color:#6b7280;text-align:center}@media(max-width:680px){.published-games.referee-mode{--referee-ball-size: clamp(28px, min(10vw, 8vh), 40px);--referee-palette-gap: 3px;--referee-control-size: clamp(20px, 5.2vw, 27px)}.published-games.referee-mode .round-games>.game-card{padding:4px 4px calc(var(--referee-palette-height) + 12px)}.published-games.referee-mode .matchup .match-athlete>strong{font-size:clamp(.75rem,3.3vw,1rem)}.published-games.referee-mode .referee-avatar-box{width:clamp(48px,12vh,76px)}.published-games.referee-mode .referee-points-panel,.published-games.referee-mode .referee-frames-panel>strong{font-size:clamp(1.5rem,6vw,2rem)}.published-games.referee-mode .referee-best-of{font-size:clamp(1rem,4.55vw,1.5rem)}.published-games.referee-mode .referee-frame-controls button{font-size:.9rem}.published-games.referee-mode .break-players{gap:6px}.published-games.referee-mode .break-event{flex-basis:22px;width:22px;height:22px;font-size:.52rem}.published-games.referee-mode .break-palette .referee-palette-actions button{gap:2px;padding:0 2px;font-size:.52rem}.published-games.referee-mode .referee-palette-actions .material-symbols-rounded{display:none}}@media(max-width:450px){.published-games.referee-mode .referee-points-panel{font-size:clamp(1rem,4.7vw,1.5rem)}.published-games.referee-mode .referee-frames-panel>strong{font-size:clamp(.82rem,3.5vw,1.2rem)}.published-games.referee-mode .referee-best-of{font-size:clamp(.58rem,2.7vw,.85rem)}.published-games.referee-mode .referee-frame-controls button{font-size:.8rem}}@media(max-height:600px){.shell.referee-shell .workspace>main{overflow-y:auto}.published-games.referee-mode{height:auto;min-height:100%;overflow:visible}.published-games.referee-mode .round-games>.game-card{height:auto;min-height:100%;overflow:visible}}@media print{@page{size:A4 landscape;margin:20mm 13mm}@page arbitration-report{size:A4 portrait;margin:14mm}html,body.sumula-printing{min-height:0;color:#000;background:#fff!important}body.sumula-printing *{visibility:hidden!important}body.sumula-printing app-match-sheet,body.sumula-printing app-match-sheet *{visibility:visible!important}body.sumula-printing>:not(.sumula-print-path),body.sumula-printing .sumula-print-path:not(app-match-sheet)>:not(.sumula-print-path){display:none!important}body.sumula-printing .sumula-print-path:not(app-match-sheet){display:block!important;width:auto!important;max-width:none!important;min-height:0!important;height:auto!important;margin:0!important;padding:0!important;overflow:visible!important;background:none!important}body.arbitration-printing *{visibility:hidden!important}body.arbitration-printing .arbitration-report-document,body.arbitration-printing .arbitration-report-document *{visibility:visible!important}body.arbitration-printing>:not(.arbitration-print-path),body.arbitration-printing .arbitration-print-path:not(.arbitration-report-document)>:not(.arbitration-print-path){display:none!important}body.arbitration-printing .arbitration-print-path:not(.arbitration-report-document){display:block!important;width:auto!important;max-height:none!important;overflow:visible!important;margin:0!important;padding:0!important;background:#fff!important;box-shadow:none!important}}
