.setting-switch{display:flex;align-items:center;gap:18px;position:relative;padding:16px 0;border-bottom:1px solid #ecdfe4;cursor:pointer}.setting-switch>span{flex:1;min-width:0}.setting-switch strong,.setting-switch small{display:block}.setting-switch small{margin-top:5px;font-size:12px;color:#85717b}.setting-switch input{position:absolute;right:0;width:54px;height:32px;opacity:0;cursor:pointer;z-index:1}.setting-switch i{width:54px;height:32px;border-radius:20px;background:#c7c4c9;position:relative;flex:none;transition:background .15s}.setting-switch i:before{content:'';position:absolute;width:26px;height:26px;left:3px;top:3px;background:white;border-radius:50%;box-shadow:0 1px 4px #0002;transition:transform .15s}.setting-switch input:checked+i{background:#ae0b2a}.setting-switch input:checked+i:before{transform:translateX(22px)}.setting-switch input:focus-visible+i{outline:3px solid #734656;outline-offset:3px}.entry-mode-options{border:0;padding:18px 0 6px;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:10px}.entry-mode-options legend{padding-top:20px;font-weight:700}.entry-mode-options label{display:flex;align-items:center;gap:10px;border:1px solid #e3d3da;border-radius:12px;padding:14px;cursor:pointer}.entry-mode-options input{accent-color:#ae0b2a;width:18px;height:18px}.entry-mode-options label:has(input:checked){background:#f8e9ef;border-color:#ae0b2a}.mode-badge{align-self:center;font-size:11px;color:#89717b;white-space:nowrap}.pending-score-banner{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#fff3dc;border:1px solid #e0c89c;border-radius:9px;margin-bottom:6px}.pending-score-banner>span{flex:1;min-width:0}.pending-score-banner strong,.pending-score-banner small{display:block;font-size:12px}.pending-score-banner small{color:#806750;margin-top:3px}.number-entry{display:flex;flex-direction:column;gap:6px;min-width:0}.number-group-title{font-size:11px;font-weight:600;color:#7f6872;line-height:16px}.number-group-title>span{font-weight:400}.number-entry .fixed-number-grid{max-height:none;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;scrollbar-gutter:auto}.number-entry .fixed-number{min-height:72px;padding:8px 6px;position:relative}.fixed-number small{font-size:10px;color:#8b7180}.number-entry .bench-number-grid{max-height:180px;overflow:auto;scrollbar-width:thin}.number-entry .bench-number{background:#f2eff2;color:#665b62}.number-entry .bench-number:disabled{opacity:.6}.number-entry .sub-out{outline:2px solid #ae0b2a;background:#fae5ed}.number-entry .number-liberos,.number-entry .number-operations{margin:0}.number-entry .number-liberos button{flex:1;white-space:nowrap}.home-half-console.number-mode .court-center{padding:12px!important}.number-entry .no-bench{font-size:11px;color:#9d8891}.number-mode .sub-flow-banner{display:none}.gesture-choices{position:relative}.gesture-pad{position:relative;width:100%;height:100%;min-height:120px;display:grid;grid-template-columns:1fr 1fr 1fr;grid-template-rows:1fr 1fr 1fr;gap:7px;touch-action:none;user-select:none;-webkit-user-select:none;overscroll-behavior:contain}.gesture-origin{grid-column:2;grid-row:2;display:flex;align-items:center;justify-content:center;position:relative;z-index:2;border-radius:50%;background:radial-gradient(circle,#f1e7ec 0 35%,transparent 37%);touch-action:none}.joy-knob{display:block;width:40px;height:40px;filter:drop-shadow(0 2px 3px #45223133);will-change:transform;cursor:grab;touch-action:none}.swipe-mark{color:#a5949d;font-size:30px}.gesture-result{padding:6px 4px;min-height:0;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#40323a;touch-action:none}.gesture-result strong{font-size:17px}.gesture-result small{font-size:10px;margin-top:3px;color:#8b7380}.dir-up{grid-column:2;grid-row:1}.dir-right{grid-column:3;grid-row:2}.dir-left{grid-column:1;grid-row:2}.dir-down{grid-column:2;grid-row:3}.gesture-result.result-home{background:#f2dfe7;border-color:#e4c1ce}.gesture-result.result-away{background:#e6eef5;border-color:#ccdae7}.gesture-result.result-continue{background:#f3f0f3}.gesture-result.gesture-hover,.gesture-result.picked{outline:3px solid #ae0b2a;background:#f0ccd9;color:#9c0a28}.gesture-feedback{position:absolute;left:0;right:0;bottom:-20px;text-align:center;pointer-events:none;font-size:11px;color:#8c6475;line-height:16px;white-space:nowrap}.gesture-net-tabs{display:flex;gap:6px;height:28px;margin-bottom:5px}.gesture-net-tabs button{padding:3px 16px;font-size:11px;min-height:28px;flex:1}.gesture-net-tabs .active{background:#ae0b2a;color:white;border-color:#ae0b2a}.gesture-net-tabs+.gesture-pad{height:calc(100% - 33px)}.mode-swipe .technical-panel,.mode-joystick .technical-panel{padding-bottom:18px}.mode-swipe .gesture-choices,.mode-joystick .gesture-choices{height:270px}.mode-swipe .number-entry,.mode-joystick .number-entry{height:100%}
@media(max-height:599px){.compact-workspace .home-half-console.number-mode .court-center{padding:6px!important}.compact-workspace .number-entry{gap:4px}.compact-workspace .number-entry .fixed-number-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:4px}.compact-workspace .number-entry .fixed-number{min-height:44px;padding:3px 4px}.compact-workspace .number-entry .fixed-number strong{font-size:20px;line-height:22px}.compact-workspace .number-entry .fixed-number span{font-size:10px}.compact-workspace .number-entry .fixed-number small{font-size:8px;line-height:9px}.compact-workspace .number-group-title{font-size:9px;line-height:12px}.compact-workspace .number-entry .bench-number-grid{max-height:clamp(44px,calc(100svh - 330px),100px)}.compact-workspace .number-entry .on-number-grid{overflow:visible}.compact-workspace .number-entry .number-liberos button,.compact-workspace .number-entry .number-operations button{min-height:26px;font-size:10px;padding:4px 6px}.compact-workspace .mode-swipe .gesture-choices,.compact-workspace .mode-joystick .gesture-choices{height:145px;margin-top:5px}.compact-workspace .gesture-pad{min-height:0;gap:4px}.compact-workspace .gesture-result{padding:3px 2px;min-height:0}.compact-workspace .gesture-result strong{font-size:13px;line-height:15px}.compact-workspace .gesture-result small{font-size:8px;line-height:10px;margin-top:0}.compact-workspace .joy-knob{width:28px;height:28px}.compact-workspace .gesture-net-tabs{height:23px;margin-bottom:3px}.compact-workspace .gesture-net-tabs button{min-height:23px;height:23px;padding:2px 10px}.compact-workspace .gesture-net-tabs+.gesture-pad{height:calc(100% - 26px)}.compact-workspace .gesture-feedback{font-size:9px;bottom:-16px}.compact-workspace .mode-badge{font-size:9px}.compact-workspace .pending-score-banner{padding:5px 8px}.compact-workspace .pending-score-banner strong,.compact-workspace .pending-score-banner small{font-size:10px}}
@media(prefers-reduced-motion:reduce){.setting-switch i,.setting-switch i:before{transition:none}}
.compact-workspace .mode-swipe .gesture-choices,.compact-workspace .mode-joystick .gesture-choices{height:clamp(104px,calc(100svh - 265px),125px)}
.pending-score-banner{position:fixed;left:50%;transform:translateX(-50%);bottom:max(12px,env(safe-area-inset-bottom));width:min(660px,calc(100vw - 24px));z-index:90;margin:0;box-shadow:0 6px 28px #4c25342b}.compact-workspace .pending-score-banner{bottom:max(8px,env(safe-area-inset-bottom))}
@media(orientation:landscape) and (max-height:500px){dialog:has(.entry-mode-options){padding:14px 18px;width:660px;max-height:calc(100svh - 18px)}dialog:has(.entry-mode-options) #modal-form{display:grid;grid-template-columns:1fr 1fr;gap:6px 18px}dialog:has(.entry-mode-options) h2,dialog:has(.entry-mode-options) .intro,dialog:has(.entry-mode-options) .error,dialog:has(.entry-mode-options) footer,.entry-mode-options{grid-column:1/-1}dialog:has(.entry-mode-options) h2{font-size:18px;margin:0}dialog:has(.entry-mode-options) .intro{font-size:10px;margin:0}.setting-switch{padding:9px 0}.setting-switch strong{font-size:13px}.setting-switch small{font-size:10px;line-height:14px}.entry-mode-options{padding:0;gap:6px}.entry-mode-options legend{padding-top:7px;font-size:12px}.entry-mode-options label{padding:8px 10px;font-size:12px}.entry-mode-options input{width:16px;height:16px}dialog:has(.entry-mode-options) footer{margin-top:4px;padding-top:7px}dialog:has(.entry-mode-options) footer button{min-height:34px;padding:7px 16px}dialog:has(.entry-mode-options) .error:empty{display:none}}
